2021年河南省駐馬店市全國計算機等級考試C語言程序設計_第1頁
2021年河南省駐馬店市全國計算機等級考試C語言程序設計_第2頁
2021年河南省駐馬店市全國計算機等級考試C語言程序設計_第3頁
2021年河南省駐馬店市全國計算機等級考試C語言程序設計_第4頁
2021年河南省駐馬店市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年河南省駐馬店市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為()。

A.0B.‘\0’C.非零值D.NULL

2.設有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。

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

3.有以下函數(shù):intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函數(shù)的功能是()。

A.將y所指字符串賦給x所指存儲空間

B.查找x和y所指字符串中是否有‘\0’

C.統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)

D.統(tǒng)計x和y所指字符串中相同的字符個數(shù)

4.已知函數(shù)的調(diào)用形式為fread(buf,size,count,fp),參數(shù)buf的含義是

A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)

B.一個文件指針,指向要讀的文件

C.一個指針;指向要讀入數(shù)據(jù)的存放地址

D.一個存儲區(qū),存放要讀的數(shù)據(jù)項

5.

6.設x、y、z、t均為int型變量,則執(zhí)行以下語句后,t的值是()x=y(tǒng)=z=l;t=++x||++y&&++z;

A.不定值B.2C.1D.0

7.對一個有A,B,C,D隨機組成的序列進行哈夫曼編碼,據(jù)統(tǒng)計,各個元素的概率分別為:P(A)=0.4,P(B)=0.35,P(C)=0.2,P(D)=0.05,請問該編碼的平均期望編碼長度為()bits。

A.1.45B.1.74C.1.85D.1.92

8.

9.以下敘述中錯誤的是()。

A.getehar函數(shù)用于從磁盤文件讀入字符

B.gets匿數(shù)用于從終端讀入字符串

C.取ns函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件

10.設有定義語句“int(*f)(int);”,則下列敘述中正確的是()。

A.f是基類型為int的指針變量

B.f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形參

C.f是指向int類型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

11.在決定選取何種存儲結(jié)構(gòu)時,一般不考慮()。

A.各結(jié)點的值如何B.結(jié)點個數(shù)的多少C.對數(shù)據(jù)有哪些運算D.所用的編程語言實現(xiàn)這種結(jié)構(gòu)是否方便

12.設變量已正確定義,則以下能正確計算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;

13.

14.設變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f值的數(shù)據(jù)類型為()。

A.intB.floatC.doubleD.不確定

15.棧和隊列的共同特點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點

16.下列程序的輸出結(jié)果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}

A.22B.76C.72D.62

17.sizeof(float)是()。

A.一種函數(shù)調(diào)用B.一種函數(shù)定義C.一個浮點表達式D.一個整型表達式

18.若一個棧以向量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

19.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運行時從鍵盤上輸入9876543210,則上面程序的輸出結(jié)果是______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

20.下列算法中,()算法用來求圖中某頂點到其他頂點所有頂點之間的最短路徑。

A.DijkstraB.FloyedC.PrimD.Kruskal

二、2.填空題(20題)21.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的【】兩部分組成。

22.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

23.有以下程序:

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

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

24.設x和y均為int型變量,且x=1,y=2,則表達式2.0+x/y的值為_______。

25.以下程序中,fun()函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請?zhí)羁铡?/p>

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

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

printf("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{x=ar[i][0];

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

______=x;

}

}

26.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

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

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));}

28.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{intI,j;

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

{b[I][N-1]=【】;【】=a[N-1][I];}}

29.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對象的______性來實現(xiàn)的。

30.一張3.5英寸軟盤大約能存儲140萬個ASCⅡ字符,若存放漢字大約能存放【】個。

31.在關系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。

32.fseek函數(shù)的正確調(diào)用形式是【】。

33.以下程序通過函數(shù)SunFun求。這里f(x)=x2+1,由F函數(shù)實現(xiàn)。請?zhí)羁铡?/p>

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{returnx*x+1;}

34.設y為血型變量,請寫出描述“y是偶數(shù)”的表達式______。

35.模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。

36.以下程序?qū)崿F(xiàn)帶有頭結(jié)點的單鏈表的建立,鏈表中每個結(jié)點包含數(shù)據(jù)域data(字符型)和指針域next,所建立鏈表的頭指針由參數(shù)phd傳回調(diào)用程序。在空格處填入正確內(nèi)容。

#include<stdio.h>

#include<stdlib,h>

structnode{

chardata;

structnode*next;

};

voidcreatlist(【】)

{

charch;

structnode*s,*r;

*phd=malloc(sizeof(structnode));

r=*phd;

ch=getchar();

while(ch!='@'){

s=malloc(sizeof(structnode));

s->data=ch;

r->next=s;

r=s;

ch=getchar();

};

r->next=【】;

}

main()

{

structnode*head;

head=NULL;

creatlist(【】)

}

37.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。

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

#include<stdio.h>

f(inta)

{intb=0;

staticc=3;

a=c++,b++;

return(a);}

main()

{inta=2,i,k;

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

k=f(a++);

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

39.以下程序運行后的輸出結(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;

40.以下程序的輸出結(jié)果是12.00,請將空白處填寫完整。

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

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

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

}

三、1.選擇題(20題)41.數(shù)據(jù)庫設計包括兩個方面的設計內(nèi)容,它們是()

A.概念設計和邏輯設計B.模式設計和內(nèi)模式設計C.內(nèi)模式設計和物理設計D.結(jié)構(gòu)特性設計和行為特性設計

42.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0;m++;break;}}printf("%d\n",m);}程序運行后的輸出結(jié)果是()。

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

43.執(zhí)行以下語句后的輸出結(jié)果是______。intx=3,y=0;printf("%d,%d”,-1>x>-10&&1<x<10,-1>y>-10&&1<y<10);

A.12B.11C.12D.22

44.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

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

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

45.為了避免嵌套的if-else的二義性,C語言鋇定:else與______配對。

A.縮排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if

46.C語言中用于結(jié)構(gòu)化程序設計的三種基本結(jié)構(gòu)是A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

B.if、switch、break

C.for、while、do-while

D.if、for、continue

47.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。

A.7B.6C.8D.無確定值

48.以下能正確定義二維數(shù)組的是()。

A.inta[][3];

B.inta[][3]={2*3};

C.inta[][3]={};

D.inta[2][3]={{1},{2},{3,4}}:

49.下列程序的輸出結(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

50.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循環(huán),不能確定次數(shù)

51.在下列字符序列中,合法的標識符是()

A.P12&.aB.stud_100C.$water.12D.88sum

52.下面程序的文件名為t.exe,在DOS下輸入的命令行參數(shù)如下:ttomeetme<回車>則程序輸出的結(jié)果是#include"stdio.h"main(argc,argv)intargc;char*argv[];{inti;printf("%d\n",argc);}

A.3B.4C.2D.以上答案都不正確

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

A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)

54.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

55.下面的關鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

56.若變量已正確定義,有以下程序段

inta=3,b=5,c=7;

if(a>b)a=b;c=a;

if(c!=a)c=b;

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

其輸出結(jié)果是

A.程序段有語法錯B.3,5,3C.3,5,5D.3,5,7

57.下列程序的輸出結(jié)果是()。intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,e=5,d=2,e,f,g;e=f2(f1(a,b),f1(e,d));f=f1(f2(a,b),f2(e,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}

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

58.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關系B.數(shù)據(jù)流C.控制流D.調(diào)用關系

59.下列正確的實型常量是()。

A.E3.4B.-12345C.2.2e0.8D.4

60.有如下程序:#include<stdio.h>main(){FILE*fp1;fp1=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為good,則運行以上程序后文件f1.txt中的內(nèi)容為()。

A.goodabcB.abcdC.abcD.abcgood

四、選擇題(20題)61.

62.

設有以下定義和語句:

charstr[2O]="Program",*P:

p=str:

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

A.*p與stf[0]的值相等

B.str與P的類型完全相同

C.str數(shù)組長度和P所指向的字符串長度相等

D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同

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

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

64.

65.

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

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

67.若有定義:“inta,b;”,通過語句“scan[("%d;%d".,&a,&b);”,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。

A.35B.3,5C.3;5D.35

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

A.軟件測試應該由程序開發(fā)者來完成

B.程序經(jīng)調(diào)試后一般不需要測試

C.軟件維護只包括對程序代碼的維護

D.以上三種說法都不對

69.

70.若有定義語句:inta[4][10],*P,*q[4];且0<=i<4,則錯誤的賦值是()。

A.P=aB.q[i]=a[i]C.p=a[i]D.p=&a[2][1]

71.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關系是()。

A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)

B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)

D.三者沒有明顯的包含關系

72.在軟件開發(fā)中,需求分析階段可以使用的工具是()。

A.N—s圖B.DFD圖C.PAD圖D.程序流程圖

73.下列能正確定義且賦初值的語句是()。

A.intn1=n2=1;

B.charC=99;

C.floatf=f+1;

D.doublex=1.2E5.6;

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

printf("%d,%d\n",a,b);}A.A.6,1B.2,1C.6,0D.2,0

75.若有以下定義:

intx[10],*pt=x;

則對x數(shù)組元素的正確引用是()。

A.pt+3B.}&x[10]C.*(pt+10)D.*(x+3)

76.下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()

A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)操作C.數(shù)據(jù)查詢D.數(shù)據(jù)約束

77.有以下程序:執(zhí)行時輸入:0<;回車>;后,則輸出結(jié)果是()。A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1.

78.已定義以下函數(shù):

fun(char*p2,char*p1)

{while((*p2=*p1)!=’\0’){p1++;p2++;}}

函數(shù)的功能是()。

A.將p1所指字符串復制到p2所指向內(nèi)存空間

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較

D.檢查p1和p2兩個指針所指字符串中是否有’\0’

79.

80.

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:把從主函數(shù)中輸人的3個數(shù)。最大的數(shù)放在a中,中間的數(shù)放在b中,最小的數(shù)放在C中。例如,若輸入的數(shù)為:55,12,34,輸出的結(jié)果應當是:a=55.0,b=34.0,c=12.0。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc(),其功能是:計算并輸出下列多項式的值。

S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+m)

例如,若主函數(shù)從鍵盤給m輸入20后,則輸出為s=1.904762。

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

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

試題程序:

參考答案

1.Cfeof函數(shù)的用法是從輸入流讀取數(shù)據(jù),如果到達文件末尾(遇到文件結(jié)束符)函數(shù)值為非零值,否則其值為0。故本題答案為C選項。

2.D

3.C本題中由循環(huán)條件可知,遇到‘\\0’或x與y所指的字符不相等時循環(huán)結(jié)束。所以函數(shù)的功能是統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)。故本題答案為C選項。

4.C解析:這是一道考查fread函數(shù)的題。buf是一個指針,fread是讀入數(shù)據(jù)的存放地址;fwrite是輸出數(shù)據(jù)的地址(以上指的是起始地址)。

5.B

6.C

7.C

8.B

9.A本題考查的是文件操作。題中“fopen(fn,”w”)”的作用是打開fn所指向的文件,使用文件方式為“寫入”;

“每uts(str,fp)”的作用是將字符str的值輸出到fb所指向的文件中去。在程序中,兩次使用“寫入”的方式打開同一個文件,在第二次打開時,文件指針指向文件頭,所以此次寫入的數(shù)據(jù)覆蓋了文件原有的數(shù)據(jù),故本題中tl.dat的內(nèi)容為end。故本題答案為A)。

10.B此定義語句“int(*f)(int);”為指向函數(shù)的指針變量的定義方法,其中f為指向函數(shù)的指針變量,第1個int為函數(shù)返回值類型,第2個int為函數(shù)的形參類型。故本題答案為B選項。

11.A

12.D解析:A選項,將f賦值為0,結(jié)果得到0,因為0乘任何數(shù)都為0;B選項,i<n,計算的是(n-1)!,C選項將陷入死循環(huán)。

13.B

14.C

15.C解析:考查棧和隊列概念的掌握。棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種'后進先出'的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種'先進先出'的線性表。模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項C),沒有這種耦合方式。

16.C解析:函數(shù)slzeof(a)的功能是求出字符串a(chǎn)中的字符占用存儲空間的大小,由于字符數(shù)組a有長度為7,所以i=7;函數(shù)strlen(a)的功能是:求出字符串a(chǎn)的長度。而每個字符串都以'\\0'為字符串的結(jié)束標記,所以j的值等于2。

17.D解析:sizeof(float)是c語言內(nèi)部規(guī)定的用于計算單精度型變量(float)在計算機的內(nèi)存中所占用的字節(jié)數(shù)量的函數(shù),返回一個整數(shù)值。

18.C

19.C解析:scanf()把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf()遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。

20.A

21.輸出結(jié)果輸出結(jié)果解析:注意:測試的基本方法和步驟。

22.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

23.00解析:for循環(huán)執(zhí)行完成后t=5×4×3×2×1×0=0。

24.2.0。2.0。解析:x和y為整數(shù),運算符“/”在這里是整型除,整除后值為0。

25.br[i]

26.調(diào)試調(diào)試

27.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉(zhuǎn)換類型轉(zhuǎn)換運算符,將一個表達式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。

本題可按部就班地逐步運算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

28.a[0][I]b[I][0]a[0][I],b[I][0]解析:b[i][N-1]=a[0][i]實現(xiàn)把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,\ue008b[I][0]=a[N-1][I]實現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組中的第0列。

29.封裝封裝

30.70萬70萬

31.關系或一個關系關系或一個關系解析:在關系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,而一個二維表就是一個關系。

32.fseek(文件指針位移量起始點)fseek(文件指針,位移量,起始點)解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:

fseek(文件指針,位移量,起始點)

“起始點”用0,1或2代替,其中,0代表“文件開始”;1為“當前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當文件的長度大于64k時不致出現(xiàn)問題。ANSIC標準規(guī)定在數(shù)字的末尾加一個字母L,就表示long型。

33.xx解析:考查函數(shù)的調(diào)用。函數(shù)調(diào)用時,實參與形參一致,函數(shù)F只有一個形參,故函數(shù)的調(diào)用為F(x)。

34.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達式是(y%2)==0。

35.在進行單元測試時,要用一些輔助模塊去模擬與被測模塊相聯(lián)系的其他模塊,即為被測模塊設計和搭建驅(qū)動模塊和樁模塊。其中,驅(qū)動模塊相當于被測模塊的主程序,它接收測試數(shù)據(jù),并傳給被測模塊,輸出實際測試結(jié)果;而樁模塊是模擬其他被調(diào)用模塊,不必將子模塊的所有功能帶入。\r\n\r\n

36.structnode**phdNULL&head

37.維護維護

38.44解析:本題考查了靜態(tài)存儲類別的局部變量的特點。靜態(tài)存儲類別的局部變量在程序的整個生存周期內(nèi)都存在,但作用域卻只局限于定義它的函數(shù)或局部范圍。當i=0時執(zhí)行第一次for循環(huán),k=f(2),a=c++,b++;因為賦值運算符的優(yōu)先級高于逗號運算符,所以a=3,c=4;當i=1時執(zhí)行第二次for循環(huán),k=f(3),a=c++,b++;因為c為靜態(tài)局部變量所以保留著這一次執(zhí)行的結(jié)果值4,所以a=4,c=5,所以函數(shù)f()返回a的值為4。

39.解析:程序通過語句“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é)點。

解析:a/2=9/2=4,1/2=0,于是根據(jù)輸出結(jié)果就有下列等式:z=4+2*x/1.1=12.0,化簡后,為x/1.1=4,x=4.4。

41.A解析:模式設計和內(nèi)模式設計是概念設計的兩種方法。物理設計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進行設計,從而實現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設計和行為特性-設計是數(shù)據(jù)庫應用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設計,設計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。

42.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計算switch后面括號里的表達式a%3,即15%3為0:執(zhí)行case0:后面的語句“m++;”,m自加1,即m為1;遇到break語句;然后跳出switch語句,所以最后輸出的m值為1。所以選項A正確。

43.B

44.D解析:本題中fun函數(shù)實現(xiàn)了字符串函數(shù)strcat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\\0')逐個復制到字符串ss的末尾處。

45.B解析:在if語句中又包含一個或多個if語句稱為if語句的嵌套。應當注意if與else的配對關系,在C語言中,從量內(nèi)層開始,else總是與它上面最近的(未曾配對的)if配對。

46.A解析:結(jié)構(gòu)化程序由3種基本結(jié)構(gòu)組成,即順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)(包括for語句、while語句及do…\u3000while語句)和選擇結(jié)構(gòu)(包括if語句和switch語句)。

47.A解析:本題定義了一個指向由3個元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時用指針變量pa,表示數(shù)組元素a[i][j]的形式是pa[i][j]。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1,執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa[1][1]=pa[1)[1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故printf語句輸入的值為2+4+1=7。所以,A選項為所選。

48.B解析:(1)二維數(shù)組的定義

二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達式][常量表達式]。

二維數(shù)組在內(nèi)存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。

(2)二維數(shù)組元素的引用

二維數(shù)組元素的表示形式為:數(shù)組名[下標][下標],下標可以是整型常量或整型表達式其范圍為:0~(常量表達式-1)。

(3)二維數(shù)組的初始化

可以用以下方法對二維數(shù)組元素初始化:

①分行給二維數(shù)組賦初值

例如:inta[2][2]={{1,2},{3,4}};

這種賦值方式比較直觀,把第1個大括號內(nèi)的數(shù)據(jù)賦給第1行的元素,第2個大括號內(nèi)的數(shù)據(jù)賦給第2行的元素,即按行賦值。

②可以將所有數(shù)據(jù)寫在一個大括號內(nèi),按數(shù)組排列的順序?qū)Ω鱾€元素賦初值。

③可以對部分元素賦初值,沒有初始化的元素值為0。

④如果對全部數(shù)組元素賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。

49.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的使用。

50.D解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當break出現(xiàn)在switch語句體內(nèi)時,其作用只是跳出該switch語句體。當break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)體.而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號內(nèi)表達式的值為真,執(zhí)行循環(huán)體內(nèi)的if語句,判斷if后面括號內(nèi)表達式的值為真,執(zhí)行“continue;”語句.因continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語句也仍然成立,因此循環(huán)將無止境地進行下去。所以,4個選項中D為所選。

51.B

52.B解析:argc中存入的是命令行中字符串的個數(shù)。argv是一個指向字符型的指針數(shù)組的指針。

53.B解析:本題中有一個陷阱,很多考生會根據(jù)程序的書寫格式來判斷:while循環(huán)的循環(huán)體為printf('y=%d\\n',y);語句。其實while的循環(huán)體是一條空語句,即y--后面的那個分號就是while的循環(huán)體。所以本題只要弄清楚表達式y(tǒng)--何時為“假”,即等于0,就能得出結(jié)果了。因為--運算符是后綴形式,所以表達式y(tǒng)--的值是y自減之前的值,即y等于。時,表達式y(tǒng)--就等于0了。但此時的y還要被減1,所以循環(huán)結(jié)束后,y的值為-1。故應該選擇B。

54.C解析:#define宏名的有效范圍為定義命令之后到本源文件結(jié)束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。

55.B解析:在C語言中,可以用break語句和continue語句跳出本層循環(huán)和結(jié)束本次循環(huán)。goto語句可跳出多層循環(huán),如果在函數(shù)的循環(huán)體內(nèi)使用return語句,就會直接結(jié)束循環(huán)返回函數(shù)值。

56.B解析:兩個if語句的判斷條件都不滿足,程序只執(zhí)行了c=a這條語句,所以變量c的值等于3,變量b的值沒能變化,程序輸出的結(jié)果為3,5,3。所以正確答案為B)。

57.A解析:根據(jù)函數(shù)intf1(intx,inty){returnx>y?x:y;)和intf2(intx,inty){returnx>y?y:x;}的定義可知,如果x>y成立,則函數(shù)f1返回x的值,函數(shù)f2返回y的值。所以f1(a,b)=4,f1(c,d)=5,f2(a,b)=3,f2(c,d)=2故e=f2(4,5)=4,f=f1(3,2)=3,g=4+3+5+2-4-3=7。

58.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線段表示圖元關系。在模塊之間用帶有箭頭的線段表示調(diào)用關系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

59.B解析:實型常量有兩種書寫形式。①小數(shù)形式,它由符號、整數(shù)部分、小數(shù)點及小數(shù)部分組成;②指數(shù)形式,由十進制小數(shù)形式加上指數(shù)部分組成,其形式為:十進制小數(shù)e指數(shù)或十進制小數(shù)E指數(shù)。

注:e或E后面的指數(shù)必須是整數(shù),并且在e或E的前面必須有數(shù)字。本題中,選項A)中E的前面沒有數(shù)字,因此錯誤。選項C)中0.8不是整數(shù),因此錯誤。選項D)中4是整型常量而不是實型常量。

60.C解析:主函數(shù)中定義了一個文件指針fp1,然后通過fopen()函數(shù),以寫的方式打開文件f1.txt,并讓指針fp1指向它,接著調(diào)用fprimf()函數(shù)將abc寫到文件fp1所指的文件里,由于印1指向文件f1.txt的開始位置,因此abc將把文件f1.txt里原來的內(nèi)容good覆蓋掉,故文件f1.txt里最后的內(nèi)容為abc,所以,4個選項中選項C符合題意。

61.B

62.A

\n本題中的str為一個字符型數(shù)組,P為字符型指針變量,其指向str的首地址,*P的值為strE03中的字符,其類型、長度不同,但字符第一個相同,故答案選擇A。

\n

63.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個結(jié)點的集合,對應任意一棵非空樹,它具有以下幾點重要的性質(zhì)。

①有且僅有一個特定的稱為根的結(jié)點。

②當n>1時,其余結(jié)點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。

因此,本題的正確答案有且只有一個。

64.A

65.D

66.A解析:將k和m的值帶入函數(shù)func中,第—次調(diào)用完func()后,其中m和i的值要保留,并在第二次調(diào)用時使用,這是因為兩者都是局部靜態(tài)變量。所以最后的結(jié)果是8和17。

67.C\n在輸入時必須遵守scanf函數(shù)中的格式才能正確地賦值給相應的變量,由于scanf函數(shù)為“%d;%d”,所以在輸入時要輸入3;5,答案為C。

\n

68.D程序調(diào)試是由程序開發(fā)者完成診斷和改正程序中的錯誤的過程;軟件測試是由專門的測試人員完成,是發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;軟件維護是指軟件系統(tǒng)交付使用以后,為了改正錯誤或滿足新的需要而修改軟件的過程,是軟件生存周期中非常重要的一個階段。

69.D

70.A二維數(shù)組名是指向指針的指針,所以a和q都為指向指針的指針,而P為指向int類型的指針。所以選項A)是將一個指向int類型的指針用來指向一個指針的指針,顯然是錯誤的。其他幾個選項都是正確的賦值,其中選項D)是用&返回整數(shù)的地址,然后賦值給P。

71.B數(shù)據(jù)庫可以看成是長期存儲在計算機內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。數(shù)據(jù)庫可以被直觀地理解為存放數(shù)據(jù)的倉庫,只不過這個倉庫在計算機的大容量存儲器上,例如,硬盤就是一種最常見的計算機大容量存儲設備。數(shù)據(jù)必須按一定的格式存放,因為它不僅需要存放,而且還要便于查找和使用。

數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的完成數(shù)據(jù)管理的系統(tǒng)軟件。它是用戶與數(shù)據(jù)庫的接口。應用程序一般要通過DBMS才能訪問數(shù)據(jù)庫。在數(shù)據(jù)庫建立、運用和維護時對數(shù)據(jù)庫進行統(tǒng)一控制。

數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。數(shù)據(jù)庫是整個數(shù)據(jù)庫系統(tǒng)最基本的成分。數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。數(shù)據(jù)庫管理員是數(shù)據(jù)庫系統(tǒng)的責任維護者,負責對數(shù)據(jù)庫系統(tǒng)的整體維護。

綜上所述,本題中只有B選項的描述是正確的。

72.B在軟件開發(fā)中,需求分析階段可以使用的工具有:DFD圖(數(shù)據(jù)流圖)、數(shù)據(jù)字典(DD.、判斷樹和判定表;概要設計階段可以使用的工具有:結(jié)構(gòu)圖SC(也成程序結(jié)構(gòu)圖);詳細設計階段可以使用的工具有:①圖形工具:程序流程圖、N—S、PAD(問題分析圖)、HIP0②表格工具:判定表③語言工具:PDL(偽碼):測試、調(diào)試階段一般采用各種方法。因此本題的正確答案是B。

73.B在c語言規(guī)定中,可以在定義變量的同時給變量賦初值,選項A中n2沒有定義;選項C中不能在賦值表達式的右邊出現(xiàn)變量本身,選項D中字母E后面的數(shù)應該為整數(shù),所以不對。

74.B當邏輯運算符“&&”兩邊的值是非零時,邏輯表達式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。

75.D沒有A選項的引用形式。+與&放在一起作用抵消,所以B選項錯誤,最大只能引用到X[9]。+(pt+i)表示引用指針pt所指元素后的第i個元素,所以c選項錯誤,最大只能為+(pt+9)。因此D選項正確。

76.C通俗地講,數(shù)據(jù)模型就是現(xiàn)實世界的模擬和抽象。數(shù)據(jù)模型是把現(xiàn)實生活中的具體事務轉(zhuǎn)換成計算機能夠處理的數(shù)據(jù)工具。任何一種數(shù)據(jù)庫系統(tǒng)都必須建立在一定的數(shù)據(jù)模型之上。由于現(xiàn)實世界的復雜性,不可能直接從現(xiàn)實世界中建立數(shù)據(jù)模型,所以,人們通常采用如下的處理過程。

現(xiàn)實世界抽象至信息世界,再轉(zhuǎn)化為機器世界

把整個過程劃分成三個世界和兩個階段。首先要把現(xiàn)實世界抽象為信息世界,并建立信息世界中的數(shù)據(jù)模型,即概念模型,然后進一步把概念模型轉(zhuǎn)化為可以在計算機中實現(xiàn)的且最終支持數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)模型?,F(xiàn)實世界,簡單地說,就是人們賴以生存的生活環(huán)境,它是具體事物和抽象概念的總和。信息世界也稱為概念世界,現(xiàn)實世界在人們頭腦中的反映就是信息世界,信息世界不是現(xiàn)實世界的錄像,必須從具體事務出發(fā)抽象其概念。當信息世界進入計算機后,就成為了機器世界。

一般地講,任何一種數(shù)據(jù)模型都是嚴格定義的概念的集合。這些概念必須能夠精確地描述系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件。因此,數(shù)據(jù)模型通常都是由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三個要素組成的。因此本題的正確答案選C。

77.C”anf(”%c”,&c),輸入的字符,題目中輸入了0,字符0,對應于ASCIl碼為48,因此for循環(huán)中,i的范圍從0~5,均小于48,if條件不成立,直接執(zhí)行下一條語句,執(zhí)行語句prinff,因此得到的結(jié)果是0,1,2,3,4。故答案為C選項。

78.A將p1指向的字符賦給p2,然后再移向下一個字符,直到結(jié)束字符0為止,因此這是將p1所指的字符串復制到p2所指的內(nèi)存空間。

79.B

80.A

81.(1)錯誤:float*k;

正確:floatk;

(2)錯誤:if(*a>*c)

正確:if(*a<*c)

【解析】變量定義首先要判斷變量的類型,給定程序的賦值語句中,k是以變量形式進行賦值的,所以k不是指針,定義為指針是不正確的;由給出程序可以看出,if語句是為了將小于*C的值放入*C中,所以應該改為“if(*a<*c)”。

82.

【解析】由題目中所給公式可知,多項式的值為m項的和。多項式每一項的分子均為1,第i項的分母為1~i所有整數(shù)的和。根據(jù)這個特點,通過m次循環(huán)求出多項式的每一項并求和。最后將多項式的和返回到主函數(shù)中。

2021年河南省駐馬店市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為()。

A.0B.‘\0’C.非零值D.NULL

2.設有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。

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

3.有以下函數(shù):intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函數(shù)的功能是()。

A.將y所指字符串賦給x所指存儲空間

B.查找x和y所指字符串中是否有‘\0’

C.統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數(shù)

D.統(tǒng)計x和y所指字符串中相同的字符個數(shù)

4.已知函數(shù)的調(diào)用形式為fread(buf,size,count,fp),參數(shù)buf的含義是

A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)

B.一個文件指針,指向要讀的文件

C.一個指針;指向要讀入數(shù)據(jù)的存放地址

D.一個存儲區(qū),存放要讀的數(shù)據(jù)項

5.

6.設x、y、z、t均為int型變量,則執(zhí)行以下語句后,t的值是()x=y(tǒng)=z=l;t=++x||++y&&++z;

A.不定值B.2C.1D.0

7.對一個有A,B,C,D隨機組成的序列進行哈夫曼編碼,據(jù)統(tǒng)計,各個元素的概率分別為:P(A)=0.4,P(B)=0.35,P(C)=0.2,P(D)=0.05,請問該編碼的平均期望編碼長度為()bits。

A.1.45B.1.74C.1.85D.1.92

8.

9.以下敘述中錯誤的是()。

A.getehar函數(shù)用于從磁盤文件讀入字符

B.gets匿數(shù)用于從終端讀入字符串

C.取ns函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件

10.設有定義語句“int(*f)(int);”,則下列敘述中正確的是()。

A.f是基類型為int的指針變量

B.f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形參

C.f是指向int類型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

11.在決定選取何種存儲結(jié)構(gòu)時,一般不考慮()。

A.各結(jié)點的值如何B.結(jié)點個數(shù)的多少C.對數(shù)據(jù)有哪些運算D.所用的編程語言實現(xiàn)這種結(jié)構(gòu)是否方便

12.設變量已正確定義,則以下能正確計算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;

13.

14.設變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f值的數(shù)據(jù)類型為()。

A.intB.floatC.doubleD.不確定

15.棧和隊列的共同特點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點

16.下列程序的輸出結(jié)果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}

A.22B.76C.72D.62

17.sizeof(float)是()。

A.一種函數(shù)調(diào)用B.一種函數(shù)定義C.一個浮點表達式D.一個整型表達式

18.若一個棧以向量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

19.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運行時從鍵盤上輸入9876543210,則上面程序的輸出結(jié)果是______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

20.下列算法中,()算法用來求圖中某頂點到其他頂點所有頂點之間的最短路徑。

A.DijkstraB.FloyedC.PrimD.Kruskal

二、2.填空題(20題)21.為了便于對照檢查,測試用例應由輸入數(shù)據(jù)和預期的【】兩部分組成。

22.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

23.有以下程序:

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

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

24.設x和y均為int型變量,且x=1,y=2,則表達式2.0+x/y的值為_______。

25.以下程序中,fun()函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請?zhí)羁铡?/p>

voidfun(int,int,int(*)[4],int*);

main()

{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;

fun(3,4,a,b);

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

printf("\n");

}

voidfun(intm,intn,intar[][4],int*br)

{inti,j,x;

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

{x=ar[i][0];

for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];

______=x;

}

}

26.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

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

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));}

28.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{intI,j;

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

{b[I][N-1]=【】;【】=a[N-1][I];}}

29.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過對象的______性來實現(xiàn)的。

30.一張3.5英寸軟盤大約能存儲140萬個ASCⅡ字符,若存放漢字大約能存放【】個。

31.在關系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。

32.fseek函數(shù)的正確調(diào)用形式是【】。

33.以下程序通過函數(shù)SunFun求。這里f(x)=x2+1,由F函數(shù)實現(xiàn)。請?zhí)羁铡?/p>

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{returnx*x+1;}

34.設y為血型變量,請寫出描述“y是偶數(shù)”的表達式______。

35.模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。

36.以下程序?qū)崿F(xiàn)帶有頭結(jié)點的單鏈表的建立,鏈表中每個結(jié)點包含數(shù)據(jù)域data(字符型)和指針域next,所建立鏈表的頭指針由參數(shù)phd傳回調(diào)用程序。在空格處填入正確內(nèi)容。

#include<stdio.h>

#include<stdlib,h>

structnode{

chardata;

structnode*next;

};

voidcreatlist(【】)

{

charch;

structnode*s,*r;

*phd=malloc(sizeof(structnode));

r=*phd;

ch=getchar();

while(ch!='@'){

s=malloc(sizeof(structnode));

s->data=ch;

r->next=s;

r=s;

ch=getchar();

};

r->next=【】;

}

main()

{

structnode*head;

head=NULL;

creatlist(【】)

}

37.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。

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

#include<stdio.h>

f(inta)

{intb=0;

staticc=3;

a=c++,b++;

return(a);}

main()

{inta=2,i,k;

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

k=f(a++);

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

39.以下程序運行后的輸出結(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;

40.以下程序的輸出結(jié)果是12.00,請將空白處填寫完整。

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

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

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

}

三、1.選擇題(20題)41.數(shù)據(jù)庫設計包括兩個方面的設計內(nèi)容,它們是()

A.概念設計和邏輯設計B.模式設計和內(nèi)模式設計C.內(nèi)模式設計和物理設計D.結(jié)構(gòu)特性設計和行為特性設計

42.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0;m++;break;}}printf("%d\n",m);}程序運行后的輸出結(jié)果是()。

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

43.執(zhí)行以下語句后的輸出結(jié)果是______。intx=3,y=0;printf("%d,%d”,-1>x>-10&&1<x<10,-1>y>-10&&1<y<10);

A.12B.11C.12D.22

44.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%s,%s\n",ss,aa);

}

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

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

45.為了避免嵌套的if-else的二義性,C語言鋇定:else與______配對。

A.縮排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if

46.C語言中用于結(jié)構(gòu)化程序設計的三種基本結(jié)構(gòu)是A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

B.if、switch、break

C.for、while、do-while

D.if、for、continue

47.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。

A.7B.6C.8D.無確定值

48.以下能正確定義二維數(shù)組的是()。

A.inta[][3];

B.inta[][3]={2*3};

C.inta[][3]={};

D.inta[2][3]={{1},{2},{3,4}}:

49.下列程序的輸出結(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

50.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循環(huán),不能確定次數(shù)

51.在下列字符序列中,合法的標識符是()

A.P12&.aB.stud_100C.$water.12D.88sum

52.下面程序的文件名為t.exe,在DOS下輸入的命令行參數(shù)如下:ttomeetme<回車>則程序輸出的結(jié)果是#include"stdio.h"main(argc,argv)intargc;char*argv[];{inti;printf("%d\n",argc);}

A.3B.4C.2D.以上答案都不正確

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

A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)

54.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

55.下面的關鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

56.若變量已正確定義,有以下程序段

inta=3,b=5,c=7;

if(a>b)a=b;c=a;

if(c!=a)c=b;

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

其輸出結(jié)果是

A.程序段有語法錯B.3,5,3C.3,5,5D.3,5,7

57.下列程序的輸出結(jié)果是()。intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,e=5,d=2,e,f,g;e=f2(f1(a,b),f1(e,d));f=f1(f2(a,b),f2(e,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}

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

58.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關系B.數(shù)據(jù)流C.控制流D.調(diào)用關系

59.下列正確的實型常量是()。

A.E3.4B.-12345C.2.2e0.8D.4

60.有如下程序:#include<stdio.h>main(){FILE*fp1;fp1=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為good,則運行以上程序后文件f1.txt中的內(nèi)容為()。

A.goodabcB.abcdC.abcD.abcgood

四、選擇題(20題)61.

62.

設有以下定義和語句:

charstr[2O]="Program",*P:

p=str:

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

A.*p與stf[0]的值相等

B.str與P的類型完全相同

C.str數(shù)組長度和P所指向的字符串長度相等

D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同

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

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

64.

65.

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

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

67.若有定義:“inta,b;”,通過語句“scan[("%d;%d".,&a,&b);”,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。

A.35B.3,5C.3;5D.35

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

A.軟件測試應該由程序開發(fā)者來完成

B.程序經(jīng)調(diào)試后一般不需要測試

C.軟件維護只包括對程序代碼的維護

D.以上三種說法都不對

69.

70.若有定義語句:inta[4][10],*P,*q[4];且0<=i<4,則錯誤的賦值是()。

A.P=aB.q[i]=a[i]C.p=a[i]D.p=&a[2][1]

71.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關系是()。

A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)

B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)

D.三者沒有明顯的包含關系

72.在軟件開發(fā)中,需求分析階段可以使用的工具是()。

A.N—s圖B.DFD圖C.PAD圖D.程序流程圖

73.下列能正確定義且賦初值的語句是()。

A.intn1=n2=1;

B.charC=99;

C.floatf=f+1;

D.doublex=1.2E5.6;

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

printf("%d,%d\n",a,b);}A.A.6,1B.2,1C.6,0D.2,0

75.若有以下定義:

intx[10],*pt=x;

則對x數(shù)組元素的正確引用是()。

A.pt+3B.}&x[10]C.*(pt+10)D.*(x+3)

76.下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()

A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)操作C.數(shù)據(jù)查詢D.數(shù)據(jù)約束

77.有以下程序:執(zhí)行時輸入:0<;回車>;后,則輸出結(jié)果是()。A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1.

78.已定義以下函數(shù):

fun(char*p2,char*p1)

{while((*p2=*p1)!=’\0’){p1++;p2++;}}

函數(shù)的功能是()。

A.將p1所指字符串復制到p2所指向內(nèi)存空間

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較

D.檢查p1和p2兩個指針所指字符串中是否有’\0’

79.

80.

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:把從主函數(shù)中輸人的3個數(shù)。最大的數(shù)放在a中,中間的數(shù)放在b中,最小的數(shù)放在C中。例如,若輸入的數(shù)為:55,12,34,輸出的結(jié)果應當是:a=55.0,b=34.0,c=12.0。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論