糯米文學吧

位置:首頁 > IT認證 > 計算機等級

2017年計算機等級C語言考試知識點

程式設計是公認的計算機科學分支,同時也是活躍的研究領域,研究成果被髮表在眾多學術期刊,計算機科學以及工程出版物。下面是小編整理的關於計算機等級C語言考試知識點,歡迎大家參考!

2017年計算機等級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);