2021-2022年遼寧省撫順市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第1頁
2021-2022年遼寧省撫順市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第2頁
2021-2022年遼寧省撫順市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第3頁
2021-2022年遼寧省撫順市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第4頁
2021-2022年遼寧省撫順市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年遼寧省撫順市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

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

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

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

main()

{charst[20]="hell0\O\t\\\”;

printf("%d%d\n",strlen(st),sizeof(st));

}

A.99

B.520

C.1320

D.2020

3.以下關(guān)于順序存儲結(jié)構(gòu)的敘述中,()是不正確的。

A.存儲密度大

B.邏輯上相鄰的結(jié)點(diǎn)物理上不必鄰接

C.可以通過計(jì)算機(jī)直接確定第i個結(jié)點(diǎn)的存儲地址

D.插入、刪除運(yùn)算操作不方便

4.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。

A.運(yùn)行后報(bào)錯B.66C.611D.510

5.

6.在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠()。

A.對象的繼承B.對象的多態(tài)C.對象的封裝D.對象的分類

7.設(shè)x和y均為int型變量,且x=10,y=3,則以下語句的輸出結(jié)果是()printf("%d,%d\n",x--,--y);

A.10,3B.9,3C.9,2D.10,2

8.有以下程序:#include<stdio.h>main(){char*s="[2]34";intk=0,a=0;whil(s[k+1]!=\0){k++;if(k%2=o){a=a+(s[k]-0+1);continue;}a=a+(s[k]-0);printf("k=%da=%d\n",k,a);}程序運(yùn)行后的輸出結(jié)果是()。A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=15

9.在下面棧的基本運(yùn)算中,不是加工型運(yùn)算的是______。

A.初始化B.進(jìn)棧C.退棧D.判???/p>

10.軟件詳細(xì)設(shè)計(jì)的主要任務(wù)是確定每個模塊的()。

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程

11.有以下程序:intfun(intn){if(n==1)return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%if",&x);x=fun(x);printf("%d\n",x);}執(zhí)行程序時,給變量X輸入10,程序的輸出結(jié)果是()。A.55B.54C.65D.45

12.以下選項(xiàng)中合法的C語言常量是()。

A.2.0KbB.”C++’C.”\2.0D.1.01

13.有以下程序main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是______。A.輸出字符a的ASCⅡ碼B.輸出字符c的ASCⅡ碼C.輸出字符cD.程序出錯

14.

15.以下符號中不能作為標(biāo)識符的是()。A.256B.voidC.vanfD.4Struct

16.

17.對表進(jìn)行水平方向和垂直方向的分割,分別對應(yīng)的關(guān)系運(yùn)算是()

A.選擇和投影B.投影和選擇C.選擇和聯(lián)接D.投影和聯(lián)接

18.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序的運(yùn)行結(jié)果是()。

A.55B.50C.45D.60

19.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。

A.334HB.30DHC.352HD.31AH

20.若執(zhí)行下述程序時,若從鍵盤輸入6和8,結(jié)果為()。main(){inta,b,s;scanf("%d%dt",&a,&B);s=a:if(s=B)s*=s;printf("%d",s);}

A.36B.64C.48D.以上都不對

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

main()

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

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

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

}

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

10ngfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

23.執(zhí)行以下程序后sum的值是【】。

main()

{

inti,sum;

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

sum+=i;

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

}

24.以下程序運(yùn)行后輸入3,abcde<回車>,則輸出結(jié)果是【】。

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(S);

for(i=1;i<=n;i++)move(s,z);

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

}

25.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。

26.表達(dá)式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

27.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。

28.下面函數(shù)要求計(jì)算兩個整數(shù)x,y之和,并通過形參返回該值,請?zhí)羁铡?/p>

add(intx,inty,【】z)

{【】=x+y;}

29.下列循環(huán)的循環(huán)次數(shù)是______。

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

30.數(shù)據(jù)庫系統(tǒng)在三級模式之間提供了兩層映像,這兩層映像是外模式/模式映像和【】。

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

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:case2:return1;

}

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

}

main()

{longk;

k=fib(5);

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

}

32.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實(shí)體完整性、______和自定義完整性。

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

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

34.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序運(yùn)行時,如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。

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

36.設(shè)有以下程序,為使之正確運(yùn)行,請?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

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

#include<stdio,h>

main()

charc1,c2;

for(el='0',c2='9';e1<c2;c1++,c2--)printf("%c%c",c1,c2);

printf("\n");

}

38.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達(dá)式為:______。

39.軟件設(shè)計(jì)模塊化的目的是______。

40.下列程序的運(yùn)行結(jié)果為【】。

enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};

main()

{enumweekdayworkday,weekend;

inti,a[8];

workday=tue;

weekend=sun;

printf("\ntueday=%dsunday=%d;",workday,week_end);

workday=sun+tue;

week_end=(enumweekday)3;

printf("tueday=%dsunday=%d;",workday,weekend);

a[sun]=sun;

a[mon]=mon;

a[tue]=rue;

a[wed]=wed;

a[thu]=thu;

a[fri]=fri;

a[sat]=sat;

for(i=l;i<=7;i++)printf("%d",a[i]);

}

三、1.選擇題(20題)41.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}

A.SOB.SPC.SPOPKD.SHOB

42.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為

A.21B.78C.23D.28

43.請選出可用作C語言用戶標(biāo)識符的是()。

A.void,define,WORD

B.a3_b3,_123,IF

C.FOR,-abc,Case

D.2a,Do,$izeof

44.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

45.在下列設(shè)備中,屬于輸出設(shè)備的是()

A.鍵盤B.鼠標(biāo)C.顯示器D.軟盤

46.已知函數(shù)的原形如下,其中結(jié)構(gòu)體a為已經(jīng)定義過的結(jié)構(gòu),且有下列變量定義structa*f(intt1,int*t2,strcutat3,structa*t4)structap,*p1;inti;則正確的函數(shù)調(diào)用語句為

A.&p=f(10,&i,p,p1);

B.p1=f(i++,(int*)p1,p,&p);

C.p=f(i+1,&(i+2),*p,p);

D.f(i+1,&i,p,p);

47.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序B.選擇排序C.快速排序D.歸并排序

48.下列所述中,是軟件調(diào)試技術(shù)的是()。

A.錯誤推斷B.集成測試C.回溯法D.邊界值分析

49.下面函數(shù)的功能是()intfunl(char*X){char*y=X;whar(*y++);return(y-x-1);}

A.求字符串的長度B.比較兩個字符串的大小C.將字符串x復(fù)制到字符串y中D.將字符串x連接到字符串y后面

50.下列程序的輸出結(jié)果是()。main(){chara[7]"aO\OaO\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}

A.22B.76C.72D.62

51.以下敘述中錯誤的是()

A.二進(jìn)制文件打開后可以先讀文件的末尾,而順序文件不可以

B.在程序結(jié)束時,應(yīng)當(dāng)用fclose函數(shù)關(guān)閉已打開的文件

C.在利用fread函數(shù)從二進(jìn)制文件中讀數(shù)據(jù)時,可以用數(shù)組名給數(shù)組中所有元素讀入數(shù)據(jù)

D.不可以用FILE定義指向二進(jìn)制文件的文件指針

52.下列表達(dá)式中,可以正確表示x≤0或x≥1的關(guān)系是()。

A.(x>=1)‖(x<=0)

B.x>1‖x=0

C.x>=1ORx<=0

D.x>=1&&x<=0

53.下面程序段的運(yùn)行結(jié)果是()。char*p="%d,a=%d,b=%d\n";inta=111,b=10,c;c=a%b;p+=3;printf(p,c,a,b);

A.1,a=111,b=10B.a=1,b=111C.a=111,b=10D.以上結(jié)果都不對

54.已知一個有序線性表為(13,18,24,35,47,50,62,83,90,115,134),當(dāng)用二分法查找值為90的元素時,查找成功的比較次數(shù)為()。

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

55.以下敘述中錯誤的是A.gets函數(shù)用于從終端讀入字符串

B.getchar函數(shù)用于從磁盤文件讀入字符

C.fputs函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件

56.以下程序的輸出結(jié)果是()main(){inta=5,b=4,c=6,d;printf(”%d\n",d=a>b?(a>c?a:c):(b));}

A.5B.4C.6D.不確定

57.下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚

58.設(shè)有如下說明typedefstructST{longa;intb;charc[2];}NEW;則下面敘述中正確的是______。A.以上的說明形式非法B.ST是一個結(jié)構(gòu)體類型C.NEW是一個結(jié)構(gòu)體類型D.NEW是一個結(jié)構(gòu)體變量

59.有如下程序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

60.下列敘述中,不屬于設(shè)計(jì)準(zhǔn)則的是()。

A.提高模塊獨(dú)立性B.使模塊的作用域在該模塊的控制域中C.設(shè)計(jì)成多入口、多出口模塊D.設(shè)計(jì)功能可預(yù)測的模塊

四、選擇題(20題)61.

62.

63.若有定義:char*st=”howareyou”;,下列程序段中正確的是()。

A.

B.

C.

D.

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

A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"

65.計(jì)算機(jī)能直接執(zhí)行的程序是()。

A.源程序B.目標(biāo)程序C.匯編程序D.可執(zhí)行程序

66.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。

A.aChedB.deCabC.deabeD.Cedba

67.

68.(38)索引屬于()

A.模式

B.內(nèi)模式

C.外模式

D.概念模式

69.

70.設(shè)有如圖所示二叉樹,對此二叉樹后序遍歷的結(jié)果為()。

A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY

71.有以下程序:

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

A.5B.24C.32D.40

72.

73.執(zhí)行下列程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/S(k+m):printf("%d",a);}A.1B.4C.9D.0

74.

75.合法的數(shù)組定義是()。

A.

B.

C.

D.

76.數(shù)據(jù)庫管理系統(tǒng)是()。

A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)

77.

78.

79.設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp),的返回值為()。

A.0B.\0C.非0值D.NULL

80.有以下程序:

#include<stdio.h>

main()

{inti,j,m=1;

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

{for(j=3;j>0;j--)

{if(i*j>3)break;

m*=i+j;

}

}

printf("m=%d\n",m);

}

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

A.m=6

B.m=2

C.m=4

D.m=3

五、程序改錯題(1題)81.下列給定程序、中,函數(shù)proc()的功能是:先將字符串s中的字符按順序存放到t中,然后把s中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時,則t中的字符串應(yīng)為WXYZWXYZ。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請編寫fun函數(shù),其功能是:計(jì)算并輸出3~m所有素?cái)?shù)的平方根之和。

例如,若主函數(shù)從鍵盤給m輸入50后,則輸出為s=68.665791。

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

注意:m的值要大于2但不大于100。部分源程序給出如下。

試題程序:

#include<math.h>

#include<stdio.h>

doublefun(intm)

{}

voidmain

{

intm;

doubles;

FILE*out:

printf("\n\nInputm:");

scanf("%d",&m);

s=fun(m);

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

ut=fopen("outfile.dat","w");

for(m=0;m<10;m++)

fprintf(out,"%f\n",fun(m+80));

felose(out);

}

參考答案

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

2.B\n從題目中可知,\O、\t、\\分別為一個字符,而sizeof是求字節(jié)個數(shù)的函數(shù),其中包括\O占的字節(jié),strlen函數(shù)是求數(shù)組長度的函數(shù);其以\0結(jié)束,因此strlen的值為5,sizeof的值為20。

\n

3.B

4.A解析:本題考核的知識點(diǎn)是通過指針引用數(shù)組的元素的方法.本題中首先定義了一個一維數(shù)組a并初始化,由于定義該數(shù)組的時候省略了長度,因此該數(shù)組的長度為初始化時候賦初值的個數(shù)即為12。數(shù)組名a代表數(shù)組的首地址,所以*p=a+5語句使得p指向數(shù)組的第6個元素,而在程序中定義了一個指針q并讓它指向空,實(shí)際上程序并沒有在內(nèi)存中為指針q開辟存儲空間,這樣給q賦值不允許的,故該程序運(yùn)行后報(bào)錯。所以,4個選項(xiàng)中選項(xiàng)A符合題意。

5.B

6.C解析:通常認(rèn)為,面向?qū)ο蠓椒ň哂蟹庋b性、繼承性、多態(tài)性幾大特點(diǎn)。就是這幾大特點(diǎn),為軟件開發(fā)提供了一種新的方法學(xué)。

封裝性:所謂封裝就是將相關(guān)的信息、操作與處理融合在一個內(nèi)含的部件中(對象中)。簡單地說,封裝就是隱藏信息。這是面向?qū)ο蠓椒ǖ闹行模彩敲嫦驅(qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。

繼承性:子類具有派生它的類的全部屬性(數(shù)據(jù))和方法,而根據(jù)某一類建立的對象也都具有該類的全部,這就是繼承性。繼承性自動在類與子類間共享功能與數(shù)據(jù),當(dāng)某個類作了某項(xiàng)修改,其子類會自動改變,子類會繼承其父類所有特性與行為模式。繼承有利于提高軟件開發(fā)效率,容易達(dá)到一致性。

多態(tài)性:多態(tài)性就是多種形式。不同的對象在接收到相同的消息時,采用不同的動作。例如,一個應(yīng)用程序包括許多對象,這些對象也許具有同一類型的工作,但是卻以不同的做法來實(shí)現(xiàn)。不必為每個對象的過程取一過程名,造成復(fù)雜化,可以使過程名復(fù)用。同一類型的工作有相同的過程名,這種技術(shù)稱為多態(tài)性。

經(jīng)過上述分析可知,在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠對象的封裝。正確答案是選項(xiàng)C。

7.D

8.C輸出結(jié)果:k=1a=2\r\nk=2a=4\r\nk=3a=7\r\nk=4a=12

9.D

10.A解析:從軟件開發(fā)的工程化觀點(diǎn)來看,在使用程序設(shè)計(jì)語言編制程序以前,需要對所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計(jì)的任務(wù)就是要決定各個模塊的實(shí)現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項(xiàng)A。

11.A函數(shù)fun()通過遞歸調(diào)用實(shí)現(xiàn)的功能為n+(n-1)+…+1,故程序的輸出結(jié)果為55。

12.DC語言中,常量有整型常量、實(shí)型常量、字符常量和字符串常量等。整型常量和實(shí)型常量又稱為數(shù)值型常量。其中整型常量只能用數(shù)字表示,不帶小數(shù)點(diǎn)。實(shí)型常量必須用帶小數(shù)點(diǎn)的數(shù)表示,所以選項(xiàng)A錯誤,選項(xiàng)D正確;字符型常量是用單引號標(biāo)注的單個字符,字符串常量是用雙引號標(biāo)注的若干個字符,選項(xiàng)B、C錯誤。故本題答案為D選項(xiàng)。

13.D解析:此題中s是—個字符數(shù)組,而字符數(shù)紐是在編繹時為它分配內(nèi)存單元的,即此字符數(shù)組的地址在編譯時是確定的,所以對此地址變量并不能賦值,故語句“s+=2;”錯誤,故程序出錯。

14.D

15.B

16.B

17.A解析:從關(guān)系中找出滿足給定條件的那些元組稱為選擇,是從行的角度進(jìn)行的運(yùn)算,即水平方向抽取元組。從關(guān)系模式中挑選若干屬性組成新的關(guān)系稱為投影,是從列的角度進(jìn)行的運(yùn)算,相當(dāng)于對關(guān)系進(jìn)行垂直分解。所以,本題選擇A。

18.D靜態(tài)變量是始終存在的,當(dāng)函數(shù)變量退出后,靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時,以前的靜態(tài)變量值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s=45+15=60。故本題答案為D選項(xiàng)。

19.C解析:解答本題,首先要明白在對指針進(jìn)行加、減運(yùn)算的時候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。

20.B

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

22.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。

23.1515解析:程序的功能是求1、2、3、4、5的和即15。

24.cdeabcdeab解析:本題move()函數(shù)的作用,是將形參s仕所指地址的連續(xù)n位循環(huán)右移1位,即讓str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函數(shù)中用了一個for循環(huán)調(diào)用move()函數(shù),共循環(huán)3次,所以數(shù)組s被循環(huán)右移了3位,故最后輸出的值為cdeab。

25.floatfloat解析:在此表達(dá)式中x是float類型的變量,經(jīng)過開方所得到的結(jié)果仍是float類型,再和2.8進(jìn)行運(yùn)算時,應(yīng)該先將2.8轉(zhuǎn)換成float類型再運(yùn)算,最后結(jié)果仍是float型。

26.整型整型解析:上面的表達(dá)式中,通過強(qiáng)制類型轉(zhuǎn)換把最后參與運(yùn)算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。

27.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應(yīng)用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務(wù)。

28.int**zint*\r\n*z解析:函數(shù)希望通過形參z帶回結(jié)果,形參z必須是指針類型的。由于返回整型結(jié)果,所以第一處填int*;函數(shù)返回前必須先把結(jié)果通過形參z間接引用傳回,第二處應(yīng)填*z。

29.00解析:解答本題需要注意表達(dá)式“k=0”,它是賦值表達(dá)式而不是關(guān)系表達(dá)式,不論k為何值,表達(dá)式k=0總會使k為0,所以不能進(jìn)入循環(huán)。

30.模式/內(nèi)模式映像模式/內(nèi)模式映像解析:映像即一種對應(yīng)規(guī)則,指出映像雙方如何進(jìn)行轉(zhuǎn)換。數(shù)據(jù)庫系統(tǒng)在三級模式之間提供了兩層映像,這兩層映像是外模式/模式映像與模式/內(nèi)模式映像。

31.k=5k=5解析:由題可知fib(0)的值為0,fib(1)和fib(2)的值為1,因此,fib(3)=fib(2)+fib(1)=2;fib(4)=fib(3)+fib(2)=3;fib(5)=fib(4)+fib(3)=5。

32.參照完整性參照完整性

33.3232解析:while(表達(dá)式)的功能是:首先計(jì)算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計(jì)算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

34.BB解析:因?yàn)閏是字符類型變量,它只能接收一個字符,所以c=A,字符型變量在參與算術(shù)運(yùn)算的時候是用其相應(yīng)的ASCII碼參與運(yùn)算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。

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

36.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。

37.918273645918273645解析:程序通過for循環(huán)將字符'0'~'9'從前向后,同時從后向前依次輸出,所以輸出結(jié)果為:0918273645。

38.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。

39.降低復(fù)雜性降低復(fù)雜性

40.tueday=2sunday=7;tueday=9sunday=3;1234567

41.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串的第—個字符。在for循環(huán)中,i的初值為3,那么輸出的第—個字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。

42.A解析:通過地址來引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。

43.B解析:C語言規(guī)定用戶標(biāo)識符由字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線,可見選項(xiàng)C),D)是錯誤的;此外,C語言不允許用戶將關(guān)鍵字作為標(biāo)識符,而選項(xiàng)A)中的void是C語言的關(guān)鍵字。

44.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認(rèn),則默認(rèn)為int。函數(shù)中如果有“retum(表達(dá)式):”語句,表達(dá)式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實(shí)際情況是把表達(dá)式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。

45.C

46.B解析:本題目中函數(shù)f的返回值為結(jié)構(gòu)類型的指針,函數(shù)的四個形參分別為:t1為整型,t2為整型的指針,t3為structa類型,t4為structa類型的指針。在進(jìn)行函數(shù)調(diào)用的時候,函數(shù)的實(shí)參必須要與形參說明相對應(yīng),函數(shù)的返回值也要賦給相應(yīng)類型的變量。選項(xiàng)A)函數(shù)的返回值不能賦給一個常量;選項(xiàng)C)&(i+2)沒有什么意義;選項(xiàng)D)返回值沒有傳遞給任何變量,向函數(shù)傳遞的應(yīng)該是structa類型的指針,可是傳的卻是變量。

47.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟?dú)立的兩部

分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分記錄繼

續(xù)進(jìn)行排序,以達(dá)到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依

次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整

個線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對剩

下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個或兩個以上的有序表組合

成一個新的有序表。

注意:各種排序方法實(shí)現(xiàn)過程及實(shí)現(xiàn)機(jī)制。

48.C解析:軟件調(diào)試技術(shù)包括強(qiáng)行排錯法、回溯法和原因排除法。邊界值分析、錯誤推斷都是黑盒測試的方法。

49.A

50.C解析:函數(shù)sizeof(a)的功能:求出字符串a(chǎn)中的字符占用存儲空間的大小,由于字符數(shù)組a有長度為7,所以i=7;函數(shù)strlen(a)的功能:求出字符串a(chǎn)的長度。而每個字符串都以'\\0'為字符串的結(jié)束標(biāo)記,所以j的值等于2。

51.D解析:順序文件只能從頭讀寫,二進(jìn)制文件可以隨機(jī)讀寫,選項(xiàng)A正確:文件在使用后應(yīng)關(guān)閉,當(dāng)程序結(jié)束時,應(yīng)當(dāng)把打開的文件關(guān)閉,選項(xiàng)B正確:用fread()函數(shù)可以一次性地讀取同類型的很多數(shù)據(jù),選項(xiàng)C正確;在C語言中指向各種文件的文件指針都是通過FILE來定義的,故選項(xiàng)D是錯誤的。所以4個選項(xiàng)中選D

52.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達(dá)式是或的關(guān)系,所以在寫成C語言表達(dá)式應(yīng)是邏輯或的關(guān)系,邏輯或運(yùn)算符是“‖”。

53.B解析:題中字符指針p指向了字符串“%d,a=%d,b=%d\\n”,c=a%b=111%10=1,p+=3使指針p向后移動了3個字符的位置。printf(p,c,a,b)相當(dāng)于printf(“a=%d,b=%d\\n”,c,a,b);,格式控制串指明輸出兩個數(shù)據(jù),輸出項(xiàng)有3項(xiàng),則最后一項(xiàng)不輸出,所以答案為B)。注意:格式輸出函數(shù)scanf的使用。

54.BB?!窘馕觥扛鶕?jù)二分法查找法需要兩次:(1)首先將90與表中間的元素50進(jìn)行比較,由于90大于50,所以性表的后半部分查找。(2)第二次比較的元素是后半部分的中間元素,即90,這時兩者相等,即查找成功。

55.B其中B選項(xiàng)的getchar函數(shù)用于從終端讀入字符。故本題答案為B選項(xiàng)。

56.C

57.D解析:編程風(fēng)格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。更直接地說,風(fēng)格就是意味著要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當(dāng)?shù)臉?biāo)識符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個說明語句的說明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運(yùn)行效率,但goto語句的使用會破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用goto語句。因此,本題的正確答案是D。

58.C解析:將題目中的定義語句去掉前面的typedef和后面的NEW(分號保留),就是一條完整的結(jié)構(gòu)體定義語句,其中struct是說明符,ST是結(jié)構(gòu)體名,大括號里面的是結(jié)構(gòu)體成員的定義。此時要聲明該結(jié)構(gòu)體變量時需要使用struct加結(jié)構(gòu)體名一起來聲明,struetST一起構(gòu)成一個結(jié)構(gòu)體類型,就好像字符類型char.若只去掉前面的typedef,就是一條結(jié)構(gòu)體定義同時聲明一個結(jié)構(gòu)體變量NEW的語句,因?yàn)镹EW的前面部分是structST的完整寫法??梢钥醋魇莝tructST.C語言允許用typedef說明一種新類型名,其語法格式為:

typedef類型名標(biāo)識符;

以后就可以用該標(biāo)識符來代替被說明的類型名了。因此,當(dāng)前面存在typedef時,該語句就變成了給stmctST的完整寫法定義一個新的名稱NEW。所以,此時的NEW是一個結(jié)構(gòu)體類型,它相當(dāng)于structST,即可以和char一樣單獨(dú)用來聲明該結(jié)構(gòu)體變量,而ST只是一個結(jié)構(gòu)體名,不能單獨(dú)用來聲明變量。所以,4個選項(xiàng)中C符合題意。

59.A解析:在這個switch語句中,因?yàn)閤的值為1,所以執(zhí)行case1:后面的a++,這樣a=1。但又由于其下沒有break語句,所以其后面的語句“a++;b++”也將被執(zhí)行,這樣一來,a=2,b=1。

60.Cc)【解析】大量軟件設(shè)計(jì)表明,以下的設(shè)計(jì)準(zhǔn)則是可以借鑒為設(shè)計(jì)

溫馨提示

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

評論

0/150

提交評論