版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
國家二級C語言機試(C語言程序設(shè)
計)模擬試卷第1套
一、選擇題(本題共40題,每題1.0分,共40分。)
1、下列敘述中正確的是()。
A、循環(huán)隊列中的元素個數(shù)隨隊頭指針與隊尾指針的變化而動態(tài)變化
B、循環(huán)隊列中的元素個數(shù)隨隊頭指針的變化而動態(tài)變化
C、循環(huán)隊列中的元素個數(shù)隨隊尾指針的變化而動態(tài)變化
D、以上說法都不對
標(biāo)準(zhǔn)答案:A
知識點解析:在循環(huán)隊列中,用隊尾指針rear指向隊列中的隊尾元素,用隊頭指
針front指向隊頭元素的前一個位置因此,從隊頭指針front指向的后一個位置直
到隊尾指針rear指向的位置之間,所有的元素均為隊列中的元素。所以循環(huán)隊列
中的元素個數(shù)隨隊頭指針和隊尾指針的變化而變化。故A選項正確。
2、下列關(guān)于棧的敘述中,正確的是()。
A、棧底元素一定是最后入棧的元素
B、棧頂元素一定是最先入棧的元素
C、棧操作遵循“先進后出''的原則
D、以上說法均錯誤
標(biāo)準(zhǔn)答案:C
知識點解析:棧頂元素總是后被插入的元素,也是最先被刪除的元素;棧底元素總
是最先被插入的元素,也是最后才被刪除的元素;棧的修改是按“后進先出”的原則
進行的。因此,棧稱為“先進后出”表,或“后進先出''表,故C選項正確。
3、設(shè)某二叉樹的后序序列為CBA,中序序列為ABC,則該二叉樹的前序序列為
()。
A、BCA
B、CBA
C、ABC
D、CAB
標(biāo)準(zhǔn)答案:C
知識點解析:后序序列為CBA,中序序列為ABC,則說明,A為根結(jié)點,并且B
和C均在A的右子樹上;結(jié)點B和C中,后序序列為CB,中序序列為BC,則說
明結(jié)點C在結(jié)點B的右子樹上,根據(jù)分析可得,該二叉樹的前序序列為ABC,答
案選C。
4、結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是()。
A、程序的規(guī)模
B、程序的效率
C、程序設(shè)計語言的先進性
D、程序易讀性
標(biāo)準(zhǔn)答案:D
知識點解析:結(jié)構(gòu)化程序設(shè)計強調(diào)的是程序的易讀性。
5、為了使模塊盡可能獨立,要求()。
A、模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強
B、模塊的內(nèi)聚程度耍盡量高,且各模塊間的耦合程度要盡量弱
C、模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D、模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強
標(biāo)準(zhǔn)答案:B
知識點解析?:系統(tǒng)設(shè)計的質(zhì)量主要反映在模塊的獨立性上。評價模塊獨立性的主要
標(biāo)準(zhǔn)有兩個:一是模塊之間的耦合,它表明兩個模塊之間互相獨立的程度;二是模
塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地
弱,即模塊盡可能獨立,而要求模塊的內(nèi)聚程度盡量地高。
6、在結(jié)構(gòu)化方法中,軟件功能屬于軟件開發(fā)中的()階段。
A、詳細(xì)設(shè)計
B、需求分析
C、總體設(shè)計
D、編程調(diào)試
標(biāo)準(zhǔn)答案:C
知識點解析:總體設(shè)計過程通常由兩個主要階段組成:系統(tǒng)設(shè)計,確定系統(tǒng)的具體
實現(xiàn)方案;結(jié)構(gòu)設(shè)計,確定軟件結(jié)構(gòu)。為確定軟件結(jié)構(gòu),首先需要從實現(xiàn)角度把復(fù)
雜的功能進一步分解.分析員結(jié)合算法描述仔細(xì)分析數(shù)據(jù)流圖中的每個處理,如果
一個處理的功能過分復(fù)雜,必須把它的功能適當(dāng)?shù)胤纸獬梢幌盗斜容^簡單的功能。
7、下列敘述中正確的是()。
A、程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)
B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)
C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D、以上說法均錯誤
標(biāo)準(zhǔn)答案:A
知識點解析:程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)、數(shù)據(jù)的邏輯結(jié)構(gòu)、程序的控制結(jié)
構(gòu)、所處理的數(shù)據(jù)量等有關(guān)。
8、關(guān)系數(shù)據(jù)庫管理系統(tǒng)所管理的關(guān)系是()。
A、若干個二維表
B、一個DBF文件
C、一個DBC文件
D、若干個DBC文件
標(biāo)準(zhǔn)答案:A
知識點解析:在關(guān)系數(shù)據(jù)庫中,一個表就是一個關(guān)系,關(guān)系數(shù)據(jù)庫管理系統(tǒng)管理的
關(guān)系就是多個二維表。
9、結(jié)構(gòu)化程序設(shè)計中,下面對goto語句使用描述正確的是()。
A、禁止使用goto語句
B、使用goto語句程序效率高
C、應(yīng)避免濫用got。語句
D、以上說法均錯誤
標(biāo)準(zhǔn)答案:C
知識點解析:結(jié)構(gòu)化程序設(shè)計中,要注意盡量避免got。語句的使用,故C選項正
確。
10、設(shè)有如下三個關(guān)系表:下列操作中正確的是()。
A、T=RCIS
B、T=RUS
C、T=RxS
D、T=R/S
標(biāo)準(zhǔn)答案:B
知識點解析:兩個相同結(jié)構(gòu)關(guān)系的“并”是由屬于這兩個關(guān)系的元組組成的集合。
11、以下選項中合法的標(biāo)識符是()。
A、_11
B、1—1
C、1_1
D、1
標(biāo)準(zhǔn)答案:A
知識點解析:標(biāo)識符由字母、數(shù)字或下畫線組成,并且數(shù)字不能開頭。故A選項
是合法的標(biāo)識符。
12、以下敘述中錯誤的是()。
A、C程序經(jīng)過編譯、鏈接步驟之后才能形成一個真正可執(zhí)行的二進制機器指令文
件
B、C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令
C、用C語言編寫的程序稱為源程序,它以ASCH代碼形式存放在一個文本文件中
D、C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序
標(biāo)準(zhǔn)答案:B
知識點解析:C語言程序編譯時將每條可執(zhí)行語句轉(zhuǎn)換為二進制的機器指令,但非
執(zhí)行語句(如注釋語句)不被編譯。所以選項B錯誤.
13、若有定義:inta=0,b=0,c=0,d=0;,有C語言表達式(a++&&b++)?c++:
d++,以下關(guān)于其執(zhí)行順序的敘述中正確是()。
A、先執(zhí)行a++,表達式a++的值為0,由此即可確定(a++&&b++)值為0,因比執(zhí)
行d++
B、先執(zhí)行a++,表達式a++的值為0:再執(zhí)行b++,表達式b++的值為0,由此可
確定(a++&&b++)值為0,因此執(zhí)行d++
C、先執(zhí)行a++,表達式a++的值為1;再執(zhí)行b++,表達式b++的值為1,由此可
確定(a++&&b++)值為1,因此執(zhí)行C++
D、先執(zhí)行b++,表達式b++的值為1;再執(zhí)行a++,表達式a++的值為1,由此可
確定(a++&&b++)值為1,因此執(zhí)行c++
標(biāo)準(zhǔn)答案:A
知識點解析:把握前置運算和后置運算的基本運算規(guī)則。
14、表達式:(int)((douhle)9/2)—(9)%2的值是()。
A、0
B、3
C、4
D、5
標(biāo)準(zhǔn)答案:B
知識點解析:運算符和“%”的優(yōu)先級高于“一”,所以先進行除法和求余運算,
再進行減法運算。強制類型轉(zhuǎn)換表達式的形式:(類型名)(表達式)?!?/2”結(jié)果為
4,轉(zhuǎn)換成double類型再轉(zhuǎn)換成int類型結(jié)果依然為4,(9)%2的結(jié)果為1,4—1的
最后結(jié)果為3o
15、以下選項中敘述正確的是()。
A、函數(shù)體必須由{開始
B、C程序必須由main語句開始
C、C程序中的注釋可以嵌套
D、C程序中的注釋必須在一行里完成
標(biāo)準(zhǔn)答案:A
知識點解析:函數(shù)體是函數(shù)首部下面的花括號內(nèi)的部分,所以函數(shù)休必須由{開
始,A項正確。一個源程序文件可以包括預(yù)處理命令、全局聲明、函數(shù)定義,程序
總是從main函數(shù)開始執(zhí)行的,不是rflain語句,B項錯誤。C程序中允許兩種注
釋,以//開頭的單行注釋;以/*開始,以*/結(jié)束的塊式注釋,D項錯誤。函數(shù)
可以嵌套,注釋不能嵌套,C項錯誤。
16、若有以下程序段:intr=8:printfC%d\n",r>>l);輸出結(jié)果是()。
A、16
B、8
C、4
D、2
標(biāo)準(zhǔn)答案:C
知識點解析?:C語言中“>>”是對二進制的右移運算符,右移相當(dāng)于將原數(shù)做除二
操作,它將原數(shù)右移相應(yīng)位數(shù),并將移出的位舍去,在高位補0,將所得的結(jié)果再
賦值給變量。本題中8的二進制為00001000,右移一位得到00000100,所以是
40
17、以下能對一維數(shù)組a進行初始化的語句是()。
A>inta[5]=(0,1,2,3,4);
inta(5)={};
C>inta[3]={0,I,2);
D、inta{5}={10*1);
標(biāo)準(zhǔn)答案:C
知識點解析:選項A,數(shù)組可以看作是若干個相同數(shù)據(jù)類型元素的有序集合,因此
以集合的形式對其初始叱,使用{}對其初始化;選項BD,常量表達式只能放在中
括號口中.故「選項正確C
18、若有定義:inta;floatb;doublec;,程序運行時輸入:123V回車>,能把
1輸入給變量a、把2輸入給變量b、把3輸入給變量c的輸入語句是()。
A、scanf("%d%f%ir,&a,&b,&c);
B、scanf("%d%f%l『.,&a,&b,&c);
C、scanf("%d%If%If',&a,&b,&c);
D、scanf("%d%f%f,&a,&b,&c):
標(biāo)準(zhǔn)答案:A
知識點解析:在scanf()函數(shù)中,a變量為整數(shù)用%d格式字符串,a變量為單精度
數(shù)用%f格式字符串,a變量為雙精度數(shù)用%lf格式字符串,只有A選項正確。
19、下列數(shù)據(jù)中屬于“字符串常量”的是()。
A、
B、{ABC}
C、abc\O,
D、a'
標(biāo)準(zhǔn)答案:A
知識點解析:在C語言中,若干個字符構(gòu)成字符串,用單引號標(biāo)識字符,用雙引
號標(biāo)識字符串。選項A,用雙引號標(biāo)識字符串,正確:選項B和C,分別用花括
號和單引號標(biāo)識字符串,錯誤;選項D,標(biāo)識字符。故A選項正確。
20、當(dāng)變量C的值不為2、4、6時,值為“真”的表達式是()。
A、(c==2)||(c==4)||(c==6)
13、(c>=2&&c<=6)||(c!=3)||(c!=5)
C、(c>=2&&c<=6)&&!(c%2)
D、(c>=2&&c<=6)&&(c%2!=l)
標(biāo)準(zhǔn)答案:B
知識點解析:本題主要考查的是邏輯表達式。邏輯與運算中只有兩邊的表達式同時
為真,最后結(jié)果才為真;參與邏輯或運算的表達式只要有一個為真,最后結(jié)果就為
真。選項A中表達式的意思是當(dāng)c等于2或4或6時,表達式的值為真,否則為
假,所以不滿足題意。選項C中表達式的意思是當(dāng)c大于等于2且小于等于6,并
且c不是奇數(shù)時,表達式的值為真,否則為假。此時滿足該表達式的c只能取值為
2、4、6,所以也不滿足題意。選項D中后面一個子表達式(c%21=1)和選項C中
的!(c%2)是等價的,都是判斷c不是奇數(shù),因此也不滿足題意。故B選項正確。
21、有以下程序:#include<stdio.h>main()(floata,b,C,t:a=3;b=7;
c=l;if(a>b){t=a;a=b.b=t;)if(a>c){t=a;a=c;c=t;)if(b>c){t=b;b=c;
c=t;)printf("%5.2f,%5.2f,%5.2f,a,b,c);}程序運行后的輸出結(jié)果
是(其中口代表空格)()。
A、口口3.00,口口1.00,口口7.00
B、口口3.00,口口7.00,口口1.00
C、口口I.00.口口3.00,□□7.()0
D、口口7.00,口口3.00,□□1.00
標(biāo)準(zhǔn)答案:C
知識點解析:本題考查if語句。該題包含了3個if語句,每個if語句后的{}都不
可省略,因為每個什中都包含了多條語句。首先判斷條件a>b,由于3小于7,表
達式a>b不成立,因此不執(zhí)行{l=a;a=b;b=t;);然后判斷條件a>c,由于3大
于1,因此表達式a>c成立,則執(zhí)行{t=a;a=c;c=t;),該表達式語句是用來交
換a和c的值,執(zhí)行完后a為1,c為3;然后判斷條件b>c,由于7大于c中的
3,因此b>c成立,則執(zhí)行{t=b.b=c;c=t;},過程同上,執(zhí)行后b為3,c為
7。printf語句用來輸出a,b,c中的值,并且要求輸出的每個數(shù)據(jù)寬度為5個空
格,小數(shù)部分保留2位,數(shù)據(jù)右對齊。故最后輸出為C選項中所示結(jié)果。
22、有以下程序:#include<stdio.h>main(){inta=Lb=0;for(;a<5;a++)
{if(a%2==0)break;continue;b+=a:)printf("%d\n",b):}程序運行后的輸出
結(jié)果是()。
A、0
B、1
C、10
D、4
標(biāo)準(zhǔn)答案:A
知識點解析:第一次循環(huán),a=l,a%2!=0所以執(zhí)行break,整個循環(huán)結(jié)束,所以
b=0o
23、有以下程序:#include<stdio.h>main()(intstlm=10,n=l;while(n<3)
{sum=sum—n;n++;(pnntt("%d?%d"?n,sum);)程序運行后的輸出結(jié)果是
()o
A、2,8
B、3,7
C、3,8
D、2,7
標(biāo)準(zhǔn)答案:B
知識點解析:考查while循環(huán)。當(dāng)循環(huán)條件n<3成立的時候,執(zhí)行循環(huán)體
(sum=sum—n;n++;)中的語句。循環(huán)初值sum為10,n為1。首先判斷循環(huán)條件
n73成立,開始第1次循環(huán),執(zhí)行sum=sum—n=10—1=9,執(zhí)彳jn十十,即將n中的
值加1,執(zhí)行后n為2;此時n中的值為2,sum中的值為9,循環(huán)條件n<3成
立,繼續(xù)執(zhí)行第2次循環(huán),執(zhí)行sum=sum—n=9一2=7,執(zhí)行n++,即將n中的值
加I,執(zhí)行后n為3;n為3時,循環(huán)條件不成立,結(jié)束循環(huán),輸出結(jié)果為3,7。
故B選項正確。
24、以下敘述中正確的是()。
A、數(shù)組說明符的一對方括號中只能使用整型常量,而不能使用表達式
B、一條語句只能定義一個數(shù)組
C、每個數(shù)組包含一組具有同一類型的變量.這些變量在內(nèi)存中占有連續(xù)的存儲單
元
D、在引用數(shù)組元素時,下標(biāo)表達式可以使用浮點數(shù)
標(biāo)準(zhǔn)答案:C
知識點解析:同類元素的集合稱為數(shù)組,數(shù)組元素在內(nèi)存中占據(jù)連續(xù)的存儲空間,
答案C正確。方括號中可以為整型變量或者常量表達式,選項A錯。在使用逗號
運算符的情況下,一條語句可以定義多個數(shù)組,選項B錯。數(shù)組元素在數(shù)組中的
下標(biāo)為整型常量或者變量構(gòu)成的整型表達式,不能為浮點數(shù),選項D錯。
25、以下敘述中正確的是()。
A、charcl,c2,*c3,c4[40];是合法的變量定義語句
B、數(shù)組下標(biāo)的下限由數(shù)組中第一個#零元素的位置決定
C、數(shù)組下標(biāo)的下限由數(shù)組中第一個被賦值元素的位置決定
D、數(shù)組下標(biāo)的下限是1
標(biāo)準(zhǔn)答案:A
知識點解析:A正確,charcl,c2,*c3,c4[40]表示定義了兩個字符變量cl、c2,
一個字符指針c3,一個字符數(shù)組c4。數(shù)組的下限永遠(yuǎn)為0,選項B、C、D錯,答
案選A。
26、設(shè)有定義:charp[]={T,2,3},*q=p;以下不能計算出一個char型數(shù)據(jù)
所占字節(jié)數(shù)的表達式是()。
A、sizeof(*q)
B、sizeof(char)
C、sizeof(p)
D、sizcot(ptOJ)
標(biāo)準(zhǔn)答案:C
知識點解析:數(shù)組名表示該數(shù)組的首地址,是一個地址常量,所以sizeof(p)求得的
是一個地址占用的字節(jié)數(shù),即4個字節(jié),答案選C。
27、以下敘述中正確的是()。
A、語句chara[2]={”a”,“b"):是合法的,定義了一個包含兩個字符的數(shù)組
B、語句inta口={0};是不合法的,遺漏了數(shù)組的大小
C、語句inta[8]={0};是合法的
D、語句chara[3]:a="ab":是合法的,因為數(shù)組有三個字符空間的容量,可以保
存兩個字符
標(biāo)準(zhǔn)答案:C
知識點解析:考查一維數(shù)組以及字符數(shù)組的初始化。初始化的時候可以只給數(shù)組的
前面一部分元素設(shè)定初值,故C正確。字符數(shù)組中的每個元素為一個字符,需要
用單引號,選項A錯。若對數(shù)組全部元素賦初值時,可以不指定數(shù)組元素的個
數(shù),選項B錯。定義字符數(shù)組時可以將字符串直接賦給該字符數(shù)組,其他情況則
不可以,選項D錯。答案選C。
28、有以下程序:#include<stdio.h>intk=5;voidf(int*s){s=&k;}main()
{intm=3,*p=&m;f(p):printf("Md%d\n",m,*p);}程序的運行結(jié)果是
()o
A、33
B、55
C>35
D、53
標(biāo)準(zhǔn)答案:A
知識點解析:考查函數(shù),'專參。C語言中,數(shù)據(jù)只能從實參單向傳遞給形參,指針作
為函數(shù)參數(shù)時,形參仍然作為實參的副本被賦值,形參指針變量的指向改變不能影
響實參指針變量的指向,結(jié)果不變,答案選A。
29、有以下程序:#include<stdio.h>main(){intx[3][3]={1,2,3,4,5,6,
7,8,9),i;for(i=l;i<3;i++)printf(',%dH,x[i][3—i]);}程序運行后的輸出
結(jié)果是()。
A、2,4
B、6,8
C、3,7
D、2,6
標(biāo)準(zhǔn)答案:B
知識點解析:二維數(shù)組的起始行標(biāo)和列標(biāo)均為O,即x[0][0]=l。當(dāng)i=l時,for循
環(huán)判斷條件成立,輸出x[l|[2]=6;此時i自增為2,開始第二次for循環(huán),條件成
立,輸出x[2][l]=8.故B選項正確。
3。、下列錯誤的定義是()。
A、int*p=&i,i;
int*p,i:
C、inti,*p=&i;
D、inti,*p;
標(biāo)準(zhǔn)答案:A
知識點解析:選項A,先定義一個整型指針變量p,然后將變量i的地址賦給p。
然而此時還未定義變量i,因此編譯器無法獲得變量i的地址,A選項錯誤。A與
C對比,選項C先定義變量i,則在內(nèi)存中為i分配空間,因此i在內(nèi)存空間的地址
就可以確定了,然后再定義p,此時可以為p賦i的地址,C選項正確。
31、有以下程序:#include<stdio.h>main(){inta[2][3]=((l,2,3),{4,5,
6)}:intb[3][2],i,j;for(i=0;i<=l;i++){for(j=0;j<=2;j++)
b[j][i]=a[i][j];}for(i=0;i<=2;i++){for(j=0;j<=l;j++)printf("%d",
b[j][j]);}}程序的運行結(jié)果是()。
A、123456
B、I35246
C、142536
D、132546
標(biāo)準(zhǔn)答案:C
知識點解析:本題考查for循環(huán)的嵌套以及二維數(shù)組的賦值和輸出。第一個for循
環(huán)嵌套用來給二維數(shù)組b中的各元素賦值,執(zhí)行完后得到b[3][2]={{l,4),{2,
5),{3,6}}。第二個for循環(huán)嵌套用來輸出二維數(shù)組b中的各元素。依次輸出為
b[0][0],b[0][l],b[l][0|,b[l][l],b[2][0],b[2][l],故輸出結(jié)果為132546。
,,
32、若有定義語句:charts1="GOOD",*s2="good;以下選項中,能夠輸出
“GOOD”語句是()。
A、if(strcmp(sl,s2)!=0)puts(s2);
B、if(strcmp(sl,s2)!=0)puts(sl);
C、if(strcmp(sl,s2)==l)puts(sl);
D、if(strcmp(sl,s2)==0)puts(sl);
標(biāo)準(zhǔn)答案:B
知識點解析:strcmp(sl,s2)是字符串比較函數(shù),比較方式是兩個字符串從左自右
逐個字符進行比價(按照ASCII碼值大小),以第一個不相同字符的大小作為比較結(jié)
果。由于大寫字母的ASCII碼值小于小寫字母的ASCII碼值,所以比較后的結(jié)果
為負(fù)值,故只有B選項符合題意。
33、有以卜程序:#include<stdio.h>unsignedfun(unsignednum){unsigned
k=l:do{k*=num%10;num/=10:}while(num):returnk:}main(){unsigned
n=26:printf("%d\nH,fun(n));}程序運行后的輸出結(jié)果是()。
A、12
B、10
C、16
D、8
標(biāo)準(zhǔn)答案:A
知識點解析:程序首先執(zhí)行main函數(shù),執(zhí)行primf「%d\n”,fun(n));即輸出表達
式fun(6)的值,為了計算該表達式,需要調(diào)用函數(shù)func。此時main將n中的26作
為實參傳遞給fun的num,即num值為26,接著執(zhí)行do—while語句。第1次循
環(huán),執(zhí)行k*=num%10,即k=k*(num%10)=1*(26%10)=6;執(zhí)行num/=10,即
num=num/10=26/10=2;while后面循環(huán)條件為num,此時num為2,是非0
值,即表示循環(huán)條件成立,繼續(xù)執(zhí)行循環(huán)體。此時k為6,num為2,執(zhí)行do-
while中的語句后,k為12,num為0。由丁,while后面循環(huán)條件為num,此時num
為0,表示循環(huán)條件不成立,結(jié)束循環(huán),執(zhí)行returnk,即返回至main函數(shù)中的被
調(diào)用處,執(zhí)行main函數(shù),執(zhí)行printf語句,輸出結(jié)果為12。
34、在C語言中,只有在使用時才占用內(nèi)存單元的變量的是()。
A、auto^11register
extern和register
C、autoflstatic
D、staticregister
標(biāo)準(zhǔn)答案:A
知識點解析:C語言中,動態(tài)存儲區(qū)域中存放的變量在使用時才分配內(nèi)存空間。
auto變量的存儲單元是分配在內(nèi)存的動態(tài)存儲區(qū)中,每當(dāng)進入函數(shù)體時自動分配存
儲單元。register變量也是自動類變量。static說明的變量為靜態(tài)變量,靜態(tài)變量在
內(nèi)存的靜態(tài)存儲中占據(jù)著永久的存儲單元,直至程序運行結(jié)束。extern說明的變量
為外部變量,屬于全局變量,全局變量在整個程序運行期間都占用內(nèi)存空間。
35、若有如下定義:char*ps[]={"aa","bb",Hcc","dd");,則以下敘述中正確的
是()。
A、*ps[0]是字符,A,
B、*ps[0]是字符串“aa”
C、ps[0]是字符,A'
D、ps是字符串“aa”
標(biāo)準(zhǔn)答案:B
知識點解析:對于指針數(shù)組,ps|O|代表的就是第一個字符串的地址。
36、以下敘述中正確的是()。
A、在C語言中,預(yù)處理命令行都以#開頭
B、預(yù)處理命令行必須位于C源程序的起始位置
C、#include<stdio.h>必須放在C程序的開頭
D、C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能
標(biāo)準(zhǔn)答案:A
知識點解析:C語言中,凡是以#開頭的都被稱為編譯預(yù)處理行,選項A正確;預(yù)
處理行可以放在C源程序的任何位置,習(xí)慣放在起始位置,選項B錯誤;語句
#include<stdio.h>必須放在使用文件stdio.h中用關(guān)方法的語句之前,但是不一
定非要放在C程序開頭,選項C錯誤;預(yù)處理包括宏定義、文件包含和條件編譯
等,選項D錯誤。
37、有以下程序:#include<stdio.h>main()(staticchara[]="Program",*ptr;
for(ptr=a;ptr<a+7;ptr+=2)putchar(*ptr);}程序運行后的結(jié)果為()。
A、Prog
B、Porm
C、rga
D、Por
標(biāo)準(zhǔn)答案:B
知識點解析:首先定義一個字符型數(shù)組a,并對a進行初始化,然后定義字符型指
針變量p。執(zhí)行for語句,ptr=a表示將數(shù)組a的地址賦給ptr;ptr<a+7代表循環(huán)條
件,ptr+=2,即ptr=ptr+2。執(zhí)行putchar(*ptr);即輸出*pt所對應(yīng)的字符。此時ptr
指向數(shù)組中的第1個元素,即a[0],因此*ptr表示a[0]中的值,即P,此時輸出
P;然后執(zhí)行ptr+=2,此時ptr指向數(shù)組中的第3個元素,即a⑵,輸出0;然后執(zhí)
行阿+=2,此時凡指向數(shù)組中的第5個元素,即a[4],輸出r;然后執(zhí)行pir+=2,
此時ptr指向數(shù)組中的第6個元素.即輸出m:然后執(zhí)行ptr+=2.得到
ptr=a+8<a+7,即循環(huán)條件不成立,循環(huán)結(jié)束,最終輸出結(jié)果為Porm。
38、有以下程序:#include<stdio.h>main(){inti;FILE*fp;for(i=0;i<3;
i++){fp=fopen("res.txt","w");fj)utc('K'+i,fp);fclose(fp);}}程序運行后,
在當(dāng)前目錄下會生成一個res.txt文件,其內(nèi)容是()。
A、M
B、EOF
C、KLM
D、L
標(biāo)準(zhǔn)答案:A
知識點解析:通過三次循環(huán),最后i的值定格在2,最后儲存值,K,+2=,M1所以
最后保存的數(shù)值為M。注意:fclose函數(shù),每次都關(guān)閉文件,并且重新回到文件首
地址。
39、有以下程序:#include<stdio.h>structSt{intx:inty;}a[2]={5,7,2,
9);main(){printf("%dkn'\a[O].x);}程序運行后的輸出結(jié)果是()。
A、10
B、18
C、14
D、63
標(biāo)準(zhǔn)答案:c
知識點腦析:首先是定義結(jié)構(gòu)體st,st中共有兩個整型成員x,y。然后定義一個st
類型的數(shù)組a,a的長度為2,即數(shù)組中含有兩個st類型的元素,分別是a[0]和
a|l|o對a進行初始化,此題是按照存儲順序進行初始化,即將5賦給a[0]中的
x(即a[0].x=5),將7賦給a[0]中的y(即a[0].y=7),將2賦給a[l]中的x(即
a[l].x=2),將9賦給a⑴中的y(即a。].y=9)。執(zhí)行main函數(shù),輸出表達式
a[0].y*a[l].x的值,即7*2的值14。
40、下列關(guān)于C語言文件的敘述中正確的是()。
A、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件
B、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件
C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件
D、文件由字符序列組成,其類型只能是文本文件
標(biāo)準(zhǔn)答案:C
知識點解析:C語言將文件看作是一個字符(字節(jié))的序列,即由一個一個字符(字
節(jié))數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組成形式,可將文件分為兩種:①ASCII文件,又
稱文本(text)文件,它的每一個字節(jié)可放一個ASCH碼,代表一個字符;②二進制
文件,是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。所以
C文件就是一個字節(jié)流或一個二進制流。
二、程序填空題(本題共I題,每題7.0分,共[分0)
41、給定程序通過定義并賦初值的方式,利用結(jié)構(gòu)體變量存儲了一名學(xué)生的學(xué)號、
姓名和3門課的成績。函數(shù)fun的功能是將該學(xué)生的各科成績都乘以一個系數(shù)a。
注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>
typedefstruct]intnum;charname[9];floatscore[3J;JSTU;voidshow(STUtt)
{inti;printf("%d%s:",tt.num,tt.name);for(i=0;i<3;i++)printf("%
5.if,tt.score[i]);printf(n\n");}/******found******/voidmodify(J.
*ss,floata){inti;for(i=0;i<3;i++)/******found******/ss—>_2
*=a;}main(){STUstd={1,"Zhanghua'1,76.5,78.0,82.0);floata;
printf("Theoriginalnumberandnameandscores:\n");show(std);printf("Inputa
number:");scanf("%f',&a);/******found******/modifvC3ya);
printf("Aresultofmodifying:\n");show(std);}
標(biāo)準(zhǔn)答案:(l)STU(2)score[i](3)&std
知識點解析:本題考查:數(shù)組變量賦值;函數(shù)實參定義。本題是利用結(jié)構(gòu)體存儲
學(xué)生記錄,對記錄進行修改并由實參SS返回。填空1:實參SS是一個結(jié)構(gòu)型指針
變量,所以應(yīng)填STU。填空2:該學(xué)生的各科成績都乘以一個系數(shù)a,所以應(yīng)填
score|i]o填空3:函數(shù)的調(diào)用,由于函數(shù)定義時使用的指針結(jié)構(gòu)型變量,所以應(yīng)
填&std。
三、程序修改題(本題共1題,每題1.0分,共1分0)
42、以下給定程序中,函數(shù)fun的功能是:判斷輸入的任何一個正整數(shù)n,是否等
于某個連續(xù)正整數(shù)序列之和。若是,則輸出所有可能的序列。否則輸出“不能分
解“。例如:當(dāng)輸入100時,輸出:100=9+10+11+12+13+14+15+16
100=18+19+20+21+22請改正函數(shù)fun中指定部位的錯誤,使它能得出正確的結(jié)
果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題
程序:#include<stdio.h>voidfun(intn){intj,b,c,m,flag=0;for(b=l;b<
=n/2.b++)[/******found******/n=m:c=b:while(m!=0&&m>=c){/
******jpQund******/JYI=nix:c++}/******found******/
{printf("%d=n,n);for(j=b;j<c—1;j++)printf("%d+",j);printf(H%d\n",
j);flag=1:}}if(flag=O)printf("不能分解\n"):}main(){intn;printf("請輸入
一個整數(shù):");scanf("%d'\&n);fun(n);}
標(biāo)準(zhǔn)答案:(l)m=n:(2)m=m―c;C++;(3)if(m==0)
知識點解析:(1)每次循環(huán),程序需要對n執(zhí)行減去連續(xù)的正整數(shù)序列,來判斷n
是否剛好為0,即n是否是連續(xù)的正整數(shù)序列之和,所以需要使用臨時變量m寄存
n的值,每次循環(huán)對m執(zhí)行減運算操作,不滿足繼續(xù)下一輪,另外程序聲明變量m
時,未初始化它的值,所以此處應(yīng)該修改為:m=n:o(2)語法錯誤,C語言中每
個語句必須以分號結(jié)束,修改為:m=mr;C++;。(3)題目判斷n是否是連續(xù)的
正整數(shù)序列之和。若是,則輸出所有序列,程序中m依次減去連續(xù)的正整數(shù),當(dāng)
m為。時,表示m(即n]滿足條件,再輸出當(dāng)前序列中的每個正整數(shù),所以此處判
斷條件反了,應(yīng)修改為:if(m==0)。
四、程序設(shè)計題(本題共I題,每題7.0分,共[分0)
43、規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:使字符
串的前導(dǎo)*號不得多于n個,若多于n個,則刪除多余的*號;若少于或等n個,則
不做處理,字符串中間和尾部的*號不刪除。例如,字符串中的內(nèi)容為:******
*A*BC*DEF*G****,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:**
**A*BC*DEF*G****;若n的值為8,則字符串中的內(nèi)容仍為:*******
A*BC*DEF*G****。n的值在主函數(shù)中輸入。在編寫函數(shù)時,不得使用C語
言提供的字符串函數(shù)。注意:請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅
在函數(shù)fun的花括號中填入所編寫的若干語句。試題程序:#include<sldio.h>
voidfun(char*a,intn){)main(){chars[81];intn;voidNONO();printf("Entera
string:n");gels(s);printf(HEntern:M);scanf(*'%d",&n);fun(s,n);
printf("Thestringafterdeleted:n");puts(s):NONO();}voidNONO0{/*本函
數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*in,
*out;inli,n;chars|811;in=fopen(Hin.dal","r");out=fopen("out.dat",
"wn);for(i=0:i<10:i++){fscanf(in,"%s",s):fscanf(in,"%d",&n);
fun(s,n);fprintf(out,"%s\n",s);}fclose(in);fclose(out);(
標(biāo)準(zhǔn)答案:voidfun(cha「*a,inin){inii=0:intk=0:char*p,*l;p=t=a;/*開
始時,p與t同時指向數(shù)組的首地址*/while(*t==,*'){k++;t++:}/*用k來統(tǒng)
計前部星號的個數(shù)*/if(k>n)/*如果k大于n,則使p的前部保留n個星號,其
后的字符依次存入數(shù)組a中*/{while(*p){a[i]=*(p+k—n);i++;p++;}a[i]=,
\0\/*在字符串最后加上結(jié)束標(biāo)識位*/}}
知識點解析:本題考查:循環(huán)判斷語句;字符串的操作。字符串中前導(dǎo)*號不能多
于n個,多余的刪除。首先需要通過while循環(huán)統(tǒng)計字符串前導(dǎo)*號的個數(shù),然后
通過if條件語句完成前導(dǎo)*號的個數(shù)和n的比較,如果前導(dǎo)*號多于n個,需要把n
個*號和其余字符重新保留。
家二級C語言機試(C語言程序設(shè)
計)模擬試卷第2套
一、選擇題(本題共35題,每題分,共35分。)
1、以下是if語句的基本形式:if(表達式)語句其中“表達式”
A、必須是邏輯表達式
R、必須是關(guān)系表達式
C、必須是邏輯表達或關(guān)系表達
D、可以是任意合法的表達式
標(biāo)準(zhǔn)答案:D
知識點解析:本題考查if語句,C語言中if語句中的表達式可以是任意合法的表達
式。
2、有以下程序main。{inta=0,b=0,c=0,d=0;if(a=l)b=l;c=2;elsed=3;
printf("%d,%d,%或%(1\/,a,b,c,d),}程序輸出
A、0,0,0,3
B、1,1,2,0
C、編譯有錯
D、0,1,2,0
標(biāo)準(zhǔn)答案:C
知識點解析:if語句的格式為;ifr表達式)語句1else語句2if和else是C語言的
關(guān)鍵字。“語句1”稱為if子句,“語句2”稱為else子句,這些子句只允許為一條語
句,若需要多條語句時,則應(yīng)該使用復(fù)合語句。因此題目“if(a=l)b=l;c=2;else
d=3;",if分支有兩條語句,沒構(gòu)成復(fù)合語句。
3、有以下程序main(){inlx=l,y=0;if(!x)y++;elseif(x-O)if(x)y+=2;else
y+=3;printfC%d\ir',y);}程序運行后的輸出結(jié)果是
A、2
B、0
C、1
D、3
標(biāo)準(zhǔn)答案:B
知識點解析:x=l,if和elseif的條件都不滿足,故y值不改變輸出。
4、若變量已正確定義,在if(W)pflntf("%d\ll”,k);中,以下不可替代W的是
A^ch=getchar(1
B、a-b+c
C、a<>b+c
D、a++
標(biāo)準(zhǔn)答案:C
知識點解析:在if()語句的括號是一個合法的C語言表達式即可,如果表達式的值
為0,則不執(zhí)行if語句,否則執(zhí)行if語句,而在選項C中,符號<>不是C語言的
合法運算符,如果要表達a大于或小于b+c可用a!b+c或(a>b+c)II(ab+Co所以它
不是一個合法的C語言表達式。
5、有以下程序段inta,b,c;a=10:b=50;c=30;if(a>b)a=b,b=c;c=a;
printf("a=%db=%dc=%d\n",a,b,c);程序的輸出結(jié)果是
A、a=10b=50c=30
B、a=10b=30c=10
C、a=10b=50c=10
D、a=50b=30c=50
標(biāo)準(zhǔn)答案:C
知識點解析:本題的程序段首先定義三個整型變量a,b,c,并且其初始值分別等
于10.50,30,然后判斷a>b是否成立,如果條件成立,則把b的值賦給a,把c
的值賦給b。由a和b的初始值可知,此條件表達式不成立,所以a和b的值保持
不變。再執(zhí)行下一條語句,把a的值賦給c,所以c的當(dāng)前值等于10,最后由輸出
語句輸出變量a,b,c的當(dāng)前值,分別為10,50,10o
6、設(shè)有定義:inta=l,b=2,c=3;以下語句中執(zhí)行效果與其它三個不同的是
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;}
標(biāo)準(zhǔn)答案:A
知識點解析:在C語言中,用分號表示一條語句的結(jié)束,用{}把幾條語句放在一
塊表示一個語句塊,其整體表示一個功能。因而在題目給出的四個選項中,選項
B、C)、D)表示的功能相同,而選項A表示的是一條if語句,兩條賦值語句。
7、if語句的基本形式是:if(表達式)語句,以下關(guān)于“表達式”值的敘述中正確的是
A、必須是整數(shù)值
B、必須是正數(shù)
C、可以是任意合法的數(shù)值
D、if(a>b){c=a;a=b;b=c;}
標(biāo)準(zhǔn)答案:C
知識點解析:在if語句中,表達式可以是任意合法的數(shù)值。當(dāng)其值為非零時,執(zhí)
行if語句,為0時執(zhí)行else語句。
8、有如下嵌套的if語句if(a
A、k=(a
B、k=(a
C、k=(a
D、k=(a
標(biāo)準(zhǔn)答案:D
知識點解析:嵌套的ifelse語句的含義是,在變量a的值小于變量b的值,同時,
變量a的值小于變量c的值時,把變量a的值賦給變量k。在變量a的值小于變量
b的值,同時,變量a的值大于等于變量c的值時,把變量c的值賦給變量k。在
變量a的值大于等于變量b的值,同時,變量b的值小于變量c的值時,把變量b
的值賦給變量匕在變置a的值大于等于變量b的值,同時,變量b的值大于等于
變量c的值時,把變量c的值賦給變量k。
rtJx(x》o)
9、有以下計算公式(x<0)若程序前面已經(jīng)在命令行中包含
math,h文件,不能夠正確計算上述公式的程序段是
A、y=sqrt(x);if(x<O)y=sqrt(-x);
if(x>=O)y=sqrt(x):elsey=sqrt(-x);
C、if(x>=O)y=sqrt(x);if(x<O)y=sqrt(-x);
D、y=sqrt(x>=07x:-x);
標(biāo)準(zhǔn)答案:A
知識點解析;由題意可知計算公式的含義是;當(dāng)x大于等于0時-,y值等于x的算
術(shù)平方根;當(dāng)x小于0時,y值等于x的相反數(shù)的算術(shù)平方根。所以選項B用一個
完整的ifelse語句表達了計算公式的含義:選項C用兩個if語句表達了計算公式
的含義;選項D在求平方根函數(shù)的后面用xK)?x:-x條件表達式來表達了計算公式
的含義。選項A沒有用C語言語句正確的表達計算公式的含義。
10、有以卜程序#includemain(){intx;scanf("%d",&x);if(x<=3);else
if(x!=10)printf("%d\n”,x);}程序運行時,輸入的值在哪個范圍才會有輸出結(jié)果
A、不等于10的整數(shù)
B、大于3或等于10的整數(shù)
C、小于3的整數(shù)
D、大于3且不等10的整數(shù)
標(biāo)準(zhǔn)答案:D
知識點解析:題目中,雖然else和第二個if不在同一行上,但等價于在同一行
上,因此,程序的意思是當(dāng)x大于3且不等于10肘打印出來。
11、有以下程序main(){inta=l,b=2,c=3>d=0;if(a==1&&b++=2)
if(b!=2IIc-!=3)printf("%d,%d,%d\n",a,b,c);elseprintf(n%d,%d,%d
\n",a,b,c);elseprintf("%d,%d,%d\n”,a,b,c);}程序運行后的輸出
結(jié)果是
A、1,3,2
B、1,2,3
C、I,3,3
D、3,2,1
標(biāo)準(zhǔn)答案:C
知識點解析:a,b,c,d初始值分別為1,2,3,Oo嵌套的if語句中,第一個if
中,表達式a==l&&b++==2值為1,執(zhí)行嵌套的if分支,此時“b=3,b!=2”成立,
由于運算符是II,不管后面一個表達式的值是不是1,其整個表達式的值總是1,
表達式不執(zhí)行,最后打印出a,b,c的值是1,3,3。
12、下列條件語句中,輸出結(jié)果與其他語句不同的是
A、if(a==O)printf("%d\n"?x);elseprintf(',%d\n",y);
B、if(a==O)printf(n%d\,y);elseprintf("%d\n",x);
C、if(a!=O)printf("%d\n".x):elseprintf("%d\n".y):
D、if(a)printf("%d\n",x);elseprintf(n%d\n",y);
標(biāo)準(zhǔn)答案:A
知識點解析:選項B、C)、D)這三條語句都是在變量不等于0的情況下,輸出x:
等于0的情況下輸出y,而選項A則正好相反。
13、若有以下程序#includemain(){inta=l,b=2,c=3,d=4;if((a=2)II(b=l))c=2;
if((c==3)&&(d=-l))a=5;printf("%d,%d,%d,%d\n3a,b,c,d);)則程序
的輸出結(jié)果是
A、2,1,2,-1
B、2,2,2,4
C、5,I,2,-1
D、1,2,3,4
標(biāo)準(zhǔn)答案:B
知識點解析:代碼中有兩條并列的if語句,第一條if語句執(zhí)行,(a=2)ll(b=l)值為
1,由于邏輯或表達式,根據(jù)其短路運算規(guī)則,a=2,b=2,即b值不變執(zhí)行if分支
c=2o并列的if語句中表達式(c==3)&&(d=-l)為邏輯與表達式,c==3不成立,不考
慮d=l表達式,d為5.邏輯表達式值為0,不執(zhí)行相應(yīng)if分支。
14、若有以下程序#includemain(){inta=l,b=2,c=3>d=4,r=0;if(a!=l);else
r=l;if(b==2)r+=2;else;if(c!=3)r+=3;else:if(d==4)r+=4:printf(n%d\n',
r);}則程序的輸出結(jié)果是
A、10
B、6
C、7
D、3
標(biāo)準(zhǔn)答案:C
知識點解析:程序代碼中有四條并列的if語句,第一條if表達式a!=l不成立,執(zhí)
行else分支,r=l;第二條if表達式b==2成立,執(zhí)行r+=2,r=3;第三條if語句
c!=3不成立,執(zhí)行else分支,分支為空語句;第四條if分支d==4成立,執(zhí)行咳if
分支語句,r+=4,r=7o
15,若有以下程序#includemain。{inta=l,b=2,c=3,d=4;
if((a=2)&&(b=1))c=2;if((c==3)II(d=-l))a=5;prin【f("%d,%d,%d,%d\n\
a,b,c,d);}則程序的輸出結(jié)果是
A、2,1,2,-1
B、2,2,2,4
C、1,2,3,4
D、5,1,2,-1
標(biāo)準(zhǔn)答案:D
知識點解析:代碼中有兩條并列的if語句,第一條if語句,邏輯與表達式
(a=2)&&(b=1)中.a=2,則執(zhí)行b=1?得到該邏輯與表達式值為1.執(zhí)行分支語句
c=2;第二條if語句(c-3)ll(d=l),c==3不成立,執(zhí)行d二”,而后得出整個邏輯
與表達式值為I,執(zhí)行分支語句a=5。
16、若有以下程序main(){inta=l,b=2,c=3,d=4.r=0;if(a!=l);elser=1;
if(b==2)r+=2;if(c!=3);r+=3;if(d==4)r+=4;printf("%d\n",r);)則程序的輸
出結(jié)果是
A、7
B、10
C、6
D、3
標(biāo)準(zhǔn)答案:B
知識點解析:程序代碼中有四條并列的if語句,第一條if表達式a!=l不成立,執(zhí)
行else分支,r=l;第二條if表達式b==2成立,執(zhí)行r+=2,r=3:第三條if語句
c!=3不成立,執(zhí)行語句,r+=3,r=6;第四條if分支d==4成立,執(zhí)行該if分支語
句,r+=4,r=10o
17、以下敘述中正確的是
A、if語句只能嵌套一層
B、不能在else子句中再嵌套if語句
C、if子句和else子句中可以是任意的合法的C語句
D、改變if-else語句的縮進格式,會改變程序的執(zhí)行流程
標(biāo)準(zhǔn)答案:C
知識點解析:含else子句的it語句的格式為計(表達式)語句1else語句2具中計和
else是C語言的關(guān)鍵字。“語句1”稱為if子句,“語句2”稱為else子句,這些子句
只允許為一條語句,若需要多條語句時,則應(yīng)該使用復(fù)合語句,對于if和else語
句的嵌套原則是比較自由的。
18、以下選項中與if(a=l)a=b;elsea++;語句功能不同的switch語句是
A^switch(a){case1:a=b:break:default:a++:)
switch(a==l){case0:a=b;break;case1:a++;)
C、swilch(a){default:a++;break;case1:a=b;)
D、switch(a==l){case1:a=b:break:case0:a++;}
標(biāo)準(zhǔn)答案:B
知識點解析:本題主要考查if和switch結(jié)構(gòu)?!癷f(a=l)a=b;elsea++;”代碼段的
功能是如果a等于則把b的值賦值給a,否則a++o選項A使用switch對a進行判
斷,如果是1則a=b,跳出switch,如果是其他值則a++;選項B對a==l的結(jié)果
進行swilch判斷,如果為0表示a不等于1則2=>和題目要求不符合:選項C和
選項A一樣;選項D和選項case條件相反,滿足題目要求。
19、若以下選項中變量全部為整型變量,且已正確定義并賦值,則語法正確的
switch語句是
A、switch(a+b){case1:case3:y=a+b;break;case0:case4:y=a-b:}
B、switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;
break:1)
C^switch(a+9){casecl:y=a-b;casec2:y=a+b;)
D、switcha*b{case10:x:a+b;default:y=a-b;}
標(biāo)準(zhǔn)答案:B
知識點解析:本題考查switch的使用。選項A中的case。和case4沒有break語
句;選項B正確;選項C中的case后面不是常量,錯誤;選項D中switch后面沒
有括號。
20>有以下程序main(){intx=l,y=0,a=0?b=0;switch(x){case1:
switch(y){caseO:a++;break;case1:b++;break;)case2:a++;b++;break;
case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}程序的運行結(jié)果是
A、a=2,b=2
B、a=l,b=l
C^a=l,b=0
D、a=2,b=l
標(biāo)準(zhǔn)答案:D
知識點解析:本題考查的是用switch語句實現(xiàn)多分支選擇結(jié)構(gòu),首先進入第一個
switch(x)判斷,進入ease1中進行嵌套判斷,如果switch(y)也成立,a自加1,遇
到break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為1,遇到break,結(jié)束
循環(huán),此時a=2,b=lo
21、若有定義:floatx=1.5;inta=l,b=3,c=2;則正確的switch語句是
A、switch(a+b){caseI:printf(H*\nn);case2+1:printfC***\nH);}
B、switch((int)x);{case1:printf(M*\n");case2:printf(H**\n");)
C^switch(x){case1.0:printf("*\n");case2.O:printf("**\n");)
D、switch(a+b){case1:printf(H*\nn);casec:printf(M**\n");}
標(biāo)準(zhǔn)答案:A
知識點解析:在C語言中,switch。后一對圓括號中的可以是整型表達式或字符表
達式。case語句后面的常量表達式的類型必須與swiich后圓括號中的表達式類型相
同,各case語句標(biāo)號的值應(yīng)該互不相同,選項B中switch后括號表達式出錯,選
項C中case后面的常量類型不正確,選項D中case后面出現(xiàn)了變量表達式,所以
D)不正確。
22、下列敘述中正確的是
A^在switch語句中必須使用default
B、break語句必須與switch語句中的case配對使用
C、在switch語句中,不一定使用break語句
D、break語句只能用于switch語句
標(biāo)準(zhǔn)答案:C
知識點解析:break為C語言關(guān)鍵字,乂稱間斷語句.break語句的功能是跳出F在
執(zhí)行的條件語句或循環(huán)語句。它可以出現(xiàn)在switch語句中,也可以出現(xiàn)在循環(huán)語
句中。default是關(guān)鍵字,起標(biāo)號的作用,代表所有case標(biāo)號之外的那些
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年長江產(chǎn)業(yè)集團創(chuàng)新投資事業(yè)部一線基金管理團隊社會招聘備考題庫(二)及參考答案詳解1套
- 2025年深圳市南山區(qū)前海時代第二幼兒園招聘備考題庫及完整答案詳解一套
- 2025年上海大學(xué)誠聘上海電影學(xué)院院長備考題庫及一套答案詳解
- 藍色扁平插畫風(fēng)科技互聯(lián)網(wǎng)年會盛典模板
- 2025年長江產(chǎn)業(yè)集團創(chuàng)新投資事業(yè)部一線基金管理團隊社會招聘備考題庫(二)及答案詳解參考
- 佛山市南海區(qū)人民醫(yī)院2026年度合同制專業(yè)技術(shù)人員(第一批)招聘備考題庫及參考答案詳解1套
- 首都醫(yī)科大學(xué)附屬北京胸科醫(yī)院2026年派遣崗位招聘31人備考題庫參考答案詳解
- 2025年中國科協(xié)所屬單位公開招聘應(yīng)屆高校畢業(yè)生33名備考題庫及1套完整答案詳解
- 豐林縣2025年度公開招聘(編外)醫(yī)生的備考題庫及一套參考答案詳解
- 南京鼓樓醫(yī)院2026年公開招聘衛(wèi)技人員備考題庫含答案詳解
- 黃芪的活性成分、藥理機制及臨床應(yīng)用
- 藝術(shù)史研究中的性別與種族議題
- 老年人肌肉健康小知識講座
- 2024年度醫(yī)院放療科述職報告課件
- 美容院經(jīng)營管理策略學(xué)習(xí)手冊
- 鄒為誠《綜合英語教程(5)》(第3版)學(xué)習(xí)指南【詞匯短語+課文精解+練習(xí)答案】
- 水輪發(fā)電機組盤車過程方仲超演示文稿
- 行業(yè)標(biāo)準(zhǔn)海綿銅
- 重慶公路物流基地項目可行性研究報告
- 中國藥科大學(xué)藥物分析期末試卷(A卷)
- GB/T 6075.3-2011機械振動在非旋轉(zhuǎn)部件上測量評價機器的振動第3部分:額定功率大于15 kW額定轉(zhuǎn)速在120 r/min至15 000 r/min之間的在現(xiàn)場測量的工業(yè)機器
評論
0/150
提交評論