2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第1頁
2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第2頁
2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第3頁
2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第4頁
2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.在Internet中,域名服務器的主要功能是實現(xiàn)()的轉換。

A.IP地址到域名(主機名字)B.域名到IP地址C.主機IP地址和路由器IP地址之間D.路由器IP地址之問

2.設有說明:charw;intx;f1oaty;doublez;則表達式w*x+z-y值的數(shù)據(jù)類型為()。

A.floatB.charC.intD.double

3.若有定義和語句:int**pp),*P,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);則輸出結果是()。A.20,10B.20,20C.10,20D.10,10

4.以下定義數(shù)組的語句錯誤的是()。

A.intnum[]={1,2,3,4,5,6};

B.intnum[][3]={{1,2},3,4,5,6};

C.intnum[2][4]={{1,2},{3,4},{5,6}};

D.intnum[][4]={1,2,3,4,5,6};

5.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

6.使用數(shù)組名作為函數(shù)的實參時,傳遞給形參的是()。

A.數(shù)組中第1個元素的值B.數(shù)組的首地址C.數(shù)組中全部元素的值D.數(shù)組元素的個數(shù)

7.有以下程序:#include<stdio.h>voidf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf(“%d,%d”,m,n);}voidf(int*p,int*q){p=p+1;*q=*q+1;}程序的運行結果是()。A.2,3B.1,3C.1,4D.1,2

8.若有定義:inta,b;,通過語句scanf("%d;%d",&a,&b);,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是A.A.35B.3,5C.3;5D.35

9.有說明語句“inta,b;”,如果輸入111222333,使得a的值為111,b的值為333,則以下正確的語句是()。A.scanf("%3d%*3d%3d",&a,&b);

B.scanf("%*3d%3d%3d",&a,&b);

C.scanf("%3d%3d%*3d",&a,&b);

D.scanf("%3d%*2d%3d",&a,&b);

10.下面程序中算法的時間復雜度是()A.O(n)B.O(n^2)C.O(logn)D.O(n*logn)

11.若有定義:floatx=1.5;inta=1.b=3.c=2;則正確的switch語句是()。A.

B.

C.

D.

12.以下敘述中正確的是()。

A.C語言比其他語言高級

B.C語言可以不用編譯就被計算機識別并執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式

D.C語言出現(xiàn)最晚,具有其他語言的一切優(yōu)點

13.如果最常用的操作是取第i個結點及其前驅,則采用()存儲方式最節(jié)省時間。A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.順序表

14.

15.以下敘述中正確的是()

A.C程序由函數(shù)和過程組成B.C程序由主函數(shù)組成C.C程序由函數(shù)組成D.C程序中,主函數(shù)必須放在其他函數(shù)之前

16.以下說法錯誤的是:()

A.全局變量就是在函數(shù)外定義的變量,因此又叫做外部變量

B.一個函數(shù)中既可以使用本函數(shù)中的局部變量,也可以使用全局變量

C.局部變量的定義和全局變量的定義的含義不同

D.如果在同一個源文件中,全局變量和局部變量同名,則在局部變量的作用范圍內,全局變量通常不起作用

17.有以下程序:#include<stdio.h>inta=1,b=2:voidfunl(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){funl(5,6);fun2();printf("%d%d\n",a,b);}程序運行后的輸出結果是()。A.1256B.5634C.5612D.3456

18.下面屬于黑盒測試方法的是()。

A.邊界值分析B.路徑覆蓋C.語句覆蓋D.邏輯覆蓋

19.下列關于棧的敘述中,正確的是()。

A.棧底元素一定是最后入棧的元素B.棧操作遵循先進后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對

20.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的運行結果是()。

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

二、2.填空題(20題)21.在關系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。

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

23.下列程序的運行結果是______。

#include<stdio.h>

main()

{inta=10,b=3;

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

printf("%d,",(a-b,a+b));

printf("%d\n",a-b?a-b:a+b);

}

24.以下程序的輸出結果是______。

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

25.下列程序的運行結果是______。

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0‖x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

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

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA"m,"BB","CC:,"DD"};

printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);

}

27.算法執(zhí)行過程中所需要的基本運算次數(shù)稱為算法的______。

28.以下程序運行后的輸出結果是【】。

#include<stdio.h>

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

29.下列程序的輸出結果是______。

main()

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

if(a<B){t=a;a=b;b=t;}

if(a<C){t=a;a=c;c=t;}

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

}

30.若有如下程序:

main()

{ints[]={1,2,3,4,5,6,},*p=s;

printf{"%d,%d\n",*(p+3),*(p+5)}}

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

31.下列的for語句的循環(huán)次數(shù)為______。

for(x=1,y=0;(y!=19)&&(x<7);x++);

32.在______個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。

33.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體"項目主管"與實體"項目"的聯(lián)系屬于【】的聯(lián)系。

34.源程序文檔化要求程序應加注釋。注釋一般分為序言性注釋和【】注釋。

35.閱讀下列程序,則程序的輸出結果為______。

#include"stdio.h"

struetty

{intdata;

charc;};

main()

{streettya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

36.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第。列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中的其他數(shù)據(jù)不變。

#defineN4

voidrotate(inta[][N],intb[][N])

{int,i,j;

for(i=0;i<N;i++)

{b[i][N-1]=【】;

【】=a[N-1][i];

}

}

37.以下程序運行后的輸出結果是【】。

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

38.執(zhí)行下面程序段后,k的值是【】。

r=1;n=203;k=1

do{k*=n%10*r;n/=10;r++;}while(n);

39.現(xiàn)有兩個C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:

#include<stdio.h>

#include"myfun.c"

main()

{fun();printf("\n");}

myfun.c文件如下:

voidfun()

{chars[80],c;intn=0;

while((c=getchar())!=′\n′)s[n++]=c;

n--;

while(n>=0)printf("%c",s[n--]);

}

當編譯連接通過后,運行程序T18時,輸入Thank!,則輸出結果是【】。

40.設一棵完全二叉樹共有700個結點,則在該二叉樹中有【】個葉子結點。

三、1.選擇題(20題)41.兩次運行下列的程序,如果從鍵盤上分別輸入3和1,則輸出結果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}

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

42.有以下程序;charfun(charx,chary){if(x<y)returnx;returny;}main(){inta='9',b='8',c='7';printf("%c\n",fun(fun(a,B),fun(b,C)));}程序的執(zhí)行結果是

A.函數(shù)調用出錯B.8C.9D.7

43.若有以下說明和語句:structst{intn;char*ch;}structsta[3]={5,"abc"7,"def",9",ghk"),*p=a;則值為6的表達式是______。

A.p++->nB.p->n++C.(*p).n++D.#NAME?

44.以下合法的字符型常量是

A.′\x13′B.′\081′C.′65′D.\n

45.下列選項中不是字符常量的是()。

A.'\v'B.'\x2a'C.'a'D."\0"

46.下列關于棧的描述中錯誤的是()

A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針

47.執(zhí)行下面的程序后,a的值是()#defineSQR(X)X*Xmain(){inta=10,k=2,m=l;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}

A.10B.1C.9D.0

48.以下選項中可以作為C語言合法常旱的是

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

49.已知下列函數(shù)定義:fun(int*b,intc,intD){intk;for(k=0;k<c*d;k++){*b=c+d;b++;}}則調用此函數(shù)的正確寫法是(假設變量a的說明為inta[10])()。

A.fun(*a,6,14);

B.fim(&a,6,8);

C.fun(a,8,4);

D.fun((int)a,8,6);

50.下面程序段的運行結果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));

A.67B.0C.字符'C'的地址D.字符'C'

51.在面向對象的程序設計中,能表示類之間相似性質的機制是()。

A.繼承B.封裝C.分類D.動態(tài)連接

52.有以下程序voidf(intv,intw){intt;t=v;v=w;w=t}main(){intx=1,y=3,z=2;if(x>y)f(x,y);elseif(y>z)f(y,z);elsef(x,z);pfintf("%d,%d,%d\n",x,y,2);}執(zhí)行后輸出結果是

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

53.若有如下程序:intsub(intm){if(m==1||m==0)return2;elsereturn(sub(m-1)*sub(m-2));}main(){intn;scanf("%d",&n);printf("%d",sub(n));}如果從鍵盤輸入4<回車>,則程序運行后的輸出結果是()。

A.8B.16C.24D.32

54.有以下程序#include<stdio.h>main0{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結果是

A.741B.963C.852D.875421

55.有以下程序:voidfun(inta,intb,intc){a=456,b=567,c=678;}main(){intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}輸出結果是

A.30,20,10B.10,20,30C.456,567,678D.678,567,456

56.設以下變量均為int類型,表達式的值不為7的是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+1,x=y,x+1)

57.設有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

58.在宏定義#definePI3.14159中,用宏名PI代替一個()

A.單精度數(shù)B.雙精度數(shù)C.常量D.字符串

59.下列4個關于C語言的結論中錯誤的是()。

A.可以用do…while語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

B.可以用for語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

C.可以用while語句實現(xiàn)的循環(huán)一定可以用for語句實現(xiàn)

D.do…while語句與while語句的區(qū)別僅是關鍵字“while”出現(xiàn)的位置不同

60.以下程序段的輸出結果是______。char*p="abodefgh";p+=3;printf("%d\n",strlen(strcpy(p,"12345")));

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

四、選擇題(20題)61.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

62.以下選項中可用做C程序合法實數(shù)的是()。

A..leOB.3.0e0.2C.E9D.9.12E

63.已知大寫字母A的ASCIl碼的值是65,小寫字母a的ASCIl碼的值是97,以下不能將變量。中的大寫字母轉換為對應小寫字母的語句是()。

A.

B.

C.

D.

64.

65.設fun函數(shù)的定義形式為voidfun(charch,floatx){…}則下列對函數(shù)fun的調用語句中,正確的是()。

A.fun("abc",3.0);

B.t=fun(D.16.5);

C.fun(65,2.8);

D.fun(32,32);

66.下列敘述中正確的是()。A.循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結構

B.在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況

C.在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況

D.循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定

67.以下()不是標準的HTTP消息頭字段。

A.StatusB.HostC.AcceptD.Referer

68.

69.

70.在位運算中,操作數(shù)每左移兩位,其結果相當于()。

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4

71.數(shù)據(jù)庫系統(tǒng)的三級模式不包括()。

A.概念模式B.內模式C.外模式D.數(shù)據(jù)模式

72.

73.C語言中用于結構化程序設計的三種基本結構是A.順序結構、選擇結構、循環(huán)結構

B.if、switch、break

C.for、while、do-while

D.if、for、continue

74.在數(shù)據(jù)庫系統(tǒng)中,所謂數(shù)據(jù)獨立性是指()。

A.數(shù)據(jù)與程序獨立存放

B.不同的數(shù)據(jù)被存放在不同的文件中

C.不同的數(shù)據(jù)只能被對應的應用程序所使用

D.以上三種說法都不對

75.

76.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

77.有以下程序:

#include<stdio.h>

main()

{inta=0,b=0,c=0;

c=(a=a=5);(a=b,b+=4);

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

}

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

A.0,4,5B.4,4,5C.4,4,4D.0,0,0

78.

79.面向對象方法中,繼承是指()。

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

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的:個邊長(整型值),判斷能否構成三角形:若能構成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構成三角形則返回l;若不能,則返回0。

例如,輸入3個邊長為3,4,5,實際輸入時,數(shù)與數(shù)之間以Enter鍵分隔而不是逗號。

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

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

試題程序:

#include<stdio.h>

#include<math.h>

intproc(inta,intb,intc)

{

if(a+b>c&&b-c>a&&a+c>b)

{

if(a==b&&b==c)

//****found****

return1;

elseif(a==b||b==C||a==c)

return2;

//****found****

elsereturn3;

}

elsereturn0;

}

voidmain

{

inta,b,c,shape;

printf("\nInputa,b,c:");

scanf("%d%d%d",&a,&b,&c);

printf("\na=%d.b=%d,c=%d\n",a,b,c);

shape=proc(a,b.c):

printf("\n\nTheshape:%d\n",shape);

}

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

參考答案

1.B在Internet中,把域名翻譯為IP地址的軟件稱為域名系統(tǒng)DNS,運行域名系統(tǒng)的主機稱為域名服務器。域名服務器的主要功能是實現(xiàn)入網(wǎng)主機名字和IP地址的轉換。

2.D

3.D本題考查指針變量的賦值。**PP是定義一個指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內存空間的內容,即b的值。

4.B二維數(shù)組的定義有3種形式,第一種是分行為兩位數(shù)組賦值,即intnum[]={{12},{3,4},{5,6}},第二種是按照數(shù)組排列順序進行賦值,即intnum[]={1,2,3,4,5,6},第三種為對部分元素賦初值,即intnum[]={{1,2}{},{3,4},{5,6}},所以錯誤的為B。

5.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。

6.B用數(shù)組名作為函數(shù)參數(shù)時,數(shù)組名退化為指針,傳遞給形參的是數(shù)組的首地址。故本題答案為B選項。

7.B在f(int*p,int*q)函數(shù)中,執(zhí)行“p=p+1;”是將p所對應的地址加1,而“*q=*q+1;”是將q所指向n的地址所對應的值加1,所以m的值沒有變,而n的值則變?yōu)?。故本題答案為B選項。

8.C解析:在C語言中scanf函數(shù)中輸入數(shù)據(jù)時要嚴格按照所規(guī)定的樣式輸入。

9.A根據(jù)題意,要使a的值為111,b的值為333,必須在讀入時指定a的讀入寬度為3,b的讀入寬度為3,且a和b的控制字符之間必須額外增加%*控制符,用于跳過中間的3位輸入數(shù)字,選項A正確。本題答案為A選項。

10.C

11.AB)選項中switch(n[nx);語句中不應該有最后的分號。switch(expr1),中的exp1不能用浮點類型或Iong類型,也不能為一個字符串,所以C)錯誤。case后面常量表達式的類型必須與switch后面表達式的類型一致,所以D)錯誤。

12.C解析:計算機語言分為低級語言和高級語言,C語言屬于高級語言,但并非比其他語言高級,選項A)錯誤;除了機器語言外,其他各種語言都必須編譯成能被計算機識別的機器代碼才能執(zhí)行,選項B)錯誤;C語言出現(xiàn)于1972年至1973年,并不是出現(xiàn)最晚的語言,選項D)錯誤。

13.D

14.D

15.C

16.A

17.BFunl是輸出局部變量的值,fun2是把全局變量的值改成3和4,所以輸出的結果是5634。

18.A黑盒測試方法主要有等價類劃分、邊界值分析、因果圖、錯誤推測等。白盒測試的主要方法有邏輯驅動、路徑測試等,主要用于軟件驗證。

19.B棧是先進后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。

20.A本題中,fun函數(shù)第1次調用為fun(8,fun(5,6))。因為fun(5,6)的返回值為5,所以第2次調用為fun(8,5),即返回值為6。故本題答案為A選項。

21.關系或一個關系關系或一個關系解析:在關系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,而一個二維表就是一個關系。

22.軟件開發(fā)

23.11371,13,7解析:本題考查3個知識點:①余數(shù)的計算,題中的a=10,b=3,a%b=1;②(表達式1,表達式2)形式的結果為最后一個表達式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13;③條件運算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結果為7。

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

25.2424解析:本題考查函數(shù)的循環(huán)調用。p=x*func(x-1),當x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結果為4*3*2*1-24。

26.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結果應當為“DDBBCC”。

27.時間復雜度時間復雜度解析:算法在執(zhí)行過程中所執(zhí)行的基本運算的次數(shù),也就是執(zhí)行算法所需要的計算工作量,稱為算法的時間復雜度。

28.136136解析:程序中定義了一個遞歸調用函數(shù)fun。程序運行時,先把實參6傳給形參。if語句中6/2>0成立,執(zhí)行fun(x/2),即fun(3),同時輸出x的值6;再判斷if條件,3/2>0成立,再執(zhí)行fun(x/2),即fun(1),同時輸出x的值3;此時1/2>0不再成立,輸出1。而遞歸調用的輸出順序是相反的,故輸出結果為136。

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.464,6解析:指針p指向數(shù)組s的首地址。*(p+3)是取p后3位地址單元中的值即4,*(p+5)是取p后5位地址單元中的值即6。這里p+3或p+5并未改變p的值,p始終指向數(shù)組s的首地址。

31.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時循環(huán)6次。

32.3131解析:設隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。

33.一對多(或1∶N)一對多(或1∶N)解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關系,這種函數(shù)關系可以有3種,即一對一(1∶1)的聯(lián)系、一對多(1∶N)或多對一(N∶1)的聯(lián)系和多對多(N∶N)的聯(lián)系。

34.功能性功能性

35.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以被調用函數(shù)內不能改變調用函數(shù)中的數(shù)據(jù)。

36.a[0][i]b[i][0]a[0][i]b[i][0]解析:根據(jù)題意,第一處所在語句行的作用是把a數(shù)組中的第0行放到b數(shù)組的最后一列中,a數(shù)組的第0行用a[0][]來表示,所以第一處填a[0][i];第二所在語句行的作用是將a數(shù)組的最后一行放到b數(shù)組的第0列中,b數(shù)組的第0列用b[][0]來表示,所以,第二處應填b[i][0]。

37.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內存中分配的存儲單元的首地址。指針的定義:

類型說明符*指針變量名;

38.00解析:本題考查的是do厀hile循環(huán)。第一次執(zhí)行循環(huán)體,因為k=1,r=1,n=20,所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4,所以k的值為0。

39.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。

40.350350解析:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結點。因此,設一棵完全二叉樹具有n個結點,若n為偶數(shù),則在該二叉樹中有n/2個葉子結點以及n/2-1個度為2的結點,還有1個是度為1的結點:若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結點以及[n/2]個度為2的結點,沒有度為1的結點。本題中,完全二叉樹共有700個結點,700是偶數(shù),所以,在該二叉樹中有350個葉子結點以及349個度為2的結點,還有1個是度為1的結點。所以,本題的正確答案為350。

41.A解析:本題考查ifelse語句。首先scanf函數(shù)通過鍵盤讀入x的值。當x=3時,第一個if語句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出x的值4。當x=1時,第一個if語句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語句,先輸出x的值2,再將x的值減1。

42.D解析:本題考核的知識點是函數(shù)的返回值以及返回值作為函數(shù)的參數(shù)。經(jīng)過分析得出函數(shù)fun()的功能是比較形參x和形參y的大小,返回較小的一個.函數(shù)fun()有兩個參數(shù).本題中,首先定義了三個整型變量a、b和c,分別賦初值為9、8和7.然后執(zhí)行函數(shù)fun(fun(a,b),fun(b,c))。在該函數(shù)中分別將fun(a,b)和fun(b,C)函數(shù)的返回值作為該函數(shù)的兩個實參。在函數(shù)fun(a,b)中,由于a>b,故返回較小值b即8,在函數(shù)fun(b,C)中,由于b<c,故返回較小值c即為7,因此調用函數(shù)fun(fun(a,b),fun(b,C))相當于執(zhí)行函數(shù)fun(8,7),返回較小值即7。所以,4個選項中選項D符合題意。

43.D解析:根據(jù)結構變量的存儲特點,p+l意味著增加地址值為結構體數(shù)組a的—個元素所占的字節(jié)數(shù),即P++使p由a[0]指向a[1]起始地址。本題++p->n得到p指向的結構體變量中成員n的值使之加1。因為p指向數(shù)組a起始地址,p->n的值為5,再執(zhí)行自加l運行,結果為6。

44.A解析:C語言的字符常量是用單引號(即撇號)括起來的一個字符。除此之外,在C語言中還允許用一個'\\'開頭的字符序列來表示字符常量。其中,形式'\\ddd'表示1到3位8進制數(shù)所代表的字符;形式'\\xhh'表示1到2位16進制數(shù)所代表的字符。在本題中,\'\\x13\'表示回車符,是一個字符常量;\'\\081\'用8進制數(shù)所代表的字符,但形式不正確,因為8進制數(shù)所代表的字符中不會出現(xiàn)數(shù)字'8';\'65\'不是一個字符,而是一個十進制數(shù)字;'\\n'是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。

45.Dc語言規(guī)定,一個字符常量代表ASCII碼字符集里的一個字符,在群序中用單引號括起來,以便區(qū)分。'\v'表示的是豎向跳格:'kx2a'表示的是兩位十六迸制數(shù);'a'表示的是字符a對應的ASCII碼值。"\0"用雙引號故不正確。

46.B解析:在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照先進后出(FILO,F(xiàn)irstInLastOut)或后進先出(LIFO,LastInFirstOut)的原則組織數(shù)據(jù)的,因此,棧也被稱為先進后出表或后進先出表。由此可以看出,棧具有記憶作用。答案B錯在帶鏈的棧的結點存儲順序與其邏輯順序是可以不一致的。

47.B

48.A解析:本題考查的是C語言中整型常量與實型常量的部分表示方法。選項A用的是整型常量的十進制表示法,是正確的。以0或-0開頭的整數(shù)是八進制數(shù)表示法,八進制數(shù)的原則是“逢八進一”它只可能包含0~7這8個符號,故選項B是錯誤的。選項C和D椰是實型常量的指數(shù)表示法,其規(guī)則是用字母。(或E)將一個實數(shù)的小數(shù)部分和指數(shù)部分分隔開。字母e(或E)之前是小數(shù)部分,之后是指數(shù)部分,這兩部分都不能省略,且指數(shù)部分必須為整數(shù)。故選項C和D都不正確。所以,4個選項中選項A符合題意。

49.C

50.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應該是該字符串中的首地址,p+3指向的是字符串結束標志'\\0'的地址,因而。(p+3)的值為0。

51.A解析:在面向對象的程序設計中,繼承是表示類之間相似性的機制。

52.C解析:C語言規(guī)定else總是和離它最近的if語句配對。分析可以知道,函數(shù)f()作用是讓形參v和形參w的值交換。在主函數(shù)中首先定義了三個變量x、y和z。然后再執(zhí)行下面的if-else語句。由程序可以看出第一個else和第一個if搭配,第二個else和第二個if搭配。由于調用函數(shù)時是進行值傳遞的。即將實參x,y,z傳給形參v和w,以后形參和實參再無聯(lián)系,故通過if語句調用f()函數(shù)后,x、y和x的值并沒有改變。故最后輸出的x、y和z的值為1、3和2。

53.D解析:本題的sub()函數(shù)是一個遞歸函數(shù),當參數(shù)m為1或0時返回2,否則返回sub(m-1)*sub(m-2)。所以sub(4)遞推下來就是sub(4)=sub(3)*sub(2)=sub(2)*sub(1)*sub(1)*sub(0)=sub(1)*sub(0)*2*2*2=25(上標)=32。所以正確答案是D。

54.C解析:本題考查變量的自加“++”和自減“--”問題。當y的值為9、6或3時,if語句的條件成立,執(zhí)行輸出語句,輸出表達式--y的值,y的自減要先于輸出語句執(zhí)行,故輸出結果為852。

55.B解析:本題考查函數(shù)中變量的作用范圍,在主函數(shù)中給變量x,y,z賦值,然后將其作為實參傳遞給了函數(shù)fun(),雖然在函數(shù)fun()中改變了這3個變量的值,但只是同名的局部變量,不影響函數(shù)中變量的值,所以在調用函數(shù)fun()結束后,主函數(shù)3個變量的值未改變,即形參值的改變不能影響實參的值。注意:順序程序結構的執(zhí)行過程。

56.C解析:本題考查逗號表達式的用法。C語言中逗號“,”也是一種運算符,稱為逗號運算符。其功能是把兩個表達式連接起來組成一個表達式,稱為逗號表達式。逗號表達式的一般形式為:表達式1,表達式2,表達式3,……,表達式n,其值為表達式n的值。

57.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應用。在使用一個指針變量之前,先要用聲明語句對其進行定義,在定義了一個指針變量之后,系統(tǒng)就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。

58.D解析:程序中用#define定義后,PI代表一串字符。

59.D解析:本題考查幾個循環(huán)語句的關系。①do…while語句、while語句、for語句所實現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次。

60.C解析:本題主要考查strcpy()函數(shù),char*strcpy(char*s1,char*s2)是把指針s2指向的串復制到指針s1指向的存儲空間。

61.C數(shù)組的下標是從0開始的,A中越界,行下標和列下標都不能越界;B中,雖然是個地址,但是也同樣越界了;選項C中表示的是第一個的首地址;選項D表示的為其元素的值,并不是地址。

62.AC語言

溫馨提示

  • 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

提交評論