2022年山西省臨汾市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第1頁
2022年山西省臨汾市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第2頁
2022年山西省臨汾市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第3頁
2022年山西省臨汾市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)_第4頁
2022年山西省臨汾市全國計(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)

文檔簡介

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

一、單選題(20題)1.若有說明語句:double*P,a;則能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是()。

A.*p=&a;scanf("%lf",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%lf",*p);

D.p=&a;scanf("%lf",p);

2.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項(xiàng)中錯(cuò)誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])

B.doublefun(double*a)

C.doublefun(doublea[])

D.doublefun(doublea)

3.

4.程序流程圖中帶有箭頭的線段表示的是()。

A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系

5.以下關(guān)于鏈?zhǔn)酱鎯Y(jié)構(gòu)的敘述中,()是不正確的。

A.結(jié)點(diǎn)除自身信息外還包括指針域,因此存儲密度小于順序存儲結(jié)構(gòu)

B.邏輯上相鄰的結(jié)點(diǎn)物理上不必鄰接

C.可以通過計(jì)算直接確定第i個(gè)結(jié)點(diǎn)的存儲地址

D.插入、刪除運(yùn)算操作方便,不必移動結(jié)點(diǎn)

6.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

7.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)當(dāng)執(zhí)行程序時(shí),輸出的結(jié)果是()。A.-1B.1C.4D.0

8.十六進(jìn)制數(shù)BB轉(zhuǎn)換成十進(jìn)制數(shù)是()

A.192B.256C.187D.121

9.fgetc函數(shù)的作用是從指定文件讀入—個(gè)字符,該文件的打開方式必須是______。

A.只讀B.追加C.讀或讀寫D.以上均正確

10.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()。

A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序的易讀性

11.某二叉樹有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是A.10B.8C.6D.4

12.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}執(zhí)行后輸出的結(jié)果是A.11122B.12C.12020D.120

13.常采用的兩種存儲結(jié)構(gòu)是()。

A.順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)

14.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的運(yùn)行結(jié)果是()。

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

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

A.C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的

B.用C語言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行

C.通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行

D.在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件

16.

17.設(shè)有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯(cuò)誤的是()。A.A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

18.

19.設(shè)散列表長m=14,散列函數(shù)H(K)=K%11,已知表中已有4個(gè)結(jié)點(diǎn):r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址為空,如用二次探測再散列處理沖突,關(guān)鍵字為49的結(jié)點(diǎn)地址是_____。

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

20.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),

A.均占4個(gè)字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定

二、2.填空題(20題)21.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請?zhí)羁铡?/p>

main()

{inti,i,x;

for(j=4;j______;j--)

{for(i=1;i<4;i++)

{x=(j-1)*4+______;

printf("%4d",x);

}

printf("\n");

}

22.耦合和內(nèi)聚是評價(jià)模塊獨(dú)立性的兩個(gè)主要標(biāo)準(zhǔn),其中______反映了模塊內(nèi)各成分之間的聯(lián)系。

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

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

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

}

24.設(shè)有以下程序,為使之正確運(yùn)行,請?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

25.診斷和改正程序中錯(cuò)誤的工作通常稱為【】。

26.請讀程序片段:

inta=17;

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

以上程序片段的輸出結(jié)果是【】。

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

#include<stdio.h>

main()

{inta=2,b=-1,C=2;

if(a<B)

if(b<O)c=0;

elsec++;

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

}

28.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。

#include"stdio.h"

main()

{charfun(char,int);

chara=′A′;

intb=13;

a=fun(a,b);

putchar(a);}

charfun(chara,intb)

{chark;

k=a+b;

returnk;}

29.下面程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];intI;for(I=0;I<SIZE;I++)s[I]=′A′+I+321;

sub(s,7,SIZE-1);

for(I=0;I<SIZE;I++)printf("%c",s[I]);

printf("\n");}

sub(char*a,intt1,intt2)

{charch;

while(t1<t2)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

30.關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,一般有______、增加、刪除和修改四種操作。

31.若a是int型變量,則下列表達(dá)式的值為______。

(a=2*3,a*2),a+4

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

main()

{

inta[4]]4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};

inti=0.j=0,s=0;

while(i++<4}

if(i==2||i==4)continue;

j=0;

do

{

s+=a[i][j]:

j++;

}while(j<4);

}

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

}

voidfun(intx,inty)

}

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

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

35.若變量n中的值為24,則prnt函數(shù)共輸出【】行。

voidprnt(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if!(i%5))printf("\n");

}

printf("\n");

}

36.在索引查找或分塊查找中,首先查找【】,然后再查找相應(yīng)的【】,整個(gè)索引查找的平均查找長度等于查找索引表的平均查找長度與查找相應(yīng)子表的平均查找長度之和。

37.數(shù)據(jù)的獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,這稱為______。

38.以下定義的結(jié)構(gòu)體類型擬包含兩個(gè)成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補(bǔ)充完整。

structnode

{intinfo;

【】link;};

39.衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn),其中()是度量一個(gè)模塊功能強(qiáng)度的一個(gè)相對指標(biāo)。

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

#include<stdio,h>

voidswap(y)

{intt;

t=x;x=y;y=t:printf("%d%d",x,y);

}

main()

{ihta=3,b=4:

swap(a,b);prinff("%d%d",a,b);

}

三、1.選擇題(20題)41.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成________。

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

42.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

43.下列程序執(zhí)行后輸出的結(jié)果是()#include<stdio.h>f(intA){intb=0;staticc=3;a=c++,b++;return(A);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}

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

44.以下程序的功能是:建立一個(gè)帶有頭結(jié)點(diǎn)的甲—向鏈表,并將存儲在數(shù)組中的字符依次轉(zhuǎn)存到鏈表的各個(gè)結(jié)點(diǎn)中,請從與下劃線處號碼對應(yīng)的一組選項(xiàng)中選擇出正確的選項(xiàng)。

#include<stdlib.h>

structnode

{chardata;structnode*next:};

(1)CreatList(char*s)

{

structnode*h,*p,*q;

h=(structnode*)mallocsizeof(structnode));

p=q=h;

while(*s!='\0')

{

p=(structnode*)malloc(sizeof(structnode));

p->data=(2);

q->next=p;

q-(3);

S++;

}

p->next='\0';

returnh;

}

main()

{

charstr[]="linklist";

structnode*head;

head=CreatList(str);

}

(1)

A.char*B.structnodeC.structnode*D.char

45.以下只有在使用時(shí)才為該類型變量分配存儲單元的存儲類說明是______。

A.auto和static

B.auto和register

C.register和static

D.extern和register

46.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序運(yùn)行后的輸出結(jié)果是()。

A.-1B.65535C.32767D.-32768

47.下列程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}

A.3,14,1B.3,14,2C.2,04,1D.2,14,1

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

#defineMAX(A,B)(A)>(B)?(A):(B)

#definePRINT(Y)printf("Y=%d\t",Y)

main()

{inta=1,b=2,c=3,d=4,t;

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

PRINT(t);}

A.Y=3B.存在語法錯(cuò)誤C.Y=7D.Y=0

49.設(shè)有數(shù)組定義:chararray[]="China";則數(shù)組array所占的空間為()

A.4個(gè)字節(jié)B.5個(gè)字節(jié)C.6個(gè)字節(jié)D.7個(gè)字節(jié)

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

A.chars[10]="abedefg";

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

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

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

51.設(shè)有如下程序:charsub(char*q){while(*q,='\0'){if(*q>='A'&&*q<='Z')*q=*q+32;elseif(*q>='a'&&*q<='z')*q=*q-32;printf("%c",*q);q++;}}main(){char*s="abcABC";sub(s);}則程序運(yùn)行后的輸出結(jié)果是()

A.ABCabcB.abcABCC.abcabcD.ABCABC

52.在數(shù)據(jù)管理技術(shù)發(fā)展過程中,文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的本質(zhì)區(qū)別是:數(shù)據(jù)庫系統(tǒng)具有______。

A.數(shù)據(jù)結(jié)構(gòu)化B.數(shù)據(jù)無冗余C.數(shù)據(jù)共享D.數(shù)據(jù)獨(dú)立性

53.閱讀下列程序,則運(yùn)行結(jié)果為

#include"stdio.h"

fun()

{staticintx=5;

x++;

returnx;}

main()

{inti,x;

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

x=fun();

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

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

54.設(shè)有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是

A.PER是結(jié)構(gòu)體變量名

B.PER是結(jié)構(gòu)體類型名

C.typedefstruct是結(jié)構(gòu)體類型

D.struct是結(jié)構(gòu)體類型名

55.已知一個(gè)有序線性表為(13,18,24,35,47,50,62,83,90,115,134),當(dāng)用二分法查找值為90的元素時(shí),查找成功的比較次數(shù)為()。

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

56.下列程序輸出的結(jié)果是()。main(){inta;a=-4+4*5-6;printf("%d",a);a=4+4%5-6;printf("%d",a);a=-3+4%6/5;printf("%d",a);a=(7+6)%5/2;printf("%d",a);}

A.102-31B.10-221C.11-221D.10221

57.若一個(gè)外部變量的定義形式為staticintx;,那么,其中static的作用應(yīng)該是______。

A.將變量存儲在靜態(tài)存儲區(qū)B.使變量x可以由系統(tǒng)自動初始化C.使x只能在本文件內(nèi)引用D.使x的值可以永久保留

58.下列用于printf函數(shù)的控制字符常量中,代表“橫向跳格”的字符常量是()

A.\bB.\tC.\rD.\f

59.下面程序的輸出結(jié)果是()#include<stdio.h>main(){inti,a[]={2,4,6,8};int*p=a;for(i=0;i<4;i++)a[i]=*p++;printf(*%d\n",a[2]);}

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

60.若有如下程序段:structstudent{intnum;floatscore;}stu[3]={{10,85},{60,58},{32,23}};main(){structstudent*t;t=stu;}則下面表達(dá)式中值為58的是()。

A.(*t).numB.*(t++)->numC.(*++t)scoreD.(++t)->score

四、選擇題(20題)61.

62.下面關(guān)于完全二叉樹的敘述中,錯(cuò)誤的是______。A.A.除了最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值

B.可能缺少若干個(gè)左右葉子結(jié)點(diǎn)

C.完全二叉樹一般不是滿二叉樹

D.具有結(jié)點(diǎn)的完全二叉樹的深度為[log2n]+1

63.以下數(shù)組定義中錯(cuò)誤的是()。

64.

65.有以下程序:

voidmain()

{

inti=10,j=1;

printf("%d,%d\n",2*i--,++j*2);

}

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

A)20,4B)10,2

C)20,1D)10,4

66.在軟件開發(fā)中,需求分析階段可以使用的工具是()。

A.N—s圖B.DFD圖C.PAD圖D.程序流程圖

67.有以下程序:

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

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

68.以下合法的十六進(jìn)制數(shù)是()。

A.0x

B.0x4De

C.0xlh

D.oX77

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

A.break語句只能用于switch語句體中

B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

70.以下關(guān)于宏的敘述中正確的是()。

A.宏替換沒有數(shù)據(jù)類型限制

B.宏定義必須位于源程序中所有語句之前

C.宏名必須用大寫字母表示

D.宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間

71.有以下程序

72.下列工具中為需求分析常用工具的是()。

A.PADB.BFDC.N-SD.DFD

73.若已包括頭文件<string.h>且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語句錯(cuò)誤的是()。A.A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

D.for(i=0;i<6;i++)sl[i]=s2[i]

74.

75.

76.

77.

78.若各選項(xiàng)中所用變量已正確定義,函數(shù)fun中通過return語句返回一個(gè)函數(shù)值,以下選項(xiàng)中錯(cuò)誤的程序是

79.

80.

有以下程序

#include<stdio.h>

main

{inty=9;

for(;y>0;y--)

if(y%3==0)printf("%d",--y);

}

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

A.741B.963C.852D.875421

五、程序改錯(cuò)題(1題)81.下列給定程序的功能是:讀入一個(gè)整數(shù)n(2<;=n<;=5000),打印它的所有為素?cái)?shù)的因子。例如,若輸入整數(shù)1234,則應(yīng)輸出2,617。請修改程序中的錯(cuò)誤,使程序能得出正確的結(jié)果。注意:不要改動main()函數(shù),不能增選或刪行,也不能更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請編寫一個(gè)函數(shù)proc(),它的功能是:比較2個(gè)字符串的長度(不得調(diào)用C語言中求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若2個(gè)字符串長度相等,則返回第1個(gè)字符串。例如,若輸入jiangxi<;Enter>;beijing<;Enter>;則函數(shù)返回jiangxi。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.D解析:*p間接引用指針指向的變量,因此“(*p)=&a”不對。scanf()的輸入變量必須為地址,因此C是錯(cuò)誤的。

2.A由題可知fun的參數(shù)為變量,而a[15]為常量,所以答案為A。

3.B

4.C解析:程序流程圖是人們對解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

5.C

6.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨(dú)立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個(gè)缺點(diǎn),數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點(diǎn),人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點(diǎn)。

7.A本題考查do-while循環(huán)。當(dāng)--y是0(即y是o)時(shí)結(jié)束循環(huán),輸出--y,先將y的值減1再輸出Y的值。

8.C

9.D解析:fgetc函數(shù)是指從指定的文件讀入—個(gè)字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。

10.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計(jì)的風(fēng)格應(yīng)該強(qiáng)調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

11.C根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。

12.A解析:當(dāng)執(zhí)行switch語句時(shí),首先計(jì)算緊跟其后一對括號中的值,然后在語句體內(nèi)尋找與該值吻合的case標(biāo)號。若相等,則執(zhí)行該標(biāo)號后開始的各語句,包括在其后的所有case和default后的語句,直到switch語句體結(jié)束。

13.AA?!窘馕觥烤€性表的存儲通常分為兩種存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。

\n

14.A本題中,fun函數(shù)第1次調(diào)用為fun(8,fun(5,6))。因?yàn)閒un(5,6)的返回值為5,所以第2次調(diào)用為fun(8,5),即返回值為6。故本題答案為A選項(xiàng)。

15.Dc語言的可執(zhí)行程序是由一系列機(jī)器指令組成的。用C語言編寫的源程序必須經(jīng)過編譯生成二進(jìn)制目標(biāo)代碼,再經(jīng)過連接才能運(yùn)行,并且可以脫離c語言集成開發(fā)環(huán)境。故答案為D)。

16.D

17.D解析:聯(lián)合體的所有成員共占同一段內(nèi)存,所以聯(lián)合體變量的長度與它的最長成員所占長度…致,本題中float所占內(nèi)存字節(jié)數(shù)為4,而\u3000int類型在TurboC\u30002.0中是占2字節(jié)、在VisualC++6.0中占4字節(jié),所以int類型所占內(nèi)存字節(jié)數(shù)不會超過float,那demo就與成員d2所占字節(jié)數(shù)是相同的,選項(xiàng)A的說法正確。聯(lián)合體的所有成員的首地址都是相同的,和聯(lián)合體變量的地址一致。故選項(xiàng)B和C都是正確的。由于int類型數(shù)據(jù)和float類型數(shù)據(jù)在內(nèi)存中的存放格式是不一樣的,所以給d1賦99后,d2中不會得到99.0這個(gè)值。故選項(xiàng)D不正確,答案應(yīng)該選擇D。

18.C

19.D

20.D解析:在C語言的標(biāo)準(zhǔn)中,short占2個(gè)字節(jié)、long占4個(gè)字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個(gè)字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個(gè)字節(jié)。故本題應(yīng)該選擇D。

21.ii解析:本題使用了一個(gè)兩重for循環(huán)輸出如題所示的方陣。從外層for循環(huán)的最后一條語句prinff('\\n');可以看出,外層for循環(huán)每次輸出方陣的一行,由于方陣是4行所以外層循環(huán)會循環(huán)4次,又從j=4和卜可以看出這4次循環(huán),循環(huán)變量i的值分別為4、3、2、1.故前一空應(yīng)該填j>=1或者j>0,以保證j等于0時(shí)循環(huán)結(jié)束。內(nèi)層循環(huán)控制每行輸出的4個(gè)數(shù),其循環(huán)變量i從1遞增到4,由于每行的4個(gè)結(jié)果也是差1遞增的,所以將每次結(jié)果減去循環(huán)變量i的值為一個(gè)常數(shù),每行分別是12、8、4、0,而這些值正好與4次外循環(huán)中表達(dá)式(j-1)*4的值相吻合,故后一空應(yīng)該填i。

22.內(nèi)聚內(nèi)聚

23.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。

24.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。

25.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于調(diào)試工具找出軟件錯(cuò)誤的具體位置。軟件測試貫穿整個(gè)軟件生命期,而調(diào)試主要在開發(fā)階段。

26.1721

27.22解析:分析程序,a=2,b=-1,c=2時(shí),if語句的表達(dá)式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個(gè)程序中a、b、c的值沒做任何改變。

28.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實(shí)現(xiàn)的是在字符'A'的ASCII碼值上加上一個(gè)常數(shù),使之變成另一個(gè)ASCII碼值,從而輸出字符。

29.abcdefglkjIhabcdefglkjIh解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運(yùn)算等,某字符的大寫字母的ASCII碼值比它對應(yīng)的小寫字母ASCII碼值小32。

30.查詢查詢

31.1010解析:此題考查逗號表達(dá)式。逗號表達(dá)式的值是最后一個(gè)表達(dá)式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。

32.9292解析:本主函數(shù)中首先定義了一個(gè)4行4列的二維數(shù)組,然后執(zhí)行一個(gè)while循環(huán),該循環(huán)中又嵌套了一個(gè)do-while循環(huán)?,F(xiàn)看while循環(huán),該循環(huán)通過i++的值來判斷是否結(jié)束循環(huán)當(dāng)i++的值為4的時(shí)候結(jié)束循環(huán),當(dāng)i=0時(shí),執(zhí)行while的循環(huán)體,顯然if語句條件不滿足不執(zhí)行,接著讓j=4,然后執(zhí)行do-while循環(huán)體,我們不難看出do-while循環(huán)的功能是將笫i+1行的所有元素加起來,所以這時(shí)s的值為s=a[1][0]+a[1][1]+a[1][2]+a[1][3]26,當(dāng)i=1時(shí),i+1=2,if后面括號里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán);當(dāng)i=2時(shí),i加1變?yōu)?,把笫3+1行的所有元素的加到s上,此時(shí)s=s+a[2][0]+a[2][1]a[2][2]+a[2][3]=92,當(dāng)i=3時(shí),3+1=4,if后面括號里的表達(dá)式的值為真執(zhí)行后面的continue語句,結(jié)束該次循環(huán),當(dāng)i=3時(shí),if后面括號里的表達(dá)式的值為真執(zhí)行后面的confulue語句,結(jié)束該次循環(huán)當(dāng)i=4時(shí)while循環(huán)結(jié)束,所以最后輸出的s的值為92。

33.線性結(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)有樹、二叉樹等。

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

35.55解析:本題的關(guān)鍵在于if(!(i%5))printf('\\n),這句,即如果i可被5整除時(shí),則換行。i值為24,可以被5整除4次,并余4,因此,prnt函數(shù)共輸出5行,最后一行有4個(gè)數(shù)。

36.索引表塊索引表\r\n塊

37.物理獨(dú)立性物理獨(dú)立性解析:數(shù)據(jù)的獨(dú)立性是指數(shù)據(jù)和應(yīng)用程序相互獨(dú)立,分為物理獨(dú)立性和邏輯獨(dú)立性。其中物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式)改變時(shí),不需要修改應(yīng)用程序。而邏輯獨(dú)立性是指當(dāng)邏輯結(jié)構(gòu)改變時(shí),不需要修改應(yīng)用程序。

38.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個(gè)指向自身的結(jié)構(gòu)體指針。

39.內(nèi)聚性內(nèi)聚性解析:模塊的獨(dú)立程度是評價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn)。內(nèi)聚性是度量一個(gè)模塊功能強(qiáng)度的一個(gè)相對指標(biāo),耦合性則用來度量模塊之間的相互聯(lián)系程度。

40.43344334解析:程序?qū)⒆兞縜,b的值傳給函數(shù)swap的形參x,y,并在函數(shù)中對x,y的值進(jìn)行交換,所以在函數(shù)swap中輸出x,y的值4,3,由于c程序的函數(shù)是僧傳遞,實(shí)參a,b的值不會隨形參x,y的改變而改變,所以在主函數(shù)中輸出的a,b的值為3,4。

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

42.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進(jìn)制整型數(shù)輸出,所以第一個(gè)輸出語句輸出的結(jié)果為a,97;第二個(gè)輸出語句輸出的結(jié)果為k=12。

43.D

44.C

45.B解析:auto變量和register變量在使用時(shí),系統(tǒng)自動為其分配存儲單元;退出時(shí)自動釋放這些存儲單元另做它用。

46.B當(dāng)運(yùn)算對象為不同的類型時(shí),數(shù)據(jù)的轉(zhuǎn)換方向?yàn)閕nt→unsigned→long→double。本題程序中的變量b為int型,先要轉(zhuǎn)換為unsigned型,int型變量的數(shù)值范圍為-32768~32767,最高位為符號位,而unsigned所表示的數(shù)的范圍為0~65535,它的最高位為數(shù)值位。由于內(nèi)存中是以補(bǔ)碼形式存儲數(shù)據(jù)的,所以,整型的“-1”在內(nèi)存中表示為16個(gè)1,最高位的“1”表示符號負(fù),將它轉(zhuǎn)換為unsigned類型,即將原符號位表示符號的“1”看成數(shù)值,就可得到16個(gè)數(shù)值位1,即65535。

47.A解析:本題主要考查自加運(yùn)算符(++、--)的使用。①前綴變量“++i、--i”,在使用i之前,先使i的值加1或者減1,再使用此時(shí)的表達(dá)式的值參與運(yùn)算;②后綴變量“i++、i--”,先使用此時(shí)的表達(dá)式的值參與運(yùn)算,在使用i之后,再使i的值加1或者減1。本題中計(jì)算表達(dá)式c=(a++)-1時(shí)先使用a的值進(jìn)行計(jì)算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此語句后a的值是3;表達(dá)式c+=-a+++(++b)等價(jià)于c=c+(-a++)+(++b),c=1+(-3)+3=1,此時(shí)a=4,b=3。

48.C解析:考查帶參數(shù)的宏替換。宏替換不像函數(shù)調(diào)用要進(jìn)行參數(shù)值的計(jì)算、傳遞等,而只是簡單按照原格式進(jìn)行字符串的替換。

49.C解析:在給數(shù)組賦值時(shí),可以用一個(gè)字符串作為初值,這種方法直觀、方便,而且符合人們的習(xí)慣。數(shù)組array的長度不是5,而是6,這點(diǎn)必須要注意。因?yàn)樽址A康淖詈笥上到y(tǒng)加上一個(gè)'\\0',因此,上面的初始化與下面的等價(jià):

Chararray[]={'C','h','i','n','a','\\0'};

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

51.A

52.A解析:文件系統(tǒng)中記錄內(nèi)有結(jié)構(gòu),但整體沒有結(jié)構(gòu)。數(shù)據(jù)庫實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化。數(shù)據(jù)的結(jié)構(gòu)化是文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的本質(zhì)區(qū)別。

53.D解析:在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲區(qū)中占據(jù)著永久的存儲單元,即使退出函數(shù)以后,下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量仍使用原來的存儲單元,靜態(tài)局部變量的初值是在編譯的時(shí)候賦予的,在程序執(zhí)行期間不再賦予初值。本題由于連續(xù)三次調(diào)用函數(shù)fun(),三次對靜態(tài)變量x進(jìn)行操作,x的值應(yīng)依次為6,7,8。

54.B解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個(gè)結(jié)構(gòu)體類型,此時(shí),也可以用PER來定義變量。

55.BB。【解析】根據(jù)二分法查找法需要兩次:(1)首先將90與表中間的元素50進(jìn)行比較,由于90大于50,所以性表的后半部分查找。(2)第二次比較的元素是后半部分的中間元素,即90,這時(shí)兩者相等,即查找成功。

56.A解析:本題考查%和/運(yùn)算符的使用。如果兩個(gè)數(shù)不能整除,只取結(jié)果的整數(shù)部分,小數(shù)部分全部舍去。運(yùn)算符“%”要求兩個(gè)運(yùn)算對象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。表達(dá)式:a=-4+4*5-6=-4+20-6=10:表達(dá)式:a=4+4%5-6=4+4-6=2;表達(dá)式:a=-3+4%6/5=-3+0=-3;表達(dá)式:a=(7+6)%5/2=13%5/2=1。

57.C解析:事實(shí)上,無論有無static修飾,外部變量都具有A、B和C三種特性。作為一種修飾,static僅是限制此類型外部變量韻引用范圍:只能在定義它的文件范圍內(nèi)使用。

58.B

59.A

60.D解析:本題是以結(jié)構(gòu)體指針的方式防問結(jié)構(gòu)體數(shù)組中的元素。main()函數(shù)之前聲明了一個(gè)結(jié)構(gòu)體,并在聲明同時(shí)定義了一個(gè)全局結(jié)構(gòu)體數(shù)組stu[3]。主函數(shù)中,第一行定義了一個(gè)該結(jié)構(gòu)體的指針t,然后讓t指向stu,即t指向的是數(shù)組stu的第一個(gè)元素。選項(xiàng)A提取的是數(shù)組第一個(gè)元素的num成員,值為10,不符合題意。選項(xiàng)B使用了一個(gè)后綴自增運(yùn)算符,使t指向第二個(gè)元素,但t++表達(dá)式返回的還是第一個(gè)元素的指針,故結(jié)果與選項(xiàng)A相同,不符合題意,選項(xiàng)C語法錯(cuò)誤編譯不會通過。故應(yīng)該選擇D。

61.A

62.B解析:這里考察完全二叉樹與滿二叉樹的定義及二叉樹的性質(zhì)。滿二叉樹指除最后一層外每一層上所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干子結(jié)點(diǎn)(葉子結(jié)點(diǎn))的二叉樹。因此選項(xiàng)A是正確的,而選項(xiàng)B是錯(cuò)誤的。由定義可知,滿二叉樹肯定是完全二叉樹,而完全二叉樹一般不是滿二叉樹,因此選項(xiàng)C是正確的敘述。選項(xiàng)D即二叉樹性質(zhì)(5),也是正確的。

63.AA)選項(xiàng)dPx[

溫馨提示

  • 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

提交評論