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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2021-2022年湖北省隨州市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.用鄰接矩陣A表示有向圖G的存儲結構,則有向圖G中頂點i的出度為()。

A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和

3.從一個長度為100的順序表中刪除第30個元素時需向前移動()個元素

A.70B.71C.69D.30

4.以下語句中,正確制作電子郵件鏈接的是()。

5.下列對隊列的敘述正確的是A.隊列屬于非線性表B.隊列按“先進后出”原則組織數(shù)據(jù)C.隊列在隊尾刪除數(shù)據(jù)D.隊列按“先進先出”原則組織數(shù)據(jù)

6.當執(zhí)行下面的程序時,如果輸入ABC,則輸出結罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789

7.以下說法正確的是()。

A.C程序總是從第一個函數(shù)開始執(zhí)行

B.在C程序中,被調用的函數(shù)必須在main函數(shù)中定義

C.C程序總是從main函數(shù)開始執(zhí)行

D.C程序中的main函數(shù)必須放在程序的開始部分

8.圖的深度優(yōu)先遍歷類似于二叉樹的_______。

A.先序遍歷B.中序遍歷C.后序遍歷D.層次遍歷

9.假定已建立以下鏈表結構,且指針p和q已指向如圖所示的結點:

則以下選項中司將q所指結點從鏈表中刪除并釋放該結點的語句組是______。A.(*p).next=(*q).next;free(p);

B.p=q->next;free(q);

C.p=q;free(q);

D.p->next=q->next;free(q);

10.

11.有以下程序:

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

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

12.

有以下程序:

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);

}

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

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

13.若某鏈表最常用的操作是在最后一個結點之后插入一個結點或刪除最后一個結點。則采用()存儲方式最節(jié)省運算時間。

A.單鏈表B.雙鏈表C.單循環(huán)鏈表D.帶頭結點的雙循環(huán)鏈表

14.有以下程序:#include<stdio.h>#include<strin9.h>main(){printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}程序運行后的輸出結果是()。A.3B.8C.4D.9

15.s1和s2已正確定義并分別指向兩個字符串。若要求:當s1所指串大于s2所指串時,執(zhí)行語句s;則以下選項中正確的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

16.以下選項中敘述錯誤的是()。

A.C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調用一次函數(shù),賦一次初值

B.在同一函數(shù)中,各復合語句內可以定義變量,其作用域僅限本復合語句內

C.C程序函數(shù)中定義的自動變量,系統(tǒng)不自動賦確定的初值

D.C程序函數(shù)的性能不可以說明為static型變量

17.以下程序的輸出結果是().A.A.0B.29C.31D.無定值

18.以下可以正確且安全地用作用戶標識符的一組選項是()。

A._32int,long64B.Switch,unsignedC.Abc,getchD.3break,enter

19.已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97"C.c=97D.c="a"

20.算法的時間復雜度取決于()

A.問題的規(guī)模B.待處理數(shù)據(jù)的初態(tài)C.A和B

二、2.填空題(20題)21.類是一個支持集成的抽象數(shù)據(jù)類型,而對象是類的【】。

22.本程序用冒泡法對數(shù)組a[]的元素從大到小排序,請在程序空白處填空。voidbubble(inta[],intn){inti,j,max,temp;max=n-1;do{j=0;for(i=0;i<max;i++)if(a[i]<a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;j=i;}max=j;}while(());}

23.注釋說明了程序的功能,它分為【】注釋和功能性注釋。

24.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。

25.設x和y均為int型變量,且x=1,y=2,則表達式double(1+x/y)的值為【】。

26.閱讀下面程序,則執(zhí)行后的輸出結果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

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

27.下列程序的輸出結果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

28.按照邏輯結構分類,數(shù)據(jù)結構可分為線性結構和非線性結構,隊列屬于______。

29.對于圖書管理數(shù)據(jù)庫,將圖書表中“人民郵電出版社”的圖書的單價漲價5%。請對下面的SQL語句填空:UPDATE圖書______WHERE出版單位="人民郵電出版社"

30.以下fun函數(shù)的功能是:累加數(shù)組元素中的值。n為數(shù)組中元素的個數(shù)。累加的和放入x所指的存儲單元中。

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

{intk,r=0;

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

【】=r;

}

31.數(shù)據(jù)庫恢復是將數(shù)據(jù)庫從______狀態(tài)恢復到某一已知的正確狀態(tài)。

32.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度。請?zhí)羁铡?/p>

FILE*myf;longf1;

myf=【】("test,t","rb");

fseek(myf,0,SEEK_END);f1=ftell(myf);

fclose(myf);

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

33.設在主函數(shù)中有以下定義和函數(shù)調用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

34.下列程序執(zhí)行后輸出的結果是【】。

main()

{intarr[10],i,k=0);

fot(i=0;i<10;i++)art[i]=i;

for(i=1:i<4;i++)k+=arr[i]+i;

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

}

35.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>

voiddelete(chars[],inti,intn)

{intj,k,length=0;

whiles(length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<=length)

while(k<length)

s[j++]=s[k++];

s[j]='\0';

}

36.以下程序的功能是輸出字符串。請?zhí)羁铡?/p>

main()

{char*a[]={"Pascal","Clanguage","dbase","Cobol"};

char【】;

intj=0;

p=a;

for(;j<4;j++)

print{("%s\n",*【】);

}

37.實體之間的聯(lián)系可以歸結為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學校有許多學生,而一個學生只歸屬于一個學校,則實體集學校與實體集學生之間的聯(lián)系屬于【】的聯(lián)系。

38.函數(shù)ssbc叩()的功能是對兩個字符申進行比較。當s所指字符串和t所指字符申相等時,返回值為0;當s所指字符串大于t所指字符串時,返回值大于0;當s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp())。請?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{

while(*s&&*t&&*s==)

{s++;t++;}

return

}

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

40.下列程序的循環(huán)次數(shù)是______。

x=2;

do

{x=x*x;}

while(!x);

三、1.選擇題(20題)41.下列說法正確的是()。

A.在C語言中,可以使用動態(tài)內存分配技術,定義元素個數(shù)可變的數(shù)組

B.在C語言中,數(shù)組元素的個數(shù)可以不確定,允許隨機變動

C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致

D.在C語言中,定義了一個數(shù)組后,就確定了它所容納的元素的個數(shù)

42.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"),*p=str[0];printf("%d\n",strlen(p+20));}程序運行后的輸出結果是()。

A.0B.5C.7D.20

43.有以下程序:main(){inti=10,j=1;printf("%d,%d\n",i--,++j);}執(zhí)行后的輸出結果是______。

A.9,2B.l0,2C.9,1D.10,1

44.設一棵滿二叉樹共有15個結點,則在該滿二叉樹中的葉子結點數(shù)為()

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

45.表達式(double)(20/3)的值為()

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

46.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<5;i++)j+=f(i);printf("%d\n",j);}程序運行后的輸出結果是()

A.15B.10C.6D.3

47.若fp已正確定義并指向某個文件,當未遇到該文件結束標志時函數(shù)feof(中)的值為

A.0B.1C.-1D.一個非0值

48.設有下列二叉樹:

對此二叉樹中序遍歷的結果為

A.ABCDEFB.DAECFC.BDAECFD.DBEFCA

49.下列二維數(shù)組初始化語句中,不正確的是()。

A.intb[][2]={1,2,3,4,5,6,7};

B.intb[3][5]={0,0,0};

C.intb[][4]={{1,2},{3,4,5},{6}};

D.intb[3][2]={(1,2),(3,4),(5,6)};

50.設有定義語句:charc1=92,c2=92;則以下表達式中值為零的是()。

A.c1∧c2B.c1&c2C.~c2D.c1|c2

51.以下程序的輸出結果是______。main(){inti,a[10];for(i=9;i>=0;i--)a[i]=1O-i;printf("%d%d%d",a[2],a[5],a[8]);}

A.258B.741C.852D.369

52.有以下程序inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;}main(){ints=a,i;for(i=0;i<3;i++)s+=f(i)printf("%d\n",s);}程序運行后的輸出結果是

A.26B.28C.29D.24

53.以下選項中,不能作為合法常量的是

A.1.234e04B.1.234e0.4C.1.23E+4D.1.234e0

54.C語言結構體類型變量在程序運行期間

A.TC環(huán)境在內存中僅僅開辟一個存放結構體變量地址的單元

B.所有的成員一直駐留在內存中

C.只有最開始的成員駐留在內存中

D.部分成員駐留在內存中

55.有以下程序:main(){ints=0,a=1,n;scanf("%d",&n);do{s+=1;a=a-2;}while(a!=n);printf("%d\n",s);}若要使程序的輸出值為2,則應該從鍵盤給n輸入的值是()。

A.-1B.-3C.-5D.0

56.若有說明:int*p,m=5,n;以下正確的程序段是

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

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

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

D.p=&n;*p=m;

57.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序輸出結果是______。

A.0B.0.25C.0.5D.1

58.下列程序段的輸出結果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}

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

59.若有定義inta=5,b=7;,則表達式a%=(b%2)運算后,a的值為()。

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

60.有以下程序

#include<stdio.h>

#include<string.h>

typedefstruct{charname[9];charsex;floatscore[2];}STU;

voidf(STUa)

{STUb={"Zhao",′m′,850,900};inti;

strcpy(,);

a.sex=b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

}

main()

{STUc={"Qian",′f′,95.0,92.0};

f(c);

printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[1]);

}

程序的運行結果是

A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90

四、選擇題(20題)61.下列敘述中正確的是()。

A.算法的執(zhí)行效率與數(shù)據(jù)存儲結構無關

B.算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D.以上3種描述都不對

62.在黑盒測試方法中,設計測試用例的主要根據(jù)是()。

A.程序外部功能B.程序內部邏輯C.程序數(shù)據(jù)結構D.程序流程圖

63.

64.有以下程序:

voidmain()

{intk=10,n=0;

for(;n<k;)

{//n++;

if(n++%3!=0)continue;

k--;}

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

}

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

A.7,7B.6,6C.3,3D.4,4

65.設變量已正確定義并賦值,以下正確的表達式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

66.軟件詳細設計產(chǎn)生的圖如下:該圖是()。

A.N—s圖B.PAD圖C.程序流程圖D.E—R圖

67.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。

A.提高耦合性降低內聚性有利于提高模塊的獨立性

B.降低耦合性提高內聚性有利于提高模塊的獨立性

C.耦合性是指-個模塊內部各個元素間彼此結合的緊密程度

D.內聚性是指模塊間互相連接的緊密程度

68.

69.(17)軟件需求分析階段的工作,可以分為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()

A.階段性報告

B.需求評審

C.總結

D.都不正確

70.有以下程序:

#include<stdio.h>

main()

{intx=1,y=0;

if(!x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

Drintf("%d\n"。v);

}

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

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

71.有以下計算公式:

若程序前面已在命令行中包含math.h文件,不能夠正確計算上述公式的程序段是

([answer]

72.

73.軟件生命周期中的活動不包括()。

A.市場調研B.需求分析C.軟件測試D.軟件維護

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

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

75.有定義如下:

structsk

{inta;

floatb;

}data,*p;

如果p=&data;則對于結構變量data的成員a的正確引用時()

A)(*).data.aB)(*p).a

C)p->data.aD)p.data.a

76.以下不能正確定義二維數(shù)組的選項是()。

A.

B.

C.

D.

77.某循環(huán)隊列的存儲空間為Q(1:m),初始狀態(tài)為front=rear=m?,F(xiàn)經(jīng)過一系列的入隊操作和退隊操作后,front=m一1,real"=m,則該循環(huán)隊列中的元素個數(shù)為()。

A.m一1B.1C.mD.0

78.

79.有以下程序#includemain{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結果是()。A.741B.963C.852D.875421

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是根據(jù)整型形參n,計算如下公式的值:

Y=1-1/(22)+1/(33)-1/(44)+…+(-1)(n+1)/(nn)

例如,n中的值為l0,則應輸出0.817962。

請修改程序中的錯誤,使它能得到正確結果。

注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdiOh>

doubleproc(intn)

{

doubley=1.0;

//****found****

intJ=1;.

inti;

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

{

j=-l*j;//****found****

y+=1/(i*i);

}

return(y);

}

voidmain

{

intn=10:

system("CLS"):

printf("\nTheresultis%1f\n",proc(n));

}

六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:除了尾部的*號之外,將字符串中其他*號全部刪除。形參P已指向字符串中最后一個字母。在編寫函數(shù)時,不得使用C語言的字符串函數(shù)。例如,若字符串中的內容為****a*bc*def*g****,刪除后,字符串中的內容應當是abcdefg****。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。試題程序:

參考答案

1.A

2.A

3.A

4.C

5.D解析:本題考查數(shù)據(jù)結構中隊列的基本知識。隊列是一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊列具有先進先出的特性。在隊列中,允許插入元素的一端叫做隊尾,允許刪除的一端則稱為隊頭。這與日常生活中的排隊是一致的,最早進入隊列的人最早離開,新來的人總是加入到隊尾。因此,本題中只有選項D的說法是正確的。

6.A當執(zhí)行gets(ss)后,ss數(shù)組中的元素為ABC,再執(zhí)行strcat(ss,"6789"),strcat的作用,是把6789連接到了ss數(shù)組后面,執(zhí)行完后SS數(shù)組為ABC6789,故選擇A選項。

7.C解析:C程序是由main函數(shù)開始運行,通過main函數(shù)調用其他函數(shù),所以,選項A)錯誤;在C程序中,函數(shù)不能嵌套定義,即不能在一個函數(shù)中定義另一個函數(shù),選項B)錯;C程序總是從main函數(shù)開始執(zhí)行,但main函數(shù)不必放在最前面,故選項D)錯。

8.A

9.D解析:本題題面要求刪除q所指結點并釋放該結點,而選項A中雖然是刪除了q所指鮚點,但并未釋放q這個結點,而釋放的是p結點,所以選項A錯誤;選項B是將q的下一結點的地址賦值給指針變量p,這意味著p原來的成員變量內容被q的下一結點的成員變量內容所代替,即原p結點也被刪除了,所以選項B錯誤;選項C相當于將q的所有成員變量內容代替了p的所有成員變量內容,即p結點被刪除,所以錯誤;選項D是將q的下—結點的地址賦值給p的成員next\u3000(成員next用于存放一結點的地址),使得p的next成員不再指向q,而是指向q的下一結點,相當于刪除了q這個結點,同叫用free函數(shù)正確釋放了q這一結點,所以選項D正確。

10.A

11.C該程序中int8pl=&a,+p2=&b,4P=&c;指定義三個指針變量,并賦值,即使pl指向a;p2指向b;p指向c。+P=。pl$(+p2)。;該條語句是給P所指的存儲單元c賦值,就是pl所指的存儲單元的值,即a的值,與p2所指的存儲單元b的值相乘,也就是c=a+b,等價于c=1·3=3;因此C選項正確。‘

12.B

\n本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進行第2次循環(huán),執(zhí)行case4:這個分支,結果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進行第3次循環(huán),執(zhí)行case3:這個分支,結果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進行第4次循環(huán),執(zhí)行case2:case4:這個分支,結果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結束。

\n

13.D

14.B本題考查strlen函數(shù)和轉移字符,strlen函數(shù)的功能是求字符串的長度,在本題中有“\”,C語言中“\”是轉義字符,在計算長度時會將轉義符以及后面的第一個字符作為1個長度進行計算,所以答

15.D在C語言中,不能直接比較兩個字符串的大小,必須用特定的函數(shù)來完成,選項A錯誤;選項B不管大于還是小于都執(zhí)行S,不符合題意;選項C正好相反,當s2大于s1時,執(zhí)行語句S,可知選項D正確。

16.A靜態(tài)變量不是每調用一次就賦一次初值,而是將需要定義許多相同的具有相同屬性的值時,使用靜態(tài)變量來節(jié)省空間,所以A選項錯誤。

17.C

18.AC語言中,合法的標識符由字母、數(shù)字和下劃線組成,并且第1個字符必須是字母或下劃線。選項D中的“3break”錯誤;用戶標識符不能是C語言中的關鍵字或函數(shù),選項B中的“unsigned”是關鍵字,不是合法的用戶標識符,“Switch”是合法的用戶標識符;選項C中的“getch”是庫函數(shù)名,不是合法的用戶標識符,而C語言區(qū)分字母大小寫,“Abc”是合法的用戶標識符;選項A中的兩個標識符都是合法的用戶標識符。故本題答案為A選項。

19.C解析:本題考核的知識點是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項B和選項D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項B和選項D不正確。因為在C語言中,字符常量在存儲時,并不是把該字符本身放到內存單元中去,而是將該字符的相應的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項C正確.而選項A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項A不正確,所以,4個選項中選項C符合題意。

20.C

21.實例將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。所以,類是對象的抽象,對象則是其對應類的一個實例。

22.max>0max>0解析:本題是典型的冒泡排序題,每一次for循環(huán)將從數(shù)組a中找出剩下數(shù)中的最大的值放在這些數(shù)的最前端,若數(shù)組a中有n個數(shù),則完成數(shù)組排序共需n-1次循環(huán)。令max=n-1,每次循環(huán)后i值增1,i<max條件不足,即n-1次循環(huán)后,此時i=j=max=0,循環(huán)結束。

23.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

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

25.11解析:本題考查兩個知識點:一是x/y的值為整型,即為0;二是數(shù)1是double類型。

26.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結合。因為x不大于y,所以執(zhí)行printf('%d\\n',z);語句。

27.5656解析:本題中a,b,c,d足實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內存中,實參單元與形參單元是不同的單元。在調用函數(shù)時,給形參分配存儲單元,并將實參對應的值傳遞給形參,調用結束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結果是56。

28.線性結構線性結構解析:隊列有且只有一個根結點,而且每一個結點最多有一個前件,也最多有一個后件,滿足線性結構的條件,所以屬于線性結構。

29.更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個或多個屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達式賦值給對應的屬性名(SET單價=單價*1.05),并置于SET短語之后。要求對人民郵電出版社的圖書漲5%,需要用WHERE短語對元組進行限制,即對符合條件的元組進行更新。\r\n\r\n

30.r+b[k]或*(b+k)+r*xr+b[k]或*(b+k)+r\r\n*x解析:r是累加的和,k是數(shù)組b的下標,因此有r=r+b[k];由于x是傳地址調用,*x是其指向存儲單元的內容,要把累加的和放入x所指的單元,因此有*x=r。

31.錯誤。錯誤。解析:數(shù)據(jù)庫恢復是將數(shù)據(jù)庫中的數(shù)據(jù)從錯誤狀態(tài)中恢復到某種邏輯一致的狀態(tài)。如果數(shù)據(jù)庫中包含成功事務提交的結果,則稱數(shù)據(jù)庫處于一致性狀態(tài)。

32.fopen

33.

34.1212解析:本題的第一個for循環(huán)用于給數(shù)組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結果為12。

35.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到笫i+n或最后—個間的所有字符。刪除前,應判斷i<=length。由于已經(jīng)進行了-i運算,故實際應填入i<length。

36.**p(p+i)

37.—對多—對多解析:實體之間的聯(lián)系可以歸結為一對一、一對多與多對多。如果一個學校有許多學生,而一個教師只歸屬于一個學生,則實體集學校與實體集學生之間的聯(lián)系屬于一對多的聯(lián)系。

38.*t或t[0)*s-*t或*s-t[0]或s[0]-*t或s[0]t[0]*t或t[0)*s-*t或*s-t[0]或s[0]-*t或s[0]t[0]解析:本題考查的知識點是字符型指針變量作為函數(shù)的參數(shù)以及序符串大小的比較.函數(shù)sstrcmp()有兩個字符型指針變量,用來指向兩個字符串。比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應的字符相等則接著比較下一個字符,一直到兩個字符串中對應字符不等,或者有一個為'\\0',此對應字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為'\\0'。且*s和*t相同,第一處應填“*t”或其他等價形式。根據(jù)題意可知第二處應填“*s-*t”或其等價形式。

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

40.11解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán);do…while語句的特點是先執(zhí)行后判斷,因此循環(huán)體至少執(zhí)行1次.本程序中x=2不符合循環(huán)條件,所以只循環(huán)1次。

41.D解析:本題考查數(shù)組的兩個知識點:①在C語言中,數(shù)組元素的個數(shù)是確定的,不允許隨機變動,數(shù)組定義好之后,它所能容納的元素的個數(shù)也就確定了;②同一個數(shù)組中所有元素的類型是一樣的。

42.C解析:主函數(shù)中定義了一個二維字符數(shù)組并初始化,初始化后的結果為str[0]='Hello'、str[1]='Beijng',然后定義一個字符指針變量p并讓它指向str[0],即指向數(shù)組的首地址,而在C語言中無論是一維還是多維數(shù)組,其元素在內存中都是順序存放的,故p+20后指針指向str[1],所以strlen(p+20);返回的是str[1]中字符串的長度,即'Beijng'的長度7,故4個選項中選項C符合題意。

43.B解析:本題中--運算符位于運算變量i右側,++運算符位于變量j的左側,所以先輸出i的當前值10,然后i再加1;j先加1得2,然后輸出。

44.BB)【解析】在具有11個結點的滿二叉樹,其非葉子結點數(shù)為int(n/2),而葉子結點數(shù)等于總結點數(shù)減去葉子結點數(shù)。本題n=15,故非葉子結點數(shù)等于int(15/2)=7,葉子結點數(shù)等于15-7=8。

45.B

46.B

47.A解析:讀取文件時,當文件中的數(shù)據(jù)全部讀完后,文件位置指針將位于文件的結尾。此時如果讀數(shù)據(jù),將會出現(xiàn)錯誤。為了保證讀寫數(shù)據(jù)的正確性,需要進行文件尾測試,文件尾測試使用函數(shù)feof(),它的功能測試fp指向的文件是否到達文件尾.若到達文件尾,返回值為非0,否則返回值為0。在本題中fP指向的某文件還沒有到了文件尾,因此返回0,所以,4個選項中選項A符合題意。

48.C解析:叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求中序遍歷,其遍歷順序應該為:中序遍歷左子樹->,訪問根結點->中序遍歷右子樹.按照定義,中序遍歷序列是BDAECF,故答案為B。

49.D解析:在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達式,而不能省略第2個方括號中的常量表達式;賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。

在選項D)賦值表達式中,對每一維的元素賦初值應用{},而不是()。

50.A解析:按位異或“^”運算,是當對應位上的二進制數(shù)值相同時結果為0,否則為1。因為c1,c2的值相同,所以異或的結果為0,選項A)正確。按位與“&”運算符只有當所有對應位上的數(shù)都不相同時結果才為0,所以c1&c2的值不可能為0,選項B)錯誤。“~”是按位取反,由于十進制數(shù)92轉化成二進制數(shù)并不是全為1,所以即使取反也不能得到全為。的答案,所以錯誤?!皘”是按位或運算,由于十進制數(shù)92轉化為二進制數(shù)也不是全為0,所以按位或運算后也不會全為0。

51.C解析:在本題運行時主要注意的是當i=9時,a[i]=l0-9=1;a[i]=8時,a[i]=10-8=2;i=7時,a[i]=10-7=3;……依此類推,直到i=O時,a[i]=10-0=10;此時,i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。

52.C解析:全局變量的生存期是整個程序的運行期間,作用域是從變量定義的位置開始,到整個源文件結束止。但是,若全局變量和某一函數(shù)或語句塊中的局部變量同名,則在該函數(shù)或語句塊中,此全局變量被屏蔽,即在該函數(shù)或語句塊內,訪問的是局部變量,與同名的全局變量不發(fā)生任何關系。靜態(tài)局部變量的生存期與全局變量相同,作用域和局部變量一樣都是整個函數(shù)成語旬塊內有效。程序第一行定義了一個全局變量a,在f()函數(shù)開頭也定義了一個靜態(tài)局部變量a,而且在后面if語句的兩個子句中都定義了靜態(tài)局部變量a。這4個變量a雖然名字一樣,但卻是4個獨立的變量,而且在整個程序運行期都存在。在主函數(shù)中,在定義變量s時將s初始化為全局變量a的值2,然后使用一個for循環(huán)分別調用了3次f(0)、f(1)、f(2),并將得到的值累加到變量s中。第1次調用n=0為偶數(shù),執(zhí)行else子句,此時t累加的是else子句中的變量a,所以執(zhí)行后else子句中的a變?yōu)?,t變?yōu)?,然后return語句中的a是函數(shù)f()開頭定義的a,執(zhí)行后函數(shù)開頭的a變?yōu)?,所以返回值是5+3=8。第2次調用n為1是奇數(shù),執(zhí)行if子句,所以t變?yōu)?,if子句中的a變?yōu)?,然后返回時函數(shù)開頭的a變?yōu)?,返回值是4+4=8。第3次調用n為2是偶數(shù),又執(zhí)行else子句,else子句中的a現(xiàn)在還是上次執(zhí)行后的值6,所以t=6,然后返回時加上函數(shù)開頭的a的當前值5,最后返回11。所以s最終的值是2+8+8+11=29。故應該選擇C。

53.B解析:C語言的語法規(guī)定,字母e(E)之前必須有數(shù)字,且e(E)后面的指數(shù)必須是整數(shù),而選項B)中,e(E)后面的指數(shù)是小數(shù),所以不合法。

54.B解析:結構體類型的變量在程序運行期間要作為一個整體占用連續(xù)的內存單元。

55.B解析:根據(jù)題目要求,最后要使輸出的s值為2,在程序中改變s的值的語句只有循環(huán)體中的s+=1;語句,而初始s的值為0,顯然要使s的值變?yōu)?,該語句必須執(zhí)行兩次,即do-while循環(huán)中的循環(huán)體要執(zhí)行兩次,而在do-while中,首先不執(zhí)行條件而執(zhí)行do后面的循環(huán)體語句,然后再判斷while循環(huán)條件。所以不管循環(huán)判斷條件是否為真s+=1;語句至少執(zhí)行一次,根據(jù)分析,只需要while后面括號的循環(huán)判斷表達式的值為真成立一次且只能為真一次,將4個選項中的內容依次代入該程序中不難得到只有n=-3剛好使循環(huán)判斷條件a!=n為真一次。故4個選項中選項B符合題意。

56.D解析:“&”是求址運算符,“*”是指變量說明符。選項A)、B)應改為scanf('%d',p);選項C)中指針變量p未指向一確定的內存單元,不能為其賦值,并且這樣做很危險,建議不使用。

57.C解析:本題考查的是if...else語句的使用。x=2.0,符合第二個IF語句的條件x<10.0,所以執(zhí)行y=1.0/x語句,即y=1.0/2.0=0.500000。

58.D解析:本題主要是考查帶參數(shù)的宏定義及其相關運算。本題中宏運算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

59.A解析:本題考查'%'運算符的使用。運算符'%'要求兩個運算對象都為整型,其結果是整數(shù)除法的余數(shù)。本題中表達式ao%=(b%2)等價于a=a%o(b%2)=5%(7%2)=5%1=0。

60.A解析:本題考查的是函數(shù)調用時的參數(shù)傳遞問題。程序在調用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結構變量c在棧中的一個拷貝,函數(shù)f的所有操作只是針對這個數(shù)據(jù)拷貝進行的修改,這些都不會影響變量c的值。

61.C在程序設計中,算法執(zhí)行效率與數(shù)據(jù)的存儲結構密切相關。算法的空間復雜度是指算法執(zhí)行過程中所需存儲空間。

62.A【答案】:A

【知識點】:黑盒測試

【解析】:黑盒測試也稱功能測試或數(shù)據(jù)驅動測試,它完全不考慮程序內部的邏輯結構和內部特征,只著眼于程序的外部結構,主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。

63.C

64.A//說明后面的為注釋,不執(zhí)行。當n=0,3,6的時候,執(zhí)行k--,即10-3=7,而n=6,執(zhí)行判斷n++%3!=0時,自增為7,再執(zhí)行判斷n<k時,不成立,退出循環(huán)。

65.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對

溫馨提示

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

評論

0/150

提交評論