- 相關(guān)推薦
2017年計算機二級考試C語言知識點歸納
計算機二級考試是全國計算機等級考試(National Computer Rank Examination,簡稱NCRE)四個等級中的一個等級,考核計算機基礎(chǔ)知識和使用一種高級計算機語言編寫程序以及上機調(diào)試的基本技能。下面是2017年計算機二級考試C語言知識點歸納。歡迎閱讀。
總體上必須清楚的
1)程序結(jié)構(gòu)是三種:順序結(jié)構(gòu) ,循環(huán)結(jié)構(gòu)
(三個循環(huán)結(jié)構(gòu)),選擇結(jié)構(gòu)(if 和 switch)
2)讀程序都要從main()入口,然后從最上面順序
往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
3)計算機的數(shù)據(jù)在電腦中保存是以二進制的形式。
數(shù)據(jù)存放的位置就是他的地址。
4)bit是位 是指為0 或者1。 byte 是指字節(jié),
一個字節(jié) = 八個位。
5)一定要記住二進制如何劃成十進制。
概念常考到的:
1)、編譯預(yù)處理不是C語言的一部分,不再運行
時間。C語言編譯的程序稱為源程序,
它以ASCII數(shù)值存放在文本文件中。
2)、每個C語言程序中main函數(shù)是有且只有一個。
3)、在函數(shù)中不可以再定義函數(shù)。
4)、算法是一定要有輸出的,他可以沒有輸入。
5)、break可用于循環(huán)結(jié)構(gòu)和switch語句。
6)、逗號運算符的級別最低。
第一章
1)合法的用戶標(biāo)識符考查:
合法的要求是由字母,數(shù)字,下劃線組成。
有其它元素就錯了。
并且第一個必須為字母或則是下劃線。
第一個為數(shù)字就錯了。
關(guān)鍵字不可以作為用戶標(biāo)識符號。
main define scanf printf 都不是關(guān)鍵字。迷惑你的
地方If是可以做為用戶標(biāo)識符。因為If中的
第一個字母大寫了,所以不是關(guān)鍵字。
2)實型數(shù)據(jù)的合法形式:
2.333e-1 就是合法的,且數(shù)據(jù)是2.333×10-1。
考試口訣:e前e后必有數(shù),e后必為整數(shù)。.
3)字符數(shù)據(jù)的合法形式::
'1'是字符占一個字節(jié),"1"是字符串占兩個
字節(jié)(含有一個結(jié)束符號)。
'0' 的ASCII數(shù)值表示為48,'a' 的ASCII數(shù)值是97,
'A'的ASCII數(shù)值是65。
4) 整型一般是兩個字節(jié), 字符型是一個字節(jié),
雙精度一般是4個字節(jié):
考試時候一般會說,在16位編譯系統(tǒng),或者
是32位系統(tǒng)。碰到這種情況,不要去管,一樣做題。
掌握整型一般是兩個字節(jié), 字符型是一個字節(jié),
雙精度一般是4個字節(jié)就可以了。
5)轉(zhuǎn)義字符的考查:
在程序中 int a = 0x6d,是把一個十六進制的數(shù)給
變量a 注意這里的0x必須存在。
在程序中 int a = 06d, 是一個八進制的形式。
在轉(zhuǎn)義字符中,’\x6d’才是合法的,0不能寫,
并且x是小寫。
‘\141’是合法的。
‘\108’是非法的,因為不可以出現(xiàn)8。
轉(zhuǎn)義字符意義 ASCII碼值(十進制)
\a 響鈴(BEL) 007
\b 退格(BS) 008
\f 換頁(FF) 012
\n 換行(LF) 010
\r 回車(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 問號字符 063
\' 單引號字符 039
\" 雙引號字符 034
\0 空字符(NULL) 000
\ddd 任意字符三位八進制
\xhh 任意字符二位十六進制
6)算術(shù)運算符號的優(yōu)先級別:
同級別的有的是從左到右,有的是從右到左。
7)強制類型轉(zhuǎn)換:
一定是(int)a 不是 int(a),注意類型上
一定有括號的。
注意(int)(a+b)和(int)a+b 的區(qū)別。
前是把a+b轉(zhuǎn)型,后是把a轉(zhuǎn)型再加b。
8)表達式的考查:
是表達式就一定有數(shù)值。
賦值表達式:表達式數(shù)值是最左邊的數(shù)值,
a=b=5;該表達式為5,常量不可以賦值。
自加、自減表達式:假設(shè)a=5,++a(是為6),
a++(為5);
運行的機理:++a 是先把變量的數(shù)值加上1,
然后把得到的數(shù)值放到變量a中,然后再用這
個++a表達式的數(shù)值為6,而a++是先用該表達
式的數(shù)值為5,然后再把a的數(shù)值加上1為6,
再放到變量a中。 進行了++a和a++后在下面的
程序中再用到a的話都是變量a中的6了。
考試口訣:++在前先加后用,++在后先用后加。
逗號表達式:優(yōu)先級別最低 ;表達式的數(shù)值
逗號最右邊的那個表達式的數(shù)值。
(2,3,4)的表達式的數(shù)值就是4。
9)位運算的考查:
會有一到二題考試題目。
總的處理方法:幾乎所有的位運算的題目
都要按這個流程來處理(先把十進制變成
二進制再變成十進制)。
例1: char a = 6, b;
b = a<<2; 這種題目的計算是先要把a的十進
制6化成二進制,再做位運算。
例2: 一定要記住,
例3: 在沒有舍去數(shù)據(jù)的時候,<<左移一位表示
乘以2;>>右移一位表示除以2。
10)018的數(shù)值是非法的,八進制是沒有8的,
逢8進1。
11)%符號兩邊要求是整數(shù)。不是整數(shù)就錯了。
12) 兩種取整丟小數(shù)的情況:
1、int a =1.6;
2、(int)a;
第二章
1)printf函數(shù)的格式考查:
%d對應(yīng)整型;%c對應(yīng)字符;%f對應(yīng)單精度等等。
寬度的,左對齊等修飾。
%ld對應(yīng) long int;%lf 對應(yīng)double。
2)scanf函數(shù)的格式考察:
注意該函數(shù)的第二個部分是&a 這樣的地址,不是a;
Scanf(“%d%d%*d%d”,&a,&b,&c);跳過輸入的
第三個數(shù)據(jù)。
3)putchar ,getchar 函數(shù)的考查:
char a = getchar() 是沒有參數(shù)的,從鍵盤得到
你輸入的一個字符給變量a。
putchar(‘y’)把字符y輸出到屏幕中。
4)如何實現(xiàn)兩個變量x ,y中數(shù)值的互換
(要求背下來)
不可以把 x=y,y=x; 要用中間變量 t=x;x=y;y=t。
5)如何實現(xiàn)保留三位小數(shù),第四位四舍五入
的程序,(要求背下來)
x=(int)(x*1000+0.5)/1000.0
這個有推廣的意義,注意 x = (int)x 這樣是
把小數(shù)部分去掉。
第三章
特別要注意:c語言中是用非0表示邏輯真的,
用0表示邏輯假的。
1)關(guān)系表達式:
表達式的數(shù)值只能為1(表示為真),
或0(表示假)
當(dāng)關(guān)系的表達是為真的時候得到1。
如 9>8這個是真的,所以表達式的數(shù)值就是1;
2)邏輯表達式:
只能為1(表示為真),或0(表示假)
a) 共有&& || ! 三種邏輯運算符號。
b) !>&&>|| 優(yōu)先的級別。
c) 注意短路現(xiàn)象?荚嚤容^喜歡考到。
d) 要表示 x 是比0大,比10小的方法。0
不可以的(一定記住)。是先計算0
結(jié)果為1或則0;再用0,或1與10比較得到的
總是真(為1)。所以一定要用(0
示比0大比10小。
3)if 語句
else 是與最接近的if且沒有else的相組合的。
4)條件表達式:
表達式1 ?表達式2 :表達式3
注意是當(dāng)非0時候是表達式2的數(shù)值,當(dāng)為0是
就是表達式2的數(shù)值。
考試口訣:真前假后。
5)switch語句:
a)一定要注意有break 和沒有break的差別,
沒有break時候,只要有一個case匹配了,剩下
的都要執(zhí)行,有break則是直接跳出了swich語句。
b)switch只可以和break一起用,不可以
和continue用。
第四章
1)三種循環(huán)結(jié)構(gòu):
a)for(); while(); do- while()三種。
b)for循環(huán)當(dāng)中必須是兩個分號,千萬不要忘記。
c)寫程序的時候一定要注意,循環(huán)一定要有結(jié)束
的條件,否則成了死循環(huán)。
d) do-while()循環(huán)的最后一個while();的分號一定
不能夠丟。(當(dāng)心上機改錯)
2) break 和 continue的差別
記憶方法:
break:是打破的意思,(破了整個循環(huán))所以
看見break就退出真?zhèn)一層循環(huán)。
continue:是繼續(xù)的意思,(繼續(xù)循環(huán)運算),
但是要結(jié)束本次循環(huán),就是循環(huán)體內(nèi)剩下的語句
不再執(zhí)行,跳到循環(huán)開始,然后判斷循環(huán)條件,
進行新一輪的循環(huán)。
3)嵌套循環(huán)
就是有循環(huán)里面還有循環(huán),這種比較復(fù)雜,要一層
一層一步一步耐心的計算,一般記住兩層是處理
二維數(shù)組的。
4) while((c=getchar())!=’\n’)和
while(c=getchar() !=’\n’)的差別
先看a = 3 != 2 和(a=3)!=2 的區(qū)別:
(!=號的級別高于=號 所以第一個先計算 3!=2)
第一個a的數(shù)值是得到的1;第二個a的數(shù)值是3。
考試注意點: 括號在這里的重要性。
第五章
函數(shù):是具有一定功能的一個程序塊;
1) 函數(shù)的參數(shù),返回數(shù)值(示意圖):
main()
{
int a = 5,b=6,c;
c = add(a,b);
printf(“%d”,c);
}
調(diào)用函數(shù)
a,b是實參
整個函數(shù)得到一個數(shù)值就是
Add函數(shù)的返回數(shù)值。
int add ( int x,int y)
{
int z;
z=x+y;
return z;
}
被調(diào)用函數(shù)
x,y是形式參數(shù)
函數(shù)返回數(shù)值是整型
z就是這個add函數(shù)計算后得到的結(jié)果,就是函數(shù)
返回給主程序的返回數(shù)值。
程序是在從上往下順序執(zhí)行,當(dāng)碰到了函數(shù)add后,
把a,b的數(shù)值穿給調(diào)用函數(shù),程序暫時中斷等待返回數(shù)值。
當(dāng)?shù)玫搅朔祷財?shù)值后,再順序的往下執(zhí)行
2)一定要注意參數(shù)之間的傳遞
實參和形參之間 傳數(shù)值,和傳地址的差別。(考試的重點)
傳數(shù)值的話,形參的變化不會改變實參的變化。
傳地址的話,形參的變化就會有可能改變實參的變化。
3)函數(shù)聲明的考查:
一定要有:函數(shù)名,函數(shù)的返回類型,函數(shù)的參數(shù)類型。
不一定要有:形參的名稱。
第六章
指針變量的本質(zhì)是用來放地址,而一般的變量是放數(shù)值的。
int *p 中 *p和p的差別:
*p可以當(dāng)做變量來用;*的作用是取后面地址p里面的數(shù)值
p是當(dāng)作地址來使用。
*p++ 和 (*p)++的之間的差別:改錯題目中很重要
*p++是 地址會變化。
(*p)++ 是數(shù)值會要變化。
三名主義:(考試的重點)
數(shù)組名:表示第一個元素的地址。數(shù)組名不可以自加,
他是地址常量名。(考了很多次)
函數(shù)名:表示該函數(shù)的入口地址。
字符串常量名:表示第一個字符的地址。
第七章
1一維數(shù)組的重要概念:
對a[10]這個數(shù)組的討論。
1、a表示數(shù)組名,是第一個元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出現(xiàn)a++,或者
是a=a+2賦值的都是錯誤的。
3、a是一維數(shù)組名,所以它是列指針,也就是
說a+1是跳一列。
對a[3][3]的討論。
1、a表示數(shù)組名,是第一個元素的地址,也就是
元素a[10]的地址。
2、a是地址常量,所以只要出現(xiàn)a++,或者
是a=a+2賦值的都是錯誤的。
3、a是二維數(shù)組名,所以它是行指針,也就
是說a+1是跳一行。
4、a[0]、a[1]、a[2]也都是地址常量,不可以對
它進行賦值操作,同時它們都是列指針,a[0]+1,
a[1]+1,a[2]+1都是跳一列。
5、注意a和a[0] 、a[1]、a[2]是不同的,它們的
基類型是不同的。前者是一行元素,后三者是一列元素。
二維數(shù)組做題目的技巧:
如果有a[3][3]={1,2,3,4,5,6,7,8,9}這樣的題目。
步驟一:把他們寫成:
第一列 第二列 第三列
a[0]à 1 2 3 ->第一行
a[1]à 4 5 6—>第二行
a[2]à 7 8 9->第三行
步驟二:這樣作題目間很簡單:
*(a[0]+1)我們就知道是第一行的第一個元素往后
面跳一列,那么這里就是a[0][1]元素,所以是1。
*(a[1]+2)我們就知道是第二行的第一個元素往后面
跳二列。那么這里就是a[1][2]元素,所以是6。
一定記住:只要是二維數(shù)組的題目,一定是寫成如
上的格式,再去做題目,這樣會比較簡單。
數(shù)組的初始化,一維和二維的,一維可以不寫,
二維第二個一定要寫
int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。
但int a[4][]={2,3,4}非法。
二維數(shù)組中的行指針
int a[1][2];
其中a現(xiàn)在就是一個行指針,a+1跳一行數(shù)組元素。
搭配(*)p[2]指針
a[0],a[1]現(xiàn)在就是一個列指針。a[0]+1 跳一個數(shù)組
元素。搭配*p[2]指針數(shù)組使用
還有記住脫衣服法則:
a[2] 變成 *(a+2) a[2][3]變成 *(a+2)[3]再
可以變成 *(*(a+2)+3)
【計算機二級考試C語言知識點歸納】相關(guān)文章:
2017年計算機二級C語言考點歸納03-06
計算機二級c語言知識點盤點03-06
2017年計算機二級考試C語言知識點大全03-10
計算機二級考試c語言過關(guān)經(jīng)驗03-21
計算機等級考試二級C語言考點03-08
計算機二級C語言入門知識點積累03-07
全國計算機二級考試c語言考試要點03-09
2017計算機二級考試C語言沖刺題03-10