2021年廣東省珠海市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第1頁
2021年廣東省珠海市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第2頁
2021年廣東省珠海市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第3頁
2021年廣東省珠海市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第4頁
2021年廣東省珠海市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(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ì)預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.表達(dá)式“(int)((double)9/2)-9%2”的值是()。

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

2.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

3.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:

4.某二叉樹的先序序列和后序序列正好相同,則該二叉樹可能是______的二叉樹。

A.高度大于1的左單支B.高度大于1的右單支C.最多只有一個結(jié)點(diǎn)D.既有左孩子又有右孩子

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

A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C.C語言是-種結(jié)構(gòu)化程序設(shè)計(jì)語言

D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

6.下面哪些使用的不是貪心算法()

A.單源最短路徑中的Dijkstra算法

B.最小生成樹的Prim算法

C.最小生成樹的Kruskal算法

D.計(jì)算每對頂點(diǎn)最短路徑的Floyd-Warshall算法

7.折半查找法的查找速度一定比順序查找法快()。

A.正確B.錯誤

8.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈?zhǔn)酱鎯Y(jié)構(gòu)

9.[0,2,1,4,3,9,5,8,6,7]是以數(shù)組形式存儲的最小堆,刪除堆頂元素0后的結(jié)果是()

A.[2,1,4,3,9,5,8,6,7]

B.[1,2,5,4,3,9,8,6,7]

C.[2,3,1,4,7,9,5,8,6]

D.[1,2,5,4,3,9,7,8,6]

10.函數(shù)fun的功能是在a所指的具有n個元素的數(shù)組中查找最大值并返回給調(diào)用函數(shù),但函數(shù)不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if語句下劃線處應(yīng)填入的選項(xiàng)是()。

A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s

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

A.在C程序中,APH和aph是兩個不同的變量

B.C程序中的變量,代表內(nèi)存中的一個存儲單元,它的值可以根據(jù)需要隨時修改

C.在C程序中,無論是整數(shù)還是實(shí)數(shù),都能準(zhǔn)確無誤地表示

D.在C程序中,一個正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來表示

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

A.軟件交付使用后還需要進(jìn)行維護(hù)

B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)

C.軟件交付使用后其生命周期就結(jié)束

D.軟件維護(hù)是指修復(fù)程序中被破壞的指令

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

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

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

C.文件指針的值是所指文件的當(dāng)前讀取位置

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

14.在一個無向圖中,所有頂點(diǎn)的度數(shù)之和等于所有邊數(shù)的()倍。

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

15.在C++中,一個函數(shù)帶有參數(shù)說明時,則參數(shù)的默認(rèn)值應(yīng)該在()中給出。A.函數(shù)定義B.函數(shù)聲明C.函數(shù)定義或聲明D.函數(shù)調(diào)用

16.以下程序擬實(shí)現(xiàn)計(jì)算sum=1+1/2+1/3+…+1/50。#include<stdio.h>main(){inti;doublesum;sum=1.0;i=1;do{i++-;sum+=1/i;}while(i<50);printf(“sum=%lf\n”,sum);}程序運(yùn)行后,不能得到正確結(jié)果,出現(xiàn)問題的語句是()。

A.sum+=1/i;B.while(i<50);C.sum=1.0D.i++;

17.C語言中標(biāo)準(zhǔn)庫函數(shù)fputs(str,fp)的功能是()。

A.從str指向的文件中讀一個字符串存入fp指向的內(nèi)存

B.把str所指的字符串輸出到fp所指的文件中

C.從fp指向的文件中讀一個字符串存入str指向的內(nèi)存

D.把fp指向的內(nèi)存中的一個字符串輸出到str指向的文件

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

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

19.若有語句“void*P=malloc(80);”,則以下敘述錯誤的是()。

A.可以通過指針P直接訪問用malloc開辟的這塊內(nèi)存

B.p所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有20個int型元素的一維數(shù)組來使用

C.p所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有10個double型元素的一維數(shù)組來使用

D.P所指內(nèi)存可以通過強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有80個char型元素的一維數(shù)組來使用

20.有以下程序:#include<stdio.h>main(){intx=3,y=5,z1,z2;z1=y^x^y;z2=x^y^x;printf(“%d,%d\n”,z1,z2);}程序運(yùn)行后的輸出結(jié)果是()。

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

二、2.填空題(20題)21.下列程序的運(yùn)行結(jié)果是______。

main()

{inti,a[10];

a[0]=a[1]=1;

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

a[i]=a[i-2]+a[i-1];

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

{if(i%2==0)printf("\n");

printf("%d",a[i]);

}

}

22.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

23.在鏈表的運(yùn)算過程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。

24.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

25.注釋說明了程序的功能,它分為【】注釋和功能性注釋。

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

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

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

}

27.關(guān)鍵字ASC和DESC分別表示【】的含義。

28.Jackson結(jié)構(gòu)化程序設(shè)計(jì)方法是英國的M.Jackson提出的,它是一種面向______的設(shè)計(jì)方法。

29.在Windows環(huán)境下,可以利用單擊、雙擊、拖動這三種鼠標(biāo)操作之一的【】操作實(shí)現(xiàn)窗口的移動。

30.數(shù)據(jù)庫的設(shè)計(jì)通常可以分為這樣四個步驟:需求分析、概念設(shè)計(jì)、______、和物理設(shè)計(jì)。

31.下面程序的功能是兩個整數(shù)進(jìn)行交換,請?zhí)羁铡?/p>

sub(int*x,int*y)

{【】

z=*x;*x=*y;*y=z;

return;}

main()

{intm,n,*t1,*t2;

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

t1=&m;t2=&n;

【】

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

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

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

p=a;

33.若x、y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。

x=(y=4)+(z=3)

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

35.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

36.若已經(jīng)定義inta=25,b=14,c=19;,以下三目運(yùn)算符(?:)所構(gòu)成的語句的執(zhí)行結(jié)果是【】。

a++<=2&&b--<=2&&c++?printf("***

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

37.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

38.以下程序的定義語句中,x[1]的初值是【】,程序運(yùn)行后輸出的內(nèi)容是【】。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,161},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");

}

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

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

#defineP(A)printf("%d",A)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>1;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

三、1.選擇題(20題)41.對建立良好的程序設(shè)計(jì)風(fēng)格,描述正確的是

A.程序應(yīng)簡單、清晰、可讀性好B.符號名的命名只要符合語法即可C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無

42.用scanf("%d,%d",&a,&b)輸入數(shù)據(jù)時,下面輸入法中,正確的是______。

A.123,4B.1234C.123;4D.123:4

43.設(shè)已包含頭文件<string.h>,下列程序段的運(yùn)行結(jié)果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

44.已知大寫字母B的ASCII碼值是66,小寫字母b的ASCII碼值是98,則用八進(jìn)制表示的字符常量'\142'是()

A.字符BB.字符bC.字符aD.非法的常量

45.下面能正確進(jìn)行字符串賦值操作的是

A.chars[5]={"ABCDE"};

B.chars[5]={'A','B','C','D','E'};

C.char*s;s="ABCDE";

D.char*s;scanf("%s",s);

46.對于下列字符串,說明表達(dá)式strlen(s)值的是()。chars[10]={'a','\n','a','b','\t','c'};

A.10B.1C.6D.7

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

A.在C語言中調(diào)用函數(shù)時,只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參

B.在C的函數(shù)中,最好使用全局變量

C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)

D.自動變量實(shí)質(zhì)上是一個函數(shù)內(nèi)部的局部變量

48.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是

A.c=(c-′A′)%26+′a′B.c=c+32C.c=c-′A′+′a′D.c=(′A′+c)%26-′a′

49.表示關(guān)系a≤b≤c的C語言表達(dá)式為()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

50.下面的程序段運(yùn)行后,輸出結(jié)果是inti,j,x=0;staticinta[8][8];for(i=0;<3;++)for(j=0;<3;j++)a[i][j]=2*i+j;for(i=0;<8;++)x+=a[i][j];printf("%d",x);

A.9B.不確定值C.0D.18

51.設(shè)整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。

A.10B.11C.12D.語法錯誤

52.以下程序段中,不能正確賦字符串(編譯時系統(tǒng)會提示錯誤)的是()。

A.chars[10]="abcdefg";

B.chart[]="abcdefg",*s=t;

C.chars[10];s="abcdefg";

D.chars[10];strcpy(s,"abcdefg");

53.下列程序的輸出結(jié)果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++b);}

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

54.有以下函數(shù):fun(char*a,char*b){while((*a!='\0')&&(*b!:'\0')&&(*a==*b)){a++;b++;}return(*a-*b);}該函數(shù)的功能是()。

A.將b所指字符串連接到a所指字符串中

B.計(jì)算a和b所指字符串的長度之差

C.將b所指字符串連接到a所指字符串后面

D.比較a和b所指字符串的大小

55.有以下程序intf(intA){returna%2;}main(){ints[8]={1,3,5,2,4,6),i,d=0;for(i=0;f(s[i];i++)d+=s[i];printf("%d\n",D);}程序運(yùn)行后的輸出結(jié)果是

A.9B.11C.19D.21

56.C語言中main函數(shù)參數(shù)的非法表示形式是()

A.main(char*argv[],intargc)

B.main(inta,char**b)

C.main(inty,char*x[])

D.main(intargv,char*argc[])

57.變量a中的數(shù)據(jù)用二進(jìn)制表示的形式是01011101,變量b中的數(shù)據(jù)用二進(jìn)制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執(zhí)行的運(yùn)算是()。

A.a^bB.a|bC.a&bD.a<<4

58.已知大寫字母A的ASCⅡ碼是65,小寫字母a的ASCⅡ碼是97,以下不能將變量C中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。

A.c=(c-'A')%26+'a'B.c=c+32C.c=c-'A'+'a'D.c=('A'+C)%26-'a'

59.若有如下程序:main(){staticchar*a[3]={"123","456","789");char**b;b=a;++b;printf("%s,%s\n",*a,*a+1);printf("%s,%s\n",*b,b[1]);}則程序運(yùn)行后的輸出結(jié)果是()。

A.123,456,456,789

B.123,23456,56

C.123,23456,789

D.123,456456,56

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

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

四、選擇題(20題)61.下列敘述中錯誤的是()。

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ù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序

62.

63.

64.

65.在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是()。

A.PDL(過程設(shè)計(jì)語言B.PAD圖C.N—S圖D.DFD圖

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

67.設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價的是()。

A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)

68.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

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

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

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

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

69.

70.

71.設(shè)循環(huán)隊(duì)列的存儲空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個數(shù)為()。

A.20B.0或35C.15D.16

72.

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

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

74.23.若有下面的程序段

chars[]="china";char*p;p=s;

則下列敘述正確的是

A.s和p完全相同B.?dāng)?shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等

C.s數(shù)組長度和p所指向的字符串長度相等D.*p與s[0]相等

75.

76.

77.關(guān)系數(shù)據(jù)庫管理系統(tǒng)所管理的關(guān)系是()。A.若干個二維表B.一個DBF文件C.一個DBC文件D.若干個DBC文件

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

A.簡單c語句必須以分號結(jié)束

B.C程序中的每—行只能寫—條i{}句

C.c語言程序中的注釋必須與語句寫在同一行

D.C語句必須在一行內(nèi)寫完

79.有以下程序:

若要按以下形式輸出數(shù)組右上半三角:

則在程序下劃線處應(yīng)填人的語句是()。

A.i-1B.i+1C.iD.4-i

80.

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。

例如,若輸入“Ab,cD”,則輸出“AB,CD”。

請改正程序中的錯誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是統(tǒng)計(jì)各年齡段的人數(shù)。N個年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放入主函數(shù)的age數(shù)組中。要求函數(shù)把0~9歲的人數(shù)存放在d[0]中,把10~19歲的人數(shù)存放在d[1]中,把20~29歲的人數(shù)存放在d[2]中,依此類推,把100歲(含100歲)以上年齡的人數(shù)都存放在d[10]中。結(jié)果在主函數(shù)中輸出。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B先將int型數(shù)據(jù)9強(qiáng)制轉(zhuǎn)換成double型,然后除以2,得到的結(jié)果與double型保持一致,即4.5;然后將4.5強(qiáng)制轉(zhuǎn)換成int型數(shù)據(jù)4,再計(jì)算9%2的值為1;最后計(jì)算4-1的值為3。故本題答案為B選項(xiàng)。

2.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點(diǎn);③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點(diǎn);②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點(diǎn)。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點(diǎn)。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點(diǎn),e、c、h、f是右子樹的結(jié)點(diǎn)。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點(diǎn),b右邊子樹無結(jié)點(diǎn)。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點(diǎn)。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點(diǎn)位置。所以可知后序遍歷的結(jié)果是D。

3.DD選項(xiàng)中將字符串常量…aa賦給字符變量a是錯誤的。

4.C

5.A使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A錯誤。

6.D

7.B

8.C

9.D

10.B函數(shù)fun的功能是在a所指的具有n個元素的數(shù)組中查找最大值并返回。通過for循環(huán)比較,s始終指向最大值的那個元素。取指針的值,使用*P,因此比較使用*P和*s,又因?yàn)檎易畲笾?,?dāng)*s<*p時,修改指針s的指向。故本題答案為B選項(xiàng)。

11.C

12.A解析:維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟件工程學(xué)的目的就在于提高軟件的可維護(hù)性,同時也要設(shè)法降低維護(hù)的代價。

軟件維護(hù)通常有以下四類;

①為糾正使用中出現(xiàn)的錯誤而進(jìn)行的改正性維護(hù);

②為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);

③為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);

④為將來的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。

軟件維護(hù)不僅包括程序代碼的維護(hù),還包括文檔的維護(hù)。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護(hù)。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項(xiàng)B、C、D中的說法都是錯誤的。

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

14.C

15.CC程序中函數(shù)可以在說明或定義時給一個或多個參數(shù)指定默認(rèn)值,但是不能在函數(shù)說明定義時同時指定默認(rèn)參數(shù),默認(rèn)參數(shù)值應(yīng)該在函數(shù)名第一次出現(xiàn)時指定。

16.A選項(xiàng)A中,“sum+=1/i;”中的i為整型,因此“1/i”是整型類型,當(dāng)“1/i”有小數(shù)時。會被截?cái)唷R虼恕?/i”結(jié)果始終為0,導(dǎo)致結(jié)果出錯。應(yīng)該改為“sum+=1.0/i”。故本題答案為A選項(xiàng)。

17.B函數(shù)fputs(str,fp)的功能是把str所指的字符串輸出到fp所指的文件中。故本題答案為B選項(xiàng)。

18.B數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,是一種在操作系統(tǒng)支持下的系統(tǒng)軟件,因此本題答案為B)。

19.A題干中使用malloc函數(shù)分配了80個字節(jié)的內(nèi)存單元,void指針p指向該內(nèi)存單元。在C語言中,void*不能直接使用,必須利用強(qiáng)制類型轉(zhuǎn)換將其轉(zhuǎn)成所需的類型才能使用,選項(xiàng)A錯誤。int類型的元素占4個字節(jié),所以可以將p指向的內(nèi)存強(qiáng)制類型轉(zhuǎn)換成具有20個int類型的一維數(shù)組來使用,同理,也可以強(qiáng)制類型轉(zhuǎn)換成10個double類型的一維數(shù)組來使用,或強(qiáng)制類型轉(zhuǎn)換成80個char類型的一維數(shù)組來使用,選項(xiàng)B、C、D正確。故本題答案為A選項(xiàng)。

20.D是按位異或運(yùn)算,其功能是參與運(yùn)算的兩個數(shù),按位異或,如果兩個相應(yīng)位相同,結(jié)果為0,否則為1。接位異或運(yùn)算滿足如下規(guī)則:①滿足交換律;②一個數(shù)與0異或的結(jié)果仍是原數(shù);③一個數(shù)與1異或的結(jié)果是原數(shù)按位取反。所以題干中,“y^x^y”等價于等價于“y^y^x”,等價于“0^x”,等價于x,即“z1=x”;“x^y^x”等價于“x^x^y”,等價于“0^y”,等價于y,即“z2=y”,輸出結(jié)果為:3,5。故本題答案為D選項(xiàng)。

21.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項(xiàng)的和賦值給數(shù)組當(dāng)前元素,得到a的值應(yīng)為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個的形式輸出。

22.數(shù)據(jù)存儲數(shù)據(jù)存儲

23.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點(diǎn),因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點(diǎn)存在,從而使空表與非空表的運(yùn)算統(tǒng)一。

24.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

25.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

26.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個switch語句,switch(x)=switch(1),所以執(zhí)行case1,case1語句中包含一個復(fù)合switch語句:這時執(zhí)行第二個switch語句,此時y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個switch語句,則整個case1的復(fù)合語句執(zhí)行完畢,由于在這個case1的后面沒有break語句使其退出第一個switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。

27.升序排列和降序排列升序排列和降序排列解析:ASC表示升序排列,DESC表示降序排列,多用在索引定義和SELECT語句中的ORDER子句中。

28.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)

29.拖動拖動

30.邏輯設(shè)計(jì)邏輯設(shè)計(jì)解析:數(shù)據(jù)庫設(shè)計(jì)的四個階段為:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。

31.intz;sub(t1t2);

32.6060解析:本題定義了一個3行2列的二維數(shù)組a,并定義了一個指向兩個元素的一維數(shù)組指針p,讓p指向二維數(shù)組a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。

33.77解析:x=(y=4)+(z=3)等價于y=4,z=3,x=y+z=4+3=7。

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

35.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

36.a=26b=14c=19a=26,b=14,c=19解析:這種條件表達(dá)式的—般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3,三目運(yùn)算符的執(zhí)行順序,先求解表達(dá)式1,若非0則求解表達(dá)式2,此時表達(dá)式2的值就作為整個表達(dá)式的值,若表達(dá)式1的值為0,則求解表達(dá)式3,此時表達(dá)式3的值就作為整個表達(dá)式的值。C語言在做一系列表達(dá)式相與時,從左到右分別計(jì)算各表達(dá)式的值,一旦遇到一個表達(dá)式為false,則剩余的表達(dá)式都不再進(jìn)行運(yùn)算。該題中,a++<=2的值為false,則b-<=2和c++就都不再運(yùn)算再運(yùn)算。

37.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。

38.224682\r\n2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當(dāng)i=0時,p[0]=&x[1],p[0][0]=2;當(dāng)i=1時,p[1==&x[3],p[1][0]=4;當(dāng)i=2時,p[2]=&x[5],p[2][0]=6;當(dāng)i=3時,p[3]=&x[7],p[3][0]=8,所以程序輸出的結(jié)果為2、4、6、8。

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

40.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時,i=3,i=5,因?yàn)閟witch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5:第二次循環(huán)時,j=2,i=4,因?yàn)閟witch(2),所以執(zhí)行case2,調(diào)用P(a[i++]):P(a[4])=P(5),輸出5,之后i自加等于5。

41.A解析:符號名應(yīng)該能反映出它所代表的實(shí)際東西,應(yīng)有一定的意義,不是簡單的符合語法就可以。應(yīng)該在保證程序正確的情況下再考慮程序的執(zhí)行效率。程序的注釋有益于對程序的理解和維護(hù),好的程序必不可少。

42.A

43.A解析:頭文件<string.h>是字符串處理函數(shù)對應(yīng)的頭文件,要想調(diào)用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應(yīng)的頭文件,否則無法使用庫函數(shù)。

strcpy(s1,s2)把s2中的字符串復(fù)制到s1中,所以結(jié)果就為s2的長度。

44.B

45.C解析:選項(xiàng)A)和B)定義的數(shù)組空間太小,至少應(yīng)該為6個字符的長度才可以。選項(xiàng)D)中的指針s未賦初值,所以指向—個不確定的地址,因而不能用scanf輸入數(shù)據(jù)到這一指針?biāo)赶虻牡刂分?。注意:通過賦初值的方式給一維字符數(shù)組賦字符串。

46.C解析:strlen(s)返回s字符串中字符的個數(shù),若s是個數(shù)組,則返回?cái)?shù)組元素的個數(shù)。

47.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時,編譯系統(tǒng)根據(jù)需要要臨時分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。

48.D解析:C語言中,字符數(shù)據(jù)參加運(yùn)算時,實(shí)際上是其ASCII碼參與運(yùn)算。大寫字母的ASCII碼比其對應(yīng)的小寫字母的ASCII碼小32。因此大寫字母轉(zhuǎn)化為小寫字母只需將其加上32即可。所以選項(xiàng)B)、C)都符合條件,因?yàn)樽兞縞中存儲的是大寫字母,所以'c-\'A\''的值一定小于26,故選項(xiàng)A)與選項(xiàng)C)的含義相同。

49.A解析:本題考查邏輯與運(yùn)算符&&。在C語言中使用運(yùn)算符“&&”連接兩個表達(dá)式,也可以表示邏輯與運(yùn)算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。

50.C解析:本題主要考查的是用二維數(shù)組首地址和下標(biāo)來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:[*]

由于數(shù)組的下標(biāo)是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應(yīng)位置的元素。

51.D解析:C語言中有基本的算術(shù)運(yùn)算符(+、-、*、/)還包括自增自減運(yùn)算符(++、-),在C語言解析表達(dá)式時,它總是進(jìn)行貪婪咀嚼,這佯,該表達(dá)式就被解析為i+++++i,顯然該表達(dá)式不合C語言語法。

52.C解析:選項(xiàng)A中定義了一個字符型數(shù)組并賦初值,故選項(xiàng)A正確;選項(xiàng)B定義了一個字符型數(shù)組t并初始化,然后定義了一個指針變量s并讓它指向t,故選項(xiàng)B正確;選項(xiàng)C先定義?一個長度為10的字符型數(shù)組,然后在給它賦值,這時應(yīng)該分別給數(shù)組中的每個元素賦值,故選項(xiàng)C不正確;選項(xiàng)D中先定義了一個長度為10的字符型數(shù)組s,然后通過字符串拷貝函數(shù)將字符串“abedefs”賦值給它,選項(xiàng)D正確。所以,4個選項(xiàng)中選項(xiàng)C符合題意。

53.D解析:本題主要考查自加(++)、自減(--)運(yùn)算符的使用?!?+i,--i”在使用i之前,先使i的值加1或者減1,然后再使用i此時的值參與運(yùn)算;“i++,i--”是在使用i參與表達(dá)式運(yùn)算之后,再使i的值加1或者減1。本題中--a和++b是先執(zhí)行a減1和b加1操作,再輸出表達(dá)式的值。

54.D解析:兩個字符串的比較是從左至右對兩個字符串對應(yīng)位置上的字符逐個進(jìn)行比較,即按其ASCII碼值的大小比較,直到出現(xiàn)不同的字符或遇到,'\\0'為止。若全部字符都相同,則兩個字符串相等,返回0;若出現(xiàn)不相同的字符,則返回第一個不相等字符的ASCII碼的差值。fun函數(shù)實(shí)現(xiàn)了該功能。

55.A解析:本題考核的知識點(diǎn)是一維數(shù)組的定義,初始化和數(shù)組中元素的引用。函數(shù)f()的作用是形參a為偶數(shù)的時候返回0,主函數(shù)中首先定義了一個長度為8的一維數(shù)組,然后給它賦初值使得s[0]=1、a[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6.其他沒有賦值的數(shù)組元素將自動賦值為0。for循環(huán)中,當(dāng)s[1]不為偶數(shù)的時,將s[i]相加,即當(dāng)i=3時,s[i]=2為偶數(shù),退出循環(huán),此時d的值為d=s101+s[1]+s[2]=1+3+5=9,因此最后輸出的d的值為9。所以,4個選項(xiàng)中選項(xiàng)A符合題意。

56.A

57.A解析:1與1異或結(jié)果為0,0與1異或結(jié)果為1,可見要使某位數(shù)翻轉(zhuǎn),只要使其與1進(jìn)行異或運(yùn)算即可。0與0進(jìn)行異或運(yùn)算結(jié)果為0,1與0進(jìn)行異或運(yùn)算結(jié)果為1,可見要使某位的數(shù)不變,只要使其與0進(jìn)行異或運(yùn)算即可。

58.D解析:由97-65=32可知大寫字母對應(yīng)的小寫字母之間相差32,所以將大寫字母加上32就得到小寫字母,所以選項(xiàng)B和C是正確的。選項(xiàng)A中(c—‘A’)%26可以求出變量c中的字母與字母A相差幾位.那么小寫字母a的ASCⅡ碼向后移動相差的位數(shù)就是對應(yīng)的小寫字母,所以選項(xiàng)A也是正確的。

59.C解析:a為指針數(shù)組,a[0]即數(shù)組a的數(shù)組名指向字符串'123'的首地址,輸出*a為'123',*a+1將指針下移1個存儲單元,輸出字符串為”23”。a[1]指向字符串'456'的首地址,a[2]指向字符串'789'的首地址。b為指針的指針,它的值為數(shù)組a的首地址。

60.C解析:選項(xiàng)A和B兩個表達(dá)式都越界了;選項(xiàng)D中,*t[2]是目標(biāo)變量,即—個整型值,而不是地址值。

61.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ù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。

\n

62.B

63.C

64.A

65.D數(shù)據(jù)流圖DFD是結(jié)構(gòu)化分析方法最主要的一種圖形工具,不屬于過程設(shè)計(jì)工具。

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

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

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

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

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

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

67.B解析:條件表達(dá)式的形式為:“表達(dá)式1?表達(dá)式2:表達(dá)式3”。其含義為:當(dāng)“表達(dá)式1”的值為非零時,求出“表達(dá)式2”的值,此時

溫馨提示

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

評論

0/150

提交評論