2022年浙江省紹興市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2022年浙江省紹興市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2022年浙江省紹興市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2022年浙江省紹興市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2022年浙江省紹興市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年浙江省紹興市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y(tǒng))reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運行后的輸出結果是______。A.3B.6C.8D.12

2.若a是數(shù)值類型,則邏輯表達式(a==1)II(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能確定

3.二維數(shù)組A的每個元素是由6個字符組成的串,其行下標i=0,1,…,8,列下標j=1,2,…,10。若A按行先存儲,元素A[8][5]的起始地址與當A按列先存儲時的元素()的起始地址相同。設每個字符占一個字節(jié)。

A.A[8][5]B.A[3][10]C.A[5][8]D.A[0][9]

4.下述程序執(zhí)行的輸出結果是()。#include<stdio.h>main(){chara[2][4];strcpy(a。"are");strcpy(a[1],"you");a[o][3]=&;printf("%s\n",a);}A.are&youB.youC.areD.&

5.

6.判定一個順序棧st(最多元素為MaxSize)為滿的條件是()。A.st->top!B.st->top!C.top==-1D.top==MaxSize

7.若有定義和語句:int**pp),*P,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);則輸出結果是()。A.20,10B.20,20C.10,20D.10,10

8.在一個被調用函數(shù)中,關于return語句使用的描述,()是錯誤的。

A.被調用函數(shù)中可以不用return語句

B.被調用函數(shù)中可以使用多個return語句

C.被調用函數(shù)中,如果有返回值,就一定要有return語句

D.被調用函數(shù)中,一個return語句可以返回多個值給調用函數(shù)

9.面向對象的設計方法與傳統(tǒng)的面向過程的方法有本質不同,它的基本原理是()。

A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B.強調模擬現(xiàn)實世界中的算法而不強調概念

C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題

D.不強調模擬現(xiàn)實世界中的算法而強調概念

10.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是______。

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

11.已知10個元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹,查找值為62的結點所需比較次數(shù)為()

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

12.當執(zhí)行下面的程序時,如果輸入ABC,則輸出結果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

13.

14.串是一種特殊的線性表,其特殊性體現(xiàn)在()。

A.可以順序存儲B.數(shù)據(jù)元素是一個字符C.可以鏈式存儲D.數(shù)據(jù)元素可以是多個字符

15.眾所周知數(shù)據(jù)結構中非?;镜臉浣Y構包括二叉查找樹(BST)。當我們把如下序列:10,5,19,4,13,7,6,3,1按順序建立一棵BST時,樹的最大深度是?(令根節(jié)點深度為0,不執(zhí)行平衡二叉樹操作)()

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

16.用鏈表表示線性表的優(yōu)點是()。

A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于捅入和刪除操作D.數(shù)據(jù)元素的物理順序與邏輯順序相同

17.在帶頭結點的單鏈表head為空的判定條件是()。

A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL

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

19.算法分析的兩個主要方面是()。

A.空間復雜性和時間復雜性B.正確性和簡明性C.可讀性和文檔性D.數(shù)據(jù)復雜性和程序復雜性

20.下面哪種排序的平均比較次數(shù)最少()

A.插入排序B.選擇排序C.堆排序D.快速排序

二、2.填空題(20題)21.執(zhí)行下面程序段后,k的值是【】。

r=1;n=203;k=1

do{k*=n%10*r;n/=10;r++;}while(n);

22.下列語句能循環(huán)______次。

ints=12;

while(s);

--s;

23.下面程序的運行結果是:【】。

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}

24.函數(shù)fun的功能是計算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調用fun函數(shù)計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調用語句為【】。

25.程序的運行結果為【】。

main()

{intx,y,z;

x=24;

y=024;

z=0x24;

printf("%d,%d,%d\n",x,y,z);

}

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

main()

{intp=30;

printf("%dkn",(p/3>0?p/10:p%3));

}

27.若已知a=10,b=20,則表達式!a<b的值為【】。

28.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標,最大的值和它所在的下標通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標。請?zhí)羁铡?/p>

#include<stdlib.h>

#include<stdio.h>

voidfun(inta[],intn,int*max,int*d)

{intI;

*max=a[0];

*d=0;

for(I=0;【】;I++)

if(*max<【】)

{*max=a[I];*d=i;}}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{x[i]=rand()%50;printf("%4d",x[i]);}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);}

29.下面程序的功能是調用sub函數(shù)計算數(shù)組a中字符串的長度,請?zhí)羁铡?/p>

sub(chars[])

{intn;

for(n=0;【】n++);

return【】;

}

main()

{char*a;intk;

gets(a);

【】

printf("%d",k);

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

FILE*myf;longfl;

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

fseek(myf,(),SEEK_END)fl+ftell(myf);

fclose(myf);

printf("%ld\n",fl);

31.設一棵完全二叉樹共有700個結點,則在該二叉樹中有【】個葉子結點。

32.二叉樹按某順序線索化后,其結點均有指向其前趨和后繼的線索,該說法是【】的。

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

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

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

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

}

35.數(shù)據(jù)庫理論中,數(shù)據(jù)的獨立性一般可分為物理獨立性和______。

36.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。

37.若a是int型變量,且a的初值為4,則計算a+=a-=a*a表達式后a的值為______。

38.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

39.在兩種基本測試方法中,()測試的原則之一是保證所測模塊中每一個獨立路徑至少執(zhí)行一次。

40.執(zhí)行以下程序時,若輸入end<回車>,則輸出結果是【】。

main()

{charch[10]="Begin";

gets(&ch[1]);puts(ch);

}

三、1.選擇題(20題)41.若有以下的說明,對初值中整數(shù)2的正確引用方式是

staticstruct

{charch;

inti;

doublex;

}a[2][3]={{{′a′,1,3,45},{′b′,2,7,98},{′c′,31,93}}};

A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i

42.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結果為()。

ch='b';

k=10;

printf("%x,%o,",ch,ch,k);

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

A.因變量類型與格式描述符的類型不匹配,輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值

C.62,142,k=%d

D.62,142,k=%10

43.以下程序的輸出結果是_______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++:*sl=*s2-;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}

A.1234567B.7654321C.1711717D.7177171

44.下列對于線性鏈表的描述中正確的是______。

A.存儲空間不一定是連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且各前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

45.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是

A.data的每個成員起始地址都相同

B.變量data所占內存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf(“%I'm”,data.C);輸出結果為5.000000

D.data可以作為函數(shù)的實參

46.兩次運行下列的程序,如果從鍵盤上分別輸入3和1,則輸出結果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}

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

47.對下述程序,正確的判斷是()。main(){inta,b;scanf("%d",&a);scanf("%d",&b);if(a>b)a+=b;b++;elseb+=a;a++;printf("%d,%d",a,b);}

A.有語法錯誤,不能通過編譯

B.若輸入數(shù)據(jù)2和5,則輸出3和7

C.若輸入數(shù)據(jù)5和2,則輸出7和3

D.若輸入數(shù)據(jù)5和5,則輸出6和10

48.以下敘述中正確的是()。

A.構成C程序的基本單位是函數(shù)

B.可以在一個函數(shù)中定義另一個函數(shù)

C.main函數(shù)必須放在其他函數(shù)之前

D.C函數(shù)定義的格式是K&R格式

49.運行下面程序時,從鍵盤輸入字母H,則輸出結果是#include<stdio.h>main(){charch;ch=getchar();switch(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}

A.Hello!

B.Hello!GoodMoring!

C.Hello!Goodmorning!Bye_Bye!

D.Hello!Bye_Bye!

50.使用白盒測試法時,確定測試數(shù)據(jù)應該根據(jù)()和指定的覆蓋標準。

A.程序的內部邏輯B.程序的復雜結構C.使用說明書D.程序的功能

51.當執(zhí)行以下程序段時,______。x=-1;do{x=x*x;}while(!x);

A.循環(huán)體將執(zhí)行1次B.循環(huán)體將執(zhí)行2次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

52.已知x=3、y=2則表達式x*=y(tǒng)+8的值為()

A.3B.2C.30D.10

53.若有如下程序:main(){intn;for(n=0;n<9;n++){if(n<1){printf("%d",n);continue;}if(n==4)break;printf("%d",n);}}則循環(huán)體執(zhí)行的次數(shù)是()。

A.1B.5C.9D.死循環(huán)

54.下列程序段的輸出結果是______。intx=5,y=4,z;printf("%d\n",z+=1,z=x%y);

A.0B.1C.2D.結果是不確定值

55.下面程序的輸出結果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}

A.121,0,4B.2,2,2C.0,2,4D.0,2,2

56.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為______。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

57.有以下程序:main(){chara[]="abcdefg",b[10]="abedefg";printf("%d%d\n",sizeof(A),sizeof(B));}執(zhí)行后輸出結果是()。

A.77B.88C.810D.1010

58.下列關于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件

C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

59.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];則b的值是

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

60.若以下程序所生成的可執(zhí)行文件名為file1.exe,main(intargc,char*argv[]){while(argc-->0){++argv;printf("%s",*argv);}}當鍵入以下命令執(zhí)行該程序時:FILE1CHINABEUINGSHANGHAI程序的輸出結果是()

A.CHINABEIJIANGSHANGHAI

B.FILE1CHINABEIJING

C.CBS

D.FCB

四、選擇題(20題)61.有兩個關系R和T如下:

則由關系R得到關系T的操作是()。A.選擇B.投影C.交D.并

62.

63.“商品”與“顧客”兩個實體集之間的聯(lián)系一般是

A.一對一B.一對多C.多對一D.多對多

64.

65.以下選項中不合法的標識符是()。

A.&aB.FORC.pfintD.00

66.有下列程序

main()

{

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

p=a;

k=&p;

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

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

}

運行該程序,其輸出結果是

A.4B.22

C.24D.46

67.

68.有三個關系R、S和T如下:

則由關系R和S得到關系T的操作是()。

A.自然連接B.交C.除D.并

69.以下語句的執(zhí)行結果是()。

intm=0,s=1;

do{

s+=m++;

}while(m<6);

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

A.17B.16C.15D.18

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

main

{

doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

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

}

A.3B.3.2C.0D.3.07

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

A.循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結構

B.在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況

C.在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況

D.循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定的

72.

73.

74.

75.以下選項中正確的定義語句是()。

A.double,a,b;B.doublea=b=7;C.doublea;b;D.doublea=7,b=7;

76.

77.

78.數(shù)據(jù)庫應用系統(tǒng)中的核心問題是()。

A.數(shù)據(jù)庫設計B.數(shù)據(jù)庫系統(tǒng)設計C.數(shù)據(jù)庫維護D.數(shù)據(jù)庫管理員培訓

79.

80.

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc的功能是:用選擇法對數(shù)組中的m個元素按從小到大的順序進行排序。例如,排序前的數(shù)據(jù)為:1132-5214則排序后的數(shù)據(jù)為:-52111432請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdio.h>#defineM20voidproc(inta[],intn){inti,j,t,P;//****found****for(j=0;j<n-1;j++);{p=j;for(i=j;i<n;i++)if(a[[i]<a[p])p=i;t=a[p];a[p]=aEj3;//****found****a[p]=t;}}voidmain{intarr[M]={11,32,-5,2,14},i,m=5;printf("排序前的數(shù)據(jù):");for(i=0;i<m;i++)printf("%d",arr[i]);printf("\n");proc(arr,m);printf("排序后的順序:");for(i=0;i<m;i++)printf("%d",arr[i]);printf("\n");}

六、程序設計題(1題)82.請編寫函數(shù)proc,其功能是:將str所指字符串中除下標為偶數(shù)、同時ASCIl碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內容為ABCDEFGl2345,其中字符B的ASCIl碼值為偶數(shù),所在元素的下標為奇數(shù),因此必須刪除;而字符A的ASCIl碼值為奇數(shù),所在數(shù)組中的下標為偶數(shù),因此不應當刪除。依此類推,最后t所指的數(shù)組中的內容應是ACEG。

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

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

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#include<string.h>

voidproc(char*str,chart[])

{

}

voidmain

{

charstr[100],t[100];

system("CLS");

printf("\nPleaseenterstringstr:");

scanf("%S",str);

proc(str,t);

printf("\nTheresultiS:%s\n",t);

參考答案

1.B解析:在主函數(shù)中,第—次調用fun函數(shù),將變量b,c的值傳給形參x,y,在fun()函數(shù)中執(zhí)行if語句,判斷b和c的值是否相等,由于在主函數(shù)中賦初值b=5,c=6,所以判斷條件不滿足,執(zhí)行else語句,返回表達式(x+y)/2的值,即:(5+6)/2,因為參數(shù)的類型都為int型,所以結果也為整型:5,第二次調用時8和5也不相等,所以返回值為6,因此,選項B是正確的。

2.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。

3.A

4.Astrcpy實現(xiàn)的功能是復制,該操作把are復制到a中,aE03E33一’&’,且strcpy(aEl],"you")把you復制到a[l]中,故輸出a為“are&you”。

5.A

6.D

7.D本題考查指針變量的賦值。**PP是定義一個指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內存空間的內容,即b的值。

8.D

9.C\n面向對象的設計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強調模擬現(xiàn)實世界中的概念而不強調算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應用領域的概念角度去思考。

\n

10.D解析:通常,引用一個數(shù)組元素可以用下標法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標是從0開始的。

11.B

12.A

13.A

14.B

15.B

16.C數(shù)據(jù)的存儲結構有順序存儲結構和鏈式存儲結構兩種。不同存儲結構的數(shù)據(jù)處理效率不同。由于鏈表采用鏈式存儲結構,元素的物理順序并不連續(xù),對于插入和刪除無需移動元素,很方便,當查找元素時就需要逐.個元素查找,因此查找的時間相對更長。

17.B

18.B

19.A

20.D

21.00解析:本題考查的是do厀hile循環(huán)。第一次執(zhí)行循環(huán)體,因為k=1,r=1,n=20,所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4,所以k的值為0。

22.無限無限解析:分析程序“while(s)”語句后面有一個“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。

23.1111解析:此題涉及函數(shù)的調用和if語句。程序先執(zhí)行第二個if語句,然后再執(zhí)行第一個if語句,最后用return返回數(shù)值。

24.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應該調用函數(shù)fun(a,4),b4應該調用函數(shù)fun(b,4),(a+b)3應該調用函數(shù)fun(a+b,3),所以題目中的數(shù)學表達式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

25.242036

26.33本試題中,先判斷表達式p/3>0,該值為真,所以此表達式等于p/10的值3,故最后輸出的值為3。

27.11解析:計算表達式!a<b,先計算!a,因a的值為10,!a的值為0,而關系表達式0<20為真,所以表達式!a<b的值為1。

28.I<na[I]I<n,a[I]解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它們所指向的變量時,要對它們進行指針運算,即*號運算。

29.s[n]!='\0';或s[n];nk=sub(a);s[n]!='\\0';或s[n];\r\nn\r\nk=sub(a);解析:函數(shù)sub()通過for循環(huán)計算字符串的長度,當字符串沒有結束時循環(huán),因此判斷循環(huán)與否的條件是看字符串是否結束。故第1空應該填寫s[n];或其他等價表達式。循環(huán)結束返回字符串長度值,循環(huán)變量n中累計了循環(huán)的次數(shù)即字符串的長度,故第2空應該填n。主函數(shù)中的空白處應該是一條調用函數(shù)sub()的語句,將字符串的首地址作為實參傳遞給形參,并將返回值賦值給變量k。故第3空應該填k=sub(a);。

30.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制文件。文件在使用前打開,使用后要關閉。打開文件的函數(shù)為:fopen(),調用形式為:fp=fopen('文件名','使用文件方式');關閉文件的函數(shù)為:fclose(),調用形式為:fclose(fp),其中fp為文件指針。

31.350350解析:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結點。因此,設一棵完全二叉樹具有n個結點,若n為偶數(shù),則在該二叉樹中有n/2個葉子結點以及n/2-1個度為2的結點,還有1個是度為1的結點:若n為奇數(shù),則在該二叉樹中有[n/2]+1個葉子結點以及[n/2]個度為2的結點,沒有度為1的結點。本題中,完全二叉樹共有700個結點,700是偶數(shù),所以,在該二叉樹中有350個葉子結點以及349個度為2的結點,還有1個是度為1的結點。所以,本題的正確答案為350。

32.錯誤錯誤解析:線索二叉樹是利用二叉鏈表存儲結構中的空鏈域來存放其前趨或后繼。由于二叉樹度為2的非終端結點無空鏈域,因此它沒有空鏈域用來存放前趨和后繼。

33.軟件工程學軟件工程學

34.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應取外部變量的值13,因此輸出2。

35.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)的獨立性一般可分為物理獨立性和邏輯獨立性。

36.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設計測試實例時,測試人員將程序看成一個“黑盒”,即不關心程序內部是如何實現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設計的測試用例完全是根據(jù)程序的功能說明來設計的。

37.-24-24解析:本題考查賦值運算符a+=b等價于a=a+b;a-=a*a等價于a=a-a*a=4-4*4=-12;a+=a,即a=a+a=-24。

38.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

39.白盒白盒解析:按功能劃分測試可分為白盒測試和黑盒測試。白盒測試的原則是保證所測試模塊中每一獨立路徑至少執(zhí)行一次;保證所測試模塊所有判斷的每一分支至少執(zhí)行一次:保證所測試模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗證所有內部數(shù)據(jù)結構的有效性。

40.Bend

41.B解析:考查結構體數(shù)組對結構體成員的引用。結構體數(shù)組中對結構體成員的引用要先引用到數(shù)組元素,然后像對待普通的結構體變量一樣來對待結構體數(shù)組元素。

42.C解析:第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個printf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。

43.C解析:在于函數(shù)fun中,s1為字符串w的起始地址,s2為字符串的結束地址(字符\'\\0\'除外),當執(zhí)行循環(huán)結束循環(huán),w='1711717'。

44.A解析:線性表的鏈式存儲結構稱為線性鏈表,是一種物理存儲單元上非連續(xù)、非順序的存儲結構,數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接來實現(xiàn)的。

45.C解析:本題考查的共用體的概念。共用體變量中的所有成員共享一段公共存儲區(qū),所以共用體變量所占內存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個成員相等.本題定義的共用體中成員C所占的內存最多,因此選項B是正確的。由于共用體變量中的所有成員共享存儲空間,因此變量中的所有成員的首地址相同,選項A是正確的。同結構體變量一樣,共用體類型的變量可以作為實參進行傳遞,也可以傳送共用體變量的地址,選項D也是正確的。在內存中,實數(shù)與整數(shù)的存放形式完全不一樣,共用體的成員共用的是同一塊內存,而不是同一個數(shù)值,因此選項C是錯誤的。

46.A解析:本題考查ifelse語句。首先scanf函數(shù)通過鍵盤讀入x的值。當x=3時,第一個if語句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出x的值4。當x=1時,第一個if語句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語句,先輸出x的值2,再將x的值減1。

47.A解析:本題中的else語句和if語句之間有兩條語句,并且未用大括號括起來,故編譯通不過。所以應該選擇A。

48.A解析:本題考查C語言的綜合基礎知識。構成C程序的基本單位是函數(shù),一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何。C語言的函數(shù)定義都是互相平行、獨立的,在定義函數(shù)時,一個函數(shù)內不能定義另一個函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。

49.C解析:本題主要對switch語句進行了考查。switch語句的執(zhí)行過程為:進入switch結構后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為入口,執(zhí)行switch結構中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時則執(zhí)行default后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'C'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行了。

50.A白盒測試是把測試對象看作是一個打開的盒子,允許測試人員利用程序內部的邏輯結構及相關信息來設計或選擇測試用例,對程序所有的邏輯路徑進行測試。所以,白盒測試的對象基本上是源程序,以程序的內

【知識拓展】軟件測試按照功能劃分可以分成白盒(白箱)測試和黑盒(黑箱)測試。其中黑盒測試是對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進行測試和驗證。

51.A

52.C

53.B解析:因為在循環(huán)中存在一條這樣的語句“if(n=4)break;”,所以循環(huán)變量n遞增到4的時候循環(huán)會被強行結束。故一共循環(huán)了5次,每次n的值分別為0、1、2、3、4。應該選擇B。

54.C解析:printf函數(shù)的參數(shù)傳遞方向是從右至左,因此,先將x%y的值1賦給z,再執(zhí)行z+=1,z的值變?yōu)?,格式控制符%d是將z+=1的值輸出。

55.B解析:sizeof函數(shù)是取變量所占的存儲空間的字節(jié)數(shù),標識a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認為整型;enumc{a1,a2};定義了—個枚舉類型enumc,a1,a2為枚舉元素,在C編譯時,對枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。

56.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。

57.C解析:本題中定義兩個字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdefg”。所以a的長度為賦值給它的字符串的字符個數(shù)7加上一個結束轉義字符,即a的長度為7+1為8。定義時b的長度定義為10,故b的長度為lo,因此最后通過函數(shù)sizeom求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個選項中選項c符合題意。

58.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進制文件是把內存中的數(shù)據(jù)按其在內存中的存儲形式原樣輸出到磁盤上存放。

59.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]指向數(shù)組a的第9個元素,而a[8]=9,所以b=9。

60.A

61.A

62.C

63.D解析:兩個實體間的聯(lián)系可以歸納為3種類型:一對一聯(lián)系:一對一的聯(lián)系表現(xiàn)為主表中的每一條記錄只與相關表中的一條記錄相關聯(lián)。一對多聯(lián)系,一對多的聯(lián)系表現(xiàn)為主表中的每一條記錄與相關表中的多條記錄相關聯(lián)。多對多聯(lián)系:多對多的聯(lián)系表現(xiàn)為二個表中的多個記錄在相關表中同樣有多個記錄其匹配。本題中一個顧客可以購買多種商品,同一種商品可以有

溫馨提示

  • 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

提交評論