2021年湖南省常德市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第1頁
2021年湖南省常德市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第2頁
2021年湖南省常德市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第3頁
2021年湖南省常德市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第4頁
2021年湖南省常德市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年湖南省常德市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。

A.7B.8C.9D.10

2.若有定義“charc=“hello!”;”,則以下說法正確的是()。

A.c占用7字節(jié)內(nèi)存B.c是一個字符串變量C.定義中有語法錯誤D.c的有效字符個數(shù)是6

3.若有序表的關(guān)鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查找關(guān)鍵字b的過程中,先后進行的關(guān)鍵字依次為()

A.f,c,BB.f,d,BC.g,c,BD.g,d,B

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

A.13579B.48579C.48549D.48999

5.以下程序是用來計算兩個非負數(shù)之間的最大公約數(shù):我們假設(shè)x,y中最大的那個數(shù)的長度為n,基本運算時間復(fù)雜度為O(1),那么該程序的時間復(fù)雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)

6.對n個元素的有序表A[1..n]進行順序查找,其成功查找的平均查找長度(即在查找表中找到指定關(guān)鍵碼的元素時,所進行比較的表中元素個數(shù)的期望值)為()

A.nB.(n+1)/2C.log2nD.n^2

7.下列算法中,()算法用來求圖中某頂點到其他頂點所有頂點之間的最短路徑。

A.DijkstraB.FloyedC.PrimD.Kruskal

8.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745

9.下面程序的運行結(jié)果是()。#include"stdio.h"main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elseprintf("#");}}

A.*#*#*B.#*#*#*C.*#*#D.#*#*

10.

11.下列關(guān)于數(shù)據(jù)結(jié)構(gòu)的敘述中,正確的是()。

A.數(shù)組是同類型值的集合

B.遞歸算法的程序結(jié)構(gòu)比迭代算法的程序結(jié)構(gòu)更為精煉

C.樹是一種線性結(jié)構(gòu)

D.用一維數(shù)組存儲二叉樹,總是以先序遍歷的順序存儲各結(jié)點

12.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。

A.從文件file中讀取長度為n的字符串存入字符數(shù)組s中

B.從文件file中讀取長度不超過n-1個字符的字符串放到字符數(shù)組s中

C.從文件file中讀取n個字符串存入字符數(shù)組s中

D.從文件file中讀取長度為n-1個字符的字符串存入字符數(shù)組s中

13.有以下程序(函數(shù)fun只對下標(biāo)為偶數(shù)的元素進行操作):#include<stdio.h>voidfun(int*n){inti,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;t[a[i];a[i]=a[k];a[k]=t;}}main{intaa[lO]=[1,2,3,4,5,6,7],a;fun(aa,7);for(i=0;i<7;i++)printf("%d,",aa[i]);printf("n");}程序運行后的輸出結(jié)果是()。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,

14.下面是有關(guān)C語言字符數(shù)組的描述,其中錯誤的是()。

A.不可以用賦值語句給字符數(shù)組名賦字符串

B.可以用輸入語句把字符串整體輸入給字符數(shù)組

C.字符數(shù)組中的內(nèi)容不一定是字符串

D.字符數(shù)組只能存放字符串

15.下面程序運行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

16.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

17.有以下程序:程序運行后的輸出結(jié)果是()。A.13442B.13431C.01234D.02431

18.在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為()。

A.31B.32C.16D.15

19.如果以鏈表作為棧的存儲結(jié)構(gòu),則出棧操作時()。

A.必須判別棧是否滿B.必須判別棧是否為空C.必須判別棧元素類型D.可不做任何判斷

20.

二、2.填空題(20題)21.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

22.軟件危機出現(xiàn)于60年代末,為了解決軟件危機,人們提出了【】的原理來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。

23.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

}

24.計算圓的周長、面積和球體積。

#definePI3.1415926

#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R

main()

{floatr,l,s,v;

printf("inputaradus:");

scanf("%f",&r);

CIRCLE(r,l,s,v);

printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);

}

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

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

26.對于長度為n的順序存儲的線性表,當(dāng)隨機插入和刪除—個元素時,需平均移動元素的個數(shù)為【】。

27.若有定義:inta=10,b=8,c=4;然后順序執(zhí)行下列語句后,變量a中的值是()。c=(b-=(a-4));a=(c%2)+(b-1);

28.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,【】給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)和物理存取方法。

29.一棵二叉樹第6層(根結(jié)點為第一層)的結(jié)點最多為______個。

30.以下程序用以刪除字符串中所有的空格,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[100]={"OurteacherteachClanguage!"};inti,j;

for(i=j=0;s[i]!='\0';i++)

if(s[i]!=''){()}

s[j]='\0';

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

}

31.在長度為n的線性表中查找一個表中不存在的元素,需要的比較次數(shù)為【】。

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

33.下面程序中函數(shù)creat用于建立一個帶頭結(jié)點的單向鏈表,新產(chǎn)生的結(jié)點總是插在鏈表的末尾,單向鏈表的頭指針作為函數(shù)值返回。將程序補充完整。

#include<stdiao.h>

structlist

{chardata;structlist*next;};

structlist*creat()

{

structlist*h,*p,*q;charch;

h=【】malloc(sizeof(structlist));

p=q=h;ch=getchar();

while(ch!='?')

{

p=【】malloc(sizeof(structlist));

p->data=ch;q->next=p;q=p;ch=getchar();

}

p->next='\0';

【】;

}

34.排序是計算機程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。

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

scanf("%d",【】);

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

36.沒有chara,b;,,若要通過a&b運算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進制是【】。

37.軟件的【】設(shè)計又稱為總體結(jié)構(gòu)設(shè)計,其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。

38.對一組記錄{54,38,96,23,15,72,60,45,83}進行直接插入排序時,當(dāng)插入第5個記錄到有序表時,尋找插入位置需比較【】次。

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

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

#include<string.h>

main()

{charch[]="abc",x[3][4];inti;

for(i=0;i<3;i++)strcpy(x[i],ch);

for(i=0;i<3;i++)printf("%s",&x[i][i]);

printf("\n");

}

三、1.選擇題(20題)41.下面函數(shù)的功能是將指針t2所指向的線性鏈表,鏈接到t1所指向的鏈表的末端。假定t1所指向的鏈表非空structnode{floatx;structnode*next;};connect(structnode*t1,structnode*t2){if(t1->next==NULL)t1->next=t2;elseconnect(______,t2);}要實現(xiàn)此功能則應(yīng)該填入的選項是

A.t1.nextB.++t1.nextC.t1->nextD.++t1->next

42.一個算法應(yīng)該具有“確定性”等5個特性,下面對另外4個特性的描述中錯誤的是()A.有零個或多個輸入B.有零個或多個輸出C.有窮性D.可行性

43.C語言中不合法的字符串常量是

A.\121B.'Y'C.\n\nD.ABCD\x6d

44.有以下程序:fun(intx,inty){return(x+y);}main(){inta=1,b=2,c=3,Sum;sum=fun((a++,b++,a+b),c++);printf("%d",sum);}執(zhí)行后的輸出結(jié)果是______。

A.6B.7C.8D.9

45.C語言中while循環(huán)和do-while循環(huán)的主要區(qū)別是______。

A.do-while的循環(huán)體至少無條件執(zhí)行一次

B.while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格

C.do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)

D.do-while的循環(huán)體不能是復(fù)合語句

46.有以下程序

#include<string.h>

main()

{charp[20]={′a′,′b′,′c′,′d′},q[]="abc",r[]="abcde";

strcat(p,r);strcpy(p+strlen(q),q);

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

}

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

A.9B.6C.11D.7

47.下列選項中,不屬于模塊間耦合的是()。A.數(shù)據(jù)耦合B.標(biāo)記耦合C.異構(gòu)耦合D.公共耦合

48.程序流程圖(PFD)中的箭頭代表的是

A.數(shù)據(jù)流B.控制流C.調(diào)用關(guān)系D.組成關(guān)系

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

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

50.以下選項中可作為C語言合法整數(shù)的是A.10110BB.386C.0XffaD.x2a2

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

A.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定大

B.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小

C.一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小

D.上述3種說法都不對

52.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是()。

A.1B.2C.4D.死循環(huán)

53.以下4個選項中,不能看作一條語句的是

A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;

54.設(shè)x=015,則x=x017的值是()。

A.1111B.11111101C.10D.11000000

55.下列說法不正確的是()。

A.C語言程序是以函數(shù)為基本單位的,整個程序由函數(shù)組成

B.C語言程序的一條語句可以寫在不同的行上

C.C語言程序的注釋行對程序的運行功能不起任何作用,所以注釋應(yīng)該盡可能少寫

D.C語言程序的每個語句都以分號結(jié)束

56.C語言中()

A.不能使用do-while語句構(gòu)成的循環(huán)

B.do-while語句構(gòu)成的循環(huán)必須用break語句才能退出

C.do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達式值為非零時結(jié)束循環(huán)

D.do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達式值為零時結(jié)束循環(huán)

57.下列對于軟件測試的描述中正確的是______。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能地多發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

58.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。

A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ

59.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

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)

60.有如下程序

main()

{charch[2][5]={"6937","8254"},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)p[i]=ch[i];

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

for(j=0;p[i][j]>′\0′;j+=2)

s=10*s+p[i][j]-′0′;

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

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

A.69825B.63825C.6385D.693825

四、選擇題(20題)61.有如下程序:main(){intn[5]={0,0,0},i,k=2;for(i=0;i&printf("%d\n",n[k]););}該程序的輸出結(jié)果是()。A.不確定的值B.2C.1D.0

62.以下選項錯誤的是

63.數(shù)據(jù)的存儲結(jié)構(gòu)是指

A.存儲在外存中的數(shù)據(jù)B.?dāng)?shù)據(jù)在計算機中的順序存儲方式

C.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示D.?dāng)?shù)據(jù)所占的存儲空間量

64.

65.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A.棧B.樹C.隊列D.--X樹

66.

67.下列是用戶自定義標(biāo)識符的是

A._w1B.3_xyC.intD.LINE-3

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

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

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

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

69.(39)在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是()

A.樹結(jié)構(gòu)

B.網(wǎng)結(jié)構(gòu)

C.線性表

D.二維表

70.以下程序運行后的輸出結(jié)果是()。

f(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inta=2,i;

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

printf("%4d",f(a));

A.789B.678C.567D.876

71.當(dāng)變量c的值不為2、4、6時,值也為”真”的表達式是()。

A.(c>=2&&c<=6)&&(c%21=1)

B.(c==2)ll(e==4)II(C==6)

C.(C>=2&&c<=6)&&!(c%2)-

D.(c>=2&&c<=6)Il(c!=3)I|(C!=5)

72.

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

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

74.在以下選項中,能IE確聲明數(shù)組并進行初始化的語句是()。

A.str=newDimension(1,2,3);

B.str=newdimension(1,2,3);

C.str:newArray(1,2,3);

D.str=newarray(1,2,3);

75.在下列關(guān)系運算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是

A.連接B.選擇C.投影D.笛卡兒乘積

76.計算機能直接執(zhí)行的程序是()。

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

77.下列敘述中正確的是()。A.在switch語句中,不一宗使用break語句

B.在switch語句中,必須使用default

C.break語句必須與swifth語句中的case配對使用

D.break語句只能用于swifth著句

78.要求通過while循環(huán)不斷讀人字符,當(dāng)讀入字母N時結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是

()。

79.

A.intB.floatC.doubleD.不確定

80.若有以下定義和語句:

chars[10]="abcd!",*s2="\nl23\\";

Drintf("%d%d\n",strlen(sl),strlen(s2));

則輸出結(jié)果是()。

A.55B.105C.107D.58

五、程序改錯題(1題)81.給定程序中,函數(shù)proc()的功能是:使數(shù)組中的元素的值增加10倍。修改其中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是統(tǒng)計s所指字符串中的數(shù)字字符個數(shù),并將其作為函數(shù)值返回。例如,s所指字符串中的內(nèi)容是2def35adh253kjsdf7/kj8655x,函數(shù)fun()返回值為11注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結(jié)束符\0的長度。故選A。

2.Cc是字符變量,“hello!”是字符串。字符串不能賦給字符變量,定義中有語法錯誤。本題答案為C選項。

3.A

4.C本題考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實現(xiàn)的功能是以b[0]=b[o]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過調(diào)用fun函數(shù),按上面的規(guī)則對數(shù)組a重新賦值,最后輸出數(shù)組a。

5.B

6.B

7.A

8.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。

9.A解析:分析程序呵知.程序循環(huán)5次,然后利用if語句決定每次循環(huán)時輸出的字符。當(dāng)i為奇數(shù)時,i%2=1,if(i%2)為真,輸出“*”;當(dāng)i為偶數(shù)時,i%2=0,if(i%2)為假,執(zhí)行else語句,輸出“#”,所以當(dāng)i取1、3、5值時輸出“*”,當(dāng)i取2、4值時輸出“#”。

10.D

11.B

12.B解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“s”可以是一個字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個數(shù);“fp”是指向該文件的文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串放到字符數(shù)組s中;讀入字符串后會自動在字符串末尾加入“'\\0'”結(jié)束符,表示字符串結(jié)束。

13.A對下標(biāo)為偶數(shù)的元素進行降序排序,下標(biāo)為奇數(shù)元素保持不變。

14.D\n用來存放字符量的數(shù)組稱為字符數(shù)組。字符數(shù)組也可以是二維或多維數(shù)組,對一個字符數(shù)組,如果不作初始化賦值,則必須說明數(shù)組長度,還可用printf函數(shù)和scarlf函數(shù)一次性輸出/輸入一個字符數(shù)組中的字符串,而不必使用循環(huán)語句逐個地輸入/輸出每個字符。通常用一個字符數(shù)組來存放一個字符串。所以D選項不正確。

\n

15.C解析:表達式“x+=-z---y”等價于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。

16.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。

17.Bmain函數(shù)中定義包含5個元素的數(shù)組m,每個元素都是NODE類型。指針p指向數(shù)組第1個元素,指針q指向數(shù)組最后一個元素。while循環(huán)使用p、q從首尾向中間遍歷,遍歷的同時為各個元素賦值。所以第1輪循環(huán),i的值為0,先執(zhí)行的值為++i,后執(zhí)行i++的值也為1,m[0].k和m[4].k的值都為1;接著第2輪循環(huán),i的值為2,先執(zhí)行的值為3,后執(zhí)行i++的值也為3,m[l].k和m[3].k的值都為3;第3輪循環(huán),p和q指向的都是m[2]元素,指針相同,循環(huán)結(jié)束,此時i的值為4,即m[2].k賦值為4。綜上,程序輸出:13431。本題答案為B選項。

18.C解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個結(jié)點。對于滿二叉樹,每一層上的結(jié)點數(shù)都達到最大值,即在滿二叉樹的第k層上有2k-1個結(jié)點。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點在第5層上,即其結(jié)點數(shù)為2(k-1)=2(5-1)=16。

19.B

20.A

21.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

22.軟件工程學(xué)軟件工程學(xué)

23.k=p;k=p;解析:要找數(shù)組中最大元素的下標(biāo),首先預(yù)設(shè)數(shù)組首元素下標(biāo)為臨時最大元素的下標(biāo),從首元素開始順序向后繼元素逐一比較,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo),直至比較了數(shù)組的全部元素后,臨時最大元素下標(biāo)就是數(shù)組中最大元素的下標(biāo)。程序中,變量k用于存儲臨時最大元素下標(biāo),變量p控制順序比較的循環(huán)變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k]更大時,用p更新k。所以在下劃線處應(yīng)填入代碼“k=p;”。

24.CIRCLE(RLSV)S=PI*R*Rr1sv

25.86518651解析:主程序中,第一次循環(huán)時,i=0,調(diào)用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調(diào)用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調(diào)用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調(diào)用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。

26.n/2n/2解析:刪除—個元素,平均移動的元素個數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個元素,平均移動元素個數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2:所以總體平均移動元素個數(shù)為n/2。

27.22解析:本題考查的是基本賦值運算符和賦值表達式。表達式c=(b-=a-4)等價于c=(b=b-a+4)等價于c=b=2;表達式a(c%2+(b-1))等價于a=1+2-1=2;因此最后a的值為2。

28.內(nèi)模式內(nèi)模式解析:內(nèi)模式又稱為物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。

29.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結(jié)點。第6層的結(jié)點數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結(jié)點最多數(shù)”和“某一層的結(jié)點最多數(shù)”。前者的計算是深度為m的二叉樹最多有2m-1個結(jié)點。

30.s[j]=s[i];j++;s[j]=s[i];j++;解析:本題中相當(dāng)于字符串s中存儲著含有空格的字符,當(dāng)發(fā)現(xiàn)空格的時候就用這個空格字符后面的字符前移覆蓋這個空格字符,依次類推向后繼續(xù)。因此,應(yīng)填s[j]=s[i];j++;兩條語句。

31.nn解析:在長度為n的線性表中查找一個表中不存在的元素,需要的比較次數(shù)為n。

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

33.(structlist*)(structlist*)return(h)

34.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

35.k*kk\r\n*k解析:scanf()函數(shù)有兩個參數(shù),第一個參數(shù)是格式控制部分(格式控制部分是字符串,主要由%號和格式字符組成)第二個參數(shù)是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空位于scanf()函數(shù)的第二個參數(shù)處,所以,第一個空應(yīng)該填地址k。printf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時原樣輸出)第二個參數(shù)為一輸出表達式表(輸出表達式表是由若干個需要計算和輸出的表達式組成的,表達式之間用逗號分隔開)。而第二個空位于printf()函數(shù)的第二個參數(shù)處,所以應(yīng)該填*k。

36.1000001010000010解析:運算“&”的規(guī)則是只有當(dāng)兩個相應(yīng)的二進制位都為1時,該位的結(jié)果才為1。要保留第2、8位,只要將其與二進制數(shù)10000010相與。

37.概要概要

38.11解析:直接插入排序是在已排好序的序列中用順序查找法查找插入位置。第5個記錄是15,15和23比較,就知道15應(yīng)放在原23放的位置,23及其以后的記錄后移。

39.99解析:本題的字符串中共有9個字符,它們分別是\'I\'、\'B\'、\'M\'、\'\\n\'、\'0\'、\'1\'、\'2\'、\'\\1\'、\'\\\\\',其中,'\\n'表示換行,'\\\\'表示反斜杠字符'\\',所以本題的最后輸出結(jié)果為9。

40.abcbcc

41.C解析:成員next中存放的是下一個結(jié)點的地址。

42.B解析:本題考核的知識點是算法的性質(zhì)。算法是為解決某個特定問題而采取的確定的且有限的步驟,一個算法應(yīng)當(dāng)具有以下5個基本特性:1.有窮性,就是指一個算法應(yīng)當(dāng)包含有限個操作步驟。2.確定性,就是說算法中每一條指令必須有確切的含義,不能有二義性,對于相同的輸入必能得出相同的執(zhí)行結(jié)果。3.有零個或多個輸入。4.可行性,就是說算法中指定的操作,都可以通過已經(jīng)實現(xiàn)的基本運算執(zhí)行有限次實現(xiàn),5.有一個或多個輸出。由此可知選項B不正確,所以,4個選項中選項B符合題意。

43.B解析:字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是含法的字符串常量,而選B)是一個字符常量。

44.C解析:在fun((a++,b++,a+b),c++)函數(shù)中先計算括號內(nèi)的“(a++,b++,a+b)”逗號運算符,整個逗號表達式最后的值為5;接下來調(diào)用fun()函數(shù),此時原句變?yōu)閒un(5,c++)。運算c++表示在使用完c后再將c的值加1,函數(shù)的返回值為8。

45.A解析:本題考核C++語言中while循環(huán)和do-while循環(huán)之間的區(qū)別。do-while語句與while語句不同的是,do-while循環(huán)中的<語句>至少會執(zhí)行一次,而while語句中當(dāng)條件在第一次循環(huán)就不滿足時,語句一次也不會執(zhí)行。

46.B解析:strcpy()函數(shù)的功能是將字符串q復(fù)制到從p[3]位置開始的存儲單元,同時復(fù)制字符串結(jié)束標(biāo)志'\\0'到p[6]中。函數(shù)strlen()返回的是字符串中不包括'\\0'在內(nèi)的實際長度,故本題答案為B)

47.C解析:模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項C),沒有這種耦合方式。注意:評價模塊獨立性的主要標(biāo)準(zhǔn),以及對它們的定義和分類。

48.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過程設(shè)計表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。

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

50.C解析:本題考核的知識點是整數(shù)及常數(shù)的表示方法。在C語言中,整數(shù)常量可以用十進制、八進制和十六進制來表示,選項A為二進制表示,故選項A不正確;選項B是八進制表示法,但在八進制數(shù)中,各個位數(shù)只能為數(shù)字。到7中的一個,而在選項B中,有一個數(shù)字8,故選項B不正確;選項C為十六進制表示法正確:選項D中也為十六進制表示法,但十六進制數(shù)以O(shè)x開頭,故選項D不正確,所以,4個選項中選項c符合題意。

51.DD?!窘馕觥克惴ǖ臅r間復(fù)雜度和空間復(fù)雜度是從不同的角度來衡量算法的執(zhí)行情況的,它們之間沒有內(nèi)在聯(lián)系。

52.A解析:在程序語句中,k的初始值為5,進行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語句,輸出1,此時k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時,k自減1變?yōu)?,為假,退出while循環(huán)語句。所以程序的最后結(jié)果為1。

53.D解析:選項D)為兩條語句。

54.C解析:本題主要考查按位異或運算,x=015(二進制00001101),017的二進制為000001111,兩者異或結(jié)果為00000010。

55.C解析:本題涉及C語言的3個基本知識點:①C語言的源程序是由函數(shù)構(gòu)成的,函數(shù)是其基本單位,每一個函數(shù)完成相對獨立的功能,其中只能包括一個主函數(shù);②C語言規(guī)定每個語句以分號結(jié)束,其書寫格式是自由的,一條語句可以寫在不同的行上,或者一行也可以寫多條語句;⑧注釋行雖然對程序的運行不起作用,但是它可以方便程序員閱讀,提高程序的可讀性和可移植性,所以書寫注釋行還是很有必要的。

56.D

57.C解析:軟件測試的目的:盡可能地多發(fā)現(xiàn)程序中的錯誤,不能也不可能證明程序沒有錯誤,軟件測試是一個發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件調(diào)試的目的是發(fā)現(xiàn)錯誤的位置,并改正錯誤。

58.B對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結(jié)點一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問左予樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問左子樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根結(jié)點D,然后訪問右子樹Y;③接著訪問根B,再訪問右子樹E;④訪問左子樹BDEY后,接著訪問根結(jié)點A,接著訪問右子樹CFXZ;⑤右子樹CFXZ的訪問順序同理可得:FCZX。

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

60.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char*p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p[1]元素指向二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應(yīng)關(guān)系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=s*10+p[i][j]-\'0\';的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當(dāng)前p[i][j]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i]\ue009[j]>\'\\0\'是指p[i][j]中的字符只要不是字符串結(jié)束標(biāo)志\'\\0\'就繼續(xù)循環(huán),語句j+=2;是使下標(biāo)j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是\'6\'和\'3\',然后從p[1]所指向的字符串'8254'中一個隔一個地取出字符,分別是\'8\'和\'5\',同時經(jīng)過轉(zhuǎn)換和相加運算后,結(jié)果s中的值應(yīng)該是6385。

61.D本題for循環(huán)中,當(dāng)i=0時,判斷條件i&printf("%d\n",n[k]),此時i的值是0,輸出n[k]的值也為0,0&0結(jié)果還是0,條件不成立,退出循環(huán)。所以最后輸出結(jié)果為0。

62.D在選項A中的語句沒有一條是錯誤的。選項B和C中有一個逗號表達式,選項B中是x=0,y=x+1;,在選項C中是y=x+1,z=x+y;。所以,B和C中也沒有錯誤。選項D中的最后一條語句是以逗號結(jié)束的,而C語言中不能用逗號作為一個語句的結(jié)束標(biāo)志,每一條語句最后應(yīng)該是分號,所以,D選項中的程序是錯誤的。

63.C數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。數(shù)據(jù)結(jié)構(gòu)在計算機中的表示稱為數(shù)據(jù)的物理結(jié)構(gòu),又稱存儲結(jié)構(gòu)。它包括數(shù)據(jù)元素的表示和關(guān)系的表示。數(shù)據(jù)之間的

溫馨提示

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

評論

0/150

提交評論