當前位置:學問君>人在職場>IT認證>

計算機二級C語言常見考點積累

學問君 人氣:2.26W

C語言是進階語言。它把進階語言的基本結構和語句與低級語言的實用性結合起來。下面是小編整理的關於計算機二級C語言常見考點,歡迎大家參考!

計算機二級C語言常見考點積累

結構體類型的說明

結構體是若干個類型數據的集合,

結構體類型說明格式:

struct 類型名 {類型1 成員名1;類型2 成員名2;……};,以上整個部分是一個數據類型,與整型的int是同樣地位。可用typedef把結構體類型替換成一個只有幾個字母的簡短標識符。

【考點2】結構體變量的定義

結構體變量是用說明的結構體類型所定義的一個變量,與結構體類型不是一回事。一個結構體變量所佔字節數爲其所有成員所佔字節數之和。如struct stu{char name[10];int age;} a,b;則表明定義了兩個結構體變量a,b,每個變量佔14個字節。a,b與int i,j;中的變量i,j是同樣地位。typedef 考的很多(教材150頁例6)。

【考點3】結構體成員的引用

引用成員可用以下3種方式:(1)結構體變量名.成員名;(2)指針變量名->成員名:(3)(*指針變量名).成員名。點(.)稱爲成員運算符,箭頭(->)稱爲結構指向運算符。

【考點4】共用體

共用體的使用格式與結構體相似,共用體定義的關鍵字爲union,共用體所佔字節數是所有成員中字節數最大的那個。

union TT

{ int a;

char ch[2];} t1 ;

main()

{t1.a=0x1234;

printf("%xn",[0] );

printf("%xn",[1] );}

考點一: sizeof (struct TT) = 2;

考點二: TT t1 ; t1.a=0x1234;

那麼 ch[0]=0x 34; ch[1]=0x12

結構體和共用體以及鏈表要掌握最簡單的。typedef 考的很多,而且一定要知道如何引用結構體中的各個變量,鏈表中如何填加和刪除節點,以及何如構成一個簡單的鏈表,一定記住鏈表中的節點是有兩個域,一個放數值,一個放指針。

【考點5】鏈表

鏈表是由一個個結點構成的,一個結點就是一個結構體變量。每個結點可以分爲數據域與指針域兩個部分,數據域用來存放要存儲的數據,指針域用來指向下一個結點。鏈表是考試中的難點,在C語言和公共基礎部分都會考到,要掌握,鏈表中如何增加和刪除節點(每年都考),以及何如構成一個簡單的`鏈表,一定記住鏈表中的節點是有兩個域,一個放數值,一個放指針。

對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);