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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運算合法的是()。

A.R∩SB.R∪SC.R-SD.R×S

2.兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為()。

A.耦合度B.內(nèi)聚度C.復(fù)雜度D.數(shù)據(jù)傳輸特性

3.設(shè)有定義“intx[10],*p=x,i;”,若要為數(shù)組x讀入數(shù)據(jù),以下選項正確的是()。

A.for(i=0;i<10;i++)scanf(“%d”,p+i);

B.for(i=0;i<10;i++)scanf(“%d”,*p+i);

C.for(i=0;i<10;i++)scanf(“%d”,*(p+i));

D.for(i=0;i<10;i++)scanf(“%d”,x[i]);

4.設(shè)有6個結(jié)點的無向圖,該圖至少應(yīng)有()條邊才能確保是一個連通圖。

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

5.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)

6.下列程序的執(zhí)行結(jié)果是()。#include<stdioh>main{inta,b,c;a=b=2,c=I;c=(a++)-1;printf("%d,0Ad",a,c);c+=-a+++(++b);printf("%d,%d",a,c);)A.3,14,1B.3,14,2C.2,04,1D.2,14,1

7.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}輸出結(jié)果是()。A.28B.27C.42D.41

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

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

9.若有定義“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。

A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;

10.若有定義“charch;inta;doubled;”,當(dāng)輸入為12345678910.36時,以下選項中能給各個變量正確賦值的是()。

A.scanf(“%d%c%lf”,&a,&ch,&d);

B.scanf(“%5d%2c%7.2lf”,&a,&ch,&d);

C.scanf(“%d%c%lf”,a,ch,d);

D.scanf(“5d%2c%7.2lf%”,&a,&ch,&d);

11.有以下程序:#include<stdio.h>main(){chars[]={“012xy”;inti,n=0;for(i=0;s[i]|=0;i++)if(s[i]>=‘a(chǎn)’&&s[i]<=‘z’)n++;printf(“%d\n”,n);}程序的運行結(jié)果是()。

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

12.輸出語句“printf(“%d\n”,11+011);”的輸出結(jié)果是()。

A.20B.22C.022D.021

13.任何一棵二叉樹的葉子結(jié)點在前序、中序和后序遍歷序列中的相對次序()。

A.不發(fā)生改變B.發(fā)生改變C.不能確定D.以上都不對

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

A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型

B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針

C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員

D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值

15.有兩個關(guān)系R和T如下:

則由關(guān)系R得到關(guān)系T的操作是()。A.選擇B.投影C.交D.并

16.有三個關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并

17.

18.設(shè)有一個二維數(shù)組A[m][n],假設(shè)A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個元素占一個空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進制表示)。

A.688B.678C.692D.696

19.以下關(guān)于算法的敘述中錯誤的是()。

A.算法可以用偽代碼、流程圖等多種形式來描述

B.一個正確的算法必須有輸入

C.一個正確的算法必須有輸出

D.用流程圖描述的算法可以用任何一種計算機高級語言編寫成程序代碼

20.if語句的基本形式是:if(表達式)語句,以下關(guān)于“表達式”值的敘述中正確的是A.A.必須是邏輯值

B.必須是整數(shù)值

C.必須是正數(shù)

D.可以是任意合法的數(shù)值

二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是【】。

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

22.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

23.設(shè)有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運行后,如果從鍵盤上輸入1298,則輸出結(jié)果為

24.有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點a之后的語句是【】。

structnode

{chardata;

structnode*next;}a,b

25.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。

26.面向?qū)ο蟮哪P椭?,最基本的概念是對象和______。

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

#include<stdio.h>

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

}

28.線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。隊列是一種特殊的線性表,循環(huán)隊列是隊列的【】存儲結(jié)構(gòu)。

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

30.若x為血類型,請寫出與!x等價的C語言表達式______。

31.有以下程序:

main()

{charstr[]="xyz",*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)puts(ps);

}

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

32.數(shù)據(jù)模型按不同應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

33.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個正數(shù)且要求m>n。

例如:m=12,n=8時,運行結(jié)果應(yīng)該是495.000000。請在題目的空白處填寫適當(dāng)?shù)某绦蛘Z句,將該程序補充完整。

#include<conio.h>

#include<stdio.h)

floatfun(intm,intn)

{inti;

doublep=1.0;

for(i=1;i<=m;i++)【】;

for(i=1;i<=n;i++)【】;

for(i=1;i<=m-n;i++)p=p/i;

returnP;}

main()

{clrscr();

printf("p=%f\n",fun(12,8));}

34.以下程序運行后輸入3,abcde<回車>,則輸出結(jié)果是【】。

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(S);

for(i=1;i<=n;i++)move(s,z);

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

}

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

}

36.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運行時輸入:1234<回車>,程序的輸出結(jié)果是【】。

37.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

38.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135,則輸出531,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intn,s;

printf("Enteranumber:");scanf("%d",&n);

printf("Output:");

do

{s=n%10;printf("%d",s);();}

while(n!=0);

printf("\n");

}

39.如果一個工人可管理多個設(shè)施,而一個設(shè)施只可被一個工人管理,則實體“工人”與實體“設(shè)備”之間存在【】聯(lián)系。

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\N,*p,*q))

}

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

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

B.floatx[2][]={{1},{2),{3}};

C.longs[2][3]={{1},{1,2},<1,2,3}};

D.doublet[][3]={0};

42.有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstrl[100]=“abcddfefdbd”,c=‘d’;ss(strl,c);printf(“%s\n”,strl);}程序運行后的輸出結(jié)果是

A.ABCDDEFEDBDB.abeDDfefDbDC.abcAMefAbAD.Abcddfefdbd

43.若已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97";C.c=97;D.c="a";

44.結(jié)構(gòu)化程序設(shè)計方法在軟件開發(fā)中用于______。

A.需求分析B.詳細設(shè)計C.可行性分析D.程序設(shè)計

45.在計算機中,算法是指()。

A.查詢方法B.加工方法C.解題方案的準(zhǔn)確而完整的描述D.排序方法

46.有以下程序structSTU{charnum[10];floatscore[3];};main(){stmctSTUs[3]={{“20021”,90,95,85},{“20022”,95,80,75},{“20023”,100,95,90}},*p=s;inti;floatsum=0;for(i=0;i<3;i++)sum=sum+p->score[i];printf(“%6.2f\n”,sum);}程序運行后的輸出結(jié)果是

A.260B.270C.280D.285

47.下列程序段中,不能正確賦值的是

A.char*p,ch;p=&ch;scanf("%c,&p")

B.char*p;p=(char*)malloc(1);scanf("%c",p);

C.char*p;*p=getchar();

D.char*p,ch;p=缸h;*p=getchar();

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

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

49.有以下程序段:typedefstructNODE{intnum;structNODE*next;}OLD;以下敘述中正確的是()。

A.以上的說明形式非法B.NODE是一個結(jié)構(gòu)體類型C.OLD是一個結(jié)構(gòu)體類犁D.OLD是一個結(jié)構(gòu)體變量

50.下面()不是軟件調(diào)試的主要方法?

A.搜索法B.原因排除法C.回溯法D.強行排錯法

51.設(shè)x,y均為int型變量,且x=10,y=3,則printf("%d,%d\n",x-,-y);語句的輸出結(jié)果是______。

A.10,3B.9,3C.9,2D.10,2}

52.下列寫法正確的是()。

A.main(){inti=3,j;j=5}

B.main(){inti=3;

C.main()

D.main(){;}

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

A.確認測試B.需求測試C.驗證測試D.路徑測試

54.在C語言中,引用數(shù)組元素時,其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是()

A.整型常量B.整型表達式C.整型常量或整型表達式D.任何類型的表達式

55.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

56.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。

A.控制程序的執(zhí)行順序B.模塊之間的調(diào)用關(guān)系C.數(shù)據(jù)的流向D.程序的組成成分

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

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

58.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

59.以下選項中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

60.有以下程序main()intx[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)for{j=4;j<7-i;j++)if{x[j]>x[j+1]){k=x[j];x[j]=x[j+l];x[j+l]=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n');}程序運行后的輸出結(jié)果是

A.75310246B.1234567C.76310462D.13570246

四、選擇題(20題)61.有以下程序運行時,‘若輸入l23450<回車>,則輸出結(jié)果是()。

A.6566456B.66656C.66666D.6666656

62.有以下程序:main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}

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

63.URI的全稱是()。A.標(biāo)準(zhǔn)資源描述符B.標(biāo)準(zhǔn)資源標(biāo)識符C.通用資源描述符D.統(tǒng)一資源標(biāo)識符

64.有以下程序:則以下函數(shù)調(diào)用語句錯誤的是()。.

A.k=f(a,B.;B.k=add(a,B.;C.k=(*f)(a,B.;D.k={f(a,B.;

65.

66.

67.設(shè)有定義"doublea[10],*s=a;",以下能夠代表數(shù)組元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

68.

69.

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

#include<stdio.h>

main()

{inti;

for(i=1;i<=5;i++)

switch(i%5)

{case0:printf("*");break;

case1:printf("#");break;

default:printf("\n");

case2:printf("&");

}

}

A.&#B.#&C.#&D.&

**&#

&**

71.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

72.有以下程序程序執(zhí)行后的輸出結(jié)果是()

A.60B.50C.45D.55

73.設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產(chǎn)生錯誤信息的是

74.

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

main

{inta=3:

printf("%d\n",(a+a-=a*a));

}

A.-6B.12C.0D.-12

75.有三個關(guān)系R,S和T如下:

其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并

76.有以下程序:

#include<stdio.h>

main()

{inta=-2,b=0;

while(a++++b);

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

}

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

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

77.以下關(guān)于retllm語句的敘述中正確的是()。

A.一個自定義函數(shù)中必須有一條return語句

B.一個自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條retum語句

C.定義成void類型的函數(shù)中可以有帶返回值的return語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時不能返回到調(diào)用處

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

A.數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的核心

B.數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員三部分組成

C.數(shù)據(jù)共享最好的是數(shù)據(jù)庫系統(tǒng)階段

D.數(shù)據(jù)庫中的數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序

79.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+C—k值的類型為:()。

A.intB.doubleC.floatD.char

80.第

11

若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

五、程序改錯題(1題)81.下列給定程序中函數(shù)proc()的功能是計算1/n!的值。例如,給n輸入3,則輸出0.166667。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.n個人的成績存放在score數(shù)組中,請編寫函數(shù)proc(),它的功能是將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分數(shù)放在down所指的數(shù)組中。例如,當(dāng)score數(shù)組中的數(shù)據(jù)為{99,80,40,56,59,84,60,76,100}時,函數(shù)返回的人數(shù)應(yīng)該是4,down中的數(shù)據(jù)應(yīng)為40565960。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D本題給出的兩個關(guān)系R與S的表結(jié)構(gòu)是不同的(R是二元關(guān)系,S是三元關(guān)系),它們不能進行∩、∪、一運算。而兩個不同結(jié)構(gòu)的關(guān)系是可以進行笛卡兒積(×)運算的。

2.A解析:本題考核模塊獨立性的評價。評價模塊獨立性的主要標(biāo)準(zhǔn)有兩個;一是模塊之間的耦合,它表明兩個模塊之間互相獨立的程度,也可以說是兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度(所以,本題的正確答案為選項A);二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨立,而要求模塊的內(nèi)聚程度盡量地高。

3.AC語言中scanf函數(shù)的聲明為“scanf(“<格式化字符串>”,<地址表>);”,可知scanf的第2個參數(shù)是地址。因此,從4個答案中可以判斷,只有選項A是p[i]的地址,其他的均是變量本身。故本題答案為A選項。

4.B

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

6.A本題主要考查自加減運算符(++,--)的使用。①如果作為前綴變量“++a,--a”,在使用a之前,先使a的值加1或者減1,再使用表達式的值參與運算;②后綴變量“a++,a--”,先使用表達式的值參與運算,在使用a之后,再使i的值加1或者減1。在本題中計算表達式c=(a++)-1時先使用a的值進行計算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此句后l3-的值是3;表達式c+=-a+++(++b)也可寫成C=c+(一a++)+(++b),c=1+(一3)+3=1,此時a=4,b=3。

7.C只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。

8.B

9.B運算符“%”為二元運算符,具有左結(jié)合性,參與運算的量均為整型。B選項中的變量a是double型,不符合規(guī)定。故本題答案為B選項。

10.Ascanf是格式輸入函數(shù),其中雙引號之間的內(nèi)容是格式控制字符串,后面是輸入?yún)?shù)列表。輸入?yún)?shù)列表中各項都必須是變量地址,所以選項C錯誤;在scanf函數(shù)的格式字符前,可以加入一個正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以對實數(shù)指定小數(shù)位的寬度,所以選項B、D錯誤。選項A是正確的,按照A的輸入格式,12345賦值給變量a,空格賦值給變量ch,678910.36賦值給變量d。故本題答案為A選項。

11.B程序首先給字符數(shù)組s賦值為“012xy”。for循環(huán)語句的功能是遍歷字符串,通過if條件語句對字符串中的小寫字母進行計數(shù),字符串中小寫字母個數(shù)為2,即n=2。故本題答案為B選項。

12.A“printf(“%d\\n”,11+011);”中,“11”為十進制數(shù),“011”為八進制數(shù),%d表示以十進制格式輸出。因此,先將八進制數(shù)轉(zhuǎn)化為十進制數(shù),即(011)8=81×1+1×80=(9)10,相當(dāng)于“printf(“%d\\n”,11+9)”,輸出結(jié)果為20。故本題答案為A選項。

13.A

14.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。

15.A

16.C由圖所知,其中,C中只有一個屬性,是除操作。

17.D

18.C

19.B【答案】B

【知識點】算法描述

【解析】一個算法應(yīng)該有0個或多個輸入,但是必須有一個或多個輸出。

20.D

21.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:

類型說明符*指針變量名;

22.存儲結(jié)構(gòu)

23.89218921

24.a.next=aba.next=ab解析:選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應(yīng)該是p->next=&b;在選項D)中,用*運算符取出結(jié)構(gòu)體變量,并且保存的就是b的地址。

25.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。

26.類類

27.77解析:程序中經(jīng)過宏替換后,表達式t=MAX(a+b,c+d)*10變?yōu)閠=(a+b)>(c+d)?(a+b):(c+d)*10。因為(a+b)>(c+d)為真,所以t=(a+b),輸出結(jié)果為7。

28.順序順序解析:線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。當(dāng)隊列用鏈?zhǔn)酱鎯Y(jié)構(gòu)實現(xiàn)時,就稱為鏈隊列;當(dāng)隊列用順序存儲結(jié)構(gòu)實現(xiàn)時,就稱為循環(huán)表。因此,本題劃線處應(yīng)填入“順序”。

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

30.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。

31.zyzXyzzyzXyz解析:本題考查字符型指針變量的應(yīng)用。程序中字符指針變量ps指向字符串'xyz',while循環(huán)語句的作用使ps指向字符串結(jié)尾,for循環(huán)的執(zhí)行過程如下。

第一次循環(huán):ps指向字符串'z',輸出z。

第二次循環(huán):ps指向字符串'yz',輸出yz。

第三次循環(huán):ps指向字符串'xyz',輸出xyz。

32.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。

33.p=p*Ip=p/ip=p*I\r\np=p/i解析:本題中,欲求p的值,需要先求m,n,m-n的階乘值,可用循環(huán)語句實現(xiàn)。

34.cdeabcdeab解析:本題move()函數(shù)的作用,是將形參s仕所指地址的連續(xù)n位循環(huán)右移1位,即讓str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函數(shù)中用了一個for循環(huán)調(diào)用move()函數(shù),共循環(huán)3次,所以數(shù)組s被循環(huán)右移了3位,故最后輸出的值為cdeab。

解析:本題,已知結(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。

36.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

37.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

38.n/=10n/=10解析:正整數(shù)按逆序輸出,即從低位到高位順序取出該正整數(shù)個數(shù)位的值輸出?!皊=n%10”為除10取余,第一次循環(huán)取出該正整數(shù)小數(shù)位,為順序移位,該空應(yīng)為n/=10。

39.一對多或1:N實體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關(guān)聯(lián)。兩個實體間的聯(lián)系可以歸結(jié)為三種類型:一對一聯(lián)系表現(xiàn)為某一實體與另一實體一一對應(yīng)相關(guān)聯(lián);一對多聯(lián)系表現(xiàn)為某一實體與相關(guān)多個實體相關(guān)聯(lián);多對多聯(lián)系表現(xiàn)為多個實體與相關(guān)多個實體相關(guān)聯(lián)。

40.3535解析:函數(shù)swap(int*a,int*b)的功能是實現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。

41.D解析:A、B、C項均存在行或列上賦初值越界問題,所以都不正確。

42.B解析:本題中的函數(shù)ss()有兩個參數(shù),一個是字符型指針變量s;另一個是字符型變量t。在函數(shù)中通過一個while循環(huán),在循環(huán)中一次取出e指向的字符串并判斷它是否和t中存放的字符相同,若相等,則執(zhí)行“*s=t-'a'+'A';”(若是小寫字母,則把它轉(zhuǎn)換成大寫字母)語句。在主函數(shù)中執(zhí)行函數(shù)調(diào)用ss(strl,c),很顯然是把stfl數(shù)組中所有字符“d”變成大寫字母,其他字符不變。

43.C解析:C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。一個字符數(shù)據(jù)既可以字符形式輸出,也可以整數(shù)形式輸出,所以把整型數(shù)據(jù)賦給字符型變量,直接用c=97即可,所以選項C)正確。由于題目要求選出正確的語句,選項A)少分號,不能構(gòu)成語句,因此錯誤。B)、D)是將一個字符串賦給一個字符變量,所以錯誤。

44.B

45.CC。【解析】計算機算法是指解題方案的準(zhǔn)確而完整的描述,它的基本特征分別是:可行性、確定性、有窮性和擁有足夠的情報。

46.B解析:程序中首先定義了一個結(jié)構(gòu)體,其成員為一字符數(shù)組和一浮點型數(shù)組。在main()首先定義了一個結(jié)構(gòu)體數(shù)組并初始化。接下來在for循環(huán)中遍歷了結(jié)構(gòu)體數(shù)組中的第一個元素中數(shù)組成員即{20021“,90,95,85”}循環(huán)結(jié)果為90+95+85=270最后sum為270,又輸出格式為“%6.2f\\n”要求保留兩位小數(shù)故最后輸出為270.00。

47.C解析:本題考查了字符的輸入函數(shù)getchax和利用scanf函數(shù)輸入一個字符。用scanf輸入字符時,格式說明字符應(yīng)該為%c。本題選項C)因為指針P沒有賦初值,所以是一個不定值,不能直接將getchar讀入的字符賦給指針p所指向的字符,所以選項C錯誤。

48.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)系。

49.C解析:將題目中的定義語句去掉前面的typedef和后面的OLD(分號保留),就是一條完整的結(jié)構(gòu)體定義語句,其中struct是說明符,NODE是結(jié)構(gòu)體名,大括號里面的是結(jié)構(gòu)體成員的定義。此時要聲明該結(jié)構(gòu)體變量時需要使用struct加結(jié)構(gòu)體名.起來聲明,structNODE一起構(gòu)成一個結(jié)構(gòu)體類型,就好像字符類型char。若只去掉前面的typedcf,就是一條結(jié)構(gòu)體定義同時聲明一個結(jié)構(gòu)體變量OLD的語句,因為OLD的前面部分是structNODE的完整寫法,可以看作是structNODE。C語言允許用typedef說明一種新類型名,其語法格式為:

typedef類型名標(biāo)識符;

以后就可以用該標(biāo)識符來代替被說明的類型名了。因此,當(dāng)前面存在typedef時,該語句就變成了給structNODE的完轄寫法定義一個新的名稱OLD。所以,此時的OLD是一個結(jié)構(gòu)體類型,它相當(dāng)于structNODE,即可以和char一樣單獨用來聲明該結(jié)構(gòu)體變量,而NODE只是一個結(jié)構(gòu)體名,不能單獨用來聲明變量。所以,4個選項中C符合題意。

50.A

51.D解析:C語言的自減運算符有前置與后置兩種形式。當(dāng)自減運算符前置時,變量先自減一后再參與表達式運算;而后置時,變量先參與表達式運算后再自身減一。

52.D解析:本題考查語句的基本構(gòu)成。選項A)中j=5后面少了一個分號:選項B)中少了“}”;選項C)不是一個完整的函數(shù)定義格式,一個完整的函數(shù)定義格式還包括一對花括號:選項D)正確,是一個空語句。

53.AA)【解析】確認測試的任務(wù)是驗證軟件的功能和性能,以及其他特性是否滿足需求規(guī)格說明中確定的各種需求。

54.C解析:C語言規(guī)定只能逐個引用數(shù)組元素而不能一次引用整個數(shù)組,數(shù)據(jù)元素的表示形式為數(shù)組名[下標(biāo)],下標(biāo)可以是整型常量或整型表達式。

55.C算法具有的5個特性是:有窮性、確定性、可行性、有0個或多個輸入、有一個或多個輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。

56.C解析:數(shù)據(jù)流相當(dāng)于一條管道,并有一級數(shù)據(jù)(信息)流經(jīng)它。在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外部實體流向系統(tǒng)或從系統(tǒng)流向外部實體。

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

58.AB選項中運算符“%”的運算對象為整數(shù)。C選項中不能將變量賦給表達式“x+n”。D選項中不能將表達式“4+1”賦給常量5。故本題答案為A選項。

59.C解析:C語言中字符常量是以單引號括起來的單個字符,或為以“\\”與三位八進制數(shù)值或兩位十六進制數(shù)值代替單個字符。

60.A解析:主函數(shù)中定義了一個整型數(shù)組x,并初始化.接著執(zhí)行了一個二重for循環(huán),在該二重循環(huán)的作用是將數(shù)組的前4個元素按從大到小排序,接著用了一個;重循環(huán)(也是冒泡算法)將數(shù)組的后4個元素按從小到大的順序排序,故最后依次輸出數(shù)組的個元素的值為75310246,所以,4個選項中選項A符合題意。

61.A第一次循環(huán)輸出65;然后s接收到2,第二次循環(huán)輸出6;。接收到3,第三次循環(huán)輸出64;接收到4,第四次循環(huán)輸出5;接收到5,第五次循環(huán)輸出6;接收到0,結(jié)束循環(huán),所以答案為A):

62.B解析:本題定義了一維數(shù)組a和兩個指針變量。指針變量p的初值為第4個數(shù)組元素的地址,指針變量q的初值為,第6個數(shù)組元素的地址。*p+*q=4+6=10。

63.D

64.Ds與()的優(yōu)先級,()的優(yōu)先級高于*,因為(+f)()定義函數(shù)指針f。f指向函數(shù)的指針。f=add,將函數(shù)8dd()的首地址賦給指針f,所以調(diào)用函數(shù)add()可以寫為f(),其返回值是整型,不是指針類型,不能用t取指針指向的內(nèi)存單元的數(shù)據(jù),故k=*f(a,b)的調(diào)用方式錯誤。答案為D選項。

65.B

66.C

67.B\n用帶下標(biāo)的指針變量引用一維數(shù)組元素若有以下定義和語句:“int*P,s[10],i;P=s}”,且o≤i<10,可以用&.s[i]、s+i和p+i三種表達式來表示s[i]的地址。同時可以用s[i]、*(s+i)和*(p+i)三種表達式來表示數(shù)組元素s[i]。

\n

68.B

69.A

70.Afor循環(huán)語句嵌套一個switch語句;i=1,i%5=1,執(zhí)行case1,遇到break退出switch語句,i=2,i%5=2,執(zhí)行case2,i=3,i%5=3,執(zhí)行default語句,然后執(zhí)行case2……

71.B當(dāng)n為9時,此時if語句成立,執(zhí)行n++后,n為10,因此輸出n的值為10,故選擇B選項。

72.A函數(shù)fun的功能是求數(shù)組的n個元素之和。fun(a,5)=15。由于s岫是靜態(tài)局部變量,所以保持l5不變,fun(b,4)=45,所以s=fun(a,5)+fun(b,4)=60。

73.C本題主要考查if結(jié)構(gòu)。程序要求選擇編譯時產(chǎn)生錯誤信息的一個選項,下面分別來分析題目中的四個選項。

在選項A中,由于變量x已經(jīng)被正確定義且賦了初值,不管x++的結(jié)果為零或者非零,程序都不會報錯。

在選項B中,條件判斷語句“x>y&&y!=0”的運算過程等價于“((x>y)&&y)!=0”,不管結(jié)果為何值,程序編譯時不會報錯。

在選項C中,程序看起來沒有錯,但我們仔細看會發(fā)現(xiàn),在語句x--后面缺少一個語句結(jié)束符——分號,因此,在編譯時系統(tǒng)會報錯。

在選項D中,語句{;}可能會讓一些人產(chǎn)生誤解,覺得是錯誤的,其實它是一種典型的正確格式,只是沒有內(nèi)容,但不是錯誤的語句,能通過編譯。

在程序編譯時報錯的一般都是書寫格式的問題,程序的邏輯錯誤編譯時很少被檢測出來。

74.D

\n本題可以寫成:a+a+(a-(a*a)),所以*的優(yōu)先級最高,其次是-=的,+的優(yōu)先級最低,因此先求a-=a*a=9,表達式變?yōu)閍+a+-=9,a即a=a-9=-6,再次變?yōu)閍+(-6)=-12,故選擇D選項。

\n

75.D

76.D\n輸出的結(jié)果是:-1,1

\n0,2

\n1,2

\n

77.B在函數(shù)中允許有多個IettLrll語句,但每次調(diào)用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,c選項描述錯誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會自動返回到調(diào)用處,A、D選項描述錯誤。因此B選項正確。

78.B\n數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,它位于用戶和操作系統(tǒng)之間,屬于系統(tǒng)軟件。數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五部分組成。數(shù)據(jù)庫技術(shù)的發(fā)展經(jīng)歷了3個階段,人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)共享最好的是數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)庫中的數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序。

\n

79.B雙目運算中兩邊運算量類型轉(zhuǎn)換規(guī)律:

運算數(shù)1\t\t\t\r\n\t\t\t\t\t運算數(shù)2\t\t\t\t\r\n\t\t\t\t\t轉(zhuǎn)換結(jié)果類型\t\t\t\t\r\n\t\t\t\t\t短整型\t\t\t\t\r\n\t\t\t\t\t長整型\t\t\t\t\r\n\t\t\t\t\t短整型一>長整型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t長整型\t\t\t\t\r\n\t\t\t\t\t整型一>長整型\t\t\t\t\r\n\t\t\t\t\t字符型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t字符型一>整型\t\t\t\t\r\n\t\t\t\t\t有符號整型\t\t\t\t\r\n\t\t\t\t\t無符號整型\t\t\t\t\r\n\t\t\t\t\t有符號整型一>無符號整型\t\t\t\t\r\n\t\t\t\t\t整型\t\t\t\t\r\n\t\t\t\t\t浮點型\t\t\t\t\r\n\t\t\t\t\t整型一>浮點型\t\t\t\t\r\n\t在a/b的時候,a,b的類型不一致,根據(jù)類型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類型,之后的加、減類似。轉(zhuǎn)化規(guī)則為char,short一>int->unsigned->long->double←float。

80.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達式對字符數(shù)組賦值,如下面的語句就是非法的:str1='China',如果想把“China”這5個字符放到數(shù)組str1中,除了逐個輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復(fù)制到一字符數(shù)組中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給str1):str1=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長度不應(yīng)小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(str1),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

81.(1)錯誤:intproc(intn)

正確:doubleproc(intn)

(2)錯誤:t*=rl++;

正確:t*=n--

【解析】由主函數(shù)中的函數(shù)調(diào)用以及函數(shù)proc()中的返回值可知,函數(shù)proc()的返回值類型為double型,因此,“intproc(intn)”應(yīng)改為“doubleproc(intrl)”;題目要求計算1/n!的值,整數(shù)n的階乘為整數(shù)1到n相乘,因此,“t*=n++;”應(yīng)改為“t*=n——;”。

82.

【解析】要找到所有學(xué)生中成績低于平均分數(shù)的人數(shù),首先需要算出所有學(xué)生的平均成績。然后將所有學(xué)生的成績與平均成績相比較。將低于平均分數(shù)學(xué)生的記錄存放在新的數(shù)組中,并將低于平均分數(shù)的學(xué)生數(shù)返回給主函數(shù)。

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

一、單選題(20題)1.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運算合法的是()。

A.R∩SB.R∪SC.R-SD.R×S

2.兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為()。

A.耦合度B.內(nèi)聚度C.復(fù)雜度D.數(shù)據(jù)傳輸特性

3.設(shè)有定義“intx[10],*p=x,i;”,若要為數(shù)組x讀入數(shù)據(jù),以下選項正確的是()。

A.for(i=0;i<10;i++)scanf(“%d”,p+i);

B.for(i=0;i<10;i++)scanf(“%d”,*p+i);

C.for(i=0;i<10;i++)scanf(“%d”,*(p+i));

D.for(i=0;i<10;i++)scanf(“%d”,x[i]);

4.設(shè)有6個結(jié)點的無向圖,該圖至少應(yīng)有()條邊才能確保是一個連通圖。

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

5.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)

6.下列程序的執(zhí)行結(jié)果是()。#include<stdioh>main{inta,b,c;a=b=2,c=I;c=(a++)-1;printf("%d,0Ad",a,c);c+=-a+++(++b);printf("%d,%d",a,c);)A.3,14,1B.3,14,2C.2,04,1D.2,14,1

7.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}輸出結(jié)果是()。A.28B.27C.42D.41

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

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

9.若有定義“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。

A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;

10.若有定義“charch;inta;doubled;”,當(dāng)輸入為12345678910.36時,以下選項中能給各個變量正確賦值的是()。

A.scanf(“%d%c%lf”,&a,&ch,&d);

B.scanf(“%5d%2c%7.2lf”,&a,&ch,&d);

C.scanf(“%d%c%lf”,a,ch,d);

D.scanf(“5d%2c%7.2lf%”,&a,&ch,&d);

11.有以下程序:#include<stdio.h>main(){chars[]={“012xy”;inti,n=0;for(i=0;s[i]|=0;i++)if(s[i]>=‘a(chǎn)’&&s[i]<=‘z’)n++;printf(“%d\n”,n);}程序的運行結(jié)果是()。

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

12.輸出語句“printf(“%d\n”,11+011);”的輸出結(jié)果是()。

A.20B.22C.022D.021

13.任何一棵二叉樹的葉子結(jié)點在前序、中序和后序遍歷序列中的相對次序()。

A.不發(fā)生改變B.發(fā)生改變C.不能確定D.以上都不對

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

A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型

B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針

C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員

D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值

15.有兩個關(guān)系R和T如下:

則由關(guān)系R得到關(guān)系T的操作是()。A.選擇B.投影C.交D.并

16.有三個關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并

17.

18.設(shè)有一個二維數(shù)組A[m][n],假設(shè)A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每個元素占一個空間,問A[3][3](10)存放在什么位置()(腳注(10)表示用10進制表示)。

A.688B.678C.692D.696

19.以下關(guān)于算法的敘述中錯誤的是()。

A.算法可以用偽代碼、流程圖等多種形式來描述

B.一個正確的算法必須有輸入

C.一個正確的算法必須有輸出

D.用流程圖描述的算法可以用任何一種計算機高級語言編寫成程序代碼

20.if語句的基本形式是:if(表達式)語句,以下關(guān)于“表達式”值的敘述中正確的是A.A.必須是邏輯值

B.必須是整數(shù)值

C.必須是正數(shù)

D.可以是任意合法的數(shù)值

二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是【】。

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

22.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

23.設(shè)有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運行后,如果從鍵盤上輸入1298,則輸出結(jié)果為

24.有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點a之后的語句是【】。

structnode

{chardata;

structnode*next;}a,b

25.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。

26.面向?qū)ο蟮哪P椭?,最基本的概念是對象和______。

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

#include<stdio.h>

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

}

28.線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。隊列是一種特殊的線性表,循環(huán)隊列是隊列的【】存儲結(jié)構(gòu)。

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

30.若x為血類型,請寫出與!x等價的C語言表達式______。

31.有以下程序:

main()

{charstr[]="xyz",*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)puts(ps);

}

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

32.數(shù)據(jù)模型按不同應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

33.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個正數(shù)且要求m>n。

例如:m=12,n=8時,運行結(jié)果應(yīng)該是495.000000。請在題目的空白處填寫適當(dāng)?shù)某绦蛘Z句,將該程序補充完整。

#include<conio.h>

#include<stdio.h)

floatfun(intm,intn)

{inti;

doublep=1.0;

for(i=1;i<=m;i++)【】;

for(i=1;i<=n;i++)【】;

for(i=1;i<=m-n;i++)p=p/i;

returnP;}

main()

{clrscr();

printf("p=%f\n",fun(12,8));}

34.以下程序運行后輸入3,abcde<回車>,則輸出結(jié)果是【】。

#include<string.h>

move(char*str,intn)

{chartemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp;

}

main()

{chars[50];intn,i,z;

scanf("%d,%s",&n,s);

z=strlen(S);

for(i=1;i<=n;i++)move(s,z);

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

}

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

}

36.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運行時輸入:1234<回車>,程序的輸出結(jié)果是【】。

37.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

38.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135,則輸出531,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intn,s;

printf("Enteranumber:");scanf("%d",&n);

printf("Output:");

do

{s=n%10;printf("%d",s);();}

while(n!=0);

printf("\n");

}

39.如果一個工人可管理多個設(shè)施,而一個設(shè)施只可被一個工人管理,則實體“工人”與實體“設(shè)備”之間存在【】聯(lián)系。

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\N,*p,*q))

}

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

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

B.floatx[2][]={{1},{2),{3}};

C.longs[2][3]={{1},{1,2},<1,2,3}};

D.doublet[][3]={0};

42.有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstrl[100]=“abcddfefdbd”,c=‘d’;ss(strl,c);printf(“%s\n”,strl);}程序運行后的輸出結(jié)果是

A.ABCDDEFEDBDB.abeDDfefDbDC.abcAMefAbAD.Abcddfefdbd

43.若已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97";C.c=97;D.c="a";

44.結(jié)構(gòu)化程序設(shè)計方法在軟件開發(fā)中用于______。

A.需求分析B.詳細設(shè)計C.可行性分析D.程序設(shè)計

45.在計算機中,算法是指()。

A.查詢方法B.加工方法C.解題方案的準(zhǔn)確而完整的描述D.排序方法

46.有以下程序structSTU{charnum[10];floatscore[3];};main(){stmctSTUs[3]={{“20021”,90,95,85},{“20022”,95,80,75},{“20023”,100,95,90}},*p=s;inti;floatsum=0;for(i=0;i<3;i++)sum=sum+p->score[i];printf(“%6.2f\n”,sum);}程序運行后的輸出結(jié)果是

A.260B.270C.280D.285

47.下列程序段中,不能正確賦值的是

A.char*p,ch;p=&ch;scanf("%c,&p")

B.char*p;p=(char*)malloc(1);scanf("%c",p);

C.char*p;*p=getchar();

D.char*p,ch;p=缸h;*p=getchar();

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

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

49.有以下程序段:typedefstructNODE{intnum;structNODE*next;}OLD;以下敘述中正確的是()。

A.以上的說明形式非法B.NODE是一個結(jié)構(gòu)體類型C.OLD是一個結(jié)構(gòu)體類犁D.OLD是一個結(jié)構(gòu)體變量

50.下面()不是軟件調(diào)試的主要方法?

A.搜索法B.原因排除法C.回溯法D.強行排錯法

51.設(shè)x,y均為int型變量,且x=10,y=3,則printf("%d,%d\n",x-,-y);語句的輸出結(jié)果是______。

A.10,3B.9,3C.9,2D.10,2}

52.下列寫法正確的是()。

A.main(){inti=3,j;j=5}

B.main(){inti=3;

C.main()

D.main(){;}

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

A.確認測試B.需求測試C.驗證測試D.路徑測試

54.在C語言中,引用數(shù)組元素時,其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是()

A.整型常量B.整型表達式C.整型常量或整型表達式D.任何類型的表達式

55.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

56.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。

A.控制程序的執(zhí)行順序B.模塊之間的調(diào)用關(guān)系C.數(shù)據(jù)的流向D.程序的組成成分

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

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

58.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

59.以下選項中,非法的字符常量是______。

A.'\t'B.'\17'C.\nD.'\xaa'

60.有以下程序main()intx[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)for{j=4;j<7-i;j++)if{x[j]>x[j+1]){k=x[j];x[j]=x[j+l];x[j+l]=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n');}程序運行后的輸出結(jié)果是

A.75310246B.1234567C.76310462D.13570246

四、選擇題(20題)61.有以下程序運行時,‘若輸入l23450<回車>,則輸出結(jié)果是()。

A.6566456B.66656C.66666D.6666656

62.有以下程序:main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}

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

63.URI的全稱是()。A.標(biāo)準(zhǔn)資源描述符B.標(biāo)準(zhǔn)資源標(biāo)識符C.通用資源描述符D.統(tǒng)一資源標(biāo)識符

64.有以下程序:則以下函數(shù)調(diào)用語句錯誤的是()。.

A.k=f(a,B.;B.k=add(a,B.;C.k=(*f)(a,B.;D.k={f(a,B.;

65.

66.

67.設(shè)有定義"doublea[10],*s=a;",以下能夠代表數(shù)組元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

68.

69.

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

#include<stdio.h>

main()

{inti;

for(i=1;i<=5;i++)

switch(i%5)

{case0:printf("*");break;

case1:printf("#");break;

default:printf("\n");

case2:printf("&");

}

}

A.&#B.#&C.#&D.&

**&#

&**

71.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

72.有以下程序程序執(zhí)行后的輸出結(jié)果是()

A.60B.50C.45D.55

73.設(shè)變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產(chǎn)生錯誤信息的是

74.

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

main

{inta=3:

printf("%d\n",(a+a-=a*a));

}

A.-6B.12C.0D.-12

75.有三個關(guān)系R,S和T如下:

其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并

76.有以下程序:

#include<stdio.h>

main()

{inta=-2,b=0;

while(a++++b);

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

}

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

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

77.以下關(guān)于retllm語句的敘述中正確的是()。

A.一個自定義函數(shù)中必須有一條return語句

B.一個自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條retum語句

C.定義成void類型的函數(shù)中可以有帶返回值的return語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時不能返回到調(diào)用處

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

A.數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的核心

B.數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員三部分組成

C.數(shù)據(jù)共享最好的是數(shù)據(jù)庫系統(tǒng)階段

D.數(shù)據(jù)庫中的數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序

79.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+C—k值的類型為:()。

A.intB.doubleC.floatD.char

80.第

11

若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

五、程序改錯題(1題)81.下列給定程序中函數(shù)proc()的功能是計算1/n!的值。例如,給n輸入3,則輸出0.166667。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.n個人的成績存放在score數(shù)組中,請編寫函數(shù)proc(),它的功能是將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分數(shù)放在down所指的數(shù)組中。例如,當(dāng)score數(shù)組中的數(shù)據(jù)為{99,80,40,56,59,84,60,76,100}時,函數(shù)返回的人數(shù)應(yīng)該是4,down中的數(shù)據(jù)應(yīng)為40565960。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D本題給出的兩個關(guān)系R與S的表結(jié)構(gòu)是不同的(R是二元關(guān)系,S是三元關(guān)系),它們不能進行∩、∪、一運算。而兩個不同結(jié)構(gòu)的關(guān)系是可以進行笛卡兒積(×)運算的。

2.A解析:本題考核模塊獨立性的評價。評價模塊獨立性的主要標(biāo)準(zhǔn)有兩個;一是模塊之間的耦合,它表明兩個模塊之間互相獨立的程度,也可以說是兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度(所以,本題的正確答案為選項A);二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨立,而要求模塊的內(nèi)聚程度盡量地高。

3.AC語言中scanf函數(shù)的聲明為“scanf(“<格式化字符串>”,<地址表>);”,可知scanf的第2個參數(shù)是地址。因此,從4個答案中可以判斷,只有選項A是p[i]的地址,其他的均是變量本身。故本題答案為A選項。

4.B

5.A本題考查邏輯與運算“&&”與邏輯或

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論