程序設計是公認的計算機科學分支,同時也是活躍的研究領域,研究成果被髮表在衆多學術期刊,計算機科學以及工程出版物。下面是小編整理的關於計算機等級C語言考試知識點,歡迎大家參考!
數據的輸入輸出
【考點1】printf函數
格式爲:printf(輸出控制,輸出列表)。輸出控制是用一對雙引號括起來的,包含格式說明和原樣資訊。輸出列表包含若干輸出項。
%d對應整型,%f對應單精度實型,%c對應字元型,%o對應八進制無符號整型,%x對應無符號十六進制整型,%u對應無符號整型,%e對應指數型,%s對應字元串型。可在%和格式字元之間加一個數來控制數據所佔的寬度和小數位數。
【考點2】scanf函數
格式爲:scanf(輸入控制,輸入列表)
注意該函數的第二個部分是&a 這樣的地址,不是a;
scanf(“%d%d%*d%d”,&a,&b,&c); 跳過輸入的第三個數據。
【考點3】putchar與getchar函數
可用於輸出或輸入單個字元,這兩個函數是stdio.h檔案中的庫函數,它們是printf與scanf函數的簡化。
char a = getchar() 是沒有參數的,從鍵盤得到你輸入的一個字元給變量a。
putchar(‘y’)把字元y 輸出到屏幕中。
【考點4】如何交換兩個變量
如何實現兩個變量x ,y 中數值的互換(要求背下來)
不可以把 x=y ,y=x; 要用中間變量 t=x;x=y;y=t。
【考點5】實現保留三位小數
如何實現保留三位小數,第四位四捨五入的程序
float x=12.34567;
float y=((int)(x*1000+0.5))/1000.0;
這個有推廣的意義,注意 x = (int)x 這樣是把小數部分去掉。
對C語言的深入探討
【考點1】編譯預處理
凡以#開頭的這一行,都是編譯預處理命令行,編譯預處理不加分號,不佔執行時間。宏替換僅是簡單的文字替換,如#define f(x) (x)*(x)和#define f(x) x*x替換f(2+2)時就有區別,前者展開爲(2+2)*(2+2),後者爲2+2*2+2。
如果源檔案f2.c中有#include"f1.c"可以理解爲把源檔案f1.c原樣包含到f2.c中,使f1.c和f2.c融合到一起成爲一個C程序編譯。所以一個C程序必有主函數,但一個C源檔案未必有主函數。
【考點2】標識符作用域
局部變量是在函數內或複合語句內定義的變量,作用域爲定義它的函數內。局部變量有三種類型:自動auto,寄存器register和靜態static。
自動變量隨着函數的使用與否創建消失;寄存器變量分配在cpu中,沒有內存地址;靜態變量佔用固定存儲單元,在程序執行過程不釋放,直到程序執行結束。
全局變量是在函數外定義的'變量,作用域從定義它的位置到整個源檔案結束爲止,生存期爲整個程序執行期間。全局變量都是靜態變量。
【考點3】動態存儲分配
malloc(size)用來創建size個字節的連續存儲空間,返回值類型爲void *型。malloc函數常用於動態創建鏈表結點,如int *p; p=(int *)malloc(sizeof(int));。
calloc(n,size)創建n個同一類型的連續存儲空間,可以理解爲n個malloc。
int *p; p=(int *) calloc (10,sizeof(int));。p指向首地址。
free(p)釋放動態分配的存儲單元。
【考點4】main函數的參數
還有main(int argc,char **argv) {}
這種含有參數的題目,是很呆板的題目。第一個參數是表示輸入的字元串的數目,第二個參數是指向存放的字元串。
【考點5】函數指針
函數指針的用法(*f)()記住一個例子:
int add(int x, int y)
{....}
main()
{ int (*f)();
f=add;
}
賦值之後:合法的調用形式爲
1、add(2,3);
2、f(2,3);
3、(*f)(2,3);