2022-2023年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第1頁(yè)
2022-2023年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第2頁(yè)
2022-2023年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第3頁(yè)
2022-2023年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第4頁(yè)
2022-2023年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022-2023年安徽省滁州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。

A.隊(duì)頭指針是固定不變的

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

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

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

3.設(shè)有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯(cuò)誤的是()。A.A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

4.

5.

6.

7.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系

8.以下選項(xiàng)中不能用作C語(yǔ)言程序合法常量的是()。

A.123B.‘\123’C.1,234D.“\x7D”

9.設(shè)有以下函數(shù):

voidfun(intn,char*$s){……}

則下面對(duì)函數(shù)指針的定義和賦值均正確的是A.void(*pf)();pf=fun;

B.void*Pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char);nf=&fun;

10.隊(duì)列的“先進(jìn)先出”特性是指()。

A.最早插入隊(duì)列中的元素總是最后被刪除

B.當(dāng)同時(shí)進(jìn)行插入、刪除操作時(shí),總是插入操作優(yōu)先

C.每當(dāng)有刪除操作時(shí),總是要先做一次插入操作

D.每次從隊(duì)列中刪除的總是最早插入的元素

11.下列結(jié)構(gòu)體的定義語(yǔ)句中錯(cuò)誤的是()。

A.structord{intx;inty;intz;}structorda;

B.structord{intx;inty;intz;};structorda;

C.structord{intx;inty;intz;}a;

D.struct{intx;inty;intz;}a;

12.以下不能將s所指字符串正確復(fù)制到所指存儲(chǔ)空間的是()A.do{*t++=*s++;}while(*s);.

B.for(i=0;t[i]=s[i];i++);

C.while(*t=*s){t++;s++}

D.for(i=0,j=0;t[i++]=s[j++];);

13.為了使模塊盡可能獨(dú)立,要求_____。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)

14.設(shè)變量已正確定義,則以下能正確計(jì)算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=1;i<2n;i++)f*=i:

C.f=1:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

15.

16.若變量已經(jīng)定義且正確賦值,則針對(duì)程序段“temp=a;a=b;b=temp;”,以下敘述中正確的是()。

A.C語(yǔ)言的順序結(jié)構(gòu)不允許將多條語(yǔ)句寫在一行里

B.程序順序結(jié)構(gòu)對(duì)于此段程序是從左至右依次執(zhí)行的

C.此程序段的執(zhí)行順序是,先執(zhí)行“b=temp;”,再執(zhí)行“a=b;”,最后執(zhí)行“temp=a;”

D.將此段程序的前兩個(gè)分號(hào)改成逗號(hào),后面一個(gè)不變,則不能實(shí)現(xiàn)a和b值的交換

17.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結(jié)果是()。A.28B.27C.42D.4l

18.有以下程序:#includeintadd(inta,intb){return(a+b);}Main(){Intk,(*f)(),a=5,b=10;f=add;...}則以下函數(shù)調(diào)用語(yǔ)句錯(cuò)誤的是()。A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);

19.若有定義“floatx=1.5;inta=1,b=3,c=2;”,則正確的switch語(yǔ)句是()。

A.switch(a+b){ case1:printf(“*\n”); case2+1:printf(“**\n”);}

B.switch((int)x);{ case1:printf(“**\n”); case2:printf(“**\n”);}

C.switch(x){ case1.0:printf(“*\n”); case2.0:printf(“**\n”);}

D.switch(a+b){ case1:printf(“*\n”); casec:printf(“**\n”);}

20.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.20B.13C.10D.31

二、2.填空題(20題)21.以下程序運(yùn)行結(jié)果是【】。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%5ld\n",k);}

22.在雙鏈表中每個(gè)結(jié)點(diǎn)有兩個(gè)指針域:一個(gè)指向【】,另一個(gè)指向【】。

23.層次模型的典型代表是IBM公司的【】數(shù)據(jù)庫(kù)管理系統(tǒng)。

24.把數(shù)學(xué)表達(dá)式改寫成C語(yǔ)言的表達(dá)式是【】。

25.若x,y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。

x=(y=4)+(z=2)

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

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);

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

main()

{chara[]="ABCDEFG";

char*cp=&a[7];

while(--cp>&a[0])putchar(*cp);

}

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

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

29.在C語(yǔ)言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。

30.若fp已下確定義為一個(gè)文件指針,d1.dat為二進(jìn)制文件,請(qǐng)?zhí)羁?,以便為“讀”而打開此文件:fp=fopen(【】);。

31.一張3.5英寸軟盤大約能存儲(chǔ)140萬(wàn)個(gè)ASCⅡ字符,若存放漢字大約能存放【】個(gè)。

32.以下程序的運(yùn)行結(jié)果是()。

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

33.下列語(yǔ)句能循環(huán)______次。

ints=12;

while(s);

--s;

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

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

prind("\n");

}

35.設(shè)有定義“stmct{inta;floatb;charc}abc,*p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc______。

36.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){chara[80],*p"AbabCDcd";inti=0,j=0;while(*(p++)!='\0'){if(*p>='a'&&*p<='z'){a[i]=*p;i++;}}a[i]='\0';puts(A);}

37.在算法的4個(gè)特性中,算法必須能在執(zhí)行有限個(gè)步驟之后終止指的是算法的______特性。

38.下列二維數(shù)組初始化語(yǔ)句中,正確且與語(yǔ)句floata[][3]={0,3,8,0,9};等價(jià)的是

39.函數(shù)mycmp(char*s,char*t)的功能是比較字符串s和t的大小,當(dāng)s等于t時(shí)返回0,當(dāng)s>t時(shí)返回正值,當(dāng)s<t時(shí)返回負(fù)值。請(qǐng)?zhí)羁铡?/p>

mycmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}

return(【】);

}

40.下面的函數(shù)strcat(str1,str2)實(shí)現(xiàn)將字符串str2拼接到字符串str1后面的功能。請(qǐng)?zhí)羁帐怪暾?/p>

char*strcat(str1,str2)

char*str1,*str2;

{char*t=str1;

while(【】)str1++;

while(【】);

return(t);}

三、1.選擇題(20題)41.棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是

A.ABCEDB.DCBEAC.DBCEAD.CDABE

42.下面程序的輸出是______。main(){intx=3,y=6,a=0;while(x++!=y-=1)){a+=1;if(y<x)break;}printf("x=%d,a=%d\n",x,y,A);}

A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=,a=1

43.下面是對(duì)宏定義的描述,不正確的是______。

A.宏不存在類型問題,宏名無(wú)類型,它的參數(shù)也無(wú)類型

B.宏替換不占用運(yùn)行時(shí)間

C.宏替換時(shí)先求出實(shí)參表達(dá)式的值,然后代入形參運(yùn)算求值

D.宏替換只不過是字符替代而已

44.若有以下定義的語(yǔ)句

structstudent

{intage;

intnum;};

structstudentstu[3]={{1001,20},{1002,19},{1003,21}};

main()

{structstudent*p;

p=stu;

…}

則以下不正確的引用是

A.(p++)->numB.p++C.(*p).numD.P=&stu.age.

45.結(jié)構(gòu)化程序設(shè)計(jì)的主要特點(diǎn)是()。

A.每個(gè)控制結(jié)構(gòu)要模塊化B.每個(gè)控制結(jié)構(gòu)具有封裝性C.每個(gè)控制結(jié)構(gòu)具有獨(dú)立性D.每個(gè)控制結(jié)構(gòu)只有一個(gè)入口和一個(gè)出口

46.已知大寫字母B的ASCII碼值是66,小寫字母b的ASCII碼值是98,則用八進(jìn)制表示的字符常量'\142'是()

A.字符BB.字符bC.字符aD.非法的常量

47.以下關(guān)于字符串的敘述中正確的是()。

A.C語(yǔ)言中有字符串類型的常量和變量

B.兩個(gè)字符串中的字符個(gè)數(shù)相同時(shí)才能進(jìn)行串符串大小的比較

C.可以用關(guān)系運(yùn)算符對(duì)字符串的大小進(jìn)行比較

D.空串一定比空格打頭的字符串小

48.對(duì)于n個(gè)結(jié)點(diǎn)的單向鏈表(無(wú)表頭結(jié)點(diǎn)),需要指針單元的個(gè)數(shù)至少為______。

A.n-1B.nC.n+1D.2n

49.若有說(shuō)明語(yǔ)句:inta,b,c,*d=&c;,則能正確從鍵盤讀入3個(gè)整數(shù)分別賦給變量a、b、c的語(yǔ)句是()。

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);

50.變量a所占的內(nèi)存字節(jié)數(shù)是______。unionU{charst[4];inti;long1;};structA{intc;unionUu;}a;

A.4B.5C.6D.8

51.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語(yǔ)言的先進(jìn)性D.程序的易讀性

52.以下程序的輸出結(jié)果是______。structHAR{intx,y;structHAR*p;}h[2];main(){h[0],x=1;h[0].y=2;h[1]x=3;h[1].y=4;h[0].p、&h[1];h[1]..p=h;printf("%d%d\n",(h[0].p)->x,(h[1].p)->y;}

A.12B.23C.14D.32

53.設(shè)計(jì)軟件結(jié)構(gòu)是在軟件生命周期的()。

A.軟件定義期B.軟件開發(fā)期C.軟件維護(hù)期D.以上三個(gè)都不是

54.對(duì)關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為()

A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算

55.有以下程序:main(){chara[]="abcdefg",b[10]="abedefg";printf("%d%d\n",sizeof(A),sizeof(B));}執(zhí)行后輸出結(jié)果是()。

A.77B.88C.810D.1010

56.在C語(yǔ)言中,int,char和short三種類型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)

A.由用戶自己定義B.均為2個(gè)字節(jié)C.是任意的D.由所用機(jī)器的機(jī)器字長(zhǎng)決定

57.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;pfintf("%d,%d,%d,%d\n",a,b,c,d);}

A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯(cuò)

58.若有以下結(jié)構(gòu)體定義,則______是正確的引用或定義。structexample{intx;inty;}v1;

A.example.x=10

B.examplev2.x=10

C.structv2;v2.x=10

D.structexamplev2={10};

59.設(shè)有定義:inta=2,b=3,c=4;,則下列選項(xiàng)中值為0的表達(dá)式是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

60.可以在C語(yǔ)言中用做用戶標(biāo)識(shí)符的是______。

A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG

四、選擇題(20題)61.

62.

63.有以下程序:

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

A.10,1B.20,1C.10,2D.20,2

64.

若有下列定義和語(yǔ)句:

intu=011,v=0x11,w=11;

printf("%o,%x,%d\n",u,v,w);

則輸出結(jié)果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

65.有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

printf("%s,%s\n",s1,s2);

}

程序執(zhí)行后的輸出結(jié)果是()。A.A.123,abeB.abc.123C.1bc,a23D.321,cba

66.

67.有以下程序:

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

A.1,0B.0,1C.0,0D.1,1

68.

69.請(qǐng)閱讀以下程序:

上面程序的輸出結(jié)果是()。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

70.以下程序的輸出結(jié)果是______。main(){charst[20]="hello'、0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}

A.99B.520C.1320D.2020

71.已知字符A的ASCⅡ代碼值是65,字符變量c1的直是A,c2的值是D。執(zhí)行語(yǔ)句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。

A.A,BB.A,68C.65,66D.65,68

72.下列程序執(zhí)行后的輸出結(jié)果是()。voidfunc(int*a,intb[]){b[0]=*a+b;}main{inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}A.6B.7C.8D.9

73.若有說(shuō)明:inta[3][4]={0};,則下面正確的敘述是

A.只初始化了第一個(gè)元素,即a[0][0]可得到初值0

B.此初始化語(yǔ)句不正確

C.?dāng)?shù)組a中各元素都可得到初值,但其值不一定為0

D.?dāng)?shù)組a中每個(gè)元素均可得到初值0

74.設(shè)有以下程序段:

structMP3

{charname[20];

charcolor;

floatprice;

}std,*ptr;

ptr=&std:

若要引用結(jié)構(gòu)體變量std中的color成員,寫法錯(cuò)誤的是()。

A.std.color

B.ptr->color

C.std->color

D.(*ptr)color

75.

76.下列說(shuō)法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()

A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)操作C.數(shù)據(jù)查詢D.數(shù)據(jù)約束

77.算法的有窮性是指A.算法程序的運(yùn)行時(shí)間是有限的

B.算法程序所處理的數(shù)據(jù)量是有限的

C.算法程序的長(zhǎng)度是有限的

D.算法只能被有限的用戶使用

78.數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)完整性、安全性定義的語(yǔ)言是()。

A.數(shù)據(jù)定義語(yǔ)言B.數(shù)據(jù)管理語(yǔ)言C.數(shù)據(jù)操縱語(yǔ)言D.數(shù)據(jù)控制語(yǔ)言

79.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21

80.若程序有宏定義:#defineNl00,則以下敘述中正確的是()。

A.宏定義中定義了標(biāo)識(shí)符N的值為整數(shù)100

B.在編譯程序?qū)源程序進(jìn)行預(yù)處理時(shí)用l00替換標(biāo)識(shí)符N

C.對(duì)C源程序進(jìn)行編譯時(shí)用100替換標(biāo)識(shí)符N

D.在運(yùn)行時(shí)用100替換標(biāo)識(shí)符N

五、程序改錯(cuò)題(1題)81.以下程序可把輸入的十進(jìn)制數(shù)以十六進(jìn)制數(shù)的形式輸出。請(qǐng)?jiān)跈M線上填上適當(dāng)?shù)膬?nèi)容并把橫線刪除,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù)proc(),它的功能是:求出一個(gè)4×N整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:

參考答案

1.B

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

3.D解析:聯(lián)合體的所有成員共占同一段內(nèi)存,所以聯(lián)合體變量的長(zhǎng)度與它的最長(zhǎng)成員所占長(zhǎng)度…致,本題中float所占內(nèi)存字節(jié)數(shù)為4,而\u3000int類型在TurboC\u30002.0中是占2字節(jié)、在VisualC++6.0中占4字節(jié),所以int類型所占內(nèi)存字節(jié)數(shù)不會(huì)超過float,那demo就與成員d2所占字節(jié)數(shù)是相同的,選項(xiàng)A的說(shuō)法正確。聯(lián)合體的所有成員的首地址都是相同的,和聯(lián)合體變量的地址一致。故選項(xiàng)B和C都是正確的。由于int類型數(shù)據(jù)和float類型數(shù)據(jù)在內(nèi)存中的存放格式是不一樣的,所以給d1賦99后,d2中不會(huì)得到99.0這個(gè)值。故選項(xiàng)D不正確,答案應(yīng)該選擇D。

4.A

5.C

6.D

7.C解析:程序流程圖是人們對(duì)解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號(hào)表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

8.CC選項(xiàng)中不能含有逗號(hào),所以“1,234”不能用作C語(yǔ)言程序的合法常量。B選項(xiàng)表示的是八進(jìn)制的常量,D選項(xiàng)表示的是十六進(jìn)制的常量。故本題答案為C選項(xiàng)。

9.A解析:函數(shù)指針的定義形式是:數(shù)據(jù)類型標(biāo)識(shí)符(*指針變量名)()。void(*pf)()定義了一個(gè)沒有返回值的函數(shù)指針pf,在給函數(shù)指針變量賦值時(shí),只需給出函數(shù)名而不必給出參數(shù)。所以給pf賦值時(shí),只把函數(shù)名fun賦給pf即可。所以正確答案為選項(xiàng)A)。

10.D

11.AA選項(xiàng)錯(cuò)誤,在定義結(jié)構(gòu)體語(yǔ)句后少了分號(hào)。故本題答案為A選項(xiàng)。

12.Ado{*t++=*s++;}while(*s);不能因?yàn)楫?dāng)*s=‘\\0'時(shí),while(*s)跳出循環(huán),這樣字符串結(jié)束標(biāo)志’0\\沒有復(fù)制給*t,造成*t不完整。注意,*t++=*s++是先執(zhí)行t=*s,然后才進(jìn)行t=t+1,s=s+1。B),C),D)三項(xiàng)都能將“\\0’復(fù)制過去。

13.B解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。本題答案為B。

14.D由i"11的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項(xiàng)A中,由于f的初值為0,在for循環(huán)語(yǔ)句中,f依次乘以1,2,3,…,n,最后計(jì)算得到f=n!一0,所以選項(xiàng)A不正確。在選項(xiàng)B中,f的初值為1,在for循環(huán)語(yǔ)句中,f依次乘以1,2,3,…,(n-1),最后計(jì)算得到f=(n-1)!,所以選項(xiàng)B不正確。在選項(xiàng)C中,f的初值為1,在for循環(huán)語(yǔ)句中,f依次乘以n,n+1,n+2,……,所以選項(xiàng)c不正確。在選項(xiàng)D中,f的初值為l,在for循環(huán)語(yǔ)句中,f依次乘以n,n-1,n-2,…,2,最后計(jì)算得到f=n!,所以選項(xiàng)D正確。

15.A

16.BC語(yǔ)言允許將多條語(yǔ)句寫在一行,選項(xiàng)A錯(cuò)誤;題干中的語(yǔ)句是從左至右依次執(zhí)行的,選項(xiàng)B正確,選項(xiàng)C錯(cuò)誤。題干中的程序前兩個(gè)分號(hào)改成逗號(hào),就構(gòu)成了逗號(hào)表達(dá)式。逗號(hào)表達(dá)式會(huì)依次從左到右計(jì)算各個(gè)表達(dá)式,整個(gè)表達(dá)式的值是最后一個(gè)表達(dá)式的值,所以此例也可以實(shí)現(xiàn)a和b值的交換,選項(xiàng)D錯(cuò)誤。故本題答案為B選項(xiàng)。

17.C只有當(dāng)3個(gè)if條件同時(shí)成立,即能夠同時(shí)被2、3、7整除時(shí),才輸出i的值,而從0到50能夠同時(shí)被2、3、7整除的數(shù)只有42,故選擇C選項(xiàng)。

18.DD)選項(xiàng)中*f(a,b)表示調(diào)用后返回一個(gè)指向整型數(shù)據(jù)的地址指針,即該函數(shù)的返回值為指針類型,所以不能將其賦值給整形變量k。

19.AB選項(xiàng)中“switch((int)x);”語(yǔ)句中不應(yīng)該有最后的分號(hào)。switch(expr1)中的expr1不能用浮點(diǎn)類型或long類型,也不能為一個(gè)字符串,所以C選項(xiàng)錯(cuò)誤。case后面必須為常量表達(dá)式,所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。

20.D程序首先定義整型變量s和i,s的初值為0。for循環(huán)中i的取值為1,2,3,4,另外在switch語(yǔ)句中,執(zhí)行各個(gè)分支后,若沒有break語(yǔ)句,會(huì)繼續(xù)執(zhí)行后續(xù)分支。當(dāng)i=1時(shí),switch語(yǔ)句執(zhí)行case1、case2和default,將s自增3后再自增5,此時(shí)s的值為8;當(dāng)i=2時(shí),switch語(yǔ)句執(zhí)行case2、default,將s自增3后再自增5,此時(shí)s的值為16;當(dāng)i=3時(shí),switch語(yǔ)句執(zhí)行case3、case1、case2、default,將s逐步自增2,自增3,自增5,此時(shí)s的值為26;當(dāng)i=4時(shí),switch語(yǔ)句執(zhí)行default語(yǔ)句,將s自增5,此時(shí)s的值為31。本題答案為D選項(xiàng)。

21.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。

22.前趨結(jié)點(diǎn)后繼結(jié)點(diǎn)前趨結(jié)點(diǎn)\r\n后繼結(jié)點(diǎn)

23.IMS(informationManagementSystem)

24.(cosx)*(cosx)*(m+n)/(m-n)

25.6

26.k<=nk++k<=n\r\nk++解析:本題要求將一個(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ù)值的語(yǔ)句“k++;”。

27.GFEDCB。GFEDCB。解析:開始指針cp指向字符串結(jié)束標(biāo)志,在循環(huán)中,cp依次向前移動(dòng),當(dāng)打印出第二個(gè)字符后,cp指向第一個(gè)字符,循環(huán)判斷條件不滿足,退出循環(huán),因此,只打印出第一個(gè)字符以后的字符的逆序列。

28.246

29.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時(shí),才可能執(zhí)行循環(huán)體;在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無(wú)論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。

30.“d1.dat”“rb”或“d1.dat”“r+b”或“d1.dat”“rb+”“d1.dat”,“rb”,或“d1.dat”,“r+b”,或“d1.dat”,“rb+”,解析:打開文件的函數(shù)為fopen(”文件名”,“mode”),其中“mode”表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:“rb”、“wb”、“ab”、“rb+”、“wb+”、“ab+”?!皉”表示以只讀方式打開。“w”表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件?!癮”為追加方式打開。若文件存在時(shí);將打開這個(gè)文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件?!皉+”打開一個(gè)已存在文件用于更新(可讀可寫)?!皐+”創(chuàng)建個(gè)新文件用于更新,如果文件存在,文件被重寫(可讀可寫)?!癮+”打開用于追加,當(dāng)文件不存在時(shí),創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填“d1.dst”,“rb”或其他等價(jià)的表達(dá)法。

31.70萬(wàn)70萬(wàn)

32.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個(gè)變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進(jìn)行fun()函數(shù)后的運(yùn)算,輸出結(jié)果為m=4,k=4。將k值輸出后自行增加1,k=5,此時(shí)全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結(jié)果為“i=5k=5”。

33.無(wú)限無(wú)限解析:分析程序“while(s)”語(yǔ)句后面有一個(gè)“;”不能執(zhí)行后面的語(yǔ)句,只是執(zhí)行空語(yǔ)句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無(wú)限次(即死循環(huán))。

34.1011121210111212解析:需要注意的是,函數(shù)fun()中的變量c為靜態(tài)局部變量,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配了存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間不會(huì)釋放,所以調(diào)用函數(shù)時(shí),只賦初值一次,以后再調(diào)用函數(shù)時(shí),c中的值為上次調(diào)用函數(shù)時(shí)的值。執(zhí)行for循環(huán),當(dāng)i=0時(shí),fun(5)=5+1+4=10,此時(shí)c=4;當(dāng)i=1時(shí),fun(5)=5+1+5=11,此時(shí)c=5;當(dāng)i=2時(shí),fun(5)=5+1+6=12;此時(shí)c=6:當(dāng)i=3時(shí),退出for循環(huán),并輸出回車換行符。

35.若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abe,則引用變量abe成員s的標(biāo)記形式有abe.a和p_abc->a。

36.babcdbabcd解析:c語(yǔ)言中\(zhòng)\0表示字符串的結(jié)束。程序?qū)指針指向字符串“AbabCDcd”的首地址,循環(huán)開始后,若指針當(dāng)前不是指向字符串結(jié)束標(biāo)志位,則進(jìn)入循環(huán)體。循環(huán)中每次檢驗(yàn)字符串中字母是否在a與z之間,若滿足則將當(dāng)前值賦于數(shù)組a,最后給數(shù)組添加字符結(jié)束標(biāo)志。此程序可以篩選出字符串中的小寫字母。

37.有窮性有窮性解析:算法的4個(gè)基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報(bào),其中,算法的有窮性指的是算法必須在有限的時(shí)間內(nèi)完成,即算法必須在執(zhí)行有限個(gè)步驟之后終止。

38.B

39.*s-*t*s-*t解析:本題考查比較字符串的大小。函數(shù)的兩個(gè)形參是兩個(gè)字符指針變量,指針變量的值是字符串的首地址,*s和*t表示s和t指向的第一個(gè)字符,在while循環(huán)中,通過s和t指針的移動(dòng),不斷改變所指字符,通過返回s和t的第一個(gè)不同字符的ASCII碼的差值*s-*t得到結(jié)果。

40.*str1或*str1!='\0'或*str1!=0或*str1!=NUL*str1++=*str2++或*str1++=*str2*str2++*str1或*str1!='\\0'或*str1!=0或*str1!=NUL\r\n*str1++=*str2++或*str1++=*str2,*str2++解析:函數(shù)strcat(str1,str2)實(shí)現(xiàn)將字符串str2連接到字符串str1后面,所以首先要找到字符串str1的串尾,根據(jù)C語(yǔ)言的語(yǔ)法規(guī)定,一個(gè)串的串尾—定是—個(gè)隱含字符“\\0”,而在程序中,對(duì)字符串中字符的訪問是通過兩個(gè)指針變量來(lái)完成的,因此要找到字符串str1的串尾,要判斷:str1是否為“\\0”,要找到字符串str2的串尾,要判斷*str2是否為“\\0”,程序中必須以使字符串中字符逐—順序體現(xiàn),所以在題中我們應(yīng)填寫“*str1”和“*str1++=*str2++”。

41.B解析:棧操作原則上“后進(jìn)先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個(gè)元素中D是最后進(jìn)棧,B、C處于中間,A最早進(jìn)棧。所以出棧時(shí)一定是先出D,再出C,最后出A。

42.D解析:注意的是x++中x值的引用時(shí),這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:

第一次while循環(huán):條件為真,執(zhí)行a=a+1=1;此時(shí),x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);

第二次while循環(huán);條件為假,此時(shí)x的值已為5,退出while循環(huán),執(zhí)行printf。

43.C解析:宏替換實(shí)質(zhì)上就是字符替代,它不可能進(jìn)行計(jì)算,故C錯(cuò)誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經(jīng)將代碼替換到程序內(nèi),執(zhí)行時(shí)不會(huì)產(chǎn)生類似于函數(shù)調(diào)用的問題,可以說(shuō)不占用運(yùn)行時(shí)間。

44.D解析:考查對(duì)結(jié)構(gòu)體成員的引用方法。結(jié)構(gòu)體成員的引用可以用'結(jié)構(gòu)體變量名.成員名'或者'結(jié)構(gòu)體變量指針->成員名'兩種方式來(lái)引用。

45.D解析:結(jié)構(gòu)化程序設(shè)計(jì)要求把程序的結(jié)構(gòu)限制為順序、選擇和循環(huán)三種基本結(jié)構(gòu),以便提高程序的可讀性。這種結(jié)構(gòu)化程序具有以下兩個(gè)特點(diǎn):首先,以控制結(jié)構(gòu)為單位,只有一個(gè)入口和一個(gè)出口,使各單位之間的接口比較簡(jiǎn)單,每個(gè)單位也容易被人們所理解;其次,縮小了程序的靜態(tài)結(jié)構(gòu)與動(dòng)態(tài)執(zhí)行之間的差異,使人們能方便、正確地理解程序的功能。本題的正確答案是D。

46.B

47.D解析:C語(yǔ)言中只有字符串常量而沒有字符串變量,故選項(xiàng)A不正確:字符串比較大小是以第1個(gè)不相同字符的大小為標(biāo)準(zhǔn)的,跟長(zhǎng)度沒有關(guān)系,故選項(xiàng)B不正確:字符串比較大小除了使用庫(kù)函數(shù)stremp()以外,就只能靠自己寫代碼來(lái)實(shí)現(xiàn)了,而不能通過關(guān)系運(yùn)算符來(lái)比較大小,因?yàn)樽址诒磉_(dá)式中相當(dāng)于coostchar*,即常字符指針,代表的是字符串的首地址,關(guān)系運(yùn)算符會(huì)將兩個(gè)字符串的首地址值比較大小,這是毫無(wú)意義的。所以選項(xiàng)C也不正確??沾拈L(zhǎng)度為0,而以空格打頭的字符串的長(zhǎng)度至少為1,故選項(xiàng)D正確,本題應(yīng)該選擇D。

48.C解析:在n個(gè)結(jié)點(diǎn)的單向鏈表(無(wú)表頭結(jié)點(diǎn))中,每個(gè)結(jié)點(diǎn)都有一個(gè)指針單元(即指針域),加上頭指針,至少需要n+1個(gè)指針單元。

49.A解析:選項(xiàng)B中d已經(jīng)為地址,不應(yīng)在加上求地址符號(hào)“&”,故選項(xiàng)B不正確;選項(xiàng)C中,a和b都為變量不是地址,應(yīng)該在a和b之前加上求地址符號(hào)“&”,故選項(xiàng)C不正確:選項(xiàng)D中指針d所指向的存儲(chǔ)空間的位置為變量c的值,不為地址,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中A為所選。

50.C解析:結(jié)構(gòu)體變量所占內(nèi)存長(zhǎng)度是各成員占內(nèi)存長(zhǎng)度之和,而共用體變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。本題結(jié)構(gòu)體變量a中成員c為整型占2個(gè)字節(jié),共用體變量u最大長(zhǎng)度為4個(gè)字節(jié),故選C。

51.D解析:程序不僅是編寫完就結(jié)束了,為了測(cè)試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計(jì)的風(fēng)格應(yīng)該強(qiáng)調(diào)簡(jiǎn)單和清晰,即程序的易讀性,“清晰第一,效率第二”。

52.D解析:本題中是一個(gè)含有兩個(gè)結(jié)點(diǎn)的循環(huán)鏈表。

C語(yǔ)言中結(jié)構(gòu)體的定義為:

struct結(jié)構(gòu)體類型名

{

成員項(xiàng)表;

};

53.B解析:設(shè)計(jì)軟件結(jié)構(gòu)是在軟件概要設(shè)計(jì)階段進(jìn)行的,而概要設(shè)計(jì)屬于軟件開發(fā)期。

54.AA)【解析】關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,新關(guān)系中包含兩個(gè)關(guān)系中的所有元組。

55.C解析:本題中定義兩個(gè)字符型數(shù)組,其中a省略了長(zhǎng)度,定義了b的長(zhǎng)度為10,并賦初值分別為“abcdefg”和“abcdefg”。所以a的長(zhǎng)度為賦值給它的字符串的字符個(gè)數(shù)7加上一個(gè)結(jié)束轉(zhuǎn)義字符,即a的長(zhǎng)度為7+1為8。定義時(shí)b的長(zhǎng)度定義為10,故b的長(zhǎng)度為lo,因此最后通過函數(shù)sizeom求得的數(shù)組a和數(shù)組b的長(zhǎng)度分別為8和10,所以,4個(gè)選項(xiàng)中選項(xiàng)c符合題意。

56.D解析:C語(yǔ)言中,常用的數(shù)據(jù)類型有int,char,float,double等,但C標(biāo)準(zhǔn)沒有具體規(guī)定以上各類數(shù)據(jù)所占內(nèi)存字節(jié)數(shù),只要求long型數(shù)據(jù)長(zhǎng)度不短于int型,short型不長(zhǎng)于int型,具體如何實(shí)現(xiàn),由各計(jì)算機(jī)系統(tǒng)自行決定。

57.D解析:程序中if子句后面有2條語(yǔ)句b=1;c=2;需要用{}括起來(lái),成為一條復(fù)合語(yǔ)句,否則else找不到與之配對(duì)的if,所以編譯出錯(cuò)。

58.D解析:在定義結(jié)構(gòu)體變量時(shí),不能只用結(jié)構(gòu)體名example或關(guān)鍵字struct進(jìn)行定義,必需要用結(jié)構(gòu)缽類型名structexample定義,在引用結(jié)構(gòu)體成員變量時(shí),需要用結(jié)構(gòu)體變量名進(jìn)行引用,所以選D。

59.A解析:在選項(xiàng)A)中,因?yàn)?a=0,所以關(guān)系表達(dá)式!a==1的值為0,又因?yàn)檫壿嬇c運(yùn)算符“&&”兩邊的表達(dá)式只要一個(gè)等于零,則整個(gè)表達(dá)式為零,所以選項(xiàng)A)正確。在選項(xiàng)B)中,關(guān)系表達(dá)式a<b為真,表達(dá)式(a<b)&&!c為假,而表達(dá)式(a<b)&&!c‖1為真,所以整個(gè)表達(dá)式的值為真。選項(xiàng)C)中,a&&b的結(jié)果為真。在選項(xiàng)D)中,a‖(b+b)&&(c-a)的結(jié)果為真。

60.B解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。另外還需要注意的是關(guān)鍵字不能作標(biāo)識(shí)符。選項(xiàng)A中void,C中for都為關(guān)鍵字,D中2c以字母開頭。

61.B

62.B

63.C數(shù)組名的值即為數(shù)組首地址,所以P->y可得第一個(gè)元素的y值,(++P)→x可得第二個(gè)元素的X值。

64.C解析:在C語(yǔ)言中,“%d”表示輸出帶符號(hào)的十進(jìn)制整型數(shù);“%x”表示以十六進(jìn)制無(wú)符號(hào)型輸出整型數(shù)據(jù)(即不帶前導(dǎo)0x或0X);“%o”表示以八進(jìn)制無(wú)符號(hào)型輸出整型數(shù)據(jù)(即不帶前導(dǎo)0)。

65.C本題考查swap函數(shù),它的作用是把x、Y所指的內(nèi)容互換,其他的不變,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,僅僅'a'與'1'互換,其他的沒有變。

66.D

67.An=b>a,n=1,判斷到此,邏輯或?yàn)檎妫竺娴腏=a<b不再執(zhí)行。因此i=1,j=0。

68.D

69.A考查switch語(yǔ)句的使用。switch語(yǔ)句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對(duì)條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論