![C語言期末復(fù)習(xí)資料(fangbiande)_第1頁](http://file4.renrendoc.com/view/3b241e0eba40803f67c64bbd04532559/3b241e0eba40803f67c64bbd045325591.gif)
![C語言期末復(fù)習(xí)資料(fangbiande)_第2頁](http://file4.renrendoc.com/view/3b241e0eba40803f67c64bbd04532559/3b241e0eba40803f67c64bbd045325592.gif)
![C語言期末復(fù)習(xí)資料(fangbiande)_第3頁](http://file4.renrendoc.com/view/3b241e0eba40803f67c64bbd04532559/3b241e0eba40803f67c64bbd045325593.gif)
![C語言期末復(fù)習(xí)資料(fangbiande)_第4頁](http://file4.renrendoc.com/view/3b241e0eba40803f67c64bbd04532559/3b241e0eba40803f67c64bbd045325594.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
所有單選題1、c語言中下列敘述正確的是 .A:不能使用do-while語句構(gòu)成的循環(huán)B:do-while語句構(gòu)成的循環(huán),必須用break語句才能退出C:do-while語句構(gòu)成的循環(huán),當while語句中的表達式值為非零時結(jié)束循環(huán)D:do-while語句構(gòu)成的循環(huán),當while語句中的表達式值為零時結(jié)束循環(huán)答案:D評析:本題的考查點是do-while語句.選項A是錯誤的,C語言支持do-while語句;選項B是錯誤的,do-while構(gòu)成的循環(huán),當while語句中的表達式值為零時結(jié)束循環(huán),而不是非零;選項C也是錯誤的。故本題答案為D。知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計ハ/VHILE和DOWHILE循環(huán)結(jié)構(gòu)2、以下選項中屬于C語言的數(shù)據(jù)類型是 A:復(fù)數(shù)型B:邏輯型C:雙精度型D:集合型答案:C評析:本題的考查點是C語言的數(shù)據(jù)類型.C語言的數(shù)據(jù)類型分為基本類型,構(gòu)造類型,指針類型,空類型四大類.其中,基本類型分為整型,字符型,實型三類。實型又稱浮點型,包括單精度型和雙精度型兩種類型。故本題答案為C。知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法.下列描述中不正確的是 .A:字符型數(shù)組中可以存放字符串B:可以對字符型數(shù)組逬行整體輸入、輸出C:可以對整型數(shù)組逬行整體輸入、輸出D:不能在賦值語句中通過賦值運算符"="對字符型數(shù)組逬行整體賦值答案:C評析:本題的考查點是對數(shù)組的理解.C語言規(guī)定只能逐個引用數(shù)組元素而不能一次引用整個數(shù)組。字符數(shù)組的輸入、輸出可以將整個字符串ー次輸入或輸出。所以,選項C的說法是不正確的.故本題答案為C。知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用.以下程序的輸出結(jié)果是 .main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x-,y);A:10192B:9876C:10990D:101091答案:D評析:本題的考查點是for循環(huán)語句。f。嚙句的一般格式為:for(表達式1;表達式2:表達式3)語句執(zhí)行中只要表達式2為真,則執(zhí)行for語句中指定的內(nèi)嵌語句。所以,本題在條件為真的情況下,先執(zhí)行printf函數(shù)。x--是先使用后運算。故本題答案為D。知識點:知識點Z循環(huán)結(jié)構(gòu)程序設(shè)計/FOR循環(huán)結(jié)構(gòu)5、以下程序的輸出結(jié)果是。main(){chara[10]={■l',,2','3','4',,5,,,6','7','8','9',0)(*p;inti;i=8;p=a+i;printfC'%s\n",p-3);}A:6B:6789C:'6'D:789答案:B評析:本題的考查點是通過指針引用數(shù)組元素.指針P指向數(shù)組中第8個元素,即a[8]='9I。輸出時,輸出字符串,且指針把a[8]作為初始位置往前指3個元素,也就是共有4個字符輸出。最后指向a[5]為’6',所以輸出為6789。故本題答案為B。知識點:知識點y指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù).能正確表示a和b同時為正或同時為負的邏輯表達式是 。A:(a>=0||b>=0)&&(a<0||b<0)B:(a>=0&&b>=0)&&(a<0&&b<0)C:(a+b>0)&&(a+b<=0)D:a*b>0答案:D評析:本題的考查點是對邏輯表達式的判斷。邏輯表達式是指用邏輯運算符將關(guān)系表達式或邏輯■連接起來.選項A中,表達式表示的是a,b為異號;選項B中,表達式表示的是〇,因為沒有滿足條件的值;選項C中,表達式表示的是〇,因為沒有滿足條件的值;選項D表示的是a和b為同號.故本題答案為D。知識點:知識點/基本語句/表達式語句,空語句,復(fù)合語句.以下程序的輸出結(jié)果是。main(){intn=4;while(n-)printf("%d",-n);}A:20B:31C:321D:210答案:A評析:本題的考查點是while語句的判斷。n--是先使用后運算,--n是先運算后使用。n=4時,執(zhí)行n-ー后,n變?yōu)?,執(zhí)行ー-n后,n變?yōu)?,所以,第一次輸出時,n為2;同上過程,第二次輸出時,n為0。故本題答案為A。知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計ハWHILE和DOWHILE循環(huán)結(jié)構(gòu)8、以下程序的輸出結(jié)果是 main(){intk=17;printf("%d,%o,%x\n",k,k,k);}A:17,021,0x11B:17,17,17C:17,0x11,021D:17,21,11答案:D評析:本題的考查點是不同格式的數(shù)據(jù)輸出.printf函數(shù)對不同類型的數(shù)據(jù)用不同的格式字符,“%d”是以帶符號的十逬制形式輸出整數(shù)(正數(shù)不輸出符號)廠‘%。"以8逬制無符號形式輸出整數(shù)(不包括前導(dǎo)符〇)廠‘%X”以16逬制無符號形式輸出整數(shù)(不包括前導(dǎo)符Ox).本題答案為D。知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法9、若有說明:long*p,a;則不能通過scanfi吾句正確給輸入項讀入數(shù)據(jù)的程序段是 A:*p=&a;scanf("%ld",p);B:p=(long*)malloc(8);scanf("%ld,p);C:scanf("%ld",p=&a);D:scanf("%ld",&a);答案:A評析:本題的考查點是格式輸入函數(shù)Scanf()的使用。scanf函數(shù)輸入形式為:scanf(格式控制,地址表列);選項B中,p=(long*)malloc(8)是分配8個字節(jié)的long型存儲單元,所以能通過scanfi吾句正確給輸入項讀入數(shù)據(jù);選項C中,p=&a,求出變量a的內(nèi)存地址并賦給p;選項D中,能正確給輸入項讀入數(shù)據(jù);故本題答案為A。知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用10、以下選項中,能定義s為合法的結(jié)構(gòu)體變量的是 A:typedefstructabc{doublea;charb[10];}s;B:struct{doublea;charb[10];)s;C:structABC{doublea;charb[10];}ABCs;D:typedefABC{doublea;charb[10];}ABCs;答案:B評析:本題的考査點是結(jié)構(gòu)體變量的定義。定義ー個結(jié)構(gòu)體類型的變量,可采用三種方法:(1)先定義結(jié)構(gòu)體類型再定義變量名;(2)在定義類型的同時定義變量;(3)直接定義結(jié)構(gòu)類型變量,即不出現(xiàn)結(jié)構(gòu)體名;選項B符合第三種定義方法。故本題答案為B。知識點:知識點/結(jié)構(gòu)體(即“結(jié)構(gòu)”)與共用體(即“聯(lián)合”)/結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義方法和引用方法11、請讀程序:#include<stdio.h>main()(inta,b;for(a=lfb=l;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;)printf(H%d\n"fa);上面程序的輸出結(jié)果是 。A:7B:8C:9D:10答案:B評析:本題的考查點是break語句和continue語句."%”是求余運算符,執(zhí)行第一次循環(huán)時,條件(b%3==1)為真,b=4,繼續(xù)下一次循環(huán),如此反復(fù).當b=22時,條件(b>=20)為假,跳出循環(huán),此時共循環(huán)8次,即a=8。故本題答案為B.知識點:知識點/選擇結(jié)構(gòu)程序設(shè)計/用SWITCH語句實現(xiàn)多分支選擇結(jié)構(gòu)12、請選出合法的C語言賦值語句A:a=b=58B:i++;C:a=58,b=58D:k=int(a+b);答案:B評析:本題的考查點是賦值語句。選項A和G殳有用分號表示語句結(jié)束,不合法;選項D,函數(shù)名和C語言的關(guān)鍵字重名,不合法。故本題答案為B.知識點:知識點/基本語句/表達式語句,空語句,復(fù)合語句13、請選出可用作C語言用戶標識符的ー組標識符 ①void②a3_b3③For?2adefine_123_abcDOWORDIFcasesizeofA:?B:②C:③D:?答案:B評析:本題的考查點是C語言的標識符。C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。①中的void和define都和C語言的關(guān)鍵字重名,不合法;③中的case和C語言的關(guān)鍵字重名,不合法;④中的2a是數(shù)字打頭而且sizeof和C語言的關(guān)鍵字重名,不合法。故本題答案為B.知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法14、若x和y都是int型變量,x=100.y=200,且有下面的程序片段printf("%d",(x,y));上面程序片段的輸出結(jié)果是 。A:200B:100C:100200D:輸入格式符不夠,輸出不確定的值答案:A評析:本題的考查點是逗號表達式.在(x,y)中的ッ”是一個特殊的運算符,叫做逗號運算符,它的一般形式為:表達式1,表達式2,求解過程為:先求解表達式1,再求解表達式2.整個表達式的值是表達式2的值,(x,y)的值為200,所以輸出結(jié)果為200。故本題答案為A.知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用15.若x是int型變量,且有下面的程序片段for(x=3;x<6;x++) printf((x%2)?(',**%d"):("##%d\n"),x);TOC\o"1-5"\h\z上面程序片段的輸出結(jié)果是 。①**3 ②##3 ③##3 ?**3##4##4 **4 **4*#5 **5**5 *#5A:?B:②C:③D:?答案:D評析:本題的考查點是條件運算符。這種條件表達式的一般形式為:表達式1?表達式2:表達式3,條件運算符的執(zhí)行順序為:先求解表達式1(若非〇則求解表達式2(此時表達式2的值就是整個條件表達式的値,若表達式1的值為〇,則求解表達式3,此時表達式3的值就是整個條件表達式的值。故本題答案為D。知識點:知識點/數(shù)據(jù)類型及其運算/C運算符的種類、運算優(yōu)先級和結(jié)合性16.若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達式是 .A:pb=&x;B:pb=x;C:*pb=&x;D:*pb=*x答案:A評析:本題的考查點是賦值表達式。選項A是將變量x的地址賦給指針變量pb,使pb指向x,故為正確的賦值表達式。選項B是將x的值當作地址賦給指針pb,pb指向ー個地址等于x值的內(nèi)存單元;選項C是將x的地址賦給指針pb指向的那個地址等于x值的內(nèi)存單元;選項D是不正確的語句;本題答案為A。知識點:知識點/基本語句/表達式語句,空語句,復(fù)合語句17?若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態(tài)存儲單元int*p;p=malloc(sizeof(int));則應(yīng)填入A:intB:int*C:(*int)D:(int*)答案:D評析:本題的考查點是強制類型轉(zhuǎn)換。不論P是指向什么類型的指針變量,都可以通過強制類型轉(zhuǎn)換的方法使之類型一致,強制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型?).故本題答案為D。知識點:知識點/數(shù)據(jù)類型及其運算/不同類型數(shù)據(jù)間的轉(zhuǎn)換與運算18、若有以下說明和語句,請選出哪個是對c數(shù)組元素的正確引用intc[4][5],(*cp)[5];cp=c;A:cp+1B:*(cp+3)C:*(cp+l)+3D:*(*cp+2)答案:D評析:本題的考查點是數(shù)組元素的引用.cp=c這個語句是將數(shù)組c的首地址賦給了指針數(shù)組cp的第一個數(shù)組元素。選項A,cp+1是指將數(shù)組c的首地址加1,不是對數(shù)組元素的引用;選項B,*(cp+3)是地址等于數(shù)組c的首地址加3的那個內(nèi)存單元的內(nèi)容,不是對數(shù)組元素的引用;選項C,*(cp+1)+3是地址等于數(shù)組c的首地址加1的那個內(nèi)存單元中存放的值加3,不是對數(shù)組元素的弓I用.故本題答案為D。知識點:知識點y指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)19、若執(zhí)行下面的程序時從鍵盤上輸入3和4,main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s=s*s;printfC%d\n",s);)則輸出是 A:14B:16C:18D:20答案:B評析:本題的考查點是給變量賦值。用戶輸入的3和4分別賦給了a和b,在ifi吾句逬行判斷時,因為表達式的值為真,所以b的值將賦給s,s*s=16.最后的打印結(jié)果為16。故本題答案為B。知識點:知識點/基本語句/表達式語句,空語句,復(fù)合語句20、設(shè)a.b和c都是int型變量,且a=3、b=4、c=5.則下面的表達式中,值為〇的表達式是。A:'a'&&'b'B:a<=bC:a||+c&&b-cD:!((a<b)&&!c||l)答案:D評析:本題的考査點是幾種運算符的使用。該題需要弄清楚以下幾點:1、幾種運算符的使用方法;2、C語言中運算符的結(jié)合方向(結(jié)合性);3、C語言中運算符的優(yōu)先級。根據(jù)以上規(guī)則逬行表達式拆分,運算后即可得出正確答案。本題答案為D.知識點:知識點/數(shù)據(jù)類型及其運算/C運真符的種類、運算優(yōu)先級和結(jié)合性21、設(shè)a=5、b=6,c=7、d=8、m=2、n=2.執(zhí)行(m=a>b)&&(n=c>d)后n的值為D答案評析本題的考查點是邏輯與運算。在邏輯表達式的求解中,并不是所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下ー個邏輯運算符才能求出表達式的解時,オ執(zhí)行該運算符。本題中,(m=a>b)的值為〇,求出整個表達式的值為0,不需執(zhí)行(n=c>d),所以n仍為2。故本題答案為B。知識點:知識點/數(shù)據(jù)類型及其運算/C運算符的種類、運算優(yōu)先級和結(jié)合性22、設(shè)ch是cha哩變量,其值為A,且有下面的表達式ch=(ch>='A&&ch<='Z')?(ch+32):ch上面表達式的值是 答案評析本題的考查點是條件運算符。條件表達式的一般形式為:表達式1?表達式2:表達式3.條件運算符的執(zhí)行順序:先求解表達式1,若非。則求解表達式2,此時表達式2的值就作為整個表達式的值,若表達式1的值為〇,則求解表達式3,此時表達式3的值就作為整個表達式的值。本題中,表達式1的值為1,所以整個表達式的值為表達式(ch+32)的值,即為a。故本題答案為B.知識點:知識點/數(shù)據(jù)類型及其運算/C運算符的種類、運算優(yōu)先級和結(jié)合性23、設(shè)inta=12,則執(zhí)行完語句a+=a-=a*a后,a的值是 。A:552B:264C:144D:-264答案:D評析:本題的考查點是賦值表達式的求解。第一步:a*a=144;(此時a=12)第二步:a-=144相當于a=a-144,a=a-144=-132;(此時a=-132)第三步:a+=a相當于a=a+a,a=a+a=-264;所以該表達式最后的值應(yīng)當為ー264.故本題答案為D.知識點:知識點/數(shù)據(jù)類型及其運算/C表達式類型和求值規(guī)則24、設(shè)有如下枚舉類型定義enumlanguage{Basic=3,Assembly=6,Ada=100,COBOL,Fortran);枚舉量Fortran的值為A:4B:7C:102D:103答案:C評析:本題考査的是數(shù)據(jù)類型。這個枚舉中共有5個元素,前三個已有明確的賦值,而COBOL和Fortran沒有明確的賦值,枚舉的語法規(guī)定當枚舉元素沒有賦值時,其值為其前一個元素的值加一,所以COBOL的值為101,故Fortran的值應(yīng)為102。故答案為C。知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法25、設(shè)有以下語句,其中不是對a數(shù)組元素的正確引用的是:(其中0Vi<10)inta[10]={0,l,2,3,4,5,6,7,8,9,),*p=a;A:a[p-a]B:*(&a[i])C:p[i]D:*(*(a+i))答案:D評析:本題的考查點是通過指針引用數(shù)組元素。觀察程序可知,a實際上就是數(shù)組a的首地址,所以"*(a+i)”表示的就是數(shù)組a中的第i個元素的值,逬而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用.故本題答案為D.知識點:知識點Z指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)26、設(shè)有以下語句chara=3,b=6,c;c=aAb<<2;則c的二進制值是.A:00011011B:00010100C:00011100D:00011000答案:A評析:本題的考查點是位運算。"〈ぐ’是C語言中規(guī)定的左移運算符,例如,a=a<<2,這個語句即是將a的二進制數(shù)左移兩位,左移一位相當于該數(shù)乘以2,左移兩位相當于該數(shù)乘以2的2次方;へ是異或運算符,所以,c的二進制值應(yīng)為00011011.故本題答案為A.知識點:知識點A立運算/簡單的位運算27、設(shè)有語句inta=3;則執(zhí)行了語句a+=a-=a*a;后,變量a的值是C:9D:-12答案:D評析:本題的考查點是賦值表達式的求解.第一步:a*a=9;(此時a=3)第二步:a-=9相當于a=a-9,a=a-9=-6;(此時a=-6)第三步:a+=a相當于a=a+a,a=a+a=-12;所以該表達式最后的值應(yīng)當為ー12.故本題答案為D.知識點:知識點/數(shù)據(jù)類型及其運算/C表達式類型和求值規(guī)則28、下面程序main(){intx=100,a=10,b=20,okl=5,ok2=0;if(a<b)if(b!=15)if(!okl)x=l;elseif(ok2)x=10;x=-l;printf("%d\n",x);的輸出是A:-1B:0C:1D:不確定的值答案:A評析:本題的考查點是判斷語句的循環(huán)嵌套。第一個判斷值為真,過渡到下ー個判斷,第二個判斷為真,過渡到第三個判斷……如此循環(huán),在打印輸出語句的前一行,程序給變量x賦了值,為ー1,所以,無論前期如何變化,最后的x值依然為ー1.故本題答案為A.知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計/循環(huán)的徽套29、下面程序main()(intx=32;printf("%d\n",x=x<<l);的輸出是.A:100B:160C:120D:64答案:D評析:本題的考查點是位運算。<<是C語言中規(guī)定的左移運算符,例如,a=a<<2,這個語句即是將a的二逬制數(shù)左移兩位,左移ー位相當于該數(shù)乘于2I左移兩位相當于該數(shù)乘以2的2次方。所以,x<<1=32*2=64.故本題答案為D。知識點:知識點/位運算/簡單的位運算30、下面程序main()(inta[10]={l,2,3,4,5,6,7,8,9,10),*p=a;printf("%d\n",*(p+2));)的輸出是。D:2答案:A評析:本題的考査點是通過指針引用數(shù)組元素.*p=a語句是使指針p指向數(shù)組a的第一個數(shù)組元素,因此*(p+2腳是數(shù)組a的第3個元素的值,BPa[2].故本題答案為A.知識點:知識點y指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)31、下面程序main(){intx=10,y=3;printf("%d\n",y=x/y);}的輸出是 0A:0B:1C:3D:不確定的值答案:C評析:本題的考查點是除法運算。x/y的結(jié)果約為3.33333i但是由于打印要求為整型,所以自動轉(zhuǎn)換為整型(相當于截取整數(shù)位),打印結(jié)果為3.故本題答案為C。知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法32、下面程序voidprtv(int*x){printf("%d\n",++*x);}main(){inta=25;prtv(&a);}的輸出是 A:23B:24C:25D:26答案:D評析:本題的考查點國旨針變量作為函數(shù)參數(shù)。觀察程序,可以發(fā)現(xiàn),函數(shù)prtv()的作用是將地址等于x的內(nèi)存單元中值加1,因為我們在主函數(shù)中是將變量a的地址作為實參傳遞給了prtv()函數(shù),所以,函數(shù)prtv()將地址等于變量a的地址的那個內(nèi)存單元中値加一,打印結(jié)果自然就是25+1=26了.故本題答案為D.知識點:知識點Z指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)33、下面的程序main(){intx=3;do{printf("%d\n",x-=2);A:輸出的是1B:輸出的是1和一2C:輸出的是3和〇D:是死循環(huán)答案:B評析:本題的考查點是do-while語句。在第一次循環(huán)時,先計算表達式x-=2,所以輸出1,一x為〇,判斷表達式的值為非零,返回重新執(zhí)行該語句;在第二次循環(huán)時,表達式x-=2,即ー2,所以輸出ー2,--X為ー3,判斷表達式的值為零,循環(huán)結(jié)束。故本題答案為B。知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計ハWHILE和DOWHILE循環(huán)結(jié)構(gòu)34、下面的程序中錯誤(每行程序前面的數(shù)字是行號).#include<stdio.h>main()(floata[3]={0.0};inti;6 for(i=0;i<3;i++)scanf("%d",a[i]);7 for(i=l;i<3;i++)a[0]=a[0]+a[i];8 printf('%f\n",a[O]);9 )A:沒B:第4行C:第6行D:第8行答案:C評析:本題的考查點是函數(shù)scanf()的格式輸入。根據(jù)函數(shù)scanf()的語法可知,在函數(shù)中的參數(shù)表列部分,應(yīng)當是欲賦值變量的內(nèi)存地址,象第六行這樣,將數(shù)組元素直接放在參數(shù)表列中是無法達到給數(shù)組元素賦值的目的。故本題答案為C。知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用35、下面函數(shù)intfunl(char*x){char*y=x;while(*y++);return(y-x-l);}的功能是 A:求字符串的長度B:比較兩個字符串的大小C:將字符串X復(fù)制到字符串yD:將字符串x連接到字符串y后面答案:A評析:本題的考查點是while。循環(huán)語句.這個函數(shù)的功能是求字符串的長度,需要注意的是,在返回長度時一定記住要減ー,否則計算出的串長度將會多一。故本題答案是A.知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計ハ/VHILE和DOWHILE循環(huán)結(jié)構(gòu)36、以下程序的輸出結(jié)果是 。#include<stdio.h>main()(inti=10,j=10;printf("%d,%d\n”,++i,j-);)A:11,10B:9,10C:010,9D:10,9答案:A評析:本題的考查點是變量的自増、自減運算.++i是先對i逬行加1運算,再使用i的值;j-是先使用j值,再對j逬行減1運算。所以,程序的打印結(jié)果應(yīng)當為“11,10”.故本題答案為A。知識點:知識點/數(shù)據(jù)類型及其運算/C運算符的種類、運算優(yōu)先級和結(jié)合性37、以下的for循環(huán):for(x=0,y=0;(y!=123)&&(x<4);x++);A:是無限循環(huán)B:循環(huán)次數(shù)不定C:執(zhí)行4次D:執(zhí)行3次答案:C評析:本題的考查點是fori吾句循環(huán)條件的判斷。循環(huán)條件是表達式(y!=123)&&(x<4),因為y值始終為〇,所以表達式左邊一定恒為1,當x<4時,循環(huán)可以運行,當x=4時,循環(huán)終止,所以這個循環(huán)ー共可以執(zhí)行4次。故本題答案為C.知識點:知識點Z循環(huán)結(jié)構(gòu)程序設(shè)計/FOR循環(huán)結(jié)構(gòu)38、有以下程序:#include<stdio.h>unionpw{inti;charch[2];)a;main(){a.ch[0]=13;a.ch[l]=O;printf("%d\n".a.i);}程序的輸出結(jié)果是(注意:ch[〇]在低字節(jié)?ch[l]在高字節(jié)).A:13B:14C:208D:209答案:A評析:本題的考查點是共用體類型數(shù)據(jù)的特點.根據(jù)共用體的定義可知:共用體a的成員i和成員ch[2]是共用著同一段內(nèi)存空間師以,當程序給a.ch[〇]賦值后,實際上,共用體成員i的值也確定了,為13,所以打印輸岀的結(jié)果應(yīng)當為13.故本題答案為A.知識點:知識點Z結(jié)構(gòu)體(即“結(jié)構(gòu)”)與共用體(即“聯(lián)合”)/結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義方法和引用方法39、有以下程序main(){intc;while((c=getchar())!="\n'){switch(c-'2){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}從第一列開始輸入以下數(shù)據(jù),/代表ー個回車符.2473/程序的輸出結(jié)果是 .A:668977B:668966C:66778777D:6688766答案:A評析:本題的考查點是switch。語句.getchar()函數(shù)是從犍盤接受一個字符輸入;當用戶鍵入的字符不是回車符時,會逬入一個多分支選擇語句,根據(jù)表達式c-2的值逬行分支選擇;putchar()是在屏幕上打印ー個字符,最后的結(jié)果應(yīng)當為668977.故本題答案為A。知識點:知識點/選擇結(jié)構(gòu)程序設(shè)計/用SWITCH語句實現(xiàn)多分支選擇結(jié)構(gòu)40、執(zhí)行下面程序片段的結(jié)果是
intx=23;doprintf("%2d",x-);)while(!x);A:打印出321B:打印出23C:不打印任何內(nèi)容D:陷入死循環(huán)答案:B評析:本題的考查點是do-while循環(huán)語句的判斷。X-ー是自減運算,先使用x的值,后逬行自減運算,所以打印出來的結(jié)果應(yīng)當為23.故本題答案為瓦知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計ハWHILE和DOWHILE循環(huán)結(jié)構(gòu)41、執(zhí)行下面的程序段intx=35;charz="A';intB;B=((x&15)&&(z<'a));后,B的值為D:3答案:B評析:本題的考查點是邏輯與及位與運算。從整個表達式來看是個邏輯表達式,而與運算符’&&”的右邊的子表達式中由于z的值為“A”,而A的ASCII碼的值小于a的ASCII碼值,所以這個子表達式的值為真,即1;在與運算符"&&”的左邊的子表達式是個基于位運算的子表達式,將x的值與15做位與運算,表達式値不為零,所以兩個子表達式的與值應(yīng)當為1.故本題答案為B.知識點:知識點/位運算/位運算符的含義及使用42、表達式:10!=9的值是 .true非零值0true非零值01DB:C:ID:答案:評析:本題的考查點是關(guān)系運算符!ニ。在這種運算中,表達式的值只有兩種:1或。,表達式10!=9的值應(yīng)當是,故本題答案為D。知識點:知識點/數(shù)據(jù)類型及其運算/C表達式類型和求值規(guī)則43、若有說明:inti,j=7,*p=&i;則與i寸等價的語句是 。A:i=*p;B:*p=*&j;C:i=&j;D:i=**p;答案:B評析:本題的考查點是指針變量的引用.P的地址本身和啲地址一樣所以?p代表i中的數(shù)值而&j是j的地址:&j就是j中的數(shù)值所以/p=*&j和i可是等價的.故本題答案為B。知識點:知識點/指針/指針與指針變量的概念,指針與地址運算符44、以下程序的輸出結(jié)果是 main(){char*s="12134211";intv[4]={0,0,0,0),k.i;for(k=O;s[k];k++){switch(s[k]){case"l":i=O;case"2":i=l;case"3":i=2;case"4":i=3;}v[i]++;)for(k=0;k<4;k++)printf("%d",v[k]);}A:4211B:0008C:4678D:8888答案:B評析:本題的考查點是switch語句的應(yīng)用.在每次執(zhí)行switch后面括號內(nèi)的表達式s[k]時,要先取當前s[k]的值與case后的字符常量逬行比較,找到與之匹配的分支后,即轉(zhuǎn)去執(zhí)行該分支中的語句。switch語句中,某分支執(zhí)行完畢,若未遇到break語句,則接著執(zhí)行剩余的其它分支,直到遇到break語句.此題中,因為沒有break語句,所以總會執(zhí)行到i=3,即總是v[3]在遞加。故本題答案為B.知識點:知識點/選擇結(jié)構(gòu)程序設(shè)計/用SWITCH語句實現(xiàn)多分支選擇結(jié)構(gòu)45、有如下程序main(){intn=9;while(n>6)n-;printf("%d",n);}}該程序的輸出結(jié)果是 A:987B:876C:8765D:9876答案:B評析:本題考查點是While語句循環(huán)次數(shù)的問題。符合n>6的n只有7,8,9;所以循環(huán)次數(shù)為3.選項C、D可以排除.又因n在輸出之前要執(zhí)行n--,所以輸出結(jié)果只能是876.本題答案為B.知識點:知識點Z循環(huán)結(jié)構(gòu)程序設(shè)計ハWHILE和DOWHILE循環(huán)結(jié)構(gòu)46、設(shè)有說明語句:chara='\72’;則變量aA:包含1個字符B:包含2個字符C:包含3個字符D:說明不合法答案:A評析:本題考查點是轉(zhuǎn)義字符的應(yīng)用。轉(zhuǎn)義字符常量‘'XX,可以把、后面的數(shù)字轉(zhuǎn)換為對應(yīng)的ASCII字符,、72,表示的是ASCII碼等于72的那個字符,即為“H”,所以在字符變量中存儲的只是”H“這ー個字符.故本題答案為A.知識點:知識點/數(shù)據(jù)類型及其運算/不同類型數(shù)據(jù)間的轉(zhuǎn)換與運算47、若變量已正確定義并賦值,下面符合C語言的表達式是.A:a:=b+lB:a=b=c+2C:int18.5%3D:a=a+7=c+b答案:B評析:選項A和C顯然錯誤:對于表達式a=a+7=c+b(答案D),是先執(zhí)行賦值表達式a+7=c+b,再把這個表達式的值賦給a,顯然,表達式a+7=c+b非法,因為賦值表達式的左值不能為常量或表達式。本題答案為B.知識點:知識點/基本語句/表達式語句,空語句,復(fù)合語句48、若已定義x和y為double類型,則表達式x=l,y=x+3/2的值是.A:1B:2C:2.0D:2.5答案:C評析:這是ー個逗號表達式,它的值應(yīng)為表達式y(tǒng)=x+3/2的值,而前一個表達式已給X賦值1,在沒有逬行類型轉(zhuǎn)換的情況下,3/2的值為1.所以x+3/2的值應(yīng)為2.0.本題答案為U知識點:知識點/基本語句/表達式語句,空語句,復(fù)合語句49、若變量a、i已正確定義,且i已正確賦值,合法的語句是 .A:a==lB:++i;C:a=a++=5D:a=int(i);答案:B評析:選項D顯然是錯的,而選項A沒有分號結(jié)束,不是C語句;a++=5違反了賦值表達式左值必須為一個變量(不能是常量或表達式)的規(guī)定.本題答案為B.知識點:知識點/基本語句/表達式語句,空語句,復(fù)合語句50、有如下程序main(){inty=3,x=3,z=l;printf("%d%d\n",(++x,y++),z+2);}運彳友程序的輸出結(jié)果是 D答案評析逗號表達式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3.本題答案為D.知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用51、有如下程序main(){intx=l,a=0,b=0;switch(x){case0:b++;a++;a++;b++;printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是 。A:a=2,b=lB:a=l,b=lC:a=lrb=OD:a=2fb=2答案:A評析:在這介switch語句中,因為x的值為1,所以執(zhí)行case1:后面的a++,這樣a=1。但又由于其下沒有break語句,所以其后面的語句(a++;b++)也將破執(zhí)行,這樣ー來,a=2,b=1。本題答案為A。知識點:知識點/選擇結(jié)構(gòu)程序設(shè)計/用SWITCH語句實現(xiàn)多分支選擇結(jié)構(gòu)52、有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n”,y);)該程序輸出結(jié)果是 A:0.000000B:0.250000C:0.500000D:1.000000答案:c評析:本題考查的是IF…ELSE語句的使用。x=2.0,符合第二個IF語句的條件x<10.0,所以執(zhí)行y=l.0ホ語句,即y=1.0/2.0=0.500000。本題答案為U知識點:知識點/選擇結(jié)構(gòu)程序設(shè)計/用IF語句實現(xiàn)選擇結(jié)構(gòu)53、有如下程序main(){inta=2rb=-lfc=2;if(a<b)if(b<0)c=0;elseC++;printf("%d\n",c);}該程序的輸岀結(jié)果是 D答案評析由于條件(a<b)并不滿足,所以if(a<b)后面的語句并沒有槌執(zhí)行,c仍然等于2.本題答案為C知識點:知識點/選擇結(jié)構(gòu)程序設(shè)計/用IF語句實現(xiàn)選擇結(jié)構(gòu)54、有如下程序mainO{inti.sum;for(i=l;i<=3;sum++)sum+=i;printf("%d\n",sum);)該程序的執(zhí)行結(jié)果是A:6B:3C:死循環(huán)D:0答案:C評析:在循環(huán)過程中,i的值一直沒有被改變,所以這是ー個死循環(huán)。本題答案為C知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計/FOR循環(huán)結(jié)構(gòu)55、有如下程序main(){intn=9;while(n>6){n-;printf("%d",n);}}該程序段的輸出結(jié)果是 A:987B:876C:8765D:9876答案:B評析:符合n>6的n只有7,8,9;所以循環(huán)次數(shù)為3.C,D可以排除。又:n在輸出之前要執(zhí)行n一,所以輸出結(jié)果只能是876.本題答案為民知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計ハWHILE和DOWHILE循環(huán)結(jié)構(gòu)56、設(shè)有說明語句:charaハ72';則變量aA:包含1個字符B:包含2個字符C:包含3個字符D:說明不合法答案:A評析:轉(zhuǎn)義字符常量‘'XX’可以把、后面的數(shù)字轉(zhuǎn)換為對應(yīng)的ASCII字符,ヽ72'就是'H'.本題答案為A。知識點:知識點/基本語句/表達式語句,空語句,復(fù)合語句57、有如下程序段int*p,a=10,b=l;p=&a;a=*p+b;執(zhí)彳デ亥程序段后,a的值為A:12B:11C:10D:編譯出錯答案:B評析:執(zhí)行p=&a;后,p指向整數(shù)a,*p即p的目標變量,也就是a;所以a=*p+b等價于a=a+b,可知a的值最終為11.本題答案為B。知識點:知識點/指針/指針與指針變量的概念,指針與地址運算符58、對于基類型相同的兩個指針變量之間,不能逬行的運算是.A:<B:=C:+D:-答案:C評析:指針之間不能逬行加運算.本題答案為C.知識點:知識點/指針/指針與指針變量的概念,指針與地址運算符59、有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=l;i<=NUM;i++)printf("%d\n",i);}該程序中的for循環(huán)執(zhí)行的次數(shù)是.A:5B:6C:7D:8答案:B評析:在C語言中,宏定義在編譯時將被直接替換,所以NUM最后會被替換成2*N+1+1,即2*2+1+1,值為!6。因此,for循環(huán)執(zhí)行的次數(shù)為6.本題答案為B。知識點:知識點Z循環(huán)結(jié)構(gòu)程序設(shè)計/FOR循環(huán)結(jié)構(gòu)60、有如下程序段inta=14,b=15,x;charc='A";x=(a&&b)&&(c<B');執(zhí)彳デ亥程序段后,x的值為A:trueB:falseC:0D:1答案:D評析:a&&b的值為true,cv'B'的值也為true,所以(a&&b)&&(c<'B')的值為true。但x是in理變量,所以9&&13)&&(<:<岀’)的值最后要從1J。。1型轉(zhuǎn)換為而1型賦給人這樣x的值應(yīng)為エ本題答案為D.知識點:知識點/數(shù)據(jù)類型及其運算/不同類型數(shù)據(jù)間的轉(zhuǎn)換與運算61、有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)値為9的表達式是。A:*p+9B:*(p+8)C:*p+=9D:p+8答案:B評析:P是指針,p+8是地址值,D是錯的;*p是p的目標變量,即a[0],值為1,所以?p+9的值是10.而*p+=9值是重新給a[0]賦了值(1+9);所以A和C也是錯的。p+8是地址值,指向a[8],那么?(p+8)的值就是a[8]的值,即9。本題答案為B。知識點:知識點Z指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)62、有如下程序main()(intn[5]={O,O,O),i,k=2;for(i=0;i<k;i++)n[i]=n[i]+1;printf("%d\n",n[k]);}該程序的輸出結(jié)果是 .A:不確定的值B:2C:1D:0答案:D評析:由代碼可知,題中的for循環(huán)值執(zhí)行2次(i=0和1),所以只對a[0]和a[l]重新賦了值,而a[k]即a[2]的值并沒有變,仍為0。本題答案為D。知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計/FOR循環(huán)結(jié)構(gòu)63、有如下程序main()inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i]Q]];printf("%d\n",s);}該程序的輸出結(jié)果是.A:18B:19C:20D:21答案:A評析:題中的外循環(huán)只執(zhí)行了2次:第1次:a[l][0]=3,a[l][l]=4,所以s=7;第2次:a[2][0]=5,a(2][l]=6,a[2][2]=0,所以s=7+5+6+0=18。本題答案為A。知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計/循環(huán)的嵌套64、有如下定義structperson{charname[9];intage;};structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16,);根據(jù)上述定義,能輸出字母M的語句是 A:printf("%c\n",class[3].name);B:printf("%c\n",class[3].name[l]);C:printf("%c\n",class[2].name[l]);D:printf("%c\n",class[2].name[0]);答案:D評析:選項A將輸出A;選項B將輸出d;選項C將輸出a;選項D將輸出M。本題答案為D.知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用65、以下對結(jié)構(gòu)體類型變量的定義中,不正確的是.A:typedefstructaa{intn;floatm;}AA;AAtdl;B:#defineAAstructaaAA{intn;floatm;}tdl;C:struct{intn;floatm;}aa;structaatdl;D:struct{intn;floatm;}tdl;答案:C評析:在答案C中,aa是ー個結(jié)構(gòu)體變?,而不是結(jié)構(gòu)體名,所以structaatdl;是非法的.本題答案為c知識點:知識點Z結(jié)構(gòu)體(即“結(jié)構(gòu)”)與共用體(即”聯(lián)合”)/結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義方法和引用方法66、下列敘述中正確的是 。A:C語言編譯時不檢查語法B:C語言的子程序有過程和函數(shù)兩種C:C語言的函數(shù)可以嵌套定義D:C語言中,根據(jù)函數(shù)能否被其它源文件調(diào)用,被區(qū)分為內(nèi)部函數(shù)和外部函數(shù)答案:D評析:選項A的錯誤在于編譯過程中是檢查語法的,若發(fā)現(xiàn)源程序有語法錯誤,則系統(tǒng)會提示出錯信息;選項B的錯誤在于C語言中,子程序的作用是由函數(shù)來完成的,無過程的概念;選項C的錯誤在于函數(shù)不可以嵌套定義,但可以嵌套調(diào)用。本題答案為D.知識點:知識點ZC語言的結(jié)構(gòu)網(wǎng)序的構(gòu)成,MAIN函數(shù)和其他函數(shù)67、以下列出C語言常量中,錯誤的是 。A:OxFFB:1.2e0.5C:2LD:'\72'答案:B評析:C語言中的指數(shù)形式,字母E之前必須有數(shù)字,且E后面指數(shù)必須為整數(shù).本題答案為民知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法68、以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x/(y*z)的C語言表達式是A:x/y*zB:x*(l/(y*z))C:x/y*l/zD:x/y/z答案:A評析:按照自左向右的運算邏輯,選項A是先做x/y,然后再乘以x,顯然與題意不符.本題答案為A.知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法69、若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*aB,a的值是 .A:-3B:9C:-12D:6答案:C評析:C語言中對賦值運算的運算順序是自右向左。本題中,計算a*a之后,a的值依然為3.表達式a*a的值為9;a-=9,a=3-9=-6;a+=-6,a=-6+-6=-12.本題答案為c知識點:知識點/數(shù)據(jù)類型及其運算/C表達式類型和求值規(guī)則70、設(shè)x、y、的為int型變量,則執(zhí)彳描句:x=y=3;t=++x||++y;后,y的值為.A:不定值B:4C:3D:1答案:C評析:C語言中在做邏輯或運算時,自左向右判斷各個參加或運算的表達式,一旦運到某式的值為非零時,表明整個表達式定為真,余下的語句則不再逬行運算。本題中,++x的值為真,則++y并沒有逬行運算,所以y值不變。本題答案為Q知識點:知識點/基本語句/復(fù)合語句71、若變量已正確說明為float類型,要通過語句scanf("%f%f%f”,&a,&b,&c);給a賦予10.0,b賦予22.0,c賦予33.0,不正確的輸入形式是:A:102233B:10.0,22.0,33.0C:10.022.033.0D:102233答案:B評析:C語言中,數(shù)據(jù)輸入時,必需嚴格按照scan個句中的格式符來逬行輸入,不需要分隔符,否則作為有效字符讀入.選項中B中的逗號將被做為有效字符讀入。本題答案為B。知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用72、若a、b.cl、c2、x,y均是整型變量,正確的switch語句是 。?switch(a-f-b);{casel:y=a+b;break;case0:y=a-b;break;}②switch(a*a+b*b){case3:casel:y=a+b;break;case3:y=b-a;break;}@switcha{casecl:y=a-b;break;casec2:x=a*b;break;default:x=a+b;switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:casell:y=a-b;break;)A:?B:②C:③D:@答案:D評析:選項A的錯誤在于switch語句后面不該加分號;選項B的錯誤在于switch語句要求每ー個case的常?表達式的值必須互不相同;選項C的錯誤在于變量a應(yīng)該用括號括起來,case后面應(yīng)該跟上常量表達式,而不是變量。本題答案為D.知識點:知識點/選擇結(jié)構(gòu)程序設(shè)計/用SWITCH語句實現(xiàn)多分支選擇結(jié)構(gòu)73、有以下程序段intk=0;while(k=l)k++;while循環(huán)執(zhí)行的次數(shù)是一A:無限次B:有語法錯,不能執(zhí)行C:一次也不執(zhí)行D:執(zhí)行1次答案:A評析:乍ー看,還以為程序要表達的意思是當k等于1的時候做k++,但是C語言里關(guān)系表達式的等于應(yīng)該是"==ー個等于號表示賦值,即這里面重復(fù)的把1賦給k,自然表達式k=l的值總為1,while后面的表達式恒為真,當然會逬入死循環(huán)。本題答案為A。知識點:知識點y循環(huán)結(jié)構(gòu)程序設(shè)計ハ/VHILE和DOWHILE循環(huán)結(jié)構(gòu)74、以下程序執(zhí)行后sum的值是.main(){inti,sum;for(i=l;i<6;i++)sum+=i;printf("%d\n",sum);C:不確定D:0答案:c評析:變量sum在使用時未賦初值,所以無法確定sum最終的值.本題答案為C知識點:知識點Z循環(huán)結(jié)構(gòu)程序設(shè)計/FOR循環(huán)結(jié)構(gòu)75、下面程序的輸出結(jié)果是 main(){intaD={1,2,3,4,5,6,7,8,9,0).*P;p=a;printf("%d\n",*p+9);}A:0B:1C:10D:9答案:C評析:本題中,p=a,則表明指針p指向數(shù)組a的第一個元素,即a[0]?指針運算符"*”的優(yōu)先級髙于加法運算符”+",所以"*P+9”相當于a[0]+9,BP10.本題答案為C.知識點:知識點Z指針/指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)76、設(shè)有以下說明語句structex{intx;floaty;charz;}example;則下面的敘述中不正確的是 A:struct是結(jié)構(gòu)體類型的關(guān)鍵字B:example是結(jié)構(gòu)體類型名C:x,y,z都是結(jié)構(gòu)體成員名D:structex是結(jié)構(gòu)體類型答案:B評析:example是結(jié)構(gòu)體變量名。本題答案為B。知識點:知識點Z結(jié)構(gòu)體(即“結(jié)構(gòu)")與共用體(即"聯(lián)合”)/結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義方法和引用方法77、以下程序的輸出結(jié)果是 .main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+l)];for(i=0;i<3;i++)k+=p[i]*2;printf(M%d\nH,k);}A:20B:21C:22D:23答案:BiWr:按照程序的流程走一遍,我們可以得到,p[0]=0,p[l]=2,p[3]=6;做三次k+=p[i]*2.相當于k=5+0*2+2*2+6*2=21.本題答案為B.知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計/循環(huán)的僚套78、以下程序的輸出結(jié)果是 #defineSQR(X)X*Xmain(){inta=16,k=2,m=l;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);)A:16B:2C:9D:1答案:B評析:本題所考查的是宏定義.C語言在預(yù)編譯時遇到帶實參的宏名,則按命令行中指定的字符串從左到右逬行置換。在做這條題時,我們也不妨將運用置換法。得到:a/=k+m*k+m/k+m*k+m=16/7=2.注:a為整形,所以在做除法時,自動取整.本題答案為B。知識點:知識點/基本語句/復(fù)合語句79、若定義了以下函數(shù):voidf( )*p=(double*)malloc(10*sizeof(double));P是該函數(shù)的形參,要求通過p把動態(tài)分配存儲單元的地址傳回主調(diào)函數(shù),則形參p的正確定義應(yīng)當是A:double*pB:float**pC:double**pD:float*p答案:C評析:通過程序中給出的語句,我們可以判斷,*p是一個指向double型指針的指針.因此,要通過p把動態(tài)分配存儲單元的地址傳回主調(diào)函數(shù),應(yīng)該使用double**p.本題答案為C。知識點:知識點/指針ノ返回指針值的指針函數(shù)80、假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點,則以下可以將q所指結(jié)點從鏈表中刪除并釋放該結(jié)點的語句組是 0IP IqdatanextA:free(q);p->next=q->next;B:(*p).next=(*q).next;free(q);C:q=(*q).next;(*p).next=q;free(q);D:q=q->next;p->next=q;p=p->next;free(p);答案:BiWr:選項A的錯誤在于,已經(jīng)先把q結(jié)點給釋放,無法再進行余下語句了;選項C和D的錯誤在于因為有了q=(*q).next做了賦值,則free(q)釋放了原來q后面的ー個結(jié)點。本題答案為B.知識點:知識點/結(jié)構(gòu)體(即“結(jié)構(gòu)")與共用體(即“聯(lián)合“)/用指針和結(jié)構(gòu)體構(gòu)成鏈表81、以下程序的輸出結(jié)果是 .main(){intx=05;charz="a';printf("%d\n",(x&l)&&(z<'z"));}A:0B:1C:2D:3答案:B評析:關(guān)系表達式(x&l)&&(z<'z'),(x&l)為真,(z<'z')也為真,兩個相與,自然也為真,以整型輸出,則輸出1.本題答案為B.知識點:知識點/位運算/簡單的位運算82、設(shè)xツ均為int型變量,Hx=10,y=3,則以下數(shù)據(jù)的輸出結(jié)果是printf('%d,%d\n-,x-,-y).A:10,3B:9,3C:9,2D:10,2答案:D評析:本題主要考查C語言的自減運算符。C語言的自減運算符有前置與后置兩種形式。當自減運算符前置時,變量先自減ー后再參與表達式運算;而后置時,變量先參與表達式運算后再自身減ー。本題答案為D.知識點:知識點Z基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用83、X.Y.Z被定義為int型變量,若從犍盤給X*Y、Z輸入數(shù)據(jù),正確的輸入語句是 。A:INPUTX,Y,Z;B:scanf(',%d%d%d",&X,&Y,&Z);C:scanf("%d%d%d",X,Y,Z);D:read("%d%d%d",&X,&Y,&Z);答案:B評析:本題考查C語言的格式化輸入語句.C語言中沒有INPUT與read語句,scanf()語句的格式為:scanf(“格式字符串”,變量地址1,變量地址2,...);本題答案C中,應(yīng)為變量地址。本題答案為B。知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用84、以下程序的輸出結(jié)果是。main(){inta=3;printf("%d\n",(a+=a-=a*a));B:1C:2D:-12答案:D評析:本題考查C語言的賦值運算符。a+=b就等于a=a+b,a-=b就等于a=a-b。本題答案為D。知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用85、設(shè)a、b,c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2則邏輯表達式(m=a>b)&&(n=c>d)運算后,n的值為 ?A:0B:1C:2D:3答案:A評析:本題考查C語言的比較運算符與邏輯運算符。C語言中比較表達式的運算結(jié)果為〇或1。0代表不成立,1表示成立。本題答案為A。知識點:知識點Z基本語句/表達式語句,空語句,復(fù)合語句86、閱讀以下程序main(){intx;scanf(“%d“,&x);if(x--<5)printf("%d\n",x);elseprintf("%d\n",x++);I程序運行后,如果從機盤上輸入51則輸出結(jié)果是 。答案:B評析:本題考查C語言中的自增(++)與自減(-)運算符。C語言中“++“與“一”運算符有前置與后置兩種形式,前置時變量先自增ー或自減一后再參與表達式的運算,后置時變量先參與表達式的運算后再自增ー或自減ー。本題答案為B。知識點:知識點/選擇結(jié)構(gòu)程序設(shè)計/用IF語句實現(xiàn)選擇結(jié)構(gòu)87、假定w、x、y、z、m均為int型變量,有如下程序段:w=l;x=2;y=3;z=4m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;則該程序段執(zhí)行后,m的值是答案:D評析本題考查C語言的條件運算符。C語言中條件運算符的表達式為:表達式?數(shù)1:數(shù)2當表達式為非零時條件運算符的表達式的值為數(shù)1,否則為數(shù)2。本題答案為D。知識點:知識點/基本語句/復(fù)合語句88、t為int類型,逬入下面的循環(huán)之前,t的值為〇,while(t=l){……}則以下敘述中正確的是 .A:循環(huán)控制表達式的值為〇B:循環(huán)控制表達式的值為1C:循環(huán)控制表達式不合法D:以上說法都不對答案:B評析:本題考查C語言的while循環(huán)語句。本題的t=l是ー個賦值表達式,其值為變量的值,所以while語句的循環(huán)控制表達式的值為,本題答案為B。知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計ハ/VHILE和DOWHILE循環(huán)結(jié)構(gòu)89、以下程序的輸出結(jié)果是^main(){intnum=0;while(num<=2)num++;printf("%d\n",num);}D)lQ12D)lQ12B)123A)B)0D:c??ABcD案析A1234答評本題考查C語言的while循環(huán)語句。C語言中while語句的一般形式如下:while(表達式)(語句部分;}該語句的執(zhí)行過程是:先計算表達式的值,若成立(即值為非零)則重新執(zhí)彳箍句部分(循環(huán)體),然后再次計算表達式的值,并重復(fù)上述過程,直到表達式的值為”假“(值為零)時,退出循環(huán),并轉(zhuǎn)下一語句去執(zhí)行.本題答案為C.知識點:知識點y循環(huán)結(jié)構(gòu)程序設(shè)計ハ/VHILE和D。WHILE循環(huán)結(jié)構(gòu)90、以下各選項企圖說明一種新的類型名,其中正確的是^.A:typedefvlint;B:typedefv2=int;C:typedefintv3;D:typedefv4:int答案:C評析:本題考查C語言的類型定義。C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當于為數(shù)據(jù)類型取個別名.本題答案為C。知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法91.設(shè)有以下函數(shù);f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n",f(a));A)B)C)D)777789107911137A:A)B:B)C:C)D:D)答案:A評析:本題考查的是C語言的靜態(tài)數(shù)據(jù)類型。靜態(tài)數(shù)據(jù)類型的變量的值在退出了函數(shù)時依然存放在內(nèi)存中,且只初始化一次.本題答案為A。知識點:知識點/循環(huán)結(jié)構(gòu)程序設(shè)計/FOR循環(huán)結(jié)構(gòu)92、以下選項中,非法的字符常量是^A:'\t'B:'\17'C:"\n"D:\xaa'答案:C評析:本題考查C語言的字符常量與轉(zhuǎn)義字符.C語言中字符常量是以單引號括起來的單個字符,或為以“ヾ與三位八進制數(shù)值或兩位十六逬制數(shù)值代替單個字符.本題答案為C知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法93、若有說明:inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是 .A:i=*p;B:*p=*&j;C:i=&j;D:i=**p;答案:B評析:本題考查C語言中指針賦值運算。指針是一種特殊的變量,它是用來存放變量地址的變量.指針定義時可以為其賦初值.只有指針被賦了值后才能對其使用.本題答案為B。知識點:知識點/基本語句/表達式語句,空語句,復(fù)合語句94、以下定義語句中,錯誤的是 .A:inta[]={1,2};B:char*a[3];C:chars[10]="test";D:intn=5,a[n];答案:D評析:本題考查C語言數(shù)組的定義與初始化。在C語言中數(shù)組的初始化可以對部分元素,數(shù)組的定義,不能含有變量.本題答案為D.知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法95、以下程序的輸出結(jié)果是main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf(,%d%d%d",a[2],a[5],a[8]);}A:258B:741C:852D:369答案:C評析:本題使循環(huán)語句給數(shù)組元素賦值。C語言中for循環(huán)語句的一般形式為:for(表達式1;表達式2;表達式3)(語句部分;}本題答案為C知識點:知識點Z循環(huán)結(jié)構(gòu)程序設(shè)計/FOR循環(huán)結(jié)構(gòu)96、以下程序的輸出結(jié)果是^main(){charst[20]="hello\0\t\\";printf("%d%d\n",strlen(st),sizeof(st));)A:99B:520C:1320D:2020答案:B評析:本題主要考查C語言的字符串與庫函數(shù)。C語言中字符串是以‘、〇’字符結(jié)束的,且strlen()函數(shù)計算的是'、〇'字符前的所有字符的個數(shù)。本題中strlen(sリ應(yīng)為5。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒有內(nèi)容。sizeof()函數(shù)是計算變量或數(shù)組的所分配到的內(nèi)存空間的大小.所以本題的sizeof(sり為2〇.本題答案為B。知識點:知識點/數(shù)據(jù)類型及其運算/不同類型數(shù)據(jù)間的轉(zhuǎn)換與運算97、以下程序輸出正確的是^=.amovep(int*p,int(*a)[3],intn){intij;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;})main(){int*p,a[3][3]={{l,3,5}f{2,4,6}};p=(int*)malloc(100);amovep(p(ar3);printf("%d%d\n",p[2],p[5]);free(p);}A:56B:25C:34D:程序錯誤答案:A評析:本題主要考查的是指針與數(shù)組的操作。可以用malloc()函數(shù)為指針分區(qū)內(nèi)存空間,用free。函數(shù)釋放指針變量所用內(nèi)存空間。本題答案為A。知識點:知識點Z循環(huán)結(jié)構(gòu)程序設(shè)計/FOR循環(huán)結(jié)構(gòu)98、以下程序的輸出結(jié)果是structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=l;h[0].y=2;h[l].x=3;h[l].y=4;h[O].p=&h[l];h[l].p=h;printf("%d%d\n",(h[O].p)->x,(h[l].p)->y);}A:12B:23C:14D:32答案:D評析:本題考查的是C語言中結(jié)構(gòu)體與鏈表。本題中是ー個含有兩個結(jié)點的循環(huán)鏈表。C語言中結(jié)構(gòu)體的定義為:struct結(jié)構(gòu)體類型名(成員表列;};本題答案為D。知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用99、以下程序的輸出結(jié)果是^main(){inta,b;for(a=l,b=l;a<=100;a++){if(b>=10)break;if(b%3==l){b+=3;continue;))printf("%d\n",a);}A:101B:6C:5D:4答案:D評析:本題主要考查考生對C語言中的循環(huán)語句和程序的執(zhí)行邏輯.本題中for循環(huán)語句共執(zhí)行3次,所以a的值累加3次,結(jié)果為4.本題答案為D.知識點:知識點"S環(huán)結(jié)構(gòu)程序設(shè)計/FOR循環(huán)結(jié)構(gòu).以下程序的輸出結(jié)果是ー=.unionmyun{struct{intx,yfz;}u;intk;}a;main(0{a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d\n",a.u.x);}A:4B:5C:6D:0答案:D評析:本題主要考查C語言中構(gòu)造類型,聯(lián)合體與結(jié)構(gòu)體。結(jié)構(gòu)體中的成員使用各自的存儲區(qū),而聯(lián)合體中的成員使用共同的存儲區(qū)。本題答案為D。知識點:知識點ノ基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用.以下程序的結(jié)果是inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf("%d%d\n",a,b);}A:100200B:57C:200100D:75答案:B評析:本題主要考查的是C語言中的變量作用域。全程變量是可以在子函數(shù)中對其值作改變,且它也可作為函數(shù)間的值傳遞。但當函數(shù)或子函數(shù)中定義了與全程變量名稱相同的局部變量,則全程變量將被屏蔽。所以本題主函數(shù)的局部變量a,b把同名的全程變量屏蔽了.本題答案為B。知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用102、以下選項中不屬于C語言的類型和是 “A:signedshortintB:unsignedcharC:singedlongD:longshort答案:D評析:C語言中歸納起來,基本類型數(shù)據(jù)有以下幾種:[singed]char;unsigedchar;[signed]short[int];unsignedshort[int];[signed]long[int];unsighedlong[int];float;double.本題答案為D。知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法103、若有說明語言:inta,b,c,*d=&c;則能正確從鍵盤讀入三個整數(shù)分別賦給變量a、b、c的語句是 。A:scanf("%d%d%d",&a,&b,d);B:scanf(-%d%d%d",&a,&b,&d);C:scanf("%d%d%d",a,b,d);D:scanf("%d%d%d",a,b,*d);答案:A評析:在scan楣句中,要為某ー變量賦值,引用的是該變量的地址,所以在這里要為a,b,c賦值可以寫成兩種形式,除了采用答案B的形式外,還可以寫成scanf("%d%d%d",&a,&b,d)。本題答案為A。知識點:知識點Z基本語句/表達式語句,空語句,復(fù)合語句104、在16位C編譯系統(tǒng)上,若定義longa;.則能給a蹴40000的正確語句是 .A:a=20000+20000B:a=4000*10C:a=30000+10000D:a=4000L*10L答案:D評析:除D之外的選項的右邊的表達式都超過了16位帶符號整數(shù)的范圍(32767).本題答案為D.知識點:知識點/基本語句/表達式語句,空語句,復(fù)合語句.以下敘述正確的是 .A:可以把define和if定義為用戶標識符B:可以把define定義為用戶標識符,但不能把if定義為用戶標識符C:可以把if定義為用戶標識符,但不能把define定義為用戶標識符D:define和i偷不能定義為用戶標識符答案:B評析:if屬于系統(tǒng)定義的32個標準標識符之一,所以不可以供用戶定義.define不在其中.本題答案為B.知識點:知識點/數(shù)據(jù)類型及其運算/C的數(shù)據(jù)類型及其定義方法.若定義:inta=511,*b=&a:1則print優(yōu)%d\n”,*b):的輸出結(jié)果為 ?A:無確定值B:a的地址C:512D:511答案:D評析:本題,首先定義了一個整型變量a,并將它賦值為511,然后又定義了一個指針變量,將它賦值為變?a的地址,在輸出語句中,輸出項是?b,而?b=a,所以輸出結(jié)果應(yīng)該是511.本題答案為D.知識點:知識點/基本語句/數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用.以下程序的輸出結(jié)果是main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>c?(a>c?a:c):(b));}A:5B:4C:6D:不確定答案:C評析:本題最重要的分析d=a>c?(a>c?a:c):(b)),首先運算括號內(nèi)的式子a>c?a:c,它的值是c的值6I即式子化成d=a>c?6:4.顯然a>c,所以將6賦給d.本題答案為C知識
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度環(huán)保設(shè)備研發(fā)項目委托合同
- 遼寧2025年遼寧中醫(yī)藥大學(xué)附屬醫(yī)院招聘42人筆試歷年參考題庫附帶答案詳解
- 蘇州江蘇蘇州大學(xué)科研助理崗位招聘9人筆試歷年參考題庫附帶答案詳解
- 百色2025年廣西百色學(xué)院招聘195人筆試歷年參考題庫附帶答案詳解
- 溫州浙江溫州市司法局招聘行政復(fù)議輔助人員筆試歷年參考題庫附帶答案詳解
- 杭州浙江杭州市余杭區(qū)良渚杭行幼兒園招聘合同制教師19人筆試歷年參考題庫附帶答案詳解
- 2025年中國多功能數(shù)字功放式調(diào)音臺市場調(diào)查研究報告
- 2025至2031年中國頂置式沙缸行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國編織纏繞耐熱膠管行業(yè)投資前景及策略咨詢研究報告
- 2025年生命體癥檢測儀項目可行性研究報告
- 兒科重癥監(jiān)護病房管理演示文稿
- 九年級班主任開學(xué)第一課設(shè)計課件
- 建設(shè)工程項目管理課程-課件
- 甲基異丁基甲酮化學(xué)品安全技術(shù)說明書
- SURPAC軟件地質(zhì)建模操作步驟
- (中職)化學(xué)分析技術(shù)項目一 走進化學(xué)分析實驗室教學(xué)課件
- 秘書實務(wù)完整版課件全套ppt教程
- 新版神經(jīng)系統(tǒng)疾病的病史采集和體格檢查ppt
- 義務(wù)教育《歷史》課程標準(2022年版)
- 螺栓扭緊力矩表
- 國家標準硬度轉(zhuǎn)換表
評論
0/150
提交評論