2021-2022年云南省麗江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第1頁(yè)
2021-2022年云南省麗江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第2頁(yè)
2021-2022年云南省麗江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第3頁(yè)
2021-2022年云南省麗江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第4頁(yè)
2021-2022年云南省麗江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩65頁(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)介

2021-2022年云南省麗江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下()不是隊(duì)列的基本運(yùn)算

A.從隊(duì)尾插入一個(gè)新元素B.從隊(duì)列中刪除第i個(gè)元素C.判斷一個(gè)隊(duì)列是否為空D.讀取隊(duì)頭元素的值

2.數(shù)據(jù)庫(kù)設(shè)計(jì)中,用E—R圖來(lái)描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的()。

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

3.十六進(jìn)制數(shù)BB轉(zhuǎn)換成十進(jìn)制數(shù)是()

A.192B.256C.187D.121

4.設(shè)有向無(wú)環(huán)圖G中的有向邊集合E={<1,2>,<2,3>,<3,4>,<1,4>},則下列屬于該有向圖G的一種拓?fù)渑判蛐蛄械氖?)。

A.1,2,3,4B.2,3,4,1C.1,4,2,3D.1,2,4,3

5.一個(gè)棧的進(jìn)棧序列是a,b,c,d,e,則棧的不可能的輸出序列是()。

A.edcbaB.decbaC.dceabD.abcde

6.若有定義intx=3,y=2和floata=2.5,b=3.5,則表達(dá)式:(x+y)%2+(int)a/(int)b的值是()。

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

7.若有定義語(yǔ)句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個(gè)元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]

8.若有定義“floata=25,b,*p=&b;”,則下列對(duì)賦值語(yǔ)句“*p=a;”和“p=&a;”的正確解釋為()。

A.兩個(gè)語(yǔ)句都是將變量a的值賦予變量P

B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P

C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a

D.兩個(gè)語(yǔ)句都是使P指向變量a

9.

10.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。

A.654321

B.65432

C.65453452

D.654534521

11.第

22

閱讀下面程序,則程序執(zhí)行后的結(jié)果為

#include"stdio.h"

main()

{inta=4,b=6,c=7;

doubled,fun(int,int,int);

d=fun(a,b,c);

printf("%lf\n",d);}

doublefun(inta,intb,intc)

{doubles;

s=a%b*c;

returns;}

A.27B.27.000000C.28D.28.000000

12.設(shè)某文件內(nèi)排序后得到100個(gè)初始?xì)w并段(初始順串),若使用多路歸并排序算法,且要求三趟歸并完成排序,問(wèn)歸并路數(shù)最少為()

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

13.

14.如果某圖的鄰接矩陣是對(duì)角線元素均為零的上三角矩陣,則此圖是_______

A.有向完全圖B.連通圖C.強(qiáng)連通圖D.有向無(wú)環(huán)圖

15.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

16.有以下程序:#include<stdio.h>intadd_more(inta,intb){returna+b-2;}main(){inti;for(i=0;i<4;i++)printf(“%d”,add_more(i,2));}程序運(yùn)行后的輸出結(jié)果是()。

A.1234B.0123C.5678D.4321

17.以下語(yǔ)句中存在語(yǔ)法錯(cuò)誤的是()。A.charss[6][20];s[1]="right?";

B.charss0[20]={"right?"};.

C.char*ss[6];s[1]="right?";

D.char*ss[={"rignt?"};

18.有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序運(yùn)行后輸出結(jié)查是

A.16B.10C.8D.6

19.下列各排序法中,最壞情況下的時(shí)間復(fù)雜度最低的是()

A.希爾排序B.快速排序C.堆排序D.冒泡排序

20.下列選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

二、2.填空題(20題)21.以下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*pl=str1;

strcpy(str1+strlen(str1)/2,"esshe");

intf("%s\n",p1);

22.執(zhí)行以下程序后,輸出‘#’號(hào)的個(gè)數(shù)是【】。

#include<atdio.h>

main()

{inti,j;

for(i=1;i<5;i++)

for(j=2;j<=i;j++)putchar('#');

}

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

main()

{intk=1;

white(k<=15)

if(++k%3!=2)continue;

elseprintf("%d",k);

printf("\n");

}

24.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

25.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。請(qǐng)?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=______);}

main()

{charstr1[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

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

}

26.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管叫‘管理多個(gè)項(xiàng)目,則實(shí)體“主管”與實(shí)體“”的聯(lián)系屬于______。

27.執(zhí)行以下程序時(shí),若輸入end<回車>,則輸出結(jié)果是【】。

main()

{charch[10]="Begin";

gets(&ch[1]);puts(ch);

}

28.以下程序的功能是:利用指針指向三個(gè)整型變量,并通過(guò)指針運(yùn)算找出三個(gè)數(shù)中的最大值,輸出到屏幕上。請(qǐng)?zhí)羁铡?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

【】;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

printf("max=%d\n",max);}

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

main()

{inta=1,b=2,c=3;

if(c=A)printf("%d\n",C);

elseprintf("%d\n",B);

}

30.在面向?qū)ο蟮脑O(shè)計(jì)中,用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求稱為【】。

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

main()

{inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0,j=0,s=0;

while(i++<4)

{if(i==2||i==4)continue;

j=0;

do{s+=a[i][j];j++;}while(j<4);

}

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

}

32.C語(yǔ)言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

33.若有如下程序:

voidsub()

{staticintx=8;

x/=2;printf("%d",x);

}

main()

{intm;

for(m=0;m<2;m++)sub();}

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

34.下面程序執(zhí)行后輸出的結(jié)果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

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

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

36.設(shè)y為血型變量,請(qǐng)寫出描述“y是偶數(shù)”的表達(dá)式______。

37.設(shè)某循環(huán)隊(duì)列的容量為50,頭指針front=5(指向隊(duì)頭元素的前一位置),尾指針rear=29(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有【】個(gè)元素。

38.對(duì)二叉排序樹進(jìn)行查找的方法是:用待查的值與根結(jié)點(diǎn)的值相比,若比根小,則繼續(xù)在【】子樹中找。

39.有以下程序

intsub(intn){retnrn(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運(yùn)行時(shí)輸入:1234<回車>,程序的輸出結(jié)果是______。

40.閱讀下面語(yǔ)句,則程序的執(zhí)行結(jié)果是【】。

#include"stdio.h"

main()

{inta=-1,b=1,k;

if((++a<0)&&!(b--<=0))

printf("%d,%d\n",a,b);

elseprintf("%d,%d\n",b,a);}

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}

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

42.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}

A.非法B.a[4]的地址C.5D.3

43.有以下程序

#include<stdio.h>

voidfun(int*s,intn1,intn2)

{inti,j,t;

i=n1;j=n2;

while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}

}

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},k;

fun(a,0,3);fun(a,4,9);fun(a,0,9);

for(k=0;k<l0;k++)printf("%d",a[k]);printf("\n");

}

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

A.0987654321B.4321098765C.5678901234D.0987651234

44.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測(cè)試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源

45.下面的程序執(zhí)行后,文件test.t中內(nèi)容是______。#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}

A.hello,B.newworldhelloC.newworldD.hello,rld

46.若有如下說(shuō)明:unions{chara[9]intb;floatc;}t;則下列敘述正確的是()

A.共用體變量t不能作為函數(shù)的參數(shù)

B.通過(guò)引用共用體變量名t可以得到成員的值

C.共用體變量t的地址和它的各成員的地址不同

D.共用體變量t所占的內(nèi)存長(zhǎng)度等于它的各成員所占的內(nèi)存長(zhǎng)度之和

47.如果需要打開一個(gè)已經(jīng)存在的非空文件“FILE”并進(jìn)行修改,正確的語(yǔ)句是()。

A.fp=fopen("FILE","r");

B.fp=fopen("FILE","a+");

C.fp=fopen("FILE","w+");

D.fp=fopen("FILE","r+");

48.設(shè)有如下程序段:x=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是()。

A.輸出語(yǔ)句中格式說(shuō)明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出

B.運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息

C.輸出值為2002

D.輸出值為2003

49.以下敘述中正確的是A.構(gòu)成C語(yǔ)言程序的基本單位是函數(shù)

B.可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)

C.main()函數(shù)必須放在其他函數(shù)之前

D.所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義

50.下列不合法的main函數(shù)命令行參數(shù)的表示形式是______。

A.main(inta,char*c[]);

B.main(ac,av)intarc;char**av;

C.main(c,v)intc;char*v[];

D.main(argc,argv)intargc;charargv[];

51.有以下程序:#include<string.h>voidf(charp[][10],intn)/*字符串從小到大排序*/{chart[10];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0{strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy([i],t);}}main(){charp[5][10]={"abc","aabdfg","abbd","dcdbe","cd";f(p,5);printf("%d\n",strlen(p[0]));}程序運(yùn)行后的輸出結(jié)果()。

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

52.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語(yǔ)句:printf("i=%%d,j=%%d\n”,i,j);輸出的結(jié)果是()。

A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

53.若有說(shuō)明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無(wú)確定值

54.有以下程序#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dar","w+");for(i=1;i<6;i++){fprintf(fp,"%d",1);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf.("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是

A.00B.12345C.14D.12

55.在執(zhí)行完下列的C語(yǔ)句段之后,則B的值是()。Chara="A";intb;B=((34&&56)&&(a<'b'));

A.int類型B.float類型C.void類型D.函數(shù)無(wú)類型說(shuō)明,定義有錯(cuò)

56.下列形式的常數(shù)中,不符合c語(yǔ)言語(yǔ)法規(guī)范的是______。

A.0.45B.±123C.25.6e-2D.4e3

57.以下不正確的定義語(yǔ)句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′xa′,′\x8′};

58.有以下程序voidf(int*x,int*y){intt;t=*X;*X=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7);while(p>q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是

A.8,2,3,4,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,

59.下列正確的實(shí)型常量是()。

A.E3.4B.-12345C.2.2e0.8D.4

60.若二維數(shù)組a有m列,則在a[i][j]剛前的元素個(gè)數(shù)為()。

A.i*m+j-1B.i*m+jC.j*m+iD.i*m+j+1

四、選擇題(20題)61.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()A.21,43B.43,21C.43,00D.21,00

62.下面程序的輸出結(jié)果是

#include<stdio.h>

main(){

inti=2;

printf("%d",f(i,i+1));

}

intf(inta,intb)

{intc;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;elsec=-1;

return(c);

}

A.-1B.0

C.1D.2

63.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。

A.排序、索引、統(tǒng)計(jì)B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表

64.

65.有以下程序:

#include<stdio.h>

main()

{chara=H;

a=(a>=Aa<=2)?(a-A+a):a;

printf("%c\n",a);

}

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

A.AB.aC.HD.h

66.有以下程序:

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

67.

68.在E—R圖中,用來(lái)表示實(shí)體的圖形是()。

A.矩形B.橢圓形C.菱形D.三角形

69.有以下程序:

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

A.MtemoonB.AftemoonC.MorningD.orning

70.閱讀下列程序,則運(yùn)行結(jié)果為()。

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

71.

72.有如下程序:

則b的值是()。

A.15B.16C.18D.19

73.

74.在軟件設(shè)計(jì)中不使用的工具是()。

A.系統(tǒng)結(jié)構(gòu)圖B.PAD圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖

75.

76.以下定義語(yǔ)句中正確的是()。

A.

B.

C.

D.

77.若有定義:能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()

A.3:5B.3,5C.35D.35

78.有以下程序:

#include<stdio.h>

main()

{inta=12,C;

c=(a<<2)<<1;

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

}

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

A.3B.50C.2D.96

79.設(shè)有以下定義inta=0;doubleb=1.25;charc=’A’;#defined2則下面語(yǔ)句中錯(cuò)誤的是()

A.a++;B.b++C.c++;D.d++;

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

intd=1;

fun(intp)

{intd=5;

d+=p++;

printf("%d,",d);}

main()

{inta=3;

fun(a);

d+=a++;

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

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

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用下面的公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于指定的數(shù)(參數(shù)num)為止。π/4≈1-1/3+1/5-1/7+…例如,程序運(yùn)行后,輸入0.0001,則程序輸出3.1414。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:計(jì)算并輸出

例如,若主函數(shù)從鍵盤給n輸入10后,則輸出為S=104.478749。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

參考答案

1.B

2.CC?!窘馕觥縀—R(Entity—Relationship)圖為實(shí)體一聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型。

3.C

4.A

5.C

6.D

7.B解析:二維數(shù)組的元素在內(nèi)存中是按行列順序連續(xù)存放的。以本題的二維數(shù)組a[3][6]為例,它的元素在內(nèi)存中的存放順序是:a[0][0]、a[0][1]、a[0][2]…a[0][5]、a[1][0]、\u3000a[1][1]…a[1][5]、a[2][0]…a[2][5]。由此可見,第10個(gè)元素就是第2行第4個(gè)元素,即a[1][3]。故應(yīng)該選擇B。

8.C“P”是指針變量,指向一個(gè)地址:“*P”為P指針?biāo)赶虻刂返膬?nèi)容“&”是取變量地址。

9.A

10.C程序首先定義整型變量a和b,a的初值為123456。接著通過(guò)while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當(dāng)前值的個(gè)位數(shù)字(a%10)賦給b,a自身除以10。再通過(guò)switch語(yǔ)句判斷b的值執(zhí)行對(duì)應(yīng)分支語(yǔ)句。所以對(duì)應(yīng)a的每個(gè)個(gè)位數(shù),b的取值為6,5,4,3,2,1。當(dāng)b取值為6時(shí),執(zhí)行default,輸出6,接著繼續(xù)執(zhí)行case1,通過(guò)break退出switch。執(zhí)行下一次循環(huán),當(dāng)b取值為5時(shí),執(zhí)行case5輸出5。執(zhí)行下一次循環(huán),當(dāng)b取值為4時(shí),執(zhí)行case4輸出4,繼續(xù)執(zhí)行case5輸出5。接著執(zhí)行下一次循環(huán),當(dāng)b取值為3時(shí),執(zhí)行case3輸出3,執(zhí)行case4輸出4,執(zhí)行case5輸出5;當(dāng)b取值為2時(shí),執(zhí)行case2輸出2,通過(guò)break退出switch;當(dāng)b取值為1時(shí),執(zhí)行break,此時(shí)a的取值為0,循環(huán)終止。綜上,程序輸出結(jié)果為:65453452。本題答案為C選項(xiàng)。

11.D

12.A

13.A

14.D

15.DD?!窘馕觥棵嫦?qū)ο笤O(shè)計(jì)方法與面向過(guò)程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。

16.Badd_more函數(shù)接收兩個(gè)參數(shù)a、b,返回“a+b-2”。main函數(shù)中,for循環(huán)調(diào)用add_more函數(shù)。當(dāng)i=2時(shí),傳入實(shí)參i和2,所以每次調(diào)用函數(shù)add_more時(shí),b的值都是2。函數(shù)add_more返回值等價(jià)于實(shí)參i。所以每次for循環(huán)輸出的值就是i的值。故本題答案為B選項(xiàng)。

17.A[解析]數(shù)組定義后,不可以對(duì)數(shù)組整體賦值,s是二維數(shù)組,因ss[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用strcpy[1],"right);這樣的形式,而選項(xiàng)A)中對(duì)二維數(shù)組中的第“1維(相當(dāng)于一個(gè)一維數(shù)組)賦值,是不可以的。選項(xiàng)B)和D)是定義時(shí)對(duì)數(shù)組初始化,這是可以的。選項(xiàng)C)中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個(gè)元素,這是可以的。

18.B解析:本題考查的是指針的簡(jiǎn)單應(yīng)用。題目中首先定義了一個(gè)int型數(shù)組a并初始化了,然后定義了兩個(gè)指針變量p和q,并分別初始化p為指向數(shù)組元素a[3]、q指向p后面的第2個(gè)元素即指向a[5]。所以最終輸出的值為a[3]+a[5]的值10。應(yīng)該選B。

19.C

20.D解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項(xiàng)D)等于關(guān)系表達(dá)式的結(jié)果為假,即等于0。

21.HowdoessheHowdoesshe解析:strcpy(str1,s1):字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組str1中去。strlen(str):測(cè)試字符串str的長(zhǎng)度,函數(shù)的值為字符串中實(shí)際長(zhǎng)度,不包括‘\\0’在內(nèi)。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當(dāng)于strqoy(strl+6,'esshe');因此可得答案為Howdoesshe。

22.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了4次。當(dāng)i=1時(shí),由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán)。當(dāng)i=2時(shí),執(zhí)行內(nèi)層循環(huán),輸出一個(gè)#;當(dāng)i=3時(shí),內(nèi)層循環(huán)循環(huán)兩次,輸出兩個(gè)#;當(dāng)i=4時(shí),內(nèi)層循環(huán)循環(huán)三次,輸出三個(gè)#;當(dāng)i=5時(shí),循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個(gè)#。

23.25811142581114解析:本題通過(guò)while和if語(yǔ)句,求得出1~15之間與3取模為2的整數(shù),并依次輸出。

24.軟件開發(fā)

25.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個(gè)字符型數(shù)組st1l和str2,并且給str2賦初值“abcdefgh”,接著調(diào)用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1.在函數(shù)sstrcpy(*s,*t)中,用了一個(gè)while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲(chǔ)空間,然后指針s和指針t都下移到下一個(gè)元素。所以空格處應(yīng)該填*t++或*(t++)。

26.一對(duì)多一對(duì)多解析:由于一個(gè)項(xiàng)目主管可以管理多個(gè)項(xiàng)目,而一個(gè)項(xiàng)目只能有一個(gè)項(xiàng)目主管,“項(xiàng)目主管”這個(gè)實(shí)體與“項(xiàng)目”這個(gè)實(shí)體的管理關(guān)系囑于一對(duì)多。

27.Bend

28.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進(jìn)行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。

29.11解析:本題是一個(gè)陷阱題。在if語(yǔ)句的判斷表達(dá)式中,使用的不是邏輯運(yùn)算符==而是賦值運(yùn)算符=,使該表達(dá)式返回的結(jié)果正好相反。如果是c==a,則結(jié)果為假。但是c=a則是將a賦給c,且表達(dá)式的結(jié)果是賦值之后的c的值,因此結(jié)果為1是真.故最后輸出c的值1。

30.消息消息解析:在面向?qū)ο蠹夹g(shù)中,主要用到對(duì)象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求。

31.92

32.非0非0解析:邏輯運(yùn)算中,非0表示邏輯“真”,用。表示邏輯“假”。

33.4242解析:主函數(shù)中的for循環(huán)循環(huán)兩次,即函數(shù)sub()被調(diào)用兩次。在sub()中x被定義為靜態(tài)整型變量,當(dāng)調(diào)用函數(shù)sub()完畢返回主函數(shù),x中的值仍然保留,下次調(diào)用函數(shù)sub()時(shí),x不再被賦初值。第1次調(diào)用x/=2相當(dāng)于x=x/2=8/2=4,第2次調(diào)用x=x/2=4/2=2,因此輸出42。

34.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。

35.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ù)值的語(yǔ)句'k++;'\ue009。

36.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對(duì)2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。

37.2424解析:在循環(huán)隊(duì)列中因?yàn)轭^指針指向的是隊(duì)頭元素的前一個(gè)位置,所以是從第6個(gè)位置開始有數(shù)據(jù)元素,所以隊(duì)列中的數(shù)據(jù)元素的個(gè)數(shù)為29-5=24。

38.左左解析:對(duì)二叉排序樹進(jìn)行查找,若待查的值與根結(jié)點(diǎn)的值相比,若比根小,則繼續(xù)在左子樹中找;若比根大,則在右子樹中找。

39.1010解析:本題程序中定義了一個(gè)函數(shù)sub(),用來(lái)計(jì)算一個(gè)整數(shù)整除10的商和余數(shù)的和。在主函數(shù)中,首先用scanf()函數(shù)讀入一個(gè)十進(jìn)制整數(shù)1234,然后對(duì)1234三次嵌套調(diào)用函數(shù)svb()。首先看最里層的調(diào)用,應(yīng)該返回的值是123+4=127;然后中間一層調(diào)用應(yīng)該返回的是12+7=19;所以最外層調(diào)用返回1+9=10。故最后輸出10。

40.101,0解析:與運(yùn)算兩邊的語(yǔ)句必須同時(shí)為真時(shí),結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時(shí),a,b的值已經(jīng)發(fā)生了變化。

41.B解析:注意自增和自減運(yùn)算符在變量的左右側(cè)的不同用法。本題條件表達(dá)式m++>5,即5>5不成立,此時(shí)m=6,執(zhí)行else后面的語(yǔ)句,輸出6后再m--使得m又等于5了。

42.C解析:本題中char*p=a+5;即相當(dāng)于p=&a[5],而--p,是先要減1,則printf語(yǔ)句要輸出的值就是a[4]。

43.C解析:函數(shù)fun(int*s,intn1,intn2)的功能是對(duì)數(shù)組s中的元素進(jìn)行首尾互相調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。

44.D軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中主要的資源有硬件資源、通信資源、輔助資源等。(1)硬件資源是指組成計(jì)算機(jī)及相關(guān)應(yīng)用所需要的硬件,它是軟件開發(fā)必不可少的資源,因?yàn)闊o(wú)論什么樣的軟件工具都需要在硬件上完成任務(wù),它是其他資源的基礎(chǔ)資源。(2)通信資源是指為軟件開發(fā)提供通信支撐的資源,它與測(cè)試數(shù)據(jù)無(wú)關(guān)。(3)支持軟件是指為軟件開發(fā)提供操作平臺(tái)的軟件,如常用的面向?qū)ο箝_發(fā)的Rose軟件,它主要是軟件開發(fā)的工具。通過(guò)對(duì)上述分析的總結(jié),可以知道本題的正確答案選D。

45.A解析:C語(yǔ)言中文件有文本文件與二進(jìn)制文件,對(duì)文件的使用前必須先打開,打開方式有只讀、寫入、讀寫等方式。

46.A

47.D解析:本題考查打開文件函數(shù)fopen(),打開文件函數(shù)fopen()的調(diào)用形式為:fp=fopen(文件名,文件使用方式)?!拔募褂梅绞健闭f(shuō)明:方式“r”為以輸入方式打開一個(gè)文本文件;方式“a+”為以讀/寫方式打開一個(gè)文本文件,保留文件中原有的數(shù)據(jù);方式“w+”為以讀/寫方式建立一個(gè)新的文本文件:方式“r+”為以讀/寫方式打開一個(gè)文本文件。

48.D解析:“x,y”是一個(gè)逗號(hào)表達(dá)式,逗號(hào)運(yùn)算符的結(jié)合性為從左到右,逗號(hào)表達(dá)式一般形式為“表達(dá)式1,表達(dá)式2…,表達(dá)式n”,整個(gè)表達(dá)式的值為表達(dá)式n的值,故本題是輸出y的值2003。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

49.A解析:根據(jù)函數(shù)的定義語(yǔ)法規(guī)定,在C語(yǔ)言程序中,不能嵌套定義,即不能在函數(shù)中再定義函數(shù);main()函數(shù)在C語(yǔ)言程序中是必須的,但函數(shù)可以放在程序中的任意位置;當(dāng)在所有函數(shù)的外部、被調(diào)用之前說(shuō)明函數(shù)時(shí),在函數(shù)說(shuō)明后面的任何位置上都可以對(duì)函數(shù)進(jìn)行調(diào)用。函數(shù)說(shuō)明也可以放在調(diào)用函數(shù)的說(shuō)明部分,如在main函數(shù)內(nèi)部進(jìn)行說(shuō)明,則只能在main函數(shù)內(nèi)部才能識(shí)別函數(shù)。

50.D解析:main函數(shù)的參數(shù)通常有兩個(gè),前者為整型,后者為字符型指針數(shù)組。參數(shù)的名字可以是任意合法的標(biāo)識(shí)符。而且,形如**av與*av[]等價(jià),所以選項(xiàng)A、B、C均正確,選項(xiàng)D是錯(cuò)誤的。

51.D解析:strcmp(str1,str2)是比較字符串str1和str2,若str1>str2,返回值為正數(shù);f()函數(shù)的功能就是將字符串按照從小到大的順序進(jìn)行排列,需要注意的是比較的足字符串中每個(gè)字符的ASCII值的大小,所以元素p[0]是“abc”,它的長(zhǎng)度為3。

52.B解析:本題考查printf函數(shù)的格式。在printf函數(shù)中,如果格式說(shuō)明符中有兩個(gè)%說(shuō)明,則將第1個(gè)%后面的字符原樣輸出,并不輸出其對(duì)應(yīng)的變量值。

53.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大小:②當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小等于所得商數(shù)加1。

54.D解析:程序首先定義了一個(gè)文件指針fp,并使用fopen()數(shù)以'w+'方式新建一個(gè)可讀寫文件'data.daf'.然后使用一個(gè)for循環(huán),循環(huán)變量i從1遞增到5,在循環(huán)體中每次寫入循環(huán)變量i的值和4個(gè)空格,當(dāng)i能被3整除的時(shí)候?qū)懭胍粋€(gè)換行符。所以循環(huán)結(jié)束時(shí),文件中的內(nèi)容應(yīng)該為:

123

45

接下來(lái)程序使用rewind()函數(shù),將文件的讀寫指針調(diào)回起始位置。并調(diào)用fscanf()函數(shù)從文件中讀取兩個(gè)整數(shù)到變量k和n。所以最終輸出應(yīng)該為:12。故本題選D。

55.A解析:本題考查默認(rèn)函數(shù)的函數(shù)值的類型。在函數(shù)定義時(shí),由于函數(shù)沒有說(shuō)明其類型,系統(tǒng)默認(rèn)一律自動(dòng)按整型處理,因此,函數(shù)的類型為int類型。

56.B解析:C程序允許出現(xiàn)的常數(shù)為有一確定值的整數(shù)或?qū)崝?shù)(可用小數(shù)形式或指數(shù)形式)等。土123不是確定值,是不可以出現(xiàn)的。

57.B解析:在一維數(shù)組中要注意的是作為下標(biāo)表達(dá)式的常量表達(dá)式的值必須是大于等于0,選項(xiàng)B)中定義有5個(gè)元素,但賦值時(shí)有6個(gè)元素,所以是錯(cuò)誤的。

58.D解析:在C語(yǔ)言中,函數(shù)參數(shù)的默認(rèn)傳遞方式是傳值,即函數(shù)內(nèi)部的形參只是調(diào)用時(shí)的實(shí)參的一個(gè)拷貝,改變形參,實(shí)參不會(huì)被改變.如果想要實(shí)現(xiàn)傳址調(diào)用只能使用傳遞指針的方式來(lái)實(shí)現(xiàn).利用指針作函數(shù)的參數(shù)時(shí),無(wú)論形參指針還是實(shí)參指針?biāo)傅亩际峭粋€(gè)內(nèi)存地址,所以形參如果改變了這個(gè)地址中的內(nèi)容,也就是改變了實(shí)參所指的地址內(nèi)容.本題程序開頭定義了一個(gè)函數(shù)f(),在函數(shù)中用一個(gè)臨時(shí)變量t交換了兩個(gè)指針參數(shù)所指的地址內(nèi)容,所以該函數(shù)的作用就是交換兩個(gè)參數(shù)所指的內(nèi)容。在主函數(shù)中,首先定義了一個(gè)int型數(shù)組a,并定義了兩個(gè)int型指針p、q分別指向數(shù)組a的第一個(gè)元素和最后一個(gè)元素。然后使用一個(gè)while循環(huán)調(diào)用函數(shù)f()不斷交換兩個(gè)指針?biāo)傅膬?nèi)容,每次交換后p往后移動(dòng)一個(gè)元素,q往前移動(dòng)一個(gè)元素,直到q不再大于p,即直到兩個(gè)指針在數(shù)組a的中間相遇為止。所以,程序最終運(yùn)行的結(jié)果是數(shù)組a中的所有元素全被反序排列一次。故應(yīng)該選擇選項(xiàng)D。

59.B解析:實(shí)型常量有兩種書寫形式。①小數(shù)形式,它由符號(hào)、整數(shù)部分、小數(shù)點(diǎn)及小數(shù)部分組成;②指數(shù)形式,由十進(jìn)制小數(shù)形式加上指數(shù)部分組成,其形式為:十進(jìn)制小數(shù)e指數(shù)或十進(jìn)制小數(shù)E指數(shù)。

注:e或E后面的指數(shù)必須是整數(shù),并且在e或E的前面必須有數(shù)字。本題中,選項(xiàng)A)中E的前面沒有數(shù)字,因此錯(cuò)誤。選項(xiàng)C)中0.8不是整數(shù),因此錯(cuò)誤。選項(xiàng)D)中4是整型常量而不是實(shí)型常量。

60.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標(biāo)是i,說(shuō)明它前面還有i行,有i*m個(gè)元素,數(shù)組第二維的下標(biāo)是j,說(shuō)明它前面還有j列,有j個(gè)元素,所以共有i*m+j個(gè)元素。

61.As是一個(gè)公用體,d的值分別與ch中的兩個(gè)元素的值相同,d的高位放在chFl]中、低位放在chl-0]中,因此輸出的結(jié)果為21,43。

62.A這道題的求解方法比較簡(jiǎn)單,將i的值帶入函數(shù)f(),可以發(fā)現(xiàn)在if判斷語(yǔ)句中,第一次判斷為假,而在else語(yǔ)句中的第二個(gè)判斷亦為假,所以,c的值應(yīng)當(dāng)?shù)扔?1,最后打印結(jié)果為“-1”。

63.B解析:此題為數(shù)據(jù)庫(kù)的基本概念,可以對(duì)照辦工軟件的電子表格進(jìn)行如下理解:選擇:我們根據(jù)某條件選擇出一行或多行元組(一個(gè)元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學(xué)生關(guān)系(學(xué)號(hào),姓名,出生年月,性別),學(xué)號(hào)、姓名…都是屬性)選取一列或多列(一個(gè)二維表中所有元組在某一列或幾列上截取出來(lái))。連接:2個(gè)或2個(gè)以上的表連接組成一張新的表,通常有條件連接。比如學(xué)生關(guān)系(學(xué)號(hào),姓名,系號(hào)),又有一張系表(系號(hào),系名,主任),2張表可以合并為一張這樣的表(學(xué)號(hào),姓名,系號(hào),系名,主任)。

64.B

65.D\n多元運(yùn)算符問(wèn)號(hào)前面表達(dá)式為真,所以(a-A+a)賦值給a,括號(hào)里的運(yùn)算是把大寫字母變成小寫字母,所以答案應(yīng)為選項(xiàng)D。

\n

66.A外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為l,打印1*1=1;內(nèi)循環(huán)第二次j的值為2,打印1$2=2;內(nèi)循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。

67.C

68.AA?!窘馕觥吭贓—R圖中,矩形表示實(shí)體;菱形表示聯(lián)系名;橢圓形表示實(shí)體的屬性。

69.B語(yǔ)句voidfun(char**P)中的形參是一個(gè)指向指針的指針,在調(diào)用函數(shù)fun(a)后,指針數(shù)組a加1,

70.D在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲(chǔ)區(qū)中占據(jù)著永久的存儲(chǔ)單元,即使退出函數(shù)以后,下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量仍使用原來(lái)的存儲(chǔ)單元,靜態(tài)局部變量的初值是在編譯的時(shí)候賦予的,在程序執(zhí)行期間不再賦予初值。本題由于連續(xù)三次調(diào)用函數(shù)fun,三次對(duì)靜態(tài)變量x進(jìn)行操作,x的值應(yīng)依次為4,5,6。

71.D

72.DP=&a[3]將指針指向數(shù)組a的第4個(gè)元素,P[5]指向數(shù)組a的第9個(gè)元素,而a[8]=19,所以b=19。

73.D

74.C在軟件開發(fā)的各個(gè)階段經(jīng)常會(huì)使用到一些圖形工具,如在需求分析階段使用數(shù)據(jù)流圖,在概要設(shè)計(jì)階段使用系統(tǒng)結(jié)構(gòu)圖,在詳細(xì)設(shè)計(jì)階段使用程序流程圖、N-S圖或者PAD圖等。

75.A

76.C解析:選項(xiàng)A中兩個(gè)變量的定義應(yīng)當(dāng)以逗號(hào)隔開;選項(xiàng)B中a和b應(yīng)當(dāng)分開賦值;選項(xiàng)D中變量類型不相匹配,b應(yīng)當(dāng)是指針型變量。

77.AsCanf中格式控制符里必須原樣輸入,所以分號(hào)也必須輸入,A)正確。

78.D\n本題考查左移運(yùn)算符,左移運(yùn)算符相當(dāng)于乘以2的2n,所以a<<2=12*22=48,所以(a<<2)<1—48*2=96。

\n

79.D++是自增運(yùn)算符,作用是使變量的值增加1,選項(xiàng)D中的d不是變量,而是一個(gè)標(biāo)識(shí)符,它代表常量2,常量是不允許進(jìn)行自增運(yùn)算的。故本題答案為D。

80.A

81.

82.

【解析】在本程序中,用S1來(lái)表示題中每個(gè)小括號(hào)內(nèi)的值,第1項(xiàng)相當(dāng)于有1個(gè)10.5。第2項(xiàng)相當(dāng)于第1項(xiàng)的值加上20.5,第3項(xiàng)相當(dāng)于第2項(xiàng)的值加上30.5,…,依此類推。函數(shù)pow(x,y)的功能是求出x的y次方,程序中用S來(lái)表示總和值,每循環(huán)一次加1次Sl的值,即加1項(xiàng)。

2021-2022年云南省麗江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下()不是隊(duì)列的基本運(yùn)算

A.從隊(duì)尾插入一個(gè)新元素B.從隊(duì)列中刪除第i個(gè)元素C.判斷一個(gè)隊(duì)列是否為空D.讀取隊(duì)頭元素的值

2.數(shù)據(jù)庫(kù)設(shè)計(jì)中,用E—R圖來(lái)描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的()。

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

3.十六進(jìn)制數(shù)BB轉(zhuǎn)換成十進(jìn)制數(shù)是()

A.192B.256C.187D.121

4.設(shè)有向無(wú)環(huán)圖G中的有向邊集合E={<1,2>,<2,3>,<3,4>,<1,4>},則下列屬于該有向圖G的一種拓?fù)渑判蛐蛄械氖?)。

A.1,2,3,4B.2,3,4,1C.1,4,2,3D.1,2,4,3

5.一個(gè)棧的進(jìn)棧序列是a,b,c,d,e,則棧的不可能的輸出序列是()。

A.edcbaB.decbaC.dceabD.abcde

6.若有定義intx=3,y=2和floata=2.5,b=3.5,則表達(dá)式:(x+y)%2+(int)a/(int)b的值是()。

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

7.若有定義語(yǔ)句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個(gè)元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]

8.若有定義“floata=25,b,*p=&b;”,則下列對(duì)賦值語(yǔ)句“*p=a;”和“p=&a;”的正確解釋為()。

A.兩個(gè)語(yǔ)句都是將變量a的值賦予變量P

B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P

C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a

D.兩個(gè)語(yǔ)句都是使P指向變量a

9.

10.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。

A.654321

B.65432

C.65453452

D.654534521

11.第

22

閱讀下面程序,則程序執(zhí)行后的結(jié)果為

#include"stdio.h"

main()

{inta=4,b=6,c=7;

doubled,fun(int,int,int);

d=fun(a,b,c);

printf("%lf\n",d);}

doublefun(inta,intb,intc)

{doubles;

s=a%b*c;

returns;}

A.27B.27.000000C.28D.28.000000

12.設(shè)某文件內(nèi)排序后得到100個(gè)初始?xì)w并段(初始順串),若使用多路歸并排序算法,且要求三趟歸并完成排序,問(wèn)歸并路數(shù)最少為()

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

13.

14.如果某圖的鄰接矩陣是對(duì)角線元素均為零的上三角矩陣,則此圖是_______

A.有向完全圖B.連通圖C.強(qiáng)連通圖D.有向無(wú)環(huán)圖

15.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

16.有以下程序:#include<stdio.h>intadd_more(inta,intb){returna+b-2;}main(){inti;for(i=0;i<4;i++)printf(“%d”,add_more(i,2));}程序運(yùn)行后的輸出結(jié)果是()。

A.1234B.0123C.5678D.4321

17.以下語(yǔ)句中存在語(yǔ)法錯(cuò)誤的是()。A.charss[6][20];s[1]="right?";

B.charss0[20]={"right?"};.

C.char*ss[6];s[1]="right?";

D.char*ss[={"rignt?"};

18.有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序運(yùn)行后輸出結(jié)查是

A.16B.10C.8D.6

19.下列各排序法中,最壞情況下的時(shí)間復(fù)雜度最低的是()

A.希爾排序B.快速排序C.堆排序D.冒泡排序

20.下列選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

二、2.填空題(20題)21.以下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*pl=str1;

strcpy(str1+strlen(str1)/2,"esshe");

intf("%s\n",p1);

22.執(zhí)行以下程序后,輸出‘#’號(hào)的個(gè)數(shù)是【】。

#include<atdio.h>

main()

{inti,j;

for(i=1;i<5;i++)

for(j=2;j<=i;j++)putchar('#');

}

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

main()

{intk=1;

white(k<=15)

if(++k%3!=2)continue;

elseprintf("%d",k);

printf("\n");

}

24.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

25.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。請(qǐng)?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=______);}

main()

{charstr1[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

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

}

26.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管叫‘管理多個(gè)項(xiàng)目,則實(shí)體“主管”與實(shí)體“”的聯(lián)系屬于______。

27.執(zhí)行以下程序時(shí),若輸入end<回車>,則輸出結(jié)果是【】。

main()

{charch[10]="Begin";

gets(&ch[1]);puts(ch);

}

28.以下程序的功能是:利用指針指向三個(gè)整型變量,并通過(guò)指針運(yùn)算找出三個(gè)數(shù)中的最大值,輸出到屏幕上。請(qǐng)?zhí)羁铡?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

【】;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

printf("max=%d\n",max);}

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

main()

{inta=1,b=2,c=3;

if(c=A)printf("%d\n",C);

elseprintf("%d\n",B);

}

30.在面向?qū)ο蟮脑O(shè)計(jì)中,用來(lái)請(qǐng)求對(duì)象執(zhí)行某一處理或回答某些信息的要求稱為【】。

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

main()

{inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0,j=0,s=0;

while(i++<4)

{if(i==2||i==4)continue;

j=0;

do{s+=a[i][j];j++;}while(j<4);

}

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

}

32.C語(yǔ)言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

33.若有如下程序:

voidsub()

{staticintx=8;

x/=2;printf("%d",x);

}

main()

{intm;

for(m=0;m<2;m++)sub();}

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

34.下面程序執(zhí)行后輸出的結(jié)果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

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

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

36.設(shè)y為血型變量,請(qǐng)寫出描述“y是偶數(shù)”的表達(dá)式______。

37.設(shè)某循環(huán)隊(duì)列的容量為50,頭指針front=5(指向隊(duì)頭元素的前一位置),尾指針rear=29(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有【】個(gè)元素。

38.對(duì)二叉排序樹進(jìn)行查找的方法是:用待查的值與根結(jié)點(diǎn)的值相比,若比根小,則繼續(xù)在【】子樹中找。

39.有以下程序

intsub(intn){retnrn(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運(yùn)行時(shí)輸入:1234<回車>,程序的輸出結(jié)果是______。

40.閱讀下面語(yǔ)句,則程序的執(zhí)行結(jié)果是【】。

#include"stdio.h"

main()

{inta=-1,b=1,k;

if((++a<0)&&!(b--<=0))

printf("%d,%d\n",a,b);

elseprintf("%d,%d\n",b,a);}

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}

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

42.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}

A.非法B.a[4]的地址C.5D.3

43.有以下程序

#include<stdio.h>

voidfun(int*s,intn1,intn2)

{inti,j,t;

i=n1;j=n2;

while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}

}

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},k;

fun(a,0,3);fun(a,4,9);fun(a,0,9);

for(k=0;k<l0;k++)printf("%d",a[k]);printf("\n");

}

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

A.0987654321B.4321098765C.5678901234D.0987651234

44.軟件開發(fā)離不開系統(tǒng)環(huán)境資源的支持,其中必要的測(cè)試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源

45.下面的程序執(zhí)行后,文件test.t中內(nèi)容是______。#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}

A.hello,B.newworldhelloC.newworldD.hello,rld

46.若有如下說(shuō)明:unions{chara[9]intb;floatc;}t;則下列敘述正確的是()

A.共用體變量t不能作為函數(shù)的參數(shù)

B.通過(guò)引用共用體變量名t可以得到成員的值

C.共用體變量t的地址和它的各成員的地址不同

D.共用體變量t所占的內(nèi)存長(zhǎng)度等于它的各成員所占的內(nèi)存長(zhǎng)度之和

47.如果需要打開一個(gè)已經(jīng)存在的非空文件“FILE”并進(jìn)行修改,正確的語(yǔ)句是()。

A.fp=fopen("FILE","r");

B.fp=fopen("FILE","a+");

C.fp=fopen("FILE","w+");

D.fp=fopen("FILE","r+");

48.設(shè)有如下程序段:x=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是()。

A.輸出語(yǔ)句中格式說(shuō)明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出

B.運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息

C.輸出值為2002

D.輸出值為2003

49.以下敘述中正確的是A.構(gòu)成C語(yǔ)言程序的基本單位是函數(shù)

B.可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)

C.main()函數(shù)必須放在其他函數(shù)之前

D.所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義

50.下列不合法的main函數(shù)命令行參數(shù)的表示形式是______。

A.main(inta,char*c[]);

B.main(ac,av)intarc;char**av;

C.main(c,v)intc;char*v[];

D.main(argc,argv)intargc;charargv[];

51.有以下程序:#include<string.h>voidf(charp[][10],intn)/*字符串從小到大排序*/{chart[10];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0{strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy([i],t);}}main(){charp[5][10]={"abc","aabdfg","abbd","dcdbe","cd";f(p,5);printf("%d\n",strlen(p[0]));}程序運(yùn)行后的輸出結(jié)果()。

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

52.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語(yǔ)句:printf("i=%%d,j=%%d\n”,i,j);輸出的結(jié)果是()。

A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

53.若有說(shuō)明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無(wú)確定值

54.有以下程序#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dar","w+");for(i=1;i<6;i++){fprintf(fp,"%d",1);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf.("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是

A.00B.12345C.14D.12

55.在執(zhí)行完下列的C語(yǔ)句段之后,則B的值是()。Chara="A";intb;B=((34&&56)&&(a<'b'));

A.int類型B.float類型C.void類型D.函數(shù)無(wú)類型說(shuō)明,定義有錯(cuò)

56.下列形式的常數(shù)中,不符合c語(yǔ)言語(yǔ)法規(guī)范的是______。

A.0.45B.±123C.25.6e-2D.4e3

57.以下不正確的定義語(yǔ)句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′xa′,′\x8′};

58.有以下程序voidf(int*x,int*y){intt;t=*X;*X=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7);while(p>q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是

A.8,2,3,4,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,

59.下列正確的實(shí)型常量是()。

A.E3.4B.-12345C.2.2e0.8D.4

60.若二維數(shù)組a有m列,則在a[i][j]剛前的元素個(gè)數(shù)為()。

A.i*m+j-1B.i*m+jC.j*m+iD.i*m+j+1

四、選擇題(20題)61.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()A.21,43B.43,21C.43,00D.21,00

62.下面程序的輸出結(jié)果是

#include<stdio.h>

main(){

inti=2;

printf("%d",f(i,i+1));

}

intf(inta,intb)

{intc;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;elsec=-1;

return(c);

}

A.-1B.0

C.1D.2

63.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。

A.排序、索引、統(tǒng)計(jì)B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表

64.

65.有以下程序:

#include<stdio.h>

main()

{chara=H;

a=(a>=Aa<=2)?(a-A+a):a;

printf("%c\n",a);

}

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

A.AB.aC.HD.h

66.有以下程序:

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

67.

68.在E—R圖中,用來(lái)表示實(shí)體的圖形是()。

A.矩形B.橢圓形C.菱形D.三角形

69.有以下程序:

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

A.MtemoonB.AftemoonC.MorningD.orning

70.閱讀下列程序,則運(yùn)行結(jié)果為()。

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

71.

72.有如下程序:

則b的值是()。

A.15B.16C.18D.19

73.

74.在軟件設(shè)計(jì)中不使用的工具是()。

A.系統(tǒng)結(jié)構(gòu)圖B.PAD圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖

75.

76.以下定義語(yǔ)句中正確的是()。

A.

B.

C.

D.

77.若有定義:能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()

A.3:5B.3,5C.35D.35

78.有以下程序:

#include<stdio.h>

main()

{inta=12,C;

c=(a<<2)<<1;

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

}

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

A.3B.50C.2D.96

79.設(shè)有以下定義inta=0;doubleb=1.25;charc=’A’;#defined2則下面語(yǔ)句中錯(cuò)誤的是()

A.a++;B.b++C.c++;D.d++;

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

intd=1;

fun(intp)

{intd=5;

d+=p++;

printf("%d,",d);}

main()

{inta=3;

fun(a);

d+=a++;

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

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

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用下面的公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于指定的數(shù)(參數(shù)num)為止。π/4≈1-1/3+1/5-1/7+…例如,程序運(yùn)行后,輸入0.0001,則程序輸出3.1414。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:計(jì)算并輸出

例如,若主函數(shù)從鍵盤給n輸入10后,則輸出為S=104.478749。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

參考答案

1.B

2.CC?!窘馕觥縀—R(Entity—Relationship)圖為實(shí)體一聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型。

3.C

4.A

5.C

6.D

7.B解析:二維數(shù)組的元素在內(nèi)存中是按行列順序連續(xù)存放的。以本題的二維數(shù)組a[3][6]為例,它的元素在內(nèi)存中的存放順序是:a[0][0]、a[0][1]、a[0][2]…a[0][5]、a[1][0]、\u3000a[1][1]…a[1][5]、a[2][0]…a[2][5]。由此可見,第10個(gè)元素就是第2行第4個(gè)元素,即a[1][3]。故應(yīng)該選擇B。

8.C“P”是指針變量,指向一個(gè)地址:“*P”為P指針?biāo)赶虻刂返膬?nèi)容“&”是取變量地址。

9.A

10.C程序首先定義整型變量a和b,a的初值為123456。接著通過(guò)while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當(dāng)前值的個(gè)位數(shù)字(a%10)賦給b,a自身除以10。再通過(guò)switch語(yǔ)句判斷b的值執(zhí)行對(duì)應(yīng)分支語(yǔ)句。所以對(duì)應(yīng)a的每個(gè)個(gè)位數(shù),b的取值為6,5,4,3,2,1。當(dāng)b取值為6時(shí),執(zhí)行default,輸出6,接著繼續(xù)執(zhí)行case1,通過(guò)break退出switch。執(zhí)行下一次循環(huán),當(dāng)b取值為5時(shí),執(zhí)行case5輸出5。執(zhí)行下一次循環(huán),當(dāng)b取值為4時(shí),執(zhí)行case4輸出4,繼續(xù)執(zhí)行case5輸出5。接著執(zhí)行下一次循環(huán),當(dāng)b取值為3時(shí),執(zhí)行case3輸出3,執(zhí)行case4輸出4,執(zhí)行case5輸出5;當(dāng)b取值為2時(shí),執(zhí)行case2輸出2,通過(guò)break退出switch;當(dāng)b取值為1時(shí),執(zhí)行break,此時(shí)a的取值為0,循環(huán)終止。綜上,程序輸出結(jié)果為:65453452。本題答案為C選項(xiàng)。

11.D

12.A

13.A

14.D

15.DD?!窘馕觥棵嫦?qū)ο笤O(shè)計(jì)方法與面向過(guò)程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wè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)論