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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.

2.現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續(xù)的3個結(jié)點。structnode{hardata;structnode*next;)*P,*q,*r;現(xiàn)要將q和r所指結(jié)點交換前后位置,同時要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;

B.q-:>next=r;q->next=r->next;r->next=q;

C.q-:>next=r->next;r->next=q;p->next=r;

D.q-:>next=q;p->next=r;q->next=r->next;

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

A.C程序由函數(shù)和過程組成B.C程序由主函數(shù)組成C.C程序由函數(shù)組成D.C程序中,主函數(shù)必須放在其他函數(shù)之前

4.

5.算法應(yīng)該是()

A.程序B.問題求解步驟的描述C.要滿足五個基本特性D.B和C

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

7.在說明語句:int*f();中,標(biāo)識符f代表的是

A.一個用于指向整型數(shù)據(jù)的指針變量

B.一個用于指向一維數(shù)組的行指針

C.一個用于指向函數(shù)的指針變量

D.一個返回值為指針型的函數(shù)名

8.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf(“%d”,--y);}程序的運行結(jié)果是()。

A.852B.963C.741D.875421

9.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。

A.b=double(b);B.(int)a=(int)b;C.a=a++=5;D.a=double(b);

10.下列敘述中錯誤的是()。

A.C語言程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行過程中進(jìn)行的

B.預(yù)處理命令行的最后不能以分號表示結(jié)束

C.“#defmeMAX”是合法的宏定義命令行

D.在程序中,凡是以“#”開始的語句行都是預(yù)處理命令行

11.有以下程序:#include<stdio.h>main(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序運行后的輸出結(jié)果是()。A.0B.1C.2D.3

12.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

13.在ASC算法team日常開發(fā)中,常常面臨一些數(shù)據(jù)結(jié)構(gòu)的抉擇,令人糾結(jié)。目前大家在策劃一個FBI項目(FastBinaryIndexing),其中用到的詞匯有6200條,詞匯長度在10-15之間,詞匯字符是英文字母,區(qū)分大小寫。請在下面幾個數(shù)據(jù)結(jié)構(gòu)中選擇一個使檢索速度最快的()

A.二叉搜索樹,比較函數(shù)開銷:1次運算/每字符

B.哈希表,hash算法開銷:10次運算/每字符

C.鏈表,比較函數(shù)開銷:1次運算/每字符

D.TRIE樹,尋找子節(jié)點開銷:1次運算/每字符

14.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運行后的輸出結(jié)果是()。

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

15.在下列關(guān)系運算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是A.并B.交C.投影D.笛卡兒乘積

16.以下各選項中的代碼段執(zhí)行后,變量y的值不為1的是()。A.intx=5,y=0;if(5)y=1;

B.intx=5,y=0;if(x)y=1;

C.intx=10,y=0;if(x=y)y=1;

D.intx=5,y=10;if(x=y)y=1;

17.設(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

18.在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個學(xué)生信息的數(shù)據(jù)單位是()。

A.文件B.數(shù)據(jù)庫C.字段D.記錄

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

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

20.

二、2.填空題(20題)21.在面向?qū)ο蠓椒ㄖ?,類的實例稱為______。

22.當(dāng)輸入的數(shù)據(jù)為2、5時,則下列程序的運行結(jié)果為【】。

#include<stdio.h>

#definemax100

main()

{

intf[max],i,j,k,m;

scanf("%d%d",&k,&m);

for(i=0;i<=m;i++)f[i]=0;

f[k-1]=1;

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

for(j=i-k;j<=i-1;j++)f[i]+=f[i];

printf("%d%10d%10d\n",k,m,f[m]);

getch();

}

23.設(shè)一棵完全二叉樹共有700個結(jié)點,則在該二叉樹中有【】個葉子結(jié)點。

24.C語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個注釋以【】分別作為開始和結(jié)束。

25.下面函數(shù)用來求兩個單精度數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)羁铡?/p>

Voidsub(floatx,noaty,【】z)

{【】=x+y;}

26.若有語句

inti=-19,j=i%4;

printf("%d\n",j),

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

27.以下程序的運行結(jié)果是【】。

#include<string.h>

typeaefstructstudent{

charname[10];

longsno;

floatscore;

{STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(a.name,b.name)>0)d=b;

if(strcmp(C.name,)>0)d=C;

printf("%1d%s\n",d.sno,p->name);

}

28.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于______的聯(lián)系。

29.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體"項目主管"與實體"項目"的聯(lián)系屬于【】的聯(lián)系。

30.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為______。

31.軟件定義時期主要包括______和需求分析兩個階段。

32.若a的值為1,則表達(dá)式!a‖++a的值是______。

33.診斷和改正程序中錯誤的工作通常稱為【】。

34.在程序設(shè)計階段應(yīng)該采取【】和逐步求精的方法,把一個模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計語言寫成程序。

35.下列程序執(zhí)行輸出的結(jié)果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(A);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

36.對有14個結(jié)點的完全二叉樹的結(jié)點以從上到下、從左到右的順序進(jìn)行編號后,序號最小的葉結(jié)點的序號【】。

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

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

39.以下定義的結(jié)構(gòu)體類型里包含兩個成員,其中成員變量info用來存放整型數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針。請將定義補充完整。

structnode

{intinfo;

【】link;

};

40.計算機網(wǎng)絡(luò)按通信距離來劃分可以分為【】。

三、1.選擇題(20題)41.______是構(gòu)成C語言程序的基本單位。

A.函數(shù)B.過程C.子程序D.子例程

42.某片軟盤上已染有病毒,為防止該病毒傳染計算機系統(tǒng),正確的措施是______。

A.刪除軟盤上的所有文件即刪除了病毒B.將該軟盤進(jìn)行寫保護(hù)C.將軟盤放一段時間后再用D.將該軟盤重新格式化

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

A.樹形結(jié)構(gòu)B.網(wǎng)狀結(jié)構(gòu)C.線性表D.二維表

44.以下運算符中優(yōu)先級最低的算符是______。

A.&&B.&C.+=D.?:

45.設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為______。A.EOFB.非0值C.0D.NULL

46.以下程序運行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=d;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}

A.699B.669C.61515D.6615

47.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為

A.TRUEB.FALSEC.0D.1

48.變量a中的數(shù)據(jù)用二進(jìn)制表示的形式是01011101,變量b中的數(shù)據(jù)用二進(jìn)制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運算是

A.a^bB.a|bC.a&bD.a<<4

49.有以下程序

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;

printf("%d\n",*p+*q);}

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

50.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(a,b)inta,b;{staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}

A.8,17B.8,16C.8,20D.8,8

51.調(diào)用gets和puts函數(shù)時,必須包含的頭文件是

A.stdio.hB.stdlib.hC.defineD.以上都不對

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

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

53.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試

54.有以下程序:main(){inta[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,)},i,j,k,t;for(i=0;i<4;i++)for(j=0;j<3;j++)for(k=j+1;k<4;k++)if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/for(i=0;i<4;i++)printf("%d,",a[i][i]);}程序運行后的輸出結(jié)果是()。

A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,

55.樹是結(jié)點的集合,它的根結(jié)點的數(shù)目是()。

A.有且只有1個B.1或多于1C.0或1D.至少有2個

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

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

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

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

57.下列合法的聲明語句是()。

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

58.個人計算機屬于()。

A.小巨型機B.中型機C.小型機D.微機

59.下列程序的運行結(jié)果為()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf("%d\n",(MAX(a+b,c+d))*100);}

A.500B.5C.4D.400

60.在位運算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2

B.操作數(shù)除以2

C.操作數(shù)除以4

D.操作數(shù)乘以4

四、選擇題(20題)61.有如下程序段

#include"stdio.h"

typedefunion

{longx[2];

inty[4];

charz[8];

}atx;

typedefstructaa

{longx[2];

inty[4];

charz[8];

}stx;

main()

{printf("union=%d,structaa=%d\n",sizeof(atx),sizeof(stx));}

則程序執(zhí)行后輸出的結(jié)果是

A.union=8,structaa=8

B.union=8,structaa=24

C.union=24,structaa=8

D.union=24,structaa=24

62.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程

B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運行維護(hù)過程

63.

64.以下定義數(shù)組的語句中錯誤的是()。

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

A.21B.11C.20D.10

66.

執(zhí)行下列程序中的輸出語句后,a的值是()。

main

{inta;

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

}

A.17B.37C.6D.13

67.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。

A.記錄長度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式

68.設(shè)有charstr[10],下列語句正確的是

A.scanf("%s",&str);B.printf("%c",str);

C.printf("%s",str[0]);D.printf("%s",str);

69.

70.設(shè)變量已正確定義,則下列能正確計算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

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

A.循環(huán)隊列是隊列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)

B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

C.循環(huán)隊列是非線性結(jié)構(gòu)

D.循環(huán)隊列是一種邏輯結(jié)構(gòu)

72.

以下程序輸出結(jié)果是()。

main

{intm=5;

if(m++>5)printf("%d\n",m):

elseprintf("%d\n",m--);

}

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

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

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

74.

75.有以下程序:

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

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

76.

77.

78.程序運行后的輸出結(jié)果是()。A.Qian,f,350,Sun,f,350

B.Qiamf,350,Qian,f,350

C.Qian,f,350,Sun,m,370

D.Zha0,m,290,Sun,m,370

79.

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

#include<stdio.h>

main

{chara[]={a,b,C,d,e,f,\0).

inti,j;

i=sizeof(a);

j=strlen(a);

printf("%d,%d",i,j);

}

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

80.

五、程序改錯題(1題)81.寫出下列程序的運行結(jié)果。

main

{intn;

For(n=3;n<=10;n++)

{if(n%6==0)break;Printf(“%d”,n);}}

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:計算并輸出下列多項式值。S=(1+1/2)+(1/3+1/4)+…+(1/(2n1)+1/2n)例如,若主函數(shù)從鍵盤給n輸入100后,則輸出為s=5.878031。n的值要求大于1但不大于100。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.D由題目中線性鏈表的定義可知,要將q和r所指的結(jié)點交換前后位置,只要使q指向r的后一個結(jié)點,P指向r結(jié)點,r指向q結(jié)點即可。而在選項D中,r->next=q,這時r指向的節(jié)點為q;p->next=r,這時P指向的節(jié)點為r;q->next:r->next,因為r節(jié)點已經(jīng)指向q,所以執(zhí)行這個語句后q又指向q,所以選項D不正確。

3.C

4.C

5.B

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

7.D解析:帶回指針值的函數(shù),其一般定義形式為:

類型標(biāo)識符*函數(shù)名(參數(shù)表);

例如;int*f(x,y);

其中,f是函數(shù)名,調(diào)用它以后能得到一個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運算符和()運算符,而()優(yōu)先級高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。

8.A第1次for循環(huán),y的值為9,“y%3”的值為0,滿足if條件輸出“--y”,即先自減后輸出,所以輸出8;第2次for循環(huán),y的值為7,“y%3”的值為1,不滿足if條件,不執(zhí)行printf語句;第3次for循環(huán),y的值為6,“y%3”的值為0,滿足if條件輸出“--y”,即先自減后輸出,所以輸出5;第4次for循環(huán),y的值為4,不滿足if條件,不執(zhí)行printf語句;第5次for循環(huán),y的值為3,滿足if條件,輸出2;第6次for循環(huán),y的值為1,不滿足if條件,不執(zhí)行printf語句。故本題答案為A選項。

9.B在C語名中規(guī)定進(jìn)行強制類型轉(zhuǎn)換的格式是:(類型名)變量名;并且給表達(dá)式賦值。

10.A預(yù)處理是在程序編譯之前進(jìn)行的,所以A選項錯誤。故本題答案為A選項。

11.A根據(jù)C語言運算符的優(yōu)先級與結(jié)合性,先計算a/b,結(jié)果為l,再將a/b的結(jié)果與C做按位與運算,即l與2做按位與運算,其結(jié)果為0。

12.DD。【解析】面向?qū)ο笤O(shè)計方法與面向過程設(shè)計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計的特點。

13.D

14.A解析:在主函數(shù)main()中,語句“sum(&a[2]);”把數(shù)組元素a[0]的地址傳遞給了sun函數(shù)的形參a[],使得sum函數(shù)中的“(a+0)”為主函數(shù)中a[2]的地址,所以a[-1]的值為主函數(shù)中a[1]的值;a[1]的值為主函數(shù)中a[3]的伉,故函數(shù)sum中a[0]=2+4=6,由于此函數(shù)中的a是指向主函數(shù)中的a[2],所以a[2]的值為6。

15.B并運算的含義是:假設(shè)有一個“在校學(xué)生信息表”,它包括這樣一些字段:學(xué)號、姓名、性別、出生日期、籍貫、聯(lián)系電話,這個表的關(guān)系模式可以表示為:校學(xué)生信息表(學(xué)號,姓名,性別,出生日期,籍貫,聯(lián)系電話)。還有一個“新生信息表(學(xué)號,姓名,性別,出生日期,籍貫,聯(lián)系電話)”。若要將9月份進(jìn)校的新生信息加入到“在校學(xué)生信息表”中,這樣進(jìn)行的就是并運算。并運算不會改變表的字段(又叫屬性)個數(shù),但是會增加記錄(又叫元組)個數(shù)。交運算的含義是:兩個表(要求結(jié)構(gòu)要一模一樣)進(jìn)行交運算取兩個表中相同的記錄構(gòu)成一個新表,交運算不會改變表的字段個數(shù),但是一般會減少記錄個數(shù)。投影運算的含義是:從在“校學(xué)生信息表(學(xué)號,姓名,性別,出生日期,籍貫,聯(lián)系電話)”中選取學(xué)生的“姓名”和“聯(lián)系電話”這兩個字段,可以構(gòu)成一個“學(xué)生聯(lián)系表(姓名,聯(lián)系電話)”,這就是一個投影運算,所以投影運算一般會減少字段(又叫屬性)的個數(shù)。笛卡兒乘積又叫稱乘運算,設(shè)有n元關(guān)系R和m元關(guān)系s,他們分別有P、q個元組,則關(guān)系R和關(guān)系s的笛卡兒積表示為R×S,該關(guān)系是一個n+m元關(guān)系,元組個數(shù)是PXq。因此本題的正確答案是B。\r\n

16.C選項A的if條件表達(dá)式的值是5,結(jié)果為真,執(zhí)行“y=1”,y的值為1;選項B的if條件表達(dá)式x的值為5,結(jié)果也是真,執(zhí)行“y=1”,y的值為1;選項C的if條件表達(dá)式“x=y”是賦值語句,將y的值0賦給x,表達(dá)式的值為0,if語句不執(zhí)行,y的值為0;選項D的if條件表達(dá)式“x=y”是賦值語句,將y的值10賦給x,表達(dá)式的值為10,執(zhí)行“y=1”,y的值為1。故本題答案為C選項。

17.D本題考查邏輯運算符的使用。當(dāng)“&&”的兩個運算對象都是邏輯1時,表達(dá)式返回值才是1;“||”的兩個運算對象至少有一個是邏輯1時,表達(dá)式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。

18.D解析:在關(guān)系數(shù)據(jù)表中,行稱為元組,對應(yīng)存儲文件中的記錄,列稱為屬性,對應(yīng)存儲文件中的字段,所以本題答案為D。

19.A

20.D

21.對象對象解析:類描述的是具有相似性質(zhì)的一組對象。例如,每本具體的書是一個對象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對象。一個具體對象稱為類的實例。

22.255

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

24./**//**/解析:C語言程序的注釋可以出現(xiàn)在程序基本單詞之間的任何地方,C語言程序的注釋以“/*”作為開始標(biāo)記,并以“*/”作為結(jié)束標(biāo)記。

25.float*z

26.-3-3解析:本題考核的知識點是運算符“%’的應(yīng)用。該運算符是求兩個數(shù)相除的余數(shù),其結(jié)果與被除數(shù)的符號一致,本題中“-19%4”的值為“-3”,所以說空格處應(yīng)該填-3。

27.2002Shanxian2002Shanxian解析:本題中第一個if語句將結(jié)構(gòu)體變量a.name和結(jié)構(gòu)體變量b.name中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量c.name和結(jié)構(gòu)體變量d.name較大的那個賦給結(jié)構(gòu)體變量d。通過函數(shù)strcmp比較。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本程序中第一個if語句strcmp(a.name,b.name)>0為真,故將b的值賦給d,第二個if語句strcmp(c.name,d.name)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此d.sno和p->name的值為2002Shangxian。

28.1對多(或1:N)1對多(或1:N)

29.一對多(或1∶N)一對多(或1∶N)解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即一對一(1∶1)的聯(lián)系、一對多(1∶N)或多對一(N∶1)的聯(lián)系和多對多(N∶N)的聯(lián)系。

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

31.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計、實現(xiàn)和測試;③軟件運行維護(hù)階段:交付使用和維護(hù)。

32.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。

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

34.自頂而下自頂而下

35.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++=8,所以k=8。

36.8

37.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符串,則不能使用scanf()函數(shù),所以本題中輸入空格就返回了'\\0',s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

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

39.structnode*

40.局域網(wǎng)和廣域網(wǎng)局域網(wǎng)和廣域網(wǎng)

41.A解析:C程序是由函數(shù)構(gòu)成的?!獋€C源程序至少包含—個main函數(shù),也可以包含—個main函數(shù)和若干個其他函數(shù),因此,函數(shù)是C程序的基本單位。

42.D解析:軟盤中有病毒,有可能打開軟盤就會感染機器,因此最好的辦法是直接格式化。

43.D解析:數(shù)據(jù)庫中的關(guān)系模型是采用二維表來表示實體與實體之間的聯(lián)系。

44.C解析:本題中運算符優(yōu)先級順序從高到低依次是:&、&&、?:、+=。

45.B(27)B)解析:函數(shù)feof的功能是:測試fp所指的文件的位置是否已達(dá)到文件尾,如果達(dá)到文件尾,則函數(shù)返回非0值,否則返回0,表示文件尚未結(jié)束。

46.C解析:靜態(tài)局部變量在編譯時賦初值,即只賦韌值一次,在程序運行時它已有初值。以后每次調(diào)用時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值,而對自動變量賦初值,不是在編譯時進(jìn)行的,而在函數(shù)調(diào)用時進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時,d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。

47.D解析:在C語言中,邏輯運算符有4個,它們分別是:!(邏輯非)、||(邏輯或)、&&及(邏輯與)、^(異或)。在位運算里面還有&(位與)、|(位或)的運算。本題考查邏輯與運算符的用法,在表達(dá)式x=(a&&b)&&(c<'B');中,先判斷a&&b條件,邏輯與條件的兩邊都要保證為1,即a和b都成立,當(dāng)然c<'B'是成立的,顯然,該表達(dá)式的值為1。

48.A解析:本題考查的是位運算的知識,對于任何二進(jìn)制數(shù),和1進(jìn)行異或運算會讓其取反,而和0進(jìn)行異或運算不會產(chǎn)生任何變化。

49.88解析:*p=&a[3],即*p=4,*q=p+2;即*q=6,所以*p+*q=10。

50.A

51.A解析:gets函數(shù)和puts函數(shù)是庫函數(shù),必須包含的頭文件是stdio.h。

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

53.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。

(3)確認(rèn)測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。

(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。

54.A解析:本題首先定義了一個4行4列的二維數(shù)組,并用了三層for循環(huán)來進(jìn)行由小到大的排序。外層循環(huán)變量i表示數(shù)組的列.第二層循環(huán)變量j表示數(shù)組的行,第三層循環(huán)用于求第i列第j行的最小值,其中通過if語句對相關(guān)數(shù)值進(jìn)行比較和交換。最后通過for循環(huán)對排序后數(shù)組對角線上的元素輸出。

55.CC?!窘馕觥繕渚哂忻黠@的層次關(guān)系,即樹是一種層次結(jié)構(gòu)。在樹結(jié)構(gòu)中,根結(jié)點在第一層上。當(dāng)樹為非空時,樹中有且只有一個根結(jié)點,當(dāng)樹為空時,樹中根結(jié)點的數(shù)目為0。

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

57.A解析:C語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。另外C語言規(guī)定了一些專用的標(biāo)識符,它們有著固定的含義,不能更改。int就是表達(dá)變量類型的標(biāo)識符,它不能再用做變量名和函數(shù)名,所以選項B)不正確。do是C語言的一個關(guān)鍵字,也不能再用做變量名和函數(shù)名,所以選項C)不正確。

58.D我國計算機界根據(jù)計算機的性能指標(biāo),如機器規(guī)模的大小、運算速度的高低、主存儲器容量的大小、指令系統(tǒng)性能的強弱以及機器價格等,將計算機分為巨型機、大型機、中型機、小型機、微型機和單片機6大類。目前,國外還有一種比較流行的看法,根據(jù)計算機的性能指標(biāo)及廠家生產(chǎn)的計算機的主要面向應(yīng)用對象,把計算機分為巨型機、小巨型機、大型機、小型機、工作站和個人計算機6大類。其中,個人計算機(PersonalComputer),又稱為微型計算機(MicroComputer)。故本題正確答案是D\n【考點】科技\n學(xué)科專題(物理、化學(xué)、生物醫(yī)學(xué)、計算機)\n計算機發(fā)展史

59.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:(x)>(y)?(x):(y)是x>y時輸出x,否則輸出y,調(diào)用(MAX(a+b,c+d))*100時,(a+b=5)>(c+d=4),所以輸出a+b=5,所以x=5*100。

60.A左移運算符“<<”是雙目運算符,其功能是把“<<”左邊的運算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。例如,a<<4是把a的各二進(jìn)位向左移動4位。如a=00000011(十進(jìn)制3),左移4位后為00110000(十進(jìn)制48)。

61.B本題主要考查結(jié)構(gòu)體和聯(lián)合體所占的存儲空間。

在本題程序中,首先定義了一個聯(lián)合體,聯(lián)合體中具有三個成員,它們的類型分別為長整型、整型和字符型。按照C語言的規(guī)定,這三種類型的變量所占的存儲空間分別為4個字節(jié)、2個字節(jié)和1個字節(jié)。但由于定義的成員都是數(shù)組,長整型數(shù)組的大小為2,那么需要的總空間為8個字節(jié);整型數(shù)組的大小為4,那么需要的總空間為8個字節(jié);字符數(shù)組的大小為8,需要的總空間也為8個字節(jié),因此,可以看出三個成員需要的存儲空間一樣,都為8。根據(jù)聯(lián)合體變量中的所有成員共享存儲空間,聯(lián)合變量的長度等于各成員中最長的長度的特點,我們可知,系統(tǒng)只需為該聯(lián)合體變量準(zhǔn)備8個字節(jié)存儲空間即可。

然后,定義了一個結(jié)構(gòu)體,結(jié)構(gòu)體中的成員類型及數(shù)組大小與聯(lián)合體完全一致,即三個成員所需的空間都為8個字節(jié)。但是結(jié)構(gòu)體與聯(lián)合體不一樣的是,結(jié)構(gòu)體不能共享空間,一個結(jié)構(gòu)體變量的總長度是各成員長度之和。因此,該結(jié)構(gòu)體所需的存儲空間為24個字節(jié)。

綜上所述,我們可以知道程序中的聯(lián)合體和結(jié)構(gòu)體所需要的存儲空間分別為8個字節(jié)和24個字節(jié)。因此,用sizeof運算符計算這兩者的存儲空間,輸出的結(jié)果應(yīng)該為union=8,structaa=24,本題正確答案選B。

62.A通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。

63.B

64.BB)選項中定義的數(shù)組為2行4列,而賦值時賦成了3行所以出錯。

65.A聲明data是結(jié)構(gòu)S的數(shù)組。初始化時data[0].a(chǎn)=10;data[0].b:104);data[1].a(chǎn)=20;data[1].b=200。主函數(shù)中p=data[1];即p.a(chǎn)=data[1].a(chǎn);p.b=data[11.b;執(zhí)行語句prinff(”%dkn”,++(p.A));打印輸出時p.a(chǎn)先增l再打印。即p.a(chǎn)=data[1].a(chǎn)=20,先增1等于21,因此程序運行結(jié)果是21。

66.C解析:本題考查逗號表達(dá)式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問的是a的值,而不是程序的輸出值)。

67.D層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(liá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

提交評論