2021-2022年云南省麗江市全國計算機等級考試C語言程序設計模擬考試(含答案)_第1頁
2021-2022年云南省麗江市全國計算機等級考試C語言程序設計模擬考試(含答案)_第2頁
2021-2022年云南省麗江市全國計算機等級考試C語言程序設計模擬考試(含答案)_第3頁
2021-2022年云南省麗江市全國計算機等級考試C語言程序設計模擬考試(含答案)_第4頁
2021-2022年云南省麗江市全國計算機等級考試C語言程序設計模擬考試(含答案)_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2021-2022年云南省麗江市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

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

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

2.數(shù)據(jù)庫設計中,用E—R圖來描述信息結構但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設計的()。

A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段

3.十六進制數(shù)BB轉換成十進制數(shù)是()

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

4.設有向無環(huán)圖G中的有向邊集合E={<1,2>,<2,3>,<3,4>,<1,4>},則下列屬于該有向圖G的一種拓撲排序序列的是()。

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

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

A.edcbaB.decbaC.dceabD.abcde

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

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

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

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

A.兩個語句都是將變量a的值賦予變量P

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

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

D.兩個語句都是使P指向變量a

9.

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

A.654321

B.65432

C.65453452

D.654534521

11.第

22

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

#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.設某文件內排序后得到100個初始歸并段(初始順串),若使用多路歸并排序算法,且要求三趟歸并完成排序,問歸并路數(shù)最少為()

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

13.

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

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

15.下列特征中不是面向對象方法的主要特征的是()。

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));}程序運行后的輸出結果是()。

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

17.以下語句中存在語法錯誤的是()。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);程序運行后輸出結查是

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

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

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

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

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í)行以下程序后,輸出‘#’號的個數(shù)是【】。

#include<atdio.h>

main()

{inti,j;

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

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

}

23.以下程序的輸出結果為【】。

main()

{intk=1;

white(k<=15)

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

elseprintf("%d",k);

printf("\n");

}

24.軟件工程研究的內容主要包括:【】技術和軟件工程管理。

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

voidsstrcpy(char*s,char*t)

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

main()

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

sstrcpy(str1,str2);

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

}

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

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

main()

{charch[10]="Begin";

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

}

28.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數(shù)中的最大值,輸出到屏幕上。請?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.以下程序運行后的輸出結果是______。

main()

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

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

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

}

30.在面向對象的設計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。

31.以下程序運行后的輸出結果是______。

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語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

33.若有如下程序:

voidsub()

{staticintx=8;

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

}

main()

{intm;

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

則程序運行后的輸出結果是【】.

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

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

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

s=1.0;k=1;

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

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

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

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

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

39.有以下程序

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

main()

{intx,y;

scanf("%d",&x);

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

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

}

若運行時輸入:1234<回車>,程序的輸出結果是______。

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

#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.以下程序的輸出結果是______。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}

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

42.下列程序的輸出結果是______。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");

}

程序的運行結果是

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

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

45.下面的程序執(zhí)行后,文件test.t中內容是______。#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.若有如下說明:unions{chara[9]intb;floatc;}t;則下列敘述正確的是()

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

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

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

D.共用體變量t所占的內存長度等于它的各成員所占的內存長度之和

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

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

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

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

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

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

A.輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出

B.運行時產(chǎn)生出錯信息

C.輸出值為2002

D.輸出值為2003

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

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

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

D.所有被調用的函數(shù)一定要在調用之前進行定義

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]));}程序運行后的輸出結果()。

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

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

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

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

A.2B.3C.4D.無確定值

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);}程序運行后的輸出結果是

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

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

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

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

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

57.以下不正確的定義語句是

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]);}程序運行后的輸出結果是

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.下列正確的實型常量是()。

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

60.若二維數(shù)組a有m列,則在a[i][j]剛前的元素個數(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í)行后的輸出結果是()A.21,43B.43,21C.43,00D.21,00

62.下面程序的輸出結果是

#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.關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括()。

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

64.

65.有以下程序:

#include<stdio.h>

main()

{chara=H;

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

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

}

程序運行后的輸出結果是()。

A.AB.aC.HD.h

66.有以下程序:

程序運行后的輸出結果是()。

67.

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

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

69.有以下程序:

運行后的輸出結果是()。

A.MtemoonB.AftemoonC.MorningD.orning

70.閱讀下列程序,則運行結果為()。

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

71.

72.有如下程序:

則b的值是()。

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

73.

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

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

75.

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

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

}

程序運行后的輸出結果是()。

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

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

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

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

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

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

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

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

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

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.B

2.CC。【解析】E—R(Entity—Relationship)圖為實體一聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。

3.C

4.A

5.C

6.D

7.B解析:二維數(shù)組的元素在內存中是按行列順序連續(xù)存放的。以本題的二維數(shù)組a[3][6]為例,它的元素在內存中的存放順序是: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個元素就是第2行第4個元素,即a[1][3]。故應該選擇B。

8.C“P”是指針變量,指向一個地址:“*P”為P指針所指向地址的內容“&”是取變量地址。

9.A

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

11.D

12.A

13.A

14.D

15.DD。【解析】面向對象設計方法與面向過程設計方法有本質的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。

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

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

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

19.C

20.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項D)等于關系表達式的結果為假,即等于0。

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

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

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

24.軟件開發(fā)

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

26.一對多一對多解析:由于一個項目主管可以管理多個項目,而一個項目只能有一個項目主管,“項目主管”這個實體與“項目”這個實體的管理關系囑于一對多。

27.Bend

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

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

30.消息消息解析:在面向對象技術中,主要用到對象(object)、類(class)、方法(method)、消息(message)、繼承(inheritance)、封裝(encapsulation)等基本概念。其中消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。

31.92

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

33.4242解析:主函數(shù)中的for循環(huán)循環(huán)兩次,即函數(shù)sub()被調用兩次。在sub()中x被定義為靜態(tài)整型變量,當調用函數(shù)sub()完畢返回主函數(shù),x中的值仍然保留,下次調用函數(shù)sub()時,x不再被賦初值。第1次調用x/=2相當于x=x/2=8/2=4,第2次調用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應取外部變量的值13,因此輸出2。

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

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

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

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

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

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

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

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

43.C解析:函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進行首尾互相調換。所以在主函數(shù)中,當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)硬件資源是指組成計算機及相關應用所需要的硬件,它是軟件開發(fā)必不可少的資源,因為無論什么樣的軟件工具都需要在硬件上完成任務,它是其他資源的基礎資源。(2)通信資源是指為軟件開發(fā)提供通信支撐的資源,它與測試數(shù)據(jù)無關。(3)支持軟件是指為軟件開發(fā)提供操作平臺的軟件,如常用的面向對象開發(fā)的Rose軟件,它主要是軟件開發(fā)的工具。通過對上述分析的總結,可以知道本題的正確答案選D。

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

46.A

47.D解析:本題考查打開文件函數(shù)fopen(),打開文件函數(shù)fopen()的調用形式為:fp=fopen(文件名,文件使用方式)。“文件使用方式”說明:方式“r”為以輸入方式打開一個文本文件;方式“a+”為以讀/寫方式打開一個文本文件,保留文件中原有的數(shù)據(jù);方式“w+”為以讀/寫方式建立一個新的文本文件:方式“r+”為以讀/寫方式打開一個文本文件。

48.D解析:“x,y”是一個逗號表達式,逗號運算符的結合性為從左到右,逗號表達式一般形式為“表達式1,表達式2…,表達式n”,整個表達式的值為表達式n的值,故本題是輸出y的值2003。所以,4個選項中選項D符合題意。

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

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

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

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

53.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大?。孩诋敵踔档膫€數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

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

123

45

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

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

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

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

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

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

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

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

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

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

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

64.B

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

\n

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

67.C

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

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

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

71.D

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

73.D

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

75.A

76.C解析:選項A中兩個變量的定義應當以逗號隔開;選項B中a和b應當分開賦值;選項D中變量類型不相匹配,b應當是指針型變量。

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

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

\n

79.D++是自增運算符,作用是使變量的值增加1,選項D中的d不是變量,而是一個標識符,它代表常量2,常量是不允許進行自增運算的。故本題答案為D。

80.A

81.

82.

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

2021-2022年云南省麗江市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

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

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

2.數(shù)據(jù)庫設計中,用E—R圖來描述信息結構但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設計的()。

A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段

3.十六進制數(shù)BB轉換成十進制數(shù)是()

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

4.設有向無環(huán)圖G中的有向邊集合E={<1,2>,<2,3>,<3,4>,<1,4>},則下列屬于該有向圖G的一種拓撲排序序列的是()。

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

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

A.edcbaB.decbaC.dceabD.abcde

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

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

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

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

A.兩個語句都是將變量a的值賦予變量P

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

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

D.兩個語句都是使P指向變量a

9.

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

A.654321

B.65432

C.65453452

D.654534521

11.第

22

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

#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.設某文件內排序后得到100個初始歸并段(初始順串),若使用多路歸并排序算法,且要求三趟歸并完成排序,問歸并路數(shù)最少為()

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

13.

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

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

15.下列特征中不是面向對象方法的主要特征的是()。

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));}程序運行后的輸出結果是()。

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

17.以下語句中存在語法錯誤的是()。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);程序運行后輸出結查是

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

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

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

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

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í)行以下程序后,輸出‘#’號的個數(shù)是【】。

#include<atdio.h>

main()

{inti,j;

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

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

}

23.以下程序的輸出結果為【】。

main()

{intk=1;

white(k<=15)

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

elseprintf("%d",k);

printf("\n");

}

24.軟件工程研究的內容主要包括:【】技術和軟件工程管理。

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

voidsstrcpy(char*s,char*t)

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

main()

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

sstrcpy(str1,str2);

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

}

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

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

main()

{charch[10]="Begin";

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

}

28.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數(shù)中的最大值,輸出到屏幕上。請?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.以下程序運行后的輸出結果是______。

main()

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

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

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

}

30.在面向對象的設計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為【】。

31.以下程序運行后的輸出結果是______。

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語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

33.若有如下程序:

voidsub()

{staticintx=8;

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

}

main()

{intm;

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

則程序運行后的輸出結果是【】.

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

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

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

s=1.0;k=1;

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

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

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

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

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

39.有以下程序

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

main()

{intx,y;

scanf("%d",&x);

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

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

}

若運行時輸入:1234<回車>,程序的輸出結果是______。

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

#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.以下程序的輸出結果是______。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}

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

42.下列程序的輸出結果是______。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");

}

程序的運行結果是

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

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

45.下面的程序執(zhí)行后,文件test.t中內容是______。#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.若有如下說明:unions{chara[9]intb;floatc;}t;則下列敘述正確的是()

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

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

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

D.共用體變量t所占的內存長度等于它的各成員所占的內存長度之和

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

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

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

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

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

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

A.輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出

B.運行時產(chǎn)生出錯信息

C.輸出值為2002

D.輸出值為2003

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

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

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

D.所有被調用的函數(shù)一定要在調用之前進行定義

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]));}程序運行后的輸出結果()。

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

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

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

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

A.2B.3C.4D.無確定值

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);}程序運行后的輸出結果是

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

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

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

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

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

57.以下不正確的定義語句是

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]);}程序運行后的輸出結果是

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.下列正確的實型常量是()。

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

60.若二維數(shù)組a有m列,則在a[i][j]剛前的元素個數(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í)行后的輸出結果是()A.21,43B.43,21C.43,00D.21,00

62.下面程序的輸出結果是

#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.關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括()。

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

64.

65.有以下程序:

#include<stdio.h>

main()

{chara=H;

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

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

}

程序運行后的輸出結果是()。

A.AB.aC.HD.h

66.有以下程序:

程序運行后的輸出結果是()。

67.

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

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

69.有以下程序:

運行后的輸出結果是()。

A.MtemoonB.AftemoonC.MorningD.orning

70.閱讀下列程序,則運行結果為()。

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

71.

72.有如下程序:

則b的值是()。

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

73.

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

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

75.

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

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

}

程序運行后的輸出結果是()。

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

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

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

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

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

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

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

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

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

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.B

2.CC。【解析】E—R(Entity—Relationship)圖為實體一聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。

3.C

4.A

5.C

6.D

7.B解析:二維數(shù)組的元素在內存中是按行列順序連續(xù)存放的。以本題的二維數(shù)組a[3][6]為例,它的元素在內存中的存放順序是: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個元素就是第2行第4個元素,即a[1][3]。故應該選擇B。

8.C“P”是指針變量,指向一個地址:“*P”為P指針所指向地址的內容“&”是取變量地址。

9.A

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

11.D

12.A

13.A

14.D

15.DD?!窘馕觥棵嫦驅ο笤O計方法與面向過程設計方法有本質的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然

溫馨提示

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

評論

0/150

提交評論