2021-2022年山西省長(zhǎng)治市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第1頁(yè)
2021-2022年山西省長(zhǎng)治市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第2頁(yè)
2021-2022年山西省長(zhǎng)治市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第3頁(yè)
2021-2022年山西省長(zhǎng)治市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第4頁(yè)
2021-2022年山西省長(zhǎng)治市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2021-2022年山西省長(zhǎng)治市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:

main

{chara='a',b;

printf("%c,",++a);

printf("%c\n",b=a++):

)

程序運(yùn)行后的輸出結(jié)果是()。A.A.b,bB.b,cC.a,bD.a,c

2.若有定義;intw[3][5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)

3.下述程序執(zhí)行的輸出結(jié)果是()。#includemain{chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}A.A.are&youB.youC.areD.&

4.下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}

A.121,0,4B.2,2,2C.0,2,4D.0,2,2

5.A.A.75310246B.01234567C.76310462D.13570246

6.有以下程序:#include<stdio.h>,main(){intS;scanf("%d",&s);while(s>O){switch(s){casel:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:("%d",s+1);break;}scanf("%d",&s);}}運(yùn)行時(shí),若輸入123450<回車>,由輸出結(jié)果是()。A.6566456B.66656C.66666D.6666656

7.設(shè)有關(guān)鍵碼初始化序列{Q,H,C,Y,P,A,M,S,R,D,F,X},新序列{F,H,C,D,P,A,M,Q,R,S,Y,X}是采用()方法對(duì)初始序列精細(xì)第一堂排序的結(jié)果。

A.直接插入排序B.二路歸并排序C.快速排序D.基數(shù)排序

8.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}

A.266B.11C.265D.138

9.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,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

10.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。

A.4B.34C.31D.32

11.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8

12.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。

A.31B.32C.16D.15

13.以下敘述中錯(cuò)誤的是()。

A.非零的數(shù)值型常量有正值和負(fù)值的區(qū)分

B.常量是在程序運(yùn)行過程中值不能被改變的量

C.定義符號(hào)常量必須用類型名來設(shè)定常量的類型

D.用符號(hào)名表示的常量叫符號(hào)常量

14.有以下程序執(zhí)行后的輸出結(jié)果是()。A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

15.

16.定義根節(jié)點(diǎn)深度為1,有n個(gè)元素的完全二叉樹的深度是()

A.D(n)=log2(n)

B.D(n)=1+log2(n)

C.D(n)=n+log2(n)

D.D(n)=1+n*log2(n)

17.若有語句“void*P=malloc(80);”,則以下敘述錯(cuò)誤的是()。

A.可以通過指針P直接訪問用malloc開辟的這塊內(nèi)存

B.p所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有20個(gè)int型元素的一維數(shù)組來使用

C.p所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有10個(gè)double型元素的一維數(shù)組來使用

D.P所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有80個(gè)char型元素的一維數(shù)組來使用

18.以下涉及字符串?dāng)?shù)組、字符指針的程序段中,沒有編譯錯(cuò)誤的是()。A.char*str,name[1];str=“Hello”;

B.char*str,name[1];name=“Hello”;

C.charstrl[10]=“ex1.c”,str2[6];str2=str1;

D.charhead_line[];head_line=“\\0”;

19.

20.有以下定義和語句:structworkers{intnum;charname[20];charC;struct{intday;intmonth;intyear;)S;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980

D.w.S.year=1980;

二、2.填空題(20題)21.執(zhí)行以下程序后的輸出結(jié)果是【】。

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",a);

}

22.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個(gè)字符放到buf字符數(shù)組中,函數(shù)返回值為______。

23.軟件設(shè)計(jì)模塊化的目的是______。

24.按"先進(jìn)后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。

25.設(shè)有定義:floatx=123.4567;,則執(zhí)行以下語句后的輸出結(jié)果是()。printf("%f\n",(int)(x*100+0.5)/100.0);

26.下面程序的功能是:輸出100以內(nèi)能被3整除且個(gè)位數(shù)為9的所有整數(shù),清填空。main(){inti,j;for(i=0;();i++){j=i*10+9;if(j%3!=0)continue;printf("%d",j);}}

27.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

28.以下程序的輸出結(jié)果是______。

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

29.以下程序的輸出結(jié)果是【】。

main()

{charc=′z′;

printf("%c",c-25);}

30.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。

31.下列程序段的運(yùn)行結(jié)果是______。

intx=0,y=0;

while(x<15)y++,x+=++y;

pfintf("%d,%d",y,x);

32.有以下程序段,且變量已正確定義和賦值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

請(qǐng)?zhí)羁?使下面程序段的功能與之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

printf("s=%f\n\n",s);

33.下列程序的運(yùn)行結(jié)果為【】。

enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};

main()

{enumweekdayworkday,weekend;

inti,a[8];

workday=tue;

weekend=sun;

printf("\ntueday=%dsunday=%d;",workday,week_end);

workday=sun+tue;

week_end=(enumweekday)3;

printf("tueday=%dsunday=%d;",workday,weekend);

a[sun]=sun;

a[mon]=mon;

a[tue]=rue;

a[wed]=wed;

a[thu]=thu;

a[fri]=fri;

a[sat]=sat;

for(i=l;i<=7;i++)printf("%d",a[i]);

}

34.以下函數(shù)的功能是求x的y次方,請(qǐng)?zhí)羁铡?/p>

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

returnz;

}

35.執(zhí)行以下程序的輸出結(jié)果是()。

#include<stdio.h>

#defineM5

#defineNM+M

main()

{intk;

k=N*N*5;printf(”%d\n",k);

}

36.對(duì)下列二叉樹進(jìn)行中序遍歷的結(jié)果為【】。

37.軟件工程研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和【】。

38.下列程序段的運(yùn)行結(jié)果是______。

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

39.以下程序運(yùn)行后的輸出結(jié)果是【】

#include<stdio,h>fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

inti,a=5;

for(i=0;i<3;i++)prinff("%d%d",i,fun(a));

printf("\n");

}

40.自動(dòng)批處理文件名必須是【】。

三、1.選擇題(20題)41.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

42.以下程序運(yùn)行后,輸出結(jié)果為______。main(){inta[2][3]={1,3,5,7,9,11},*s[2],**pp,*p;s[0]=a[0],s[1]=a[1];pp=s;p=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}

A.1B.7C.9D.11

43.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序運(yùn)行后的輸出結(jié)果是()。

A.3B.2C.1D.0

44.有定義語句:“intx,y;”,若要通過“scanf("%d,%d,&x,&y);”語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯(cuò)誤的是

A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>

45.以下選項(xiàng)中可作為C語言合法常量的是______。

A.-80B.-80C.-8e1.0D.-80.0e

46.以下scanf函數(shù)調(diào)用語句中對(duì)結(jié)構(gòu)體變量成員的引用不正確的是

structpupil

{charname[20];

intage

intsex;

}pup[5],*p;

p=pup;

A.scanf("%s",pup[0].name);

B.scanf("%d",&pup[0].age);

C.scanf("%dT",&(p->sex));

D.scanf("%d",p->age);

47.以下程序運(yùn)行后的輸出結(jié)果是______。main(){intx=0210;printf("%x\n",x);}

A.88B.86C.77D.21

48.若有下列說明和語句,則對(duì)結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。

Stmctstu

{inti;

intname;

}st,*p;

p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

49.下列程序的輸出結(jié)果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}

A.2B.3C.4D.5

50.有如下程序段:inta=14,b=15,x,charc='A';x=(a&&B)&&(c<'B');執(zhí)行該程序段后,x的值為()

A.1B.0C.FALSED.TRUE

51.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta=200;#definea100printf("%dd",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

52.下列選項(xiàng)中可作為C語言合法常量的是()。

A.-80B.-80C.-80.0D.-80.0e

53.

執(zhí)行下列程序中的輸出語句后,a的值是()。

main

{inta;

printf("%d\n",(a=2*3,a*5,a+7));

}

A.17B.37C.6D.13

54.能夠?qū)τ?jì)算機(jī)的硬件設(shè)備進(jìn)行管理,并使應(yīng)用軟件能夠方便、高效地使用這些設(shè)備的是()

A.數(shù)據(jù)庫(kù)存系統(tǒng)B.操作系統(tǒng)C.編輯軟件D.應(yīng)用軟件

55.下列程序的輸出結(jié)果是______。main(){unsignedshorta=65536;intb;printf("%d\n",b:a);}

A.0B.1C.2D.3

56.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}

A.64B.8C.56D.0

57.下列可用于C語言用戶標(biāo)識(shí)符的一組是

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

58.以下能正確定義一維數(shù)組的選項(xiàng)是______。

A.inta[5]={0,1,2,3,4,5);

B.chara[]={0,1,2,3,4,5);

C.chara={'A','B','C'};

D.inta[5]="0123";

59.有以下程序#include<stdio.h>voidmain(){inta=1,b=0;printf("%d,",b=(a++)+(a++));pfintf("%d\n",a+B);}程序運(yùn)行后的輸出結(jié)果是()。

A.4,6B.2,5C.3,5D.2,6

60.下面程序的運(yùn)行結(jié)果是#include<stdio.h>#include<string.h>main(){char*s1="AbDeG";char*s2="AbdEg";s1+=2;s2+=2;printf("%d\n",strcmp(s1,s2));}

A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值

四、選擇題(20題)61.

則以下選項(xiàng)中錯(cuò)誤的表達(dá)式是()。

A.

B.

C.

D.

62.讀出以下語句的輸出結(jié)果是()。

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

A.1010B.99C.910D.109

63.(42)希爾排序法屬于哪一種類型的排序法()

A.交換類排序法

B.插入類排序法

C.選擇類排序法

D.建堆排序法

64.對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。A.隊(duì)頭指針是固定不變的

B.隊(duì)頭指針—定大于隊(duì)尾指針

C.隊(duì)頭指針_定小于隊(duì)尾指針

D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針

65.在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E—R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。

A.需求分析階段B.概念設(shè)計(jì)階段C.邏輯設(shè)計(jì)階段D.物理設(shè)計(jì)階段

66.

67.以下程序有錯(cuò),錯(cuò)誤的原因是

main()

{int*p,i;char*q,ch;

p=&i;

q=&ch;

*p=40;

*p=*q;

......

}

A.p和q的類型不一致,不能執(zhí)行*p=*q;語句

B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句

C.q沒有指向具體的存儲(chǔ)單元,所以*q沒有實(shí)際意義

D.q雖然指向了具體的存儲(chǔ)單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會(huì)影響后面語句的執(zhí)行結(jié)果

68.

69.(17)軟件需求分析階段的工作,可以分為四個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()

A.階段性報(bào)告

B.需求評(píng)審

C.總結(jié)

D.都不正確

70.以下程序執(zhí)行后的輸出結(jié)果是()。

A.5,5

B.5,11

C.11,11

D.11,5

71.若有定義語句:intx=10;,則表沃式㈣的值為()。A.一10B.-20C.0D.10

72.

73.

74.相對(duì)于數(shù)據(jù)庫(kù)系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

75.

下列程序的輸出結(jié)果是()。

#include<stdio.h>

voidp(int*x)

{printf("%d¨,++*x);

}

voidmain()

{inty=3;

p(&y);

}

A.3B.4C.2D.5

76.

以下程序的輸出結(jié)果是()。

main

{inti=0,S=0;

for(;;)

{

if(i==3||i==5)continue;

if(i==6)break;

i++;

s+=i:

};

printf("%d\n",s);

}

A.10B.13C.21D.程序陷入死循環(huán)

77.

78.

79.以下敘述中正確的是()。A.在c語言中,預(yù)處理命令行都以‘‘#”開頭

B.預(yù)處理命令必須位于c源程序的起始位置

C.#include必須放在c程序的開頭

D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:先從鍵盤上輸入一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之和。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫一個(gè)函數(shù)fun(),該函數(shù)的功能是使變量h的值保留兩位小數(shù),并對(duì)第3位進(jìn)行四舍五入(規(guī)定h的值為正數(shù))。若h的值為1234.567,則函數(shù)返回1234.570000;若h的值為1234.564,則函數(shù)返回1234.560000。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:

參考答案

1.A++a與a++的區(qū)別是前者先自加再運(yùn)算,后者是先運(yùn)算后自加。

2.B通過—維數(shù)組名或指向維數(shù)組元素的指針來引用數(shù)組元素有兩種寫法:a[i]和*(a+i),它們是等價(jià)的。這是一種運(yùn)算符之間的等價(jià)轉(zhuǎn)換,就好像a-(b-C)等價(jià)于a-b+c一樣。知道了這種轉(zhuǎn)換,我們可以將之?dāng)U展到二維數(shù)組甚至任意維數(shù)組上來。因?yàn)閇]運(yùn)算符的結(jié)合性是從左至右的,所以w[i][j]等價(jià)于(w[i][j],此時(shí)可以先將任意一個(gè)[]運(yùn)算符轉(zhuǎn)換為指針形式為:(*(w+i)[j]或*(w[i]+j),或者同時(shí)轉(zhuǎn)換:*(*(w+i)+j)。上述幾種形式都完全等價(jià)于w[i][j]。選項(xiàng)A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正確的。選項(xiàng)B小,因?yàn)閇]運(yùn)算符的優(yōu)先級(jí)高于*運(yùn)算符,所以*(w+1)[4]等價(jià)于*((w+1)[4]等價(jià)于*(*((w+1)+4)),即*(*(w+5)+0),它等價(jià)于w[5][0],很明顯它超過數(shù)組的范圍了,故不正確。選項(xiàng)C等價(jià)于w[1][0],是下確的。選項(xiàng)D中,&w[0][0]是數(shù)組w第1個(gè)元素的地址,它等價(jià)于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以個(gè)數(shù),然后再除以這個(gè)數(shù)一樣。所以,&w[0][0]等價(jià)于*(w+0)+0。即*w。所以原式就變?yōu)?(*w+1)等價(jià)于w[0][1],這個(gè)也是合法的。綜上所述,本題應(yīng)該選擇B。

3.Astrcpy實(shí)現(xiàn)的功能是復(fù)制,該操作把a(bǔ)re復(fù)制到a中,a[0][3]='&',且strcpy(a[1],"you")把you復(fù)制到a[1]中,故輸出a為“are&you”。

4.B解析:sizeof函數(shù)是取變量所占的存儲(chǔ)空間的字節(jié)數(shù),標(biāo)識(shí)a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認(rèn)為整型;enumc{a1,a2};定義了—個(gè)枚舉類型enumc,a1,a2為枚舉元素,在C編譯時(shí),對(duì)枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。

5.A本題的考點(diǎn)是C語言的數(shù)組及其排序。本題的程序中分為2個(gè)循環(huán)體,第一個(gè)循環(huán)體將數(shù)組中1,3,5,7,2,4,6,0的前4個(gè)元素從大到小排序,這個(gè)循環(huán)體結(jié)束后數(shù)組中的值為7,5,3,1,2,4,6,0。第二個(gè)循環(huán)體將數(shù)組中7,5,3,1,2,4,6,0從第5個(gè)開始的4個(gè)元素從小到大排序,這個(gè)循環(huán)體結(jié)束后數(shù)組中的值為7,5,3,1,0,2,4,6。所以正確答案是選項(xiàng)A。

6.A根據(jù)題意,當(dāng)s=1時(shí),輸出65;當(dāng)s=2時(shí),輸出6;當(dāng)S=3時(shí),則輸出64;當(dāng)S=4時(shí),輸出5;當(dāng)s=5時(shí),輸出6;當(dāng)s=0時(shí),程序直接退出。所以最后答案為6566456,A選項(xiàng)正確。

7.C

8.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數(shù)組c共占用同—個(gè)存儲(chǔ)單元,且此存儲(chǔ)單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。

9.A函數(shù)“strlen(char*s)”;計(jì)算字符串s的長(zhǎng)度,不包括‘\\0’在內(nèi)。p指向數(shù)組的第2個(gè)元素,因此“Strien(P)=10”,并輸出“one*Dream!”。故本題答案為A選項(xiàng)。

10.C本題重點(diǎn)考察二維數(shù)組名作為實(shí)參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實(shí)參為二維數(shù)組名a和兩個(gè)整數(shù)4.0,這樣對(duì)應(yīng)定義fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對(duì)s[i][j]進(jìn)行操作實(shí)際上就是對(duì)主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個(gè)元素。因此C選項(xiàng)正確。

11.B本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在執(zhí)行函數(shù)func時(shí),由于全局定義了一個(gè)變量b,所以在函數(shù)體中執(zhí)行b=2+1=3,最終t=2+3=5。

12.C解析:二叉樹的一個(gè)性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個(gè)結(jié)點(diǎn)。對(duì)于滿二叉樹,每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹的第k層上有2k-1個(gè)結(jié)點(diǎn)。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點(diǎn)在第5層上,即其結(jié)點(diǎn)數(shù)為2(k-1)=2(5-1)=16。

13.C在C語言中,可以用一個(gè)標(biāo)識(shí)符來表示一個(gè)常量,稱之為符號(hào)常量。符號(hào)常量在使用之前必須先定義,其一般形式為:#define標(biāo)識(shí)符常量。

14.B

15.B

16.B

17.A題干中使用malloc函數(shù)分配了80個(gè)字節(jié)的內(nèi)存單元,void指針p指向該內(nèi)存單元。在C語言中,void*不能直接使用,必須利用強(qiáng)制類型轉(zhuǎn)換將其轉(zhuǎn)成所需的類型才能使用,選項(xiàng)A錯(cuò)誤。int類型的元素占4個(gè)字節(jié),所以可以將p指向的內(nèi)存強(qiáng)制類型轉(zhuǎn)換成具有20個(gè)int類型的一維數(shù)組來使用,同理,也可以強(qiáng)制類型轉(zhuǎn)換成10個(gè)double類型的一維數(shù)組來使用,或強(qiáng)制類型轉(zhuǎn)換成80個(gè)char類型的一維數(shù)組來使用,選項(xiàng)B、C、D正確。故本題答案為A選項(xiàng)。

18.AC語言中,字符指針變量可以直接使用字符串賦值,而字符數(shù)組不能直接使用字符串或字符數(shù)組賦值,選項(xiàng)B、C、D錯(cuò)誤,選項(xiàng)A正確。故本題答案為A選項(xiàng)。

19.B

20.D結(jié)構(gòu)workers中的成員s是一個(gè)嵌套的結(jié)構(gòu)類型定義,因此在給year賦值時(shí),要用“.”運(yùn)算在深入一層訪問到最基本的成員year,只有D項(xiàng)反映出了這一點(diǎn)。

21.a=14a=14解析:逗號(hào)表達(dá)式的值是以逗號(hào)分隔的最后一個(gè)表達(dá)式的值。所以題目中的語句a=(3*5,a+4);就等價(jià)于a=a+4;。故本題輸出結(jié)果是a=14。

22.buf的首地址buf的首地址解析:考查fsets()函數(shù)的功能,f8ets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:f8ets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個(gè)int型變量。調(diào)用函數(shù)fsets()時(shí),最多能讀入n-1個(gè)字符,系統(tǒng)自動(dòng)在最后加字符串結(jié)束標(biāo)志,并以buf作為函數(shù)值返回。

23.降低復(fù)雜性降低復(fù)雜性

24.棧棧解析:考查考生對(duì)棧和隊(duì)列概念的掌握。按'先進(jìn)后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進(jìn)先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊(duì)列。

25.460000

26.i<10i<10解析:分析程序,當(dāng)(i=0,1,2,…)時(shí),“j=i*10+9”語句的運(yùn)行結(jié)果是(9,39,69,99)個(gè)位數(shù)為9的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%3!=0)continue;”語句的功能是當(dāng)條件不能被3整除時(shí),繼續(xù)循環(huán)不執(zhí)行操作,直到能被3整除時(shí)輸出該數(shù),即輸出的數(shù)滿足條件100以內(nèi)能被3整除且個(gè)位數(shù)為9。

27.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)

28.指針P指向數(shù)組a的首地址,執(zhí)行語句p++;后p指向數(shù)組a的第2個(gè)元素的地址,即a[1]的地址,因此*p=a[1]=4。\r\n\r\n

29.aa解析:'z'的ASCII碼值為122,經(jīng)過c-25運(yùn)算后,得97,以字符形式輸出是a。

30.存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間。供隊(duì)列循環(huán)使用??芍?,循環(huán)隊(duì)列應(yīng)當(dāng)是物理結(jié)構(gòu)。

31.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8=20,此時(shí)y=8。

32.k<=nk++k<=n,k++解析:本題要求將一個(gè)for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會(huì)加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句'k++;'\ue009。

33.tueday=2sunday=7;tueday=9sunday=3;1234567

34.xx解析:函數(shù)的定義形式為;

函數(shù)類型函數(shù)名(形參表)

{

類型說明語句;

執(zhí)行語句;

}

本題中函數(shù)的功能是:累積變量以求得變量的Y次方。

35.5555解析:本題考查的重點(diǎn)是對(duì)宏定義的理解。#define指令定義一個(gè)標(biāo)識(shí)符和一個(gè)串,編譯程序在對(duì)C源程序處理時(shí).發(fā)現(xiàn)該標(biāo)識(shí)符都用該串替換,因此,在語句k=N*N*5將替換成k=M+M*M+M*5后,M被替換成5,從而k=5+5*5+5*5=55。

36.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當(dāng)二叉樹的根不為空時(shí),依次執(zhí)行如下3個(gè)操作:①按中序遍歷左子樹。②訪問根結(jié)點(diǎn)。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點(diǎn)A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點(diǎn)B,然后訪問結(jié)點(diǎn)D,因?yàn)榻Y(jié)點(diǎn)D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點(diǎn)F的左子樹。然后訪問根結(jié)點(diǎn)F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點(diǎn)E,然后訪問結(jié)點(diǎn)E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點(diǎn)G,最后訪問G的右子樹P。以上就把整個(gè)二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。

37.軟件工程管理軟件工程管理解析:軟件工程足指,采用工程的概念、原理、技術(shù)和方法指導(dǎo)軟件的開發(fā)與維護(hù):軟件工程學(xué)的主要研究對(duì)象包括軟件開發(fā)與維護(hù)的技術(shù)、方法、工具和管理等方面。即軟件工程研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。

38.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時(shí)y=8。

39.1011121210111212解析:用static關(guān)鍵字聲明的變量稱為靜態(tài)局部變量。靜態(tài)局部變量只在編譯時(shí)賦一次初值,以后再次調(diào)用函數(shù)時(shí)不再重新賦初值,而是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。程序中的變量c為靜態(tài)變量,當(dāng)再次調(diào)用fun函數(shù)時(shí),變量c不再被賦初值,變量c的值為上次調(diào)用fun函數(shù)時(shí)所保留下來的值,具體在程序運(yùn)行過程中的體現(xiàn)如下:

當(dāng)i=0時(shí),第一次調(diào)用fun(5),這時(shí)a=5,b=0,c=3,執(zhí)行b++,c++,得到b=1,c=4,則a+b+c=10,返回主函數(shù)輸出010;當(dāng)i=1時(shí),第二次調(diào)用fun(5),這時(shí)a=5,b=0,c=4,執(zhí)行b++,c++,得到b=1,c=5,則a+b+c=11,返回主函數(shù)輸出111;當(dāng)i=2時(shí),第三次調(diào)用fun(5),這時(shí)a=5,b=0,c=5,執(zhí)行b++,c++,得到b=1,c=6,則a+b+c=12,返回主函數(shù)輸出212;當(dāng)i=3時(shí),循環(huán)結(jié)束,所以輸出結(jié)果為:010111212。

40.AUTOEXEC.BAT

41.C算法具有的5個(gè)特性是:有窮性、確定性、可行性、有0個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。

42.C解析:s是一個(gè)含有兩個(gè)元素的指針數(shù)組,pp是一個(gè)指向指針變量的指針,s[0]是指向二維數(shù)組a行下標(biāo)為0的元素的首地址,即時(shí)a[0][0]的地址,s[1]為a[1][0]的地址。pp的值為s[0]的地址。**pp=s[1][1]后,a[0][0]的值將被賦值為a[1][1]的值,執(zhí)行p=*pp;后,p中將是s[0]的值,最后的輸出語句將輸出地址s[0]所指向的數(shù)據(jù),即a[0][0]。

43.D解析:位與運(yùn)算符“&”,按二進(jìn)位進(jìn)行“與”運(yùn)算,如果兩個(gè)相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為1,否則為0;取反運(yùn)算符“~”,用來對(duì)一個(gè)二進(jìn)制按位取反,即將0變1,1變0。在prinf()函數(shù)的表達(dá)式中,“&”前面表達(dá)式的值為1(3/2=1)表示為二進(jìn)制為00000001,而按位取反運(yùn)算符“~”的優(yōu)先級(jí)高于按位與運(yùn)算符“&”,先計(jì)算“&”后面的取反運(yùn)算符“~”。z的二進(jìn)制表示為00000001,取反后為11111110,最后進(jìn)行“&”,即“00000001&11111110”可知結(jié)果為00000000,故最后的值為0。

44.A解析:本題考核的知識(shí)點(diǎn)是scanf()函數(shù)的運(yùn)用。seanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)為輸入格式字符串,第二個(gè)參數(shù)為輸入變量地址列表,在scallf()語句中非格式字符可以作為輸入時(shí)數(shù)據(jù)的間隔,輸入時(shí)必須原樣輸入,在本題中輸入格式串為%d,%d其中“,”為非格式字符,所以輸入時(shí)必須原樣輸入。所以4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

45.A解析:選項(xiàng)B中,以0開頭表示是一個(gè)八進(jìn)制數(shù),而八進(jìn)制數(shù)的取值范圍是0~7,所以-080是不合法的;選項(xiàng)C和D中,e后面的指數(shù)必須是整數(shù),所以也不合法。

46.D解析:考查結(jié)構(gòu)體成員變量的引用方法??捎媒Y(jié)構(gòu)體變量名.數(shù)據(jù)成員名或者結(jié)構(gòu)體指針->數(shù)據(jù)成員名兩種方法來引用。結(jié)構(gòu)體類型的變量、數(shù)組和指針變量的定義。

47.A解析:x以0開頭是以八進(jìn)制的形式賦值的,輸出時(shí)要輸出其對(duì)應(yīng)的十六進(jìn)制。0210對(duì)應(yīng)的十六進(jìn)制是88。

48.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價(jià)的指針形式即(*p).i和p->i。

49.C解析:帶參數(shù)的宏定義命令行形式如下:

#define宏名(形參表)替換文本

在編譯的時(shí)候編譯預(yù)處理程序用“替換文本”來替換宏,即M(n,m)被替換為n%m,之后計(jì)算,將計(jì)算的結(jié)果賦給a。注意,宏替換是在編譯時(shí)由預(yù)處理程序完成的,宏替換不占用運(yùn)行的時(shí)間,而函數(shù)調(diào)用是在程序運(yùn)行時(shí)進(jìn)行的,在函數(shù)的調(diào)用過程中需要占用一系列的處理時(shí)間。

50.A解析:a=14,b=15,第一個(gè)&&兩側(cè)均為非零值。c='A',表達(dá)式c<'B'的值為真即1,第二個(gè)&&兩側(cè)也均為非零值。表達(dá)式(a&&b)&&(c<'B')的值為1,賦值給變量x。

51.C解析:#define宏名的有效范圍為定義命令之后到本源文件結(jié)束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。

52.A

53.C解析:本題考查逗號(hào)表達(dá)式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。

54.B

55.A

56.C解析:如果沒有指明函數(shù)值類型,則默認(rèn)函數(shù)返回值的類型為int型。注意:順序程序結(jié)構(gòu)的執(zhí)行過程。

57.B解析:C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下畫線3種字符組成,且第一個(gè)字符必須為字母或下畫線,排除選項(xiàng)C)和D);C語言中還規(guī)定標(biāo)識(shí)符不能為C語言的關(guān)鍵字,而選項(xiàng)A)中void為關(guān)鍵字,故排除選項(xiàng)A)。

58.B解析:C語言一維數(shù)組的定義有兩種方式:一是指定數(shù)組長(zhǎng)度,如選項(xiàng)A“inta[5]={0,1,2,3,4,5};”,但此定義的賦初值個(gè)數(shù)為6,多于數(shù)組長(zhǎng)度,是錯(cuò)誤的。因?yàn)榻o數(shù)組賦初值,初值個(gè)數(shù)只能小于或等于數(shù)組長(zhǎng)度。二是不指定數(shù)組長(zhǎng)度,由賦初值的初值個(gè)數(shù)決定數(shù)組的長(zhǎng)度,如選項(xiàng)B的“chara[]={0,1,2,3,4,5};”,初值個(gè)數(shù)為6,因此數(shù)組長(zhǎng)度為6。所以能正確定義一維數(shù)組。選項(xiàng)C的定義中a是一個(gè)字符變量,不能正確定義一維數(shù)組。選項(xiàng)D“inta[5]=“0123”;”給int型數(shù)組賦字符串初值,顯然是錯(cuò)誤的。

59.B

60.B解析:本題考查了用指針處理字符串的方法。用指針處理字符串,首先要使指針指向該字符串。例如本題中的s1='AbDeG'就是使字符指針指向了字符串'AbDeG',而指針s1+=2則是指針向后移動(dòng)了兩個(gè)字符的位置,指向了字符‘D’。strcmp則是字符串比較函數(shù)。

61.C選項(xiàng)c)中int(f)不正確,因?yàn)閺?qiáng)制類型轉(zhuǎn)換表示為:(類型名)(表達(dá)式),正確表示為(int)f.

62.D

63.B

64.D循環(huán)隊(duì)列的隊(duì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu),所以對(duì)頭指針有時(shí)可能大于隊(duì)尾指針有時(shí)也可能小于隊(duì)尾指針,故本題答案為D)。

65.CC)【解析】邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù):概

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論