首頁 - 網(wǎng)校 - 萬題庫 - 美好明天 - 直播 - 導(dǎo)航
您現(xiàn)在的位置: 考試吧 > 計算機等級考試 > 計算機二級考試 > C語言 > 復(fù)習(xí)資料 > 正文

2018年全國計算機二級考試C語言常考知識點歸納

來源:考試吧 2018-01-03 14:44:30 要考試,上考試吧! 萬題庫
“2018年全國計算機二級考試C語言?贾R點歸納”供考生參考。更多計算機等級考試復(fù)習(xí)資料等信息請訪問考試吧計算機等級考試網(wǎng)。

  總體上必須清楚的

  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: 一定要記住,

  例3: 在沒有舍去數(shù)據(jù)的時候,>右移一位表示除以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

  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]=這樣的題目。

  步驟一:把他們寫成:

  第一列 第二列 第三列

  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。

  一定記。褐灰嵌S數(shù)組的題目,一定是寫成如上的格式,再去做題目,這樣會比較簡單。

  數(shù)組的初始化,一維和二維的,一維可以不寫,二維第二個一定要寫

  int a[]= 合法。 int a[][4]=合法。 但int a[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)

掃描/長按二維碼幫助考試通關(guān)
2018年等考報考資訊
2018等考各科通關(guān)技巧
2018各科最新預(yù)測試卷
2018等考各科備考資料

微信搜索"考試吧"了解更多考試資訊、下載備考資料

  相關(guān)推薦:

  2018計算機等級考試報名時間|各地報名入口|報名條件

  2018年全國計算機等級考試時間|教材目錄(2018年版)

  報名方法|考試內(nèi)容|考試大綱|2018計算機等級考試科目

  歷年真題匯總|考試吧策劃:2018年計算機等級考試報考指南

0
收藏該文章
0
收藏該文章
文章搜索
萬題庫小程序
萬題庫小程序
·章節(jié)視頻 ·章節(jié)練習(xí)
·免費真題 ·模考試題
微信掃碼,立即獲!
掃碼免費使用
版權(quán)聲明:如果計算機等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計算機等級考試網(wǎng)內(nèi)容,請注明出處。
Copyright © 2004- 考試吧計算機等級考試網(wǎng) 出版物經(jīng)營許可證新出發(fā)京批字第直170033號 
京ICP證060677 京ICP備05005269號 中國科學(xué)院研究生院權(quán)威支持(北京)
在線模擬試題
考證通關(guān)殺器
考試最新資訊
學(xué)
一次通關(guān)技巧