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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.在圖采用鄰接表存儲時,求最小生成樹的Prim算法的時間復雜度為()。

A.O(n)B.O(n+e)C.O(n2)D.O(n3)

2.若有以下定義:chara;intb;floatc;doubled;則表達式a*b+b-c值的類型為()。A.floatB.intC.charD.double

3.有三個關系R、s和T如下:

由關系R和s通過運算得到關系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

4.以下不正確的敘述是A.A.在C程序中,逗號運算符的優(yōu)先級最低

B.在C程序中,APH和aph是兩個不同的變量

C.若a和b類型相同,在計算了賦值表達式a=b后b中的值將放入a中,而b中的值不變

D.當從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型數(shù)值

5.下列敘述中錯誤的是()。

A.一個C語言程序只能實現(xiàn)一種算法

B.c程序可以由多個程序文件組成

C.C程序可以由一個或多個函數(shù)組成

D.一個c函數(shù)可以單獨作為一個C程序文件存在

6.下列選項中,能夠滿足“若字符串sl等于字符串s2,則執(zhí)行ST”要求的是()。

A.if(stremp(s2,s1)==0)ST;

B.if(s1==s2)ST;

C.if(strcpy(sl,s2)==l)ST;

D.if(sl,s2==O)ST;

7.以下程序輸出正確的是______。amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);arnovep(p,a,3);printf("%d%d\n",p[2],p[5];free(p);}

A.56B.25C.34D.程序錯誤

8.面向?qū)ο蠓椒ㄖ?,繼承是指()。

A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制

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

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

10.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。

A.p+1B.a+1C.a++D.++p

11.以下哪種操作最適合先進行排序處理()

A.找最大、最小值B.計算算術平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值

12.

13.以下與數(shù)學表達式“0<x<5且x≠2”不等價的C語言邏輯表達式是()。

A.(0<x<5)&&(x!=2)

B.0<x&&x<5&&x!=2

C.x>0&&x<5&&x!=2

D.(x>0&&x<2)||(x>2&&x<5)

14.結(jié)構化程序所要求的基本結(jié)構不包括A.順序結(jié)構B.GOTO跳轉(zhuǎn)C.選擇(分支)結(jié)構D.重復(循環(huán))結(jié)構

15.

16.設有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()

A.scanf(“%d”,pa);

B.scanf(“%d”,a);

C.scanf(“%d”,&pa);

D.scanf(“%d”,*pa);

17.順序查找不論在順序線性表中還是在鏈式線性表中的時間復雜度為()。

A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)

18.設q1和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。

A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);

19.下面不合法的常量數(shù)據(jù)是()。

A..023E-5B.0x3f7b8a90C.‘\0x6d’D.‘\0123321’

20.

二、2.填空題(20題)21.下面程序的輸出結(jié)果是【】。

main()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j])

}

22.請讀程序片段:

inta=17;

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

以上程序片段的輸出結(jié)果是【】。

23.若有語句

inti=-19,j=i%4;

printf("%d\n",j),

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

24.數(shù)據(jù)流圖的類型有【】和事務型。

25.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;

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

#include<stdio.h>

main()

{intx=27;

while(x>20&&x<30)

{x++;

if(x/3){x++;break;}

else

continue;

}

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

}

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

main()

{inta=10;

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

}

28.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的【】兩部分組成。

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

main()

{inta+,b=2,C=3,t=0;

ifa<B){t=a;a=b;b=t;}

ifa<C){t=a;a=c;c=t;}

printf("%d,%d,%dln",a,b,C);

}

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

main()

{

inta=1,b=2;

a=a+b;b=a-b;a=a-b;

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

}

31.【】(黑箱或白箱)測試方法完全不考慮程序的內(nèi)部結(jié)構和內(nèi)部特征。

32.在結(jié)構化設計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關系,并且每一個______實際上對應一個處理模塊。

33.與表達式a+=b等價的另一書寫形式是______。

34.下列程序的運行結(jié)果是______。

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

35.下面程序的輸出是【】。

main()

{intarr[10],i,k=0;

for(i=0;i,10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

36.在一個容量為25的循環(huán)隊列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊列中共有【】個元素。

37.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】。

main()

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

p=a;

printf("%x\n",p);

printf("%\n",p+9);

}

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

intf(inta[],intn)

{

if(n>=1)

returnf(a,n-1)+a[n-1];

else

return0;

}

main()

{

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);

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

}

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

mycmp(char*s,char*t)

{while(*s==*t)

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

++s;++t;

}

return(【】)

}

40.以下程序運行的結(jié)果是【】。

#include<conio.h>

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{inti,j=0;

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

if(i%7==0‖i%11==0)

a[j++]=i;

*n=j;}

main()

{intaa[M],n,k;

clrscr();

fun(10,aa,&n);

for(k=0;k<n;k++)

if((k+1)%20==0)printf("\n");

elseprintf("%4d",aa[k]);

printf("\n");}

三、1.選擇題(20題)41.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");程序段的輸出結(jié)果是______。

A.******B.****C.**D.*

42.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。

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

43.若函數(shù)調(diào)用時的實參為變量時,以下關于函數(shù)形參和實參的敘述中正確的是()。

A.函數(shù)的實參和其對應的形參共占同一存儲單元

B.形參只是形式上的存在,不占用具體存儲單元

C.同名的實參和形參占同一存儲單元

D.函數(shù)的形參和實參分別占用不同的存儲單元

44.已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是

A.acbedB.decabC.deabcD.cedba

45.有以下程序main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];prizltf("%d\n",j);}程序運行后的輸出結(jié)果是

A.42B.45C.56D.60

46.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<5;i++)j+=f(i);printf("%d\n",j);}程序運行后的輸出結(jié)果是()

A.15B.10C.6D.3

47.電子郵件是()

A.網(wǎng)絡信息檢索服務

B.通過Web網(wǎng)頁發(fā)布的公告信息

C.通過網(wǎng)絡實時交互的信息傳遞方式

D.一種利用網(wǎng)絡交換信息的非交互式服務

48.下列的程序用來輸出兩個字符串前7個字符中對應相等的字符及其位置號,程序空白處應該填寫的是()。#include<stdio.h>main(){Charsl[]="Chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]=s2[i]&&i<7)____________________;}

A.putchar(s2[i];putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

49.若有以下定義:structlink{intdata;structlink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結(jié)構:

指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

50.下列敘述中正確的是()。

A.在模塊化程序設計中,一個模塊應盡量多的包括與其他模塊聯(lián)系的信息

B.在自頂向下、逐步細化的設計過程中,首先應設計解決問題的每一個細節(jié)

C.在模塊化程序設計中,一個模塊內(nèi)部的控制結(jié)構也要符合結(jié)構化原則

D.在程序設計過程中,不能同時采用結(jié)構化程序設計方法與模塊化程序設計方法

51.下列選項中C語言中不合法的字符串常量的是

A.\121B.'y'C.\n\nD.ABCD\x6d

52.SQL語言又稱為______。

A.結(jié)構化定義語言B.結(jié)構化控制語言C.結(jié)構化查詢語言D.結(jié)構化操縱語言

53.若進棧序列為1,2,3,4,進棧過程中可以出棧,則下列不可能的—個出棧序列是______。

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

54.若x和y代表整型數(shù),以下表達式中不能正確表示數(shù)學關系|x-y|<10的是

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<-10‖!(y-x)>10

D.(x-y)*(x-y)<100

55.下列數(shù)據(jù)結(jié)構中,能用二分法進行查找的是()。

A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表

56.以下程序的輸出的結(jié)果是intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staicintx=1;x*=x+1;printf("%d",x);}

A.33B.22C.26D.25

57.設有下列二叉樹:

對此二叉樹中序遍歷的結(jié)果為______。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

58.有以下程序#include<stringh>main(intargc,char*argv[]){inti,len=0;fot(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}經(jīng)編譯連接后生成的可執(zhí)行文件是ex.exe,若運行時輸入以下帶參數(shù)的命令行exabcdefgh3k44執(zhí)行后輸出結(jié)果是

A.14B.12C.8D.6

59.下列各數(shù)據(jù)類型不屬于構造類型的是()。

A.枚舉型B.共用型C.結(jié)構型D.數(shù)組型

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

A.1B.0C.FALSED.TRUE

四、選擇題(20題)61.有以下程序

main()

{

intx=3,y=2,z=1;

printf("%d\n",x/y&~z);

}

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

A.3B.2

C.1D.0

62.

63.

64.

65.“商品”與“顧客”兩個實體集之間的聯(lián)系一般是()。

A.一對一B.多對一C.一對多D.多對多

66.若變量已確定義,則以下語句的輸出結(jié)果是()。

67.

68.C語言中,合法的字符型常數(shù)是_________。

A.‘A’B.“A”C.65D.A

69.有以下程序段:

當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。

A.566.0B.55566.0C.7777.0D.566777.0

70.(74)用鏈表表示線性表的優(yōu)點是()

A.便于插入和刪除操作

B.數(shù)據(jù)元素的物理順序與邏輯順序相同

C.花費的存儲空間較順序存儲少

D.便于隨機存取

71.當執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

72.

73.以下程序中函數(shù)sCmp的功能是返回形參指針sl和s2所指字符串中較小字符串的首地址。

若運行時依次輸入:abCd、abba和abC三個字符串,則輸出結(jié)果是()。

A.abCdB.abbaC.abCD.abCa

74.以下只有在使用時才為該類型變量分配內(nèi)存的存儲類型說明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

75.下列數(shù)據(jù)結(jié)構中,屬于非線性結(jié)構的是A.循環(huán)隊列B.帶鏈隊列C.二叉樹D.帶鏈棧

76.

有下列程序:

main

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

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

A.45B.20C.25D.36

77.有以下程序:

}、、、程序運行后的輸出結(jié)果是()。

A.一263B.2C.0D.一26

78.

79.結(jié)構化程序設計主要強調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設計語言的先進性D.程序的易讀性

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)形參m(2≤m≤9)的值,在m行m列的二維數(shù)組中存放如下所示的數(shù)據(jù),由main()函數(shù)輸出。

請修改程序中的錯誤,使它能得出正確的結(jié)果。

注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。

試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),該函數(shù)的功能是將大于整數(shù)m且緊靠m的k個素數(shù)存入所指的數(shù)組中。例如,若輸入17、5,則應輸出19、23、29、31、37。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B

2.D在表達式a*b+d-c中,double的類型最高,C語言中,由低類型自動向高類型轉(zhuǎn)換,所以最后的結(jié)果一定是double型。

3.D關系R與s經(jīng)交運算后所得到的關系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。

4.D解析:在C語言所有的運算符中,逗號運算符的優(yōu)先級最低。C語言中區(qū)分大小寫,所以APH和aph是兩個不同的變量。賦值表達式a=b表示將b的值付給a,而b本身的值保持不變;通過鍵盤可以向計算機輸入允許的任何類型的數(shù)據(jù)。選項D)中當從鍵盤輸入數(shù)據(jù)時,對于整型變量可以輸入整型數(shù)值和字符,對于實型變量可以輸入實型數(shù)值和整型數(shù)值等。

5.A答案A

解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法。

6.Astrcmp(char*,char*),函數(shù)strcmp用于比較兩個字符串的長度,長者為大,若字符個數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCIl表值計算,直到最后一個字符,若還相同,則兩個字符串相等,返回值0。選項A中if(strcmp(s2,sl)==0)ST,若s2等于sl,則返回值0,0等于0,所以邏輯表達式strcmp(s2,sl)==0為真,執(zhí)行ST。

7.A解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲單元中,a的各元素分別為:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過mailoc()函數(shù)給指針分配內(nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過amovep(p,a,3)調(diào)用函數(shù)amovep,使得實參p與形參p,實參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲空間。最后輸出p[2],p[5]為56。

8.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€主要特征,是使用已有的類的定義作為基礎建立新類的定義技術。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復定義它們,所以說繼承是指類之間共享屬性和操作的機制。

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

10.C

11.C

12.B

13.A在C語言里不能直接表達“0<x<5”,需要分步驟來實現(xiàn),即使用“x>0&&x<5”來描述。在C語言里,“0<x<5”屬于一個邏輯運算表達式,可以理解為“(0<x)<5”,因此選項A錯誤。故本題答案為A選項。

14.BB【解析】1966年Boehm和JaCopini證明了程序設計語言僅僅使用順序、選擇和重復三種基本控制結(jié)構就足以表達出各種其他形式結(jié)構的程序設計方法。

15.B

16.A

17.A

18.B解析:選項A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進行賦值運算:選項C)中,是兩個指針變量之間的賦值:選項D)中,是兩個指針型變量所指向的兩個float型數(shù)據(jù)相乘。

19.D選項A是實型常量的指數(shù)形式,表示0.023×10-5;選項B是十六進制表示的整型常量;選項C是十六進制表示的轉(zhuǎn)義字符常量;選項D是字符串常量,應該使用雙引號標注。故本題答案為D選項。

20.B

21.AB

22.1721

23.-3-3解析:本題考核的知識點是運算符“%’的應用。該運算符是求兩個數(shù)相除的余數(shù),其結(jié)果與被除數(shù)的符號一致,本題中“-19%4”的值為“-3”,所以說空格處應該填-3。

24.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務。

25.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。

26.2929解析:本題考查while循環(huán)和++運算,x=27符合循環(huán)條件,執(zhí)行循環(huán)體中x++后,x=28,if條件也成立,執(zhí)行x++后退出,x的值增1,結(jié)果x=29。

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

28.輸出結(jié)果輸出結(jié)果解析:注意:測試的基本方法和步驟。

29.3123,1,2解析:分析程序,第一個if句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時a=3,c=2。

30.212,1解析:本題中,執(zhí)行a=a+b時,a=1,b=2,a=1+2=3,b=a-b時,a=3,b=2,b=3-2=1;a=a-b時,a=3,b=1,a=3-1=2;因此,本題的輸出是2,1

31.黑箱黑箱解析:本題考查了軟件測試中的黑箱測試。黑箱測試是根據(jù)程序規(guī)格說明所規(guī)定的功能來設計測試用例,它不考慮程序的內(nèi)部結(jié)構和處理過程。常用的黑箱測試技術分為等價類劃分、邊界分析、錯誤猜測以及因果圖等。

32.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應一個處理模塊。

33.a=a+ba=a+b解析:a+=b與a=a+b等價,作用是把變量a的值加b后再賦給變量a。

34.55解析:分析程序,當a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結(jié)果為5。

35.1212解析:本題首先通過第一個for語句把0~9(包含0和9)間的整數(shù)依次賦值給數(shù)組arr,第二個for語句用于實現(xiàn)將滿足條件的數(shù)組元素與對應的下標值求和并累加,并用變量k保存。

36.1818解析:設循環(huán)隊列的容量為n。若rear>front,則循環(huán)隊列中的元素個數(shù)為rear-front;若rear<front,則循環(huán)隊列中的元素個數(shù)為n+(rear-front)。題中,front=16,rear=9,即rear<front,所以,循環(huán)隊列中的元素個數(shù)為m+(rear-front)=25+(9-16)=18。

37.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。

38.1515解析:在函數(shù)f()中只有一條if語句,如果n不小于1,則返回f(a,n-1)+a[n-1];否則返回0。所以f(aa,5)返回f(aa,4)+aa[4],而f(aa,4)返回f(aa,3)+aa[3],……直到f(aa,0)返回0。故f(aa,5)實際返回值是0+aa[1]+aa[2]+aa[3]+aa[4]+aa[5],所以本題最終輸出15。

39.*s-*t或-*t+*s*s-*t或-*t+*s解析:函數(shù)的兩個形參是兩個字符指針變量,字符串的首地址是指針變量的值,*s和*t表示字符串數(shù)組s和t的第一個字符,在while循環(huán)中,是通過s和t值的不斷變化來改變指針所指向的字符,要改變s和t所指不同字符的ASCII碼的差值,必須使用“*s-*t”得出。

40.77解析:解答本題的關鍵是要讀懂程序,要找出能被7或11整除的所有整數(shù),注意數(shù)學中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“‖”運算符,若要找能同時被7和11整除的所有整數(shù)則在if的條件中應使用“&&”運算符。

當然,如果m的值輸入50,即表達式fun(10,aa,&n);為fun(50,aa,&n);時輸入結(jié)果為:711142122283335424449。

41.D解析:本題考杏for循環(huán)語句中嵌套for循環(huán)語句的情況。由于第一個for語句沒有具體的執(zhí)行語句,故當i=0時,k=1時,執(zhí)行一次語句printf(“*”);,程序便會跳出整個循環(huán),故運行結(jié)果為一個星號。

42.AC語言規(guī)定case后面跟的必須是整型常量表達式。進入case后,如果沒有遇到break語句就會一直往下執(zhí)行,后面其他case或default分支的語句也會被執(zhí)行到,直到遇到break,或者執(zhí)行到整個switch語句塊的末尾。題目中給出了三個case語句:case0、case1、case2。當x為1時,從case1語句開始執(zhí)行,因為沒有break語句,將一直執(zhí)行到函數(shù)末尾結(jié)束,即執(zhí)行case1、case2兩條語句。執(zhí)行完case1時,a=1,b=0;執(zhí)行完case2時,a=2,b=1。

43.D解析:在定義函數(shù)時函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”(簡稱形參),在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括弧中的參數(shù)(可以是一個表達式)稱為“實際參數(shù)”(簡稱實參)。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。故本題應該選擇D。

44.D解析:中序遍歷的遞歸算法如下:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法如下:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法如下:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。由后序遍歷結(jié)果dabec可知c是根結(jié)點,且無右子樹。再由左子樹的后序遍歷結(jié)果dabe可知,e是左子樹的根結(jié)點,且由左子樹的中序遍歷結(jié)果deba可知,d是左子樹的左子樹結(jié)點,b和a是左子樹的右子樹結(jié)點。再次由后序遍歷結(jié)果ab可知,a是左子樹結(jié)點。b是根結(jié)點。至此,各結(jié)點在樹中的位置已完全確定。

45.B解析:本題考查的是while語句和if語句的綜合應用。程序中while的循環(huán)條件是1++<7,由于程序開始時將i初始化為0,而且循環(huán)體中沒有改變變量i的語句,只有循環(huán)條件中i的自增,所以當i從0自增到6時循環(huán)的循環(huán)體一共被執(zhí)行了7次,但是在循環(huán)體中,i的值為從1到7。在循環(huán)體中只有一條if語句,其條件表達式為p[i]%2,當p[i]為奇數(shù)時,p[i]除以2余1,條件表達式的值為“真”,所以整個循環(huán)語句所做的事就是:累計p[1]到p[7]之間的奇數(shù)到變量j中。所以最后j的值應該為13+15+17=45.選項B符合題意。

46.B

47.D解析:電子郵件是利用Internet網(wǎng)傳送信件,不是檢索服務,由于信件只發(fā)給收信人,所以不是公告信息,并不是一發(fā)信就必須要收信人立即接收,而是信件存放在郵箱中,收信人在需要的時候再取出。

48.C解析:putchar(s)的功能是把字符s輸出到標準輸出設備;puts(s1)是把s1指向的字符串輸出到標準輸出設備。

49.D解析:在本題中指針p指向變量a,q指向變量c。要把c插入到變量a和變量b之間,就應該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b。

50.C解析:在模塊化設計中,要求將一個大程序按人們能理解的大小規(guī)模進行分解,使每個模塊都能易于理解,各模塊的功能盡量單一,各模塊之間的聯(lián)系盡量的少。因此,選項A中的說法是錯誤的。自頂向下、逐步細化的設計過程,主要包括兩個方面:一是將一個復雜問題的解法分解和細化成由若干模塊組成的層次結(jié)構;二是將一個模塊的功能逐步分解細化為一系列的處理步驟,直到某種程序設計語言的語句或某種機器指令。即在自頂向下、逐步細化的設計過程中,是按照先全局后局部,先整體后細節(jié)、先抽象后具體的方法設計程序。因此.選項B中的說法也是錯誤的。\u3000在模塊化程序設計中.每一個模塊完成一個功能,相對獨立,要求一個模塊內(nèi)部的控制結(jié)構也要符合結(jié)構化原則。因此,選項C中的說法是正確的。由于在模塊化程序設計中,一個模塊內(nèi)部的控制結(jié)構也要符合結(jié)構化原則,因此,在程序設計過程中,結(jié)構化程序設計方法與模塊化程序設計方法是要同時采用的。因此,選項D中的說法是錯誤的。

51.B解析:字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是合法的字符串常量,而選B)是一個字符常量。

52.CC。【解析】SQL語言的全稱為StructuredQueryLanguage,它是一種介于關系代數(shù)與關系演算之間的結(jié)構化查詢語言,是一種面向數(shù)據(jù)庫的通用數(shù)據(jù)處理語言規(guī)范。它包含數(shù)據(jù)查詢語言、數(shù)據(jù)操縱語言、數(shù)據(jù)定義語言和數(shù)據(jù)控制語言4個部分。

53.C解析:棧是—種后進先出表,選項C中,先出棧的是3,說明此時棧內(nèi)必然有1,2,由于1先于2進棧,所以1不可能在2之前出棧,故選項C這種出棧序列是不可能的。

54.C解析:選項A用了一個絕對值函數(shù)abs();選項B中用了一個“&&”邏輯與;選項C中,“||”左邊的式子如為真,將不再判斷其后的表達式的值;選項D為本題中數(shù)學關系式的一個等價命題。

55.A\nA?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序線性表,對于順序存儲的非有序線性表和線性鏈表,都只能采用順序查找。

\n

56.C解析:本題首先定義一個全局變量x并賦初值為3,主函數(shù)中使用這個全局變量控制循環(huán)次數(shù),循環(huán)執(zhí)行了2次,調(diào)用兩次tncre()函數(shù)。第一次調(diào)用incre(),定義一個靜態(tài)變量x并賦初值1,然后執(zhí)行“x*=x+1”,使x的值變?yōu)?;第二次調(diào)用incre()函數(shù)時,靜態(tài)變量將保留上一次退出時的值即2,執(zhí)行語句“x*=x+1”后,x的值變成6,輸出x的值為6。所以,4個選項中C為所選。

57.B解析:所謂中序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。

58.D解析:主函數(shù)的第一個參數(shù)argc為整型參數(shù),記下從命令行輸入的參數(shù)的個數(shù);第二個參數(shù)argv是一個字符型的指針數(shù)組,它的每一個元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為5,argv[0]指向字符串“ex”,argv[1]指向參數(shù)字符串“abed”,argv[2]指向字符串“efg”,argv[3]指向參數(shù)字符串“h3”,argv[4]指向參數(shù)字符串“k44”。在main()函數(shù)中,for循環(huán)執(zhí)行了2次,當i=1時,len=0+strlen(argv[1]),而其中argv[1]=“abcd”,故此時len的值為4;當i=3時,len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此時len的值為6;當i=5時,退出循環(huán),故最后輸出的len的值為6。

59.A本題考查高級語言的數(shù)據(jù)類型。其中屬于構造類型的主要有結(jié)構體類型、聯(lián)合體類型,即共用體類型和數(shù)組類型。

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

61.D&是“按位與”運算符,參加運算的兩個運算量的相應位都為1,則該位的結(jié)果值為1,否則為0?!恰叭》础边\算符,用來對一個二進制數(shù)按位取反,即將0變1,1變0。本題x/y&~z,x/y的值為1,~z的值為0,所以進行&運算后,整個表達式的值為0。

62.C

63.C

64.D

65.D商品與顧客兩個實體集之間的買與被買聯(lián)系是多對多的,因為一種商品可以被多個顧客購買,而一個顧客也可以買多個商品。

66.As=32^32值為0。

67.B

68.A

69.A它是格式輸人函數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中。其中的格式命令可以說明最大域?qū)?。在百分?%)與格式碼之間的整數(shù)用于限制從對應域讀入的最大字符數(shù)。所以j的值為55,Y的值為566.0,字符數(shù)組llame為7777abc。

70.A注:因為不需要移動元素

71.Ado-wlfile的功能是先執(zhí)行一次循環(huán)體,再判斷條件是否成立,當x=-1時,執(zhí)行do語句,x=x*x=1,接著執(zhí)行while后的表達式,其值為0,退出循環(huán),因此循環(huán)體只執(zhí)行了一次。

72.A

73.Bmain函數(shù)將輸入的三個字符串存在二維數(shù)組str中,并通過兩次streW函數(shù)調(diào)用,將最小的一個字符串復制到string中。abcd、abba、abc中最小的字符串為abba。

74.B在用靜態(tài)static與外部extern定義變量時,系統(tǒng)立刻給其分配內(nèi)存,而定義自動類auto與強制放入寄存器register類型變量時,只有當使用時才分配內(nèi)存。

75.C根據(jù)數(shù)據(jù)結(jié)構中各數(shù)據(jù)元素之間的前后件關系的復雜程度,一般將數(shù)據(jù)結(jié)構分為兩大類:線性結(jié)構和非線性結(jié)構。循環(huán)隊列、帶鏈隊列和帶鏈棧都是線性結(jié)構,而二叉樹是非線性結(jié)構。

76.C

\n在for循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(t+i)語句,因為C語言規(guī)定數(shù)組名做表達式相當于數(shù)組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數(shù)組的第i+1個元素。所以程序運行的結(jié)果是1+3+5+7+9=25,即變量S的值等于25。

\n

77.Disspaee(c)檢查參數(shù)c是否為空格字符。若參數(shù)e為空格字符,則返回TRUE,否則返回NULL(0)。Is—di#t(c)函數(shù)檢查參數(shù)c是否為阿拉伯數(shù)字0到9。返回值若為阿拉伯數(shù)字,則返回TRUE,否則返回NULL(O)。fLm()函數(shù)的第一個for循環(huán)判斷字符串是否為負號。第二個for循環(huán)獲取符號后面的數(shù)字字符,并將它們轉(zhuǎn)化為整數(shù)。遇到了非數(shù)字的字符跳出,最后返回數(shù)組的結(jié)果。因此,可知首先獲取負號,緊接著獲取數(shù)值26,遇到了字符a,跳出返回一26,因此打印的結(jié)果是一26。故答案為D選項。

78.D

79.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護程序,往往還有其他人閱讀和跟蹤程序,因此程序設計的風格應該強調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

80.D

81.(1)錯誤:proc(int**a,intm)

正確:voidproc(int(*a)[N],intm)

(2)錯誤:aEj][k]=k*J;

正確:a[j][k]=(k+1)*(j+1);

【解析】從主函數(shù)的調(diào)用可知,函數(shù)proc()沒有返回值,因此應該定義為void類型。形參a應該是一個整型的指針數(shù)組。因此,“proe(int**a,intm)”應改為“voidproc(int(*a)[N],intm)”。數(shù)組下標從0開始,由事例數(shù)組可知,其元素從l開始遞增,因此“a[j][k]=k*J;”應改為“a[j][k]=(k+1)*(j+1);”。

82.1voidfun(intm,intk,intxx[])2{3inti,j,n;4for(i=m+1,n=0;n<k;i++)p*<style="color:rgb(0,0,0);font-family:"TimesNewRoman";font-size:medium;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;orphans:2;text-align:start;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration-style:initial;text-decoration-color:initial;">找大于m的素數(shù),循環(huán)k次,即找出緊靠m的k個素數(shù)*/5{for(j=2;j<i;j++)p*#]斷一<>個M否為素數(shù),如果不是,跳出此循環(huán),判斷下一個數(shù)*/6if(i%j==0)break;7if(j>=i)/*如果是素數(shù),存入數(shù)組XX中*/8xx[n++]=i;9}10}本題主要考查素數(shù)的判定方法。如果一個數(shù)不能被除了1和其自身以外的數(shù)整除,則這個數(shù)為素數(shù)。本程序使用循環(huán)語句控制需要判斷的數(shù),在循環(huán)體中判斷該數(shù)是否為素數(shù),若是則存入數(shù)組XX中。當數(shù)組XX的素數(shù)個數(shù)為k個時,退出循環(huán)。</i;j++)p*#]斷一<></k;i++)p*<>2021-2022年廣東省東莞市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.在圖采用鄰接表存儲時,求最小生成樹的Prim算法的時間復雜度為()。

A.O(n)B.O(n+e)C.O(n2)D.O(n3)

2.若有以下定義:chara;intb;floatc;doubled;則表達式a*b+b-c值的類型為()。A.floatB.intC.charD.double

3.有三個關系R、s和T如下:

由關系R和s通過運算得到關系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

4.以下不正確的敘述是A.A.在C程序中,逗號運算符的優(yōu)先級最低

B.在C程序中,APH和aph是兩個不同的變量

C.若a和b類型相同,在計算了賦值表達式a=b后b中的值將放入a中,而b中的值不變

D.當從鍵盤輸入數(shù)據(jù)時,對于整型變量只能輸入整型數(shù)值,對于實型變量只能輸入實型數(shù)值

5.下列敘述中錯誤的是()。

A.一個C語言程序只能實現(xiàn)一種算法

B.c程序可以由多個程序文件組成

C.C程序可以由一個或多個函數(shù)組成

D.一個c函數(shù)可以單獨作為一個C程序文件存在

6.下列選項中,能夠滿足“若字符串sl等于字符串s2,則執(zhí)行ST”要求的是()。

A.if(stremp(s2,s1)==0)ST;

B.if(s1==s2)ST;

C.if(strcpy(sl,s2)==l)ST;

D.if(sl,s2==O)ST;

7.以下程序輸出正確的是______。amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);arnovep(p,a,3);printf("%d%d\n",p[2],p[5];free(p);}

A.56B.25C.34D.程序錯誤

8.面向?qū)ο蠓椒ㄖ?,繼承是指()。

A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制

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

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

10.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。

A.p+1B.a+1C.a++D.++p

11.以下哪種操作最適合先進行排序處理()

A.找最大、最小值B.計算算術平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值

12.

13.以下與數(shù)學表達式“0<x<5且x≠2”不等價的C語言邏輯表達式是()。

A.(0<x<5)&&(x!=2)

B.0<x&&x<5&&x!=2

C.x>0&&x<5&&x!=2

D.(x>0&&x<2)||(x>2&&x<5)

14.結(jié)構化程序所要求的基本結(jié)構不包括A.順序結(jié)構B.GOTO跳轉(zhuǎn)C.選擇(分支)結(jié)構D.重復(循環(huán))結(jié)構

15.

16.設有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()

A.scanf(“%d”,pa);

B.scanf(“%d”,a);

C.scanf(“%d”,&pa);

D.scanf(“%d”,*pa);

17.順序查找不論在順序線性表中還是在鏈式線性表中的時間復雜度為()。

A.O(n)B.O(n^2)C.O(n^1/2)D.O(1og2n)

18.設q1和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。

A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);

19.下面不合法的常量數(shù)據(jù)是()。

A..023E-5B.0x3f7b8a90C.‘\0x6d’D.‘\0123321’

20.

二、2.填空題(20題)21.下面程序的輸出結(jié)果是【】。

main()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j])

}

22.請讀程序片段:

inta=17;

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

以上程序片段的輸出結(jié)果是【】。

23.若有語句

inti=-19,j=i%4;

printf("%d\n",j),

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

24.數(shù)據(jù)流圖的類型有【】和事務型。

25.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;

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

#include<stdio.h>

main()

{intx=27;

while(x>20&&x<30)

{x++;

if(x/3){x++;break;}

else

continue;

}

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

}

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

main()

{inta=10;

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

}

28.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的【】兩部分組成。

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

main()

{inta+,b=2,C=3,t=0;

ifa<B){t=a;a=b;b=t;}

ifa<C){t=a;a=c;c=t;}

printf("%d,%d,%dln",a,b,C);

}

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

main()

{

inta=1,b=2;

a=a+b;b=a-b;a=a-b;

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

}

31.【】(黑箱或白箱)測試方法完全不考慮程序的內(nèi)部結(jié)構和內(nèi)部特征。

32.在結(jié)構化設計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關系,并且每一個______實際上對應一個處理模塊。

33.與表達式a+=b等價的另一書寫形式是______。

34.下列程序的運行結(jié)果是______。

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

35.下面程序的輸出是【】。

main()

{intarr[10],i,k=0;

for(i=0;i,10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

36.在一個容量為25的循環(huán)隊列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊列中共有【】個元素。

37.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】。

main()

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

p=a;

printf("%x\n",p);

printf("%\n",p+9);

}

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

intf(inta[],intn)

{

if(n>=1)

returnf(a,n-1)+a[n-1];

else

return0;

}

main()

{

intaa[5]={1,2,3,4,5},s;

s=f(aa,5);

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

}

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

mycmp(char*s,char*t)

{while(*s==*t)

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

++s;++t;

}

return(【】)

}

40.以下程序運行的結(jié)果是【】。

#include<conio.h>

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{inti,j=0;

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

if(i%7==0‖i%11==0)

a[j++]=i;

*n=j;}

main()

{intaa[M],n,k;

clrscr();

fun(10,aa,&n);

for(k=0;k<n;k++)

if((k+1)%20==0)printf("\n");

elseprintf("%4d",aa[k]);

printf("\n");}

三、1.選擇題(20題)41.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");程序段的輸出結(jié)果是______。

A.******B.****C.**D.*

42.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。

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

43.若函數(shù)調(diào)用時的實參為變量時,以下關于函數(shù)形參和實參的敘述中正確的是()。

A.函數(shù)的實參和其對應的形參共占同一存儲單元

B.形參只是形式上的存在,不占用具體存儲單元

C.同名的實參和形參占同一存儲單元

D.函數(shù)的形參和實參分別占用不同的存儲單元

44.已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是

A.acbedB.decabC.deabcD.cedba

45.有以下程序main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];prizltf("%d\n",j);}程序運行后的輸出結(jié)果是

A.42B.45C.56D.60

46.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<5;i++)j+=f(i);printf("%d\n",j);}程序運行后的輸出結(jié)果是()

A.15B.10C.6D.3

47.電子郵件是()

A.網(wǎng)絡信息檢索服務

B.通過Web網(wǎng)頁發(fā)布的公告信息

C.通過網(wǎng)絡實時交互的信息傳遞方式

D.一種利用網(wǎng)絡交換信息的非交互式服務

48.下列的程序用來輸出兩個字符串前7個字符中對應相等的字符及其位置號,程序空白處應該填寫的是()。#include<stdio.h>main(){Charsl[]="Chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]=s2[i]&&i<7)____________________;}

A.putchar(s2[i];putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

49.若有以下定義:structlink{intdata;structlink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結(jié)構:

指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

50.下列敘述中正確的是()。

A.在模塊化程序設計中,一個模塊應盡量多的包括與其他模塊聯(lián)系的信息

B.在自頂向下、逐步細化的設計過程中,首先應設計解決問題的每一個細節(jié)

C.在模塊化程序設計中,一個模塊內(nèi)部的控制結(jié)構也要符合結(jié)構化原則

D.在程序設計過程中,不能同時采用結(jié)構化程序設計方法與模塊化程序設計方法

51.下列選項中C語言中不合法的字符串常量的是

A.\121B.'y'C.\n\nD.ABCD\x6d

52.SQL語言又稱為______。

A.結(jié)構化定義語言B.結(jié)構化控制語言C.結(jié)構化查詢語言D.結(jié)構化操縱語言

53.若進棧序列為1,2,3,4,進棧過程中可以出棧,則下列不可能的—個出棧序列是______。

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

54.若x和y代表整型數(shù),以下表達式中不能正確表示數(shù)學關系|x-y|<10的是

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<-10‖!(y-x)>10

D.(x-y)*(x-y)<100

55.下列數(shù)據(jù)結(jié)構中,能用二分法進行查找的是()。

A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表

56.以下程序的輸出的結(jié)果是intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staicintx=1;x*=x+1;printf("%d",x);}

A.33B.22C.26D.25

57.設有下列二叉樹:

對此二叉樹中序遍歷的結(jié)果為______。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

58.有以下程序#include<stringh>main(intargc,char*argv[]){inti,len=0;fot(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}經(jīng)編譯連接后生成的可執(zhí)行文件是ex.exe,若運行時輸入以下帶參數(shù)的命令行exabcdefgh3k44執(zhí)行后輸出結(jié)果是

A.14B.12C.8D.6

59.下列各數(shù)據(jù)類型不屬于構造類型的是()。

A.枚舉型B.共用型C.結(jié)構型D.數(shù)組型

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

A.1B.0C.FALSED.TRUE

四、選擇題(20題)61.有以下程序

main()

{

intx=3,y=2,z=1;

printf("%d\n",x/y&~z);

}

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

A.3B.2

C.1D.0

62.

63.

64.

65.“商品”與“顧客”兩個實體集之間的聯(lián)系一般是()。

A.一對一B.多對一C.一對多D.多對多

66.若變量已確定義,則以下語句的輸出結(jié)果是()。

67.

68.C語言中,合法的字符型常數(shù)是_________。

A.‘A’B.“A”C.65D.A

69.有以下程序段:

當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。

A.566.0B.55566.0C.7777.0D.566777.0

70.(74)用鏈表表示線性表的優(yōu)點是()

A.便于插入和刪除操作

B.數(shù)據(jù)元素的物理順序與邏輯順序相同

C.花費的存儲空間較順序存儲少

D.便于隨機存取

71.當執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

72.

73.以下程序中函數(shù)sCmp的功能是返回形參指針sl和s2所指字符串中較小字符串的首地址。

若運行時依次輸入:abCd、abba和abC三個字符串,則輸出結(jié)果是()。

A.abCdB.abbaC.abCD.abCa

74.以下只有在使用時才為該類型變量分配內(nèi)存的存儲類型說明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

75.下列數(shù)據(jù)結(jié)構中,屬于非線性結(jié)構的是A.循環(huán)隊列B.帶鏈隊列C.二叉樹D.帶鏈棧

76.

有下列程序:

main

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

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

A.45B.20C.25D.36

77.有以下程序:

}、、、程序運行后的輸出結(jié)果是()。

A.一263B.2C.0D.一26

78.

79.結(jié)構化程序設計主要強調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設計語言的先進性D.程序的易讀性

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)形參m(2≤m≤9)的值,在m行m列的二維數(shù)組中存放如下所示的數(shù)據(jù),由main()函數(shù)輸出。

請修改程序中的錯誤,使它能得出正確的結(jié)果。

注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。

試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),該函數(shù)的功能是將大于整數(shù)m且緊靠m的k個素數(shù)存入所指的數(shù)組中。例如,若輸入17、5,則應輸出19、23、29、31、37。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B

2.D在表達式a*b+d-c中,double的類型最高,C語言中,由低類型自動向高類型轉(zhuǎn)換,所以最后的結(jié)果一定是double型。

3.D關系R與s經(jīng)交運算后所得到的關系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。

4.D解析:在C語言所有的運算符中,逗號運算符的優(yōu)先級最低。C語言中區(qū)分大小寫,所以APH和aph是兩個不同的變量。賦值表達式a=b表示將b的值付給a,而b本身的值保持不變;通過鍵盤可以向計算機輸入允許的任何類型的數(shù)據(jù)。選項D)中當從鍵盤輸入數(shù)據(jù)時,對于整型變量可以輸入整型數(shù)值和字符,對于實型變量可以輸入實型數(shù)值和整型數(shù)值等。

5.A答案A

解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法。

6.Astrcmp(char*,char*),函數(shù)strcmp用于比較兩個字符串的長度,長者為大,若字符個數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCIl表值計算,直到最后一個字符,若還相同,則兩個字符串相等,返回值0。選項A中if(strcmp(s2,sl)==0)ST,若s2等于sl,則返回值0,0等于0,所以邏輯表達式strcmp(s2,sl)==0為真,執(zhí)行ST。

7.A解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲單元中,a的各元素分別為:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過mailoc()函數(shù)給指針分配內(nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過amovep(p,a,3)調(diào)用函數(shù)amovep,使得實參p與形參p,實參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲空間。最后輸出p[2],p[5]為56。

8.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€主要特征,是使用已有的類的定義作為基礎建立新類的定義技術。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復定義它們,所以說繼承是指類之間共享屬性和操作的機制。

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

10.C

11.C

12.B

13.A在C語言里不能直接表達“0<x<5”,需要分步驟來實現(xiàn),即使用“x>0&&x<5”來描述。在C語言里,“0<x<5”屬于一個邏輯運算表達式,可以理解為“(0<x)<5”,因此選項A錯誤。故本題答案為A選項。

14.BB【解析】1966年Boehm和JaCopini證明了程序設計語言僅僅使用順序、選擇和重復三種基本控制結(jié)構就足以表達出各種其他形式結(jié)構的程序設計方法。

15.B

16.A

17.A

18.B解析:選項A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進行賦值運算:選項C)中,是兩個指針變量之間的賦值:選項D)中,是兩個指針型變量所指向的兩個float型數(shù)據(jù)相乘。

19.D選項A是實型常量的指數(shù)形式,表示0.023×10-5;選項B是十六進制表示的整型常量;選項C是十六進制表示的轉(zhuǎn)義字符常量;選項D是字符串常量,應該使用雙引號標注。故本題答案為D選項。

20.B

21.AB

22.1721

23.-3-3解析:本題考核的知識點是運算符“%’的應用。該運算符是求兩個數(shù)相除的余數(shù),其結(jié)果與被除數(shù)的符號一致,本題中“-19%4”的值為“-3”,所以說空格處應該填-3。

24.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務。

25.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。

26.2929解析:本題考查while循環(huán)和++運算,x=27符合循環(huán)條件,

溫馨提示

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

評論

0/150

提交評論