全國計算機等級考試二級C語言考前復習資料19726_第1頁
全國計算機等級考試二級C語言考前復習資料19726_第2頁
全國計算機等級考試二級C語言考前復習資料19726_第3頁
全國計算機等級考試二級C語言考前復習資料19726_第4頁
全國計算機等級考試二級C語言考前復習資料19726_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、【說明】這是真題分類解析,比較經典。為了節(jié)省時間,提高效率,希望大家按這樣一種方式閱讀這份資料:直接做例題不懂,看解析再不懂,看知識點介紹,書本,課堂筆記再不懂,留著下次課問我不要從頭開始,一個字一個字地讀全國計算機等級考試二級C語言考前復習資料第二章 運算符與表達式1.知識點:C運算符簡介算術運算符: +、*、/、%賦值運算符: =、+=、=、*=、/=、%=、<<=、>>=、 &=、 =、 |=關系運算符: >、>=、<、<=、= =、!=邏輯運算符: !、&&、|條件運算符: ?:逗號運算符: ,2.知識點:運算符的

2、結合和優(yōu)先級3.知識點:強制類型轉換運算符l 一般形式:(類型說明符)(表達式)l 功能:把表達式的運算結果強制轉換成類型說明符所表示的類型例1:(2009-04-06)表達式(int)(double)(5/2)+2.5)的值是4?!窘馕觥?int)(double)(5/2)+2.5)(int)(double)2)+2.5)(int)(2.000000+2.5)(int)(4.500000) 4。4.知識點:算術運算符: +、*、/、%:參與運算的量均為整型。/:當除號左右兩邊都是整數的時候,商也要是整數,如果不是整數則舍棄小數部分。當參與運算量有一個為實型,則商為double型。例1:(20

3、10-09-14)有以下定義:int a;long b;double x,y;則以下選項中正確的表達式是(A)A)a%(int)(x-y) B)a=x!=y; C) (a*y)%b D)y=x+y=x【解析】參與%運算的左右操作數均為整型,故A項正確,C項錯誤。B項是賦值語句,不是表達式。賦值運算符左邊必須是變量,而不是表達式,而D項中x+y=x,錯誤。5.知識點:逗號表達式l 一般形式:表達式1,表達式2l 嵌套形式:表達式1,表達式2,表達式3,表達式nl 求值過程:先求解表達式1,再求解表達式2,以表達式2的值為整個逗號表達式的值。例1:(2009-04-14)設有定義:int x=2;

4、以下表達式中,值不為6的是()A)x*=x+1 B)x+,2*x C)x*=(1+x) D)2*x,x+=2【解析】A項x=x*(x+1)=2*(2+1)=6;B項x+后,x的值為3,2*x的值為6,整個逗號表達式的值為6;C項x=x*(1+x)=2*3=6;D項x=x+2=2+2=4,整個逗號表達式的值為4。故答案是D。6.知識點:自增自減運算符+i i自加1后再參與運算 i+ i參與運算后再自加1-i i自減1后再參與運算 i- i參與運算后再自減1+和- -的運算對象只能為變量,不能是常量或表達式。例1:(2009-09-06)若有定義語句:int a=5;則表達式:a+的值是 5 ?!?/p>

5、解析】表達式a+的值是a未加1之前的值,即5。.7.知識點:賦值表達式l 一般形式:變量名=表達式l 賦值運算符左邊必須是變量,而不是表達式。例1:(2010-03-14)若有定義:double a=22;int i=0,k=18;則不符合C語言規(guī)定的賦值語句是( C)A)a=a+,i+; B)i=(a+k)<=(i+k); C)i=a%11; D)i=!a;【解析】a為double型,參與%運算的操作數均為整型,故C項錯誤。l 復合賦值運算符和表達式+=、=、*=、/=、%=、<<=、>>=、 &=、 =、 |=例2:(2010-09-16)表達式a+=

6、a-=a=9的值是(D)A)9 B)-9 C)18 D)0【解析】賦值運算符的結合性是從右到左,a=9a=a-9=0a=a+0=0+0=0。故答案是D。第三章 順序結構1.知識點:格式輸入函數printf()(1)一般形式:printf(“格式控制字符串”,輸出列表);(2)遇到控制字符,按照控制字符的規(guī)定輸出,遇到非格式字符串按原樣輸出。例1:(2009-04-07)若變量x,y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf(“ x/y=%d ”,x/y);補充完整,使其輸出的計算結果形式為:x/y=11。(3)格式字符串l 輸出最小寬度:若實際位數多于定義的寬度,則

7、按實際位數輸出,若實際位數少于定義的寬度則補以空格或0。l 精度:若輸出數字,則表示小數的位數,若輸出的是字符,則表示輸出字符的個數,若實際位數大于所定義的精度數,則截去超過的部分。例3:(2009-04-15)程序段:int x=12;double y=3.141593;printf(“%d%8.6f”,x,y);的輸出結果是(A)A)123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930【解析】以%8.6f格式輸出,即輸出的總寬度為8,小數的位數為6。2.知識點:格式輸入函數scanf()(1)一般形式:scanf(“格式控制字符串”,地址

8、列表);(2)若格式控制字符串中有非格式字符串,則按原樣輸入。若格式控制字符串中沒有非格式字符作輸入數據之間的間隔,則可用空格、Tab、回車作間隔。例1:(2005-04-19)有以下程序main()int m,n,p;scanf(“m=%dn=%dp=%d”,&m,&n,&p);printf(“%d%d%dn”,m,n,p);若想從鍵盤上輸入數據,使變量m中的值為123,n中的值為456,p中的值為789,則正確的輸入是(A)A)m=123n=456p=789 B)m=123 n=456 p=789C)m=123,n=456,p=789 D)123 456 789【解

9、析】scanf(“m=%dn=%dp=%d”,&m,&n,&p); 格式控制字符串中有非格式字符串,則按原樣輸入,故答案是A。(3)在輸入字符數據時,若格式控制字符串中無非格式字符,則認為所有輸入的字符均為有效字符??崭駮划斪髯址x值給變量。例2:(2009-04-23)有以下程序#include <stdio.h>main()int a1,a2; char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,a1,c1,a2,c2);若想通過鍵盤輸入,使

10、得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,程序輸出結果是:12,a,34,b則正確的輸入格式是(以下_代表空格,<CR>代表回車)A)12a34b<CR> B)12_a_34_b<CR> C)12,a,34,b<CR> D)12_a34_b<CR>【解析】空格會被當作字符賦值給變量,故B、D錯誤;C項中逗號會被當作字符賦值給變量,故C項錯誤。(4)格式字符串l 一般形式:%*輸入數據寬度長度類型l *表示該輸入項,讀入后不賦予相應的變量。l 輸入數據寬度:用十進制數指定輸入的字符數。例3:(2010-09-

11、07)有以下程序#include <stdio.h>main()int x,y;scanf(“%2d%ld”,&x,&y); printf(“%dn”x+y);程序運行時輸入:1234567程序的運行結果是 34579 ?!窘馕觥?2d輸入的數據寬度為2,x的值為12,y的值為34567,x+y=34579。l 長度格式符為(短整型)和l(長整型),%ld長整型數據,%lf雙精度浮點數據。l %d 輸入十進制整數;%f或%e 輸入實型數(用小數形式或指數形式)%c 輸入單個字符;%s 輸入字符串;%o 輸入八進制整數%x 輸入十六進制整數;%u 輸入無符號十進制整數

12、 例4:(2009-04-16)若有定義語句:double x,y,*px,*py;執(zhí)行了px=&x;py=&y;之后,正確的輸入語句是(C)A) scanf(“%f%f”,x,y); B)scanf(“%f%f”,&x,&y);C)scanf(“%lf%le”,px,py); D)scanf(“%lf%lf”,x,y);【解析】A、D項地址列表,應為&x,&y;x、y為double型,格式控制字符串不是%f%f,故B項錯誤。3.知識點:字符輸出函數putchar()一般形式:putchar(a);putchar(101);4.知識點:字符輸入函

13、數getchar()一般形式:getchar();或ch=getchar();例1:(2010-03-15)有以下程序#include <stdio.h>main()char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%cn”,a,b,c,d);當執(zhí)行程序時,按下列方式輸入數據(從第1列開始,<CR>代表回車,注意:回車也是一個字符)12<CR>34<CR>則輸出結果是(B)A)1234 B)12 C)12 D)12 3 34【解析】以%c

14、格式讀取一個字符,以getchar()形式也是讀取一個字符??崭駮划斪髯址x值給變量。所以,a=1,b=2,c=n,d=3。第四章 選擇結構1.知識點:關系運算符和表達式例1:(2010-09-08)在C語言中,當表達式值為0時表示邏輯值“假”,當表達式值為 非0 時表示邏輯值“真”。例2:(2010-03-06)設x為int型變量,請寫出一個關系表達式 (x%3=0)&&(x%7=0) ,用以判斷x同時為3和7的倍數時,關系表達式的值為真。2.知識點:邏輯運算符和表達式l 進行邏輯運算時,若&&左邊的值為0,則不再對右邊的運算對象進行運算,整個表達式的值為0

15、。例1:int a=2;則表達式(!a=1)&&(a+=2)的值為0,a的值為2?!窘馕觥?!a為0,!a=1的值為0,&&左邊的值為0,則不再對右邊的運算對象進行運算,所以a的值為2。l 若|左邊的運算對象的值為1,則不再對右邊的運算對象進行運算,整個表達式的值為1。例2:(2010-03-17)若a是數值類型,則邏輯表達式(a=1)|(a!=1)的值是(A)A)1 B)0 C)2 D)不知道a的值,不能確定【解析】a的值有兩種情況:a等于1或a不等于1。故邏輯表達式(a=1)|(a!=1)的值為1。3.知識點:if語句l if(表達式),其中表達式可以是任意合

16、法的C語言表達式。l 對于單個if語句,其后跟隨的受if控制的只能是1個語句或者是1個復合語句。例1:(2009-09-17)設有定義:int a=1,b=2,c=3;以下語句中執(zhí)行效果與其它三個不同的是(C)A)if(a>b) c=a,a=b,b=c; B)if(a>b) c=a,a=b,b=c;C)if(a>b) c=a;a=b;b=c; D)if(a>b) c=a;a=b;b=c;【解析】對于單個if語句,其后跟隨的受if控制的只能是1個語句或者是1個復合語句。故C項,if(a>b)條件成立時,語句c=a;才被執(zhí)行,而無論if(a>b)條件成立與否,語

17、句a=b;b=c;都會被執(zhí)行。A、B、D項,只有if(a>b)條件成立時,語句c=a; a=b;b=c; 才被執(zhí)行。4.知識點:if語句的嵌套l 內嵌結構中,else總是與前面最近的且未曾配對的if語句配對,組成一對if-else語句。例2:(2010-09-18)有以下程序#include <stdio.h>main()int a=1,b=0;if(!a) b+;else if(a=0) if(a) b+=2;else b+=3;printf(“%dn”,b);程序運行后的輸出結果是(A)A)0 B)1 C) 2 D)3【解析】else總是與前面最近的且未曾配對的if語句配

18、對,組成一對if-else語句。即else b+=3;與if(a) b+=2;配對。if(!a)不成立,不執(zhí)行b+;else if(a=0)不成立,不執(zhí)行if(a) b+=2;else b+=3;故直接執(zhí)行printf(“%dn”,b);,輸出結果為0。5.知識點:條件表達式l 一般形式:表達式1?表達式2:表達式3l 執(zhí)行過程:表達式1的值為真,條件表達式取表達式2的值;表達式1的值為假,條件表達式取表達式3的值。例1:(2009-09-19)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是(A)A)if(a>b)&&(b>c) k=1; B) if(a>b)|(b>c) k=1;else k=0; else k=0;C) if(a<=b) k=0; D) if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;【解析】條件運算符的結合性是從右至左。當b>c時,b>c?1:0的值為1,k=a>b?

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論