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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.由權(quán)值分別為3,8,6,2,5的葉子結(jié)點生成一棵哈夫曼樹,它的帶權(quán)路徑長度為________。

A.24B.48C.72D.53

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

A.aChedB.deCabC.deabeD.Cedba

3.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6

4.在C語言中,退格符是

A.\nB.\tC.\fD.\b

5.以下語句中存在語法錯誤的是()。A.charss[6][20];s[1]="right?";

B.charss0[20]={"right?"};.

C.char*ss[6];s[1]="right?";

D.char*ss[={"rignt?"};

6.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運行后的輸出結(jié)果是

A.12B.123C.234D.345

7.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。

A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1

8.

9.若有如下程序:#definePI3.1415926#defineA(r)2*PI*rmain(){floata,1;a=3.0;1=A(a);printf("r=%.2f,1=%.2f\n",a,1);}則程序運行后的輸出結(jié)果是()

A.r=3.001=18.85

B.3.00,18.85

C.r=3.0000001=18.8495555

D.r=3.01=18.8495555

10.單鏈表中,增加一個頭結(jié)點的目的是為了()。

A.使單鏈表至少有一個結(jié)點B.標(biāo)識表結(jié)點中首結(jié)點的位置C.方面運算的實現(xiàn)D.說明單鏈表是線性表的鏈?zhǔn)酱鎯?/p>

11.設(shè)棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。

A.e1、e2、e3、e4、e5

B.e5、e4、e3、e2、e1

C.e2、e4、e3、e5、e1

D.e3、e4、e1、e2、e5

12.

13.以下正確的字符串常量是()。

A.\\\B.'abc'C.OlympicGames

14.以下選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

15.用數(shù)組r存儲靜態(tài)鏈表,結(jié)點的next域指向后繼,工作指針j指向鏈中結(jié)點,使j沿鏈移動的操作為()。

A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next

16.與單鏈表相比,雙向鏈表的優(yōu)點之一是()。

A.插入、刪除操作更加簡單B.可以隨機(jī)訪問C.可以省略表頭指針或表尾指針D.順序訪問相鄰結(jié)點更加靈活

17.有以下程序:#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序運行后的輸出結(jié)果是()。

A.9,18B.8,11C.7,11D.10,14

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

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

19.計算機(jī)算法必須具備輸入、輸出和()等5個特性。

A.可行性、可移植性和可擴(kuò)充性B.可行性、確定性和有窮性C.確定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性

20.

二、2.填空題(20題)21.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為______。

22.最簡單的交換排序方法是______。

23.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達(dá)式是______。

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

longfun5(intn)

{longs;

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

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

25.在一棵二叉樹上第6層的結(jié)點個數(shù)最多是______個。

26.下列程序用來將從鍵盤上輸入的2個字符串進(jìn)行比較,然后輸出2個字符串中第1個不相同字符的ASCII碼之差。例如,輸入的2個字符串分別為abcdef和abceef,則輸出為-1。

#include

main()

{charstr[100],str2[100],c;

inti,s;

printf("\ninputstring1:\n");gest(str1);

printf("\ninputstring2:\n");gest(str2);

i=0;

while((strl[i]==str2[i]&&(strl[i]!=【】))

i++;

s=【】;

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

27.在C語言中,可以利用【】,將一個表達(dá)式的值轉(zhuǎn)換成指定的類型。

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

#include<strlng.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");

29.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。

30.算法執(zhí)行過程中所需要的基本運算次數(shù)稱為算法的______。

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

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

32.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

33.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用【】對其中的圖形元素進(jìn)行確切解釋。

34.用高級語言編寫的程序稱為【】程序,它可以通過解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過編譯程序一次翻譯產(chǎn)生目標(biāo)程序,然后執(zhí)行。

35.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。

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

main()

{inta=10;

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

}

37.以下程序的功能是調(diào)用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結(jié)果。請?zhí)羁铡?/p>

intfun(intn)

{

intm=0,f=1,i;

for(i=1:i<=n;i++)

{

m+=i*f;

f=______;

}

returnm;

}

main()

{printf(“m=%d\n”,______)};

38.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

39.下面程序的運行結(jié)果是()。##include<stdio.h>main(){inta,s,n,m;a=2;s=0;n=1;m=1;while(m<=4){n=n*a;s=s+n;++m;}printf("s=%d",s);}

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

三、1.選擇題(20題)41.若有以下結(jié)構(gòu)體定義,則______是正確的引用或定義。structexample{intx;inty;}v1;

A.example.x=10

B.examplev2.x=10

C.structv2;v2.x=10

D.structexamplev2={10};

42.對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正確的是()

A.冒泡排序為n(n-1)/2B.簡單插入排序為nC.希爾排序為nD.快速排序為n/2

43.有以下程序;charfun(charx,chary){if(x<y)returnx;returny;}main(){inta='9',b='8',c='7';printf("%c\n",fun(fun(a,B),fun(b,C)));}程序的執(zhí)行結(jié)果是

A.函數(shù)調(diào)用出錯B.8C.9D.7

44.以下敘述中,正確的是______。

A.輸入項可以是一個實型常量,例如:scanf("%f",3.5);

B.只有格式控制,沒有輸入項,也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");

C.當(dāng)輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點后的位數(shù),例如:scanf("%4.2f",&d);

D.當(dāng)輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf("%f",&f);

45.下列關(guān)于字符串的說法中錯誤的是

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

B.′\0′作為標(biāo)志占用存儲空間,計入串的實際長度

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

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

46.以下4個選項,不能看作一條語句的是()。

A.{;}B.intx=0,y=1,z=0;C.if(!A);D.if(b==0)m=1;n=2;

47.C語言源程序名的后綴是A..exeB..CC..objD..cp

48.閱讀以下函數(shù)fun(char*sl,char*s2){inti:0;while(sl[i]==s2[i]&&s2[i]!='\0')i++;return(sl[i]=='\0'&&s2[i]=='\0');}此函數(shù)的功能是

A.將s2所指字符申賦給s1

B.比較s1和s2所指字符串的大小,若s1比s2的大,函數(shù)值為1,否則函數(shù)值為0

C.比較s1和s2所指字符串是否相等,若相等,函數(shù)值為1,否則函數(shù)值為o

D.比較s1和s2所指字符串的長度,若s1比s2的長,函數(shù)值為1,否則函數(shù)值為o

49.以下程序的運行結(jié)果為#include"stdio.h"main(){intm,n;for(m=0,n=10;m<n;m+=3,n--);printf("%d,%d\n",m,n);}

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

50.請讀程序:#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p++;printf("%d\n”,a[2]);}上面程序的輸出結(jié)果是()

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

51.下列程序段的執(zhí)行結(jié)果是______。inti;intx[][3]=}1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",x[i][2-i]);

A.159B.147C.357D.369

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

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

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

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

a[i][j]=i+j-(i-j);

fun(a);}

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

53.有以下定義和語句:structstudents{intnum;charname[20];charc;struct{intgrade1;intgrade2;}s;};structstudentsw,*pw;*pw=w;下列賦值語句不正確的是()。

A.w.num=1002;B.w.grade1=85;C.pw->num=1002;D.w.s.grade2=85;

54.以下程序的輸出結(jié)果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf("%d%d\n",a,b);}

A.100200B.57C.200100D.75

55.運行下面的程序,其輸出結(jié)果為______。main(){printf("%d,%d",5%-3,-5%3);}

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

56.軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()

A.定義、開發(fā)、運行維護(hù)

B.設(shè)計階段、編程階段、測試階段

C.總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試

D.需求分析、功能定義、系統(tǒng)設(shè)計

57.現(xiàn)有如下程序段,此程序段編譯有錯誤,則程序段的錯誤出在#include<stdio.h>main(){inta=30,b=40,c=50,d;d=a>30?b:c;swish(d){casea:Printf("%d,",a);caseb:printf("%d,",b);casec:printf("%d,",c);defaultprintf("#");}}

A.default:printf("#");這個語句

B.d=a>30?b:c;這個語句

C.casea:printf("%d,",a);caseb:printf("%d,",b);casec:printf("%d,",c);這三個語句

D.switch(d)這個語句

58.設(shè)整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。

A.10B.11C.12D.語法錯誤

59.能直接與CPU交換信息的功能單元是()。

A.硬盤B.控制器C.主存儲器D.運算器

60.以下程序運行后的輸出結(jié)果是______。main(){charm;m='B'+32;printf("%c\n",m);}

A.aB.bC.cD.d

四、選擇題(20題)61.

62.

63.

64.以下關(guān)于指針概念不正確的是()。

A.指針變量可以用整數(shù)賦值,但不可以用浮點數(shù)賦值

B.一個變量的地址稱為該變量的指針,一個指針變量只能指向同一類型的變量

C.只有同一類型的變量地址才能放到指向該類型變量的指針變量之中

D.只能將地址賦給指針變量

65.

66.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

B.算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量

C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的

D.算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)

67.

68.

69.有以下程序段:

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

A.a=10b=50C=30

B.a=10b=50c=10

C.a=10b=30c=10

D.a=50b=30c:50

70.棧和隊列的共同特點是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點處插入和刪除元素D.沒有共同點

71.以下不合法的數(shù)值常量是()。

A.8.0E0.5B.lelC.0llD.0xabcd

72.

有以下程序:

#include<stdio.1l>

voidWriteStr(char*fn.char*str)

{FILE*fp;

fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}

main

{WriteStr("tl.dat","start");

WriteStr("t1.dat","end");)

程序運行后,文件t1.dat中的內(nèi)容是()。

A.startB.endC.startendD.endrt

73.算法分析最重要的目的是

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系

C.分析算法的易懂性和可靠性D.分析算法的效率以求改進(jìn)

74.下列敘述中錯誤的是()。A.A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值B.在C語言中,在調(diào)用函數(shù)時,實參和對應(yīng)形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量

75.

76.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達(dá)式中值為0的是()。

A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1

77.C語言用_______表示邏輯“真”值。

A.trueB.t或yC.非零整型值D.整型值0

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

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

79.

有以下程序

#include<stdio.h>

main

{inta=1,b=2,c=3,x;

x=(a^b)&C;printf("%d",x);

}

程序的運行結(jié)果是()。

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

80.設(shè)有定義:doublex=5.16894;,則語句prinff(”%If\n”,(int)(x$1000+0.5)/1000.);的輸出結(jié)果是()。

A.5.16900B.5.16800C.0.00000D.輸出格式說明符與輸出項不匹配,產(chǎn)生錯誤信息

五、程序改錯題(1題)81.下列給定程序中,fun()函數(shù)的功能是:求3個數(shù)的最小公倍數(shù),例如,給變量a、b、c、分別輸入15、11、2,則輸出結(jié)果應(yīng)當(dāng)是330。請修改函數(shù)中的錯誤,得出正確的結(jié)果。注意:不要改動main()函數(shù),不能增行或減行,也不能更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.數(shù)組point中存放著m個人的成績,請編寫函數(shù)fun().它的功能是:返回高于平均分的人數(shù),并將高于平均分的分?jǐn)?shù)放在high所指的數(shù)組中。例如,當(dāng)point數(shù)組中的數(shù)據(jù)為50,60,65,70.75,80.88,90,95時,函數(shù)返回的人數(shù)應(yīng)該是5,high中的數(shù)據(jù)應(yīng)為75,80,88,90,95。請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。注意:部分源程序給出如下。試題程序:

參考答案

1.D

2.D二叉樹的遍歷有3種:前序、中序和后序。①前序遍歷訪問根結(jié)點,然后按左右順序遍歷子結(jié)點;②中序首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;③后序遍歷首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點。本題根據(jù)后序和中序遍歷的結(jié)果可以得出二叉樹的結(jié)構(gòu),然后再對其進(jìn)行前序遍歷,正確答案選項為D。

3.B指針中存放的是變量的地址,指針也可以進(jìn)行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中“P+6”指的是將指針向后移動了6個存儲單元,即指向uE63,存放的是b[6]的地址。

4.D解析:在C++語言中退格符表示為\\b退格。注意:其他轉(zhuǎn)義字符的意義:\\n表示回車換行,\\t表示橫向跳到下一制表位置,\\v表示豎向跳格,\\r表示回車,\\f表示走紙換頁,\\\\表示反斜線符,\\a表示鳴鈴,\\ddd1~3位表示八進(jìn)制數(shù)所代表的字符,\\xhh1~2位表示十六進(jìn)制數(shù)所代表的字符。

5.A[解析]數(shù)組定義后,不可以對數(shù)組整體賦值,s是二維數(shù)組,因ss[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用strcpy[1],"right);這樣的形式,而選項A)中對二維數(shù)組中的第“1維(相當(dāng)于一個一維數(shù)組)賦值,是不可以的。選項B)和D)是定義時對數(shù)組初始化,這是可以的。選項C)中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個元素,這是可以的。

6.D解析:本題考查的是二維數(shù)組元素在內(nèi)存中的排列形式。雖然二維數(shù)組成多維數(shù)組從結(jié)構(gòu)上來看不是線性的,但是在C語言中,這些數(shù)組元素在內(nèi)存中的排列是連續(xù)線性存放的。它們的排列規(guī)則是:第一維下標(biāo)變化最慢,最右邊的下標(biāo)變化最快.例如本題中定義的二維數(shù)組a[3][3]中9個元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了一個指針p指向數(shù)組a的第1個元素a[0][0]。在第一個for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序為其元素賦從0~8九個值,然后用第二個for循環(huán)依次輸出a[1][0],a[1][1],a[1][2]三個元素的值。所以,4個選項中選項D符合題意。

7.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標(biāo)是i,說明它前面還有i行,有i*m個元素,數(shù)組第二維的下標(biāo)是j,說明它前面還有j列,有j個元素,所以共有i*m+j個元素。

8.C

9.A

10.C

11.D解析:棧是僅在表頭和表尾進(jìn)行插入和刪除元素操作的線性表,其特點是“先進(jìn)后出”。本題中,進(jìn)棧的過程中可以出棧。選項D中,如果第一個出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因為e1先入棧,故e1應(yīng)在e2后出棧,所以選項D是不可能的出棧順序。

12.C

13.D解析:在C語言中,字符串常量是以雙引號括起來的字符序列。故選項B和C不正確。字符序列中可包含一些轉(zhuǎn)義字符,轉(zhuǎn)義字符都是以“\\”開頭的。選項A中包含了三個“\\”,前兩個(\\\\)代表了一個“\\”字符,后面一個和“'”一起(\\”)被看作一個……,所以該字符串缺少一個結(jié)束的“'”,故不正確。選項D的兩個……之間沒有任何字符,代表的是一個空串,是合法的字符串常量,故應(yīng)該選擇D。

14.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項A)、C)中表達(dá)式的結(jié)果為真,不為0;對于選項B)來說,x除以2的商不會等于0;選項D)中表達(dá)式的結(jié)果為假,即等于0。

15.A

16.D

17.D第1次循環(huán),a的值為1,滿足條件,執(zhí)行“b+=a;”與“a+=2;”,則b的值變?yōu)?,a的值變?yōu)?。執(zhí)行“a++”,a的值為4,滿足條件進(jìn)入第2次循環(huán),執(zhí)行完循環(huán)體后,b的值為7,a的值為6。執(zhí)行“a++”,a的值為7,滿足條件進(jìn)入第3次循環(huán),執(zhí)行完循環(huán)體后,b的值為14,a的值為9。執(zhí)行“a++”,a的值為10。條件不滿足,退出循環(huán)。故本題答案為D選項。

18.D

19.B

20.D

21.1616解析:函數(shù)運算不改變數(shù)據(jù)類型,所以結(jié)果也是double型,fabs(x)是對x取絕對值,pow(y,fabs(x))是y的labs(x)次冪,即2.04。0=16.000000(注意;結(jié)果為double型)。

22.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。

23.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。

24.考查ifelse語句,n=4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。\r\n\r\n

25.3232解析:根據(jù)二叉樹的性質(zhì),在二叉樹的第K層上,最多有2k-1個結(jié)點。所以,第6層的結(jié)點數(shù)最多為32。

26.\0'strl[i]-str2[i]

27.強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換

28.abcbccabcbcc解析:strcpy()函數(shù)有兩個字符指針參數(shù),功能是將第2個參數(shù)所指的字符串(包括字符串結(jié)束標(biāo)志\'\\0\')復(fù)制到第1個參數(shù)所指的內(nèi)存地址中.題目程序中使用?兩個for循環(huán),都是讓i從0遞增到2循環(huán)3次。第1個循環(huán)將字符數(shù)組ch中的字符串'abe'復(fù)制到;維數(shù)組x[3][4]的每1行,笫2個for循環(huán)每次輸出x[i][j]中的字符串,即三次分別輸出從x[0][0]、x[1][1]、x[2][2]開始的字符串的內(nèi)容。故三次分別輸出abc、bc、c,結(jié)果為abcbcc。

29.邊值分析法邊值分析法解析:本題考查了黑箱測試的方法。黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價分類法、邊值分析法、因果圖法和錯誤推測法。

30.時間復(fù)雜度時間復(fù)雜度解析:算法在執(zhí)行過程中所執(zhí)行的基本運算的次數(shù),也就是執(zhí)行算法所需要的計算工作量,稱為算法的時間復(fù)雜度。

31.246

32.存儲結(jié)構(gòu)

33.數(shù)據(jù)字典或DD數(shù)據(jù)字典或DD解析:數(shù)據(jù)流圖用來對系統(tǒng)的功能需求進(jìn)行建模,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。數(shù)據(jù)詞典(DataDictionary,DD)用于對數(shù)據(jù)流圖中出現(xiàn)的所有成分給出定義,它使數(shù)據(jù)流圖上的數(shù)據(jù)流名字、加工名字和數(shù)據(jù)存儲名字具有確切的解釋。

34.源程序源程序解析:用高級語言編寫的程序稱為源程序。源程序不能在計算機(jī)上直接運行,運行源程序有兩種方式:一種是通過解釋程序,對源程序逐句解釋執(zhí)行;另一種是先讓編譯程序?qū)⒃闯绦蛞淮畏g產(chǎn)生目標(biāo)程序(目標(biāo)程序是計算機(jī)可直接執(zhí)行的機(jī)器語言程序,是一種二進(jìn)制代碼程序),然后執(zhí)行目標(biāo)程序。

35.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。

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

37.-f或f*-1或-1*f或f*(-1)或(*1)*f。fun(10)-f或f*-1或-1*f或f*(-1)或(*1)*f。\r\nfun(10)解析:本題考核的知識點是C程序的簡單應(yīng)用。本題要求調(diào)用fun()函數(shù)計算m的值,故在主函數(shù)中的空格處應(yīng)該填調(diào)用fun()函數(shù)的語句。fun()函數(shù)有一個形參n,為每次參加計算的值的個數(shù),故在主函數(shù)中的空格處應(yīng)該填fun(10),回到fun()函數(shù),函數(shù)用到了一個for循環(huán),共循環(huán)n次,當(dāng)循環(huán)第i次的時候,m的值等于m=1-2+……+[(-1)的i-1次方]*1所以在fun()函數(shù)的空格處應(yīng)該填使f改變符號的語句,故應(yīng)填*f或f*-1或-1*f或f*(-1)或(-1)*f。

38.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

39.s=30s=30解析:分析循環(huán)條件“m=1,m<=4”,所以循環(huán)4次。第1次:n=n*a=2,s=s+n=2;m=2。第2次:n=n*a=4,s=s+n=6;m=3。第3次:n=n*a=8,s=s+n=14;m=4。第4次:n=n*a=16,s=s+n=30。

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

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

42.AA)【解析】在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2;簡單插入排序所需要的比較次數(shù)為n(n-1)/2;希爾排序所需要的比較次數(shù)為O(n1.5);堆排序所需要的比較次數(shù)為O(nlog2n)。

43.D解析:本題考核的知識點是函數(shù)的返回值以及返回值作為函數(shù)的參數(shù)。經(jīng)過分析得出函數(shù)fun()的功能是比較形參x和形參y的大小,返回較小的一個.函數(shù)fun()有兩個參數(shù).本題中,首先定義了三個整型變量a、b和c,分別賦初值為9、8和7.然后執(zhí)行函數(shù)fun(fun(a,b),fun(b,c))。在該函數(shù)中分別將fun(a,b)和fun(b,C)函數(shù)的返回值作為該函數(shù)的兩個實參。在函數(shù)fun(a,b)中,由于a>b,故返回較小值b即8,在函數(shù)fun(b,C)中,由于b<c,故返回較小值c即為7,因此調(diào)用函數(shù)fun(fun(a,b),fun(b,C))相當(dāng)于執(zhí)行函數(shù)fun(8,7),返回較小值即7。所以,4個選項中選項D符合題意。

44.D

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

46.D語句是用來判定所給的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。在if和else后面可以只含一個內(nèi)嵌的操作語句,也可以有多個操作語句,此時用花括號“{}”將幾個語句括起來成為一個復(fù)合語句。選項D)中沒有將兩個操作語句括起來,不能看作一條語句。

47.B解析:C語言源程序的后綴為.c;經(jīng)過編譯得到的目標(biāo)程序文件的后綴為.obj;再將目標(biāo)程序文件鏈接后得到可執(zhí)行文件的后綴為.exe。故本題應(yīng)該選擇B。

48.C解析:在函數(shù)fun()中有兩個字符型指針變量s1和s1,在函數(shù)中程序執(zhí)行while循環(huán),該循環(huán)退出條件有兩個:一個是s1[i]!=s2[i](兩個字符串不相等);第二個是sl[i]和s2[i]相等均為“\\0”(兩個字符串相等)。循環(huán)退出后,執(zhí)行return語句,即兩個字符串相等則返回1,不相等則返回0。所以,C選項為所選。

49.C解析:for后一對括號中的表達(dá)式可以是任意有效的C語言表達(dá)式。該題目的循環(huán)體部分為空語句,循環(huán)控制條件為m<n,每一次m增3,n減1,每當(dāng)循環(huán)體執(zhí)行結(jié)束時,循環(huán)控制變量m,n就會分別被增3和減1。

50.A

51.C解析:數(shù)組x在初始化時賦9個值,列值為3,則行值為3。i為0時,x[i][2-1]指的是元素x[0][2](值為3):i為1時,x[i][2-i]指的是元素x[1][1](值為5):i為2時,x[i][2-1]指的是元素x[2][0](值為7);輸出結(jié)果是357。

52.B解析:若有以下定義:inta[3][4],i,j;且當(dāng)0<=i<3,0<=j<4,則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

53.B

54.B解析:函數(shù)fun中的a和b是全局變量,在main函數(shù)中全局變量a和b不起作用。因此調(diào)用函數(shù)fun后main中a和b的值不變,a=5、b=7。

55.A解析:在C中,參與%運算的兩個參數(shù)都必須為整型,在大多數(shù)C編譯器下(包括TurboC)都采用了“向0靠近”的原則,即當(dāng)兩個運算量有一個為負(fù)數(shù)時,余數(shù)的符號由被除數(shù)的符號決定。故本題答案為A。

56.A解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運行維護(hù)3個階段。

57.C解析:case也是關(guān)鍵字,與其后面的常量表達(dá)式合稱case語句標(biāo)號,常量表達(dá)式的類型必須與switch后的表達(dá)式類型相同。這個程序段主要考查的是case后是常量表達(dá)式。

58.D解析:C語言中有基本的算術(shù)運算符(+、-、*、/)還包括自增自減運算符(++、-),在C語言解析表達(dá)式時,它總是進(jìn)行貪婪咀嚼,這佯,該表達(dá)式就被解析為i+++++i,顯然該表達(dá)式不合C語言語法。

59.C運算器和控制器都是CPU的一部分,顯然不可能是正確答案,而硬盤中的程序、數(shù)據(jù)首先要調(diào)入內(nèi)存儲器中,因為它不能直接與CPU打交道。

60.B解析:字符參與運算的值是其對應(yīng)的ASCII碼,小寫英文字符的ASCII值比大寫英文字符的ASCII值大32,執(zhí)行語句m='B'+32;得出結(jié)果m=66+32=98,以“%c”的格式輸出結(jié)果為b。

61.A

62.C

63.C\r\n

64.A指針是用來指示一個內(nèi)存地址的變量,因此只能將地址賦給指針變量,而不能是整數(shù)或浮點數(shù)。

65.B

66.B解析:本題考查數(shù)據(jù)結(jié)構(gòu)中有關(guān)算法的基本知識和概念。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。而數(shù)據(jù)結(jié)構(gòu)包括兩方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)都影響算法的效率。選項A的說法是錯誤的。算法的時間復(fù)雜度是指算法在計算機(jī)內(nèi)執(zhí)行時所需時間的度量;與時間復(fù)雜度類似,空間復(fù)雜度是指算法在計算機(jī)內(nèi)執(zhí)行時所需存儲空間的度量。因此,選項B的說法是正確的。

數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類基本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲結(jié)構(gòu)在計算機(jī)中有兩種,即順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。可見,邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)不是一一對應(yīng)的。因此,選項C的說法是錯誤的。

有時人們?yōu)榱颂岣咚惴ǖ臅r間復(fù)雜度,而以犧牲空間復(fù)雜度為代價。但是,這兩者之間沒有必然的聯(lián)系。因此,選項D的說法是錯誤的。

67.D

68.B

69.B本題中a>b的條件不滿足,所以不執(zhí)行逗號表達(dá)式a=b,b=c;的操作,而是執(zhí)行c=a操作,即c的值勾10。

70.C解析:考查棧和隊列概念的掌握。棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種'后進(jìn)先出'的線

溫馨提示

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

評論

0/150

提交評論