版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
國家二級(C語言)機(jī)試模擬試卷第1
套
一、選擇題(本題共39題,每題1.0分,共39分。)
1、一個棧的初始狀態(tài)為空。現(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次人
棧,然后再依次出棧,則元素出棧的順序是()。
A、12345ABCDE
B、EDCBA54321
C、ABCDE12345
D、54321EDCBA
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:棧是先進(jìn)后出的原則組織數(shù)據(jù),所以入棧最早的最后出棧,所以選擇
2、下列敘述中正確的是()。
A、循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結(jié)構(gòu)
B、在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況
C、在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況
D、循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定的
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:循環(huán)隊列有隊頭和隊尾兩個指針,但是循環(huán)隊列仍是線性結(jié)構(gòu)的,所
以A錯誤;在循環(huán)隊列中只需要隊頭指針與隊尾兩個指針來共同反映隊列中元素
的動態(tài)變化情況,所以B與C錯誤。
3、在長度為n的有序線性表中進(jìn)行二分查找,最坎情況下需要比較的次數(shù)是()。
A、D(n)
B、D(n2)
C、D(log2n)
D、D(nlog2n)
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:當(dāng)有序線性表為順序存儲時才能用二分法查找??梢宰C明的是對于長
度為n的有序線性表,在最壞情況下,二分法查找只需要比較log2n次,而順序查
找需要比較n次。
4、下列敘述中正確的是()。
A、順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間不一定是連續(xù)的
B、順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈?zhǔn)酱鎯Y(jié)構(gòu)只針對非線性結(jié)構(gòu)
C、順序存儲結(jié)構(gòu)能存儲有序表,鏈?zhǔn)酱鎯Y(jié)構(gòu)不能存儲有序表
D、鏈?zhǔn)酱鎯Y(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:鏈?zhǔn)酱鎯Y(jié)構(gòu)既可以針對線性結(jié)構(gòu)也可以針對非線性結(jié)構(gòu),所以B
與C錯誤。鏈?zhǔn)酱鎯Y(jié)構(gòu)中每個結(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存
儲空間,所以D錯誤。
5、數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。
A、控制流
B、事件驅(qū)動
C、模塊調(diào)用
D、數(shù)據(jù)流
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:數(shù)據(jù)流圖中帶箭頭的線段表示的是數(shù)據(jù)流,即沿箭頭方向傳送數(shù)據(jù)的
通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。
6、在軟件開發(fā)中,需求分析階段可以使用的工具是()。
A、N-S圖
B、DFD圖
C、PAD圖
D、程序流程圖
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在需求分析階段可以使用的工具有數(shù)據(jù)流圖(I)FD圖),數(shù)據(jù)字典
(D),判定樹與判定表,所以選擇B。
7、在面向?qū)ο蠓椒ㄖ?,不屬于“對象”基本特點(diǎn)的是()。
A、一致性
B、分類性
C、多態(tài)性
D、標(biāo)識唯一性
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:對象有如下一些基本特點(diǎn):標(biāo)識唯一性、分類性、多態(tài)性、封裝性、
模塊獨(dú)立性好。所以選擇A。
8、一間宿舍可住多個學(xué)生,則實(shí)體宿舍和學(xué)生之間的聯(lián)系是()。
A、一對一
B、一對多
C、多對一
D、多對多
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:因?yàn)橐婚g官舍可以住多個學(xué)生即多個學(xué)生住在一個宿舍中,但一個學(xué)
生只能住一間宿舍,所以實(shí)體宿舍和學(xué)生之間是一對多的關(guān)系。
9、在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是()。
A、人工管理階段
B、文件系統(tǒng)階段
C、數(shù)據(jù)庫系統(tǒng)階段
D、三個階段相同
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個階段:人工管理階段、文件系統(tǒng)階段
和數(shù)據(jù)庫系統(tǒng)階段。其中最后一個階段結(jié)構(gòu)簡單,使用方便邏輯性強(qiáng)物理性少,在
各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫領(lǐng)域的主導(dǎo)地位,所以選擇c。
10、下列敘述中錯誤的是()。
A、C程序可以由多個程序文件組成
B、一個C語言程序只能實(shí)現(xiàn)一種算法
C、C程序可以由一個或多個函數(shù)組成
D、一個C函數(shù)可以單獨(dú)作為一個C程序文件存在
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:在一個C語言程序中可以進(jìn)行多種算法的實(shí)現(xiàn),對算法的個數(shù)沒有
規(guī)定,所以B錯誤。
11、以下選項(xiàng)中,能用作數(shù)據(jù)常量的是()。
A、115L
B、0118
C、1.5el.5
D、0115
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:A選項(xiàng)中115L表示115是長整型數(shù)據(jù),合法。B選項(xiàng)是八進(jìn)制常量
的表示方法,但是在八進(jìn)制中不能含有數(shù)字8,所以B錯誤。C選項(xiàng)中。后面應(yīng)該
是整數(shù)不能是小數(shù)1.5,所以C錯誤。D選項(xiàng)中八進(jìn)制常量應(yīng)該是數(shù)字“(F開始,
而不是字母開始。
12、按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能現(xiàn)在標(biāo)識符中的是()。
A、大寫字母
B、下劃線
C、數(shù)字字符
D、連接符
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:C語言中標(biāo)識符由字母、下劃線、數(shù)字組成”且開頭必須是字母或下
劃線。所以D選項(xiàng)中的連接符不合法。
13、設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。
A^x=y+z+5,++yB)int(15.8%5)
B、x=y*5=x+z
C、x=25%5.0
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:B與D選項(xiàng)中取模運(yùn)算符%的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B、
D錯誤。C選項(xiàng)中不能籽x+y的值賦給表達(dá)式y(tǒng)*5,所以C錯誤。
14、設(shè)有定義:intx=2:,以下表達(dá)式中,值不為6的是()。
A、2*x,x+=2
x++,2*x
C、x*c=(l+x)
D、x*=x+l
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:A選項(xiàng)中逗號表達(dá)式先計算第一表達(dá)式2*x,然后計算表達(dá)式x+=2
的值,即x=x+2即4,整個逗號表達(dá)式為第二個表達(dá)式的值4,所以選擇A。B選
項(xiàng)中首先計算逗號表達(dá)式中第一一表達(dá)式x++,此時x為3,在執(zhí)行第二個表達(dá)式
2*x=2*3=6,所以逗號表達(dá)式為第二個表達(dá)式的值6。C選項(xiàng)的賦值表達(dá)式可以表
示為x=x*(l+x)=2*(l+2)=6。D選項(xiàng)中的表達(dá)式可以表示為x=x*(x+1)=2*3=6。
15、有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;
printf("%d,%d,%d\n”,x,y,z);)辿序運(yùn)行后的輸出結(jié)果是()。
A、2,3,3
B、2,3,2
C、2,3,1
D、2,2,1
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:7=x++.y++.++y:因?yàn)橘x值運(yùn)算符的優(yōu)先級高于逗號運(yùn)算符的優(yōu)先
級,所以可以將上式表不成(z=x++),(y++),(++y),然后從左向右先計算表達(dá)式
z=x++,因?yàn)閄++先使用后自增,所以z的值為1,x的值為2。再計算逗號表達(dá)式
第二個表達(dá)式y(tǒng)++,此時y的值為2,最后計算第三個表達(dá)式++y,y的值為3。
16、有以下程序:#includemain(){charcl,c2;cl='A'+'8'-'4':c2='A'+'8'
一5:printfC%c,%d\n”,cl,c2);}已知字母A的ASCII馬為65,程序運(yùn)行
后的輸出結(jié)果是()。
A、E,68
B、D,69
C、E,D
D、輸出無定值
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:本題目中字符變量cl是字符,AWJASCII碼加上4,即69所對應(yīng)的
字符'EL字符變量c2是字符,A,的ASCH碼加上3,即68所對應(yīng)的字符但是
打印輸出時,cl以%<:的格式輸出,所以是E,c2以%d的格式輸出,所以是68。
17、若有定義intx,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x—
y)?(x++):(丫++)中的條件表達(dá)式(x—y)等價的是()。
A、(x-y<0IIx—y>0)
B、(x—y<0)
C>(x—y>0)
D、(x—y==0)
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:條件表達(dá)式:x二表達(dá)式1?表達(dá)式2:表達(dá)式3的含義是:先求解表達(dá)
式1,若為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給X。若表達(dá)式1的值為
0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給X。在本題中與表達(dá)式1:(X—y)等
價的是(x—y<0IIx—y>0)o
18、有以下程序:#includemain(){intx=l,y=0;if(!x)y++;elseif(x==0)
if(x)y+=2;elsey+=3:printf("%d\n",y);}程序運(yùn)行后的輸出結(jié)果是()。
A、3
B、2
C、1
D、0
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:在i「else語句中else總是與離它最近的if配對。本題目中x為1所
以!x為0,所以執(zhí)行elseif語句中的內(nèi)容,判斷(x==0)是否成立,因?yàn)閤為1所以
條件不成立,所以elseif內(nèi)部的if…else語句不再執(zhí)行,所以y的值還是初始值
0o
19、若有定義:floatx=l.5;inta=Lb=3,c=2;則正確的switch語句是()。
A、switch(a+b)(case1:pr4nfR"*\n");case2+1:printtf'**\n");}
B、switch((int)x);{case1:prinftf'*\n");case2:print1“**\n");}
C^switch(x){case1.0:prinff("*\n");case2.0:prinff("**\n");)
D、switch(a+b){ease1:printf("*\n");easec:printf("*\rT);)
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:B選項(xiàng)中switch((int)x);語句中不應(yīng)該有最后的分號。
switch(exprl),中的exprl不能用浮點(diǎn)類型或long類型,也不能為一個字符串,所
以C錯誤。case后面常量表達(dá)式的類型必須與switch后面表達(dá)式的類型一致,所
以D錯誤。
20、有以卜程序:#includemain(){inty=9;for(;y>0;y----)if(y%
3=0)printf("%d",一一y);}程序運(yùn)行后的輸出結(jié)果是()。
A、852
B、963
C、741
D、875421
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:第一次f。「循環(huán),y的值為9,y%3的值為0,滿足條件打印一一y,
即先減一后打印,所以打印8;第二次for循環(huán),y的值為7,y%3的值為1,不執(zhí)
行打印語句;第三次而循環(huán),y的值為6,y%3的值為0,滿足條件打印一一y,
即先減一后打印,所以打印5;第四次for循環(huán),y的值為4,不滿足if條件,不執(zhí)
行打印語句;第五次f?!秆h(huán),y的值為3,滿足if條件,打印輸出2;第六次for
循環(huán),y的值為I,不滿足條件,不執(zhí)行打印語句。
21、有以下程序:#includemain(){inti,j,m=l;for(i=l;i<3;i++){for(i=3;
j>0;j-----){if(i*j>3)break;m*=i*j;}}prinff("m=%d\n",m);}程序運(yùn)行后
的輸出結(jié)果是()。
A^m=4
B、m=2
C^m=6
D、m=5
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:第一次外循環(huán)i的值為1,第一次內(nèi)循環(huán)j的值為3,不滿足條件執(zhí)行
m*=i*j即m的值為3;第二次j的值為2,不滿足條件執(zhí)行即m的值為
6;第三次j的值為1,不滿足條件執(zhí)行即m的值仍為6。第二次外循環(huán)i
的值為2,j的值為3,滿足條件,執(zhí)行break語句,跳出循環(huán)。
22、有以下程序:#inckideintfun(intx,inty){if(x!=Y)retiiin((x+y)/2);else
rcturn(x);}main(){inta=4,b=5?e=6;printf("%d\n",fun(2*a?fun(b,
e)));))程序運(yùn)行后的輸出結(jié)果是()。
A、6
B、3
C、8
D、12
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:本題中第一次調(diào)用為。fun(8,fun(5,6)),閃為fun(5,6)返回值為
5,所以第二次調(diào)用為fun(8,5)=6o所以選擇A。
23、有以下程序:#includeintadd(intayintb){retum(a+b);}main(){intk,
(*f)(),a=5,b=10;f=add:...}則以下函數(shù)調(diào)用語句錯誤的是()。
A^k=f(a,b);
B、k=add(a,b);
C、k=(*f)(a,b);
D^k=*f(a,b);
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:D選項(xiàng)中旺(a,b)表示調(diào)用后返回一個指向整型數(shù)據(jù)的地址指針,即
該函數(shù)的返回值為指針類型,所以不能將其賦值給整形變量ko
24>有以下程序:#includemain(){intn,*p=NULL:*p=&n:prinfT(t4Input
n:");8eanfT%d”,&p);prinff(44outputn:");prinffT%d\n”,P);}該程序試
圖通過指針P為變量n讀人數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是
()o
A、intn,*p=NULL;
B、*p=&n;
C、scanf('、%d”,&p)
D、printfT'%d\n",P);
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:選項(xiàng)B的正確寫法應(yīng)為p=&n;選項(xiàng)C的正確寫法應(yīng)為scanf("%d”,
p);選項(xiàng)D的正確寫法應(yīng)為printf("%d\n",*p)<>
25、下列定義數(shù)組的語句中,正確的是()。
A、#defmcN10
B、intN=10;intx|N|;intx[N];
C、intx[0...10];
D>intx[];
標(biāo)準(zhǔn)答案:A
知識點(diǎn)》析:數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]。B選項(xiàng)中
N是變量,不能用變量定義數(shù)組長度。C選項(xiàng)中數(shù)組長度是非法的一串?dāng)?shù)字。定義
數(shù)組時必須為其指明長度,D選項(xiàng)中數(shù)組長度為空,所以非法。
26、有以下程序:includemain(){inta[]={2,3,5,4),i;for(i=0:i<4;i++)
switch(i%2)(ease0:switch(a[i]%2){ease0:a[i]++;break;case1:a[i]?
—;)break;easeI:a[i]=0;)for(i:0;i<4;i+-)printf("%d",a|i]);prinfff'\
,,
n):)程序運(yùn)行后的輸出結(jié)果是()。
A、0304
B、2050
C、3344
D、3040
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:第一次循環(huán)i為0,i%2為0,執(zhí)行switch(a[0]%2)中的case。語句后
內(nèi)容即a[0]++,a[0]的值變成3;第二次循環(huán)i的值為1,i%2為1,執(zhí)行easel:
a[i]=0;所以a[l]的值變成0;第三次循環(huán)i的值為2,i%2為0,執(zhí)行
switch(a[2]%2)中的case1語句后的內(nèi)容a[2]—一,a[2]的值變成4;第四次循環(huán)i
的值為3,i%2為1,執(zhí)行easel:a[i]=0;所以a⑶的值變成0。
27、有以卜程序:#includemain(){intb[3][3]={0,22,0?22,O,1,2),
i,j,t=l;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];prinfff%d\
n",t);}程序運(yùn)行后的輸出結(jié)果是()。
A、3
B、4
C、1
D、9
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:每次內(nèi)循環(huán)只循環(huán)一次就結(jié)束,第一次外循環(huán)時
t=t+b[O][b[O][O]]=l+b[O][O]=l+O=l;第二次外循環(huán)時
t=t4-b[l][b[l][l]]=l+b[l][l]=l+l=2;第三次外循環(huán)時
t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4o
28、以下語句中存在語法錯誤的是()。
,,,,
A、charss[6][20];ss[l]=right?:
B、char8S()[20]={,,rightr};
C、char*ss[6];ss[l]=,,right?M;
D、char水ss(尸{“right?”}:
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:數(shù)組定義后,不可以對數(shù)組整體賦值,S是二維數(shù)組,因SS⑴是一維
字符數(shù)組,即字符串,字符串賦值可以使用s【rcpy(ss[l],“right");這樣的形式,
而選項(xiàng)A中對二維數(shù)組中的第“廣維(相當(dāng)于一個一維數(shù)組)賦值,是不可以的。選
項(xiàng)B和D是定義時對數(shù)組初始化,這是可以的。選項(xiàng)C中,將字符串在內(nèi)存中的
首地址賦給指針數(shù)組的一個元素,這是可以的。
29、以下不能將s所指字符串正確復(fù)制到t所指存儲空間的是()。
A、do{*t++=*s++;}while(*s);
R、for(i=0:t[i]=s[i]:i++):
C、while(*t=*s)(t++;s++;)
D、for(i=0,j=0;t[i++]=s[j++];);
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:do{*t++=|s++;)while(*s);不能因?yàn)楫?dāng)*s=,\O'時,while(os)跳出
循環(huán),這樣字符串結(jié)束標(biāo)志'\0'沒有復(fù)制給*3造成}I不完整。注意,*l++=*s++
是先執(zhí)行t=*s,然后才進(jìn)行t=t+Ls=s+l。B、C、D都能將,\O'復(fù)制過去。
30、有以下程序:#includevoidswap(char*x,ehar^y){chart;t=*x;*x=y;
*y=t;)main(){char*sl:uabeM,*s2="123";swap(sl,s2);prinfK"%s,%s\
n”,si,s2);}}程序執(zhí)行后的輸出結(jié)果是()。
A、321,cba
B、abe,123
C>123,abe
D、Ibc,a23
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:字符串是一個特殊的數(shù)組,所以按照數(shù)組的規(guī)則,si應(yīng)該指向的是
數(shù)組的首地址,即“abc”的第一個字符的地址。s2指向的是“123”的第一個字符的地
址。調(diào)用swap函數(shù)之后交換的是兩個字符串的第一個字符H和T的內(nèi)容,所以打
印輸出為D.
31、有以下函數(shù):intfun(char*x,char*y)(intn=0:while((*x==*y)&&rlcX!=t\
0'){x++;y++;n++;)return(I;}函數(shù)的功能是()。
A、將y所指字符串賦給x所指存儲空間
B、查找X和y所指字符串中是否有、\0,
C、統(tǒng)計X和y所指字符串中最前面連續(xù)相同的字符個數(shù)
D、統(tǒng)計x和y所指字符串中相同的字符個數(shù)
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:本題中由循環(huán)條件可知遇到'0'或x與y所指的字符的值不等中的
一個條件時就結(jié)束,所以功能是統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個
數(shù)。
32、有以下程序:#includeintfun(){staticintx=l:x*=2:returnx;)main(){int
i,s=l:for(i=l;i<=3;i++)s*=fun();printf("%d'n",s);}程序運(yùn)行后的輸出
結(jié)果是()。
A、10
B、30
C、0
D、64
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:本題目中靜態(tài)局部變量x,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整
個運(yùn)行期間都不釋放。所以第一次循環(huán)s的值為2,第二次循環(huán)中,返回的x的值
為4,所以*的值為X,第二次循環(huán),返心的x的值為X,所以*的值為64。
33、在一個C源程序文件中所定義的全局變量,其作用域?yàn)?)。
A、由具體定義位置和extern說明來決定范圍
B、所在程序的全部范圍
C、所在函數(shù)的全部范圍
D、所在文件的全部范圍
標(biāo)準(zhǔn)答案:A
知識之解析:全局變量的作用域是從聲明處到文件的結(jié)束。所以選擇A)。
34、以下敘述中錯誤的是()。
A、可以通過typedef增加新的類型
B、可以用typedef將已存在的類型用一個新的名字來代表
C、用typedef定義新的類型名后,原有類型名仍有效
D、用typedef可以為各種類型起別名,但不能為變量起別名
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:關(guān)鍵字typedef的作用只是將C語言中的已有的數(shù)據(jù)類型作了置換,
并不是增加新的類型,所以A錯誤。
35、有以下程序:#includestructS{inta,b;}data[2]={10,100,20,200);
main()(structSP:data[l];primf("%d\n",++(P.a));}程序運(yùn)行后的輸出結(jié)
果是()。
A、10
B、11
C、20
D、21
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:聲明data是結(jié)構(gòu)S數(shù)組。初始化data[0].a=10;data[0].b=100;
data|11.a=20;data)11.b=200o主函數(shù)中p=data[l];即pp.a=data|I].a;
p.b=data[l].b;執(zhí)行語句prin(("%d\n",++(p.a));"印輸出時p.a先增1再
打印。p.a=data[l].a=20,先增1等于21。
36、有以卜程序:#include#definePT3.5;#defineS(x)PT*x*x;main(){int
a=l,b=2;printf(“%4.lf\n”,S(a+b));}程序運(yùn)行后的輸出結(jié)果是().
A、7.5
B、31.5
C、程序有錯無輸出結(jié)果
D、14.0
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:宏定義不是C語句,末尾不需要有分號。所以語句printf("%4.If、
n”,S(a十b));展開后為prinif(“%4.lf\n”,3.5;*a+b*a+b;);所以程序會出
現(xiàn)語法錯誤。
37、有以下程序:#includemain(){unsignedchara=2,b=4,c=5,d:d=ab:
d&=c;printf("%d\n”,d;}程序運(yùn)行后的輸出結(jié)果是()。
A、3
B、4
C、5
D、6
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:&按位與,如果兩個相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為I,
否則為0。1按位或,兩個相應(yīng)的二進(jìn)制位中只要有一個為1,該位的結(jié)果值為1。
2的二進(jìn)制為00000010,4的二進(jìn)制為OOOOOloo,所以做或運(yùn)算結(jié)果為00000110,
該數(shù)與5即00000101做與操作結(jié)果為00000100,即4o
38、有以下程序:#include#includemain(){int*a>*b,*c;
a=b=c=(int*)malloc(sizeof(int));*aa=l:*b=2,*c=3;a=b;prinff("%d,%d,%
d\n",*a,*b,*c);)程序運(yùn)行后的輸出結(jié)果是O。
A、1,1,3
B、2,2,3
C>1,2,3
D、3,3,3
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:malloc函數(shù)動態(tài)分配一個整型的內(nèi)存空間,然后把函數(shù)返回的地址用
(ini:*c)強(qiáng)制類型轉(zhuǎn)換為整型指針,再把它賦給a,b,c,即讓指針變量a,b,c
都指向剛申請的內(nèi)存空間。所以只有最后一個賦值語句*c=3的值保留在了該空間
內(nèi),因?yàn)閍、b、c三個指針變量均指向該空間,所以打印該空間內(nèi)的數(shù)值為3,
39、以下敘述中正確的是()。
A、當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B、打開一個已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C、在一個程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能
讀到第1個數(shù)據(jù)
D、C語言中的文件是流式文件,囚此只能順序存取數(shù)據(jù)
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:B選項(xiàng)中打開一個已存在的文件并進(jìn)行了寫操作后,原有文件中的全
部數(shù)據(jù)不一定被覆蓋,也可以對源文件進(jìn)行追加操作等。C選項(xiàng)中在一個程序中當(dāng)
對文件進(jìn)行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù),可
以用fseek()函數(shù)進(jìn)行重新定位即可。D選項(xiàng)中,C語言中的文件可以進(jìn)行隨機(jī)讀
寫。
二、程序填空題(本題共I題,每題7.0分,共[分0)
40、給定程序中,函數(shù)fun的作用是:不斷從終端讀人整數(shù),由變量a統(tǒng)計大于0
的個數(shù),用變量c來統(tǒng)計小于0的個數(shù),當(dāng)輸入0時結(jié)束輸人,并通過形參pa和
pb把統(tǒng)計的數(shù)據(jù)傳回主函數(shù)進(jìn)行輸出。請在程序的下畫線處填入正確的內(nèi)容并把
下畫線刪除,使程序得出正確的結(jié)果。注意:源程序存放在BLANK】.C中。不
得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#includevoidfun(int*px,
int*Py){/**********found**********/int[l]:scanfT'%d”,&k);/
while|2]{if(k>O)a+-;if(k<O)b++;
)*px=a;*Py=b;)main(){intx,y;
fun(&x,&y);printf(,,x=%dy=%d\n,,,x,y);}
標(biāo)準(zhǔn)答案:⑴a=0,b=0,k(2)(k!=0)(3)scanfT%d”,&k)
知識點(diǎn)解析:暫無解析
三、程序修改題(本題共1題,每題1.0分,共7分0)
41、下列給定程序中函數(shù)fun的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取
出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為
87653142時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODIC中,不得增行或刪行,也不得更改程序的結(jié)
構(gòu)!#includevoidfun(Iongs,long*t)(intd;longsl=l:/
**********found**********/t:0;while(S>0){d=s%10;
**********found**********/if(d%2:=0){*t=d*sl+*t;s1*—10:}S/—10:}}
main(){longs,t;prinff(4t\nPleaseenterS:");scanff'%ld”,&s);fun(S,&t);
prinff{€4Theresultis:%ld\rT,t);)
標(biāo)準(zhǔn)答案:(l)*t=0:⑵if(d%2!=0)或if(d%2==l)
知識點(diǎn)解析:暫無解析
四、程序設(shè)計題(本題共7題,每題7.0分,共7分0)
42、編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素數(shù)存入xx所指數(shù)
組中,非素數(shù)的個數(shù)通過k返回。例如,若輸入17,則應(yīng)輸出:4689101214
1516o注意:部分源程序在文件PROG1.C中。請勿改動主函數(shù)main和其他函
數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。#includevoid
fun(intm,int*k,intxx[]){}main(){intm,n,zz[100];voidNONO();prinfff'\
nPleaseenteranintegernumberbetween10and100:"):seanff'%d",&n);fun(n,
&m,ZZ);printf(t4\n\nThereare%dnon—primenumber8lessthan%d:”,in,
li);for(n=0;n
標(biāo)準(zhǔn)答案:voidfun(intin,int,*k,intxx[]){inti,j,n=0;for(i-4;i
知識點(diǎn)解析:暫無解析
國家二級(C語言)機(jī)試模擬試卷第2
套
一、選擇題(本題共39題,每題1.0分,共39分。)
1、以下關(guān)于c語言數(shù)值常量的選項(xiàng)中,合法的是()。
A、12.0Xa234.5e0
B、028.5e—3—0xf
C、.1774el.50abc
D、0x8A10,0003.e5
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:C語言中八進(jìn)制整型常量的開頭是數(shù)字0,十六進(jìn)制整型常量的數(shù)字
開頭是Ox;但八進(jìn)制不能有8或9,所以選項(xiàng)B錯,C選項(xiàng)中2el.2中e后面的
指數(shù)不是整數(shù),D選項(xiàng)中3.e5小數(shù)點(diǎn)后面缺少數(shù)字,另外。也不用用逗號作為千
分位分隔符。
2、若有定義:doubled=68:inti=0,k=21;,則以下選項(xiàng)中不符合C語言規(guī)定的
賦值語句是()。
A、i一(d+k)<=(i+k);
B、尸d%3;
C、d=(d++,i++);
D、i=(int)!d;
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:只有整數(shù)才能求余,d是雙精度型,所以不能求余,選項(xiàng)B不符合C
語言賦值規(guī)定。選項(xiàng)A和D將進(jìn)行強(qiáng)制數(shù)據(jù)轉(zhuǎn)換,選項(xiàng)C為變量自加,逗號運(yùn)算
符和賦值運(yùn)算符連用,都符合C語言規(guī)范。
3、若有代數(shù)式(其中?僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠
正確表示該代數(shù)式的C語言表達(dá)式是()。
A、sqrt(fabs(pow(n,x)+exp(x)))
B、sqrt(fabs(po\v(n,x)+pow(x,e)))
C^sqrt(abs(nAx+eAx))
D、sqrt(fabs(pow(x,n)+exp(x)))
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:B選項(xiàng)中函數(shù)pow(x,e)錯誤應(yīng)該直接使用cxp(x)函數(shù)。C選項(xiàng)中函
數(shù)absSAx+e^x)錯誤,應(yīng)該使用fabs()返回浮點(diǎn)數(shù)的絕對值。D選項(xiàng)中pow(x,n)參
數(shù)順序錯誤。
4、有關(guān)C語言標(biāo)識符,以下選項(xiàng)中不合法的是()。
A、&a
B、FOR
C^print
D、_00
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下
劃線。另外,關(guān)鍵字不能作為標(biāo)識符。因?yàn)镃語言中區(qū)分大小寫,所以B選項(xiàng)中
的“FOR”可以作為標(biāo)識符來用。A)選項(xiàng)中含有非法字符&,所以選擇A。
5、有以下序:#includevoidmain(){intnuml,num2;inti=10:double
d=12.34:nunl=sizeof(i);num2=sizeof(d);pfintf(''%d,%d\n'',si,s2);}
在VC6.0平臺上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是()。
A、16,4
B、2,8
C、4,8
D>1,4
標(biāo)準(zhǔn)答案:c
知識點(diǎn)解析:sizeof()函數(shù)用來獲取數(shù)據(jù)類型的存儲空間大小(字節(jié)數(shù)),整型和雙精
度型在C語言中分別占用4個字節(jié)和8個字節(jié),所以選項(xiàng)C正確。
6、有以下程序:#ncludevoidmain(){chara,b,c,d;scanR"%c%c'',&a,
&b);c=getchar();d=gctchar();pfmtf(''%c%c%c%c\n'',a,b,c?d);)運(yùn)行
程序后輸入數(shù)據(jù)(代表回車符)3456則輸出結(jié)果是()。
A、34
B、3456
C、34
D、34
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:用格式符%<:輸入字符時,回車符是分隔符,不能被輸入,但
getchar。可以接收包括回車符在內(nèi)的字符,所以程序運(yùn)行時輸入的第一個回車符將
被字符變量c接收,字符變量d接收輸入的字符所以輸出的結(jié)果是3,4,回
車,5,選項(xiàng)D正確。
7、有以下程序:#nekidemain(){inta=0,b=0,C=0,d=0;if(a=l)b=l:c=2;
elsed=3;pfintf(''%d,%d,%d,%d\n'la,b,c,d);}程序運(yùn)行后的輸出
結(jié)果是()。
A、1,1,2,0
B、0,0,0,3
C、編譯書錯
D、0,I.2.0
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:if語句只執(zhí)行后面的一個語句或一個用大括號包括的程序段。本題中
if語句中的條件若為真,則只執(zhí)行b=l:這一條語句,后面的c=2是一個和if分支
結(jié)構(gòu)無關(guān)的語句,因此,再后面的else語句便成為一個獨(dú)立的語句,因?yàn)榍懊鏇]
有if分支與其對應(yīng),因比會在編譯過程中出錯。如果改成if(a=l){b=l;
c=2}elsed=3:則編譯正確。
8、有以下程序:#includemain(){intx=l,y=0,a=0,b=0;switch(x){case1:
switch(y){case0:a++;break:case1:b++;break;}case2:a++;b++;
break:case3:a++;b++;}printf(,,a=%d,b=%d\n",a,b);}程序運(yùn)行后的
輸出結(jié)果是()。
A、a=2,b=2
B、a=2,b=l
C、a=l,b=l
D、a=l,b=0
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:case常量表達(dá)式只是起語句標(biāo)號作用,并不是該處進(jìn)行條件判斷。在
執(zhí)行swiich語句時,根據(jù)switch的表達(dá)式,找到與之匹配的case語句,就從此
case子句執(zhí)行下去,不再進(jìn)行判斷,直到碰到break或函數(shù)結(jié)束為止。所以執(zhí)行內(nèi)
層switch(y)時只執(zhí)行了a++,此時a的值為1。然后執(zhí)行外層case2語句的a++;
b++;a為2,b為I。所以結(jié)果為B。
9、以下程序段中的變量已正確定義:for(i=0;i<4:i++,i++)for(k=l;k<3;
k++);prints*,);程序段的輸出結(jié)果是()。
A、**
B、****
C、*
D********
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:由于內(nèi)層循環(huán)for(k=l;k<3;k++)后面直接跟了空語句“;”所以在
循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行打印語句,所以打印了一個“*二
選擇Co
10、有以下程序段:#ncludcinti,n;for(i=0;i<8;i++)(n=rand()%5;
switch(n){case1:case3:printf(''%d'n'',n);break;case2:case4:
primf(、'%d\n",n);continue:case0:exit(O);}pfintf(''%d\n",n);}以下
關(guān)于程序段執(zhí)行情況的敘述,正確的是()。
A、for循環(huán)語句固定執(zhí)行8次
B、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時結(jié)束循環(huán)操作
C、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時不做任何操作
D、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時結(jié)束程序運(yùn)行
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:case常量表達(dá)式只是起語句標(biāo)號作用,并不是該處進(jìn)行條件判斷。在
執(zhí)行switch語句時,根據(jù)switch的表達(dá)式,找到與之匹配的case語句,就從此
case子句執(zhí)行下去,不再進(jìn)行判斷,直到碰到break或函數(shù)結(jié)束為止。簡單地說,
break是結(jié)束整個循環(huán)體,而continue是結(jié)束單次循環(huán)。B選項(xiàng)中當(dāng)產(chǎn)生的隨機(jī)數(shù)n
為4時,要執(zhí)行打印操作。C選項(xiàng)中當(dāng)產(chǎn)生的隨機(jī)數(shù)為1和2時,分別執(zhí)行case3
與case4后面語句的內(nèi)容。由于存在break語句,所以for循環(huán)不是固定執(zhí)行8
次,執(zhí)行次數(shù)與產(chǎn)生的隨機(jī)數(shù)n有關(guān)系。
11、有以下程序:#includeintf(intx);main(){intn=l,m;m=f(f(f(n)));
printf(,,%d\n,\m);)intf(intx){returnx*2;}程序運(yùn)行后的輸出結(jié)果是()。
A、8
B、2
C、4
D、1
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:第一次調(diào)用m=f(f(f(l))),第二次為m=f(f(2)),第三次為m=f(4),即
返回值為8o
12、以下敘述中錯誤的是()。
A、可以給指針變量賦一個整數(shù)作為地址值
B、函數(shù)可以返回地址值
C、改變函數(shù)形參的值,不會改變對應(yīng)實(shí)參的值
D、當(dāng)在程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:不能將一個整數(shù)直接賦給指針變量作為地址,所以A是錯誤的。函
數(shù)的返回值可以是地址。即指針。函數(shù)調(diào)用中行參的變化不會傳遞給實(shí)參。
13、設(shè)已有定義:floatK;,則以下對指針變量P進(jìn)行定義且賦初值的語句中正確
的是()。
A^int*p=(float)x;
B、float*p=&x;
C、floatp=&x;
D、float*p=1024:
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:指針是用來存放地址的變量,用(類型名*指針變量名)的形式定義。
賦值時應(yīng)將某個變量地址賦給指針變量,所以選擇B。
14、以下數(shù)組定義中錯誤的是()。
A、intx[2][3]={l,2,3,4,5,6);
B、intx[][3]={0};
C>intx[][3]={{l,2,3),{4,5,6)|;
D.intx[2][3]={{l,2},(3,4),{5,6}};
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:D選項(xiàng)中x[2]⑶定義的是一個兩行三列的二維數(shù)組,而在給數(shù)組元
素賦值時卻賦成了三行,所以錯誤。
15、有以下程序:#includevoidfun(inta[],intn){inti,t;for(i=0;i<n/2;
i++){t=a[i];a[i]=a[n-1一i];a[n—I—i]:t;))main(){intk[10]={1,2,3,
4,5,6,7,8,9,10),i;fun(k,5);for(i=2;i<8;i++)printff'%d'',k[i]);
',,,
printf(\n);}程序運(yùn)行后的輸出結(jié)果是()。
A、321678
B、876543
C、1098765
D、345678
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:本題中的函數(shù)fun()是將數(shù)組k中前5個元素倒序,所以返回后數(shù)組k
中的元素排列是5,4,3,2,1,6,7,8,9,10,所以打印輸出k⑵到k⑺元素
的值,即321678,所以選擇A。
16、有以卜程序:#include#defineN4voidfun(inta|||N],intb[]){inti;for(i=0;
i<N;i++)b[i]=a[i][i]-a[i][N-1—i];}main(){intx[N][N]={{1,2,3,4),
(5,6,7,8|,{9,10,11,12),(13,14,15,16}},y[N],i;fun(x,y);
,,
for(i=0;i<N;i++)printf(%d,",y[i]);printfC'n");}程序運(yùn)行后的輸出結(jié)
果是()。
A、-3,-1,1,3
—12,—3,0,0
C、0,1,2,3
D、-3,一3,一3,一3
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:本題中由firn函數(shù)可知,b[0]=a[0][0]-a[0][3]=l-4=-3,
b[l]=a[l][l]-[l][2]=6—7=-1,b[2]=a[2][2]-[2][l]=l1—10=1,b[3]=a[3][3]-
[3]|l]=16-13=30所以主函數(shù)中打印y數(shù)組元素的值為A選項(xiàng)。
17、設(shè)有定義:chars[81];inti=0:,以下不能將一行(不超過80個字符)帶有空格
的字符串正確讀入的語句或語句組是()。
A、gets(s);
while((s[i++]=getchar())!=,\n');s[i]=,\0\
C、scanf(,,%s,\s);
D、do{scanfT'%c'',&s|i]);}while(s[i++]!八if);s[i]=,\0,;
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:字符串的輸入不能使用scanfC%s",s);而應(yīng)該使用gets(s).
18、設(shè)有定義:charP[]={T,'2','3'},*q=p;,以下不能計算出一個char型數(shù)
據(jù)所占字節(jié)數(shù)的表達(dá)式是()。
A、sizeof(p)
B、sizeof(char)
CNsizeof(*q)
D、sizeof(p|0])
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組p中所有元素所
占用的字節(jié)數(shù),而不是char*型數(shù)據(jù)所占字節(jié)數(shù)。
19、有以下程序:#include#includemain(){char
str[][20]={,,Onc*World,1,,,One*Dream!*p=str[l];printf(''%d,L
strlen(p));printf(''%s\n'',p);}程序運(yùn)行后的輸出結(jié)果是()。
A、10,One*Dream!
B、9,One*Dream!
C、9,One*World
D、10,One*World
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:p是指向二維字符數(shù)組第二行One*Dream!的數(shù)組指針,所以長度是
10,打印輸出的也是該字符串。
20有以下程序:#ncludcmain。{chars[尸'012xy\08s34f4w2'';inti,n=0;
for(i=0;sfi]!=0;i++)if(s[i]>=,0,&&s[i]<=,9,)n++;printR''%d\n",n);}程
序運(yùn)行后的輸出結(jié)果是()。
A、0
B、3
C、7
D、8
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:本題中遇到“\0',字符循環(huán)結(jié)束,所以只統(tǒng)計之前的數(shù)字字
符,所以為3。
21、有以下程序:#includefun(intx,inty){staticintm=0,i=2;i+=m+l;
m=i+x+y:returnm:)main(){intj=l,m=l,k;k=fun(j,m);printf(''%d,",
k);k=fun(j,m);printf("%d\nLk);}程序執(zhí)行后的輸出結(jié)果是()。
A、5,11
B、5,5
C、11,11
D、11,5
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:聲明靜態(tài)局部變量:函數(shù)調(diào)用結(jié)束后,其占用的存儲單元不釋放,在
下次該函數(shù)調(diào)用時,該變量保留上一次函數(shù)調(diào)用結(jié)束時的值。本題子函數(shù)Fun中的
變量i和m均為靜態(tài)局部變量.所以第一次調(diào)用fun函數(shù),返I川m的值為5.第二
次再調(diào)用fun函數(shù)時,i的值為3,m的值已經(jīng)是5了,所以執(zhí)行if=m+1,i的值變
為9,m=i+x+y=9+1+1=11?
22、在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A、auto和static
B、extern和register
C>auto和register
D、static^0register
標(biāo)準(zhǔn)答案:c
知識點(diǎn)解析:auto:函數(shù)中的局部變量,動態(tài)地分配存儲空間,數(shù)據(jù)存儲在動態(tài)存
儲區(qū)中,在調(diào)用該函數(shù)時系統(tǒng)會給它們分配存儲空間,在函數(shù)調(diào)用結(jié)束時就自動釋
放這些存儲空間。regisler:為了提高效率,C語言允許將局部變量的值放在CPU
中的寄存器中,這種變量叫“寄存器變量”,只有局部自動變量和形式參數(shù)可以作為
寄存器變量。extern:外部變量(即全局變量)是在函數(shù)的外部定義的,它的作用域
為從變量定義處開始,到本程序文件的末尾。如果外部變量不在文件的開頭定義,
其有效的作用范圍只限于定義處到文件終了。static:靜態(tài)局部變量屬于靜態(tài)存儲
類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運(yùn)行期間都不釋放。
23、下面結(jié)構(gòu)體的定義語句中,錯誤的是()。
A、structord{intx;inty;intz;(structorda;
B、structord{intx:inty;intz:|:structorda;
C、structord{intx;inty;intz;)a;
D、struct{imx;inty;intz;)a;
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:人選項(xiàng)0101303{足“;仙1丫;血2;jstructorda;錯誤,不能在定義
結(jié)構(gòu)體的同時,又用結(jié)閡體類型名定義變量。應(yīng)該寫成B選項(xiàng)或者D選項(xiàng)的格
式。
24、有以下程序:#ineludetypedefstruct)intb,p;)A;voidf(Ac)/*注意:C是
結(jié)構(gòu)變量名*/{intj;c.b+=l:c.p+=2;)main(){inti;Aa={l,2};f(a);
printf("%d,%d\n,\a.b,a.p);}程序運(yùn)行后的輸出結(jié)果是()。
A、2,4
B、1,2
C、1,4
D、2,3
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:結(jié)構(gòu)體變量可以作為函數(shù)的參數(shù)和返回值。作為函數(shù)的實(shí)參時,可以
實(shí)現(xiàn)函數(shù)的傳值調(diào)用。當(dāng)使用結(jié)構(gòu)體變量作為函數(shù)的形參時,實(shí)參也應(yīng)該是結(jié)構(gòu)體
變量名以實(shí)現(xiàn)傳值調(diào)用,實(shí)參將拷貝副本給形參,在被調(diào)用函數(shù)中改變形參值對于
調(diào)用函數(shù)中的實(shí)參沒有影響。所以選擇B。
25、讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffer,size,count,fp);,其中
buffer代表的是()。
A、一個內(nèi)存塊的字節(jié)數(shù)
B、一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C、一個文件指針,指向待讀取的文件
D、一個內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:fread(buffer,size,count,fp)功能是從一個文件流中讀數(shù)據(jù),讀取
count個元素,每個元素size字節(jié),如果而用成功返回count。buffer:用于接收數(shù)
據(jù)的內(nèi)存地址,大小至少是size*count字節(jié);size:單個元素的大小,單位是字
節(jié);count:元素的個數(shù),每個元素是size字節(jié);stream:輸入流。
26、有以下程序:#include#includeintfun(intn){int*p;
p=(int*)malloc(sizeof(int));*P=n;return*p;)main(){inta;a=fun(10);
printf("%d\nLa+fun(10)):}程序運(yùn)行后的輸出結(jié)果是()。
A、0
B、10
C、20
D、出錯
標(biāo)準(zhǔn)答案:C
知識點(diǎn)解析:(int*)manoclsizeof(in。)的作用是開辟一個長度為sizeof(int)存儲空
間,并通過強(qiáng)制類型轉(zhuǎn)爽(ini*)將此存儲空間的地址賦給了一個整型的指針變量然
后執(zhí)行語句*p=n,使得*P的值為10,并通過return返回此值,即a的值為10。然
后在主函數(shù)中輸出a+fun(l0)=10+10=20o
27、有以F程序:#includemain(){unsignedchara=8,c;c=a>>3;printR"%d
\n-,c);}程序運(yùn)行后的輸出結(jié)果是()。
A、16
B、1
C、32
D、0
標(biāo)準(zhǔn)答案:B
知識點(diǎn)解析:無符號整型變量a的值為8,二進(jìn)制表示為00001000,右移3位后為
00000001,即十進(jìn)制的1,所以輸出1。
28、以下敘述中正確的是()。
A、在C語言中,預(yù)處理命令行都以“#"開頭
B、預(yù)處理命令行必須位于C源程序的起始位置
C、include必須放在C程序的開頭
D、C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:預(yù)處理命令是以“#"開頭的命令,它們不是C語言的可執(zhí)行命令,這
些命令應(yīng)該在函數(shù)之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置
書寫,所以B、C錯誤。C語言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以
D錯誤。
29、下面關(guān)于編譯預(yù)處理的命令行中,正確的是(),
A、#defineintINT
B、##defineeps0.001
C、##DEFINETRUE
D、#defineE2.88
標(biāo)準(zhǔn)答案:D
知識點(diǎn)解析:選項(xiàng)A中,int是關(guān)鍵字,不能作為用戶標(biāo)識符,錯誤;選項(xiàng)B中,
兩個#號錯誤;選項(xiàng)C中兩個#號錯誤,另外DFINE大寫也是錯誤的;選項(xiàng)D正
確;本題答案為D。
30、有如下程序#includemain。{inti,data;sealIff4%&data)for(i=0;i<5;
i++){if((idata&&i%3==0))continue;printf(“%d,",i);}}程序運(yùn)行時,從鍵盤
輸入:13〈回車,后,程序輸出結(jié)果為()。
A、0,2,4,
B、1,3,5,
C、0,1,2,3,4,5,
D、0,1,2,3,
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:程序通過scanf()函數(shù),輸入data的值13,for循環(huán)中,i的值遍歷。?
4,對每個i的值執(zhí)行if語句判斷,其中:i>daia始終為假;所以表達(dá)式
i>data&&i%3==0始終為假:所以if語句的判斷條件需要看i
31、設(shè)變量n已正確定義并賦值,以下不能實(shí)現(xiàn)自然數(shù)1到n累加求和的程序段是
()。
A、intsum=l,i=0:while(i<=n){i++;sum+=i:}
B、intsum=0,i=l;whilc(i<=n){sum+=i;i++;}
C^int.sum=0,i=0:whi]e(i
D^int.sum=l:i=l:while(i
標(biāo)準(zhǔn)答案:A
知識點(diǎn)解析:選項(xiàng)A中,sum初值為1,i初值為0;當(dāng)iv=n成立時,執(zhí)行while。
循環(huán),首先i自增1,此時1的值為1,然后sum累加i,此時sum的值為1+1=2,
所以選項(xiàng)A計算了2次1,不滿足題意,選項(xiàng)B、C、D都正確,本題答案為A
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年一級注冊建筑師考試題庫300道(歷年真題)
- 2026年企業(yè)人力資源管理師之二級人力資源管理師考試題庫500道含答案(研優(yōu)卷)
- 2026年機(jī)械員考試題庫含答案【完整版】
- 2026年試驗(yàn)檢測師之交通工程考試題庫300道附參考答案(基礎(chǔ)題)
- 2026年初級經(jīng)濟(jì)師之初級建筑與房地產(chǎn)經(jīng)濟(jì)考試題庫300道附參考答案【黃金題型】
- 提升護(hù)理服務(wù)質(zhì)量:護(hù)理文明服務(wù)技巧培訓(xùn)
- 元旦佳節(jié)的活動總結(jié)
- 網(wǎng)絡(luò)科技公司的技術(shù)主管招聘常見問題及答案
- 延吉銀行面試題目及答案
- 產(chǎn)品經(jīng)理崗位核心能力面試題集含答案
- 農(nóng)村集體經(jīng)濟(jì)發(fā)展講座
- 2025運(yùn)動戶外圈層人群洞察白皮書
- 2025廣西公需科目培訓(xùn)考試答案(90分)一區(qū)兩地一園一通道建設(shè)人工智能時代的機(jī)遇與挑戰(zhàn)
- 酸洗鈍化工安全教育培訓(xùn)手冊
- 汽車發(fā)動機(jī)測試題(含答案)
- IPC6012DA中英文版剛性印制板的鑒定及性能規(guī)范汽車要求附件
- 消除母嬰三病傳播培訓(xùn)課件
- 學(xué)校餐費(fèi)退費(fèi)管理制度
- T/CUPTA 010-2022共享(電)單車停放規(guī)范
- 設(shè)備修理工培訓(xùn)體系
- 《社區(qū)營養(yǎng)健康》課件
評論
0/150
提交評論