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

下載本文檔

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

文檔簡介

2021年廣東省佛山市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.已知10個元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹,查找值為62的結點所需比較次數(shù)為()

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

2.下列敘述中錯誤的是()。A.在程序中凡是以“#”開始的語句行都是預處理命令行

B.預處理命令行的最后不能以分號表示結束

C.#defineMAX是合法的宏定義命令行

D.C程序對預處理命令行的處理是在程序執(zhí)行的過程中進行的

3.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運行時輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結果是()。

A.w,youjing,o

B.welcome,you,jing,to

C.w,you,eeijing,u

D.w,xelcome,eeijing,u

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

A.當對文件的讀(寫)操作完成之后,必須將它關閉,否則可能導致數(shù)據(jù)丟失

B.打開一個已存在的文件并進行寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個程序中對文件進行寫操作后,必須先關閉該文件然后再打開才能讀到第1個數(shù)據(jù)

D.C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

5.

6.和順序棧相比,鏈棧有一個比較明顯的優(yōu)勢是()。

A.通常不會出現(xiàn)棧滿的情況B.通常不會出現(xiàn)棧空的情況C.插入操作更容易實現(xiàn)D.刪除操作更容易實現(xiàn)

7.算法的空間復雜度是指()。

A.算法在執(zhí)行過程中所需要的計算機存儲空間

B.算法所處理的數(shù)據(jù)量

C.算法程序中的語句或指令條數(shù)

D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)

8.下列對于線性鏈表的描述中正確的是()。

A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

9.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234

10.若變量已正確定義,有以下程序段“i=0;do{printf(“%d,”,i);}while(i++);printf(“%d\n”,i);”,程序段的運行結果是()。A.0,1B.0,0C.1,1D.程序進入無限循環(huán)

11.廣義表((a),a)的表頭是()。

A.aB.(a)C.((a))D.()

12.

13.下列語句組中正確的是()。

A.char*s;s={“BOOK!”};

B.char*s;s=“BOOK!”;

C.chars[10];s=“BOOK!”;

D.chars[];s=“BOOK!”;

14.以下敘述中錯誤的是A.gets函數(shù)用于從終端讀入字符串

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

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

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

15.以下敘述中正確的是_____。A.用C程序實現(xiàn)的算法必須要有輸入和輸出操作

B.用C程序實現(xiàn)的算法可以沒有輸出但必須要輸入

C.用C程序實現(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序實現(xiàn)的算法可以既沒有輸入也沒有輸出

16.某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數(shù)是A.10B.8C.6D.4

17.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面

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

A.算法就是程序B.設計算法時只需要考慮數(shù)據(jù)結構的設計C.設計算法時只需要考慮結果的可靠性D.以上3種說法都不對

19.設”inta=12;”,則執(zhí)行完語句”a+=a*a;”后,a的值是()。

A.12B.144C.156D.288

20.設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績.,則表SC的關鍵字(鍵或碼)為()

A.課號,成績B.學號,成績C.學號,課號D.學號,姓名,成績

二、2.填空題(20題)21.有以下程序:

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

main()

{intx,y;

scanf("%d",&x);

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

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

}

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

22.設有宏定義:

#defineWIDTH80

#defineLENGTHWIDTH+40

則執(zhí)行賦值語句“v=LENGTH*20;"(v為int型變量)后,v的值是【】。

23.以下程序運行后的輸出結果是【】。

main()

{intm=011,n=11;

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

}

24.以下程序通過函數(shù)指針p調用函數(shù)fun,請在填空欄內寫出定義變量p的語句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

25.軟件危機出現(xiàn)于60年代末,為了解決軟件危機,人們提出了【】的原理來設計軟件,這就是軟件工程誕生的基礎。

26.若輸入thistestterminal,以下程序的輸出結果為:terminaltestthis。請?zhí)羁铡?/p>

#defineMAXLINE20

【】

{inti;

char*pstr[3],str[3][MAXLINE];

for(i=0;i<3;++)pstr[i]=str[i];

for(i=0;i<3;i++)scanf("%s",pstr[1]);

sort(pstr);

for(i=0;i<3;i++)prntf("%s",pstr[i]);

}

sort(【】)

char*pstr[3];

{inti,j;

char*p;

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

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

if(strcmp(*(pstr+i,*(pstr+j)>0

{p=*(pstr+i);

*(pstr+i=【】;

*(pstr+j)=p;

}

27.設Y是int型變量,請寫出判斷Y為奇數(shù)的關系表達式【】。

28.用以下程序把從鍵盤輸入的字符存放到一個文件中,用字符#作為結束符,請按題意要求填空完善程序。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if(fp=fopen(【】))==NULL)

{printf("can'topen\n");

【】;

}

while((ch=getchar())!='#')

fputc(【】);

fclose(fp);

}

29.以下程序段的輸出結果是【】。

inti=9;

printf("%o\n",i);

30.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。

31.如果調用fopen函數(shù)不成功,則函數(shù)返回【】;如果調用fclose函數(shù)不成功,則函數(shù)返回【】。

32.棧中允許進行插入和刪除的一端叫做______。

33.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體"項目主管"與實體"項目"的聯(lián)系屬于【】的聯(lián)系。

34.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

35.設有以下定義和語句:

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

p[0]=a[1];

則*(p[0]+1)所代表的數(shù)組元素是【】。

36.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。

37.若a是血型變量,且a的初值為4,則計算a+=a-=a*a表達式后a的值為______。

38.棧和隊列通常采用的存儲結構是【】。

39.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。

structdate

{intday;

intmouth;

intyear;

union{intshare1;

floatshare2;

}share;

}a;

40.下列語句的輸出結果是【】。

chara=3;printf("%d,%o,%x,%u\n",a,a,a,a);

三、1.選擇題(20題)41.有以下程序:#defmeP3voidP(intx){return(p*x*x);}main(){pritnf("%d\n",F(3+5);}程序運行后的輸出結果是()。

A.192B.29C.25D.編譯出錯

42.有以下程序voidfun(char*c,intd){*c=*c+1;d=d+1;printf(“%c,%c”,*c,d);}main(){chara='A',b='a';fun(&b,a);printf(“%c,%c\n”,a,b);}程序運行后的輸出結果是

A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

43.兩次運行下列的程序,如果從鍵盤上分別輸入3和1,則輸出結果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}

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

44.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦值40000的正確語句是()

A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;

45.以下程序有錯,錯誤原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;……}

A.p和q的類型不一致,不能執(zhí)行*p=*q;語句

B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句

C.q沒有指向具體的存儲單元,所以*q沒有實際意義

D.q雖然指向了具體的存儲單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會影響后面語句的執(zhí)行結果

46.有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應該是

A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)

47.數(shù)據(jù)獨立性是數(shù)據(jù)庫技術的重要特點之一。所謂數(shù)據(jù)獨立性是指()

A.數(shù)據(jù)與程序獨立存放

B.不同的數(shù)據(jù)被存放在不同的文件中

C.不同的數(shù)據(jù)只能被對應的應用程序所使用

D.以上三種說法都不對

48.有以下程序:#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf("%s\n",str);}程序運行后的輸出結果是()。

A.abcdcfgB.gfedcbaC.gbcdefaD.abedcfg

49.下列選項中可作為C語言合法常量的是()。

A.-80B.-80C.-80.0D.-80.0e

50.以下不能正確進行字符串賦初值的語句是

A.charstr[5]="good!";

B.charstr[]="good!";

C.char*srt="good!";

D.charstr[5]={'g','o','o','d'};

51.設有棧S和隊列Q,其初始狀態(tài)為空,元素a1、a2、a3、a4、a5、a6依次入棧,出棧的元素進入隊列Q,若6個元素出隊列的順序是a2、a4、a3、a6、a5、a1,則棧的容量至少是______。

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

52.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。

A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值

53.調用gets和puts函數(shù)時,必須包含的頭文件是

A.stdio.hB.stdlib.hC.defineD.以上都不對

54.有以下程序

main()

{inti,s=1;

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

if(!(i%5)&&!(i%3))s+=i;

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

程序的輸出結果是

A.409B.277C.1D.91

55.軟件開發(fā)的原型化方法是一種動態(tài)定義軟件需求的方法,下述條件中,______是實施原型化方法所必需的。

①成熟的原型化人員

②快速的成型工具

③需求了解的準確性

A.①和③B.①和②C.②和③D.全部

56.下面程序段的輸出為()。

#include"stdio.h"

main

{

printf("%d\n",12<<2);

}

A.0B.47C.48D.24

57.判斷char型變量c1是否為小寫字母的正確表達式為()。

A.'a'<=c1<='z'

B.(c1>=A)‖(c1<=z)

C.('a'=>c1‖('z'<=c1)

D.(c1>='a')&&(c1<='z')

58.有以下定義:#include<stdio.h>chara[10],*b=a;不能給數(shù)組a輸入字符串的語句是()。

A.gets(a)B.gets(a10])C.gets(&a[0});D.gets(b);

59.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄

B.數(shù)據(jù)行

C.數(shù)據(jù)塊

D.字符(字節(jié))序列

60.若執(zhí)行下列的程序時,從鍵盤上輸入1和2,則輸出結果是()。

#include<stdio.h>

main()

{inta,b,s;

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

S=a;

if(a<B)s=b;

s=s*s;

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

}

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

四、選擇題(20題)61.

62.下列敘述中正確的是()。A.數(shù)據(jù)庫系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨立性問題,而文件系統(tǒng)不能

B.數(shù)據(jù)庫系統(tǒng)能夠管理各種類型的文件,而文件系統(tǒng)只能管理程序文件

C.數(shù)據(jù)庫系統(tǒng)可以管理龐大的數(shù)據(jù)量,而文件系統(tǒng)管理的數(shù)據(jù)量較少

D.數(shù)據(jù)庫系統(tǒng)獨立性較差,而文件系統(tǒng)獨立性較好

63.

64.有以下程序:

程序運行后的結果是()。

A.有運行錯誤B.輸出ll.10C.輸出l2.10D.輸出21.10

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

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

66.

下列程序的運行結果是()。

#include<stdio.h>

main

{staticchara[]="Languagef",b[]="programe":

char*p1,*p2;intk;

p1=a;p2=b;

for(k=0;k<=8;k++)

if(*(p1+k)==*(p2+k))

printf("%c",*(p1+k)):

}

A.gaeB.angC.programD.有語法錯

67.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

68.語句“printf("akbre"\'hi\'y\\\bou\n")”;的輸出結果是()。

A.akbre\'hi\'y'\\\bou

B.a\bre\'hi\\y\bou

C.re'hi'you

D.abre'hi'y\bou

69.下列程序的運行結果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2

70.

71.以下選項中不能用作C程序合法常量的是()。

72.以下程序的輸出結果是()。

A.678910

B.13579

C.12345

D.62345

73.

74.在下列選項中,哪個不是一個算法一般應該具有的基本特征()。

A.無窮性B.可行性C.確定性D.有窮性

75.若i、j已定義成int型,則下列程序段中內循環(huán)體的總執(zhí)行次數(shù)是()。

for(i=6;i>0;i--)

for(j=0;j<4;j++){…}A.A.20B.24C.25D.30

76.以下程序的輸出結果是()。

main

{charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;

for(k=1;k<3;k++)printf("%s\n",w[k]);A.A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL

77.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

78.有以下程序

structSTU

{

charname[10];

intnum;

intScore;

};

main()

{

structSTUs[5]={{"YangSan",20041,703},

{"LiSiGuo",20042,580},

{"WangYin",20043,680},

{"SunDan",20044,550},

{"Penghua",20045,537}},*p[5],*t;

inti,j;

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

p[i]=&s[i];

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

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

if(p[i]->Score>p[j]->Score)

{

t=p[i];

p[i]=p[j];

p[j]=t;

}

printf("%d%d\n",s[1].Score,p[1]->Score);

}

程序運行后的輸出結果是

A.550550B.580550

C.680680D.580680

79.定義下列結構體(聯(lián)合)數(shù)組:

structst

{charname[15];

intage;

}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);

執(zhí)行語句printf("%d,%C",a[2].a(chǎn)ge,*(a[3].name+2))的輸出結果為()。A.A.15,AB.16,HC.16,AD.17,H

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

A.使用三種基本結構構成的程序只能解決簡單問題

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

C.C語言是-種結構化程序設計語言

D.結構化程序設計提倡模塊化的設計方法

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用下面的公式求π的近似值,直到最后一項的絕對值小于指定的數(shù)(參數(shù)num)為止。π/4≈1-1/3+1/5-1/7+…例如,程序運行后,輸入0.0001,則程序輸出3.1414。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:將字符串尾部的*號全部刪除,前面和中間的*號不刪除。例如,若字符串中的內容為****a*bc*def*g。***,刪除后,字符串中的內容則應當是****a*bc*def*g。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.C解析:預處理命令行是以“#”開始的語句,預處理命令行的最后不能以分號表示結束,預處理命令行。其中宏定義的字符替換的定義格式為:#define標識符字符串,預處理命令行是在系統(tǒng)對源程序進行編譯之前進行處理的,不是在程序執(zhí)行的過程中。

3.A題干中,定義一個二維字符數(shù)組v。然后通過for循環(huán),輸入4個字符串welcome、you、to、beijing,將其分別存放在v的4個元素中。數(shù)組v是存放4個字符串的二維數(shù)組;“**v”表示第1個字符串的第一個字符“w”;“*(v+1)”指向第2個字符串“you”;“v[3]+3”指向第4個字符串的第3個字符開始后的整個字符串“jing”;“*(v[2]+1)”表示第3個宇符串的第2個字符“o”。故本題答案為A選項。

4.AB選項中,打開一個已存在的文件并進行寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等。C選項中,在一個程序中對文件進行寫操作后,不是先關閉該文件然后再打開才能讀到第1個數(shù)據(jù),用fseek函數(shù)進行重新定位即可。D選項中,C語言中的文件可以進行隨機讀寫。故本題答案為A選項。

5.C

6.A

7.A算法的空間復雜度是指算法在執(zhí)行過程中所需要的內存空間。所以選擇A項。

8.A解析:在鏈式存儲結構中,存儲數(shù)據(jù)的存儲空間可以不連續(xù),各數(shù)據(jù)結點的存儲順序與數(shù)據(jù)元素之間的邏輯關系可以不一致,數(shù)據(jù)元素之間的邏輯關系,是由指針域來確定的。由此可見,選項A的描述正確。因此,本題的正確答案為A。

9.D

10.A第1次首先執(zhí)行循環(huán)體,輸出i的值為0,然后判斷while的條件“i++”,因為“i++”是后綴自增運算,先使用后自增,所以判斷時條件為假,跳出循環(huán),但是仍執(zhí)行了i的自增操作,i的值為1,在接下來的printf語句中進行輸出。故本題答案為A選項。

11.B

12.D

13.BA選項去掉花括號后,賦值正確;C選項和D選項應在定義時賦初值,因為數(shù)組名相當于常量,不能重新賦值。故本題答案為B選項。

14.B其中B選項的getchar函數(shù)用于從終端讀入字符。故本題答案為B選項。

15.C解析:算法的特性中包括“有零個或多個輸入”及“有一個或多個輸出”這兩個特性。一個算法得到的結果就是算法的輸出,沒有輸出的算法是沒有意義的,所以一千算法必須至少有一個輸出。

16.C根據(jù)二叉樹的性質,在任意二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。

17.A解析:在函數(shù)體內定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。

18.D程序(program)是為實現(xiàn)特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。設計算法時要考慮到數(shù)據(jù)結構的設計,但是不僅僅是要考慮到數(shù)據(jù)結構的設計,還要考慮到其他的程序結構的問題。設計算法時不能只考慮結果的正確性和可靠性,還需要考慮到程序的時間冗余度等方面。所以答案選擇D。

19.C

20.C學號是學生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關鍵字就應該是與前兩個表能夠直接聯(lián)系且能唯一定義的學號和課號,所以選擇C項。

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

22.880

23.10111011解析:前綴自增運算時,表達式的值和變量自增之后的值相同;后綴自增運算時,表達式的值為變量自增之前的值。所以,本題程序輸出的兩個結果分別是m+1和n的值。而m在初始化時使用的是八進制常量011,轉換為十進制為9。故輸出結果是1011。

24.void(*p)();void(*p)();解析:要定義p為指向函數(shù)的指針變量,需寫成void(*p)();,注意*p兩側的括弧不可以省略,表示P先與*結合,是指針變量,再與后面的()結合,表示此指針變量指向函數(shù),這個函數(shù)無返回值(同fun()函數(shù))。

25.軟件工程學軟件工程學

26.main()pstr*(pstr+j)

27.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

28.fname"#"exit(0)chfp

29.1111解析:本題考核的知識點是printf()函數(shù)的輸出格式。本題中定義了一個整型變量i并賦初值為9,然后要求以八進制輸出i的值,9的八進制數(shù)的表示為11。

30.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。

31.NULL或0EOF或-1NULL或0\r\nEOF或-1解析:如果fopen()函數(shù)調用不成功,則返回一個空指針值NULL(0);如果fclose()函數(shù)調用不成功,則返回EOF(-1)。所以本題的兩個空應分別填NULL和EOF。

32.棧頂棧頂解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。

33.一對多(或1∶N)一對多(或1∶N)解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關系,這種函數(shù)關系可以有3種,即一對一(1∶1)的聯(lián)系、一對多(1∶N)或多對一(N∶1)的聯(lián)系和多對多(N∶N)的聯(lián)系。

34.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

35.a[1][1]a[1][1]解析:p是一個指針數(shù)組,p[0]指向數(shù)組a[1][0]。*(p[0]+1)代表數(shù)組a[1][1]。

36.完善性軟件維護活動包括以下幾類:改正性維護,適應性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

37.-24-24解析:本題考查賦值運算符a+=b等價于a=a+b;a-=a*a等價于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。

38.鏈式存儲和順序存儲鏈式存儲和順序存儲

39.10410\r\n4解析:結構體變量所占內存長度是各成員占的內存長度之和。每個成員分別占有其自己的內存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。

40.31371f3131,37,1f,31解析:此題考查了printf函數(shù)的格式字符,題中d是以十進制形式輸出,o是以八進制形式輸出,x是以十六進制形式輸出,u以不帶符號的十進制數(shù)輸出。

41.D解析:本題是一道陷阱題,考生如果沒注意到F()函數(shù)被定義為void類型的話,很容易錯選為選項A,其實應該選擇選項D,編譯出錯。

42.D解析:用地址作為參數(shù)與值作為參數(shù)傳遞之間的不同。在C語言中,數(shù)據(jù)傳遞是單向傳遞的?!爸祩鬟f”就是實參把對應的值傳給相應的形參變量,然后形參和實參不再有任何聯(lián)系,在被調用函數(shù)中,對形參的修改并不影響對應的實參?!暗刂穫鬟f”就是實參把相應的地址傳給相應的形參變量,在被調用函數(shù)中對形參的修改將修改對應的實參地址對應的值。程序中定義了兩個字符型變量'a'和'b',并分別賦初值為'A'和'a',然后調用函數(shù)fun(),將b的地址和:值作為實參。在函數(shù)fun()中第一個參數(shù)是傳遞地址,故在調用函數(shù)fun()中對參數(shù)做的修改(即將b值加1)將影響字符型變量的值(變?yōu)閎),函數(shù)fun()第二個參數(shù)是傳值的,故在調用函數(shù)fun()對第二個參數(shù)做的修改不影響字符型變量a(即'a'的值仍為'A'),所以在fun()函數(shù)中輸出的是d為b,B,接著在主函數(shù)中,輸出a,b,然后退出fun()函數(shù),接著執(zhí)行后面的語句,輸出A,b。所以最后輸出為b,B,A,b。

43.A解析:本題考查ifelse語句。首先scanf函數(shù)通過鍵盤讀入x的值。當x=3時,第一個if語句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出x的值4。當x=1時,第一個if語句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語句,先輸出x的值2,再將x的值減1。

44.D

45.D解析:該程序的執(zhí)行過程是:首先聲明整型指針變量P和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,將40賦給*p,此時,q已經(jīng)指向了一個具體的存儲單元,但ch的值不確定,即*p沒有確定的值,所以不能執(zhí)行*p=*q語句。

46.D解析:本題考查的是do…while循環(huán)結構.do…while循環(huán)與while循環(huán)的區(qū)別就是,前者是先執(zhí)行循環(huán)體,后判斷循環(huán)變量,故至少會執(zhí)行一遍循環(huán)體;后者先判斷再執(zhí)行,可能循環(huán)體一次也不會執(zhí)行。本題首先讓t=1,然后在循環(huán)體中每次自減2,所以判斷循環(huán)條件的時候,t會等于-1、-3、-5……,故只有n等于任意的負奇數(shù)才有可能終止循環(huán).選項D正確。

47.D解析:在數(shù)據(jù)庫系統(tǒng)中,通過系統(tǒng)提供的映象功能,使數(shù)據(jù)具有兩方面的獨立性:一是物理獨立性。即由于數(shù)據(jù)的存儲結構與邏輯結構之間由系統(tǒng)提供映象,使得當數(shù)據(jù)的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改。二是邏輯獨立性。即由于數(shù)據(jù)的局部邏輯結構(它是總體邏輯結構的一個子集,由具體的應用程序所確定,并且根據(jù)具體的需要可以作一定的修改)與總體邏輯結構之間也由系統(tǒng)提供映象,使得當總體邏輯結構改變時,其局部邏輯結構可以不變,從而根據(jù)局部邏輯結構編寫的應用程序也可以不必修改。由此可知,選項A.B與C中的說法都是錯誤的。

48.B解析:本題定義的函數(shù)f()是一個遞歸函數(shù)。它先交換兩個字符指針所指的內容,然后將第1個指針往后移動—位,第2個指針往前移動一位,如果第1個指針所指內容不是字符串結束標志,則遞歸調用自身。主函數(shù)中首先定義了—個字符數(shù)組sir[10]=“ahcdeft”然后定義了一個字符指針p=str+strlen(str)/2+1,即讓p指向str+4(或&str[4])的位置。然后調用f(p,p-2);,這使得p所指的str[4]及其以后的2個位置str[5]、str[6]中的內容同p-2所指的str[p]及其以前的2個位置str[1]、str[0]中的內容互相交換。即讓整個字符串逆序。所以本題應該選擇B。

49.A

50.A解析:本題考核的知識點是字符數(shù)組和字符指針變量的初始化。選項A定義了一個字符數(shù)組str,具有5個元素,但賦初值的時候,初值個數(shù)卻是6個(有一個'\\0'),故選項A錯誤的;選項B定義了一個字符數(shù)組str并給它賦初值,由于省去了長度定義,長度由初值個數(shù)確定,相當于str[6],選項B正確;選項C定義了一個字符型指針變量并用一個字符串給它賦初值,使該字符型指針指向了該字符串,選項C正確;選項D是對字符型數(shù)組中單個元素依次賦初值,選項D正確。所以,4個選項中A為所選。

51.C

52.B解析:由函數(shù)intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。

53.A解析:gets函數(shù)和puts函數(shù)是庫函數(shù),必須包含的頭文件是stdio.h。

54.D解析:本題是計算50之內的自然數(shù)相加之和,題中if語句括號中的條件表達式!(i%5)&&!(i%3)表明只有能同時被5和3整除的數(shù)才符合相加的條件,1~49之間滿足這個條件的只有,15、30和45,因為s的初始值為1,所以s=1+15+30+45=91。

55.B

56.C解析:考查位運算的運算原理。<<為左移運算符,運算符的左邊是移位對象;右邊是整型表達式,代表左移的位數(shù),左移時,右端(低位)補0;左端(高位)移出的部分舍棄。

57.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確.

58.B解析:函數(shù)gets()的調用形式為gets(str_adr);str_adr存放字符串的起始地址??梢允亲址麛?shù)組名、字符指針或字符數(shù)組元素的地址。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。本題中定義一個長度為10的字符數(shù)組,和一個指針變量b,并且通過賦值讓它指向數(shù)組a。選項A、選項B、選項C和選項D中只有選項B中gets函數(shù)的參數(shù)a[0]不能表示數(shù)組a的首地址,故選項B不正確。所以,4個選項中選項B符合題意。

59.D解析:C語言中的文件是流式文件。流式文件是一種無結構文件,即整個文件是一串字符流或二進制流。文件的存取以字符或字節(jié)為單位。

60.B解析:本題考查if語句。scanf函數(shù)通過鍵盤讀入a、b的值,a=1,b=2。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,則s=b=2,s=s*s=4。

61.C

62.A數(shù)據(jù)管理技術的發(fā)展經(jīng)歷了3個階段:

人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。三者各自的特點如下表所示。\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t特點\t\t\t\t\t\t\t人工管理階段\t\t\t\t\t\t\t文件系統(tǒng)階段\t\t\t\t\t\t\t數(shù)據(jù)庫系統(tǒng)階段\t\t\t\t\t\t\t管理者\t\t\t\t\t\t\t人\t\t\t\t\t\t\t文件系統(tǒng)\t\t\t\t\t\t\t數(shù)據(jù)庫管理系統(tǒng)\t\t\t\t\t\t\t面向對象\t\t\t\t\t\t\t某個應用程序\t\t\t\t\t\t\t某個應用程序\t\t\t\t\t\t\t現(xiàn)實世界\t\t\t\t\t\t\t共享程度\t\t\t\t\t\t\t無共享,冗余度大\t\t\t\t\t\t\t共享性差,冗余度大\t\t\t\t\t\t\t共享性大,冗余度小\t\t\t\t\t\t\t獨立性\t\t\t\t\t\t\t不獨立,完全依賴于程序\t\t\t\t\t\t\t獨立性差\t\t\t\t\t\t\t具有高度的物理獨立性和一定的邏輯獨立性\t\t\t\t\t\t\t結構化\t\t\t\t\t\t\t無結構\t\t\t\t\t\t\t記錄內有結構,整體無結構\t\t\t\t\t\t\t整體結構化。用數(shù)據(jù)筷基謄述\t\t\t\t\t\t\t控制能力\t\t\t\t\t\t\t由應用程序控制\t\t\t\t\t\t\t由應用程序控制\t\t\t\t\t\t\t由DB蝰墨供數(shù)據(jù)安全性、完整性、并發(fā)控剖和恢復\t\t\t\t數(shù)據(jù)庫系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨立性問題,面文件系統(tǒng)不能。數(shù)據(jù)庫系統(tǒng)和文件系統(tǒng)的區(qū)別

溫馨提示

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

評論

0/150

提交評論