2021年云南省保山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第1頁(yè)
2021年云南省保山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第2頁(yè)
2021年云南省保山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第3頁(yè)
2021年云南省保山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第4頁(yè)
2021年云南省保山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

一、單選題(20題)1.如有inta=11;則表達(dá)式(a/1)的值是()。

A.0B.3C.4D.11

2.在關(guān)系代數(shù)運(yùn)算中,有5種基本運(yùn)算,它們是()。

A.并(∪)、差(-)、交(∩)、除(÷)和笛卡兒積(×)

B.并(∪)、差(-)、交(∩)、投影(π)和選擇(σ)

C.并(∪)、交(∩)、投影(π)、選擇(σ)和笛卡兒積(×)

D.并(∪)、差(-)、投影(π)、選擇(σ)和笛卡兒積(×)

3.有以下程序函數(shù)fun只對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行操作.:

程序運(yùn)行后的輸出結(jié)果是()。A.A.7,2,5,4,3,6,1,

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

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

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

4.有下列程序:

intfun(intn)

{if(n==1))returnl;

else

return(n+fun(n-1)):

}

main()

{intx;

seanf("%d",&x);x=fun(x);printf("%d\n",x);

}

執(zhí)行程序時(shí),給變量x輸入l0,程序的輸出結(jié)果是()。

A.55

B.54

C.65

D.45

5.

6.有以下程序:voidfunl(char*p)程序執(zhí)行后的輸出結(jié)果是()A.ProhsbnB.PrphsbnC.ProgsbnD.Program

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

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

8.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結(jié)果是()。A.1B.30C.1-2D.死循環(huán)

9.下列程序段的時(shí)間復(fù)雜度為()。A.O(i*j)B.O(i+j+k)C.O(n3)D.O(n2)

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

A.只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句

B.eotinue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

C.在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同

D.從多層循環(huán)嵌套中退出時(shí),只能使用got0語(yǔ)句

11.如果要求一個(gè)線性表既能較快地查找,又能適應(yīng)動(dòng)態(tài)變化的要求,可以采用下列哪一種查找方法()

A.分塊B.順序C.折半D.哈希

12.如果對(duì)線性表的操作只有兩種,即刪除第一個(gè)元素,在最后一個(gè)元素的后面插入新元素,則最好使用()。

A.只有表頭指針沒(méi)有表尾指針的循環(huán)單鏈表B.只有表尾指針沒(méi)有表頭指針的循環(huán)單鏈表C.非循環(huán)雙鏈表D.循環(huán)雙鏈表

13.下列表達(dá)式中,可以正確表示的關(guān)系是()。

A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0

14.算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是_____。A.有窮性B.簡(jiǎn)潔性C.可行性D.確定性

15.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)該使用函數(shù)______。A.getc()B.gets()C.getchar()D.scanf()

16.設(shè)初始輸入序列為1,2,3,4,5,利用一個(gè)棧產(chǎn)生輸出序列,下列()序列是不可能通過(guò)棧產(chǎn)生的。

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

17.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不確定D.bcdef

18.有以下程序:#include<stdio.h>main(){inta=2,b=3,c=4;a*=16+(b++)-(++c);printf(“%d\n”,a);}程序運(yùn)行后的輸出結(jié)果是()。

A.15B.30C.28D.14

19.若已知一個(gè)棧的入棧序列是1,2,3,......,n,其輸出序列為p1,p2,p3,..,pn,若p1=n-1,則pi可能為()

A.nB.n-iC.n-i+1D.不確定

20.

二、2.填空題(20題)21.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#include<stdlib.h>

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

22.在Windows環(huán)境下,可以將窗口最小化為【】。

23.【】是一種信息隱蔽技術(shù),目的在于將對(duì)象的使用者和對(duì)象的設(shè)計(jì)者分開(kāi)。

24.在關(guān)系數(shù)據(jù)庫(kù)中,將數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為_(kāi)_____。

25.按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。

26.以下程序輸出的最后一個(gè)值是【】

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<=5;i++)printf("%d\n",ff(i));

}

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));

printf("\n");

}

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

longfun5(intn)

(longs;

if((n==l)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

29.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。

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

main()

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

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

31.如果輸入'1'、'2'、'3'、'4',則以下程序的運(yùn)行結(jié)果為【】。

#include<stdio.h>

main()

{charc;

inti,k;

k=0;

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

{while(1)

{c=getchar();

if(c>='0'&&c<='9')break;

}

k=k*10+c-'0';

}

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

}

32.設(shè)有如下宏定義

#defineMYSWAP(z,x,y)

{z=x;x=y;y=z;}

以下程序段通過(guò)宏調(diào)用實(shí)現(xiàn)變量a,b內(nèi)容交換,請(qǐng)?zhí)羁铡?/p>

floata=5,b=16,c;

MYSWAP(【】a,b);

33.下面程序的運(yùn)行結(jié)果是()。

#defineEXCH(a,B){intt;t=a;a=b;b=t;}

main()

{intx=1,y=2;

EXCH(x,y);

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

}

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

35.自動(dòng)批處理文件名必須是【】。

36.若有如下程序:

main()

{intx=4;y=3,Z=2,t;

t=x<y<z;

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

}

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

37.關(guān)系操作的特點(diǎn)是______操作。

38.以下fun函數(shù)的功能是:累加數(shù)組元素中的值,n為數(shù)組中元素的個(gè)數(shù),累加的和值放入x所指的存儲(chǔ)單元中。請(qǐng)?zhí)羁铡?/p>

fun(intb[],intn,int*x)

{intk,r=0;

for(k=0,k<n;k++)r=【】;

【】=r;

}

39.設(shè)有定義:intn,*k=&n;以下語(yǔ)句將利用指針變量k讀寫變量n中的內(nèi)容,請(qǐng)將語(yǔ)句補(bǔ)充完整。

scanf(“%d”,______);

printf(“%d\n”,______);

40.當(dāng)先后輸入1、3、4、12、23時(shí),屏幕上出現(xiàn)【】;再輸入12時(shí),則屏幕上出現(xiàn)【】。

#include<stdio.h>

#defineN5

main()

{inti,j,number,top,bott,min,loca,a[N],flag;

charc;

printf("Pleaseinput5numbers(a[i]>a[i-1])\n");

scanf("%d",&a[0]);

i=1;

while(i<N)

{scanf("%d",&a[i]);

if(a[i]>=a[i-1))i++;

}

printf("\n");

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

printf("\n");

flag=1;

while(flag)

{scanf("%d",&number);

loca=0;

top=0;

bott=N-1;

if((number<a[0])||(number>a[N-1]))loca=-1;

while((loca==0)&&(top<=bott))

{min=(bott+top)/2;

if(number==a[min])

{loca=min;

printf("%disthe%dthnumber\n",number,loca+1);

}

elseif(number<a[min])bott=min-1;

elsetop=min+1;

}

if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);

c=getchar();

if(c=='N'||c=='n')flag=0;

}

}

三、1.選擇題(20題)41.有以下程序:#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);ptintf("%s%s\n",p,q);}若從鍵盤輸入abcdef<回車>,則輸出的結(jié)果是()。

A.defdefB.abcdefC.abcdD.dd

42.請(qǐng)讀程序:#include<stdio.h>main(){inta=5,b=7,c=9;pintf("%d,%d,"a,b,C);printf("%d,%d",a,D);}上面程序的輸出結(jié)果是_______。

A.5,7,9,5,7B.5,7,5,7C.5,7,不定7,9D.5,7,5,7,不定

43.從順序存儲(chǔ)的循環(huán)隊(duì)列中刪除一個(gè)元素時(shí),是______。

A.先移動(dòng)隊(duì)首指針,后取出元素

B.先取出元素,后移動(dòng)隊(duì)首指針

C.先移動(dòng)隊(duì)尾指針,后取出元素

D.先取出元素,后移動(dòng)隊(duì)尾指針

44.設(shè)有定義語(yǔ)句:charc1=92,c2=92;,則以下表達(dá)式中值為零的是

A.c1c2

B.c1&c2C.~c2D.c1│c2

45.C語(yǔ)言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄

B.數(shù)據(jù)行

C.數(shù)據(jù)塊

D.字符(字節(jié))序列

46.算法一般都可以用______控制結(jié)構(gòu)組合而成。

A.循環(huán)、分支、遞歸B.順序、循環(huán)、嵌套C.循環(huán)、遞歸、選擇D.順序、選擇、循環(huán)

47.若有說(shuō)明:int*p1,*p2,n=8,m;下列均是正確賦值語(yǔ)句的選項(xiàng)是()。

A.p1=&n;p2=&p1;

B.p1=n;

C.p1=&n;*p2=p1;

D.p1=&n;p2=p1;

48.屬于C語(yǔ)言中合法的常量是______。

A.1.52eB.±100C.'x'D.xt'y'

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

A.構(gòu)成C程序的基本單位是函數(shù)

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

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

D.C函數(shù)定義的格式是K&R格式

50.設(shè)有如下的函數(shù)______。f(x)floatx;{printf("\n%d",x*x);}則函數(shù)類型

A.與參數(shù)x類型相同B.是voidC.是intD.無(wú)法確定

51.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價(jià)的賦值語(yǔ)句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

52.若某二叉樹的前序遍歷訪問(wèn)順序是abdgcefh,中序遍歷訪問(wèn)順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問(wèn)順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

53.以下程序運(yùn)行后的輸出結(jié)果是()main(){inta,b;a=50;b=90;printf("%d\n",(a,b))}

A.90B.5090C.50D.450

54.設(shè)x為int型變量,則執(zhí)行以下語(yǔ)句后,x的值為_(kāi)_____。x=10;x+x-=x-x;

A.10B.20C.40D.30

55.下列語(yǔ)句中,正確的是______。

A.staticcharstr[]="China";

B.staticcharstr[];str="China";

C.staticcharstr1[5],str2[]={"China"};strl=str2;

D.staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);

56.運(yùn)行下面程序時(shí),從鍵盤輸入字母H,則輸出結(jié)果是#include<stdio.h>main(){charch;ch=getchar();switch(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}

A.Hello!

B.Hello!GoodMoring!

C.Hello!Goodmorning!Bye_Bye!

D.Hello!Bye_Bye!

57.設(shè)有定義:longx=123456L;,則以下能夠正確輸出變量x值的語(yǔ)句是()

A.printf("x=%d\n",x);

B.printf("x=%ld\n",x);

C.printf("x=%8dL\n",x);

D.printf("x=%LD\n",x);

58.若fp是指向某文件的指針,且已讀到此文件的末尾,則函數(shù)feof(fp)的返回值是_______。

A.EOFB.0C.非零值D.NULL

59.有以下函數(shù)intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關(guān)于aaa函數(shù)的功能的敘述正確的是A.求字符串s的長(zhǎng)度B.比較兩個(gè)串的大小C.將串s復(fù)制到串tD.求字符串s所占字節(jié)數(shù)

60.使用白盒測(cè)試法時(shí),確定測(cè)試數(shù)據(jù)應(yīng)該根據(jù)()和指定的覆蓋標(biāo)準(zhǔn)。

A.程序的內(nèi)部邏輯B.程序的復(fù)雜結(jié)構(gòu)C.使用說(shuō)明書D.程序的功能

四、選擇題(20題)61.

62.有以下程序:

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

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

63.(49)按條件f對(duì)關(guān)系R進(jìn)行選擇,其關(guān)系代數(shù)表達(dá)式為()

A.R|X|R

B.R|X|Rf

C.бf(R)

D.∏f(R)

64.

65.在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。

A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫(kù)系統(tǒng)階段D.三個(gè)階段相同

66.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運(yùn)行后輸出結(jié)果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

67.

68.

69.有以下程序:

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

A.SunDan20042

B.SunDan20044

C.LiSiGuo20042

D.YangSan20041

A.提高耦合性、降低內(nèi)聚性有利于提高模塊的獨(dú)立性

B.降低耦合性、提高內(nèi)聚性有利于提高模塊的獨(dú)立性

C.耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度

D.內(nèi)聚性是指模塊間互相連接的緊密程度

70.

71.有以下程序:

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

A.0B.1C.4D.8

72.若有定義和語(yǔ)句:

int*(*pp),*P,a=20,b=10;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,**PP);

則輸出結(jié)果是()。A.A.20,10B.20,20C.10,20D.10,10

73.設(shè)fun函數(shù)的定義形式為

voidfun(charch,floatx){…}

則下列對(duì)函數(shù)fun的調(diào)用語(yǔ)句中,正確的是()。A.A.fun("abc",3.0);B.t=fun('D'.16.5);

C.fun('65',2.8);

D.fun(32,32);

74.設(shè)變量x和y均已正確定義并賦值,以下if語(yǔ)句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是

75.

76.有以下程序:

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

A.Beijing!

B.toBeijing]

C.WelcomeyoutoBeijingI

D.youtoBeijingI

77.

78.應(yīng)用數(shù)據(jù)庫(kù)的主要目的是A.A.解決數(shù)據(jù)保密問(wèn)題

B.解決數(shù)據(jù)完整性問(wèn)題

C.解決數(shù)據(jù)共享問(wèn)題

D.解決數(shù)據(jù)量大的問(wèn)題

79.以下敘述正確的是()。A.C語(yǔ)言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))

B.C語(yǔ)言程序是由過(guò)程和函數(shù)組成的

C.c語(yǔ)言函數(shù)不可以單獨(dú)編譯

D.c語(yǔ)言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在

80.若有定義語(yǔ)句:doublex,y,*px,+py;,執(zhí)行Tpx=&x;py=&y之后,正確的輸入語(yǔ)句是()。

五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:將P所指字符串中的所有字符復(fù)制到b中,要求每復(fù)制三個(gè)字符之后插入一個(gè)空格。

例如,若給a輸入字符串:ABCDEFGKHHK,調(diào)用函數(shù)后,字符數(shù)組b中的內(nèi)容為:ABCDEFGHIJK。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是判斷字符串是否為回文,若是,則函數(shù)返回1,在主函數(shù)中輸出“YES”,否則返回0,在主函數(shù)中輸出“NO”?;匚淖址侵疙樧x和倒讀都一樣的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件prog1.c中。第3部分無(wú)紙化考武題庠請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:1#include2#defineN803intfun(char*str)4{56}7main()8{9chars[n];10FILE*out;11char*test[]={"1234321","123421","123321","abcdCBA"};12inti;13printf("Enterastring:");14gets(s);15printf("\n\n");16puts(s);17if(fun(s))18printf("YES\n");19else20printf("NO\n");21/******************/22out=fopen("out.dat","w");23for(i=0;i<4/i++)24if(fun(test[i]))25fprintf(out,"YES\n");26else27fprintf(out,"NO\n");28fclose(out);29/******************/30}

參考答案

1.D

2.D解析:關(guān)系代數(shù)運(yùn)算的基本運(yùn)算符有4類:集合運(yùn)算符、專門的關(guān)系運(yùn)算符、算術(shù)運(yùn)算符和邏輯運(yùn)算符。并、差、笛卡兒積、投影、選擇是5種基本的運(yùn)算,其他運(yùn)算可以通過(guò)基本的運(yùn)算導(dǎo)出。

3.A由函數(shù)fun(int*a,intn)中語(yǔ)句if(a[j]>a[k])k=j;可知當(dāng)前k是記錄數(shù)組中較大數(shù)據(jù)值所在位置的下標(biāo)變量,所以該函數(shù)的作用是對(duì)數(shù)組a中的下標(biāo)為偶數(shù)位置的數(shù)據(jù)進(jìn)行從大到小的排序,即對(duì)a[0],a[2],a[4],a[6]中的數(shù)據(jù)1,3,5,7進(jìn)行從大到小的排序,其他位置的數(shù)據(jù)不變,所以答案為A)。

4.A\n本題在函數(shù)intfun(intn)的定義中又出現(xiàn)了對(duì)函數(shù)fun的調(diào)用,所以函數(shù)fun是遞歸函數(shù)。因而在主函數(shù)中調(diào)用x=fun(x)時(shí),當(dāng)輸入10賦給變量X時(shí),遞歸調(diào)用的過(guò)程為

\nfun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)

\n=10+9++8+7+fun(6)=10+9++8+7+6+fun(6)

\n=10+9++8+7+6+5+fun(4)

\n=10+9++8+7+6+5+4+fun(3)

\n=10+9++8+7+6+5+4+3+fun(2)

\n=10+9++8+7+6+5+4+3+2+fun(1)

\n=10+9++8+7+6+5+4+3+2=55

\n

5.C

6.A本題中使用了函數(shù)的調(diào)用,由funl函數(shù)中的while循環(huán)可知,循環(huán)的作用是為了把q所指向的內(nèi)容增加1,而從主函數(shù)傳到函數(shù)時(shí)是從下標(biāo)為3開(kāi)始傳,因此當(dāng)調(diào)用函數(shù)執(zhí)行完后,傳過(guò)去的字符串為hsbn,前面不變。

7.B數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,是一種在操作系統(tǒng)支持下的系統(tǒng)軟件,因此本題答案為B)。

8.C本題考查do-while循環(huán),先執(zhí)行d0輸出的x的值為1,接著執(zhí)行while語(yǔ)句,此時(shí)--x的值為0,x也為0,而非0為1,循環(huán)成立,接著執(zhí)行do輸出X值為-2,執(zhí)行--x后,表達(dá)式為-2,而!(--x)為0,退出循環(huán)。

9.C

10.A本題考查循環(huán)跳出的知識(shí)點(diǎn):①break語(yǔ)句可以出現(xiàn)在switch循環(huán)體內(nèi)及語(yǔ)句體內(nèi),它的作用是跳出循環(huán)體,不能用于其他的語(yǔ)句;②continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,而接著判定循環(huán)條件是否成立,確定下一次循環(huán)是否繼續(xù)執(zhí)行,執(zhí)行contiune語(yǔ)句不會(huì)使整介循環(huán)終止;③循環(huán)體內(nèi)使用break語(yǔ)句會(huì)使循環(huán)提前終止;④從多層循環(huán)嵌套中退出時(shí),可以使用90t0語(yǔ)句或者break語(yǔ)句。

11.D

12.B

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

14.B解析:一個(gè)算法應(yīng)當(dāng)具有以下5個(gè)特性:有窮性;確定性;可行性;有零個(gè)或多個(gè)輸入;由一個(gè)或多個(gè)輸出.簡(jiǎn)潔性不屬于這5個(gè)特性,所以本題應(yīng)該選擇B。

15.B解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符,且只能接受—個(gè)字符(回車符也算是—個(gè)字符),所以getchar()不能用宋讀入字符串。scanf()函數(shù)要求按—定的格式來(lái)輸入,若同時(shí)輸入多個(gè)字符串,則以空格或回車分割,所以空格不能被識(shí)別為—個(gè)字符,也就無(wú)法讀入空格字符。函數(shù)gets()的作用是從終端輸入—個(gè)字符串\u3000(包括空格)至字符數(shù)組,直到遇到換行符為止,所以可以用來(lái)鍵盤讀入空格字符。

16.B

17.C解析:字符串少一個(gè)結(jié)束標(biāo)志,所以輸出的結(jié)果不確定。

18.C單目運(yùn)算符“++”的優(yōu)先級(jí)高于賦值運(yùn)算符。表達(dá)式“a*=16+(b++)-(++C);”可轉(zhuǎn)化為“a=a*(16+b-(c+1));b=b+1;”,代入值計(jì)算可得a=28。故本題答案為C選項(xiàng)。

19.D

20.B

21.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根據(jù)fopen函數(shù)的調(diào)用方式fopen(文件名,使用文件方式)和題意可得結(jié)果。

22.圖標(biāo)或按鈕圖標(biāo)或按鈕

23.封裝封裝解析:面向?qū)ο蠹夹g(shù)中包括以下幾個(gè)基本概念,即對(duì)象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術(shù),目的在于將對(duì)象的使用者對(duì)象的和設(shè)計(jì)者分開(kāi)。

24.關(guān)系或關(guān)系表關(guān)系或關(guān)系表解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)系.表中的每一列稱為一個(gè)屬性,相當(dāng)于記錄中的一個(gè)數(shù)據(jù)項(xiàng),對(duì)屬性的命名稱為屬性名,表中的一行稱為一個(gè)元組,相當(dāng)于記錄值。

25.隊(duì)列隊(duì)列解析:隊(duì)列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊(duì)尾”,刪除元素的一端叫做“隊(duì)頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。

26.120120解析:靜態(tài)變量的類型說(shuō)明符是static,靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)方式,它具有以下特點(diǎn):

①靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元。在程序整個(gè)運(yùn)行期間都不釋放。

②對(duì)靜態(tài)局部變量是在編譯時(shí)賦初值的,即只賦初值—次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。

③如在定義局部變量時(shí)不賦初值的話,則對(duì)靜態(tài)局部變量來(lái)說(shuō),編譯時(shí)自動(dòng)賦初值0(對(duì)數(shù)值型變量)或空字符(對(duì)字符變量)。(注意:C語(yǔ)言中的非靜態(tài)變量在定義時(shí),系統(tǒng)并不會(huì)自動(dòng)給它賦初值)

④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。

本題中函數(shù)的功能是:與for語(yǔ)句一起求一個(gè)整數(shù)的階乘。

27.010111212010111212解析:本題考查的是靜態(tài)局部變量的運(yùn)用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長(zhǎng)到程序運(yùn)行結(jié)束。本題的主函數(shù)中使用一個(gè)for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒(méi)被修改過(guò),所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因?yàn)閏是靜態(tài)局部變量,它仍然保存著上次調(diào)用結(jié)束時(shí)的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。

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

29.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。請(qǐng)注意前綴++,--和后綴++,--的區(qū)別。

30.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個(gè)字符A,執(zhí)行p=s+1后,p指向字符串中的第二個(gè)字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語(yǔ)句。

31.k=1234

32.cc解析:該題考查以下兩個(gè)知識(shí)點(diǎn):

(1)用一個(gè)指定的標(biāo)識(shí)符(即名字)來(lái)代表一個(gè)字符串,它的一般形式為#define標(biāo)識(shí)符字符串

(2)在MYSWAP宏定義中,利用中間變量z來(lái)交換x和y的值,所以要實(shí)現(xiàn)a和b的交換,只需通過(guò)中間變量即可,所以,此處應(yīng)填c。

33.x=2y=1

34.軟件開(kāi)發(fā)

35.AUTOEXEC.BAT

36.11解析:因?yàn)閤=4,y=3,所以表達(dá)式x<y的值為假(0),又因?yàn)閦=2,所以0<z的值為真(1),故最終輸出的結(jié)果為1。

37.集合集合

38.r+b[k]*x

39.k*kk*k解析:本題考查的知識(shí)點(diǎn)是scarf()函數(shù)和printf()函數(shù)的用法。scanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號(hào)和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空格處位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號(hào)分隔開(kāi))。而第;個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*K。

40.134122312isthe4thnumber.

41.A解析:本題首先定義兩個(gè)字符型指針變量p和q,通過(guò)malloc()函數(shù)申請(qǐng)20個(gè)字符的存儲(chǔ)空間,并把它的首地址賦給p,再把p的值賦給小p和q指向同一個(gè)存儲(chǔ)區(qū)。在scanf()語(yǔ)句中讀取字符串到p和q指向的字符串,先把a(bǔ)bc讀取到p指向的存儲(chǔ)區(qū)中,第一個(gè)空格是結(jié)束標(biāo)記,第二個(gè)空格是分隔符,再把def存放到q指向的存儲(chǔ)區(qū),把原先的內(nèi)容覆蓋。所以p和q指向的存儲(chǔ)區(qū)內(nèi)容是def,故最后輸出的def,def。4個(gè)選項(xiàng)中A正確。

42.D解析:printf函數(shù)按格式控制符的個(gè)數(shù)輸出表列中對(duì)應(yīng)的數(shù)據(jù),若輸出表列的個(gè)數(shù)大于格式控制符個(gè)數(shù),則輸出與格式控制符對(duì)應(yīng)的輸出表列的數(shù)據(jù),輸出表列中多的則省略;若格式控制符個(gè)數(shù)大于輸出表列的個(gè)數(shù),則輸出與格式控制符對(duì)應(yīng)的輸出表列的數(shù)據(jù),格式控制符多的部分輸出的數(shù)據(jù)是隨機(jī)的。

43.A

44.A解析:本題考核的知識(shí)點(diǎn)是位運(yùn)算的應(yīng)用。選項(xiàng)A為異或運(yùn)算符,如果參加運(yùn)算的兩個(gè)位相同,結(jié)果為O,否則為1。顯然選項(xiàng)A中參加運(yùn)算c1和c2相同,故其值位0;選項(xiàng)B為位與運(yùn)算,如果參加運(yùn)算的兩位都為1,則結(jié)果為1,否則結(jié)果為0,選項(xiàng)B中參加運(yùn)算的c1和c2都為真,所該結(jié)果為1;選項(xiàng)C為取反運(yùn)算,用來(lái)對(duì)一個(gè)二進(jìn)制取反,顯然c2取反后不為0,選項(xiàng)D為位或運(yùn)算,參加運(yùn)算的兩位只要有一個(gè)為1,那么運(yùn)算結(jié)果為1,顯然參加運(yùn)算的c1和c2都不為0,故運(yùn)算結(jié)果不為0。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

45.D解析:C語(yǔ)言中的文件是流式文件。流式文件是一種無(wú)結(jié)構(gòu)文件,即整個(gè)文件是一串字符流或二進(jìn)制流。文件的存取以字符或字節(jié)為單位。

46.D解析:算法的控制結(jié)構(gòu)給出了算法的基本框架,不僅決定了算法中各操作的執(zhí)行順序,也直接反映了算法的設(shè)計(jì)是否符合結(jié)構(gòu)化原則。一個(gè)算法一般都可以用順序、選擇、循環(huán)三種基本控制結(jié)構(gòu)組合而成。

47.D解析:本題考查指針變量的賦值。

選項(xiàng)A)中,p1、p2本身都是地址變量,不能再將p1取地址賦給p2:選項(xiàng)B)中,不能將整型數(shù)據(jù)直接賦值給指針型數(shù)據(jù);選項(xiàng)C)中,*p2代表了一個(gè)整型變量,而*p2=p1這個(gè)語(yǔ)句試圖把一個(gè)地址值放入一個(gè)整犁變量中是錯(cuò)誤的;選項(xiàng)D)中指針問(wèn)的賦值是正確的。

48.C解析:實(shí)數(shù)的指數(shù)形式中,e后面必須有一個(gè)整數(shù),所以A錯(cuò);B項(xiàng)錯(cuò)在無(wú)~13這種形式的數(shù);字符串常量是用雙引號(hào)括起來(lái)的字符序列,所以D項(xiàng)錯(cuò)誤。

49.A解析:本題考查C語(yǔ)言的綜合基礎(chǔ)知識(shí)。構(gòu)成C程序的基本單位是函數(shù),一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行,而不論main函數(shù)在整個(gè)程序中的位置如何。C語(yǔ)言的函數(shù)定義都是互相平行、獨(dú)立的,在定義函數(shù)時(shí),一個(gè)函數(shù)內(nèi)不能定義另一個(gè)函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。

50.C解析:在函數(shù)名前沒(méi)有說(shuō)明函數(shù)返回值類型時(shí),隱含為int類型。

51.B解析:本題考核的知識(shí)點(diǎn)是for循環(huán)次數(shù)的計(jì)算.本程序中for循環(huán)的次數(shù)為c-1+1共循環(huán)了c次,而每循環(huán)一次s的值加1,所以s的值為s+c.而最開(kāi)始s的值為a,故4個(gè)選項(xiàng)中選項(xiàng)B符合題意.

52.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問(wèn)根結(jié)點(diǎn);③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問(wèn)根結(jié)點(diǎn);②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問(wèn)根結(jié)點(diǎn)。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點(diǎn)。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點(diǎn),e、c、h、f是右子樹的結(jié)點(diǎn)。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點(diǎn),b右邊子樹無(wú)結(jié)點(diǎn)。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點(diǎn)。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點(diǎn)位置。所以可知后序遍歷的結(jié)果是D。

53.A

54.B解析:賦值運(yùn)算符按照“從右往左”的結(jié)合順序。因此,先執(zhí)行x-=x-x,即x=x-(x-x)=10;再執(zhí)行x+=x,即x=x+x=20,故正確選項(xiàng)為B。

55.A

56.C解析:本題主要對(duì)switch語(yǔ)句進(jìn)行了考查。switch語(yǔ)句的執(zhí)行過(guò)程為:進(jìn)入switch結(jié)構(gòu)后,對(duì)條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語(yǔ)句,直到遇到break語(yǔ)句,則跳出switch語(yǔ)句,如果各case都不匹配時(shí)則執(zhí)行default后面的語(yǔ)句。本題中ch為字符'H',所以case'H'條件中的語(yǔ)句將被執(zhí)行,由于沒(méi)有break語(yǔ)句,所以case'C'后的語(yǔ)句也被執(zhí)行,由于同樣的缺少break語(yǔ)句,所以default后的語(yǔ)句也被執(zhí)行了。

57.B

58.C解析:函數(shù)feof是用來(lái)判斷文件是否已讀到末尾,如果已讀到末尾則返回非零值,否則返回0。

59.A解析:aaa()函數(shù)中,首先定義了一個(gè)字符指針t指向形參s,然后通過(guò)一個(gè)while循環(huán)讓指針\u3000t不斷遞增,直到t指向字符串結(jié)束標(biāo)志處。當(dāng)t指向結(jié)束標(biāo)志處時(shí),由于后綴++運(yùn)算符的原因,它還會(huì)被再遞增1,所以接卜來(lái)的t--;語(yǔ)句讓它回到結(jié)束標(biāo)志處。最后返回t-s,因此s還是指向字符串第1個(gè)字符處,而t指向了字符串結(jié)尾,故返回值為字符串的長(zhǎng)度值。

60.A白盒測(cè)試是把測(cè)試對(duì)象看作是一個(gè)打開(kāi)的盒子,允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及相關(guān)信息來(lái)設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有的邏輯路徑進(jìn)行測(cè)試。所以,白盒測(cè)試的對(duì)象基本上是源程序,以程序的內(nèi)

【知識(shí)拓展】軟件測(cè)試按照功能劃分可以分成白盒(白箱)測(cè)試和黑盒(黑箱)測(cè)試。其中黑盒測(cè)試是對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能是否滿足需求進(jìn)行測(cè)試和驗(yàn)證。

61.B

62.Afun()函數(shù)使用了靜態(tài)變量,靜態(tài)變量只在聲明時(shí)初始化一次。首先實(shí)參的數(shù)值是一12,if判斷后輸出負(fù)號(hào),并將n=12,計(jì)算k+=n%10一k+=2—2,因此輸出2,后將數(shù)值除以10,結(jié)果為1,遞歸調(diào)用fun()函數(shù),第二次調(diào)用fun(),此時(shí)n=1,k=2,計(jì)算k+=n%10-÷k+=1——*3,因此打印3。故最后打印結(jié)果為一2,3,。故答案為A選項(xiàng)。

63.C

64.C

65.C數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。其中最后一個(gè)階段結(jié)構(gòu)簡(jiǎn)單,使用方便邏輯性強(qiáng)物理性少,在各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫(kù)領(lǐng)域的主導(dǎo)地位,所以選擇C)。

66.B解析:f函數(shù)的功能是返回地址為x,y的兩個(gè)數(shù)中值鉸的數(shù)的地址,本題輸出結(jié)果是7,8,7。

67.D

68.D

69.A本題考查的是結(jié)構(gòu)體。主函數(shù)中定義了結(jié)構(gòu)體類型的指針變量P,并使其指向了結(jié)構(gòu)體類型的數(shù)組s\r\n[1],并通過(guò)調(diào)用函數(shù)f改變了指針變量P所指向的結(jié)構(gòu)體\r\n成員變量name的值,但并未改變其num的值。這是因?yàn)楹瘮?shù)f中的形參flame是一個(gè)字符型指針變量,它指向了主函數(shù)中\(zhòng)r\n指針變量P所指向的結(jié)構(gòu)體的成員變量name,所以

溫馨提示

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

評(píng)論

0/150

提交評(píng)論