2021-2022年山東省威海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第1頁(yè)
2021-2022年山東省威海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第2頁(yè)
2021-2022年山東省威海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第3頁(yè)
2021-2022年山東省威海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第4頁(yè)
2021-2022年山東省威海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩62頁(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-2022年山東省威海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:#include<stdio.h>voidfunc(intn){staticintnum=1);num=num+n;printf("%d",num);}main(){funo(3);func(4);printf("n");}程序運(yùn)行后的輸出結(jié)果是()。A.48B.34C.35D.45

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

A.分塊B.順序C.二分D.散列

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

A.15

B.14

C.不確定

D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

4.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是

A.i-1B.iC.i+1D.4-i

5.下列敘述中,正確的是()

A.軟件交付使用后還需要進(jìn)行維護(hù)

B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護(hù)是指修復(fù)程序中被破壞的指令

6.對(duì)于下述說(shuō)明,不能使變量p->b的值增1的表達(dá)式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

7.以下程序輸出的結(jié)果為_(kāi)_____。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX");char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

8.以下說(shuō)法正確的是()。

A.C語(yǔ)言只接受十進(jìn)制的數(shù)

B.C語(yǔ)言只接受二進(jìn)制、八進(jìn)制、十六進(jìn)制的數(shù)

C.C語(yǔ)言只接受二進(jìn)制、十進(jìn)制、十六進(jìn)制的數(shù)

D.C語(yǔ)言只接受八進(jìn)制、十進(jìn)制、十六進(jìn)制的數(shù)

9.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

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

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

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

A.2B.3C.4D.無(wú)確定值

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

13.有下列程序:main{inti,j,x=0;for(i=0,i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++:}x++:}printf("x=%d\n",x);}程序執(zhí)行后的輸出結(jié)果是()。A.x=4B.x=8C.x=6D.x=12

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

A.算法就是程序B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D.以上3種說(shuō)法都不對(duì)

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

A.隊(duì)列B.棧C.雙向鏈表D.二叉樹(shù)

16.設(shè)a,b,c,d,m和n均為int型變量,且a=5,b=6,c=7,d=m=2,n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為()

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

17.結(jié)構(gòu)化程序設(shè)計(jì)方法的3種基本控制結(jié)構(gòu)中不包括

A.循環(huán)結(jié)構(gòu)B.遞歸結(jié)構(gòu)C.順序結(jié)構(gòu)D.選擇結(jié)構(gòu)

18.假設(shè)某算法的計(jì)算時(shí)間可用遞推關(guān)系式T(n)=2T(n/2)+n,T(1)=1表示,則該算法的時(shí)間復(fù)雜度為()

A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)

19.設(shè)無(wú)向圖G中的邊的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點(diǎn)a出發(fā)進(jìn)行深度優(yōu)先遍歷可以得到的一種頂點(diǎn)序列為()。

A.aedfcbB.acfebdC.aebcfdD.aedfbc

20.設(shè)有如下函數(shù)定義:intfun(intk){if(k<1)return0;elseif(k==l)returnl;elsereturnfun(k-1)+1:}若執(zhí)行調(diào)用語(yǔ)句:“n=fun(3);”,則函數(shù)fun總共被訶用的次數(shù)是()。A.2B.3C.4D.5

二、2.填空題(20題)21.C語(yǔ)言用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

22.在結(jié)構(gòu)化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為【】。

23.若有以下定義語(yǔ)句,則不移動(dòng)指針p,并且通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是【】。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

24.在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅需要存儲(chǔ)各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

25.數(shù)據(jù)庫(kù)保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。

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

main()

{inta=10;

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

}

27.為了列出當(dāng)前盤(pán)當(dāng)前目錄中所有第三個(gè)字符為C的文件名的有關(guān)信息,應(yīng)該使用命令【】。

28.有如下圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:

structaa

{intdata;

【】}node;

29.以下程序調(diào)用隨機(jī)函數(shù)得到N個(gè)20以內(nèi)的整數(shù)放在s數(shù)組中。函數(shù)fun的功能是找出s數(shù)組中的最大數(shù)(不止一個(gè))所在下標(biāo)傳回主函數(shù)進(jìn)行輸出,并把最大值作為函數(shù)值返回,請(qǐng)?zhí)羁铡?/p>

#defineN30

man()

{ints[N],d[N],i,k,m;

for(i=0,i<N;i++){s[i]=rand()%20;printf("%3d",s[i]);}

m=fun(【】);

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

printf(”Theindex;\n");

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

printf("\n\n");

}

fun(int*w,int*d,int*k)

{inti,j,m=0,v;

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

if(w[i]>w[m])【】;

v=w[m];

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

if(w[i]==v)【】;

*k=【】;

return【】;

}

30.在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

31.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。

32.一般來(lái)說(shuō),算法可以用順序、選擇和______三種基本控制結(jié)構(gòu)組合而成。

33.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為_(kāi)_____。

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

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;

sub(s,7,SIZE-1);

for(I=0;I<SIZE;I++)printf("%c",s[I]);

printf("\n");}

sub(char*a,intt1,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

35.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。

36.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下

1

11

121

1331

14641

其構(gòu)成規(guī)律是:

(1)第0列元素和主對(duì)角線元素均為1

(2)其余元素為其左上方和正上方元素之和

(3)數(shù)據(jù)的個(gè)數(shù)每行遞增1

請(qǐng)將程序補(bǔ)充完整。

#defineN6

voidYangHui(intx[N][N])

{inti,j;

x[0][0]=1;

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

{x[i][0]=【】=1;

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

x[i][j]=【】;

}

}

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

#defineN10

#defines(x)x*x

#definef(x)(x'x)

main()

{

inti1,i2;

i1-1000/s(N);i2=1000/f(N);

printf("%d%d\n",i1,i2);

}

38.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能實(shí)現(xiàn)的專門(mén)關(guān)系運(yùn)算包括選擇、連接和【】。

39.有下列程序;

#include<stdio.h>

main()

{charc;

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

}

程序運(yùn)行時(shí),如果從鍵盤(pán)輸入:A,B,<CR>,則輸出結(jié)果為_(kāi)_____。

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

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

三、1.選擇題(20題)41.有以下程序段

charch;intk;

ch=′a′;k=12;

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

已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無(wú)定值

B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

42.有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序運(yùn)行后的輸出結(jié)果是()。

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

43.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式x/y×z的C語(yǔ)言表達(dá)式是()

A.x/y*z)B.x*(1/(y*z))C.x/y*1/z)D.x/y/z

44.在下列敘述中,正確的一條是()

A.表達(dá)式1+2<<3和sizeof(3.8)的結(jié)果分別為24和8

B.函數(shù)fputc(c,stdout)與putchar(c)的結(jié)果相同

C.語(yǔ)句int*pt中的*pt是指針變量名

D.主函數(shù)和其他函數(shù)可以互相調(diào)用

45.下面一組中都是C語(yǔ)言關(guān)鍵字的是______。

A.doubleIntfor

B.mainwhilegoto

C.volatilebreakstatic

D.mallocsizeofnew

46.完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例的測(cè)試方法是()

A.黑箱測(cè)試法B.白箱測(cè)試法C.錯(cuò)誤推測(cè)法D.安裝測(cè)試法

47.若有如下程序:main(){intm=-1;printf("%d,%u,%0,%x",m,m,m,m);}則程序運(yùn)行后的輸出結(jié)果是()

A.-1,65535,177777,ffff

B.-1,-1,177777,fffe

C.-1,1,177777,ffff

D.-1,65535,177776,fffe

48.下列程序的輸出結(jié)果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printh("OK";}}

A.0B.3C.OKD.沒(méi)有任何輸出

49.在數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程中,可實(shí)現(xiàn)數(shù)據(jù)共享的是()

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

50.有以下程序:maln(){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

51.有以下程序main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sized(a);j=stden(a);printf(“%d,%d\n”,i,j);}程序運(yùn)行后的輸出結(jié)果是

A.9,9B.8,9C.1,8D.9,8

52.若待排序序列中元素非常多,而且它們的排列是完全無(wú)序的,那么最好選用下列排序方法中的______。

A.冒泡排序B.簡(jiǎn)單選擇排序C.直接插入排序D.快速排序

53.數(shù)據(jù)庫(kù)系統(tǒng)的核心是()。

A.數(shù)據(jù)模型B.數(shù)據(jù)庫(kù)管理系統(tǒng)C.數(shù)據(jù)庫(kù)D.數(shù)據(jù)庫(kù)管理員

54.現(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

55.數(shù)據(jù)的完整性是指數(shù)據(jù)的正確性、有效性和______。

A.可維護(hù)性B.獨(dú)立性C.安全性D.相容性

56.下列不合法的用戶標(biāo)識(shí)符是()。

A.j2_KEYB.DoubleC.4dD._8_

57.變量m的值為8,m的地址為1010,若欲使p為指向m的指針變量,則下列賦值正確的是()。

A.&m=8B.*p=8C.*p=1010D.p=&m

58.下列對(duì)于線性鏈表的描述中正確的是______。

A.存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的

B.存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

C.存儲(chǔ)空間必須連續(xù),且各前件元素一定存儲(chǔ)在后件元素的前面

D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的

59.數(shù)據(jù)庫(kù)的故障恢復(fù)一般是由()

A.數(shù)據(jù)流圖完成的B.數(shù)據(jù)字典完成的C.DBA完成的D.PAD圖完成的

60.有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}該程序的執(zhí)行結(jié)果是______。

A.6B.3C.死循環(huán)D.0

四、選擇題(20題)61.

62.有以下程序

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

A.15,16B.16,15C.15,15D.16,16

64.

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

intf(intA)

{returna%2;}

main

{ints[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[8]);i++)d+=s[i];

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

}

A.9B.11C.19D.21

65.

設(shè)有下列程序段:

charstr[]="HelloWorld":

char*plr;

ptr=str:

執(zhí)行上面的程序段后,*(ptr+10)的值為()。

A.\0B.0C.不確定的值D.0的地址

66.

67.

68.

有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

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

}

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

A.123,abeB.abc.123C.1bc,a23D.321,cba

69.

70.

71.有以下程序:

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

A.2,2,3,4,5,

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

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

D.2,3,4,5,6,

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

A.EOFB.-1C.1D.NULL

73.在HTML文檔中,應(yīng)該在下列哪個(gè)部分引用外部樣式表?()A.A.文檔的末尾

B.<title>部分

C.<body>部分

D.<head>部分

74.軟件開(kāi)發(fā)中需求分析的主要任務(wù)是()。

A.定義和描述目標(biāo)系統(tǒng)“做什么”B.獲取需求C.給出軟件解決方案D.需求評(píng)審

75.

76.

77.

78.

79.瀏覽器中用于負(fù)責(zé)向用戶顯示數(shù)據(jù)的是()。

A.WWWB.IP地址C.HTMLD.DNS

80.有以下程序:

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

A.MtemoonB.AftemoonC.MorningD.orning

五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:判斷字符ch是否與sir所指字符串中的某個(gè)字符相同;若相同,則什么也不做,若不同,則將其插在串的最后。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.函數(shù)fun的功能是:將s所指字符串中下標(biāo)為偶數(shù)同時(shí)ASCIl值為奇數(shù)的字符刪除,S所指串中剩余的字符形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFGl2345”,其中字符C的ASCIl碼值為奇數(shù),在數(shù)組中的下標(biāo)為偶數(shù),因此必須刪除;而字符l的ASCIl碼值為奇數(shù),在數(shù)組中的下標(biāo)為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是“BDFl2345”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.A第一調(diào)用func函數(shù)時(shí)輸出4,第二次調(diào)用func函數(shù)時(shí)num的值并不會(huì)釋放,仍然是上次修改后的值4,第二次調(diào)用結(jié)果為8,所以輸出結(jié)果是48。

2.A

3.C解析:C語(yǔ)言中,如果對(duì)定義的變量沒(méi)有賦初值,那么在后面使用時(shí),變量的值是不確定的。所以,本程序中,沒(méi)有對(duì)sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語(yǔ)句后,sum的值也不確定的,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

4.B解析:本題考查循環(huán)嵌套,外層循環(huán)控制每一行的輸出,內(nèi)層循環(huán)的第一個(gè)for循環(huán)控制空格的輸出,第二個(gè)for循環(huán)控制的輸出。而在第i行,輸出的第一個(gè)元素是num[i][i],所以下劃線處應(yīng)填i。

5.A解析:維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長(zhǎng)、付出代價(jià)最大的階段。軟件工程學(xué)的目的就在于提高軟件的可維護(hù)性,同時(shí)也要設(shè)法降低維護(hù)的代價(jià)。

軟件維護(hù)通常有以下四類;

①為糾正使用中出現(xiàn)的錯(cuò)誤而進(jìn)行的改正性維護(hù);

②為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);

③為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);

④為將來(lái)的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。

軟件維護(hù)不僅包括程序代碼的維護(hù),還包括文檔的維護(hù)。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無(wú)論是哪類文檔,都必須與程序代碼同時(shí)維護(hù)。只有與程序代碼完全一致的文檔才有意義和價(jià)值。由此可知,本題中選項(xiàng)B、C、D中的說(shuō)法都是錯(cuò)誤的。

6.D解析:p->b應(yīng)作為一個(gè)整體看待,++p->b和p->b++都使變量b增1,++(p++)->b先使b增1,再使p后移,D中表達(dá)式的含義是使p+1所指結(jié)構(gòu)體變量中的成員b的值增1。

7.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當(dāng)執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個(gè)字符串。

8.DC語(yǔ)言中,整型常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制表示。故本題答案為D選項(xiàng)。

9.B題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s?!?*s)”表示“a[1]”,“s[3]”不是指針變量,不能使用間址運(yùn)算符“*”,故選項(xiàng)A、C不能表示“a[3]”;選項(xiàng)D的“*s+3”等于“a[0]+3”。故本題答案為B選項(xiàng)。

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

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

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

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

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

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

成一個(gè)新的有序表。

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

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

12.D

13.B在第1次外層for循環(huán)中,首先x++得到x=1。進(jìn)入到內(nèi)層for循環(huán),只有循環(huán)j的值為奇數(shù)時(shí),變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過(guò)程中,變量x的值自加兩次,當(dāng)退出內(nèi)層for循環(huán)時(shí),x=3,然后執(zhí)行x++,得到x=4。在進(jìn)入執(zhí)行第2次外層for循環(huán)中,首先x++得到x=5。進(jìn)入到內(nèi)層for循環(huán),只有循環(huán)變量j的值為奇數(shù)時(shí),變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過(guò)程中,變量X的值自加1兩次,當(dāng)退出內(nèi)層for循環(huán)時(shí),x=7,然后執(zhí)行x++,得到x=8,所以打印輸出變量x的值為8。

14.D程序(program)是為實(shí)現(xiàn)特定目標(biāo)或解決特定問(wèn)題而用計(jì)算機(jī)語(yǔ)言編寫(xiě)的命令序列的集合。設(shè)計(jì)算法時(shí)要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),但是不僅僅是要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),還要考慮到其他的程序結(jié)構(gòu)的問(wèn)題。設(shè)計(jì)算法時(shí)不能只考慮結(jié)果的正確性和可靠性,還需要考慮到程序的時(shí)間冗余度等方面。所以答案選擇D。

15.B棧是線性表的一種,其插入和刪除運(yùn)算都只在表的一端進(jìn)行。進(jìn)行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元素是最后被插入的元素,不是最后被刪除的元素,是按先進(jìn)后出的原則組織數(shù)據(jù)的。

16.C

17.B解析:本題考查了程序的基本結(jié)構(gòu)。程序由一些基本結(jié)構(gòu)組成。任何一個(gè)大型的程序都由3種基本結(jié)構(gòu)組成,由這些基本結(jié)構(gòu)順序的構(gòu)成了一個(gè)結(jié)構(gòu)化的程序。這3種基本結(jié)構(gòu)為:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

18.B

19.B

20.B此題考查簡(jiǎn)單的循環(huán),當(dāng)執(zhí)行n=fun(3),則函數(shù)fun執(zhí)行3次。

21.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語(yǔ)句和switch語(yǔ)句)和循環(huán)結(jié)構(gòu)(包括for語(yǔ)句、while語(yǔ)句、do…while語(yǔ)句)。

22.數(shù)據(jù)字典數(shù)據(jù)字典解析:在結(jié)構(gòu)化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為數(shù)據(jù)字典。

23.*(p+5)

24.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中,除了要存儲(chǔ)數(shù)據(jù),還要存儲(chǔ)數(shù)據(jù)的前后件關(guān)系,對(duì)于順序存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過(guò)存儲(chǔ)空間的位置來(lái)實(shí)現(xiàn)的,而對(duì)于鏈?zhǔn)酱鎯?chǔ)來(lái)說(shuō),數(shù)據(jù)元素之間的前后件關(guān)系是通過(guò)指針來(lái)實(shí)現(xiàn)的。

25.完整性控制完整性控制

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

27.DIR??C*.*

28.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對(duì)鏈表的定義。

29.sd&km=id[j++]=ijv

30.中序中序解析:在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。中序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左了樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù):并且遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。后序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷右子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然光遍歷右子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù)。

31.1919解析:根據(jù)二叉樹(shù)的性質(zhì):在任意一棵二叉樹(shù)中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。

32.循環(huán)循環(huán)解析:算法一般由順序,選擇和循環(huán)三種基本控制結(jié)構(gòu)組合而成。

33.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語(yǔ)言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。

34.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來(lái)處理,如參與算術(shù)運(yùn)算等,某字符的大寫(xiě)字母的ASCII碼值比它對(duì)應(yīng)的小寫(xiě)字母ASCII碼值小32。

35.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個(gè)表達(dá)式前面有一個(gè)邏輯運(yùn)算符!,表示反操作,所以整個(gè)語(yǔ)句的值應(yīng)當(dāng)為false,即為0。

36.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對(duì)角線上的元素賦值為1顯然在第一個(gè)空中應(yīng)該填入對(duì)角線上的元素即x[i][i],在第二重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對(duì)角線的元素外其他元素為其對(duì)應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個(gè)空中應(yīng)該填入x[i-1][j-1]+x[i-1][j]。

37.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。

38.投影專門(mén)關(guān)系運(yùn)算包括對(duì)單個(gè)關(guān)系進(jìn)行垂直分解(投影操作)或水平分解(選擇操作)和對(duì)多個(gè)關(guān)系的結(jié)合(連接操作)等。

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

40.44解析:在主函數(shù)中,語(yǔ)句p=a;p++使用指針p指向數(shù)組a[1],所以輸出結(jié)果為4。

41.D解析:考查printf函數(shù)的相關(guān)知識(shí)。如果要一次進(jìn)行多個(gè)變量的定義,則在它們之間要用逗號(hào)隔開(kāi),因此選項(xiàng)A)和C)錯(cuò)誤。在選項(xiàng)C)中,變量c是一個(gè)浮點(diǎn)型指針,它只能指向一個(gè)浮點(diǎn)型數(shù)據(jù),不能指向指針變量b,所以正確答案為B)。輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號(hào)的十進(jìn)制整型數(shù)輸出,所以第一個(gè)輸出語(yǔ)句輸出的結(jié)果為a,97;第二個(gè)輸出語(yǔ)句輸出的結(jié)果為k=12。所以選項(xiàng)D)為正確答案。

42.B

43.A

44.C

45.C解析:C語(yǔ)言中的關(guān)鍵字有32個(gè)關(guān)鍵字(參見(jiàn)C語(yǔ)言教程),本題中只有C符合題意。

46.A解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)功能導(dǎo)出測(cè)試用例。注意:白箱測(cè)試是根據(jù)對(duì)程序內(nèi)部邏輯結(jié)構(gòu)的分析來(lái)選取測(cè)試用例,白箱測(cè)試也稱為邏輯覆蓋測(cè)試,故選項(xiàng)B)不正確;錯(cuò)誤推測(cè)法只是黑箱測(cè)試所使用的一種具體的方法,故選項(xiàng)C)不正確;安裝測(cè)試是測(cè)試層次中的一種,它屬于高級(jí)測(cè)試,故選項(xiàng)D)不正確。注意:常用的黑箱測(cè)試方法及其定義,白箱測(cè)試用例的準(zhǔn)則。

47.A

48.D解析:在題中,i的值為3,由于“case3:”后面沒(méi)有break語(yǔ)句,所以繼續(xù)向下執(zhí)行“case4:”后面的語(yǔ)句,由于“case4:”后面的語(yǔ)句為break強(qiáng)行退出switch語(yǔ)句,所以,本題沒(méi)有任何輸出。

49.C解析:本題考查了考生對(duì)數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)的記憶。數(shù)據(jù)庫(kù)技術(shù)的主要目的是有效地管理和存取數(shù)據(jù)資源,包括提供數(shù)據(jù)的共享性,使多個(gè)用戶能夠同時(shí)訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù);減少數(shù)據(jù)的冗余度,以提交數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應(yīng)用程序的獨(dú)立性,從而減少應(yīng)用程序的開(kāi)發(fā)和維護(hù)代價(jià)。數(shù)據(jù)庫(kù)的人工管理階段和文件系統(tǒng)階段,數(shù)據(jù)都不能實(shí)現(xiàn)共享,出現(xiàn)數(shù)據(jù)冗余現(xiàn)象。選項(xiàng)D)的說(shuō)法是錯(cuò)誤的。

50.C解析:通過(guò)for循環(huán)語(yǔ)句s=*(t+0)+*(t+2)+*(t+4)+*(t+6)+*(t+8)=1+3+5+7+9=25。

51.D解析:本題中首先定義了字符數(shù)組a,由于它的長(zhǎng)度省略,所以其長(zhǎng)度由初值個(gè)數(shù)確定,為9。接著將sizeof()函數(shù)返回的值賦給i(sizeof()函數(shù)的作用是返回運(yùn)算對(duì)象占用的字符數(shù)),所以i值為9;然后將strlen()函數(shù)的返回值賦給j(strlen()函數(shù)的作用是返回字符串的長(zhǎng)度,不包括字符串的結(jié)束標(biāo)記'\\0'),所以j值為8,所以最后輸出的i,j的值為9,8。

52.D

53.B解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,是負(fù)責(zé)數(shù)據(jù)庫(kù)的建立、使用和維護(hù)的軟件。數(shù)據(jù)庫(kù)管理系統(tǒng)建立在操作系統(tǒng)之上,實(shí)施對(duì)數(shù)據(jù)庫(kù)的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫(kù)命令以及應(yīng)用程序的執(zhí)行,最終都必須通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)。另外,數(shù)據(jù)庫(kù)管理系統(tǒng)還承擔(dān)著數(shù)據(jù)庫(kù)的安全保護(hù)工作,按照數(shù)據(jù)庫(kù)管理員所規(guī)定的要求,保證數(shù)據(jù)庫(kù)的完整性和安全性。

54.A解析:通過(guò)地址來(lái)引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來(lái)引用數(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]加上多少偏移量。

55.D解析:數(shù)據(jù)模型應(yīng)該反映和規(guī)定本數(shù)據(jù)模型必須遵守的、基本的、通用的完整性約束條件。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)及其狀態(tài)的變化,以保證數(shù)據(jù)的正確性、有效性和相容性。

56.C解析:在C語(yǔ)言程序中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須是字母或下劃線。

57.D解析:指針變量是通過(guò)指向變量地址來(lái)指定變量值的。這里只要取m的地址賦給p,即可實(shí)現(xiàn)使p為指向m的指針變量。

58.A解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表,是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針鏈接來(lái)實(shí)現(xiàn)的。

59.C解析:數(shù)據(jù)庫(kù)管理員DBA(DataBaseAdministrator)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一管理、包括數(shù)據(jù)庫(kù)故障恢復(fù),數(shù)據(jù)更新、維護(hù)優(yōu)化等操作。

60.C解析:在循環(huán)過(guò)程中,i的值一直沒(méi)有被改變,所以這是一個(gè)死循環(huán)。

61.C

62.Ap->x值為l,p->y值為2,前置自增表達(dá)式分別為23,所以選擇A)。

63.A函數(shù)swap采用值傳遞方式,無(wú)論形參x和Y數(shù)值發(fā)生多大變化,實(shí)參a和b的值不變。因此選項(xiàng)A正確。

64.A

\n在程序中當(dāng)i=0時(shí),s[o]=1,f(s[0])為1,執(zhí)行d+=s[0],d的值為1,i++也變?yōu)?。當(dāng)i=1時(shí),s[1]=3,f(s[1])為1,也為非0,繼續(xù)執(zhí)行后面的表達(dá)式,此時(shí)d的值為1+3=4,繼續(xù)著i++變?yōu)?,接著執(zhí)行for循環(huán),可知for循環(huán)的目的是把S數(shù)組中的奇數(shù)相加,因此最后d的值為1+3+5為9,故選擇A選項(xiàng)。

\n

65.A

\n本題主要考查字符數(shù)組和指針,在c語(yǔ)言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上\0,所以數(shù)組str有11個(gè)元素;ptr指向數(shù)組str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。

\n

66.A

67.A

68.C

\n本題考查swap函數(shù),它的作用是把x、Y所指的內(nèi)容互換,其他的不變,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,僅僅a與1互換,其他的沒(méi)有變。

\n

69.D

70.D

71.B本題考查的是指針作為函數(shù)的參數(shù)和函數(shù)的調(diào)用。題目中定義了一個(gè)指針變量作為函數(shù)f的形參。主函數(shù)main中調(diào)用f函數(shù),當(dāng)i=0時(shí),執(zhí)行語(yǔ)句(*q)++,此處*q代表的就是數(shù)組元素a[O]的值,即將1進(jìn)行加1操作;當(dāng)i=1時(shí),q仍指向數(shù)組元素a[0]的地址,因?yàn)樵诤瘮?shù)f中并未對(duì)指針變量q作任何變動(dòng),也即*q仍代表了數(shù)組元素a[0]的值,所以此次(*q)++即2+1,所以a[O]的值變?yōu)?;……直到i=4時(shí),執(zhí)行(*q)++(即5+1)后a[0]的值變?yōu)?。所以最后的輸出結(jié)果為:6,2,3,4…5

72.C解析:EOF是文本文件的文件結(jié)束標(biāo)志,NULL是打開(kāi)文件錯(cuò)誤的時(shí)候返回值。foef(fp)用來(lái)判斷文件位置指針是否在文件末尾,文本文件和二進(jìn)制文件均可以使用此函數(shù)。如果遇到文件結(jié)束就返回1,否則返回0。

73.D

74.A需求分析階段的工作可以分為4個(gè)方面:需求獲取、需求分析、編寫(xiě)需求規(guī)格說(shuō)明書(shū)和需求評(píng)審。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求的過(guò)程,是描述“做什么”的軟件開(kāi)發(fā)階段。故選A選項(xiàng)。

75.C

76.C

77.A

78.B

79.C

80.B語(yǔ)句voidfun(char**P)中的形參是一個(gè)指向指針的指針,在調(diào)用函數(shù)fun(a)后,指針數(shù)組a加1,

81.

【解析】形參的個(gè)數(shù)和類型由調(diào)用該函數(shù)的實(shí)參的個(gè)數(shù)和類型決定,由main()函數(shù)中調(diào)用的函數(shù)proc()可知,“voidproc(charstr,charch)”應(yīng)改為“voidproc(char*str,charch)”;將字符串中的每一個(gè)字符與給定字符相比較,當(dāng)字符串結(jié)束或者字符串中有與給定字符相同的字符時(shí)結(jié)束。如果到字符串的最后一個(gè)字符仍沒(méi)找到與給定字符相同的字符,將給定字符插在字符串的最后,因此,“if(*str==ch)”應(yīng)改為“if(*str==ˊ\0ˊ)”;最后還要為字符串添加一個(gè)結(jié)束符,因此“str[1]=ˊ0ˊ;”應(yīng)改為“str[1]=ˊ\0ˊ”。

82.2021-2022年山東省威海市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有以下程序:#include<stdio.h>voidfunc(intn){staticintnum=1);num=num+n;printf("%d",num);}main(){funo(3);func(4);printf("n");}程序運(yùn)行后的輸出結(jié)果是()。A.48B.34C.35D.45

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

A.分塊B.順序C.二分D.散列

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

A.15

B.14

C.不確定

D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

4.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是

A.i-1B.iC.i+1D.4-i

5.下列敘述中,正確的是()

A.軟件交付使用后還需要進(jìn)行維護(hù)

B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護(hù)是指修復(fù)程序中被破壞的指令

6.對(duì)于下述說(shuō)明,不能使變量p->b的值增1的表達(dá)式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

7.以下程序輸出的結(jié)果為_(kāi)_____。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX");char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

8.以下說(shuō)法正確的是()。

A.C語(yǔ)言只接受十進(jìn)制的數(shù)

B.C語(yǔ)言只接受二進(jìn)制、八進(jìn)制、十六進(jìn)制的數(shù)

C.C語(yǔ)言只接受二進(jìn)制、十進(jìn)制、十六進(jìn)制的數(shù)

D.C語(yǔ)言只接受八進(jìn)制、十進(jìn)制、十六進(jìn)制的數(shù)

9.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

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

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

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

A.2B.3C.4D.無(wú)確定值

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

13.有下列程序:main{inti,j,x=0;for(i=0,i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++:}x++:}printf("x=%d\n",x);}程序執(zhí)行后的輸出結(jié)果是()。A.x=4B.x=8C.x=6D.x=12

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

A.算法就是程序B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D.以上3種說(shuō)法都不對(duì)

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

A.隊(duì)列B.棧C.雙向鏈表D.二叉樹(shù)

16.設(shè)a,b,c,d,m和n均為int型變量,且a=5,b=6,c=7,d=m=2,n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為()

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

17.結(jié)構(gòu)化程序設(shè)計(jì)方法的3種基本控制結(jié)構(gòu)中不包括

A.循環(huán)結(jié)構(gòu)B.遞歸結(jié)構(gòu)C.順序結(jié)構(gòu)D.選擇結(jié)構(gòu)

18.假設(shè)某算法的計(jì)算時(shí)間可用遞推關(guān)系式T(n)=2T(n/2)+n,T(1)=1表示,則該算法的時(shí)間復(fù)雜度為()

A.O(logn)B.O(n*logn)C.O(n)D.O(n^2)

19.設(shè)無(wú)向圖G中的邊的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點(diǎn)a出發(fā)進(jìn)行深度優(yōu)先遍歷可以得到的一種頂點(diǎn)序列為()。

A.aedfcbB.acfebdC.aebcfdD.aedfbc

20.設(shè)有如下函數(shù)定義:intfun(intk){if(k<1)return0;elseif(k==l)returnl;elsereturnfun(k-1)+1:}若執(zhí)行調(diào)用語(yǔ)句:“n=fun(3);”,則函數(shù)fun總共被訶用的次數(shù)是()。A.2B.3C.4D.5

二、2.填空題(20題)21.C語(yǔ)言用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

22.在結(jié)構(gòu)化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為【】。

23.若有以下定義語(yǔ)句,則不移動(dòng)指針p,并且通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是【】。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

24.在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅需要存儲(chǔ)各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

25.數(shù)據(jù)庫(kù)保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。

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

main()

{inta=10;

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

}

27.為了列出當(dāng)前盤(pán)當(dāng)前目錄中所有第三個(gè)字符為C的文件名的有關(guān)信息,應(yīng)該使用命令【】。

28.有如下圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:

structaa

{intdata;

【】}node;

29.以下程序調(diào)用隨機(jī)函數(shù)得到N個(gè)20以內(nèi)的整數(shù)放在s數(shù)組中。函數(shù)fun的功能是找出s數(shù)組中的最大數(shù)(不止一個(gè))所在下標(biāo)傳回主函數(shù)進(jìn)行輸出,并把最大值作為函數(shù)值返回,請(qǐng)?zhí)羁铡?/p>

#defineN30

man()

{ints[N],d[N],i,k,m;

for(i=0,i<N;i++){s[i]=rand()%20;printf("%3d",s[i]);}

m=fun(【】);

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

printf(”Theindex;\n");

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

printf("\n\n");

}

fun(int*w,int*d,int*k)

{inti,j,m=0,v;

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

if(w[i]>w[m])【】;

v=w[m];

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

if(w[i]==v)【】;

*k=【】;

return【】;

}

30.在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

31.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。

32.一般來(lái)說(shuō),算法可以用順序、選擇和______三種基本控制結(jié)構(gòu)組合而成。

33.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為_(kāi)_____。

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

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;

sub(s,7,SIZE-1);

for(I=0;I<SIZE;I++)printf("%c",s[I]);

printf("\n");}

sub(char*a,intt1,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

35.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。

36.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下

1

11

121

1331

14641

其構(gòu)成規(guī)律是:

(1)第0列元素和主對(duì)角線元素均為1

(2)其余元素為其左上方和正上方元素之和

(3)數(shù)據(jù)的個(gè)數(shù)每行遞增1

請(qǐng)將程序補(bǔ)充完整。

#defineN6

voidYangHui(intx[N][N])

{inti,j;

x[0][0]=1;

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

{x[i][0]=【】=1;

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

x[i][j]=【】;

}

}

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

#defineN10

#defines(x)x*x

#definef(x)(x'x)

main()

{

inti1,i2;

i1-1000/s(N);i2=1000/f(N);

printf("%d%d\n",i1,i2);

}

38.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能實(shí)現(xiàn)的專門(mén)關(guān)系運(yùn)算包括選擇、連接和【】。

39.有下列程序;

#include<stdio.h>

main()

{charc;

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

}

程序運(yùn)行時(shí),如果從鍵盤(pán)輸入:A,B,<CR>,則輸出結(jié)果為_(kāi)_____。

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

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

三、1.選擇題(20題)41.有以下程序段

charch;intk;

ch=′a′;k=12;

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

已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無(wú)定值

B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

42.有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序運(yùn)行后的輸出結(jié)果是()。

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

43.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式x/y×z的C語(yǔ)言表達(dá)式是()

A.x/y*z)B.x*(1/(y*z))C.x/y*1/z)D.x/y/z

44.在下列敘述中,正確的一條是()

A.表達(dá)式1+2<<3和sizeof(3.8)的結(jié)果分別為24和8

B.函數(shù)fputc(c,stdout)與putchar(c)的結(jié)果相同

C.語(yǔ)句int*pt中的*pt是指針變量名

D.主函數(shù)和其他函數(shù)可以互相調(diào)用

45.下面一組中都是C語(yǔ)言關(guān)鍵字的是______。

A.doubleIntfor

B.mainwhilegoto

C.volatilebreakstatic

D.mallocsizeofnew

46.完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例的測(cè)試方法是()

A.黑箱測(cè)試法B.白箱測(cè)試法C.錯(cuò)誤推測(cè)法D.安裝測(cè)試法

47.若有如下程序:main(){intm=-1;printf("%d,%u,%0,%x",m,m,m,m);}則程序運(yùn)行后的輸出結(jié)果是()

A.-1,65535,177777,ffff

B.-1,-1,177777,fffe

C.-1,1,177777,ffff

D.-1,65535,177776,fffe

48.下列程序的輸出結(jié)果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printh("OK";}}

A.0B.3C.OKD.沒(méi)有任何輸出

49.在數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程中,可實(shí)現(xiàn)數(shù)據(jù)共享的是()

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

50.有以下程序:maln(){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

51.有以下程序main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sized(a);j=stden(a);printf(“%d,%d\n”,i,j);}程序運(yùn)行后的輸出結(jié)果是

A.9,9B.8,9C.1,8D.9,8

52.若待排序序列中元素非常多,而且它們的排列是完全無(wú)序的,那么最好選用下列排序方法中的______。

A.冒泡排序B.簡(jiǎn)單選擇排序C.直接插入排序D.快速排序

53.數(shù)據(jù)庫(kù)系統(tǒng)的核心是()。

A.數(shù)據(jù)模型B.數(shù)據(jù)庫(kù)管理系統(tǒng)C.數(shù)據(jù)庫(kù)D.數(shù)據(jù)庫(kù)管理員

54.現(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

55.數(shù)據(jù)的完整性是指數(shù)據(jù)的正確性、有效性和______。

A.可維護(hù)性B.獨(dú)立性C.安全性D.相容性

56.下列不合法的用戶標(biāo)識(shí)符是()。

A.j2_KEYB.DoubleC.4dD._8_

57.變量m的值為8,m的地址為1010,若欲使p為指向m的指針變量,則下列賦值正確的是()。

A.&m=8B.*p=8C.*p=1010D.p=&m

58.下列對(duì)于線性鏈表的描述中正確的是______。

A.存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的

B.存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

C.存儲(chǔ)空間必須連續(xù),且各前件元素一定存儲(chǔ)在后件元素的前面

D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的

59.數(shù)據(jù)庫(kù)的故障恢復(fù)一般是由()

A.數(shù)據(jù)流圖完成的B.數(shù)據(jù)字典完成的C.DBA完成的D.PAD圖完成的

60.有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}該程序的執(zhí)行結(jié)果是______。

A.6B.3C.死循環(huán)D.0

四、選擇題(20題)61.

62.有以下程序

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

A.15,16B.16,15C.15,15D.16,16

64.

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

intf(intA)

{returna%2;}

main

{ints[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[8]);i++)d+=s[i];

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

}

A.9B.11C.19D.21

65.

設(shè)有下列程序段:

charstr[]="HelloWorld":

char*plr;

ptr=str:

執(zhí)行上面的程序段后,*(ptr+10)的值為()。

A.\0B.0C.不確定的值D.0的地址

66.

67.

68.

有以下程序:

voidswap(char*x,char*y)

{chart;

t=*x;*x=*y;*y=t;

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

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

}

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

A.123,abeB.abc.123C.1bc,a23D.321,cba

69.

70.

71.有以下程序:

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

A.2,2,3,4,5,

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

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

D.2,3,4,5,6,

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

A.EOFB.-1C.1D.NULL

73.在HTML文檔中,應(yīng)該在下列哪個(gè)部分引用外部樣式表?()A.A.文檔的末尾

B.<title>部分

C.<body>部分

D.<head>部分

74.軟件開(kāi)發(fā)中需求分析的主要任務(wù)是()。

A.定義和描述目標(biāo)系統(tǒng)“做什么”B.獲取需求C.給出軟件解決方案D.需求評(píng)審

75.

76.

77.

78.

79.瀏覽器中用于負(fù)責(zé)向用戶顯示數(shù)據(jù)的是()。

A.WWWB.IP地址C.HTMLD.DNS

80.有以下程序:

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

A.MtemoonB.AftemoonC.MorningD.orning

五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:判斷字符ch是否與sir所指字符串中的某個(gè)字符相同;若相同,則什么也不做,若不同,則將其插在串的最后。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.函數(shù)fun的功能是:將s所指字符串中下標(biāo)為偶數(shù)同時(shí)ASCIl值為奇數(shù)的字符刪除,S所指串中剩余的字符形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFGl2345”,其中字符C的ASCIl碼值為奇數(shù),在數(shù)組中的下標(biāo)為偶數(shù),因此必須刪除;而字符l的ASCIl碼值為奇數(shù),在數(shù)組中的下標(biāo)為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是“BDFl2345”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.A第一調(diào)用func函數(shù)時(shí)輸出4,第二次調(diào)用func函數(shù)時(shí)num的值并不會(huì)釋放,仍然是上次修改后的值4,第二次調(diào)用結(jié)果為8,所以輸出結(jié)果是48。

2.A

3.C解析:C語(yǔ)言中,如果對(duì)定義的變量沒(méi)有賦初值,那么在后面使用時(shí),變量的值是不確定的。所以,本程序中,沒(méi)有對(duì)sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語(yǔ)句后,sum的值也不確定的,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

4.B解析:本題考查循環(huán)嵌套,外層循環(huán)控制每一行的輸出,內(nèi)層循環(huán)的第一個(gè)for循環(huán)控制空格的輸出,第二個(gè)for循環(huán)控制的輸出。而在第i行,輸出的第一個(gè)元素是num[i][i],所以下劃線處應(yīng)填i。

5.A解析:維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長(zhǎng)、付出代價(jià)最大的階段。軟件工程學(xué)的目的就在于提高軟件的可維護(hù)性,同時(shí)也要設(shè)法降低維護(hù)的代價(jià)。

軟件維護(hù)通常有以下四類;

①為糾正使用中出現(xiàn)的錯(cuò)誤而進(jìn)行的改正性維護(hù);

②為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);

③為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);

④為將來(lái)的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。

軟件維護(hù)不僅包括程序代碼的維護(hù),還包括文檔的維護(hù)。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無(wú)論是哪類文檔,都必須與程序代碼同時(shí)維護(hù)。只有與程序代碼完全一致的文檔才有意義和價(jià)值。由此可知,本題中選項(xiàng)B、C、D中的說(shuō)法都是錯(cuò)誤的。

6.D解析:p->b應(yīng)作為一個(gè)整體看待,++p->b和p->b++都使變量b增1,++(p++)->b先使b增1,再使p后移,D中表達(dá)式的含義是使p+1所指結(jié)構(gòu)體變量中的成員b的值增1。

7.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當(dāng)執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個(gè)字符串。

8.DC語(yǔ)言中,整型常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制表示。故本題答案為D選項(xiàng)。

9.B題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s?!?*s)”表示“a[1]”,“s[3]”不是指針變量,不能使用間址運(yùn)算符“*”,故選項(xiàng)A、C不能表示“a[3]”;選項(xiàng)D的“*s+3”等于“a[0]+3”。故本題答案為B選項(xiàng)。

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

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

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

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

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

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

成一個(gè)新的有序表。

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

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

12.D

13.B在第1次外層for循環(huán)中,首先x++得到x=1。進(jìn)入到內(nèi)層for循環(huán),只有循環(huán)j的值為奇數(shù)時(shí),變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過(guò)程中,變量x的值自加兩次,當(dāng)退出內(nèi)層for循環(huán)時(shí),x=3,然后執(zhí)行x++,得到x=4。在進(jìn)入執(zhí)行第2次外層for循環(huán)中,首先x++得到x=5。進(jìn)入到內(nèi)層for循環(huán),只有循環(huán)變量j的值為奇數(shù)時(shí),變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過(guò)程中,變量X的值自加1兩次,當(dāng)退出內(nèi)層for循環(huán)時(shí),x=7,然后執(zhí)行x++,得到x=8,所以打印輸出變量x的值為8。

14.D程序(program)是為實(shí)現(xiàn)特定目標(biāo)或解決特定問(wèn)題而用計(jì)算機(jī)語(yǔ)言編寫(xiě)的命令序列的集合。設(shè)計(jì)算法時(shí)要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),但是不僅僅是要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),還要考慮到其他的程序結(jié)構(gòu)的問(wèn)題。設(shè)計(jì)算法時(shí)不能只考慮結(jié)果的正確性和可靠性,還需要考慮到程序的時(shí)間冗余度等方面。所以答案選擇D。

15.B棧是線性表的一種,其插入和刪除運(yùn)算都只在表的一端進(jìn)行。進(jìn)行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元素是最后被插入的元素,不是最后被刪除的元素,是按先進(jìn)后出的原則組織數(shù)據(jù)的。

16.C

17.B解析:本題考查了程序的基本結(jié)構(gòu)。程序由一些基本結(jié)構(gòu)組成。任何一個(gè)大型的程序都由3種基本結(jié)構(gòu)組成,由這些基本結(jié)構(gòu)順序的構(gòu)成了一個(gè)結(jié)構(gòu)化的程序。這3種基本結(jié)構(gòu)為:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

18.B

19.B

20.B此題考查簡(jiǎn)單的循環(huán),當(dāng)執(zhí)行n=fun(3),則函數(shù)fun執(zhí)行3次。

21.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語(yǔ)句和switch語(yǔ)句)和循環(huán)結(jié)構(gòu)(包括for語(yǔ)句、while語(yǔ)句、do…while語(yǔ)句)。

22.數(shù)據(jù)字典數(shù)據(jù)字典解析:在結(jié)構(gòu)化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為數(shù)據(jù)字典。

23.*(p+5)

24.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中,除了要存儲(chǔ)數(shù)據(jù),還要存儲(chǔ)數(shù)據(jù)的前后件關(guān)系,對(duì)于順序存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過(guò)存儲(chǔ)空間的位置來(lái)實(shí)現(xiàn)的,而對(duì)于鏈?zhǔn)酱鎯?chǔ)來(lái)說(shuō),數(shù)據(jù)元素之間的前后件關(guān)系是通過(guò)指針來(lái)實(shí)現(xiàn)的。

25.完整性控制完整性控制

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

27.DIR??C*.*

28.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對(duì)鏈表的定義。

29.sd&km=id[j++]=ijv

30.中序中序解析:在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。中序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左了樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù):并且遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。后序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷右子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然光遍歷右子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù)。

31.1919解析:根據(jù)二叉樹(shù)的性質(zhì):在任意一棵二叉樹(shù)中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。

32.循環(huán)循環(huán)解析:算法一般由順序,選擇和循環(huán)三種基本控制結(jié)構(gòu)組合而成。

33.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語(yǔ)言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。

34.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來(lái)處理,如參與算術(shù)運(yùn)算等,某字符的大寫(xiě)字母的ASCII碼值比它對(duì)應(yīng)的小寫(xiě)字母ASCII碼值小32。

35.00解析:已知a=10,

溫馨提示

  • 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)論