2021年廣東省河源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第1頁
2021年廣東省河源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第2頁
2021年廣東省河源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第3頁
2021年廣東省河源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第4頁
2021年廣東省河源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年廣東省河源市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下述程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a。"are");strcpy(a[1],"you");a[o][3]=&;printf("%s\n",a);}A.are&youB.youC.areD.&

2.

3.

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

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

5.非線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。

A.一對多關(guān)系B.多對多關(guān)系C.多對一關(guān)系D.一對一關(guān)系

6.設(shè)有inta=15,b=240;,則表達(dá)式(a&b)&b||b的值為______。

A.0B.1C.真D.假

7.在圖采用鄰接表存儲時(shí),求最小生成樹的Prim算法的時(shí)間復(fù)雜度為()。

A.O(n)B.O(n+e)C.O(n2)D.O(n3)

8.下列敘述中正確的是______。

A.線性表是線性結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.線性列表是非線性性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)

9.設(shè)有定義“doublex=5.16894;”,則語句“printf(“%lf\n”,(int)(x*1000+0.5)/1000.);”的輸出結(jié)果是()。

A.5.16900B.5.16800C.0.00000D.輸出格式說明符與輸出項(xiàng)不匹配,產(chǎn)生錯(cuò)誤信息

10.以下能夠正確描述“k是大于0的偶數(shù)”的表達(dá)式是()。

A.(k>0)&&(k%2!=1)

B.(k>0)&&(k%2=0)

C.(k>0)||!(k%2)

D.(k>0)||(k%2==0)

11.有如下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=P[5];則b的值是()。

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

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

13.算法的時(shí)間復(fù)雜度是指()A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長度C.算法程序中的指令條數(shù)D.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)

14.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

15.數(shù)據(jù)流圖用于抽象地描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。

A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭

16.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbcf',"cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是______。

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

17.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf(“*”);程序段的運(yùn)行結(jié)果是()。

A.**B.****C.*D.********

18.A[N][N]是對稱矩陣,將下面三角(包括對角線)以行序存儲到一維數(shù)組T[N(N+1)/2]中,則對任一上三角元素a[i][j]對應(yīng)T[k]的下標(biāo)k是()。

A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1

19.

20.下列程序段中完全正確的是()。A.int*p;scanf(“%d”,&p);

B.int*p;scanf(“%d”,p);

C.intk,*p=&k;scanf(“%d”,p);

D.intk,*p;*p=&k;scanf(“%d”,p);

二、2.填空題(20題)21.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;

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

#include<stdio.h>

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{case0:m++;n++;break;

case10:n++;break;

default:k++;n++;

}

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

}

23.C語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個(gè)注釋以【】分別作為開始和結(jié)束。

24.下面的程序通過函數(shù)average計(jì)算數(shù)組中各元素的平均值,請?zhí)羁铡?/p>

floatavetage(int*pa,intn)

{inti;

floatavg=0.0;

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

avg=avg+【】;avg=【】;

returnavg;

}

main()

{inti,a[5]={2,4,6,8,10,};

floatmean;

prinf("%mean=%f\n",mean);

}

25.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。

26.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*abc能構(gòu)成三角形*/

elseprintf("NO\n");/*abc不能構(gòu)成三角形*/

}

27.當(dāng)先后輸入1、3、4、12、23時(shí),屏幕上出現(xiàn)【】;再輸入12時(shí),則屏幕上出現(xiàn)【】。

#include<stdio.h>

#defineN5

main()

{inti,j,number,top,bott,min,loca,a[N],flag;

charc;

printf("Pleaseinput5numbers(a[i]>a[i-1])\n");

scanf("%d",&a[0]);

i=1;

while(i<N)

{scanf("%d",&a[i]);

if(a[i]>=a[i-1))i++;

}

printf("\n");

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

printf("\n");

flag=1;

while(flag)

{scanf("%d",&number);

loca=0;

top=0;

bott=N-1;

if((number<a[0])||(number>a[N-1]))loca=-1;

while((loca==0)&&(top<=bott))

{min=(bott+top)/2;

if(number==a[min])

{loca=min;

printf("%disthe%dthnumber\n",number,loca+1);

}

elseif(number<a[min])bott=min-1;

elsetop=min+1;

}

if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);

c=getchar();

if(c=='N'||c=='n')flag=0;

}

}

28.有以下程序:

prt(int*m,intn)

{inti;

for(i=0;i<n;i++)m[i]++;

}

main()

{inta[]={1,2,3,4,5},i;

prt(a,5);

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

}

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

29.有以下程序

main()

{intx=1,y=1,z=1;

y=y+z;x=x+y;

printf("%d",x<y?y:x);

printf("%d",x<y?x++:y++);

printf("%d",x);

printf("%d",y);

}

運(yùn)行結(jié)果是【】

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

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

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3,i>=0;i--,i--)printf("%c",*p[i]);

printf("\n");

}

32.下面程序的功能是將字符串a(chǎn)下標(biāo)值為偶數(shù)的元素由小到大排序,其他元素不變,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chara[]="labchmfye",t;

inti,j;

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

for(j=i+2;j<9;【】)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;j++;}

puts(a);

printf("\n");

}

33.下列程序的運(yùn)行結(jié)果是______。

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

34.下列程序的運(yùn)行結(jié)果是______。

#definePOWER(x)((x)*(x))

main()

{inti=1;

printf("%d,%d",POWER(i++),i);

}

35.對軟件是否能達(dá)到用戶所期望的要求的測試稱為【】。

36.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

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

38.下列語句的輸出結(jié)果是______。

chars[20]="aaaa",*sp=s;

puts(strcat(sp,"AAAAA"));

39.下列程序利用指針將2個(gè)數(shù)按從大到小的順序輸出。

main()

{inta,b,【】;

printf("inputa,b:");

scanf("%d%d",&a,&b);

【】;

p2=&b;

if(a<b)

{p=p1;

p1=p2;

p2=p;

}

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

printf("max=%dmin=%d\n",【】);

40.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。

三、1.選擇題(20題)41.有如下程序:#include<stdio.h>main(){FILE*fpl;fp1=fopen("ftxt","w");fpfinff(fp1,"abc");fclose(fp1);若文本文件f1.txt中原有內(nèi)容為:good,則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為()。

A.goodabcB.abcdC.abcD.abegood

42.請選出可用作C語言用戶標(biāo)識符的是

A.void,define,WORD

B.a3_b3,_123,IF

C.FOR,--abc,Case

D.2a,Do,Sizeof

43.在執(zhí)行下述程序時(shí),若從鍵盤輸入6和8,則結(jié)果為

main()

{inta,b,s;

scanf("%d%d",&a,&b);

S=a

if(a<b)

s=b;

S*=s;

printf("%d",s);}

A.36B.64C.48D.以上都不對

44.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\b",i,j);}程序運(yùn)行后的輸出結(jié)果是

A.9,9B.8,9C.1,8D.9,8

45.下列選項(xiàng)中合法的賦值語句是()。

A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);

46.下述關(guān)于C語言文件的操作的結(jié)論中,正確的是______。

A.對文件操作必須先關(guān)閉文件

B.對文件操作必須先打開文件

C.對文件操作順序無要求

D.對文件操作前必須先測文件是否存在,然后再打開文件

47.以下有4組用戶標(biāo)識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

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

A.1B.2C.3D.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.下列語句中,在字符串s1和s2相等時(shí)顯示"theyareEqual"的是()。

A.if(*s1==*s2)

B.if(!strcmp(s1,s2))puts("theyareEqual");puts("theyareEqual");

C.if(s1==s2)

D.if(strcmp(s1,s2))Puts("theyareEqual");puts("theyareEqual");

51.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是

A.scant("%d",pa);

B.scant("%d",a);

C.scanf("%d",&pa);

D.scanf("%d",*pa);

52.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}

A.11B.12C.13D.15

53.已知i、j、k為血型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。

A.scanf("%3d,%3d,%3d",&i,&j,&k);

B.scan("%d,%d,%d",&i,&j,&k);

C.scan("%do/od%d",&i,及j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

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

A.用E—R圖能夠表示實(shí)體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系

B.用E—R圖只能表示實(shí)體集之間一對一的聯(lián)系

C.用E—R圖只能表示實(shí)體集之間一對多的聯(lián)系

D.用E—R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型

55.下列程序的運(yùn)行結(jié)果為

#include<stdio.h>

voidabc(char*str)

{inta,b;

for(a=b=0;str[a]!='\0';a++)

if(str[a]!='c')

str[b++]=str[a];

str[b]='\0';}

voidmain()

{charstr[]="abcdef";

abc(str);

printf("str[]=%s",str);}

A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab

56.以下變量x、y、z均為double類型且已正確賦值,不能正確表示數(shù)學(xué)式子x/(y*z)的C語言表達(dá)式是______。

A.x/y*zB.x*(1/(y*z))C.x/y*1/zD.x/y/z

57.若有定義語句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個(gè)元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]

58.若進(jìn)棧序列為1、2、3、4、5,并且在它們進(jìn)棧的過程中可以進(jìn)行出棧操作,那么不可能是出棧序列的是______。

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

59.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。

A.自頂向下B.逐步求精C.模塊化D.可復(fù)用

60.下面程序輸出的結(jié)果是______。main(){inti=5,j=9,x;x=(i==j?:(j=7));printf("\n%d,%d",i,j);}

A.5,7B.5,5C.語法錯(cuò)誤D.7,5

四、選擇題(20題)61.定義無符號整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是()。

A.-369B.369C.0.369D.整數(shù)集合{1,2,3,4,5}

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

A.軟件結(jié)構(gòu)定義

B.模塊獨(dú)立性

C.模塊類型劃分

D.模擬耦合度

63.

64.

65.有以下程序程序的運(yùn)行結(jié)果是()。

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

A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)

67.

68.有以下程序:

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

A.OB.2C.3D.5

69.下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是()。

A.使用順序、選擇和重復(fù)(循環(huán).三種基本控制結(jié)構(gòu)表示程序的控制邏輯

B.模塊只有一個(gè)入口,可以有多個(gè)出口

C.注重提高程序的執(zhí)行效率

D.不使用goto語句

70.用樹形結(jié)構(gòu)來表示實(shí)體之間聯(lián)系的模型稱為()。

A.關(guān)系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型

71.有以下程序:

#include<stdio.h>

intfun()

{staticintx=1;

X*=2:

returnx;

}

main()

{inti,S=1;

for(i=1;i<=3;i++)S*=fun();

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

}

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

A.0B.10C.30D.64

72.以下敘述中錯(cuò)誤的是()。

A.C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序

B.C程序經(jīng)過編譯、連接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件

C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個(gè)文本文件中

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

73.

74.有以下程序:

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

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

75.學(xué)生選課成績表的關(guān)系模式是sc(S#,c#,G),其中S#為學(xué)號,c#為課號,G為成績,檢索課號為2且成績及格的學(xué)生學(xué)號的表達(dá)式為()。

76.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

77.

78.

79.對于現(xiàn)實(shí)世界中事物的特征,在實(shí)體一聯(lián)系模型中使用()。A.屬性描述B.關(guān)鍵字描述C.二維表格描述D.實(shí)體描述

80.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第l項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為l3。請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}

六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:計(jì)算n門課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。例如,有6門課程的成績是90.5,72,80,61.5,55,60,則函數(shù)的值為69.83。注意:部分源程序給出如下。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.Astrcpy實(shí)現(xiàn)的功能是復(fù)制,該操作把a(bǔ)re復(fù)制到a中,aE03E33一’&’,且strcpy(aEl],"you")把you復(fù)制到a[l]中,故輸出a為“are&you”。

2.B

3.D

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

5.B

6.B

7.B

8.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

9.A表達(dá)式“(int)(x*1000+0.5)”使用了強(qiáng)制轉(zhuǎn)換,其計(jì)算結(jié)果為5169,(5169/1000.0)=5.169。所以“printf(“%lf\\n”,5.169);”結(jié)果是5.16900。故本題答案為A選項(xiàng)。

10.A判斷k大于0的表達(dá)式為“k>0”,判斷k是偶數(shù)的表達(dá)式為“k%2==0”或“k%2!=1”。兩個(gè)表達(dá)式必須都成立才能確定k是大于0的偶數(shù),則對應(yīng)的表達(dá)式為“(k>0)&&(k%2==0)”或“(k>0)&&(k%2!=1)”。故本題答案為A選項(xiàng)。

11.C解析:p=&a[3]將指針指向數(shù)組a的第4個(gè)元素,p[5]則是數(shù)組a的第9個(gè)元素,而a[8]=9,所以b=9。

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

13.D解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語言、執(zhí)行算法程序時(shí)所使用的計(jì)算工具以及程序員的水平無關(guān)。

選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤。因?yàn)樗惴ㄋ帉懙某绦蜷L度往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語言或者不同的程序員所編寫出的程序其長度可能會大不相同。

選項(xiàng)C錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序程序中,其指令條數(shù)往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時(shí)間復(fù)雜度。

所以,本題的正確答案為D。

14.B本題考查for循環(huán)的使用。對于第1個(gè)for循環(huán),任何一個(gè)i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時(shí)不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時(shí)退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。

15.A解析:數(shù)據(jù)流圖包括四個(gè)方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體),不包括選項(xiàng)中的控制流。

16.A解析:本題中p[4]='cd',所以strlen(p[4])=2。

17.C因?yàn)閮?nèi)層循環(huán)“for(k=1;k<3;k++)”后面直接跟了空語句“;”,所以在循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行printf語句,輸出一個(gè)“*”。故本題答案為C選項(xiàng)。

18.B

19.A

20.CA選項(xiàng)中,沒有對指針進(jìn)行初始化,屬于無效指針,并且在“scanf(“%d”,&p);”中無須再進(jìn)行取地址操作;B選項(xiàng)中,沒有對指針進(jìn)行初始化,屬于無效指針;D選項(xiàng)中,語句“*p=&k;”書寫錯(cuò)誤,應(yīng)為“P=&k;”。故本題答案為C選項(xiàng)。

21.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。

22.132132解析:在程序中,i從9開始循環(huán),當(dāng)i=9時(shí),執(zhí)行case0后的語句m++;n++;此時(shí)m=1,n=1,然后執(zhí)行break,跳出循環(huán);當(dāng)i=10時(shí),執(zhí)行detault后的語句k++;n++;此時(shí)k=1,n=2;當(dāng)i=11時(shí),再執(zhí)行default后的語句,k=2,n=3。此時(shí),m=1,n=3,k=2。輸出結(jié)果為132。

23./**//**/解析:C語言程序的注釋可以出現(xiàn)在程序基本單詞之間的任何地方,C語言程序的注釋以“/*”作為開始標(biāo)記,并以“*/”作為結(jié)束標(biāo)記。

24.pa[i]avg/n

25.交換排序交換排序解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機(jī)制和區(qū)別。

26.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的條件是兩邊之和大于第三邊。要用'&&'指令連接三個(gè)條件,表示三個(gè)條件都要滿足。

27.134122312isthe4thnumber.

28.234562,3,4,5,6解析:函數(shù)prt(a,5)的功能是使得a數(shù)組中,從a[0]~a[4]中元素均增1。

29.3233

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

31.SO

32.j++a[i]>a[j]或a[j]<a[i]j++\r\na[i]>a[j]或a[j]<a[i]解析:題目要求排序的元素是下標(biāo)值為偶數(shù)的元素,外循環(huán)循環(huán)4次,i的值分別為0、2、4、6,所以內(nèi)循環(huán)也循環(huán)4次,i的值就應(yīng)為2、4、6、8,在循環(huán)體中已經(jīng)有了對j加1的操作,因此for后括號中的語句應(yīng)再對j加1,保證下標(biāo)為偶數(shù)。if語句的功能是如果后一個(gè)數(shù)比前一個(gè)數(shù)小則交換位置。

33.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時(shí),判斷條件不滿足,退出循環(huán)。

34.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

35.有效性測試有效性測試

36.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。

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

38.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動(dòng)覆蓋字符數(shù)組sp末尾的\'\\0\'。

39.*p*p1*p2p1:&a*p1*p2

40.隊(duì)尾隊(duì)尾解析:在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。

41.C執(zhí)行語句fp1=fopen("f1.txt","w");以“只寫”方式打開了一個(gè)名為f1.txt的文件,執(zhí)行語句fPrintf(fp1,"abc",);向該文件寫數(shù)據(jù)時(shí),如果文件f1.txt不存在,則新建一個(gè)f1.txt文件;如果f1.txt已存在,則在打開該文件時(shí)重寫文件內(nèi)容。所以執(zhí)行fprintf(fp1,"abc");時(shí),f1.txt中原有內(nèi)容good被刪除,而字符中”abc”被輸出到fpl指向的文件f1.txt中。

42.B解析:C語言規(guī)定用戶標(biāo)識符由字母、數(shù)字和下畫線組成,且第一個(gè)字符必須是字母或下畫線,可見選項(xiàng)C),D)是錯(cuò)誤的;此外,C語言不允許用戶將關(guān)鍵字作為標(biāo)識符,而選項(xiàng)A)中的void正是C語言的關(guān)鍵字。

43.B解析:本題中a的值為6,b的值為8,最后s的值為8,s*=s等價(jià)于s=s*s。

44.D解析:本題考查了求數(shù)據(jù)類型長度的運(yùn)算符sizeof和求字符串長度的函數(shù)strlen的區(qū)別。strlen計(jì)算的是一個(gè)字符串的實(shí)際字符個(gè)數(shù),如果字符串放在字符數(shù)組中,則函數(shù)strlen的值為'\\0'之前的全部字符個(gè)數(shù)。而sizeof求出的是數(shù)據(jù)占據(jù)存儲空間的字節(jié)數(shù),當(dāng)然也要包括字符串的結(jié)束標(biāo)志符'\\0'。

45.D解析:選項(xiàng)A)是一個(gè)合法的賦值表達(dá)式,但結(jié)尾沒加分號,所以它不是一個(gè)賦值語句;選項(xiàng)B)是一個(gè)逗號表達(dá)式,也因?yàn)榻Y(jié)尾沒有加分號而不是合法的賦值語句,選項(xiàng)C)是一個(gè)算術(shù)表達(dá)式,雖然有分號,但這個(gè)表達(dá)式?jīng)]有賦值操作,因此,也不是一條賦值語句。

46.B解析:在C中對文件操作必須先打開文件,待文件操作完畢后要關(guān)閉文件。對文件以讀的方式進(jìn)行打開操作時(shí),同時(shí)會執(zhí)行文件的檢查文件是否存在,不存在將會返回空的文件指針,如果對文件以寫的方式打開時(shí),文件不存在,將會自動(dòng)創(chuàng)建文件,因此在C中打開文件前不必對其檢查文件是否存在,故答案為B。

47.C解析:選項(xiàng)A中for和case為C語言中的保留字,不能作為用戶標(biāo)志符,故A錯(cuò)誤。選項(xiàng)B中的4d其開頭的第一個(gè)為數(shù)字,而在C語言中規(guī)定,第一個(gè)字符必須為字母或者下劃線,故B錯(cuò)誤;選項(xiàng)D中void為C語言中的保留字,不能作為用戶標(biāo)志符,故D錯(cuò)誤。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

48.B解析:本題考查switch語句。因?yàn)閍=6,所以a%2=0,因此第一個(gè)switch語句,執(zhí)行case0,將m加1,遇到break語句跳出switch語句,輸出m值為2。

49.C

50.B解析:字符串比較不能用兩個(gè)等于號(=)來進(jìn)行比較,應(yīng)使用函數(shù)strcmp(s1,s2)來比較。函數(shù)strcmp(s1,s2)的功能:當(dāng)字符串s1和s2相等時(shí),返回值為0。因此,當(dāng)表達(dá)式!strcmp(s1,s2)=1時(shí),條件成立,執(zhí)行后面的語句,輸出theyareEqual。

51.A解析:scanf()函數(shù)的功能是進(jìn)行輸入數(shù)據(jù),它是按格式參數(shù)的要求從終端上把數(shù)據(jù)傳送到地址參數(shù)所指定的內(nèi)存空間中,C語言允許程序員間接地使用內(nèi)存地址,這個(gè)地址是通過對變量名“求地址”運(yùn)算得到的,求地址的運(yùn)算符是&,得到的地址是一種符號地址。本題中定義了整型變量a和一個(gè)指向整型數(shù)據(jù)的指針變量pa,并定義pa是一個(gè)存放a的地址的變量。選項(xiàng)B中應(yīng)該將a改為&a;選項(xiàng)C應(yīng)該將&pa改為pa,因?yàn)閜a已經(jīng)表示存放a的地址;選項(xiàng)D中*pa表示的是指針pa所指向存儲空間的變量的值,而不是一個(gè)地址。

52.B解析:在程序中如果有帶實(shí)參的宏,則按#define命令行中指定的字符串從左到右進(jìn)行置換,如果串中包含宏中的形參,則將程序語句中相應(yīng)的實(shí)參代替形參。將實(shí)參帶入已經(jīng)定義的宏中,可以得出答案為“12”。

53.B解析:函數(shù)scan()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符:“輸入項(xiàng)地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時(shí)要求按一一對應(yīng)的位置原樣輸入這些字符,其中的逗號也必須輸入。

54.A\n兩個(gè)實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集問的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對一的聯(lián)系、一對多(或多對一)的聯(lián)系和多對多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。

\n

55.A解析:本題考查了用字符指針引用字符數(shù)組中的字符及對字符的操作。函數(shù)abc()的for語句執(zhí)行過程是:從字符指針str所指向的字符數(shù)組的第一個(gè)元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過程,若字符為'c'就不執(zhí)行。

56.A解析:按照自左向右的運(yùn)算邏輯,選項(xiàng)A是先做x/y,然后再乘以x,顯然與題意不符。

57.B解析:二維數(shù)組的元素在內(nèi)存中是按行列順序連續(xù)存放的。以本題的二維數(shù)組a[3][6]為例,它的元素在內(nèi)存中的存放順序是:a[0][0]、a[0][1]、a[0][2]…a[0][5]、a[1][0]、\u3000a[1][1]…a[1][5]、a[2][0]…a[2][5]。由此可見,第10個(gè)元素就是第2行第4個(gè)元素,即a[1][3]。故應(yīng)該選擇B。

58.D

59.D解析:20世紀(jì)70年代以來,提出了許多軟件設(shè)計(jì)方法,主要有①逐步求精:對復(fù)雜的問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化;②自頂向下:程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化;⑧模塊化:一個(gè)復(fù)雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)優(yōu)點(diǎn)。

60.A解析:條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3;先求解表達(dá)式1,若為真則求解表達(dá)式2;若表達(dá)式1的值為假,則求解表達(dá)式3。本題中先判斷i=j,不等,執(zhí)行j=7;然后執(zhí)行x=7。故本題為A。

61.BB【解析】只有B選項(xiàng)369可以用無符號整數(shù)來表示和存儲。A選項(xiàng)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論