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頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年四川省德陽市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.命令“DIRA:*.*/W”的功能是()

A.寬行顯示A盤當(dāng)前目錄的所有文件

B.寬行顯示A盤所有目錄的所有文件

C.寬行顯示A盤的所有目錄

D.顯示A盤中的文件名,每滿一屏后停頓一下

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

f(intb[],intm,intn)

{inti,s=0;

for(i=m;i<n;i=i+2)s=s+b[i];

returns;

}

voidmain()

{intx,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3,7);

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

}A.A.10

B.18

C.8

D.15

4.若一個棧以向量V[1..n]存儲,初始棧頂指針top為n+1,則下面x進棧的正確操作是()。

A.top=top+1;V[top]=x

B.V[top]=x;top=top+1

C.top=top-1;V[top]=x

D.V[top]=x;top=top-1

5.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5

6.以下程序的運行結(jié)果是#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf("Y=%d\t",Y)main(){inta=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);}

A.Y=3B.存在語法錯誤C.Y=7D.Y=0

7.下列描述錯誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之間的通信靠傳遞消息來實現(xiàn)

C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征

D.類是具有共同屬性、共同方法的對象的集合

8.

9.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

10.執(zhí)行下列程序后的輸出結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

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

11.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d¨,++*x);}voidmain(){inty=3;p(&y);}A.3B.4C.2D.5

12.請選出可用作C語言用戶標(biāo)識符的一組()。

A.voiddefineWORD

B.a3_b3_123IF

C.For_abccase

D.2aDOsizeof

13.

14.下面關(guān)于數(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ù)

15.有以下程序:#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序的運行結(jié)果是()。

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

16.以下選項中不屬于c語言的類型的是()。

A.unsignedlongint

B.longshort

C.unsignedint

D.signedshortint

17.下面程序運行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

18.設(shè)以下變量均為int類型,則值不等于7的表達式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+l,x=y,x+1)

19.若要說明一個類型名STP,使得定義語句STPs;等價于Char*s;,以下選項中正確的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

20.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的運行結(jié)果是()。

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

二、2.填空題(20題)21.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

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

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

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

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

{staticinta[4]={1,2,3,4};

inti;

for(i=0;i<4;i++)a[i]+=a[i];

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

printf"\n");

}

24.數(shù)據(jù)管理技術(shù)發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個階段,其中數(shù)據(jù)獨立性最高的階段是______。

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

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

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

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

}

26.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲結(jié)構(gòu)必須是______。

27.按"先進后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。

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

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

main()

{charc;intn=100;

floatf=10;doublex;

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

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

}

30.以下程序的輸出是【】。

main()

{

charstr1[]=Howdoyoudo",*p=strl;

strcpy(str1+strlen(str1)\2"esshe");

pfinff("%s\n",p1);

}

31.有以下程序:

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+t(i);

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

}

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

32.若有以下程序

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í)行后輸出結(jié)果是【】。

33.若對長度為90的線性表進行分塊查找,其中每塊子表長度為9。如果在索引表查找過程中進行順序查找,那么平均查找長度為【】。

34.實體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學(xué)校有許多教師,而一個教師只歸屬于一個學(xué)校,則實體集學(xué)校與實體集教師之間的聯(lián)系屬于【】的聯(lián)系。

35.在對文件進行操作的過程中,若要是文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。

36.在對文件進行操作的過程中,若要求文件的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】函數(shù)。

37.若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

38.有以下程序:

floatf1(floatn)

{returnn*n;}

floatf2(floatn)

{return2*n;}

main()

{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;

p1=f1;p2=f2;

y1=p2(p1(2.0));

t=P1;p1=p2;p2=t;

y2=p2(p1(2.0));

printf("%3.0f,%3.0f\n",y1,y2);

}

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

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

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

#include<stdio.h>

main()

{staticchara[]="language",b[]="program";

char*ptr1=a,*ptr2=b;

intk;

for(k=0;k<7;k++)

if(*(ptr1+k)==*(ptr2+k))

printf("%c",*(ptr1+k));}

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

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

42.以下選項中可作為C語言合法常量的是()。

A.-80B.-80C.-80.0D.-80.0e

43.以下程序的輸出結(jié)果是()fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);print{("%d",a);}

A.0B.29C.31D.無定值

44.假定以下程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROGABCDEFGHIJKL<回車>,則輸出結(jié)果為main(intargc,char*argv0[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

45.以下各選項企圖說明一種新的類型名,其中正確的是______。

A.typedefv1int;

B.typedefv2=int;

C.typedefintv3;

D.typedefv4:int

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

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

47.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}

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

48.有以下程序:#include<stdio.h>main(){intc=35;printf("%d\n",e&c);}程序運行后輸出結(jié)果是()。

A.0B.70C.35D.1

49.已知下面的程序段,正確的判斷是______#defineA3#defineB(A)((A+1)*a)X=3*(A+B(7));X=3*(A+B(7);

A.程序錯誤,不允許嵌套定義B.X=93C.X=81D.程序錯誤,宏定義不允許有參數(shù)

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

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

51.假設(shè)在turboc2.0采用small模式編譯如下程序main(){chara[4]={'a','b'};char*b="abc";printf("%d,%d",sizeof(a),sizeof(b));}其輸出結(jié)果為______。

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

52.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結(jié)構(gòu)D.程序、數(shù)據(jù)與相關(guān)文檔的完整集合

53.以下程序執(zhí)行后sum的值是()main(){inti,sum;for(i;i<6;i++)sum+=i;printf("%d\n",sum);}

A.15B.14C.不確定D.0

54.以下各選項企圖說明—種新的類型名,其中正確的是______。

A.typedefviint;

B.typedefV2=int;

C.typedefintv3;

D.lypedefv4:int

55.軟件生命周期中花費費用最多的階段是

A.詳細設(shè)計B.軟件編碼C.軟件測試D.軟件維護

56.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){intp;if(x==0‖x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}

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

57.需求分析最終結(jié)果是產(chǎn)生

A.項目開發(fā)計劃B.需求規(guī)格說明書C.設(shè)計說明書D.可行性分析報告

58.設(shè)變量已正確定義并賦值,以下正確的表達式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

59.結(jié)構(gòu)化分析方法是一種面向______的需求分析方法。

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.控制流D.數(shù)據(jù)流

60.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運行后,文件t1.dat中的內(nèi)容是

A.startB.endC.startendD.endrt

四、選擇題(20題)61.

62.

63.(9)下列敘述中正確的是()

A.數(shù)據(jù)庫是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫設(shè)計是指設(shè)計數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題

D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

64.有以下程序:

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

A.21B.11C.6D.1

65.有以下程序:

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

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

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

67.

68.

69.

70.

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

voidfun(int*a,inti,inti)

{intt;

if(i<i)

{t=a[i[;a[i]=a[j];a[j]一t;

i++;j--;fun(a,i,j);

}

}

main

{intK[]={2,6,1,8},i;

fun(x,0,3);

for(i=0;i<1;i++)printf("%2d",x[i]);

printf("\n");

}

A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,2

71.

72.若在定義語句inta,b,c,*P=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。

A.

B.

C.

D.

73.(VC++)若有以下定義,則對b數(shù)組元素正確的引用是

intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]

74.

75.下列標(biāo)識符不是關(guān)鍵字的是()。

A.breakB.charC.SwithchD.return

76.有以下程序

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

}

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

A.9B.編譯出錯

C.21D.9.0

77.(33)有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case1:

case3:printf("%d\n",n);break;

case2:

case4:printf("%d\n",n);continue;

case0:exit(0);

}

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

}

以下關(guān)于程序段執(zhí)行情況的敘述,正確的是

A)for循環(huán)語句固定執(zhí)行8次

B)當(dāng)產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作

C)當(dāng)產(chǎn)生的隨機數(shù)n為1和2時不做任何操作

D)當(dāng)產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行

78.數(shù)據(jù)庫管理系統(tǒng)中負責(zé)數(shù)據(jù)模式定義和數(shù)據(jù)的物理存取構(gòu)建的語言是()。

A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

79.以下程序的輸出結(jié)果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}

A.33B.22C.26D.25

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

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:給一維數(shù)組arr輸人任意4個整數(shù),并按如下的規(guī)律輸出。例如,若輸入2345,則程序運行后輸出以下矩陣:請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:將str所指字符串中ASCⅡ值為偶數(shù)的字符刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為aBcdef9789,其中字符8的ASCⅡ碼值為偶數(shù)……字符8的ASCⅡ碼值為偶數(shù)……都應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是ace979。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D

2.A

3.A函數(shù)的功能是對數(shù)組某一區(qū)域內(nèi)的元素隔個求和;a[3]=4,所以從4開始進行隔個求和,a[7]=8,即對4到8的元素隔個求和,4+6=10。

4.C

5.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。

6.C解析:宏替換不像函數(shù)調(diào)用要進行參數(shù)值的計算、傳遞等,而只是簡單按照原格式進行字符串的替換。注意:宏定義的命令格式。

7.C解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內(nèi)部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。

8.D

9.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:S=m+n+m+n*k=1+2+1+2*3=10。

10.D

11.B本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在函數(shù)調(diào)用時,形參是指向?qū)崊⒌闹羔樧兞浚瑒tprintf的執(zhí)行結(jié)果為++x;x=3,則3+1=4。

12.B解析:C語言規(guī)定,標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。A)中的void與C語言的關(guān)鍵字重名,不合法;C)中的case和C語言的關(guān)鍵字重名,不合法;D)中的2a是數(shù)字開頭,而且sizeof與C語言的關(guān)鍵字重名,不合法。

13.D

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

\n

15.D執(zhí)行語句“intm=1,n=2,*p=&m,*q=&n,*r;”,即指針變量p指向m,指針變量q指向n。執(zhí)行語句“r=p;p=q;q=r;”,即通過指針變量r,將指針p和指針q的指向交換。因此最后輸出1,2,2,1。故本題答案為D選項。

16.Bc語言中整型變量分為4種,基本型int,短整型shortint,長整型longint和無符號型(unsignedint、un-signedshort、unsignedlong)。因此B)選項不屬于c語言的類型。

17.C解析:表達式“x+=-z---y”等價于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。

18.C

19.B用關(guān)鍵字typedef聲明一種新的類型的形式為typedef類型名標(biāo)識符。本題中的類型為char*。

20.A本題由fun函數(shù)可知,執(zhí)行for循環(huán),當(dāng)i=0時,b[0]=a[0][0]-a[0][3]=1-4=-3;當(dāng)i=1時,b[1]=a[1][1]-a[1][2]=6-7=-1;當(dāng)i=2時,b[2]=a[2][2]-a[2][1]=11-10=1;當(dāng)i=3時,b[3]=a[3][3]-a[3][0]=16-13=3。主函數(shù)中輸出y數(shù)組元素的值為:-3,-1,1,3。故本題答案為A選項。

21.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。

22.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個case標(biāo)號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行,因為case常量表達式只是起語句標(biāo)號作用,并不是在該處進行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2:分支,最后a和b的值分別為2和1。

23.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結(jié)果存在原數(shù)組中,其實就是將數(shù)組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。

24.數(shù)據(jù)庫系統(tǒng)或數(shù)據(jù)庫系統(tǒng)階段或數(shù)據(jù)庫或數(shù)據(jù)庫階段或數(shù)據(jù)庫管理技術(shù)階段數(shù)據(jù)庫系統(tǒng)或數(shù)據(jù)庫系統(tǒng)階段或數(shù)據(jù)庫或數(shù)據(jù)庫階段或數(shù)據(jù)庫管理技術(shù)階段解析:在數(shù)據(jù)庫系統(tǒng)管理階段,數(shù)據(jù)是結(jié)構(gòu)化的,是面向系統(tǒng)的,數(shù)據(jù)的冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性,同時提高了數(shù)據(jù)的可擴充性和數(shù)據(jù)應(yīng)用的靈活性;數(shù)據(jù)具有獨立性,通過系統(tǒng)提供的映象功能,使數(shù)據(jù)具有兩方面的獨立性:一是物理獨立性,二是邏輯獨立性;保證了數(shù)據(jù)的完整性、安全性和并發(fā)性-綜上所述,數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)管理階段。

解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進行類型轉(zhuǎn)換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

26.順序存儲(順序方式存儲)順序存儲(順序方式存儲)解析:二分法查找對表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有序,第二要求是按順序方式存儲。

27.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊列。

28.概念(或概念級)概念(或概念級)

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

30.HowdoessheHowdoesshe解析:strcpy(strl,sl):字符串拷貝函數(shù),作用是將字符串sl拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實際長度,不包括‘\\0’在內(nèi)。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2'esshe')相當(dāng)于strcpy(strl+6'esshe');,因此可得答案為Howdoesshe。

31.33解析:i=1時,f(1)=1,j=j+f(1)=0+1=1;i=2時,f(2)=f(1)+1=1+1=2:j=j+f(2)=1+3=3;此時循環(huán)結(jié)束,程序運行后的輸出結(jié)果是3。

32.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中。

33.10.5

34.一對多一對多解析:實體之間的聯(lián)系可歸結(jié)為一對一、一對多與多對多的聯(lián)系。如一個學(xué)校有許多教師,一個教師只歸屬于一個學(xué)校,則實體集學(xué)校與實體集教師之間的聯(lián)系屬于一對多的聯(lián)系。

35.rewind函數(shù)rewind函數(shù)解析:rewind函數(shù)的功能是使文件的位置指針回到文件的開頭。

36.rewind()或fseek()rewind()或fseek()

37.00解析:函數(shù)getchar()是從鍵盤得用戶輸入的一個字符。用戶輸入的第1個字符a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。

38.8168,16解析:float(*p1)(float)是定義p1為指向函數(shù)的float型的指針變量。因此p1=f1;p2=f2;表示p1指向函數(shù)f1,p2指向函數(shù)f2,故所有y1=p2(p1(2.0))=f2(f1(2.0))=8;后面將p1與p2互換,y2=f1(f2(2.0))=16。

39.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結(jié)點,其數(shù)據(jù)域為任意或根據(jù)需要來設(shè)置,指針域指向線性表的第一個元素的結(jié)點。循環(huán)鏈表的頭指針指向表頭結(jié)點。②循環(huán)鏈表中最后一個結(jié)點的指針不是空,而是指向表頭結(jié)點。

40.gaga解析:考查了用字符指針處理字符串的方法。用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b,然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。

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

42.A

43.C

44.D解析:本題中,argc表示參數(shù)的個數(shù),應(yīng)為3,argv是一個指向字符串的指針數(shù)組,指針數(shù)組argv中的元素argv[0]指向字符串'PROG',元素argv[1]指向字符串“ABCDEFGH”,argv[2]指向字符串“IJKL”。在while循環(huán)條件中,先進行自減運算,再執(zhí)行相應(yīng)的printf語句。

45.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于為數(shù)據(jù)類型取個別名。

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

47.D解析:本題主要是考查帶參數(shù)的宏定義及其相關(guān)運算。本題中宏運算過程如下:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。

48.C解析:按位與運算符“&”的運算規(guī)則是:如果兩個相應(yīng)的二進制位都為1,則該位的結(jié)果為1,否則為0。因為本題中相與的兩個數(shù)相同,即對應(yīng)位的二進制數(shù)相等,所以結(jié)果為其值本身。

49.C解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

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

51.A解析:用small模式編譯,指針變量占2個字節(jié)。sizeof(array):數(shù)組名array代表數(shù)組本身,sizeof函數(shù)測出的是整個數(shù)組的大小。a數(shù)組的大小為4,b指針變量的大小為2。

52.D軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設(shè)計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護和使用有關(guān)的圖文資料。因此本題的正確答案是D。

53.C

54.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于數(shù)據(jù)類型取個別名。

55.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。本題中,詳細設(shè)計、軟件編碼和軟件測試都屬于軟件開發(fā)階段;維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費代價最大的一個階段,軟件工程學(xué)的一個目的就是提高軟件的可維護性,降低維護的代價。

56.A解析:本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時,fun(5):a=5-fun(3)->fun3=a=3-fun(1)->fun(1):a-3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,最后的計算結(jié)果為5。

57.B解析:本題考核軟件工程中的需求分析環(huán)節(jié)。需求分析應(yīng)交付的主要文檔就是需求規(guī)格說明書。

58.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對象有浮點整數(shù)據(jù),所以選項B)和D)是錯誤的表達式。在選項A)中賦值表達式的兩邊出現(xiàn)相同的變量x,也是錯誤的。選項C)是一個逗號表達式,所以正確答案為C)。

59.D

60.B解析:本題主要考查的是打開文件函數(shù)fopen().題目開始定義了一個函數(shù),該函數(shù)有兩個字符指針型參數(shù),其作用分別用來傳入文件名和文件內(nèi)容。函數(shù)首先定義一個文件指針印,然后使用fopen()函數(shù)打開參數(shù)fn所指定的文件。本題的關(guān)鍵就在于fopen()函數(shù)的第2個參數(shù),這個參數(shù)指定了文件打開的方式。'w'表示為寫而打開一個文本文件,如果文件不存在,則新建一個文件,否則將清空原有文件。接下來函數(shù)使用fputs()函數(shù)將參數(shù)str中的內(nèi)容寫入文件,最后調(diào)用fclose()函數(shù)關(guān)閉文件。在主函數(shù)中兩次調(diào)用該函數(shù),但寫入的是同一個文件,故只有最后一次寫入有效。所以應(yīng)該選擇B。

61.D

62.B

63.C

64.A按位或運算符”1”是雙目運算符,其功能是參與運算的兩數(shù)各對應(yīng)的二進位相或。左移運算符”<<”是雙目運算符,其功能把”<<”左邊的運算數(shù)的各二進位全部左移若干位,由”<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。將5變換為二進制數(shù)為101,左移2位后為10100,1轉(zhuǎn)換為二進制數(shù)為00001,10100與00001進行或運算后為l0101,再將其轉(zhuǎn)換為十進制數(shù)為21。因此,本題答案為A)。

65.A外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為l,打印1*1=1;內(nèi)循環(huán)第二次j的值為2,打印1$2=2;內(nèi)循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。

66.B隨著計算機的應(yīng)用范圍日益廣泛,傳統(tǒng)的軟件開發(fā)成本難以控制,進度不可預(yù)計;軟件系統(tǒng)的質(zhì)量和可靠性很差;軟件文檔相當(dāng)缺乏,軟件系統(tǒng)不可維護;軟件開發(fā)生產(chǎn)率很低,軟件產(chǎn)品供不應(yīng)求;軟件產(chǎn)品成本十分昂貴且質(zhì)量低下等特點日益顯現(xiàn),這些成為計算機應(yīng)用的一個“瓶頸”,于是出現(xiàn)了所謂的“軟件危機”。

軟件工程是試圖用工程化的方法開發(fā)軟件,從而解決或緩解軟件危機而產(chǎn)生的一門學(xué)科。它是采用工程化的方法開發(fā)和維護軟件的工程學(xué)科。把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)和方法結(jié)合起來,以便經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它。軟件工程包括三個要素,分別是方法、工具和過程。

67.B

68.C

69.D

70.C

\n本題用了函數(shù)調(diào)用,fun中if語句成立則進行i,j的交換,用到主函勢中則為把下標(biāo)為0、3,1、2互換,因此,當(dāng)執(zhí)行完后X的數(shù)組為8,1,6,2,故選擇C選項。

\n

71.D

72.Dseartf函數(shù)中的輸入項必須是指針,只有選項D)符合這個要求。

73.D這是二維數(shù)組,所以A錯\r\n數(shù)組是從0開始,所以第一個不能有2,第二個不能有3.所以B,C錯。

74.D

75.C在C語言中,字母區(qū)分大小,所以break、char、return、switch都是C語言中的關(guān)鍵字,而Swithch不是。

76.A本題主要考查函數(shù)的嵌套調(diào)用。在本題中,首先定義了函數(shù)fun,該函數(shù)的返回類型為浮點型,函數(shù)帶有兩個整型形參,函數(shù)的作用不難看出是返回兩個形參的和。

在主函數(shù)中,定義了三個整型變量a,b,c,并分別賦初值為2,5,8,然后嵌套調(diào)用fun函數(shù)。輸出語句fun((int)fun(a+c,b),a-c)首先調(diào)用嵌套的fun函數(shù),即(int)fun(a+c,b),按照前面對fun函數(shù)的介紹,它應(yīng)該返回的值為a+c+b=15,由于函數(shù)在前面加了強制數(shù)據(jù)類型轉(zhuǎn)換,將本來的返回結(jié)果浮點型轉(zhuǎn)換為了整型,并作為函數(shù)的參數(shù),與函數(shù)定義的參數(shù)類型匹配,程序編譯不報錯,然后執(zhí)行fun函數(shù),它返回的結(jié)果為15+a-c=9,此時的結(jié)果應(yīng)該是浮點型,即為9.0,但輸出語句的輸出格式是“%3.0f”,說明無須輸出小數(shù)部分,因此,最終的輸出結(jié)果是9。

77.D

78.A\n數(shù)據(jù)定義語言負責(zé)數(shù)據(jù)模式定義和數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言負責(zé)數(shù)據(jù)的操縱;數(shù)據(jù)控制語言負責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。無數(shù)據(jù)管理語言的說法。

\n

79.C解析:C語言規(guī)定如果全局變量與局部變量同名,則在局部變量的作用域內(nèi)全局變量不起作用。程序開頭定義的變量x為全局變量,函數(shù)incre中定義的變量x是局部靜態(tài)變量,存放在靜態(tài)存儲區(qū),incre調(diào)用結(jié)束后不釋放x占據(jù)的存儲單元。main函數(shù)中使用的x是全局變量x=3,所以main函數(shù)中調(diào)用函數(shù)incre兩次。調(diào)用過程如下。第1次調(diào)用:x=x*(x+1)=1×(1+1)=2,printf函數(shù)輸出2;第2次調(diào)用:x=x*(x+1)=2×(2+1)=6,printf函數(shù)輸出6。

80.B當(dāng)運算對象為不同的類型時,數(shù)據(jù)的轉(zhuǎn)換方向為int→unsigned→long→double。本題程序中的變量b為int型,先要轉(zhuǎn)換為unsigned型,int型變量的數(shù)值范圍為-32768~32767,最高位為符號位,而unsigned所表示的數(shù)的范圍為0~65535,它的最高位為數(shù)值位。由于內(nèi)存中是以補碼形式存儲數(shù)據(jù)的,所以,整型的“-1”在內(nèi)存中表示為16個1,最高位的“1”表示符號負,將它轉(zhuǎn)換為unsigned類型,即將原符號位表示符號的“1”看成數(shù)值,就可得到16個數(shù)值位1,即65535。

81.(1)錯誤:voidproc(intarr)

正確:voidproc(int*arr)

(2)錯誤:arrEj]=arr[j+1];

正確:arr[j]=arr[j-1];

【解析】由主函數(shù)ee的函數(shù)調(diào)用可知,函數(shù)proc的形參為整型的指針變量。因此,“voidproc(intarr)”應(yīng)改為“voidproc(int*arr)”。從“a[j]=a[j+1];”可知,當(dāng)“j=M-1”

時“a[j+1];”越界了,而程序的思路是把前一個數(shù)放到后一個中,再把最后面的數(shù)放到第一個中,因此把arr[j+1]改為arr[j-1]。

82.

【解析】要把字符串str中ASCⅡ碼值為偶數(shù)的字符刪除,需要判斷字符串str中每一個字符的ASCⅡ值,將ASCⅡ碼值為奇數(shù)的字符放入字符串t中,ASCⅡ碼值為偶數(shù)的字符不予處理。最后為新的字符串t加上結(jié)束符。

2021-2022年四川省德陽市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.命令“DIRA:*.*/W”的功能是()

A.寬行顯示A盤當(dāng)前目錄的所有文件

B.寬行顯示A盤所有目錄的所有文件

C.寬行顯示A盤的所有目錄

D.顯示A盤中的文件名,每滿一屏后停頓一下

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

f(intb[],intm,intn)

{inti,s=0;

for(i=m;i<n;i=i+2)s=s+b[i];

returns;

}

voidmain()

{intx,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3,7);

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

}A.A.10

B.18

C.8

D.15

4.若一個棧以向量V[1..n]存儲,初始棧頂指針top為n+1,則下面x進棧的正確操作是()。

A.top=top+1;V[top]=x

B.V[top]=x;top=top+1

C.top=top-1;V[top]=x

D.V[top]=x;top=top-1

5.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5

6.以下程序的運行結(jié)果是#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf("Y=%d\t",Y)main(){inta=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);}

A.Y=3B.存在語法錯誤C.Y=7D.Y=0

7.下列描述錯誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之間的通信靠傳遞消息來實現(xiàn)

C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征

D.類是具有共同屬性、共同方法的對象的集合

8.

9.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

10.執(zhí)行下列程序后的輸出結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

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

11.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d¨,++*x);}voidmain(){inty=3;p(&y);}A.3B.4C.2D.5

12.請選出可用作C語言用戶標(biāo)識符的一組()。

A.voiddefineWORD

B.a3_b3_123IF

C.For_abccase

D.2aDOsizeof

13.

14.下面關(guān)于數(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ù)

15.有以下程序:#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序的運行結(jié)果是()。

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

16.以下選項中不屬于c語言的類型的是()。

A.unsignedlongint

B.longshort

C.unsignedint

D.signedshortint

17.下面程序運行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

18.設(shè)以下變量均為int類型,則值不等于7的表達式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+l,x=y,x+1)

19.若要說明一個類型名STP,使得定義語句STPs;等價于Char*s;,以下選項中正確的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

20.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的運行結(jié)果是()。

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

二、2.填空題(20題)21.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

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

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

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

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

{staticinta[4]={1,2,3,4};

inti;

for(i=0;i<4;i++)a[i]+=a[i];

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

printf"\n");

}

24.數(shù)據(jù)管理技術(shù)發(fā)展過程經(jīng)過人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個階段,其中數(shù)據(jù)獨立性最高的階段是______。

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

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

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

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

}

26.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲結(jié)構(gòu)必須是______。

27.按"先進后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。

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

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

main()

{charc;intn=100;

floatf=10;doublex;

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

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

}

30.以下程序的輸出是【】。

main()

{

charstr1[]=Howdoyoudo",*p=strl;

strcpy(str1+strlen(str1)\2"esshe");

pfinff("%s\n",p1);

}

31.有以下程序:

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+t(i);

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

}

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

32.若有以下程序

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í)行后輸出結(jié)果是【】。

33.若對長度為90的線性表進行分塊查找,其中每塊子表長度為9。如果在索引表查找過程中進行順序查找,那么平均查找長度為【】。

34.實體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學(xué)校有許多教師,而一個教師只歸屬于一個學(xué)校,則實體集學(xué)校與實體集教師之間的聯(lián)系屬于【】的聯(lián)系。

35.在對文件進行操作的過程中,若要是文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。

36.在對文件進行操作的過程中,若要求文件的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】函數(shù)。

37.若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

38.有以下程序:

floatf1(floatn)

{returnn*n;}

floatf2(floatn)

{return2*n;}

main()

{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;

p1=f1;p2=f2;

y1=p2(p1(2.0));

t=P1;p1=p2;p2=t;

y2=p2(p1(2.0));

printf("%3.0f,%3.0f\n",y1,y2);

}

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

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

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

#include<stdio.h>

main()

{staticchara[]="language",b[]="program";

char*ptr1=a,*ptr2=b;

intk;

for(k=0;k<7;k++)

if(*(ptr1+k)==*(ptr2+k))

printf("%c",*(ptr1+k));}

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

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

42.以下選項中可作為C語言合法常量的是()。

A.-80B.-80C.-80.0D.-80.0e

43.以下程序的輸出結(jié)果是()fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);print{("%d",a);}

A.0B.29C.31D.無定值

44.假定以下程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROGABCDEFGHIJKL<回車>,則輸出結(jié)果為main(intargc,char*argv0[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

45.以下各選項企圖說明一種新的類型名,其中正確的是______。

A.typedefv1int;

B.typedefv2=int;

C.typedefintv3;

D.typedefv4:int

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

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

47.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}

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

48.有以下程序:#include<stdio.h>main(){intc=35;printf("%d\n",e&c);}程序運行后輸出結(jié)果是()。

A.0B.70C.35D.1

49.已知下面的程序段,正確的判斷是______#defineA3#defineB(A)((A+1)*a)X=3*(A+B(7));X=3*(A+B(7);

A.程序錯誤,不允許嵌套定義B.X=93C.X=81D.程序錯誤,宏定義不允許有參數(shù)

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

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

51.假設(shè)在turboc2.0采用small模式編譯如下程序main(){chara[4]={'a','b'};char*b="abc";printf("%d,%d",sizeof(a),sizeof(b));}其輸出結(jié)果為______。

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

52.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結(jié)構(gòu)D.程序、數(shù)據(jù)與相關(guān)文檔的完整集合

53.以下程序執(zhí)行后sum的值是()main(){inti,sum;for(i;i<6;i++)sum+=i;printf("%d\n",sum);}

A.15B.14C.不確定D.0

54.以下各選項企圖說明—種新的類型名,其中正確的是______。

A.typedefviint;

B.typedefV2=int;

C.typedefintv3;

D.lypedefv4:int

55.軟件生命周期中花費費用最多的階段是

A.詳細設(shè)計B.軟件編碼C.軟件測試D.軟件維護

56.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){intp;if(x==0‖x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}

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

57.需求分析最終結(jié)果是產(chǎn)生

A.項目開發(fā)計劃B.需求規(guī)格說明書C.設(shè)計說明書D.可行性分析報告

58.設(shè)變量已正確定義并賦值,以下正確的表達式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

59.結(jié)構(gòu)化分析方法是一種面向______的需求分析方法。

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.控制流D.數(shù)據(jù)流

60.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運行后,文件t1.dat中的內(nèi)容是

A.startB.endC.startendD.endrt

四、選擇題(20題)61.

62.

63.(9)下列敘述中正確的是()

A.數(shù)據(jù)庫是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫設(shè)計是指設(shè)計數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題

D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

64.有以下程序:

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

A.21B.11C.6D.1

65.有以下程序:

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

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

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

67.

68.

69.

70.

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

voidfun(int*a,inti,inti)

{intt;

if(i<i)

{t=a[i[;a[i]=a[j];a[j]一t;

i++;j--;fun(a,i,j);

}

}

main

{intK[]={2,6,1,8},i;

fun(x,0,3);

for(i=0;i<1;i++)printf("%2d",x[i]);

printf("\n");

}

A.1,2,6,8B.8,6,2,1C.8,1,6,2D.8,6,1,2

71.

72.若在定義語句inta,b,c,*P=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。

A.

B.

C.

D.

73.(VC++)若有以下定義,則對b數(shù)組元素正確的引用是

intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]

74.

75.下列標(biāo)識符不是關(guān)鍵字的是()。

A.breakB.charC.SwithchD.return

76.有以下程序

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

}

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

A.9B.編譯出錯

C.21D.9.0

77.(33)有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case1:

case3:printf("%d\n",n);break;

case2:

case4:printf("%d\n",n);continue;

case0:exit(0);

}

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

}

以下關(guān)于程序段執(zhí)行情況的敘述,正確的是

A)for循環(huán)語句固定執(zhí)行8次

B)當(dāng)產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作

C)當(dāng)產(chǎn)生的隨機數(shù)n為1和2時不做任何操作

D)當(dāng)產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行

78.數(shù)據(jù)庫管理系統(tǒng)中負責(zé)數(shù)據(jù)模式定義和數(shù)據(jù)的物理存取構(gòu)建的語言是()。

A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

79.以下程序的輸出結(jié)果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}

A.33B.22C.26D.25

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

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:給一維數(shù)組arr輸人任意4個整數(shù),并按如下的規(guī)律輸出。例如,若輸入2345,則程序運行后輸出以下矩陣:請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:將str所指字符串中ASCⅡ值為偶數(shù)的字符刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為aBcdef9789,其中字符8的ASCⅡ碼值為偶數(shù)……字符8的ASCⅡ碼值為偶數(shù)……都應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是ace979。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D

2.A

3.A函數(shù)的功能是對數(shù)組某一區(qū)域內(nèi)的元素隔個求和;a[3]=4,所以從4開始進行隔個求和,a[7]=8,即對4到8的元素隔個求和,4+6=10。

4.C

5.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。

6.C解析:宏替換不像函數(shù)調(diào)用要進行參數(shù)值的計算、傳遞等,而只是簡單按照原格式進行字符串的替換。注意:宏定義的命令格式。

7.C解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內(nèi)部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。

8.D

9.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:S=m+n+m+n*k=1+2+1+2*3=10。

10.D

11.B本題考查函數(shù)調(diào)用時的參數(shù)傳遞。在函數(shù)調(diào)用時,形參是指向?qū)崊⒌闹羔樧兞浚瑒tprintf的執(zhí)行結(jié)果為++x;x=3,則3+1=4。

12.B解析:C語言規(guī)定,標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論