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

下載本文檔

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

文檔簡介

2022年安徽省銅陵市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下函數(shù)調(diào)用語句中含有實參個數(shù)為().func((exp1,exp2),(exp3,exp4,exp5));

A.1個B.2個C.4個D.5個

2.以下能正確定義一維數(shù)組的選項是______。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

3.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。

A.EOFB.-1C.非零值D.0

4.設(shè)變量n為f1oat類型,m為int類型,則以下能實現(xiàn)將n中的數(shù)值保留小數(shù)點后兩位,第三位進行四舍五人運算的表達式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

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

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

6.以下選項中非法的表達式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

7.

8.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8

9.以下只有在使用時才為該類型變量分配內(nèi)存的存儲類型說明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

10.在inta=3,int*p=&a;中,*p的值是()

A.變量a的地址值B.無意義C.變量p的地址值D.3

11.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試

12.設(shè)變量已正確定義,則以下能正確計算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=1;i<2n;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:

13.線性表是具有n個()的有限序列。

A.字符B.數(shù)據(jù)元素C.數(shù)據(jù)項D.表元素

14.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈?zhǔn)酱鎯Y(jié)構(gòu)

15.帶頭結(jié)點的雙向循環(huán)鏈表L為空的條件是()。

A.L==NULLB.L->next==NULLC.L->prior==NULLD.L->next==L

16.求2n個數(shù)中的最大值和最小值,最少的比較次數(shù)是()

A.4n/3B.2n-2C.3n-2D.3n/2

17.

18.在關(guān)系數(shù)據(jù)模型中,通??梢园?)稱為屬性,其值稱為屬性值。

A.記錄B.基本表C.模式D.字段

19.將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成________。

A.屬性B.關(guān)系C.鍵D.域

20.若函數(shù)中有定義語句:inta;,則()。

A.系統(tǒng)將自動給a賦初值為0B.系統(tǒng)將自動給a賦初值一lC.這時a中的值無意義D.這時a中無任何值

二、2.填空題(20題)21.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?zhí)羁铡?/p>

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",(【】);

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

{if(a[i]>0)

{count++;

sum+=(【】);

}

}

printf("sum=%d,count=%dhn",sum,count);

}

22.下列程序的運行結(jié)果是______。

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

printf("%d,%d",x,y);

}

23.以下程序的功能是:輸出100以內(nèi)(不含100)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,j

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

{j=i*10+6;

if(【】)continue:

Printf("%d”",j);

}

}

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

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

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

}

25.以下程序的輸出結(jié)果是【】。

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

26.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結(jié)果是______。

27.若有定義:intx=1,y=2;floata=3.7,b=2.1;則(x+y)%2+(int)a/(int)b表達式的值為()。

28.以下程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù):

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));

}

29.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。

30.軟件測試分為白箱(盒)測試和黑箱(盒)測試?;韭窂綔y試方法屬于()測試。

31.若有如下定義,則該數(shù)組的第一維大小為【】。

intb[][4]={1,2,3,4,5,6,7,8,9);

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

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

p=S;q=p->next;r=q->next;

sum+=q=>next->num;sum+=r->next->next->num;

33.有以下程序:

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

34.黑盒測試是從【】觀點的測試。

35.函數(shù)viodfun(float*sn,intn)的功能是:根據(jù)以下公式計算S,計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請?zhí)羁铡?/p>

s=1-1/3+1/5-1/7+…1/(2n+1)

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2i+1);

s++=w;

}

【】=s;

}

36.面向?qū)ο蟮哪P椭?,最基本概念是對象和【】?/p>

37.下面的程序?qū)崿F(xiàn)的是指針p所指向的地址的n個數(shù)中,求出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>

fun(int*p,intn)

{int*q;

intmax,min;

max=min=*p;

for(q=p;【】;q++)

if(*q>max)max=*q;

elseif(*q<min)min=*q;}

38.軟件的【】設(shè)計又稱為總體結(jié)構(gòu)設(shè)計,其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。

39.以下程序調(diào)用隨機函數(shù)得到N個20以內(nèi)的整數(shù)放在s數(shù)組中。函數(shù)fun的功能是找出s數(shù)組中的最大數(shù)(不止一個)所在下標(biāo)傳回主函數(shù)進行輸出,并把最大值作為函數(shù)值返回,請?zhí)羁铡?/p>

#defineN30

man()

{ints[N],d[N],i,k,m;

for(i=0,i<N;i++){s[i]=rand()%20;printf("%3d",s[i]);}

m=fun(【】);

printf("m=%d\n",m);

printf(”Theindex;\n");

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

printf("\n\n");

}

fun(int*w,int*d,int*k)

{inti,j,m=0,v;

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

if(w[i]>w[m])【】;

v=w[m];

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

if(w[i]==v)【】;

*k=【】;

return【】;

}

40.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。

三、1.選擇題(20題)41.數(shù)據(jù)結(jié)構(gòu)作為計算機的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對各種數(shù)據(jù)結(jié)構(gòu)進行的運算,以及()。A.A.數(shù)據(jù)的存儲結(jié)構(gòu)B.計算方法C.數(shù)據(jù)映象D.邏輯存儲

42.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta=0,b=1,C=2;if(++a>0||++b>0)++c;printf("%d,%d,%d",a,b,C);}

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

43.以下程序輸出的結(jié)果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i+0;i<4;i++)printf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

44.有以下程序main(){inti,s=0;for(i=1;i<l0;i+=2)s+=i+1printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是______。

A.自然數(shù)1~9的累加和B.自然數(shù)1~10的累加和C.自然數(shù)1~9中奇數(shù)之和D.自然數(shù)1~10中偶數(shù)之和

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

A.周部變量說明為static存儲類,其生存期將礙到延長

B.全局變量說明為static存儲類,其作用域?qū)⒈粩U大

C.任何存儲類的變量在未賦初值時,其值都是不確定的

D.形參可以使用的存儲類說明符與局部變量完全相同

46.若fp是指向某文件的指針,且已讀到該文件末尾,則庫函數(shù)feof(fp)的返回值是()

A.EOFB.-1C.非零值D.NULL

47.在調(diào)用函數(shù)時,如果實參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。

A.地址傳遞B.單向值傳遞C.由實參傳遞給形參,再由形參傳遞給實參D.傳遞方式由用戶指定

48.以下程序的運行結(jié)果是#include"stdio.h"main(){structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

A.6B.8C.10D.12

49.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。

A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH

50.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序運行后的輸出結(jié)果是______。

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

51.有以下程序main(){intx,y,z;x=y=1;z=X++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運行后的輸出結(jié)果是

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

52.在C語言中,while和do…while循環(huán)的主要區(qū)別是()。

A.do…while的循環(huán)體不能是復(fù)合語句

B.do…while允許從循環(huán)體外轉(zhuǎn)到循環(huán)體內(nèi)

C.while的循環(huán)體至少被執(zhí)行一次

D.do…while的循環(huán)體至少被執(zhí)行一次

53.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達式是非法的D.程序段執(zhí)行無限次

54.在軟件測試設(shè)計中,軟件測試的主要目的是

A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.盡可能多地發(fā)現(xiàn)軟件中的錯誤

55.下列選項中錯誤的說明語句是

A.chara[]={'t','o','y','o','u','\0'};

B.chara[]={"toyou\0"};

C.chara[]="toyou\0";

D.chara[]='toyou\0';

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

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

57.若有以下定義和語句:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為3的表達式是______。

A.p+=2,*(p++)B.P+=2,*++pC.P+=3,*p++D.P+=2,++*p

58.若有說明inti,j=2,*P=&i;,則能完成i=j賦值功能的語句是_______。

A.i=*p;B.*P2=*&j;C.i=&j;D.i=**p;

59.若有說明語句:charc=′\72′;則變量c

A.包含1個字符B.包含2個字符C.包含3個字符D.說明不合法,c的值不確定

60.設(shè)有如下程序段:intx=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是()。

A.輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出

B.運行時產(chǎn)生出錯信息

C.輸出值為2002

D.輸出值為2003

四、選擇題(20題)61.

62.有以下程序:

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

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

63.能正確表示a和b同時為正或同時為負的邏輯表達式是_________。

A.a>=0

B.

C.b>=0)(a<0

D.

E.b<0)

F.(a>=0b>=0)(a<0b<0)

G.(a+b>0)(a+b<=0)

H.a*b>0

64.軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。

A.概要設(shè)計B.軟件設(shè)計C.可行性研究和計劃制定D.需求分析

65.

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

A.列表框和組合框都有List屬性

B.列表框有Selected屬性,而組合框沒有

C.列表框和組合框都有Style屬性

D.組合框有Text屬性,而列表框沒有

67.有以下程序:

#include<stdio.h>

intfun()

{staticintx=1;

X*=2;returnX;

main()

inti,s=1;

for(i=1;i<=2;i++)s=fun();

printf{¨%d\n",s);

}

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

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

68.若有定義“doublea;”,則正確的輸入語句是()。

A.seaM("%1f",a);

B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

69.有以下程序:

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

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

70.

71.

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

A.C程序中注釋部分只能放在程序最后

B.花括號“{“和”}”可以作為函數(shù)體的定界符,也可以作為復(fù)合語句的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號不是語句的一部分,是C語句之間的分隔符

73.在面向?qū)ο蠓椒ㄖ校粚儆凇皩ο蟆被咎攸c的是A.一致性B.分類性C.多態(tài)性D.標(biāo)識唯一性

74.軟件詳細設(shè)計生產(chǎn)的圖如右圖:該圖是()。

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

75.

76.分析以下程序的輸出結(jié)果是()。

main

{inta=5,b=-1,c;

c=adds(a,b);

printf(“%d”,c);

c=adds(a,b);

printf(“%d\n”,c);}

intadds(intx,inty)

{staticintm=0,n=3;

n*=++m;

m=n%x+y++;

return(m);}

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

77.開發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱為()。

A.軟件投機B.軟件危機C.軟件工程D.軟件產(chǎn)生

78.有以下程序:

以上程序執(zhí)行后abc.dat文件的內(nèi)容是()。

A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina

79.

80.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:從整數(shù)10到55之間,查找能被3整除且有一位上的數(shù)值是5的數(shù),把這些數(shù)放在b所指的數(shù)組中,這些數(shù)的個數(shù)作為函數(shù)值返回。規(guī)定函數(shù)中al放個位數(shù),a2放十位數(shù)。

請改正程序中的錯誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

六、程序設(shè)計題(1題)82.有一個一維數(shù)組,內(nèi)放10個學(xué)生成績,寫一個函數(shù),求出平均分。

參考答案

1.B

2.B解析:選項A)定義的是長度為5的數(shù)組元素,但初值有6個元素,所以錯誤;選項C)不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上“[];選項D)的類型說明符錯誤,應(yīng)改為char;選項B)中的0,1,2,3,4,5分別表示對應(yīng)字符的ASCII碼,所以正確。

3.D解析:文件狀態(tài)檢測函數(shù)feof(fp)的功能是:測試所指的文件的位置指針是否已達到文件尾,如果已到達文件尾,則函數(shù)返回非。值;否則返回0,表示文件尚未結(jié)束。

4.B

5.C解析:本題考核的知識點是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長度為賦值給它的字符串的字符個數(shù)7加上一個結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8.定義時b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個選項中選項C符合題意。

6.D解析:選項A)在C語言中是一個合法的關(guān)系表達式,但它并不代表數(shù)學(xué)式o<=x<100。計算0<=x<100時,從左到右結(jié)合,先計算0<=x,其結(jié)果只能是0或1,然后再比較0<100或1<100。根據(jù)運算符的優(yōu)先級,選項B)先判斷j==0是否成立,其結(jié)果只能是0或1,然后再將0或1賦給i。選項C)中,(char)(65+3)為類型強制轉(zhuǎn)換,將整數(shù)型數(shù)據(jù)轉(zhuǎn)換為字符型。選項D)是將一個數(shù)據(jù)賦給一個表達式,等號左邊不合要求,所以錯誤。

7.A

8.A本題考查switch語句。當(dāng)i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當(dāng)i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當(dāng)i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當(dāng)i=4時,執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。

9.B在用靜態(tài)static與外部extern定義變量時,系統(tǒng)立刻給其分配內(nèi)存,而定義自動類auto與強制放入寄存器register類型變量時,只有當(dāng)使用時才分配內(nèi)存。

10.D

11.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個模塊的功能、建立與已確定的軟件需求的對應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細設(shè)計的任務(wù)是:在使用程序設(shè)計語言編制程序以前,對所采用算法的邏輯關(guān)系進行分析,設(shè)計出全部必要的過程細節(jié),并給予清晰的表達。需求分析是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計階段。

12.D由i"11的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,…,n,最后計算得到f=n!一0,所以選項A不正確。在選項B中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項c不正確。在選項D中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。

13.B

14.C

15.D

16.A

17.B

18.D解析:數(shù)據(jù)庫表中字段轉(zhuǎn)化為屬性,把記錄的類型轉(zhuǎn)化為關(guān)系模式。

19.B解析:關(guān)系數(shù)據(jù)庫邏輯設(shè)計的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實體集也可以轉(zhuǎn)換成關(guān)系。

20.C用int方法定義變量時,編譯器僅為變量開辟存儲單元,并沒有在存儲單元中放任何值,此時變量中的值是無確定的,稱變量值”無意義”。因此,本題正確答案為c。

21.&a[i]或a+Ia[i]或*(a+i)&a[i]或a+I\r\na[i]或*(a+i)解析:主函數(shù)中一開始定義了一個長度為20的整形數(shù)組,然后通過一個循環(huán),循環(huán)20次給它的每個元素賦初值,所以在第一個空格處應(yīng)填各個元素的地址,即填&a[i]或a+i,然后再通過一個循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于0將其累加到變量sum中,所以第二個空格處應(yīng)該填入數(shù)組元素,即應(yīng)該填a[i]或*(a+i)。

22.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。

“表達式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結(jié)果;若表達式1的值為0,則計算表達式3的值,且為最終結(jié)果。

本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。

23.i<10或i<9j%3!=0或j%3i<10或i<9\r\nj%3!=0或j%3解析:程序中的j用于存放符合條件的整數(shù),j=i,10+6;求得個位數(shù)為6的整數(shù),由此可得出程序的循環(huán)次數(shù)為i<10,所以[15]處填i<10。然后通過if語句判斷整數(shù)是否能被3整除,若不能則繼續(xù)下一次循環(huán),若能則輸出該整數(shù),所以[16]處填j%3!=0。

24.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內(nèi)。在fun函數(shù)內(nèi)部定義了一個局部變量m=3,m=3的作用域僅在fun函數(shù)內(nèi)部,通過fun函數(shù)返回兩個形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。

25.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。

26.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。

\'\\t\'f是轉(zhuǎn)義字符,代表橫向跳若干格:'\\'是轉(zhuǎn)義字符,代表雙引號;\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;’僅AB,是以兩位十六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。

5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。

27.22解析:本題考查表達式的運算。因為x=1,y=2,所以表達式(x+y)%2=3%2=1,(int)a/(int)b=(int)}(3/2)=1,因此整個表達式的結(jié)果為(x+y)%2+(int)a/(int)b=1+1=2。

28.ex或structstex或structst解析:求一個變量所占的存儲單元數(shù),用sizeof函數(shù),參數(shù)為該變量名或其變量類型。

29.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲結(jié)構(gòu)中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關(guān)系,對于順序存儲的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲空間的位置來實現(xiàn)的,而對于鏈?zhǔn)酱鎯碚f,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實現(xiàn)的。

30.自盒自盒解析:自盒測試法即結(jié)構(gòu)測試,它與程序內(nèi)部結(jié)構(gòu)相關(guān),要利用程序結(jié)構(gòu)的實現(xiàn)細節(jié)設(shè)計測試實例。白盒測試法主要有邏輯覆蓋、基本路徑測試等。

31.33解析:在初始化一個含有未指定維度的數(shù)組時,C語言總是在能完全容納初始化列表的基礎(chǔ)上盡可能小地設(shè)定該維度,來作為指定維度的標(biāo)準(zhǔn)。本題有9個初始值,若指定第一維度為2,則數(shù)組含有2*4=8個元素,容納不下,所以指定維度為3,3*4=12,足夠容納了。故應(yīng)該填3。

32.解析:程序通過語句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”將結(jié)構(gòu)體變量s中各結(jié)點連接成了一個循環(huán)鏈表,即最后一個結(jié)點的指針域指向了頭結(jié)點,整個鏈表形成了一個環(huán),并通過語句“p=s;q=p->next;r=q->next;”將結(jié)構(gòu)體指針變量p、q、r指向了各結(jié)點。

33.-4-4解析:本題中,n=0,可以判斷(!n)為真,執(zhí)行x=x-1=2-1=1;m=1,可以判斷(m)為真,執(zhí)行x=x-2=1-2=-1;進而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。所以,最后輸出為-4

34.用戶用戶解析:黑盒測試又稱為功能測試,黑盒測試是把程序看作一個黑盒子,完全不考慮程序內(nèi)部的結(jié)構(gòu)和處理過程。測試者只考慮該程序輸入和輸出的關(guān)系,或只考慮程序的功能。黑盒測試是一種從用戶觀點出發(fā)的測試。

35.-1或-1.0或-1*sn-1或-1.0或-1\r\n*sn

36.類類解析:面向?qū)ο竽P椭?,最基本的概念是對象和類。對象是現(xiàn)實世界中實體的模型化:將屬性集和方法集相同的所有對象組合在一起,可以構(gòu)成一個類。

37.q<p+nq<p+n解析:通過地址傳遞可以在被調(diào)函數(shù)中對調(diào)用函數(shù)中的變量進行引用。

38.概要概要

39.sd&km=id[j++]=ijv

40.測試實例測試實例解析:進行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。

41.A解析:數(shù)據(jù)結(jié)構(gòu)作為計算機的一門學(xué)科,主要研究和討論以下三個方面的問題:①數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);②在對數(shù)據(jù)進行處理時,各數(shù)據(jù)元素在計算機中的存儲關(guān)系,即數(shù)據(jù)的存儲結(jié)構(gòu);③對各種數(shù)據(jù)結(jié)構(gòu)進行的運算。

42.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a->0,此條件成立,又因為是進行邏輯或運算,在己知其中一個運算對象為真的情況下,不必判斷另外一個運算符的真假,即不進行++b操作,就可以直接得出整個表達式的值為邏輯1,執(zhí)行下列的++c。

43.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當(dāng)執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個字符串。

44.D解析:本題中s=(1+1)+(3+1)+(5+1)+(7+1)+(9+1)=2+4+6=8+10。

45.A解析:靜態(tài)局部變量的生存期將一直延長到程序運行結(jié)束。故選項A正確;而全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結(jié)束,故選項B不正確;未賦初值的auto型變量的初值是隨機的,未賦初值的static型變量的初值是0(故選項C和選項D不正確)。所以,4個選項中選項A符合題意。

46.D

47.B解析:C語言以定,實參變量對形參變量的數(shù)據(jù)傳遞是“單向值傳遞”,只由實參傳紿形參。在內(nèi)存中,實參單元與形參單元是不同的單元。調(diào)用結(jié)束后,實參單元仍保留并維持原值。

48.A解析:在解答本題時應(yīng)該考慮兩個問題:結(jié)構(gòu)體變量的長度及sizeof()求字節(jié)數(shù)的運算符。結(jié)構(gòu)體變量的長度是其內(nèi)部成員總長度之和,本題中,structdate中包含year,month,day三個整型變量。一個整型變量所占的字節(jié)數(shù)為2。

49.B解析:對二叉樹的前序遍歷是指:先訪問根結(jié)點,然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左,右子樹。

50.B解析:主函數(shù)中先定義了一個整型變量a,一個字符變量c并賦初值10,一個浮點型變量f并賦初值100.00和一個double型x,接著執(zhí)行a=f/=c*=(x=6.5),該語句從右向左計算,先把6.5賦值給x(該括號表達式的值也為6.5),此時x的值變?yōu)?.5,然后執(zhí)行c*=(x=6.5)相當(dāng)于執(zhí)行c=c*(x=6.5),此時c的值為65,接著向左執(zhí)行f/c*=(x=6.5),語句相當(dāng)于執(zhí)行f=f/c,所以f的值為100/65≈1.538。接著向最右邊執(zhí)行“a=f”,由于a是整型變量,所以a最后去f的整數(shù)部分為1。程序最后輸出的a、c、f和x的值(f和x只保留小數(shù)點后面1位)分別為1、65、1.5、6.5。所以,4個選項中選項B符合題意。

51.C解析:整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達式,程序執(zhí)行“z=x++,y++,++y”后,x的值為2,y的值為3,z取豆號表達式中第二個表達式的值,為1。

52.D解析:本題考查while和do…while循環(huán)的區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達式的值為非零時,才可能執(zhí)行循環(huán)體:在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達式的值,因此無論表達式的值是否為零,循環(huán)體至少要被執(zhí)行一次。

53.B解析:本題考查while語句的使用。本題考查邏輯非運算符和不等于運算符的區(qū)別,邏輯非運算符'!'的優(yōu)先級大于不等于運算符'!='的優(yōu)先級。

54.D解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。

55.D解析:通過賦初值的方式給一維數(shù)組賦字符串,可以用給一般數(shù)組賦初值的相同方式給一維字符數(shù)組賦字符串,也可以在賦值時直接賦字符串常量。選項B)和C)后面的'\\0'是多余的,不過也不錯,在C語言中,系統(tǒng)會自動在字符串的結(jié)尾處加上一個字符'\\0'作為串的結(jié)束標(biāo)記。

56.B解析:++、--運算符在變量之前是先使變量的值加1或減1,然后再使用變量的值:如果在變量之后則先使用變量之前的值,再把變量的值加1或減1。顯然,程序中表達式“i--”的值為10,“++j”的值為2,所以最后輸出的值為10和2,所以,B選項為所選。

57.A解析:引用一個數(shù)組元素,可以用:(1)下標(biāo)法,如a[i]形式;(2)指針法,如*(a+i)或*(p+i)。數(shù)組的下標(biāo)從0開始,值為3的數(shù)組元素是a[2]。B、C的內(nèi)容為a[3],D將a[2]前自加,結(jié)果為4。

58.B解析:指針是一種用來存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因為“&”和“*”兩個運算符的優(yōu)先級別相同,按自右而左的方向結(jié)合,所以*&j先進行&j運算,得j的地址,再進行*運算,取所得地址里面的值,故*&j與j等價。

59.A解析:C語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個'\\'開頭的字符。其中,'\\ddd'表示用ASCII碼(八進制數(shù))表示一個字符,本題中的charc=\'\\72\'即表示占一個字符的變量c的ASCII碼值。

60.D解析:本題考查逗號表達式。逗號表達式的形式為:表達式1,表達式2,其求解過程為:先求解表達式1,再求解表達式2。整個逗號表達式的值是表達式2的值。

61.B

62.C向switch語句塊傳送參數(shù)后,編譯器會1先尋找匹配的csse語句塊,找到后就執(zhí)行該語句塊。遇到break跳出;如果沒有匹配的語句塊,則執(zhí)行default語句塊。ca∞與default沒有順序之分。所以第2次循環(huán)k的值為l,執(zhí)行c+:k,c的值為1,再執(zhí)行case2后的語句c++,c的值為2,遇到break語句跳出循環(huán);第二次循環(huán)k的值為2,執(zhí)行case2后面的語句c++,C的值為3,跳出循環(huán)。

63.D

64.D\n通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用、退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。軟件生命周期的主要活動階段為:可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成開發(fā)任務(wù)的實施計劃。

\n需求分析。對待開發(fā)軟件提出的需求進行分析并給出詳細定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。

\n軟件設(shè)計。系統(tǒng)設(shè)計人員和程序設(shè)計人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。

\n軟件實現(xiàn)。把軟件設(shè)計轉(zhuǎn)換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。

\n軟件測試。在設(shè)計測試用例的基礎(chǔ)上,檢驗軟件的各個組成部分。編寫測試分析報告。

\n運行和維護。將已交付的軟件投入運行,并在運行使用中不斷地維護,根據(jù)新提出的需求進行必要而且可能的擴充和刪改。

\n本題答案是D)。

\n

65.C

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論