2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第1頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第2頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第3頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第4頁(yè)
2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩44頁(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年內(nèi)蒙古自治區(qū)赤峰市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下列敘述中正確的是()。

A.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n

B.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為n/2

C.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為log2n

D.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為nlog2n

2.設(shè)棧S和隊(duì)列Q的初始狀態(tài)為空,元素e1,e2,e3,e4,e5和e6依次通過(guò)棧S,一個(gè)元素出棧后即進(jìn)隊(duì)列Q,若6個(gè)元素出隊(duì)的序列是e2,e4,e3,e6,e5,e1,則棧S的容量至少應(yīng)該是()。

A.6B.4C.3D.2

3.以下敘述中,不正確的是()。

A.使用staticfloata定義的外部變量存放在內(nèi)存中的靜態(tài)存儲(chǔ)區(qū)

B.使用floatb定義的外部變量存放在內(nèi)存中的動(dòng)態(tài)存儲(chǔ)區(qū)

C.使用staticfloatc定義的內(nèi)部變量存放在內(nèi)存中的靜態(tài)存儲(chǔ)區(qū)

D.使用floatd定義的內(nèi)部變量存放在內(nèi)存中的動(dòng)態(tài)存儲(chǔ)區(qū)

4.數(shù)據(jù)在計(jì)算機(jī)存儲(chǔ)器內(nèi)表示時(shí),如果元素在存儲(chǔ)器中的相對(duì)位置能反映數(shù)據(jù)元素之間的邏輯關(guān)系,則稱(chēng)這種存儲(chǔ)結(jié)構(gòu)為()。

A.存儲(chǔ)結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲(chǔ)結(jié)構(gòu)D.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

5.

6.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

7.在一個(gè)C語(yǔ)言源程序文件中所定義的全局變量,其作用域?yàn)椋ǎ?/p>

A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.由具體定義位置和extern說(shuō)明來(lái)決定范圍

8.

9.有如下定義:inta[5],*p;p=a;則下列描述錯(cuò)誤的是()。

A.表達(dá)式p=p+1合法的B.表達(dá)式a=a+1是合法的C.表達(dá)式p-a是合法的D.表達(dá)式a+2是合法的

10.對(duì)n個(gè)數(shù)進(jìn)行排序,哪種算法,其時(shí)間復(fù)雜度在最壞和最好都是O(nlogn)()

A.快速排序B.希爾排序C.堆排序D.選擇排序

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

12.有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=Y;y=t;)}main{inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%d\n",a,b,c);}執(zhí)行后輸出結(jié)果是()。A.3,4,5B.5,3,4C.5,4,3D.4,3,5

13.下列4個(gè)關(guān)于C語(yǔ)言的結(jié)論中錯(cuò)誤的是()。

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

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

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

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

14.在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。

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

15.有以下程序:#include<stdio.h>main(){inti=0.s=0;for(;;)if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;}printf("%d\n",s);程序運(yùn)行后的輸出結(jié)果是()。

A.10B.13C.21D.程序進(jìn)入列循環(huán)

16.#define能作簡(jiǎn)單的替代,用宏來(lái)替代計(jì)算多項(xiàng)式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語(yǔ)句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

17.sizeof(float)是()。

A.一種函數(shù)調(diào)用B.一種函數(shù)定義C.一個(gè)浮點(diǎn)表達(dá)式D.一個(gè)整型表達(dá)式

18.若有說(shuō)明語(yǔ)句:charc='\72'則變量c()。

A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.說(shuō)明不合法,c的值不確定

19.若已知一個(gè)棧的進(jìn)棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。

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

20.以下敘述中錯(cuò)誤的是()。

A.向量屬于線性結(jié)構(gòu)B.二叉鏈表是二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)C.棧和隊(duì)列是線性表D.循環(huán)鏈表是循環(huán)隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

二、2.填空題(20題)21.要使以下程序段輸出10個(gè)整數(shù),請(qǐng)?zhí)钊胍粋€(gè)整數(shù);

for(i=0;i<=【】;printf("%d\n",i+=2));

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

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

23.用復(fù)合的賦值運(yùn)算符將變量x中的值增大2的賦值表達(dá)式是【】。

24.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。

#definePI3.14159;printf("PI=%f",PI);

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

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

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

printf("\n");}

26.下面的函數(shù)strcat(str1,str2)實(shí)現(xiàn)將字符串str2拼接到字符串str1后面的功能。請(qǐng)?zhí)羁帐怪暾?/p>

char*strcat(str1,str2)

char*str1,*str2;

{char*t=str1;

while(【】)str1++;

while(【】);

return(t);}

27.寫(xiě)出下列程序的輸出結(jié)果______。

main()

{intn=0;

while(n++<=1);

printf("%d,",n);

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

}

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

mycmp(char*s,char*t)

{while(*s==*t)

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

++s;++t;

}

return(【】)

}

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

main()

{unsignedshorta=65536;intb;

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

}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

31.在面向?qū)ο蠓椒ㄖ?,允許作用于某個(gè)對(duì)象上的操作稱(chēng)為【】。

32.用樹(shù)型結(jié)構(gòu)表示實(shí)體類(lèi)型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱(chēng)為【】。

33.類(lèi)是一個(gè)支持集成的抽象數(shù)據(jù)類(lèi)型,而對(duì)象是類(lèi)的【】。

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

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

main()

{inti;

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

f(i);}

f(j)

{intj;

staticinta=1000;

autointk=1;

++k;

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

a+=10;}

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

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

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

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

intn='c';

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("morning");

case'd':printf("class");

}

38.以下定義的結(jié)構(gòu)體類(lèi)型擬包含兩個(gè)成員,其中成員變量info用來(lái)存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。

structnode

{intinfo;

【】link;};

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

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[o];

}

main()

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

s=f(&aa[0],3);printf("%d\n",s);

}

40.注釋一般分為序言性注釋和______注釋。

三、1.選擇題(20題)41.若a、b、c、d都是血型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語(yǔ)句是()。

A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);

42.如果要限制一個(gè)變量,命名其只能為本文件所用,必須通過(guò)()來(lái)實(shí)現(xiàn)。

A.外部變量說(shuō)明B.靜態(tài)內(nèi)部變量C.靜態(tài)外部變量D.局部變量說(shuō)明

43.下列敘述中,正確的是______。

A.軟件就是程序清單B.軟件就是存放在計(jì)算機(jī)中的文件C.軟件應(yīng)包括程序清單及運(yùn)行結(jié)果D.軟件包括程序和文檔

44.在C語(yǔ)言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是()

A.%B./C.<D.!

45.下列描述錯(cuò)誤的是()。

A.繼承分為多重繼承和單繼承

B.對(duì)象之間的通信靠傳遞消息來(lái)實(shí)現(xiàn)

C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征

D.類(lèi)是具有共同屬性、共同方法的對(duì)象的集合

46.若變量已正確定義,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其輸出結(jié)果是

A.程序段有語(yǔ)法錯(cuò)B.3,5,3C.3,5,5D.3,5,7

47.軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A.低內(nèi)聚低耦合

B.高內(nèi)聚低耦合

C.低內(nèi)聚高耦合

D.高內(nèi)聚高耦合

48.軟件開(kāi)發(fā)離不開(kāi)系統(tǒng)環(huán)境資源的支持,其中必要的測(cè)試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源

49.下列關(guān)于字符串的說(shuō)法中錯(cuò)誤的是

A.在C語(yǔ)言中,字符串是借助于字符型一維數(shù)組來(lái)存放的,并規(guī)定以字符′\0′作為字符串結(jié)束標(biāo)志

B.′\0′作為標(biāo)志占用存儲(chǔ)空間,計(jì)入串的實(shí)際長(zhǎng)度

C.在表示字符串常量的時(shí)候不需要人為在其末尾加入′\0′

D.在C語(yǔ)言中,字符串常量隱含處理成以′\0′結(jié)尾

50.若輸入1,2,下列程序的運(yùn)行結(jié)果為_(kāi)_____。#defineSWAP(a,b)t=b;b=a;a=tmain(){inta,b,t;scanf("%d,%d",&a,&b);SWAP(a,b);printf("a=%d,b=%d\n",a,b);}

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

51.已有定義inta=-2;和輸出語(yǔ)句printf("%81x",a);以下正確的敘述是()。

A.整型變量的輸出形式只有%d一種

B.%x是格式符的一種,它可以適用于任何一種類(lèi)型的數(shù)據(jù)

C.%x是格式符的一種,其變量的值按十六進(jìn)制輸出,但%81x是錯(cuò)誤的

D.%81x不是錯(cuò)誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度

52.有以下程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤(pán)輸入的數(shù)據(jù)應(yīng)該是()。

A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

53.設(shè)有以下語(yǔ)句:charstr1[]="string",str2[8],*str3,*str4="string";則______不是對(duì)庫(kù)函數(shù)的正確調(diào)用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

54.有以下程序

#include<string.h>

main()

{charp[]={′a′,′b′,′c′},q[10]={′a′,′b′,′c′};

printf("%d%d\n",strlen(p),strlen(q));}

以下敘述中正確的是

A.在給p和q數(shù)組置初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,故輸出的長(zhǎng)度都為3

B.由于p數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能確定,但q數(shù)組中字符串長(zhǎng)度為3

C.由于q數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能確定,但p數(shù)組中字符串長(zhǎng)度為3

D.由于p和q數(shù)組中都沒(méi)有字符串結(jié)束符,故長(zhǎng)度都不能確定

55.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf((“%d\n”,a);}A.8B.9C.17D.20

56.若說(shuō)明int*p,n;則通過(guò)語(yǔ)句scanf能夠正確讀入數(shù)據(jù)的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);

57.若有以下結(jié)構(gòu)體定義,則______是正確的引用或定義。structexample{intx;inty;}v1;

A.example.x=10

B.examplev2.x=10

C.structv2;v2.x=10

D.structexamplev2={10};

58.設(shè)有以下說(shuō)明和定義:typedefunion{longi;intk[5];charc;}DATE;structdate{intcat;DATEcow;doubledog;}too;DATEmax;則下列語(yǔ)句的執(zhí)行結(jié)果是______。printf("%d",sizeof(structdate)+sizeof(max));

A.26B.30C.18D.8

59.可以在C語(yǔ)言中用做用戶標(biāo)識(shí)符的是______。

A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG

60.設(shè)p1和p2是指向一個(gè)血型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語(yǔ)句是

A.k=*p1+*p2B.p2=k;C.p1=p2;D.k=*p1*(*p2);

四、選擇題(20題)61.

62.若有定義語(yǔ)句:intx=10;,則表沃式㈣的值為()。A.一10B.-20C.0D.10

63.

64.對(duì)線性表進(jìn)行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼的檢索頻率排好序

65.有下列程序:

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

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

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

67.

68.

69.已知一棵二叉樹(shù)前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹(shù)的后序遍歷為()。

A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG

70.軟件設(shè)計(jì)中衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)是()。

A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機(jī)制和控制方法

71.以下選項(xiàng)中,能用做用戶標(biāo)識(shí)符的是()。

A.voidB.8_8C._0_D.unsigned

72.

73.若要用函數(shù)fopen打開(kāi)一個(gè)新的二進(jìn)制文件,該文件要既能讀也能寫(xiě),則應(yīng)以()方式打開(kāi)文件。

A."wb"B."wb+"C."rb+"D."rb"

74.設(shè)有如下程序

#include<stdio.h>

main()

{

int**k,*j,i=100;

j=&i;k=&j;

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

}

上述程序的輸出結(jié)果是

A.運(yùn)行錯(cuò)誤B.100

C.i的地址D.j的地址

75.有下列程序

main()

{

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

p=a;

k=&p;

printf("%d",*(p++));

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

}

運(yùn)行該程序,其輸出結(jié)果是

A.4B.22

C.24D.46

76.為了提高測(cè)試的效率,應(yīng)該()。

A.隨機(jī)選取測(cè)試數(shù)據(jù)

B.取一切可能的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)

C.在完成編碼以后制定軟件的測(cè)試計(jì)劃

D.集中對(duì)付那些錯(cuò)誤群集的程序

77.已知:chara;intb;floatc;doubled;執(zhí)行語(yǔ)句“c=a+b+c+d;”后,變量c的數(shù)據(jù)類(lèi)型是()。

A.intB.charC.floatD.double

78.

有以下程序段

intj;floaty;charname[50]:

scanf("%2d%f%s",&i,&.y,name):

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

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

79.函數(shù)fgetc的功能是從指定文件中讀入一個(gè)字符,以下與其功能完全相同的函數(shù)是()。

A.freadB.fscanfC.fgetsD.getc

80.有以下程序

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<strin9.h>#include<stdi0.h>#defineM80voidproc(char*arr){inti,j,n;charch;n=strlen(arr):for(i=1;i<n;i++)//****found****{c=arr[i];j=i-1;while((j>=o)&&(ch<arr[j])){arr[j+1]=arr[j];j--;}arr[j+1]=ch;}}voidmain{chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";printf("Theoriginalstring:%s\n",a);proc(a);printf("Thestringaftersortin9:%s\n\n",a);}六、程序設(shè)計(jì)題(1題)82.下列程序定義了M×M的二維數(shù)組,并在主函數(shù)中賦值。請(qǐng)編寫(xiě)函數(shù)proc(),函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。例如,若a數(shù)組中的值為:21098則返回主程序后,s的值為3.750000。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.C\n\tC?!窘馕觥慷址ú檎抑贿m用于順序存儲(chǔ)的有序表,對(duì)于長(zhǎng)度為n的有序線性表,最壞情況只需比較log2n次。

2.C

3.B

4.C

5.A

6.B

\n本題考查分支語(yǔ)句用法加個(gè)句號(hào)因?yàn)樽兞康某跏贾捣謩e為k一5、n一0,所以程序第1次進(jìn)入循環(huán)時(shí),執(zhí)行default語(yǔ)句,輸出0,k減1;這時(shí)n=0、k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個(gè)分支,結(jié)果是n=2、k=3,打印出2;這時(shí)n=2、k=3,break跳出,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個(gè)分支,結(jié)果是n=3、k=2,打印出3;這時(shí)n一3、k2,b¨ak跳出,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個(gè)分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時(shí)因?yàn)閚=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。

\n

7.D

\n全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開(kāi)始,到整個(gè)源文件結(jié)束止。當(dāng)全局變量定義在后,引用它的函數(shù)在前時(shí),應(yīng)該在引用它的函數(shù)中用extern對(duì)此全局變量進(jìn)行說(shuō)明,以便通知編譯程序該變量是一個(gè)已在外部定義了的全局變量,這時(shí)全局變量的作用域從extern說(shuō)明處起,延伸到該函數(shù)末尾。

\n

8.D

9.B

10.C

11.A當(dāng)x為1時(shí),執(zhí)行case1,a自加等于1,因?yàn)閏ase1后沒(méi)有break,接著執(zhí)行case2,此時(shí)a的值為2,b自加為1,故選擇A選項(xiàng)。

12.Da、b、C都是按值傳遞給函數(shù)f,函數(shù)f不能改變它們的值。所以,a、b、t的值仍然是4、3、5。

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

14.D解析:本題主要考查左移、右移對(duì)數(shù)據(jù)值的影響,左移n位相當(dāng)于乘以2的n次冪,右移n位相當(dāng)于除以2的n次冪。

15.D解析:程序第1次執(zhí)行for循環(huán)時(shí),i=0,兩條if語(yǔ)句中的表達(dá)式都不成立,執(zhí)行i++;s+=i;此時(shí)i為1,s為1第2次循環(huán),兩條if語(yǔ)句中的表達(dá)式也不成立,執(zhí)行i++,s+=i,此時(shí)i為2,s為3;……;當(dāng)i=3時(shí),執(zhí)行continue,結(jié)束本輪循環(huán),不執(zhí)行i++;繼續(xù)執(zhí)行下一輪循環(huán),這樣一來(lái)i值始終為3,繼續(xù)continue,無(wú)終止條件,進(jìn)入死循環(huán)。

16.C解析:帶參數(shù)宏的格式為:#define標(biāo)識(shí)符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實(shí)參的宏名,展開(kāi)成由實(shí)參組成的表達(dá)式。

17.D解析:sizeof(float)是c語(yǔ)言內(nèi)部規(guī)定的用于計(jì)算單精度型變量(float)在計(jì)算機(jī)的內(nèi)存中所占用的字節(jié)數(shù)量的函數(shù),返回一個(gè)整數(shù)值。

18.A解析:C語(yǔ)言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個(gè)“\\”開(kāi)頭的字符。其中,“\\ddd”表示用ASCII碼(八進(jìn)制數(shù))表示一個(gè)字符,本題中的charc='\\72'H口表示占一個(gè)字符的變量c的ASCII碼值。

19.C

20.D循環(huán)鏈表是線性表的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)。因此D選項(xiàng)敘述錯(cuò)誤。本題答案為D選項(xiàng)。

21.18或1918或19

22.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個(gè)變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進(jìn)行fun()函數(shù)后的運(yùn)算,輸出結(jié)果為m=4,k=4。將k值輸出后自行增加1,k=5,此時(shí)全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結(jié)果為“i=5k=5”。

23.x+=2

24.PI=3.14159PI=3.14159解析:本題先定義了一個(gè)宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語(yǔ)言規(guī)定:雙引號(hào)中的宏名是不進(jìn)行替換的。

25.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語(yǔ)句的使用以及靜態(tài)局部變量的特點(diǎn)。

26.*str1或*str1!='\0'或*str1!=0或*str1!=NUL*str1++=*str2++或*str1++=*str2*str2++*str1或*str1!='\\0'或*str1!=0或*str1!=NUL\r\n*str1++=*str2++或*str1++=*str2,*str2++解析:函數(shù)strcat(str1,str2)實(shí)現(xiàn)將字符串str2連接到字符串str1后面,所以首先要找到字符串str1的串尾,根據(jù)C語(yǔ)言的語(yǔ)法規(guī)定,一個(gè)串的串尾—定是—個(gè)隱含字符“\\0”,而在程序中,對(duì)字符串中字符的訪問(wèn)是通過(guò)兩個(gè)指針變量來(lái)完成的,因此要找到字符串str1的串尾,要判斷:str1是否為“\\0”,要找到字符串str2的串尾,要判斷*str2是否為“\\0”,程序中必須以使字符串中字符逐—順序體現(xiàn),所以在題中我們應(yīng)填寫(xiě)“*str1”和“*str1++=*str2++”。

27.333,3解析:本題在while(n++<=1)語(yǔ)句后,直接加了分號(hào),說(shuō)明如果while()的條件為真時(shí),該循環(huán)什么都不做:n++是先取n的當(dāng)前值和1做比較,然后再將n加1。第一次循環(huán),n=0時(shí),循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時(shí),循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時(shí),循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時(shí)仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語(yǔ)句,第二個(gè)printf語(yǔ)句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加l,即程序結(jié)束后得到n=4,但輸出的是3。

28.*s-*t或-*t+*s*s-*t或-*t+*s解析:函數(shù)的兩個(gè)形參是兩個(gè)字符指針變量,字符串的首地址是指針變量的值,*s和*t表示字符串?dāng)?shù)組s和t的第一個(gè)字符,在while循環(huán)中,是通過(guò)s和t值的不斷變化來(lái)改變指針?biāo)赶虻淖址?,要改變s和t所指不同字符的ASCII碼的差值,必須使用“*s-*t”得出。

29.00解析:對(duì)于一個(gè)unsignedshort來(lái)說(shuō),它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實(shí)際為0。

30.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒(méi)有發(fā)生變化,所以輸出結(jié)果為35。

31.方法方法解析:在面向?qū)ο蠓椒ㄖ?,方法是指允許作用于某個(gè)對(duì)象上的各種操作。

32.層次模型用樹(shù)型結(jié)構(gòu)表示實(shí)體類(lèi)型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱(chēng)為層次模型,用有向圖結(jié)構(gòu)表示實(shí)體類(lèi)型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱(chēng)為網(wǎng)狀模型,用二維表格結(jié)構(gòu)表示實(shí)體及其聯(lián)系的數(shù)據(jù)模型稱(chēng)為關(guān)系模型。

33.實(shí)例將屬性、操作相似的對(duì)象歸為類(lèi),也就是說(shuō),類(lèi)是具有共同屬性、共同方法的對(duì)象的集合。所以,類(lèi)是對(duì)象的抽象,對(duì)象則是其對(duì)應(yīng)類(lèi)的一個(gè)實(shí)例。

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

35.100+2+1=103110+2+2=114120+2+3=125130+2+4=136140+2+5=147100+2+1=103\r\n110+2+2=114\r\n120+2+3=125\r\n130+2+4=136\r\n140+2+5=147解析:靜態(tài)局部變量的生存期為整個(gè)程序的運(yùn)行期間,而作用域?yàn)槎x該變量的函數(shù)或局部范圍。自動(dòng)變量的建立和撤銷(xiāo)都是由系統(tǒng)自動(dòng)進(jìn)行的,所以稱(chēng)為自動(dòng)變量。自動(dòng)變量的作用域和生存期都為定義它的局部范圍內(nèi)。對(duì)同一函數(shù)的兩次調(diào)用之間,自動(dòng)變量的值是不保留的。而靜態(tài)變量則保留。注意:局部變量和全局變量的定義及其作用范圍。

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

①靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類(lèi)別,在靜態(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ù)的階乘。

37.morningclassmorningclass解析:本題考查了兩個(gè)知識(shí)點(diǎn):①“++,--”運(yùn)算后綴形式是先使用變量原來(lái)的值,使用完后再使其增1或減1;②在switch語(yǔ)句中,當(dāng)n='c'時(shí),執(zhí)行“case'c'”,輸出morning;因?yàn)榇司渲袥](méi)有break語(yǔ)句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結(jié)果為morningclass。

38.structnode*structnode*解析:本題中的結(jié)構(gòu)類(lèi)型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。

39.66解析:s=f(&aa[0],3)=aa[0]+aa[1]+aa[2]=1+2+3=6。

40.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個(gè)程序的開(kāi)頭部分,給出程序的整體說(shuō)明;功能性注釋一般嵌在源程序體之中,主要描述其后的語(yǔ)句或程序做什么,

41.A解析:C語(yǔ)言規(guī)定,賦值號(hào)的右邊可以是一個(gè)賦值表達(dá)式,因此選項(xiàng)C)、選項(xiàng)D)正確;在選項(xiàng)B)中,a++是一個(gè)自加1的表達(dá)式,a被重新賦值,因此它是一個(gè)合法的賦值表達(dá)式;在選項(xiàng)A)中,a+d是一個(gè)算術(shù)表達(dá)式,雖然最后有一個(gè)分號(hào),但這個(gè)表達(dá)式中沒(méi)有賦值操作,因此它不是一條賦值語(yǔ)句。

42.C

43.D解析:軟件(software)是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。

44.A解析:題目的四個(gè)選項(xiàng)中,B、C、D都不要求運(yùn)算數(shù)必須為整數(shù),參與模運(yùn)算(%)的運(yùn)算數(shù)必須是整型數(shù)據(jù)。

45.C解析:對(duì)象的封裝性是指從外面看只能看到對(duì)象的外部特性;而對(duì)象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對(duì)外是不可見(jiàn)的,是隱蔽的。

46.B解析:本題考查if條件語(yǔ)句。a=3,b=5,因此a>b條件不成立,c=a=3。此時(shí)c!=a條件不成立,不執(zhí)行c=b;語(yǔ)句,c的值仍然為5。結(jié)果a=3,b=5,c=3。

47.B解析:耦合性和內(nèi)聚性足模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn)。內(nèi)聚性是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量,作為軟件結(jié)構(gòu)設(shè)計(jì)的設(shè)計(jì)原則,要求每個(gè)模塊的內(nèi)部都具有很強(qiáng)的內(nèi)聚性;耦合性是指模塊間相互連接的緊密程度的度量,一個(gè)模塊與其他模塊的耦合性越強(qiáng)則該模塊的獨(dú)立性越弱。一般優(yōu)秀的軟件設(shè)計(jì)應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。

48.D軟件開(kāi)發(fā)離不開(kāi)系統(tǒng)環(huán)境資源的支持,其中主要的資源有硬件資源、通信資源、輔助資源等。(1)硬件資源是指組成計(jì)算機(jī)及相關(guān)應(yīng)用所需要的硬件,它是軟件開(kāi)發(fā)必不可少的資源,因?yàn)闊o(wú)論什么樣的軟件工具都需要在硬件上完成任務(wù),它是其他資源的基礎(chǔ)資源。(2)通信資源是指為軟件開(kāi)發(fā)提供通信支撐的資源,它與測(cè)試數(shù)據(jù)無(wú)關(guān)。(3)支持軟件是指為軟件開(kāi)發(fā)提供操作平臺(tái)的軟件,如常用的面向?qū)ο箝_(kāi)發(fā)的Rose軟件,它主要是軟件開(kāi)發(fā)的工具。通過(guò)對(duì)上述分析的總結(jié),可以知道本題的正確答案選D。

49.B解析:'\\0'作為標(biāo)志占用存儲(chǔ)空間,但是不計(jì)入串的實(shí)際長(zhǎng)度。當(dāng)給一個(gè)字符型指針賦值時(shí),賦給這個(gè)指針的是這個(gè)字符串的地址。

50.B

51.D解析:整型變量的輸出形式有:%d,%o,%x,%u等,%x是以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)。十六進(jìn)制數(shù)同樣也可以像%md一樣按%mlx輸出指定寬度的長(zhǎng)整型數(shù)。

52.D解析:為了使程序不陷入死循環(huán),則while的條件不能一直為真。t的初值為1,循環(huán)體中語(yǔ)句t=t-2使t變?yōu)樨?fù)奇數(shù)-1、-3、-5…,而while的循環(huán)條件是t不等于n,若從鍵盤(pán)輸入的數(shù)據(jù)為A、B、C三項(xiàng)時(shí),則t永遠(yuǎn)不等于n,即循環(huán)條件一直為真,程序陷入死循環(huán)。只有輸入負(fù)奇數(shù)時(shí),t會(huì)在某個(gè)時(shí)候等于n,使得while條件不成立,終止循環(huán)。

53.C解析:C語(yǔ)言中:strcpy(st1,st2);,其兩個(gè)參數(shù)均為字符指針或字符數(shù)組,選項(xiàng)C中的目的串指針str3沒(méi)有指向具體有效的存儲(chǔ)單元,故是錯(cuò)誤的調(diào)用。

54.A解析:在給p和q數(shù)組賦初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,從題目中可以看出數(shù)組p和q都有3個(gè)字符,所以長(zhǎng)度均為3。

55.B

56.D解析:函數(shù)scanf的地址列表應(yīng)由變量的地址組成。選項(xiàng)A中雖然&p也為地址,但它是指針變量p的地址,該地址的存儲(chǔ)單元中只能存放地址值,不能存放整型數(shù)據(jù)。選項(xiàng)B中*p相當(dāng)于變量n,所以不能正確讀入數(shù)據(jù);選項(xiàng)C不正確,因?yàn)閚為變量名;選項(xiàng)D中p為指針變量,并且值為變量n的地址,所以選項(xiàng)D能夠正確讀入數(shù)據(jù)。D為所選。

57.D解析:在定義結(jié)構(gòu)體變量時(shí),不能只用結(jié)構(gòu)體名example或關(guān)鍵字struct進(jìn)行定義,必需要用結(jié)構(gòu)缽類(lèi)型名structexample定義,在引用結(jié)構(gòu)體成員變量時(shí),需要用結(jié)構(gòu)體變量名進(jìn)行引用,所以選D。

58.B

59.B解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。另外還需要注意的是關(guān)鍵字不能作標(biāo)識(shí)符。選項(xiàng)A中void,C中for都為關(guān)鍵字,D中2c以字母開(kāi)頭。

60.B解析:本題主要考查了一維數(shù)組指針的賦值和用指針引用數(shù)組元素進(jìn)行運(yùn)算。選項(xiàng)B)中p2為指向int型變量的指針,而k為int型變量,不能將int型變量直接賦值給指向int型變量的指針,所以選項(xiàng)B)錯(cuò)誤。

61.C

62.A算術(shù)運(yùn)算符+的優(yōu)先級(jí)高于一=,且一=的結(jié)合方向?yàn)樽杂蚁蜃螅虼吮磉_(dá)式x-----X+X可以表示成X----'X一(x+x)=10一(10+lo)=一10,所以選擇A)。

63.C

64.A解析:對(duì)線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲(chǔ)的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。

65.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

66.Ac的值為a乘以b的值,為3。所以答案選擇A)。

67.C

68.B

69.B遍歷是按照一定規(guī)則對(duì)樹(shù)中全部結(jié)點(diǎn)逐一訪問(wèn)的方法。二叉樹(shù)可由根結(jié)點(diǎn)、左子樹(shù)和右子樹(shù)三個(gè)部分組成。根據(jù)對(duì)根結(jié)點(diǎn)訪問(wèn)的先后順序,可將遍歷方法分為先序遍歷、中序遍歷和后序遍歷三種。先序遍歷首先訪問(wèn)根結(jié)點(diǎn),再先序遍歷左子樹(shù),最后先序遍歷右子樹(shù),可見(jiàn)遍歷是一個(gè)遞歸的過(guò)程。求樹(shù)的遍歷這種問(wèn)題的關(guān)鍵在于認(rèn)清每棵子樹(shù)的根結(jié)點(diǎn)的訪問(wèn)順序。題目給出了一棵樹(shù)的先序遍歷和中序遍歷的結(jié)點(diǎn)順序,先序遍歷的第一個(gè)結(jié)點(diǎn)為整棵樹(shù)的根結(jié)點(diǎn),即根結(jié)點(diǎn)為A,而在中序遍歷的順序中,結(jié)點(diǎn)A的前面還有DBGE四個(gè)結(jié)點(diǎn),表示這四個(gè)結(jié)點(diǎn)構(gòu)成以A為結(jié)點(diǎn)的二叉樹(shù)的左子樹(shù),同理,中序遍歷中A結(jié)點(diǎn)后面的CHF三個(gè)結(jié)點(diǎn)構(gòu)成以A為結(jié)點(diǎn)的二叉樹(shù)的右子樹(shù)。于是原來(lái)的對(duì)一棵二叉樹(shù)的分析變?yōu)閷?duì)該二叉樹(shù)的左右子樹(shù)的分析。以左子樹(shù)為例,左子樹(shù)結(jié)點(diǎn)的先序遍歷為BDEG,中序遍歷為DBGE,該子樹(shù)的根結(jié)點(diǎn)為B,B結(jié)點(diǎn)的左子樹(shù)為一個(gè)結(jié)點(diǎn)D,右子樹(shù)為以E為根結(jié)點(diǎn),結(jié)點(diǎn)G是E的左孩子。同理,可對(duì)CHF三個(gè)結(jié)點(diǎn)進(jìn)行分析。

最后得到整棵樹(shù)的結(jié)構(gòu)后,按照后序遍歷寫(xiě)出所有結(jié)點(diǎn)的順序:DGEBHFCA。

70.C耦合性與內(nèi)聚性是模塊獨(dú)立與否的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)蒙、低耦合,即減弱模塊之間的耦合性而提高模塊內(nèi)的內(nèi)聚性,這樣有利于提高模塊的獨(dú)立性。

71.C標(biāo)識(shí)符由字母、數(shù)字和下劃線組成。開(kāi)頭必須是字母或下劃線且區(qū)分大小寫(xiě)。在C語(yǔ)言中,預(yù)先定義了一些標(biāo)識(shí)符,以作專(zhuān)門(mén)用途,稱(chēng)為關(guān)鍵字,標(biāo)識(shí)符不能與關(guān)鍵字相同。選項(xiàng)A和D是關(guān)鍵字,選項(xiàng)B是數(shù)字開(kāi)頭的,所以都不正確。

72.B

73.B本題考查文件使用方式標(biāo)識(shí)符。方式“wb”為輸出打開(kāi)一個(gè)二進(jìn)制文件;方式“wb+”為讀寫(xiě)建立一個(gè)新的二進(jìn)制文件;方式“rb+”為讀寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件;方式“rb”為輸入打開(kāi)一個(gè)二進(jìn)制文件。

74.Bj=&i,j的值就是i的地址,*j=100,再將j的地址賦給k,這時(shí)*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當(dāng)為100。

75.C在本題中,程序首先定義了一個(gè)一維數(shù)組a,賦其初值,并定義一個(gè)同類(lèi)型的指針變量p和一個(gè)指向指針的指針變量k,然后讓指針變量p指向數(shù)組的首地址,接著將指針變量p的地址值賦給指向指針的指針變量k。

在第一條輸出語(yǔ)句中,首先我們需要弄清楚*(p++)的作用,它是先調(diào)用指針變量p的值,然后使其自加,輸出效果等價(jià)于*p,因此,最后輸出的結(jié)果是數(shù)組中的第一個(gè)元素。

在第二條輸出語(yǔ)句中,我們需要弄明白**k的作用,指向指針的指針變量類(lèi)似于指針變量,如果用**k表示一個(gè)數(shù)值,可以確定這條輸出語(yǔ)句的輸出結(jié)果是一個(gè)數(shù)值,而非地址,從表達(dá)式k=&p可以看出,k的值是指針變量p的地址值,p的值改變后,k能實(shí)時(shí)得到改變,那么在第一條輸出語(yǔ)句對(duì)p的改變,在第二條輸出語(yǔ)句中得到了體現(xiàn)。因此,**k輸出的是數(shù)組中的第二個(gè)元素,即4。

綜合上面的分析,可以知道程序最終的輸出結(jié)果是24。

76.D本題主要考查軟件的測(cè)試。軟件測(cè)試的主要目的體現(xiàn)在下面幾個(gè)方面。

(1)軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。

(2)一個(gè)好的測(cè)試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯(cuò)誤。

(3)一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。

軟件測(cè)試的效率是指利用更少的成本創(chuàng)造更多的價(jià)值,提供軟件測(cè)試效率的方法有很多,如制定一個(gè)合理的詳細(xì)的測(cè)試計(jì)劃,了解測(cè)試項(xiàng)目的業(yè)務(wù)需求,集中對(duì)付那些錯(cuò)誤群集的程序等。而選項(xiàng)A所描述的隨機(jī)選取測(cè)試數(shù)據(jù)是不能保證提高測(cè)試效率的,選項(xiàng)B描述的取一切可能的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)顯然不能提高測(cè)試效率,反而使工作量加大,降低測(cè)試效率。

77.C賦值運(yùn)算進(jìn)行時(shí),必須賦值號(hào)兩側(cè)的類(lèi)型一致時(shí),賦值運(yùn)算才進(jìn)行,如果賦值號(hào)兩邊的類(lèi)型不一致,則先將右邊的類(lèi)型強(qiáng)制轉(zhuǎn)換為左邊的類(lèi)型,然后進(jìn)行運(yùn)算。

78.B

\n變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開(kāi)始直到空格之間的輸入整數(shù)都會(huì)被保存到浮點(diǎn)型變量Y中。

\n

79.Dfgets函數(shù)讀取一個(gè)長(zhǎng)度為n-1的字符串。fread函數(shù)按照指定的長(zhǎng)度讀取數(shù)據(jù)項(xiàng),對(duì)應(yīng)二進(jìn)制的打開(kāi)方式。fscanf函數(shù)按指定格式讀取數(shù)據(jù)。getc函數(shù)從指定的文件讀入一個(gè)字符,即從fp所指向的文件中讀入一個(gè)字符賦給ch。故本題答案為D選項(xiàng)。

80.A本題考查的是二維數(shù)組的定義、賦初值和對(duì)二維數(shù)組元素的引用。在funfl函數(shù)中,首先將s[0][k]的值賦給m,然后通過(guò)for循環(huán),遍歷s[1][k]s[n-1][k]之中的數(shù),將遇到的比m大的數(shù)保存到m中。很顯然,這是搜索最大值的算法,搜索的是s[Ol[k]一sin—l][k]之間的最大值。所以,主函數(shù)中funfa,4,O)的功能就是搜索刪[0]~a[3][o]之間的最大值,這4個(gè)值分別是1、11、21、31,所以最終輸出結(jié)果是31。應(yīng)該選擇A)。81.錯(cuò)誤:c=arr[i];正確:ch=arr[i];【解析】由函數(shù)定義可知,函故proc只定義了變量ch,沒(méi)有定義變量C。因此,“c=arr[i]:”應(yīng)改為“ch=arr[i];”。

82.

【解析】要求出數(shù)組周邊元素的平均值,首先要求出周邊元素的和,周邊元素的特點(diǎn)為行或列下標(biāo)為0,或?yàn)镹一1,根據(jù)其特點(diǎn)求出所有周邊元素的和,再求出其平均值,并返回給主函數(shù)。

</i<p)為()。2021-2022年內(nèi)蒙古自治區(qū)赤峰市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下列敘述中正確的是()。

A.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n

B.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為n/2

C.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為log2n

D.對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為nlog2n

2.設(shè)棧S和隊(duì)列Q的初始狀態(tài)為空,元素e1,e2,e3,e4,e5和e6依次通過(guò)棧S,一個(gè)元素出棧后即進(jìn)隊(duì)列Q,若6個(gè)元素出隊(duì)的序列是e2,e4,e3,e6,e5,e1,則棧S的容量至少應(yīng)該是()。

A.6B.4C.3D.2

3.以下敘述中,不正確的是()。

A.使用staticfloata定義的外部變量存放在內(nèi)存中的靜態(tài)存儲(chǔ)區(qū)

B.使用floatb定義的外部變量存放在內(nèi)存中的動(dòng)態(tài)存儲(chǔ)區(qū)

C.使用staticfloatc定義的內(nèi)部變量存放在內(nèi)存中的靜態(tài)存儲(chǔ)區(qū)

D.使用floatd定義的內(nèi)部變量存放在內(nèi)存中的動(dòng)態(tài)存儲(chǔ)區(qū)

4.數(shù)據(jù)在計(jì)算機(jī)存儲(chǔ)器內(nèi)表示時(shí),如果元素在存儲(chǔ)器中的相對(duì)位置能反映數(shù)據(jù)元素之間的邏輯關(guān)系,則稱(chēng)這種存儲(chǔ)結(jié)構(gòu)為()。

A.存儲(chǔ)結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲(chǔ)結(jié)構(gòu)D.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

5.

6.

有以下程序:

main()

{intk=5,n=0;

do

{switch(k)

{case1:

case3:n+=l;k--;break;

defalut:n=0;k--;

case2:

case4:n+=2;k--;break:

}

printf("%d",n);

}while(k>0&&n<5);

}

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

A.235B.0235C.02356D.2356

7.在一個(gè)C語(yǔ)言源程序文件中所定義的全局變量,其作用域?yàn)椋ǎ?/p>

A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.由具體定義位置和extern說(shuō)明來(lái)決定范圍

8.

9.有如下定義:inta[5],*p;p=a;則下列描述錯(cuò)誤的是()。

A.表達(dá)式p=p+1合法的B.表達(dá)式a=a+1是合法的C.表達(dá)式p-a是合法的D.表達(dá)式a+2是合法的

10.對(duì)n個(gè)數(shù)進(jìn)行排序,哪種算法,其時(shí)間復(fù)雜度在最壞和最好都是O(nlogn)()

A.快速排序B.希爾排序C.堆排序D.選擇排序

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

12.有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=Y;y=t;)}main{inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%d\n",a,b,c);}執(zhí)行后輸出結(jié)果是()。A.3,4,5B.5,3,4C.5,4,3D.4,3,5

13.下列4個(gè)關(guān)于C語(yǔ)言的結(jié)論中錯(cuò)誤的是()。

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

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

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

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

14.在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。

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

15.有以下程序:#include<stdio.h>main(){inti=0.s=0;for(;;)if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;}printf("%d\n",s);程序運(yùn)行后的輸出結(jié)果是()。

A.10B.13C.21D.程序進(jìn)入列循環(huán)

16.#define能作簡(jiǎn)單的替代,用宏來(lái)替代計(jì)算多項(xiàng)式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語(yǔ)句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

17.sizeof(float)是()。

A.一種函數(shù)調(diào)用B.一種函數(shù)定義C.一個(gè)浮點(diǎn)表達(dá)式D.一個(gè)整型表達(dá)式

18.若有說(shuō)明語(yǔ)句:charc='\72'則變量c()。

A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.說(shuō)明不合法,c的值不確定

19.若已知一個(gè)棧的進(jìn)棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。

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

20.以下敘述中錯(cuò)誤的是()。

A.向量屬于線性結(jié)構(gòu)B.二叉鏈表是二叉樹(shù)的存儲(chǔ)結(jié)構(gòu)C.棧和隊(duì)列是線性表D.循環(huán)鏈表是循環(huán)隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)

二、2.填空題(20題)21.要使以下程序段輸出10個(gè)整數(shù),請(qǐng)?zhí)钊胍粋€(gè)整數(shù);

for(i=0;i<=【】;printf("%d\n",i+=2));

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

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

23.用復(fù)合的賦值運(yùn)算符將變量x中的值增大2的賦值表達(dá)式是【】。

24.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。

#definePI3.14159;printf("PI=%f",PI);

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

#include<stdio.h>

main()

{intfun();fun();}

fun()

{staticinta[3]={0,1,2};

inti;

for(i=0;i<3;i++)a[i]+=a[i];

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

printf("\n");}

26.下面的函數(shù)strcat(str1,str2)實(shí)現(xiàn)將字符串str2拼接到字符串str1后面的功能。請(qǐng)?zhí)羁帐怪暾?/p>

char*strcat(str1,str2)

char*str1,*str2;

{char*t=str1;

while(【】)str1++;

while(【】);

return(t);}

27.寫(xiě)出下列程序的輸出結(jié)果______。

main()

{intn=0;

while(n++<=1);

printf("%d,",n);

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

}

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

mycmp(char*s,char*t)

{while(*s==*t)

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

++s;++t;

}

return(【】)

}

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

main()

{unsignedshorta=65536;intb;

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

}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

31.在面向?qū)ο蠓椒ㄖ?,允許作用于某個(gè)對(duì)象上的操作稱(chēng)為【】。

32.用樹(shù)型結(jié)構(gòu)表示實(shí)體類(lèi)型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱(chēng)為【】。

33.類(lèi)是一個(gè)支持集成的抽象數(shù)據(jù)類(lèi)型,而對(duì)象是類(lèi)的【】。

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

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

main()

{inti;

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

f(i);}

f(j)

{intj;

staticinta=1000;

autointk=1;

++k;

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

a+=10;}

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

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

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

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

intn='c';

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("morning");

case'd':printf("class");

}

38.以下定義的結(jié)構(gòu)體類(lèi)型擬包含兩個(gè)成員,其中成員變量info用來(lái)存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請(qǐng)將定義補(bǔ)充完整。

structnode

{intinfo;

【】link;};

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

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[o];

}

main()

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

s=f(&aa[0],3);printf("%d\n",s);

}

40.注釋一般分為序言性注釋和______注釋。

三、1.選擇題(20題)41.若a、b、c、d都是血型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語(yǔ)句是()。

A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);

42.如果要限制一個(gè)變量,命名其只能為本文件所用,必須通過(guò)()來(lái)實(shí)現(xiàn)。

A.外部變量說(shuō)明B.靜態(tài)內(nèi)部變量C.靜態(tài)外部變量D.局部變量說(shuō)明

43.下列敘述中,正確的是______。

A.軟件就是程序清單B.軟件就是存放在計(jì)算機(jī)中的文件C.軟件應(yīng)包括程序清單及運(yùn)行結(jié)果D.軟件包括程序和文檔

44.在C語(yǔ)言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是()

A.%B./C.<D.!

45.下列描述錯(cuò)誤的是()。

A.繼承分為多重繼承和單繼承

B.對(duì)象之間的通信靠傳遞消息來(lái)實(shí)現(xiàn)

C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征

D.類(lèi)是具有共同屬性、共同方法的對(duì)象的集合

46.若變量已正確定義,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其輸出結(jié)果是

A.程序段有語(yǔ)法錯(cuò)B.3,5,3C.3,5,5D.3,5,7

47.軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A.低內(nèi)聚低耦合

B.高內(nèi)聚低耦合

C.低內(nèi)聚高耦合

D.高內(nèi)聚高耦合

48.軟件開(kāi)發(fā)離不開(kāi)系統(tǒng)環(huán)境資源的支持,其中必要的測(cè)試數(shù)據(jù)屬于A.硬件資源B.通信資源C.支持軟件D.輔助資源

49.下列關(guān)于字符串的說(shuō)法中錯(cuò)誤的是

A.在C語(yǔ)言中,字符串是借助于字符型一維數(shù)組來(lái)存放的,并規(guī)定以字符′\0′作為字符串結(jié)束標(biāo)志

B.′\0′作為標(biāo)志占用存儲(chǔ)空間,計(jì)入串的實(shí)際長(zhǎng)度

C.在表示字符串常量的時(shí)候不需要人為在其末尾加入′\0′

D.在C語(yǔ)言中,字符串常量隱含處理成以′\0′結(jié)尾

50.若輸入1,2,下列程序的運(yùn)行結(jié)果為_(kāi)_____。#defineSWAP(a,b)t=b;b=a;a=tmain(){inta,b,t;scanf("%d,%d",&a,&b);SWAP(a,b);printf("a=%d,b=%d\n",a,b);}

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

51.已有定義inta=-2;和輸出語(yǔ)句printf("%81x",a);以下正確的敘述是()。

A.整型變量的輸出形式只有%d一種

B.%x是格式符的一種,它可以適用于任何一種類(lèi)型的數(shù)據(jù)

C.%x是格式符的一種,其變量的值按十六進(jìn)制輸出,但%81x是錯(cuò)誤的

D.%81x不是錯(cuò)誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度

52.有以下程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤(pán)輸入的數(shù)據(jù)應(yīng)該是()。

A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)

53.設(shè)有以下語(yǔ)句:charstr1[]="string",str2[8],*str3,*str4="string";則______不是對(duì)庫(kù)函數(shù)的正確調(diào)用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

54.有以下程序

#include<string.h>

main()

{charp[]={′a′,′b′,′c′},q[10]={′a′,′b′,′c′};

printf("%d%d\n",strlen(p),strlen(q));}

以下敘述中正確的是

A.在給p和q數(shù)組置初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,故輸出的長(zhǎng)度都為3

B.由于p數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能確定,但q數(shù)組中字符串長(zhǎng)度為3

C.由于q數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能確定,但p數(shù)組中字符串長(zhǎng)度為3

D.由于p和q數(shù)組中都沒(méi)有字符串結(jié)束符,故長(zhǎng)度都不能確定

55.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+1);printf((“%d\n”,a);}A.8B.9C.17D.20

56.若說(shuō)明int*p,n;則通過(guò)語(yǔ)句scanf能夠正確讀入數(shù)據(jù)的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",n);

D.p=&n;scanf("%d",p);

57.若有以下結(jié)構(gòu)體定義,則______是正確的引用或定義。structexample{intx;inty;}v1;

A.example.x=10

B.examplev2.x=10

C.structv2;v2.x=10

D.structexamplev2={10};

58.設(shè)有以下說(shuō)明和定義:typedefunion{longi;intk[5];charc;}DATE;structdate{intcat;DATEcow;doubledog;}too;DATEmax;則下列語(yǔ)句的執(zhí)行結(jié)果是______。printf("%d",sizeof(structdate)+sizeof(max));

A.26B.30C.18D.8

59.可以在C語(yǔ)言中用做用戶標(biāo)識(shí)符的是______。

A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG

60.設(shè)p1和p2是指向一個(gè)血型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語(yǔ)句是

A.k=*p1+*p2B.p2=k;C.p1=p2;D.k=*p1*(*p2);

四、選擇題(20題)61.

62.若有定義語(yǔ)句:intx=10;,則表沃式㈣的值為()。A.一10B.-20C.0D.10

63.

64.對(duì)線性表進(jìn)行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼的檢索頻率排好序

65.有下列程序:

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

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

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

67.

68.

69.已知一棵二叉樹(shù)前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹(shù)的后序遍歷為()。

A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG

70.軟件設(shè)計(jì)中衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)是()。

A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機(jī)制和控制方法

71.以下選項(xiàng)中,能用做用戶標(biāo)識(shí)符的是()。

A.voidB.8_8C._0_D.unsigned

72.

73.若要用函數(shù)fopen打開(kāi)一個(gè)新的二進(jìn)制文件,該文件要既能讀也能寫(xiě),則應(yīng)以()方式打開(kāi)文件。

A."wb"B."wb+"C."rb+"D."rb"

74.設(shè)有如下程序

#include<stdio.h>

main()

{

int**k,*j,i=100;

j=&i;k=&j;

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

}

上述程序的輸出結(jié)果是

A.運(yùn)行錯(cuò)誤B.100

C.i的地址D.j的地址

75.有下列程序

main()

{

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

p=a;

k=&p;

printf("%d",*(p++));

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

}

運(yùn)行該程序,其輸出結(jié)果是

A.4B.22

C.24D.46

76.為了提高測(cè)試的效率,應(yīng)該()。

A.隨機(jī)選取測(cè)試數(shù)據(jù)

B.取一切可能的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)

C.在完成編碼以后制定軟件的測(cè)試計(jì)劃

D.集中對(duì)付那些錯(cuò)誤群集的程序

77.已知:chara;intb;floatc;doubled;執(zhí)行語(yǔ)句“c=a+b+c+d;”后,變量c的數(shù)據(jù)類(lèi)型是()。

A.intB.charC.floatD.double

78.

有以下程序段

intj;floaty;charname[50]:

scanf("%2d%f%s",&i,&.y,name):

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

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

79.函數(shù)fgetc的功能是從指定文件中讀入一個(gè)字符,以下與其功能完全相同的函數(shù)是()。

A.freadB.fscanfC.fgetsD.getc

80.有以下程序

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<strin9.h>#include<stdi0.h>#defineM80voidp

溫馨提示

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