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

下載本文檔

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

文檔簡介

2021年安徽省馬鞍山市全國計算機等級考試C語言程序設(shè)計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.當輸入為"hello?"時,下面程序的執(zhí)行結(jié)果是()。#include<stdio.h>main{charc;c=getchar;while(c!=?){putehar(e);break;}}A.RvfsuB.hC.?D.hello

2.已知a,b均被定義為double型,則表達式:b=1,a=b+5/2的值為()。

A.1B.3C.3.0D.3.5

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

A.表達式“sizeof(FILE*)==sizeof(int*)”的值為真

B.文件指針的值是一個整數(shù),它的值一定小于文件字節(jié)數(shù)

C.文件指針的值是所指文件的當前讀取位置

D.使用fscanf函數(shù)可以向任意類型的文件中寫入任意數(shù)量的字符

4.以下選項中,能表示邏輯值“假”的是()

A.1B.0.000001C.0D.100.0

5.具有n個結(jié)點的連通圖至少有()條邊。

A.n-1B.nC.n(n-1)/2D.2n

6.

7.鏈棧與順序棧相比,比較明顯的優(yōu)點是()。

A.插入操作更加方便B.刪除操作更加方便C.不會出現(xiàn)下溢的情況D.不會出現(xiàn)上溢的情況

8.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,則對a數(shù)組元素不正確的引用是()

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

9.數(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)系

10.下述程序向文件輸出的結(jié)果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TESY","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'-',2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進制文件而不可讀

11.設(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)

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

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

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

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

14.有以下程序

#include<stdio.h>

main()

{inta=1,b=0;

if(--a)b++;

elseif(a==0)b+=2;

elseb+=3:

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

}

程序運行后的輸出結(jié)果是A.A.0B.1C.2D.3

15.

A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;

B.y=0;if(x>0)y=1;elseif(x<0)y=-1;

C.y=0;if(x>=0)if(x>0)y=1;e1sey=-1;

D.if(x>=0)if(x>0)y=1;elsey=0:elsey=-1;

16.判斷一個循環(huán)隊列cq(最多元素為m)為空的條件是()。A.cq->rear-cq-front=m;

B.(cq->rear+1)%m=cq->front;

C.cq->front=cq->rear;

D.cq->rear=m-1;

17.若有以下定義,則對a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

18.有以下程序:#include#definePT3.5;#defineS(x)PT*x*x;Main(){inta=1,b=2;printf("%4.1f\n",S(a+b));程序運行后的輸出結(jié)果是()。A.7.5B.31.5C.程序有錯無輸出結(jié)果D.14.0

19.若有如下定義,則__________是對數(shù)組元素的正確的引用。.

inta[10],*p;p=a;

A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p

20.信息隱蔽的概念與下述哪一種概念直接相關(guān)?

A.軟件結(jié)構(gòu)定義B.模塊獨立性C.模塊類型的劃分D.模塊耦合度

二、2.填空題(20題)21.一棵二叉樹第6層(根結(jié)點為第一層)的結(jié)點最多為______個。

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

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

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

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

24.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)

white(s[i]){d[j]=【】;j++;}

d[j]=0;

25.有以下程序段:

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

b=p[5];

b中的值是【】。

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

main()

{int=0;

while(n++<=1);

printf("%d,",n);

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

}

27.閱讀下列程序,則程序的輸出結(jié)果為【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

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

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

29.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

30.多媒體計算機所用的CD-ROM是【】。

31.在最壞情況下,冒泡排序所需要的比較次數(shù)為【】。

32.在面向?qū)ο蠓椒ㄖ校惖膶嵗Q為______。

33.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊列都屬于【】。

34.存儲300個16×16點陣的漢字信息需要【】字節(jié)。

35.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];.

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

printf("");

}

36.模式/內(nèi)模式映射為數(shù)據(jù)庫提供了【】數(shù)據(jù)獨立性。

37.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度。請?zhí)羁铡?/p>

FILE*myf;longf1;

myf=【】("test,t","rb");

fseek(myf,0,SEEK_END);f1=ftell(myf);

fclose(myf);

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

38.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

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

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

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

}

40.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個字符放到buf字符數(shù)組中,函數(shù)返回值為______。

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}程序的輸出結(jié)果是()。

A.13B.14C.208D.209

42.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序運行后的輸出結(jié)果是

A.錯誤信息B.666C.888D.666,888

43.有以下程序段

intj;floaty;charname[50];

scanf("%2d%f%s",&j,&y,name);

當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為

A.55566.0B.566.0C.7777.0D.566777.0

44.下列程序的輸出結(jié)果是______。intm=10;intfun(inta,intB){intm=2;return(a*b-m);}main(){intx=7,y=5;printf("%d\n",fun(x,y)%m);}

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

45.信息隱蔽的概念與下述______概念直接相關(guān)。

A.軟件結(jié)構(gòu)定義B.模塊獨立性C.模塊類型劃分D.模擬耦合度

46.下列程序的運行結(jié)果是()。#include<stdio.h>voidfun(int*s,int*p){staticintt=3;*p=s[t];t--;}voidmain(){inta[]={2,3,4,5},k,x;for(k=0;k<4;k++){fun(a,&x);printf("%d,",x);}}

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

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

A.fseek(位移量,起始點,文件類型指針);

B.fseek(文件類型指針,位移量,起始點);

C.fseek(文件類型指針,起始點,位移量);

D.fseek(起始點,位移量,文件類型指針);

48.以下程序的輸出結(jié)果是()。main()chara[10]={'1','2','3','4','5','6','7','8','9','\0'),*p;{inti;i=8;p=a+i;printf("%s\n",p-3);}

A.6B.6789C.'6'D.789

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

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

50.函數(shù)rewind的作用是

A.使文件位置指針重新返回文件的開始位置

B.將文件位置指針指向文件中所要求的特定位置

C.使文件位置指針指向文件的末尾

D.使文件位置指針自動移至下一個字符位置

51.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

52.設(shè)有定義:inta=2,b=3,c=4;,則下列選項中值為0的表達式是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

53.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0‖k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為

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

54.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運行后的輸出結(jié)果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*1=22*2=43*1=33*2=63*3=9

55.有以下程序#include<stringh>main(intargc,char*argv[]){inti,len=0;fot(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}經(jīng)編譯連接后生成的可執(zhí)行文件是ex.exe,若運行時輸入以下帶參數(shù)的命令行exabcdefgh3k44執(zhí)行后輸出結(jié)果是

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

56.在下列關(guān)于二叉樹的敘述中,正確的一項是

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

B.二叉樹的度為2

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

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

57.有定義語句:intx,y;若要通過scanf("%d,%do,&x,&y);語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是

A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>

58.有下列程序:#include<stdio.h>main(){inta=6,b=7,m=1;switch(a%2){case0:m++;break;case1:m++;switch(b%2){defaut:m++;case0:m++;break;}}printf("%d\n",m);}程序運行后的輸出結(jié)果是()。

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

59.進行二分法查找,則線形表______。

A.必須以順序方式存儲

B.必須以鏈接方式存儲,且數(shù)據(jù)元素已按值排好序

C.必須以鏈接方式存儲

D.必須以順序方式存儲,且數(shù)據(jù)元素已按值排好序

60.設(shè)有如下定義:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正確的賦值語句是

A.p=&data.n;

B.*p=data.n;

C.p=(structsk*)&data.n;

D.p=(structsk*)data.n:

四、選擇題(20題)61.

62.有以下程序:

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

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

63.

若有以下程序段,w和k都是整型變量:

w=k:

LB:if(w==0)gotoLE;

W--:

printf("*")

gotoLB;

LE;

則不能與上面程序段等價的循環(huán)語句是()。

A.for(w=k;w!=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k;while(w--!=0)printf("*");

D.w=k:w++;do{w--;printf("*");}while(w!=0);

64.數(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)系

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

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

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

C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)

D.以上三種說法都不對

66.(33)分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是______。

A.分布式

B.數(shù)據(jù)冗余

C.數(shù)據(jù)分布性和邏輯整體性

D.位置透明性和復制透明性

67.

68.

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

#include<stdio.h>

voidfun(int*S,int*p)

{staticintt=3:

*p=s[t];

t--;

}

voidmain

{inta[]={2,3,4,5),k;

intx;

for(k=0,k<4,k++)

{fun(a,&x);

printf("%d,",x);

}

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

70.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運行后輸出結(jié)果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

71.

72.

73.對線性表進行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈式方式存儲,并按關(guān)鍵碼值排好序

D.線性表以鏈式方式存儲,并按關(guān)鍵碼的檢索頻率排好序

74.右兩個關(guān)系R和S如下:

則由關(guān)系R得到關(guān)系S的操作是()。A.自然連接B.并C.選擇D.投影

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

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

76.若a是數(shù)值類型,則邏輯表達式(a==1)||(a!=1)的值是()。

A.0B.1C.2D.不知道a的值,不能確定

77.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點的單向鏈表結(jié)構(gòu),指針變量s、P、q、均已正確定義,并用于指向鏈表結(jié)點,指針變量s總是作為頭指針指向鏈表的第一個結(jié)點。該程序段實現(xiàn)的功能是()。

A.首結(jié)點成為尾結(jié)點B.尾結(jié)點成為首結(jié)點C.刪除首結(jié)點D.刪除尾結(jié)點

78.程序調(diào)試的目的是

A.發(fā)現(xiàn)程序中的錯誤B.改正程序中的錯誤C.驗證程序的正確性D.改善軟件的性能

79.以下函數(shù)返回a所指數(shù)組中最大值所在的下標值

fun(int*a,intn)

{

inti,j=0,p;

p=j;

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

if(a[i]>a[p])_________;

return(p);

}

在下畫線處應(yīng)填入的內(nèi)容是

A.i=pB.a(chǎn)[p]=a[i]

C.p=iD.p=j

80.

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的n個元素按從大到小的順序進行排序。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)其功能是使字符串的前導*號不得多于n個,若多于n個,則刪除多余的*號;若少于或等于n個,則不做處理。字符串中間和尾部的*號不刪除。例如,字符串中的內(nèi)容為“*******A*BC*DEF*G****”,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)當是“****A*BC*DEF*G****”;若n的值為8,則字符串中的內(nèi)容仍為“*******A*BC*DEF*G****”。n的值在主函數(shù)中輸入。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>voidfun(char*a,intn){}voidmain(){ chars[81];intn; printf(“Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}

參考答案

1.A本題考查getchar函數(shù)與putchar函數(shù),通過9etchar函數(shù)讀入字符,并通過putchar函數(shù)將字符逐個輸出,當用戶輸入“?”時停止輸出,且c是一個字符變量只占一個字節(jié)。

2.D

3.A“sizeof(FILE*)=4”,因為“file*”為指針,指針變量占用字節(jié)數(shù)為4,所以“sizeof(int*)=4”,選項A正確。文件指針的值是地址,是一個十六進制數(shù),它的值不一定小于文件字節(jié)數(shù),因此選項B錯誤。文件指針是所指文件的當前讀取位置,而不是文件指針的值,因此選項C錯誤。“intfscanf(FILE*Stream,constchar*format,[argument...]);”,fScanf函數(shù)可以向任意類型的文件寫入任意數(shù)量的數(shù)據(jù)(不能超過系統(tǒng)的緩沖區(qū)),寫文件先寫入緩沖區(qū),最后一起寫入文件,因此選項D錯誤。故本題答案為A選項。

4.C\n本題考查邏輯值假,在程序中非0字符表示邏輯真,0表示邏輯假,所以答案選擇C。

\n

5.A

6.A

7.D

8.D解析:通常,引用一個數(shù)組元素可以用下標法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標是從0開始的。

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

10.C解析:fprintf函數(shù)工作時,多個數(shù)據(jù)間不會自珈口分隔符,選項A錯誤;浮點數(shù)的輸出格式是“%5.0f”表明其小數(shù)部分輸出0位,即沒有輸出,所以選項B也是錯誤的。

11.C

12.Dcoutimie語句的作用是跳出循環(huán)體中剩余的語句而進行下一次循環(huán)。第1次循環(huán),x的值為8,循環(huán)體中if條件成立,輸出X的值8后將x減1,再執(zhí)行continue語句,跳出本次循環(huán)。第2次循環(huán),x的值為6,不滿足循環(huán)體內(nèi)的if條件,執(zhí)行輸出“--x”的操作,即輸出5后跳出循環(huán)。第3次循環(huán),x的值為4,滿足循環(huán)體內(nèi)的if條件,執(zhí)行輸出“x--”的操作,即輸出4后將x值減一,執(zhí)行continue語句,跳出本次循環(huán)。第4次循環(huán),x的值為2,滿足循環(huán)體內(nèi)的if條件,執(zhí)行輸出“x--”的操作,輸出2后將x減1,執(zhí)行continue語句,跳出本次循環(huán)。在進行for條件表達式中第3個表達式“x--”的操作后,x的值為0,不滿足條件,結(jié)束循環(huán)。所以運行結(jié)果為8,5,4,2,。故本題答案為D選項。

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

14.C解析:本題考察運算符和選擇語句,執(zhí)行到if語句時,--a為0,所以不會執(zhí)行后面的語句,但是會執(zhí)行elseif后面的語句,所以執(zhí)行后,b=2,選項C)正確。

15.C解析:選項A的意思是:在x>O情況下,y為1,否則,在x=O時,y為0,剩下x<O時,y為-1,滿足本題中函數(shù)的要求。選項B描述的意思是:初始化y的值為0,在x>O時,給y重新賦值為1,否則,在x<O時,給y重新賦值為-1,滿足本題中函數(shù)的要求。選項C描述的意思是:在x>=0情況下,如果x>O,則y為1,否則,即x==0時,y為-1;剩下的x<O時,y為0??梢姶鸢窩實現(xiàn)的結(jié)果不是給定的表達式。選項D中描述的意思是:在x>=0的情況下,如果x>O,就給y賦值為1,否則即x==0時給y賦值為0,在不是x>=0的其他情況下,就給y賦值為-1,滿足本題中函數(shù)的要求。所以4個選項中C為所選。

16.C

17.D本題考查如何引用數(shù)組元素的地址。選項A)中,p5引用的是af51的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤;選項B)中,*a1指的是將數(shù)組a的第一個元素加1;選項C)中,這種引用方式錯誤;選項D)中,&a[0]引用的是數(shù)組的首地址。

18.C宏定義不是C語句,末尾不需要有分號。所以語句Printf("%4.1f\\n",,S(a+b));展開后為printf("%4.1f\\n",3.5;*a+b*a+b;);所以程序會出現(xiàn)語法錯誤。

19.D

20.B解析:采用信息隱蔽的目的就是為了確保每個模塊的獨立性。

21.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結(jié)點。第6層的結(jié)點數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結(jié)點最多數(shù)”和“某一層的結(jié)點最多數(shù)”。前者的計算是深度為m的二叉樹最多有2m-1個結(jié)點。

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

23.1-21,-2解析:題中外層while循環(huán)的循環(huán)條件是y--!=-1,即y>=0;內(nèi)層do…while循環(huán)的循環(huán)條件是y--即y-->0,y>=1。注意:break和continue語句在循體中的作用。

24.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其有元素。本題應(yīng)使用i舶自增后置來實現(xiàn)。

25.99解析:p是一個指針變量,指向數(shù)組a的元素a[3],所以b=p[5]=a[5+3]=a[8]=9。

26.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做;n++是先取n的當前值和I做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=0<=1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3。退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當前值3,然后再將n加1,即程序結(jié)束后得到n=4,但輸出的是3。

27.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。

28.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。

29.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實現(xiàn)。

30.只讀光盤只讀光盤

31.n(n-1)/2n(n-1)/2解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2。

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

33.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:本題考查了數(shù)據(jù)結(jié)構(gòu)的基本概念。與棧類似,隊列也是線性表,可以采用鏈式存儲結(jié)構(gòu),所以帶鏈的隊列屬于線性結(jié)構(gòu)。

34.800800解析:一個16x16點陣的字形碼需要16x16/8=32字節(jié)的存儲空間,所以300個漢字信息需要9600個字節(jié)。

35.對于10個數(shù),相鄰的兩個數(shù)相加取和,總共要進行9次加法運算,所以空14處應(yīng)填入i=1。相鄰的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[i-1]。\r\n\r\n

36.物理物理

37.fopen

38.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。

39.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:a=2,b=8。

40.buf的首地址buf的首地址解析:考查fsets()函數(shù)的功能,f8ets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:f8ets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個int型變量。調(diào)用函數(shù)fsets()時,最多能讀入n-1個字符,系統(tǒng)自動在最后加字符串結(jié)束標志,并以buf作為函數(shù)值返回。

41.A解析:本題中,首先定義了一個共用體pw,其中有兩個域:整型變量i和字符數(shù)組ch,因為共用體中的域是共享內(nèi)存空間的,又數(shù)組的元素有低到高存儲:ch[0]在低字節(jié),ch[1]在高字節(jié)。整型變量i占兩個字節(jié),高位與ch[1]共用存儲空間,低位與ch[0]共用存儲空間,而高位ch[1]的值為0,所以輸出的成員變量i的值就是ch[0]的值13。

42.B解析:程序中的printf()函數(shù)的輸出格式部分只說明了一個%d,而輸出成員列表卻有兩個成員a和b,在這里將只輸出第一個成員a值為666,所以,4個選項中選項B符合題意。

43.B解析:本題考查通過scanf函數(shù)輸入數(shù)據(jù)時的格式控制問題。變量j的格式控制為“%2d”,即只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入都會被保存到變量y中,因為y為浮點型數(shù)據(jù),所以輸出結(jié)果為選項B)。

44.D解析:本題考查全局變量和局部變量的區(qū)別。在函數(shù)fun中的m是局部變量,值為2,在主函數(shù)中的m是全局變量,值為10。

45.B解析:信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不合晰問的。模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。衡量軟件的模塊獨立性的度量標準是耦合性和內(nèi)聚性。一個模塊的內(nèi)聚性越強,則該模塊的模塊獨立性越強。而內(nèi)聚性是信息隱蔽和局部化概念的自然擴長。

46.A解析:分析fun函數(shù)程序段,可知fun函數(shù)要實現(xiàn)的功能是將s中第(t+1)個元素以前的元素逆置賦給數(shù)組p。由于fun函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)組x,最后輸出x數(shù)組。

47.B解析:改變文件位置的指針函數(shù)fseek()的調(diào)用形式為:fseek(fp,offset,position);。fseek函數(shù)參數(shù)說明:“fp”是指向該文件的文件型指針;“offset'’為位移量,指從起始點position.到要確定的新位置的字節(jié)數(shù)。也就是以起點為基準,向前移動的字節(jié)數(shù)。ANSIC要求該參數(shù)為長整型量;“position”為起始點,指出以文件的什么位置為基準進行移動,position的值用整型常數(shù)表示,“0”表示文件的開頭,“1”表示文件的當前位置,“2”表示文件的末尾。

48.B解析:p被定義為指針型變量,被賦值為數(shù)組a的首地址加8,即指向元素'9'。將指針向前移3位,輸出'6'后的字符串,遇到'\\0'結(jié)束輸出,即6789。

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

50.A解析:函數(shù)rewind的功能是將文件指針重新指向一個流的開頭。用法如下:

intrewind(FILE*stream);并且無返值。

51.C答案C

解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù)。

52.A解析:在選項A)中,因為!a=0,所以關(guān)系表達式!a==1的值為0,又因為邏輯與運算符“&&”兩邊的表達式只要一個等于零,則整個表達式為零,所以選項A)正確。在選項B)中,關(guān)系表達式a<b為真,表達式(a<b)&&!c為假,而表達式(a<b)&&!c‖1為真,所以整個表達式的值為真。選項C)中,a&&b的結(jié)果為真。在選項D)中,a‖(b+b)&&(c-a)的結(jié)果為真。

53.D

54.B解析:外層for循環(huán)的自變量i從1開始,每次循環(huán)后增1,直到i等于3結(jié)束.對于外層循環(huán)自變量i的每一個值,內(nèi)層循環(huán)的自變量j每次從i開始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印i*j=兩個乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。

55.D解析:主函數(shù)的第一個參數(shù)argc為整型參數(shù),記下從命令行輸入的參數(shù)的個數(shù);第二個參數(shù)argv是一個字符型的指針數(shù)組,它的每一個元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為5,argv[0]指向字符串“ex”,argv[1]指向參數(shù)字符串“abed”,argv[2]指向字符串“efg”,argv[3]指向參數(shù)字符串“h3”,argv[4]指向參數(shù)字符串“k44”。在main()函數(shù)中,for循環(huán)執(zhí)行了2次,當i=1時,len=0+strlen(argv[1]),而其中argv[1]=“abcd”,故此時len的值為4;當i=3時,len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此時len的值為6;當i=5時,退出循環(huán),故最后輸出的len的值為6。

56.D解析:本題考查了二叉樹的基本概念。在二叉樹中,葉子節(jié)點的度是1;當該二叉樹為空樹時,根節(jié)點的度為零;為非空樹時,根節(jié)點的度為2。

57.A解析:scanf()函數(shù)有兩個參數(shù),第一個參數(shù)為輸入格式字符申;第二個參數(shù)為輸入變量地址列表,在scanf()語句中非格式字符可以作為輸入時數(shù)據(jù)的間隔,輸入時必須原樣輸入,在本題中輸入格式串為%d,%d其中“,”為非格式字符,所以輸入時必須原樣輸入。

58.B解析:本題考查switch語句。第一個switch語句,因為a=6,a%2=0,所以執(zhí)行case0.將m加1,遇到break語句跳出switch語句,結(jié)束循環(huán)。

59.D

60.C解析:本題主要考查了結(jié)構(gòu)體變量引用成員數(shù)據(jù)的方法,主要有以下幾種:結(jié)構(gòu)體變量名.成員名或結(jié)構(gòu)體指針->成員名的方法來引用結(jié)構(gòu)體成員。

61.B

62.B在f(int+P,int4q)函數(shù)中,執(zhí)行P=P+1是將P所對應(yīng)的地址加1,而0q=+q+1是將q所指向的n的地址所對應(yīng)的值加1,所以m的得知所對應(yīng)的值沒有變,而n的值則為3了。因此B選項正確。

63.C

\n當循環(huán)結(jié)束時,w的值應(yīng)為-1,而其他選項中w的值為0,故選擇c選項。

\n

64.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。

65.B解析:本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識。

數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還心須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等。對于大型的多用戶數(shù)據(jù)庫系統(tǒng)和網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡(luò)系統(tǒng)軟件的支持。因此,選項A的說法是錯誤的。

數(shù)據(jù)庫可以看成是長期存儲在計算機內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。不同的用戶可以使用同一個數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標是要解決數(shù)據(jù)的共享問題。因此,選項B的說法是正確的。

通常將引入數(shù)據(jù)庫技術(shù)的計算機系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由五個部分組成,包括相關(guān)計算機的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關(guān)軟件和人員。

因此,選項C的說法是錯誤的。

因此,本題的正確答案是選項B。

66.B

67.D

68.B

69.A依據(jù)fun函數(shù),可知其要實現(xiàn)的功能是將S中第(t+1)個元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)x,最后輸出x數(shù)組。

70.B解析:f函數(shù)的功能是返回地址為x,y的兩個數(shù)中值鉸的數(shù)的地址,本題輸出結(jié)果是7,8,7。

71.B

72.D

73.A解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。

74.C選擇:是在數(shù)據(jù)表中給予一定的條件進行篩選數(shù)據(jù)。投影:是把表中的某幾個屬性的數(shù)據(jù)選擇出來。連接:有自然連接、外連接,內(nèi)連接等,連接主要用于多表之間的數(shù)據(jù)查詢。并:與數(shù)學中的并是一樣的。兩張表進行并操作,要求它們的屬性個數(shù)相同并且需要相容。

75.B逗號表達式a++,b++,a+b先計算a++,a=2;再計算b++,b=3;表達式的值就是a+b的值,為5。表達式C++的值是C遞增前的值,為3。所以fun((a++,b++,a+b),C++)等價于fun(5,3),返回值為5+3=8。

76.B當a=1時,(a==1)||(a!=1)為真;當a!=1時,(a==1)||(a!=1)也為真,故正確答案為B)。

77.A循環(huán)找到末尾結(jié)點,然后賦值給第一個結(jié)點,所以選擇A)。

78.B調(diào)試也稱排錯或糾錯。它與成功的測試形影相隨,測試成功的標志是發(fā)現(xiàn)錯誤。根據(jù)錯誤跡象,診斷錯誤的原因和位置,進而改正程序中的錯誤,這就是調(diào)試的任務(wù)。

調(diào)試分為靜態(tài)調(diào)試和動態(tài)調(diào)試,靜態(tài)調(diào)試就是指對源程序進行分析,然后確定可能出錯的地方并進行排錯。動態(tài)調(diào)試是指對程序的運行進行跟蹤并觀察其出錯點,然后進行排錯。

靜態(tài)調(diào)試通??梢圆捎萌缦聝煞N方法。

(1)輸出寄存器的內(nèi)容

在測試中出現(xiàn)問題,設(shè)法保留現(xiàn)場信息。把所有的寄存器和主存中有關(guān)部分的內(nèi)容打印出來(通常以八進制或十六進制的形式打?。M行分析研究。用這種方法調(diào)試,輸出的是程序的靜止狀態(tài)(程序在某一時刻的狀態(tài)),效率非常低,不得已才采用。

(2)為取得關(guān)鍵變量的動態(tài)值,在程序中插入打印語句。這是取得動態(tài)信息的簡單方法,并可檢驗在某事件后某個變量是否按預期要求發(fā)生了變化。此方法的缺點是可能輸出大量需要分析的信息,必須修改源程序才能插入打印語句,這可能改變關(guān)鍵的時序關(guān)系,引入新的錯誤。

動態(tài)調(diào)試通常利用程序語言提供的調(diào)試功能或?qū)iT的調(diào)試工具來分析程序的動態(tài)行為。一般程序語言和工具提供的調(diào)試功能有檢查主存和寄存器;設(shè)置斷點,即當執(zhí)行到特定語句或改變特定變量的值時,程序停止執(zhí)行,以便分析程序此時的狀態(tài)。

79.C該題目所要求的是最大數(shù)的位置(下標),而不是最大數(shù)的數(shù)值。因此,在進行逐個比較的過程中,需要記錄最大數(shù)的下標i。根據(jù)給出的程序可知,該下標記錄在變量p中,所以,如果a[i]>a[p]這一關(guān)系成立,應(yīng)該把i的值賦給p,這樣才滿足題目的要求。

80.C

81.(1)錯誤:p=j

正確:p=j;

(2)錯誤:p=j;

正確:p=i;

【解析】根據(jù)C語言的語法規(guī)則.每一條語句都要以分號結(jié)束。因此,“p=j”后要加上分號“;”。每次比較后要把小的下標賦值給p,因此,“p=j;”應(yīng)改為“p=i;”。

82.voidfun(char*a,intn){ inti=0,k=0; char*p,*t; p=t=a; /*開始時,p與t同時指向數(shù)組的首地址*/ while(*t==‘*’) /*用k來統(tǒng)計前導星號的個數(shù)*/ {k++;t++;} if(k>n) /*如果k大于n,則使p的前導保留n個星號,其后的字符依次存入數(shù)組a中*/ { while(*p) { a[i]=*(p+k-n); i++; p++; } a[i]=‘\0’; /*在字符串最后加上字符串結(jié)束標志*/ }}字符串中前導*號不能多于n個,多余的應(yīng)刪除。首先需要通過while循環(huán)統(tǒng)計字符串前導*號的個數(shù),然后通過if條件語句完成前導*號的個數(shù)和n的比較,如果前導*號多于n個,則需要把n個*號和其余字符重新保留。2021年安徽省馬鞍山市全國計算機等級考試C語言程序設(shè)計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.當輸入為"hello?"時,下面程序的執(zhí)行結(jié)果是()。#include<stdio.h>main{charc;c=getchar;while(c!=?){putehar(e);break;}}A.RvfsuB.hC.?D.hello

2.已知a,b均被定義為double型,則表達式:b=1,a=b+5/2的值為()。

A.1B.3C.3.0D.3.5

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

A.表達式“sizeof(FILE*)==sizeof(int*)”的值為真

B.文件指針的值是一個整數(shù),它的值一定小于文件字節(jié)數(shù)

C.文件指針的值是所指文件的當前讀取位置

D.使用fscanf函數(shù)可以向任意類型的文件中寫入任意數(shù)量的字符

4.以下選項中,能表示邏輯值“假”的是()

A.1B.0.000001C.0D.100.0

5.具有n個結(jié)點的連通圖至少有()條邊。

A.n-1B.nC.n(n-1)/2D.2n

6.

7.鏈棧與順序棧相比,比較明顯的優(yōu)點是()。

A.插入操作更加方便B.刪除操作更加方便C.不會出現(xiàn)下溢的情況D.不會出現(xiàn)上溢的情況

8.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,則對a數(shù)組元素不正確的引用是()

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

9.數(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)系

10.下述程序向文件輸出的結(jié)果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TESY","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'-',2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進制文件而不可讀

11.設(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)

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

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

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

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

14.有以下程序

#include<stdio.h>

main()

{inta=1,b=0;

if(--a)b++;

elseif(a==0)b+=2;

elseb+=3:

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

}

程序運行后的輸出結(jié)果是A.A.0B.1C.2D.3

15.

A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;

B.y=0;if(x>0)y=1;elseif(x<0)y=-1;

C.y=0;if(x>=0)if(x>0)y=1;e1sey=-1;

D.if(x>=0)if(x>0)y=1;elsey=0:elsey=-1;

16.判斷一個循環(huán)隊列cq(最多元素為m)為空的條件是()。A.cq->rear-cq-front=m;

B.(cq->rear+1)%m=cq->front;

C.cq->front=cq->rear;

D.cq->rear=m-1;

17.若有以下定義,則對a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

18.有以下程序:#include#definePT3.5;#defineS(x)PT*x*x;Main(){inta=1,b=2;printf("%4.1f\n",S(a+b));程序運行后的輸出結(jié)果是()。A.7.5B.31.5C.程序有錯無輸出結(jié)果D.14.0

19.若有如下定義,則__________是對數(shù)組元素的正確的引用。.

inta[10],*p;p=a;

A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p

20.信息隱蔽的概念與下述哪一種概念直接相關(guān)?

A.軟件結(jié)構(gòu)定義B.模塊獨立性C.模塊類型的劃分D.模塊耦合度

二、2.填空題(20題)21.一棵二叉樹第6層(根結(jié)點為第一層)的結(jié)點最多為______個。

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

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

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

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

24.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)

white(s[i]){d[j]=【】;j++;}

d[j]=0;

25.有以下程序段:

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

b=p[5];

b中的值是【】。

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

main()

{int=0;

while(n++<=1);

printf("%d,",n);

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

}

27.閱讀下列程序,則程序的輸出結(jié)果為【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

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

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

29.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

30.多媒體計算機所用的CD-ROM是【】。

31.在最壞情況下,冒泡排序所需要的比較次數(shù)為【】。

32.在面向?qū)ο蠓椒ㄖ?,類的實例稱為______。

33.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊列都屬于【】。

34.存儲300個16×16點陣的漢字信息需要【】字節(jié)。

35.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];.

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

printf("");

}

36.模式/內(nèi)模式映射為數(shù)據(jù)庫提供了【】數(shù)據(jù)獨立性。

37.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度。請?zhí)羁铡?/p>

FILE*myf;longf1;

myf=【】("test,t","rb");

fseek(myf,0,SEEK_END);f1=ftell(myf);

fclose(myf);

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

38.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

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

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

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

}

40.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個字符放到buf字符數(shù)組中,函數(shù)返回值為______。

三、1.選擇題(20題)41.有以下程序:#include<stdio.h>unionpw{inti;charch[2];}a;main(){a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);}程序的輸出結(jié)果是()。

A.13B.14C.208D.209

42.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序運行后的輸出結(jié)果是

A.錯誤信息B.666C.888D.666,888

43.有以下程序段

intj;floaty;charname[50];

scanf("%2d%f%s",&j,&y,name);

當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為

A.55566.0B.566.0C.7777.0D.566777.0

44.下列程序的輸出結(jié)果是______。intm=10;intfun(inta,intB){intm=2;return(a*b-m);}main(){intx=7,y=5;printf("%d\n",fun(x,y)%m);}

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

45.信息隱蔽的概念與下述______概念直接相關(guān)。

A.軟件結(jié)構(gòu)定義B.模塊獨立性C.模塊類型劃分D.模擬耦合度

46.下列程序的運行結(jié)果是()。#include<stdio.h>voidfun(int*s,int*p){staticintt=3;*p=s[t];t--;}voidmain(){inta[]={2,3,4,5},k,x;for(k=0;k<4;k++){fun(a,&x);printf("%d,",x);}}

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

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

A.fseek(位移量,起始點,文件類型指針);

B.fseek(文件類型指針,位移量,起始點);

C.fseek(文件類型指針,起始點,位移量);

D.fseek(起始點,位移量,文件類型指針);

48.以下程序的輸出結(jié)果是()。main()chara[10]={'1','2','3','4','5','6','7','8','9','\0'),*p;{inti;i=8;p=a+i;printf("%s\n",p-3);}

A.6B.6789C.'6'D.789

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

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

50.函數(shù)rewind的作用是

A.使文件位置指針重新返回文件的開始位置

B.將文件位置指針指向文件中所要求的特定位置

C.使文件位置指針指向文件的末尾

D.使文件位置指針自動移至下一個字符位置

51.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

52.設(shè)有定義:inta=2,b=3,c=4;,則下列選項中值為0的表達式是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

53.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0‖k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為

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

54.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運行后的輸出結(jié)果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*1=22*2=43*1=33*2=63*3=9

55.有以下程序#include<stringh>main(intargc,char*argv[]){inti,len=0;fot(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}經(jīng)編譯連接后生成的可執(zhí)行文件是ex.exe,若運行時輸入以下帶參數(shù)的命令行exabcdefgh3k44執(zhí)行后輸出結(jié)果是

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

56.在下列關(guān)于二叉樹的敘述中,正確的一項是

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

B.二叉樹的度為2

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

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

57.有定義語句:intx,y;若要通過scanf("%d,%do,&x,&y);語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是

A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>

58.有下列程序:#include<stdio.h>main(){inta=6,b=7,m=1;switch(a%2){case0:m++;break;case1:m++;switch(b%2){defaut:m++;case0:m++;break;}}printf("%d\n",m);}程序運行后的輸出結(jié)果是()。

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

59.進行二分法查找,則線形表______。

A.必須以順序方式存儲

B.必須以鏈接方式存儲,且數(shù)據(jù)元素已按值排好序

C.必須以鏈接方式存儲

D.必須以順序方式存儲,且數(shù)據(jù)元素已按值排好序

60.設(shè)有如下定義:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正確的賦值語句是

A.p=&data.n;

B.*p=data.n;

C.p=(structsk*)&data.n;

D.p=(structsk*)data.n:

四、選擇題(20題)61.

62.有以下程序:

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

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

63.

若有以下程序段,w和k都是整型變量:

w=k:

LB:if(w==0)gotoLE;

W--:

printf("*")

gotoLB;

LE;

則不能與上面程序段等價的循環(huán)語句是()。

A.for(w=k;w!=0;w--)printf("*");

B.for(w=k;w;--w)printf("*");

C.w=k;while(w--!=0)printf("*");

D.w=k:w++;do{w--;printf("*");}while(w!=0);

64.數(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)系

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

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

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

C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)

D.以上三種說法都不對

66.(33)分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是______。

A.分布式

B.數(shù)據(jù)冗余

C.數(shù)據(jù)分布性和邏輯整體性

D.位置透明性和復制透明性

67.

68.

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

#include<stdio.h>

voidfun(int*S,int*p)

{staticintt=3:

*p=s[t];

t--;

}

voidmain

{inta[]={2,3,4,5),k;

intx;

for(k=0,k<4,k++)

{fun(a,&x);

printf("%d,",x);

}

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

70.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運行后輸出結(jié)果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

71.

72.

73.對線性表進行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈式方式存儲,并按關(guān)鍵碼值排好序

D.線性表以鏈式方式存儲,并按關(guān)鍵碼的檢索頻率排好序

74.右兩個關(guān)系R和S如下:

則由關(guān)系R得到關(guān)系S的操作是()。A.自然連接B.并C.選擇D.投影

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

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

76.若a是數(shù)值類型,則邏輯表達式(a==1)||(a!=1)的值是()。

A.0B.1C.2D.不知道a的值,不能確定

77.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點的單向鏈表結(jié)構(gòu),指針變量s、P、q、均已正確定義,并用于指向鏈表結(jié)點,指針變量s總是作為頭指針指向鏈表的第一個結(jié)點。該程序段實現(xiàn)的功能是()。

A.首結(jié)點成為尾結(jié)點B.尾結(jié)點成為首結(jié)點C.刪除首結(jié)點D.刪除尾結(jié)點

78.程序調(diào)試的目的是

A.發(fā)現(xiàn)程序中的錯誤B.改正程序中的錯誤C.驗證程序的正確性D.改善軟件的性能

79.以下函數(shù)返回a所指數(shù)組中最大值所在的下標值

fun(int*a,intn)

{

inti,j=0,p;

p=j;

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

if(a[i

溫馨提示

  • 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

提交評論