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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.下面關于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

2.

3.

4.已知字母a的ASCII碼為十進制數(shù)97,下面程序的輸出結果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}

A.輸出無定值B.d,eC.e,fD.g,d

5.若有以下語句:typedefstructS{intg;charh;}T;以下敘述中正確的是()。A.可用S定義結構體變量B.可用T定義結構體變量C.S是struct類型的變量D.T是structS類型的變量

6.有三個關系R、s和T如下:

由關系R和s通過運算得到關系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

7.有以下程序:#include<stdio.h>,main(){intS;scanf("%d",&s);while(s>O){switch(s){casel:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:("%d",s+1);break;}scanf("%d",&s);}}運行時,若輸入123450<回車>,由輸出結果是()。A.6566456B.66656C.66666D.6666656

8.軟件詳細設計產(chǎn)生的圖如圖所示。該圖是()。A.N—S圖B.PAD圖C.程序流程圖D.E—R圖

9.已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是()

A.cedbAB.acbeDC.decaBD.deabC

10.當用戶要求輸入的字符串中含有空格時,應使用的輸入函數(shù)是()。

A.scanfB.getcharC.getsD.getc

11.

12.有以下程序:

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

A.0B.一1C.1D.7

13.若輸入“abcdef”“abdef”,下述程序的輸出結果為()。#include<stdio.h>#include<string.h>main{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.-1B.0C."abcdef"D."abdef"

14.下列運算符中優(yōu)先級最高的是()。

A.!B.%C.-=D.&&

15.若輸入“abcdef”、“abdef”,以下程序的輸出結果為()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}

A.-1B.0C.abcdefD.abdef

16.以下有4組用戶標識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

17.有下列程序:程序執(zhí)行后的輸出結果是()。A.abbcdefghijkI23456789964

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

18.設有定義語句

則以下敘述正確的是().

A.f是指向函數(shù)的指針變量,該函數(shù)具有_個int類型的形參

B.f是基類型為int的指針變量

C.f是指向int類型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

19.如下函數(shù)調(diào)用語句func(rec1,rec2+rec3,rec4,rec5);該函數(shù)調(diào)用語句中,含的實參個數(shù)是().

A.3B.4C.5D.有語法錯誤

20.對于順序存儲的線性表,訪問結點和增加、刪除結點的時間復雜度為()。

A.O(n)O(n)B.O(n)O(1)C.O(1)O(n)D.O(1)O(1)

二、2.填空題(20題)21.以下程序的輸出結果是【】。

#include<stdio.h>

main()

{ints[]={1,2,3,4},i;

intx=0;

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

{x=sb(s,x);

printf("%d",x);}

printf("\n");}

sb(s1,y)

int*s1,y;

{staticinti1=3;

y=s1[i1];

i1--;

return(y);}

22.在關系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。

23.在內(nèi)存中,存儲字符'x'要占用1個字節(jié),存儲字符串"x"要占用【】個字節(jié)。

24.若有程序

main()

{inti,j;

scanf("i=%d,j=%d",&i,&j);

pfintf("i=%d,j=%d\n",i,j);

}

要求給i賦10,給j賦20,則應該從鍵盤輸入【】。

25.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值。請?zhí)羁铡?/p>

#include<stdio,h>

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

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

prinff("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{x=ar[i][0];'

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

【】=x;

}

}

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

27.在面向?qū)ο蠓椒ㄖ?,允許作用于某個對象上的操作稱為【】。

28.對長度為10的線性表進行冒泡排序,對壞情況下需要比較的次數(shù)為______

29.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

30.以下程序運行后的輸出結果是【】。

main()

{charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

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

}

31.以下程序的輸出結果是_______。

main()

{char*p[]={"BOOL","OPK","H","SP:,};

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

32.下列程序的輸出結果是______.

#include<stdio.h>

fun()

{staticinta=O;

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

}

main()

{intcc;

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

printf("\n");

}

33.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結構、數(shù)據(jù)流、______和處理過程。

34.[]的任務是診斷和改正程序中的錯誤。

35.度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為______。

36.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

37.以下程序輸出的最后一個值是【】。

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

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

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

x=2;

do

{x=x*x;}

while(!x);

39.若有以下程序

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,32,-33,0}};

inti,j,s=0;

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

{for(j=0;j<4;j++)

{if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

}

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

}

執(zhí)行后輸出結果是【】。

40.以下程序運行后,若輸入:3,abcde<回車>,則輸出結果是【】。

#include<stdio.h>

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

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

}

三、1.選擇題(20題)41.以下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。#defineN10voidarrin(intx[N]){inti=0;while(i<N)scanf("%d",______);}在下劃線處應填入的是

A.x+iB.&x[i+1]C.x+(i++)D.&x[++i]

42.下列運算符中,不屬于關系運算符的是()

A.<B.>=C.==D.!

43.為了使模塊盡可能獨立,要求()。

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強

44.設關系R1有r1個元組,關系R2有r2個元組,則關系R1和R2連接后的結果關系的元組數(shù)目是______個。

A.r1+r2B.r1×r2C.≤r1×r2D.≥r1×r2

45.完全不考慮程序的內(nèi)部結構和內(nèi)部特征,而只是根據(jù)程序功能導出測試用例的測試方法是()

A.黑箱測試法B.白箱測試法C.錯誤推測法D.安裝測試法

46.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>A)||(m=a<B);printf("%d,%d\n",k,m);}程序運行后的輸出結果是

A.0,0B.0,1C.1,0D.1,1

47.在C語言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型

B.return語句中表達式值的類型

C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型

D.函數(shù)定義時形參的類型

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

A.指針是一個變量B.指針中存放的是數(shù)值C.指針可以進行加、減等算術運算D.指針變量占用存儲空間

49.有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序運行后的輸出結果是______。

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

50.有以下程序:voidswapl(intc0[],intc1[]){intt;t=c0[0];c0[0]=c1[0];c1[0]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5),b[2]={3,5};swapl(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}程序運行后的輸出結果是()。

A.3553B.5335C.3535D.5353

51.已知p為指針變量,a為數(shù)組名,i為整型變量,下列語句中,不正確的是______。

A.p=&i;B.p=a;C.p=&a[i];D.p=10;

52.若有函數(shù)max(a、b),為了讓函數(shù)指針變量p指向函數(shù)max,當調(diào)用該函數(shù)時,正確的賦值方法是

A.(*p)max(a,b)B.*pmax(a,b)C.p=max(a,b)D.*p=max(a,b)

53.下面程序的運行結果是#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=7;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}

A.gaeB.gaC.LanSuageD.有語法錯

54.若變量a、i已正確定義,且i已正確賦值,合法的語句是______。

A.a=1B.++i;C.a=a++=5;D.a=int(i);

55.在位運算中,操作數(shù)每左移兩位,其結果相當于()。

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

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

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

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

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

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

57.下面程序段中,輸出*的個數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");

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

58.若有定義"int*p[3];",則以下敘述中下確的是

A.定義了一個基類型為int的指針變量p,該變量具有三個指針

B.定義了一個指針數(shù)組p,該數(shù)組含有三個元素,每個元素都是基類犁為int的指針

C.定義了一個名為*p的整型數(shù)組,該數(shù)組含有三個int類型元素

D.定義了一個可指向一維數(shù)組的指針變量p,所指一維數(shù)組應具有三個int類型元素

59.下面程序段的輸出結果是()。charstr[]="ABC",*p=str;Printf("%d\n",*(p+3));

A.67B.0C.字符'C'的地址D.字符'C'

60.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+c-k值的類型為:

A.intB.doubleC.floatD.char

四、選擇題(20題)61.

有以下程序:

main

{inta=0,b=l0,c=0,d=0;

if(a=1)b=1;c=2;

elsed=3;

printf("%d,%d,%d,%d\n",a,b,C,d);

}

程序輸出()。

A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯

62.以下關于C語言的敘述中,不正確的是

A.C語言中的注釋可以夾在變量名或關鍵字的中間

B.C語言中使用變量必須是先定義后使用

C.C語言表達式運算符兩側的運算數(shù)類型必須一致

D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

63.

下列程序的輸出結果是()。

#include<stdio.h>

main

{inti;

for(i=1;i<=10,i++)

{if((i*i>=20)&&(i*i<=100))

break;

}

printf("%d\n",i*i;

}

A.49B.36C.25D.64

64.

65.

66.以下選項中與

67.有以下程序該程序試圖通過指針p為變量rl讀人數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()。

68.

69.執(zhí)行以下程序時輸人1234567<CR>,則輸出結果是()。

#include<stdio.h>

main

{

inta=1,b;

scanf("%3d%2d",&a,&b);

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

}

A.12367B.12346C.12312D.12345

70.c源程序中不能表示的數(shù)制是()。

A.二進制B.八進制C.十進制D.十六進制

71.

有如下程序:

main

{inta=2,b=-1.c=2;

if(a<0)if(b<0)c=0;

elsec++;

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

}

該程序的輸出結果是()。

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

72.有以下程序:

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

A.12B.14C.1234D.123456

73.有以下程序:

voidf(int*x,int*y)

{int*t;

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

}

main()

{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p>q)

{f(p,q);p++;q--}

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

}

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

A.8,2,3,4,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,

74.有以下程序:

#include<stdio.h>

main()

{inta=2,b;

b=a<<2;printf("%d\n",b);

}

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

A.2

B.4

C.6

D.8

75.面向?qū)ο蠓椒ㄖ?,繼承是指()。

A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制

76.下面結構體的定義語句中,錯誤的是()。

A.structord{intx;intY;intz;}structorda;

B.structord{intx;imY;imz;};structorda;

C.structord{intx;intY;intZ;}a;

D.struct{intx;intY;intz;}a;

77.設有表示學生選課的三張表,學生s(學號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課SC(學號,課號,成績),則表sc的關鍵字(鍵或碼)為()。

A.課號,成績B.學號,成績C.學號,課號D.學號,姓名,成績

78.程序調(diào)試的任務是()。

A.設計測試用例B.驗證程序的正確性C.發(fā)現(xiàn)程序中的錯誤D.診斷和改正程序中的錯誤

79.

80.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序運行后的輸出結果是()。

A.-1B.65535C.32767D.-32768

五、程序改錯題(1題)81.下列給定程序中函數(shù)proc的功能是:取出長整型變量s中偶數(shù)位上的數(shù),依次構成一個新數(shù)放在t中。例如,當s中的數(shù)為l23456789時,t中的數(shù)為2468。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.學生的記錄由學號和成績組成,M名學生的數(shù)據(jù)已在主函數(shù)中放入結構體數(shù)組S中,請編寫函數(shù)proc(),它的功能是:把分數(shù)最高的學生數(shù)據(jù)放在h所指的數(shù)組中。注意:分數(shù)最高的學生可能不止一個,函數(shù)返回分數(shù)最高學生的人數(shù)。

注意:部分源程序給出如下。

請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.A\n數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)在不同位置出現(xiàn)時應保持相同的值。

\n

2.B

3.B

4.D解析:C語言規(guī)定,所有字符常量都可以化為整型常量來處理,因而字符常量也可以參與算術運算。注:字符常量參與算術運算時,其實是使用其對應的ASCII碼值進行計算。本題中,'a'對應的ASCII碼值是97。題中雖然沒有給'6'和'0'的ASCII碼值,但應該知道'6'-'0'是將字符'6'轉換成整數(shù)6的表達式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型輸出分別是g和d。

5.B解析:語句typedefstructS{intg;charh;}T的作用是用T作為struetS{intg;charh;)的簡寫,所以選B。

6.D關系R與s經(jīng)交運算后所得到的關系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。

7.A根據(jù)題意,當s=1時,輸出65;當s=2時,輸出6;當S=3時,則輸出64;當S=4時,輸出5;當s=5時,輸出6;當s=0時,程序直接退出。所以最后答案為6566456,A選項正確。

8.CN-S圖(也被稱為盒圖或CHAPIN圖)、PAD(問題分析圖)及PFD(程序流程圖)是詳細設計階段的常用工具。E—R圖即實體一聯(lián)系圖,是數(shù)據(jù)庫設計的常用工具。從題中圖可以看出該圖屬于程序流程圖。

9.A

10.C解析:C語言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認將輸入的空格字符作為分割符,所以空格不會被輸入,故可排除scanf。getc的作用是從文件中輸入一個字符,故也不可取。gets函數(shù)可以輸入一整行作為一個字符串,其中也包括空格字符,故應該選擇C。

11.A

12.Ba一一的含義是先用后減l,所以當a的值為0時,跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。

13.D本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。

14.A

15.A

16.C解析:選項A中for和case為C語言中的保留字,不能作為用戶標志符,故A錯誤。選項B中的4d其開頭的第一個為數(shù)字,而在C語言中規(guī)定,第一個字符必須為字母或者下劃線,故B錯誤;選項D中void為C語言中的保留字,不能作為用戶標志符,故D錯誤。所以,4個選項中選項C符合題意。

17.B程序定義數(shù)組a和b,其中a使用小寫字母和數(shù)字構成的字符串完成初始化。第1個for循環(huán)將數(shù)組a中所有的非小寫字母字符(數(shù)字字符)自左向右存放到b數(shù)組中;第2個for循環(huán)將數(shù)組a中所有的非數(shù)字字符(小寫字母)自左向右存放到b的后續(xù)單元中,在所有字符后添加空字符,輸出b,此時b的值為:123456789964abbcdefghijk。本題答案為B選項。

18.A

19.B

20.C

21.43214321解析:靜態(tài)存儲類的局部變量其生存期為整個程序的運行期間,作用域卻只是定義它的函數(shù)或局部范圍。注意:局部變量和全局變量的作用域。

22.關系關系解析:關系模型用;維表表示,則每個;維表代表一種關系。

23.22解析:計算機存儲一個字符用1個字節(jié),存儲字符串時,每個字符用占用1個字節(jié),另在字符串的有效字符之后存儲1個字符串的結束標記符。所以存儲字符串“X”要占用2個字節(jié),存儲字符'x'只要1個字節(jié)。注意:sizeof()函數(shù)和strlen()函數(shù)的作用。

24.i=0j=20i=0,j=20解析:scanf()函數(shù)的使用,該函數(shù)的第一個參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應要輸入的變量,所以說本題中應該原樣輸入i=,j=,后面分別給變量0和20,所以說空格處應該填入i=0,j=20。

25.br[i]或*(br+i)br[i]或*(br+i)解析:程序中的數(shù)組a是一個3行4列的二維數(shù)組,一維數(shù)組b用于存放每行的最大數(shù)。在函數(shù)fun中,通過二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù),當外層循環(huán)執(zhí)行一次時,內(nèi)層循環(huán)則從一行的4個數(shù)中找出最大數(shù)x,然后將最大值x賦給數(shù)組br,故空格處應填br[i]或*(br+i)。

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

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

28.在最壞情況下冒泡排序法需要比較的次數(shù)為n(n-1)/2。

29.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。

30.220.000000220.000000解析:注意區(qū)分運算符的優(yōu)先級。先是給c賦值,然后計算x=f*=n/=50,得x=f*=2,最后有x=20。x輸出是按浮點數(shù)的形式輸出的,小數(shù)點后的0不能少。

31.

32.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因為fun函數(shù)中變量a為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都要保存。

33.數(shù)據(jù)存儲數(shù)據(jù)存儲

34.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務是診斷和改正程序中的錯誤。它與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于一定的調(diào)試工具去找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,調(diào)試主要在開發(fā)階段。

35.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。

36.概念(或概念級)概念(或概念級)

37.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:

①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。

②對靜態(tài)局部變量是在編譯時賦被值的,即只賦被值一次,在程序運行時它已有被值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結束時的值。

③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦被值)

④雖然靜態(tài)局部變量在函數(shù)調(diào)用結束后仍然存在,但其他函數(shù)是不能引用它的。

本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。

38.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次。

39.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素;若不是則判斷a[i][j]的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。

40.cdeabcdeab解析:程序中的move函數(shù)的作用是保存輸入數(shù)組中的最后一個元素,然后從最后一個數(shù)組元素開始,依次向后移動一個位置,再把保存的最后一個元素置于首位,循環(huán)次數(shù)由n控制。輸入3,abcde<回車>后主函數(shù)開始執(zhí)行,其中n=3,s[50]={'abcde'},z=5。第一次循環(huán),i=1時,調(diào)用move(s,5)函數(shù),temp=str[4]語句把數(shù)組中最后一個元素\'e\'保存在temp中,然后i從4開始循環(huán),將str[3](字符\'d\')賦給str[4],str[2](字符\'c\')賦給str[3],……,循環(huán)結束時str所指字符串為'aabcd',再將保存在temp中的\'e\'置于首位,字符串變?yōu)?eabcd';i=2時,調(diào)用move函數(shù),字符串為'deabc';i=3時,調(diào)用move函數(shù),字符串為'cdeab'。最后輸出結果為'cdeab'。

41.C解析:本題考核的知識點是scarf()函數(shù)的輸入格式。在stallf()函數(shù)中有兩個參數(shù),其中第一個參數(shù)為輸入格式字符串,第二個參數(shù)是地址字符串.根據(jù)scanf()的定義,故應該在空白處填入一地址,4個選項中只有B和D符合,又由題意要給數(shù)組的每個成員賦值,i表示數(shù)組的下標,那么i必須每循環(huán)一次加1,即指向下一個數(shù)組元素,當i=7時循環(huán)體執(zhí)行了7次,數(shù)組的每個成員都被賦值了,退出循環(huán),因此選項B錯誤。所以,C選項為所選。

42.D

43.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關聯(lián)的。在程序結構中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。

44.C

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

46.C解析:本題考查“邏輯或”運算的特例。本題中執(zhí)行語句k=(n=b>a)||(m=a<b)時,首先計算表達式(n=b>a)||(m=a<b)的值,因b=2,a=1,所以b>a成立,即得n=1,故表達式(n=b>a)||(m=a<b)的值為真,不再執(zhí)行表達式m=a<b,故執(zhí)行完表達式k=(n=b2>a)||(m=a<b)后,n=1、m=0、k=1。

47.A解析:在C語言中,應當在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應該和return語句中的表達式類型一致。如果函數(shù)值的類型和return語句中的表達式類型不一致,則以函數(shù)值的類型為準,由系統(tǒng)自動進行轉換,即函數(shù)類型決定返回值的類型。

48.B解析:指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是—個存儲單元,而不是一個字節(jié)。

49.B解析:本題是考查手工模擬執(zhí)行程序的能力。a初值是1,循環(huán)開始時b值為1,由于a>=8為假,不執(zhí)行break,但a%2==1為真,執(zhí)行a+=5,a值變?yōu)?,再執(zhí)行continue跳過不執(zhí)行a-=3語句,而立即開始下一次循環(huán)。這時b值為2,由于a值為6,a>=8仍為假,不執(zhí)行break,但a%2==1為假,不執(zhí)行復合語句“{a+=5;continue;}”而執(zhí)行a-=3,a值變?yōu)?。再開始下一次循環(huán),這時b值為3。由于a值為3,a>=8仍為假,不執(zhí)行break,但a%2==1為真,執(zhí)行a+=5,a值變?yōu)?,再執(zhí)行continue跳過不執(zhí)行a-=3語句,而立即開始下一次循環(huán)。這時b值為4。由于a值為8,a>=8為真,執(zhí)行break,停止for循環(huán)。此時輸出的b值應為4。

50.D解析:函數(shù)swapl的形參是數(shù)組名,在調(diào)用時應將數(shù)組名,即數(shù)組的首地址,作為實參傳遞給形參,形參所指向內(nèi)容的改變可以帶回到實參,因此調(diào)用函數(shù)swap1是將元素a[0]和a[1]互換。函數(shù)swap2的形參是指針變量,在調(diào)用時將b[0]、b[1]的值傳遞給它,形參內(nèi)容改變也可以帶回到實參,b[0]和b[1]的內(nèi)容也進行了交換。所以輸出為5353。

51.D解析:不能把一個整數(shù)賦給指針變量,只能將變量已分配的地址賦給指針變量。

52.C解析:考查指向函數(shù)的指針變量的使用。在本題中,將函數(shù)的入口地址賦給指針后就可以用該指針調(diào)用函數(shù)了。

53.A

54.B解析:選項D顯然是錯的,而選項A沒有分號結束,不是C語句;a++=5違反了賦值表達式工側必須為一個變量(不能是常量或表達式)的規(guī)定。

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

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

57.C解析:本題中,格式符。表示的是八進制無符號形式輸出整型數(shù)(不帶前導0),字符常量在內(nèi)存中占一個字節(jié),存放的是ACSII碼代碼值。C語言規(guī)定,所有字符常量都作為整型量來處理,在計算機內(nèi)部,其對應的整數(shù)值就是ACSII字符集中該字符的序號,即&*s中有幾個字符就輸出幾個*。

58.B解析:本題考核的知識點是指針數(shù)組的定義。指針數(shù)組也是一種數(shù)組,所有有關的概念都適用于它。但它與普通的數(shù)組又有區(qū)別,它的數(shù)組元素是指針類型,只能用來存放地址。其格式為:存儲類型數(shù)據(jù)類型*指針數(shù)組名[長度1],其含義為:定義了一個長度1的數(shù)組,其中數(shù)組元素為相應存儲類型的指針,對比定義可知,選項A、c和D都不正確,所以,4個選項中選項B符合題意。

59.B解析:本題考查指向字符串的指針變量。指針變量p指向的應該是該字符串中的首地址,p+3指向的是字符串結束標志'\\0'的地址,因而*(p+3)的值為0。

60.B解析:雙目運算中兩邊運算量類型轉換規(guī)律:

運算數(shù)1運算數(shù)2轉換結果類型

短整型長整型短整型->長整型

整型長整型整型->長整型

字符型整型字符型->整型

有符號整型無符號整型有符號整型->無符號整型

整型浮點型整型->浮點型

在a/b的時候,a、b的類型不一致,根據(jù)類型轉換規(guī)則,把整型轉換成double類型,之后的加、減類似。轉化規(guī)則為char,short->int->unsigned->long->double←float。

61.D

\n語法錯誤。else與if之間不應再用其他語句,如果滿足if條件,則繼續(xù)執(zhí)行if后面的語句;不滿足就執(zhí)行else語句。

\n

62.CA選項指出“C語言中的注釋可以夾在變量名或關鍵字的中間”,該選項是正確的。通常采用/*.....*/作為C語言里的注釋符,注釋符之間的內(nèi)容是方便他人理解程序而寫的,對編譯和運行不起作用。注釋可以在程序的任何位置。

B選項“C語言中使用變量必須是先定義后使用”,該選項是正確的。變量先定義后使用是編程語言的語法規(guī)則。這樣可以讓編譯器首先知道該定義變量的類型,可以事先為該變量安排好存儲空間,不至于最后編譯失敗。如果預先沒有定義,編譯器會因為不清楚該變量的類型而導致隨意分配內(nèi)存空間,這樣可能導致空間分配過大了浪費或因為空間過小無法存儲數(shù)據(jù)。

C選項“C語言表達式運算符兩側的運算數(shù)類型必須一致”,該選項是錯誤的。C語言允許整型、實型、字符型數(shù)據(jù)間進行混合運算。在運算時,不同類型的數(shù)據(jù)要先轉換成同一類型,然后進行運算。

D選項“C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示”,該選項是正確的??崭穹?、制表符、換行符等統(tǒng)稱為空白符??瞻追辉谧址A亢妥址A恐衅鹱饔?。在其他地方出現(xiàn)時,只起間隔作用,編譯程序?qū)λ鼈兒雎浴R虼?,在程序中使用空白符與否,對程序的編譯不發(fā)生影響,但

溫馨提示

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

評論

0/150

提交評論