2021年山東省濟南市全國計算機等級考試C語言程序設(shè)計_第1頁
2021年山東省濟南市全國計算機等級考試C語言程序設(shè)計_第2頁
2021年山東省濟南市全國計算機等級考試C語言程序設(shè)計_第3頁
2021年山東省濟南市全國計算機等級考試C語言程序設(shè)計_第4頁
2021年山東省濟南市全國計算機等級考試C語言程序設(shè)計_第5頁
已閱讀5頁,還剩103頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年山東省濟南市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序段:charname[20】;intnum;scanf("name=%Snum=%d",name,&num);當執(zhí)行上述程序段,并從鍵盤輸入:name=Lilimum=1001<回車>后,name的值為()。A.LiliB.name=LiliC.Lilinum=D.name=Lilinum=1001

2.在含有n個項點有e條邊的無向圖的鄰接矩陣中,零元素的個數(shù)為________。

A.eB.2e9C.n2-eD.n2-2e

3.

4.面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

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

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

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

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

5.有以下程序

include<stdio.h>

main()

{chara[30],b[30];

scanf(“%s”,a);

gets(b);

printf(“%s\n%s\n”,a,b);

}

程序運行時若輸入:

howareyou?Iamfine<回車>

則輸出結(jié)果是A.howareyou?Iamfine

B.howareyou?1amfine

C.howareyou?Iamfine

D.howareyou?

6.以下關(guān)于C語言的敘述中正確的是()。

A.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術(shù)表達式的書寫中,運算符兩側(cè)的運算數(shù)類型必須一致

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

7.下列選項中不合法的十六進制數(shù)是()。

A."0"xffB."0"X11C."0"x1gD.”0”Xabc

8.假定一個順序隊列的隊首和隊尾指針分別為f和r,則判斷隊空的條件為____。

A.f+1==rB.r+1==fC.f==0D.f==r

9.若有定義intx=3,y=2和floata=2.5,b=3.5,則表達式:(x+y)%2+(int)a/(int)b的值是()。

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

10.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

11.對關(guān)系S和R進行集合運算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為()

A.并運算B.交運算C.差運算D.積運算

12.有以下程序:

main

{chara='a',b;

printf("%c,",++a);

printf("%c\n",b=a++):

)

程序運行后的輸出結(jié)果是()。A.A.b,bB.b,cC.a,bD.a,c

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

A.確認測試B.集成測試C.驗證測試D.驗收測試

14.某堆棧的輸入序列為a,b,c,d,下面的四個序列中,不可能是它的輸出序列的是()。

A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b

15.以下有關(guān)宏的描述不正確的是()。

A.宏定義不做語法檢查B.雙引號中出現(xiàn)的宏名不進行替換C.宏名無類型D.宏名必須用大寫字母表示

16.在以下一組運算中,優(yōu)先級最高的運算符是()

A.<=B.=C.%D.&&

17.在1,2,3,......1000中,有()個數(shù)各位乘積為0。

A.100B.101C.172D.181E.190F.191

18.十六進制數(shù)BB轉(zhuǎn)換成十進制數(shù)是()

A.192B.256C.187D.121

19.有以下程序:#include<stdio.h>voidfun(intn){if(n/2)fun(n/2);printf(“%d”,n%2);}main(){fun(10);printf(“\n”);}程序運行后的輸出結(jié)果是()。

A.0101B.1000C.1100D.1010

20.

二、2.填空題(20題)21.在樹形結(jié)構(gòu)中,沒有前件的結(jié)點是()。

22.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

charsi10],ti10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。

23.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。

24.執(zhí)行以下“for(i=1;i++<=4;i++);”語句后,變量i的值是()。

25.有以下程序:

intfa(intx){returnx*x;}

intfb(intx){returnx*x*x;}

intf(int(*f1)(),int(*f2)(),(intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】。

26.下列程序可以將從鍵盤上輸入的十進制數(shù)(10ng型)以二到十六進制形式輸出。

#include.<stdio.h>

main()

{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

intc[64],d,i=0,base;

longn;

printf("enteranumber:\n");scanf("%1d",&n);

printf("enternewbase:\n");scanf("%d",&baBe);

do

{c[i]=【】;

i++;n=n/base;

}while(n!=0);

printf("transmitenewbabe:\n");

for{--i;i>=0;--i)

{d=c[i];

printf("%c",b【】);

}

}

27.軟件需求規(guī)格說明書應(yīng)具有完整性、無歧義性、正確性、可驗證性、可修復(fù)性等特性,其中最重要的是()。

28.下列程序的輸出結(jié)果是16.00,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

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

#include<stdio.h>

main()

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

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

31.表達式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。

32.已知字母A的ASCⅡ碼為65。以下程序運行后的輸出結(jié)果是()。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

a='A'+'5'-'3';b=a+'6'-'2';

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

}

33.下面程序段的輸出結(jié)果是【】。

intx=5;

do{printf("%d",x-=4);

}while(!(--x));

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

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

35.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

36.以下程序從終端讀入數(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+=a[i];

}

}

printf("sum=%d,count=%d\n",sum,count);

}

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

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

#defineMCNA(m)2*m

#defineMCNB(n,m)2*MCRA(n)+m

#definef(x)(x*x)

main()

{inti=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

39.若有語句doublex=17;inty;,當執(zhí)行y=(int)(x/5)%2;之后y的值為()。

40.軟件生命周期包括8個階段。為了使各時期的任務(wù)更明確,又可分為3個時期:軟件定義期、軟件開發(fā)期、軟件維護期。編碼和測試屬于【】期。

三、1.選擇題(20題)41.以下數(shù)組定義中不正確的是______。

A.inta[2][3];

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

C.intc[100][100]{0};

D.intd[3][]={{1,2},{1,2,3},{1,2,3,}};

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

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

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

C.程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000

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

43.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循()等完整性規(guī)則。

A.實體完整性和參照完整性

B.參照完整性和用戶自定義完整性

C.實體完整性和用戶自定義完整性

D.實體完整性、參照完整性和用戶自定義完整性

44.有以下程序: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,

45.對表達式for(表達式1;;表達式3)可理解為()。

A.for(表達式1;0;表達式3)

B.for(表達式1;1;表達式3)

C.for(表達式1;表達式1;表達式3)

D.for(表達式1;表達式3;表達式3)

46.下列的程序用來輸出兩個字符串前7個字符中對應(yīng)相等的字符及其位置號,程序空白處應(yīng)該填寫的是()。

#include<stdio.h>

main()

{chars1[]="chinese",s2[]="japnese";

inti;

for(i=0;sl1[i]!='\0'&&s2[i]!='\0';i++)

if(s1[i]==s2[i]&&i<7)

______,

}

A.putchar(s2[i]);putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

47.若主函數(shù)中有以下定義和語句:main(){doublea[3][4];……fun(a);}則正確的fun函數(shù)的首部是()

A.voidfun(double*s)

B.fun(double*s[4])

C.fun(double(*s)[3])

D.voidfun(double(*s)[4])

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

A.C語言的源程序不必通過編譯就可以直接運行

B.C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令

C.C源程序經(jīng)編譯形成的二進制代碼可以直接運行

D.C語言中的函數(shù)不可以單獨進行編譯

49.以下選項中不能作為合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0

50.在C語言中,函數(shù)調(diào)用時()。

A.實參和形參各占獨立的存儲單元

B.實參和形參共用存儲單元

C.由系統(tǒng)自動確定實參和形參是否共用存儲單元

D.由用戶指定實參和形參是否共用存儲單元

51.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結(jié)果是()。

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

52.有以下程序: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

53.請讀程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結(jié)果是______。

A.正數(shù)B.負數(shù)C.零D.不確定的值

54.在微機中,bit的中文含義是()。

A.二進制位B.字節(jié)C.字D.雙字

55.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;x=1;printf("%d\n",x);}的輸出是______。

A.-1B.0C.1D.不確定的值

56.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系

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

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6}};

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

D.intx[2][3]={1,2,3,4,5,6};

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

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

59.有以下程序:main(){intp[7]={11,13,14,15,16,17,18),i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k)}執(zhí)行后的輸出結(jié)果是______。

A.58B.56C.45D.24

60.若有下列定義(設(shè)int類型變量占2個字節(jié)):

inti=8;

則下列語句:

printf("i=%08d",i);

輸出的結(jié)果是()。A.A.i=8B.i=00000008C.i=08D.8

四、選擇題(20題)61.在下列關(guān)于二叉樹的敘述中,選出正確的一項()。

A.在二叉樹中,任何一個結(jié)點的度都是2

B.二叉樹的度為2

C.在二叉樹中至少有一個結(jié)點的度是2

D.一棵二叉樹的度可以小于2

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

A.軟件交付使用后還需要進行維護

B.軟件一旦交付使用就不需要再進行維護

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護是指修復(fù)程序中被破壞的指令

63.軟件生命周期可分為定義階段、開發(fā)階段和維護階段。詳細設(shè)計屬于()。

A.定義階段B.開發(fā)階段C.維護階段D.上述三個階段

64.有定義語句:intm=1,n=2,P=5,x;,則以下選項中各程序段執(zhí)行后,x的值不等于5的是()。

A.

B.

C.

D.

65.

有以下程序:

main

{inti,j;

for(j=10;j<11;j++)

{for(i=9;i<j;i++)

if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結(jié)果是()。

A.11B.10C.9D.1011

66.

67.

68.若有定義語句:inta=3,b=2,c=1;以下選項中錯誤的賦值表達式是()。

A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);

69.

70.

71.

72.設(shè)有如下函數(shù)定義:

若執(zhí)行調(diào)用語句“l(fā)l=fm(3);”,則函數(shù)tim總共被調(diào)用的次數(shù)是()。

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

73.

74.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

75.設(shè)x=015,則x=x^017的值是()。A.00001111B.11111101C.00000010D.11000000

76.

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

78.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細設(shè)計說明書C.用戶手冊D.軟件需求規(guī)格說明書

79.以下錯誤的定義語句是()。

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項小于0.0005時停止迭代)。

程序運行后,若輸入精度

0.0005,則程序應(yīng)輸出為3.14…

注意:部分源程序在文件PROGl.C中。

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

參考答案

1.A考查簡單的C程序。由題可知,程序中輸入name的值為Lili,所以輸出的必定是Lili,答案選擇A。

2.D

3.C

4.C\n面向?qū)ο蟮脑O(shè)計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強調(diào)模擬現(xiàn)實世界中的概念而不強調(diào)算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。

\n

5.B

6.B解析:C語言中注釋可以放在任何位置,選項A錯誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項B正確;C語言中兩側(cè)數(shù)據(jù)類型可以不一致,系統(tǒng)可進行強制類型轉(zhuǎn)換,選項C錯誤;C語言數(shù)值常量中不允許存在空格,選項D錯誤。

7.C十六進制是以“0x、0X”開頭的字符串,字符串中只能含有0~9這l0個數(shù)字和a、b、C、d、e、f這6個字母。

8.D

9.D

10.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。

11.AA)【解析】關(guān)系的并運算是指由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,新關(guān)系中包含兩個關(guān)系中的所有元組。

12.A++a與a++的區(qū)別是前者先自加再運算,后者是先運算后自加。

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

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

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

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

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

14.D

15.D解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標識符字符串.標識符稱為宏名,無類型;②雙引號中出現(xiàn)的宏名不替換;③宏名的定義通常用大寫字母,但不是必須用大寫;④宏定義不是賦值語句,不做語法檢查。

16.C

17.D

18.C

19.D函數(shù)fun的作用是求一個十進制數(shù)的二進制數(shù)。通過輾轉(zhuǎn)相除法獲取這個整數(shù)的二進制數(shù)。因此(10)10=(1010)2。故本題答案為D選項。

20.B

21.根結(jié)點根結(jié)點

22.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0;若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組,所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中。

本題中,t[10]='CDEF'.第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG”,if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中,然后輸出字符數(shù)組t。

23.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。

24.6

25.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為23-22=4。

26.n%base[d]

27.正確性正確性解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,通過建立完整的信息描述、詳細的功能和行為描述、性能需求和設(shè)計約束的說明、合適的驗收標準,給出對目標軟件的各種需求。軟件需求規(guī)格說明書的特點:①正確性;②無歧義性;③完整性;④可驗證性;⑤一致性;⑥可理解性;⑦可追蹤性。其中最重要的是正確性。

解析:本題以浮點格式輸出z值,寬度為5,有2位小數(shù)。應(yīng)該注意的是,兩個整數(shù)運算結(jié)果仍為整數(shù),如1/2的結(jié)果為0。本題可逐步求解:

16.00=9/2+2*x/1.1+1/2

16.00=4+2*x/1.1+0

12.00=2*x/1.1

所以,x的值為6.6。

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

30.yesyes解析:程序if語句中是賦值表達式,而不是相等“==”運算。因為c=a+b中a+b的值為4,賦給c,c=4,表達式為真,輸出yes。

31.floatfloat解析:在此表達式中x是float類型的變量,經(jīng)過開方所得到的結(jié)果仍是float類型,再和2.8進行運算時,應(yīng)該先將2.8轉(zhuǎn)換成float類型再運算,最后結(jié)果仍是float型。

32.67G67G解析:根據(jù)題意,a=‘A’+‘5’-‘3’=65+2=67,b=67+4=71,71即為字母G的ASCⅡ碼值。程序要求按十進制形式輸出a,按字符形式輸出b,所以結(jié)果為67G。

33.1-41-4解析:題目中首先讓x=5,然后進入do-while循環(huán)體,輸出x-4的值1,此時x為1,表達式!(--x)的值為!(0)為真(此時x變?yōu)?),所以再次執(zhí)行循環(huán)體,輸出x-4的值-4,此時x為-4,表達式!(--x)的值為!(—5)為假,退出循環(huán)。故輸出結(jié)果是1-4。

34.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關(guān)系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。

35.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

36.&a[i]&a[i]解析:主要考查函數(shù)scanf的用法.應(yīng)填數(shù)組a的元素的地址。

37.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實現(xiàn)的功能簡單來說就是將字符串s下標為p+2~k范圍的字符整體復(fù)制到字符串s下標為p~k-2的位置上。在本題中strlen(s)返回s的長度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因為s[5]為'\\0',所以后面的字符不會輸出)。

38.1616解析:本題定義了兩個宏MCRA(m)和MCRB(n,m),展開宏MCRB(n,m),得到:MCRB(j,MCRA(i)=2*MCRA(j)+MCRA(i)=2×2×j+2×i=4×3+2×2=12+4=16,因此printf函數(shù)的輸出結(jié)果為16。

39.11解析:(int)(x/5)=3,3%2=1。

40.軟件開發(fā)軟件開發(fā)解析:軟件生命周期可以分為3個時期:軟件定義期,包括問題定義、可行性研究和需求分析3個階段;軟件開發(fā)期,包括系統(tǒng)設(shè)計、詳細設(shè)計、編碼和測試4個階段;軟件維護期,即運行維護階段。編碼和測試屬于軟件開發(fā)階段。

41.D解析:一維數(shù)組的定義方式為:

類型說明符數(shù)組名[常量表達式];

選項A符合此定義形式,正確;C語言中多維數(shù)組賦初值時可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項C正確;另外,如果對全部數(shù)組元素都賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省,所以選項B正確,而選項D是錯誤的。

42.D解析:選項A),共用體的每個成員的起始地址都相同;選項B),共用體變量所占的內(nèi)存長度等于最長的成員的長度;選項C)因為每個成員的起始地址相同,所以整型數(shù)5以浮點型輸出時為5.000000;選項D)C語言規(guī)定,不能把共用體變量作為函數(shù)的參數(shù)。

43.D解析:關(guān)系模型中包括關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性。關(guān)系完整性即數(shù)據(jù)完整性,包括實體完整性、參照完整性、用戶自定義完整性。

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

45.B在本題中,for循環(huán)結(jié)構(gòu)缺省了表達式2,而表達式2的作用是用來判斷循環(huán)是否結(jié)束,在缺省該語句的情況下,循環(huán)將無法結(jié)束,從題目給出的四個循環(huán)結(jié)構(gòu)我們可以看出,能構(gòu)成死循環(huán)的是選項B,該選項中for結(jié)構(gòu)的表達式2一直為1,即真,這樣循環(huán)就無法結(jié)束。因此,本題正確的答案選B。

46.C解析:putchar(s)的功能是把字符s輸出到標準輸出設(shè)備:puts(s1)是把s1指向的字符串輸出到標準輸出設(shè)備。

47.D

48.B解析:本題考核的知識點是C程序從編寫到生成可執(zhí)行文件的步驟。C語言采用編譯方式將源程序轉(zhuǎn)換為二進制的目標代碼,編寫好一個C程序到完成運行一般經(jīng)過以下幾個步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進制的目標代碼,經(jīng)編譯后的得到的二進制代碼還不能直接執(zhí)行,因為每一個模塊往往是單獨編譯的,必須把經(jīng)過編譯的各個模塊的目標代碼與系統(tǒng)提供的標準模塊連接后才能運行;連接,將各模塊的二進制目標代碼與系統(tǒng)標準模塊經(jīng)連接處理后,得到具有絕對地址的可執(zhí)行文件,它是計算機能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個經(jīng)過編譯和連接的可執(zhí)行的目標文件。由以上定義可知,選項A、C、D均不正確。所以,4個選項中選項B符合題意。

49.B解析:本題考查的是C語言中實型常量的指數(shù)表示法。實型常量的指數(shù)表示法是用字母e(或E)將一個實數(shù)的小數(shù)部分和指數(shù)部分分隔開。字母e(或E)之前是小數(shù)部分,之后是指數(shù)部分,這兩部分都不能省略,且指數(shù)部分必須為整數(shù)。故選項B不正確。所以,4個選項中選項B符合題意。

50.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)的形參是函數(shù)定義時由用戶定義的形式上的變量,實參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。

在函數(shù)調(diào)用時,實參和其所對應(yīng)的形參分別占用不同的存儲單元,彼此之間不影響。

51.A解析:本題考查while循環(huán).y的值在while循環(huán)的控制表達式中加1,在循環(huán)體內(nèi)減1,所以總的y值不變,且控制條件++y永遠非零。當x加到7時不滿足循環(huán)條件,結(jié)束循環(huán)。

52.A解析:調(diào)用sum(&a[2])時,a[0]=a[2]=3,a[-1]=a[1]=2,a[1)=a[3]=4,因此a[2]=6,可以看到sum函數(shù)的功能是將數(shù)組的一項的值改成其前一項的值與后一項的值之和。

53.A解析:本題考查字符串比較函數(shù)strcmp()的應(yīng)用。strcmp(s1,s2)是中比較函數(shù),當s1>s2時返回值為正數(shù),當s1<s2時返回值為負數(shù),當s1=s2時返回值為零。本題中s1,s2分別表示兩個串中第一個字符的地址,s1++和s2++是將指針指向串的第二個字符,指針變量s1指向的是串“bCdEf”的首地址,即字符b的地址,而指針變量s2指向的是字符'B'的地址。而在字符串比較中,寧符串大小的確定是各個字符串相應(yīng)位置字符的ASCII碼值的大小決定的,字符'B'的ASCII碼值為66,字符“b”的ASCII碼值為98,所以s1>s2,返回值為正數(shù)。

54.A在微機中,信息的最小單位為二進制位,用bit來表示;8位二進制構(gòu)成一個字節(jié),用Byte來表示;一個或一個以上字節(jié)可組成一個二進制表示的字,字長可以是8位、16位、32位或64位;兩個字長的字,稱為雙字。故本題正確答案是A\n【考點】科技\n學(xué)科專題(物理、化學(xué)、生物醫(yī)學(xué)、計算機)\n計算機數(shù)據(jù)存儲

55.A解析:第一個判斷值為真,過渡到下一個判斷,第二個判斷為真,過度到第三個判斷......如此循環(huán),在打印輸出語句的前一行,程序給變量x賦了值,為-1,所以,無論前期如伺變化,最后的x值依然為-1。

56.CC?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。

57.B解析:二維數(shù)組的初始化有以下幾種形式:①分行進行初始化;②不分行進行初始化;③部分數(shù)組元素進行初始化;④省略第一維的定義,不省略第二維的定義。選頃B)等號右邊分了3行,大于等號左邊數(shù)組的行數(shù)2。

58.C解析:本題中,程序先執(zhí)行語句x=1.2;,根據(jù)賦值運算的類型轉(zhuǎn)換規(guī)則,先將double型的常量1.2轉(zhuǎn)換為int型,即取整為1,然后將1賦值給變量x。接下來執(zhí)行語句y=(x+3.8)/5.0;根據(jù)運算符的優(yōu)先級,先計算小括號內(nèi),再計算除法,最后執(zhí)行賦值運算。小括號內(nèi)的運算過程:先將整型變量x的值1轉(zhuǎn)換為double型1.0,然后與3.8進行加法運算,得到中間結(jié)果4.8。接著進行除法運算4.8/5.0,其結(jié)果小于1.0,這里沒有必要計算出精確值,因為接著進行賦值運算,賦值號左邊的變量y的類型為整型,于是對這個小于1.0的中間結(jié)果進行取整,結(jié)果為0,于是變量y的值為0,d*y的值也為0。注意:格式輸出語句printf的使用。

59.D解析:程序中while語句的循環(huán)條件為i<7&&p[i]%2。當i=0時,條件成立,k=k+p[0]=11;當i=1時,條件仍成立,k=k+p[1]=11+13=24;當i=2時,p[2]%2=0條件不成立,結(jié)束while循環(huán),所以k=24。

60.B解析:本題考查printf函數(shù)的格式?!?08”格式符中的“0”表示在指定數(shù)據(jù)輸出寬度的同時,在數(shù)據(jù)前面的多余空格處加“0”;“8”表示指定數(shù)據(jù)的輸出寬度為8位。

61.D節(jié)點的度是其子節(jié)點的個數(shù),樹的度是其節(jié)點度的最大值,二叉樹的度小于等于2.

62.A解析:維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟件工程學(xué)的目的就在于提高軟件的可維護性,同時也要設(shè)法降低維護的代價。

軟件維護通常有以下四類;

①為糾正使用中出現(xiàn)的錯誤而進行的改正性維護;

②為適應(yīng)環(huán)境變化而進行的適應(yīng)性維護;

③為改進原有軟件而進行的完善性維護;

④為將來的可維護和可靠而進行的預(yù)防性維護。

軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項B、C、D中的說法都是錯誤的。

63.B解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個階段組成。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)階段由5個階段組成:概要設(shè)計、詳細設(shè)計、編寫代碼、組裝測試和確認測試。軟件維護時期的主要任務(wù)是使軟件持久地滿足用戶的需要。選項B正確。

64.C選項A),執(zhí)行else子句,執(zhí)行后x=5。選項B),執(zhí)行if子句,執(zhí)行后x=5。選項D),執(zhí)行if子句,執(zhí)行后x=P=5。選項c),執(zhí)行if子句,執(zhí)行后X=2。

65.B

\n本題考多循環(huán)的使用,當j=10,i=9時,循環(huán)成立,第一個if條件為假,第二個if條件i==j-1成立,則輸出j的值為10,接者執(zhí)行i++后,i為10;當i為10,for循環(huán)不成立,退出內(nèi)層循環(huán),此時執(zhí)行j++后,j為11,循環(huán)不成立,退出循環(huán)。

\n

66.A

67.D

68.A不能將變量或常量賦給一個表達式,所以A選項中(b=4)=3是錯誤的。

69.D

70.D

71.B

72.B首先n=fun(3),3被當作參數(shù)傳遞進去,這就進行了-次調(diào)用,3被當做參數(shù)傳進去后,程序會執(zhí)行這句deerctlu"nfun(k-1)+1;這就調(diào)用了第二次,而參數(shù)是3—1也就是2。2被當做參數(shù)傳進去后,程序會執(zhí)行這句elseremmfun(k—I)+1;這就調(diào)用了第三次,而參數(shù)是2-1也就是1。1被當做參數(shù)傳進去后,程序會執(zhí)行這句elseif(k==1)return1:不再遞歸調(diào)用,所以最終結(jié)果為3次。

73.A

74.C數(shù)組的下標是從0開始的,A中越界,行下標和列下標都不能越界;B中,雖然是個地址,但是也同樣越界了;選項C中表示的是第一個的首地址;選項D表示的為其元素的值,并不是地址。

75.C

\n本題考查按位異或運算,異或就是相同為0,不同為1(化為二進制00001101),017的二進制為000001111,兩者異或結(jié)果為00000010。

\n

76.C

77.AA)選項中定義的數(shù)組為2行4列,而賦值時賦成了3行,因此出錯。

78.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審四個方面。所以選擇D。

79.A二維數(shù)組定義行數(shù)可以省略,列數(shù)不能省略,所以答案選擇A)。

80.C

81.(1)錯誤:if((tt[i]>=ˊaˊ)||(tt[i]<=ˊzˊ))

正確:if((tt[i]>=ˊaˊ)&&(tt[i]<=ˊzˊ))

(2)錯誤:tt[i]+=32;

正確:tt[i]-=32;

【解析】題目要求將小寫字母改為對應(yīng)的大寫字母,要判斷是否是小寫字母,只需判斷字母是否在ˊaˊ~ˊzˊ,因此應(yīng)該是“(tt[i]>=ˊaˊ)&&(tt[i]<=ˊzˊ)”;又已知小寫字母的ASCⅡ碼值比對應(yīng)大寫字母的ASCⅡ值大32,因此本題的解題思路是從字符串的第一個字母開始遍歷,判斷是否為小寫字母,如果是,則ASCⅡ碼值減32。

82.

【考點分析】

本題考查:迭代法求給定多項式的值。迭代算法:讓計算機對一組指令(或一定步驟)進行重復(fù)執(zhí)行,在每次執(zhí)行這組指令(或這些步驟)時,都從變量的原值推出它的一個新值。需要注意變量的數(shù)據(jù)類型以及賦初值操作。

【解題思路】

首先應(yīng)該定義double類型變量,并且賦初值,用來存放多項式的某一項和最后的總和。從第2項開始以后的每一項都是其前面一項乘以n/(2*n+1),程序中用sl來表示每一項,s表示求和后的結(jié)果。需注意sl和S的初值都為1.0,因為循環(huán)變量從第二項開始累加。2021年山東省濟南市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序段:charname[20】;intnum;scanf("name=%Snum=%d",name,&num);當執(zhí)行上述程序段,并從鍵盤輸入:name=Lilimum=1001<回車>后,name的值為()。A.LiliB.name=LiliC.Lilinum=D.name=Lilinum=1001

2.在含有n個項點有e條邊的無向圖的鄰接矩陣中,零元素的個數(shù)為________。

A.eB.2e9C.n2-eD.n2-2e

3.

4.面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

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

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

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

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

5.有以下程序

include<stdio.h>

main()

{chara[30],b[30];

scanf(“%s”,a);

gets(b);

printf(“%s\n%s\n”,a,b);

}

程序運行時若輸入:

howareyou?Iamfine<回車>

則輸出結(jié)果是A.howareyou?Iamfine

B.howareyou?1amfine

C.howareyou?Iamfine

D.howareyou?

6.以下關(guān)于C語言的敘述中正確的是()。

A.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術(shù)表達式的書寫中,運算符兩側(cè)的運算數(shù)類型必須一致

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

7.下列選項中不合法的十六進制數(shù)是()。

A."0"xffB."0"X11C."0"x1gD.”0”Xabc

8.假定一個順序隊列的隊首和隊尾指針分別為f和r,則判斷隊空的條件為____。

A.f+1==rB.r+1==fC.f==0D.f==r

9.若有定義intx=3,y=2和floata=2.5,b=3.5,則表達式:(x+y)%2+(int)a/(int)b的值是()。

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

10.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

11.對關(guān)系S和R進行集合運算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為()

A.并運算B.交運算C.差運算D.積運算

12.有以下程序:

main

{chara='a',b;

printf("%c,",++a);

printf("%c\n",b=a++):

)

程序運行后的輸出結(jié)果是()。A.A.b,bB.b,cC.a,bD.a,c

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

A.確認測試B.集成測試C.驗證測試D.驗收測試

14.某堆棧的輸入序列為a,b,c,d,下面的四個序列中,不可能是它的輸出序列的是()。

A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b

15.以下有關(guān)宏的描述不正確的是()。

A.宏定義不做語法檢查B.雙引號中出現(xiàn)的宏名不進行替換C.宏名無類型D.宏名必須用大寫字母表示

16.在以下一組運算中,優(yōu)先級最高的運算符是()

A.<=B.=C.%D.&&

17.在1,2,3,......1000中,有()個數(shù)各位乘積為0。

A.100B.101C.172D.181E.190F.191

18.十六進制數(shù)BB轉(zhuǎn)換成十進制數(shù)是()

A.192B.256C.187D.121

19.有以下程序:#include<stdio.h>voidfun(intn){if(n/2)fun(n/2);printf(“%d”,n%2);}main(){fun(10);printf(“\n”);}程序運行后的輸出結(jié)果是()。

A.0101B.1000C.1100D.1010

20.

二、2.填空題(20題)21.在樹形結(jié)構(gòu)中,沒有前件的結(jié)點是()。

22.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

charsi10],ti10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。

23.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。

24.執(zhí)行以下“for(i=1;i++<=4;i++);”語句后,變量i的值是()。

25.有以下程序:

intfa(intx){returnx*x;}

intfb(intx){returnx*x*x;}

intf(int(*f1)(),int(*f2)(),(intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】。

26.下列程序可以將從鍵盤上輸入的十進制數(shù)(10ng型)以二到十六進制形式輸出。

#include.<stdio.h>

main()

{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

intc[64],d,i=0,base;

longn;

printf("enteranumber:\n");scanf("%1d",&n);

printf("enternewbase:\n");scanf("%d",&baBe);

do

{c[i]=【】;

i++;n=n/base;

}while(n!=0);

printf("transmitenewbabe:\n");

for{--i;i>=0;--i)

{d=c[i];

printf("%c",b【】);

}

}

27.軟件需求規(guī)格說明書應(yīng)具有完整性、無歧義性、正確性、可驗證性、可修復(fù)性等特性,其中最重要的是()。

28.下列程序的輸出結(jié)果是16.00,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

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

#include<stdio.h>

main()

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

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

31.表達式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。

32.已知字母A的ASCⅡ碼為65。以下程序運行后的輸出結(jié)果是()。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

a='A'+'5'-'3';b=a+'6'-'2';

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

}

33.下面程序段的輸出結(jié)果是【】。

intx=5;

do{printf("%d",x-=4);

}while(!(--x));

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

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

35.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

36.以下程序從終端讀入數(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+=a[i];

}

}

printf("sum=%d,count=%d\n",sum,count);

}

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

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

#defineMCNA(m)2*m

#defineMCNB(n,m)2*MCRA(n)+m

#definef(x)(x*x)

main()

{inti=2,j=3;

printf("%d\n",MCRB(j,MCRA(i)));

}

39.若有語句doublex=17;inty;,當執(zhí)行y=(int)(x/5)%2;之后y的值為()。

40.軟件生命周期包括8個階段。為了使各時期的任務(wù)更明確,又可分為3個時期:軟件定義期、軟件開發(fā)期、軟件維護期。編碼和測試屬于【】期。

三、1.選擇題(20題)41.以下數(shù)組定義中不正確的是______。

A.inta[2][3];

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

C.intc[100][100]{0};

D.intd[3][]={{1,2},{1,2,3},{1,2,3,}};

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

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

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

C.程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000

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

43.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循()等完整性規(guī)則。

A.實體完整性和參照完整性

B.參照完整性和用戶自定義完整性

C.實體完整性和用戶自定義完整性

D.實體完整性、參照完整性和用戶自定義完整性

44.有以下程序: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,

45.對表達式for(表達式1;;表達式3)可理解為()。

A.for(表達式1;0;表達式3)

B.for(表達式1;1;表達式3)

C.for(表達式1;表達式1;表達式3)

D.for(表達式1;表達式3;表達式3)

46.下列的程序用來輸出兩個字符串前7個字符中對應(yīng)相等的字符及其位置號,程序空白處應(yīng)該填寫的是()。

#include<stdio.h>

main()

{chars1[]="chinese",s2[]="japnese";

inti;

for(i=0;sl1[i]!='\0'&&s2[i]!='\0';i++)

if(s1[i]==s2[i]&&i<7)

______,

}

A.putchar(s2[i]);putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

47.若主函數(shù)中有以下定義和語句:main(){doublea[3][4];……fun(a);}則正確的fun函數(shù)的首部是()

A.voidfun(double*s)

B.fun(double*s[4])

C.fun(double(*s)[3])

D.voidfun(double(*s)[4])

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

A.C語言的源程序不必通過編譯就可以直接運行

B.C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令

C.C源程序經(jīng)編譯形成的二進制代碼可以直接運行

D.C語言中的函數(shù)不可以單獨進行編譯

49.以下選項中不能作為合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0

50.在C語言中,函數(shù)調(diào)用時()。

A.實參和形參各占獨立的存儲單元

B.實參和形參共用存儲單元

C.由系統(tǒng)自動確定實參和形參是否共用存儲單元

D.由用戶指定實參和形參是否共用存儲單元

51.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結(jié)果是()。

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

52.有以下程序: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

53.請讀程序:#include<stdio.h>#include<string.h>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結(jié)果是______。

A.正數(shù)B.負數(shù)C.零D.不確定的值

54.在微機中,bit的中文含義是()。

A.二進制位B.字節(jié)C.字D.雙字

55.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;x=1;printf("%d\n",x);}的輸出是______。

A.-1B.0C.1D.不確定的值

56.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系

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

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6}};

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

D.intx[2][3]={1,2,3,4,5,6};

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

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

59.有以下程序:main(){intp[7]={11,13,14,15,16,17,18),i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k)}執(zhí)行后的輸出結(jié)果是______。

A.58B.56C.45D.24

60.若有下列定義(設(shè)int類型變量占2個字節(jié)):

inti=8;

則下列語句:

printf("i=%08d",i);

輸出的結(jié)果是()。A.A.i=8B.i=00000008C.i=08D.8

四、選擇題(20題)61.在下列關(guān)于二叉樹的敘述中,選出正確的一項()。

A.在二叉樹中,任何一個結(jié)點的度都是2

B.二叉樹的度為2

C.在二叉樹中至少有一個結(jié)點的度是2

D.一棵二叉樹的度可以小于2

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

A.軟件交付使用后還需要進行維護

B.軟件一旦交付使用就不需要再進行維護

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護是指修復(fù)程序中被破壞的指令

63.軟件生命周期可分為定義階段、開發(fā)階段和維護階段。詳細設(shè)計屬于()。

A.定義階段B.開發(fā)階段C.維護階段D.上述三個階段

64.有定義語句:intm=1,n=2,P=5,x;,則以下選項中各程序段執(zhí)行后,x的值不等于5的是()。

A.

B.

C.

D.

65.

有以下程序:

main

{inti,j;

for(j=10;j<11;j++)

{for(i=9;i<j;i++)

if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結(jié)果是()。

A.11B.10C.9D.1011

66.

67.

68.若有定義語句:inta=3,b=2,c=1;以下選項中錯誤的賦值表達式是()。

A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);

69.

70.

71.

72.設(shè)有如下函數(shù)定義:

若執(zhí)行調(diào)用語句“l(fā)l=fm(3);”,則函數(shù)tim總共被調(diào)用的次數(shù)是()。

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

73.

74.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

75.設(shè)x=015,則x=x^017的值是()。A.00001111B.11111101C.00000010D.11000000

76.

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

78.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細設(shè)計說明書C.用戶手冊D.軟件需求規(guī)格說明書

79.以下錯誤的定義語句是()。

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項小于0.0005時停止迭代)。

程序運行后,若輸入精度

0.0005,則程序應(yīng)輸出為3.14…

注意:部分源程序在文件PROGl.C中。

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

參考答案

1.A考查簡單的C程序。由題可知,程序中輸入name的值為Lili,所以輸出的必定是Lili,答案選擇A。

2.D

3.C

4.C\n面向?qū)ο蟮脑O(shè)計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強調(diào)模擬現(xiàn)實世界中的概念而不強調(diào)算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。

\n

5.B

6.B解析:C語言中注釋可以放在任何位置,選項A錯誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項B正確;C語言中兩側(cè)數(shù)據(jù)類型可以不一致,系統(tǒng)可進行強制類型轉(zhuǎn)換,選項C錯誤;C語言數(shù)值常量中不允許存在空格,選項D錯誤。

7.C十六進制是以“0x、0X”開頭的字符串,字符串中只能含有0~9這l0個數(shù)字和a、b、C、d、e、f這6個字母。

8.D

9.D

10.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。

11.AA)【解析】關(guān)系的并運算是指由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,新關(guān)系中包含兩個關(guān)系中的所有元組。

12.A++a與a++的區(qū)別是前者先自加再運算,后者是先運算后自加。

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

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

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

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

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

14.D

15.D解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標識符字符串.標識符稱為宏名,無類型;②雙引號中出現(xiàn)的宏名不替換;③宏名的定義通常用大寫字母,但不是必須用大寫;④宏定義不是賦值語句,不做語法檢查。

16.C

17.D

18.C

19.D函數(shù)fun的作用是求一個十進制數(shù)的二進制數(shù)。通過輾轉(zhuǎn)相除法獲取這個整數(shù)的二進制數(shù)。因此(10)10=(1010)2。故本題答案為D選項。

20.B

21.根結(jié)點根結(jié)點

22.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0;若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組,所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中。

本題中,t[10]='CDEF'.第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG”,if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲空間中,然后輸出字符數(shù)組t。

23.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。

24.6

25.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為23-22=4。

26.n%base[d]

27.正確性正確性解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,通過建立完整的

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論