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頁,還剩25頁未讀, 繼續(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.

2.

3.以下敘述中正確的是()。A.A.當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

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

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

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

4.采用表結(jié)構(gòu)來表示數(shù)據(jù)和數(shù)據(jù)間聯(lián)系的模型是()。

A.層次模型B.概念模型C.網(wǎng)狀模型D.關(guān)系模型

5.以下選項(xiàng)中非法的表達(dá)式是()。

A.a+1=a+1

B.a=b==0

C.(Char.(100+100.

D.7<=X<60

6.圖的BFS生成樹的樹高比DFS生成樹的樹高()

A.小或相等B.小C.大或相等D.大

7.串的長度是指()。

A.串中所含不同字母的個(gè)數(shù)B.串中所含字符的個(gè)數(shù)C.串中所含不同字符的個(gè)數(shù)D.串中所含非空格字符的個(gè)數(shù)

8.設(shè)有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語句是()

A.p=&a;B.p=data.a;C.p=&data.a,D.*p=data.a;

9.一個(gè)序列中有10000個(gè)元素,若只想得到其中前10個(gè)最小元素,最好采用_______方法

A.快速排序B.堆排序C.插入排序D.二路歸并排序

10.有以下程序段chareh;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

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

A.在函數(shù)外部定義的變量在所有函數(shù)中都有效

B.在函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)使用

C.函數(shù)中的形參屬于局部變量

D.在不同的函數(shù)中可以使用相同名字的變量

12.有以下程序(函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作):#include<stdio.h>voidfun(int*n){inti,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;t[a[i];a[i]=a[k];a[k]=t;}}main{intaa[lO]=[1,2,3,4,5,6,7],a;fun(aa,7);for(i=0;i<7;i++)printf("%d,",aa[i]);printf("n");}程序運(yùn)行后的輸出結(jié)果是()。A.7,2,5,4,3,6,1,

B.1,6,3,4,5,2,7,

C.7,6,5,4,3,2,1,

D.1,7,3,5,6,2,1,

13.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為

A.7,8B.8,8C.7,10D.8,10

14.有以下程序:main{chara=a,b;printf("%c,",++a);printf("%c\n",b=a++):)程序運(yùn)行后的輸出結(jié)果是()。A.b,bB.b,cC.a,bD.a,c

15.已知a,b均被定義為double型,則表達(dá)式:b=1,a=b+5/2的值為()。

A.1B.3C.3.0D.3.5

16.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序B.選擇排序C.快速排序D.歸并排序

17.設(shè)棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。

A.e1、e2、e3、e4、e5

B.e5、e4、e3、e2、e1

C.e2、e4、e3、e5、e1

D.e3、e4、e1、e2、e5

18.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序的運(yùn)行結(jié)果是()。

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

19.

20.表達(dá)式a*(-b+c)的逆波蘭式是()

A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*

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

#definePR(ar)printf("ar=%d",ar)

main()

{intj,a[]={1,3,5,7,9,1l,13,1},*p=a+5;

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

switch(j)

{case1:

case2:PR(*p++);break;

case3:PR(*(--p));}}

22.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊(duì)列都屬于【】。

23.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*f1)(),int(*f2)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

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

24.對于一棵具有n個(gè)結(jié)點(diǎn)的樹,該樹中所有結(jié)點(diǎn)的度為【】。

25.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

程序運(yùn)行時(shí)輸入12<回車>,執(zhí)行后輸出結(jié)果是【】。

26.當(dāng)線性表采用順序存儲結(jié)構(gòu)實(shí)現(xiàn)存儲時(shí),其主要特點(diǎn)是______。

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

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

main()

{chars[]="abcdef";

s[3]='\0';

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

}

29.設(shè)有下列宏定義:#defineA2

#defineBA+3

則執(zhí)行賦值語句;t=B*2;t為int型變量后的值是______。

30.函數(shù)fun的返回值是【】

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')mm++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

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

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));

printf("\n");

}

33.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和。請?zhí)羁铡?/p>

main()

{

inti,a[20],sum,count;

sum=count=0;

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

scanf("%d",(______);

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

{

if(a[i]>0)

{

count++;

sum+=(______);

}

}

printf("sum=%d,count-%dkn",sum,count);

}

34.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類描述的是具有相似性質(zhì)的一組【】。

35.以下sum函數(shù)的功能是計(jì)算下列級數(shù)之和:

請給函數(shù)中的各變量正確賦初值。

doublesum(douLlex,intn)

{inti;

doublea,b,s;

【】

for(i=1;i<=n;i++){a=a*x;b=b*i;s=s+a/b;}

returns;

}

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

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf('%s\n",p);

}

37.軟件定義時(shí)期主要包括______和需求分析兩個(gè)階段。

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

main()

{inti;

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

{if(i>4)

{printf("%d\n",i);

break;}

printf("%d\n",i++);}}

39.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(i);}

40.一棵二叉樹第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為______個(gè)。

三、1.選擇題(20題)41.軟件需求分析一般應(yīng)確定的是用戶對軟件的______。

A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求

42.下面這個(gè)程序段的時(shí)間復(fù)雜度是()。for(i=1;i<n;i++){y=y+3;for(j=0;j<=(2*n);j++)x++;}

A.O(log2n)

B.O(n)

C.O(nlog2n)

D.O(n2)

43.以下所列的各函數(shù)首部中,正確的是______。

A.voidplay(vara:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

44.在計(jì)算機(jī)中,算法是指()。

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

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

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%dk=%d",m,k++);}

main()

{inti=4;

fun(i++);

printf("i=%dk=%d\n",i,k);

}

A.m=4k=5i=5k=5

B.m=4k=4i=5k=5

C.m=4k=4i=4k=5

D.m=4k=5i=4k=5

46.若有以下定義和語句:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為3的表達(dá)式是______。

A.p+=2,*(p++)B.P+=2,*++pC.P+=3,*p++D.P+=2,++*p

47.C語言函數(shù)返回值的類型是由______決定的。

A.return語句中的表達(dá)式類型B.調(diào)用函數(shù)的主調(diào)函數(shù)類型C.調(diào)用函數(shù)時(shí)臨時(shí)D.定義函數(shù)時(shí)所指定的函數(shù)類型

48.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是()

A.數(shù)據(jù)存儲B.數(shù)據(jù)共享C.數(shù)據(jù)查詢D.數(shù)據(jù)管理

49.下列敘述中,正確的是

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ù)模型

50.以下正確的數(shù)組定義語句是()。

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

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

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

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

51.下面程序的輸出是______。typedefunion{longx[2];inty[4];charz[8];}MYTYPE;MYTYPEthem;mare(){printf("%d\n",sizeof(them));}

A.32B.16C.8D.24

52.有以下程序:main(){intm,n,P;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,則王確的輸入是()。

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,P=789

D.123456789

53.下列程序的輸出結(jié)果為______。main(){unsignedinta=65535;intb=-2;printf("\na=%d,%u;b=%d,%u,,a,a,b,b);}

A.-1,65535;-2,65534

B.65535,65535;-2,65534

C.65535,65535;65534,65534

D.-1,65535;65534,65534

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

A.軟件測試應(yīng)該由程序開發(fā)者來完成

B.程序經(jīng)調(diào)試后一般不需要再測試

C.軟件維護(hù)只包括對程序代碼的維護(hù)

D.以上三種說法都不對

55.有如下定義:structperson{charname[9];intage;};structpersonclass[10]={"Johu",17,"Paul",19,"Mary",18,"Adam",16,};根據(jù)上述定義,能輸出字母M的語句是______。

A.printf("%c\n",class[3].name);

B.printf("%c\n",class[3].name[1]);

C.printf("%c\n",class[2].name[1]);

D.printf("%c\n",class[2].name[O]);

56.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循______等完整性規(guī)則。

A.實(shí)體完整性和參照完整性

B.參照完整性和用戶定義的完整性

C.實(shí)體完整性和用戶定義的完整性

D.實(shí)體完整性、參照完整性和用戶定義的完整性

57.有以下程序:streetSTU{charnum[10];floatscore[3];};main(){structSTUs[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);}程序運(yùn)行后的輸出結(jié)果是()。

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

58.有以下程序main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);)程序運(yùn)行后的輸出結(jié)果是

A.12353514B.12353513C.12343514D.12343513

59.閱讀下列程序,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}

A.3e,6B.62,5C.56,5D.3E,6

60.下列程序的輸出結(jié)果是______。char*fun(char*str,intn){inti;char*p=str;for(i=0;i<10;i++,str++)*str='a'+i;return++p;}main(){chara[10];printf("%s\n",fun(a,10));}

A.ABCDEFGHIJB.abcdefghijC.bcdefghijD.不確定的值

四、選擇題(20題)61.

62.結(jié)構(gòu)化程序設(shè)計(jì)的主要特征是()。

A)封裝和數(shù)據(jù)隱藏B)集成和重用

C)數(shù)據(jù)和處理數(shù)據(jù)的過程分離D)把數(shù)據(jù)和處理數(shù)據(jù)的過程看成一個(gè)整體

63.

64.以下選項(xiàng)中不能用做C程序合法常量的是()。

A.1,234B.‘\123’C.123D.“\x7G”

65.有以下程序:

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

A.Zhao,111,85,90,Qian,f,95,92

B.Zhao,m,85,90,Zha0,m,85,90

C.Qian,f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zha0,m,85,90

66.

67.有以下程序:

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

A.33B.197C.143D.28

68.有下列程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i]:returnsum;}main(){inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序執(zhí)行后的輸出結(jié)果是()。A.45B.50C.60D.55

69.在面向?qū)ο蠓椒ㄖ?,不屬于“對象’’基本特點(diǎn)的是()。A.一致性B.分類性C.多態(tài)性D.標(biāo)識唯一性

70.一棵二叉樹共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為l的結(jié)點(diǎn)數(shù)為()。

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

71.有以下程序段:

inti,n;

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

{n=rand()%5;

switch(n)

{casel:

case3:printf("%d\n",n);break;

case2:

case4:print?("%d\n",n);continue;

case():exit(0);

}

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

}

以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。

A.for循環(huán)語句固定執(zhí)行8次

B.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作

C.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作

D.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行

72.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為

A.intB.floatC.doubleD.不確定

73.有以下程序:

voidf(int*x,int*y)

{int*t;

t=x;x=y;y=t;*x=*y;

}

main()

{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p>q)

{f(p,q);p++;q--}

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

}

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

A.8,2,3,4,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,

74.

當(dāng)輸入為"hello?"時(shí),下面程序的執(zhí)行結(jié)果是()。

#include<stdio.h>

main

{charc;

c=getchar;

while(c!=?)

{putehar(e);break;

}

}

A.RvfsuB.hC.?D.hello

75.在C語言程序中可用做用戶標(biāo)識符的是()。

A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG

76.設(shè)有以下說明語句:

則下面的敘述中不正確的是()。

A.struct結(jié)構(gòu)體類型的關(guān)鍵字

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

C.x,y,z都是結(jié)構(gòu)體成員名

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

77.

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

A.為了建立一個(gè)關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系

B.表示關(guān)系的二維表中各元組的每一個(gè)分量還可以分成若干數(shù)據(jù)項(xiàng)

C.一個(gè)關(guān)系的屬性名表稱為關(guān)系模式

D.一個(gè)關(guān)系可以包括多個(gè)二維表

79.假定X和Y為double型,則表達(dá)式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

80.(75)下列不屬于結(jié)構(gòu)化分析的常用工具的是()

A.數(shù)據(jù)流圖

B.數(shù)據(jù)字典

C.判定樹

D.PAD圖

五、程序改錯(cuò)題(1題)81.程序改錯(cuò)題(共l8分)下列給定程序中,函數(shù)fun的功能是:傳人一個(gè)整數(shù)m,計(jì)算如下公式的值。例如,若輸入5,則應(yīng)輸出一0.283333。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}

參考答案

1.B

2.C

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

4.D關(guān)系模型采用二維表來表示,簡稱表。本題答案為D選項(xiàng)。

5.A賦值運(yùn)算符的左邊只能是變量,而不能是常量或表達(dá)式。

6.A

7.B解析::串的長度定義為串中字符的數(shù)目。所以B)為正確答案。C)答案不正確,因?yàn)榇锌梢院邢嗤淖址籄)答案不正確,因?yàn)榇锌赡芎邢嗤淖帜?,而且也可能含有?shù)字等其他非字母字符;D)答案不正確,因?yàn)榭崭褚彩且环N字符,在計(jì)算長度時(shí)理應(yīng)將其計(jì)算在內(nèi)。

8.C解析:data是—結(jié)構(gòu)體變量,a是它的成員,因此引用a域的正確方法是:data.a,取它的地址賦值給指針變量p的語句應(yīng)該是:p=&data.a。選項(xiàng)A,將a的地址直接賦給了p,而忽略了a為結(jié)構(gòu)體內(nèi)部的一個(gè)成員,而不是一單獨(dú)的變量,故選項(xiàng)A不正確;選項(xiàng)B在p=data.a表達(dá)式中右邊為一個(gè)結(jié)構(gòu)體變量的成員不是地址,而左邊為一指針應(yīng)該將一地址賦給它,故選項(xiàng)B不正確;選項(xiàng)D表達(dá)式*p=data.a是將結(jié)構(gòu)體變量中的成員a的值賦給指針p所指向的變量值,而不是使指針p指向data中的a域,故選項(xiàng)D不正確:4個(gè)選項(xiàng)中只有C正確。

9.B

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

11.A全局變量有效范圍是從定義的位置開始到所在源文件的結(jié)束,在這區(qū)域內(nèi)的函數(shù)才可以調(diào)用,如果在定義函數(shù)之后,定義的變量,該變量不能被之前的函數(shù)訪問所以A選項(xiàng)說法錯(cuò)誤,答案為A選項(xiàng)。

12.A對下標(biāo)為偶數(shù)的元素進(jìn)行降序排序,下標(biāo)為奇數(shù)元素保持不變。

13.D解析:在C語言中,定義一維數(shù)組的語句一般形式如下:

類型名數(shù)組名[常量表達(dá)式];

一維數(shù)組的引用形式為:數(shù)組名[下標(biāo)表達(dá)式]。count表示能被2整除或被5整除的個(gè)數(shù),i則計(jì)算有多少個(gè)數(shù)組元素。

14.A++a與a++的區(qū)別是前者先自加再運(yùn)算,后者是先運(yùn)算后自加。

15.D

16.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟?dú)立的兩部

分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分記錄繼

續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序;插入排序的基本操作是指將無序序列中的各元素依

次插入到已經(jīng)有序的線性表中,從而得到一個(gè)新的序列;選擇排序的基本思想是:掃描整

個(gè)線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對剩

下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個(gè)或兩個(gè)以上的有序表組合

成一個(gè)新的有序表。

注意:各種排序方法實(shí)現(xiàn)過程及實(shí)現(xiàn)機(jī)制。

17.D解析:棧是僅在表頭和表尾進(jìn)行插入和刪除元素操作的線性表,其特點(diǎn)是“先進(jìn)后出”。本題中,進(jìn)棧的過程中可以出棧。選項(xiàng)D中,如果第一個(gè)出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因?yàn)閑1先入棧,故e1應(yīng)在e2后出棧,所以選項(xiàng)D是不可能的出棧順序。

18.D靜態(tài)變量是始終存在的,當(dāng)函數(shù)變量退出后,靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前的靜態(tài)變量值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s=45+15=60。故本題答案為D選項(xiàng)。

19.C

20.D

21.ar=9ar=9ar=11ar=9ar=9ar=11解析:本題綜合考查了for循環(huán),switch語句及宏替換等幾個(gè)知識點(diǎn)。j=3時(shí),執(zhí)行PR(*(--p));輸出數(shù)組元素a[4]的值;j=2時(shí),執(zhí)行PR(*p++);取出p所指位置的元素a[4],然后p++;當(dāng)j=1時(shí),執(zhí)行PR(*p++);取得是數(shù)組元素a[6]的值11。

22.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:本題考查了數(shù)據(jù)結(jié)構(gòu)的基本概念。與棧類似,隊(duì)列也是線性表,可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu),所以帶鏈的隊(duì)列屬于線性結(jié)構(gòu)。

23.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個(gè)參數(shù),形參f1與f2分別是兩個(gè)指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實(shí)際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為23-22=4。

24.n-1n-1解析:設(shè)該樹中所有結(jié)點(diǎn)的度為x,因?yàn)?,在樹的結(jié)點(diǎn)中,除了根結(jié)點(diǎn)以外,其余結(jié)點(diǎn)都有一個(gè)分支進(jìn)入,所以,n=x+1,所以x=n-1。

25.1212解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價(jià)為與其相應(yīng)的ASCII碼的整數(shù),還可以作為整數(shù)參加運(yùn)算。在本題中,n1=ch1-'0'='1-'0'=49-48=1,n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后輸出為12。

26.邏輯結(jié)構(gòu)中相鄰的結(jié)點(diǎn)在存儲結(jié)構(gòu)中仍相鄰。邏輯結(jié)構(gòu)中相鄰的結(jié)點(diǎn)在存儲結(jié)構(gòu)中仍相鄰。解析:順序存儲結(jié)構(gòu)的主要特點(diǎn)是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲單元中。在存儲單元中,各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點(diǎn)間的相鄰關(guān)系是一致的。

27.類類

28.abcabc解析:字符串的結(jié)束標(biāo)記'\\0',當(dāng)輸出一個(gè)存放在字符數(shù)組中的字符串時(shí),只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個(gè)字符“abc”。

29.88解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算.運(yùn)算過程為:t=B*2=A+3*2=2+3*2=8。

30.字符串a(chǎn)和b的長度之和字符串a(chǎn)和b的長度之和解析:本題首先通過第一個(gè)while循環(huán)計(jì)算字符串a(chǎn)的長度,再通過第二個(gè)循環(huán),將字符串a(chǎn)和b相連,最后返回連接后的總長度。

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

32.010111212010111212解析:本題考查的是靜態(tài)局部變量的運(yùn)用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長到程序運(yùn)行結(jié)束。本題的主函數(shù)中使用一個(gè)for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒被修改過,所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因?yàn)閏是靜態(tài)局部變量,它仍然保存著上次調(diào)用結(jié)束時(shí)的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。

33.&a[i]或a+ia[i]或*(a+i)&a[i]或a+ia[i]或*(a+i)解析:主函數(shù)中一開始定義了一個(gè)長度為20得整形數(shù)組,然后通過—個(gè)循環(huán),循環(huán)20次給它的每個(gè)元素賦初值,所以在第一個(gè)空格處應(yīng)填各個(gè)元素的地址,即填&a[1]或a+i,然后在通過一個(gè)循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于。將其累加到變量sum中,所以第二個(gè)空格處應(yīng)該填入數(shù)組元素,所以應(yīng)該填a[i]或*(a+i)。

34.對象對象解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。

35.a=1.0;b=1.0;s=1.0;a=1.0;b=1.0;s=1.0;解析:各種數(shù)值型數(shù)據(jù)間進(jìn)行混合運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,再進(jìn)行運(yùn)算。本題的結(jié)果為double型。

36.efghefgh解析:本題考核的知識點(diǎn)是通過指針引用字符串.函數(shù)“的作用是讓形參指針s指向該字符串的右半部分.主函數(shù)中首先定義了一個(gè)字符型指針變量p和字符型指針str;并初始化為“abcdefgh”,然后調(diào)用函數(shù)ss,將實(shí)參str傳給形參s,因此可知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調(diào)用函數(shù)ss(sD)的返回值)所指向的字符串為“efgh。

37.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個(gè)階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計(jì)、實(shí)現(xiàn)和測試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。

38.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當(dāng)i=1時(shí),因?yàn)閕f語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時(shí)i自加1;執(zhí)行第二次for循環(huán)時(shí),i=3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時(shí)i自加1;執(zhí)行第三次for循環(huán)時(shí),i=5,if語句條件滿足,所以執(zhí)行printf('%d\\n',i),輸出5,然后break語句跳出了for循環(huán)。

39.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個(gè)元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。

40.3232解析:二叉樹的一個(gè)性質(zhì)是,在二叉樹的第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。由此,26-1=32.所以答案為32。

41.DD?!窘馕觥寇浖枨蠓治鲋行枰獦?gòu)造一個(gè)完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,使用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對軟件的功能需求和非功能需求。

42.D解析:語句的頻度指的是該語句重復(fù)執(zhí)行的次數(shù)。一個(gè)算法中所有語句的頻度之和構(gòu)成了該算法的運(yùn)行時(shí)間。在本例算法中,語句①的頻度是n-1,語句②的頻度是(n-1)(2n+1)-2n2-n-1。則該程序段的時(shí)間復(fù)雜度是T(n)=n-1+2n2-n-1=O(n2)。

43.C解析:除選項(xiàng)C項(xiàng)外,其他各項(xiàng)都沒有按照C語言中的函數(shù)定義規(guī)則定義函數(shù)。

44.CC?!窘馕觥坑?jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它的基本特征分別是:可行性、確定性、有窮性和擁有足夠的情報(bào)。

45.B解析:由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),則輸出“m=4k=4”。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的“printf('i=%dk=%d\\n',i,k);”語句輸出“i=5k=5”。

46.A解析:引用一個(gè)數(shù)組元素,可以用:(1)下標(biāo)法,如a[i]形式;(2)指針法,如*(a+i)或*(p+i)。數(shù)組的下標(biāo)從0開始,值為3的數(shù)組元素是a[2]。B、C的內(nèi)容為a[3],D將a[2]前自加,結(jié)果為4。

47.D解析:函數(shù)值的類型應(yīng)當(dāng)是在定義函數(shù)時(shí)指定的。在定義函數(shù)時(shí)對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型—致,如果不—致,則以函數(shù)類型為準(zhǔn),即函數(shù)類型決定返回值的類型。

48.BB)【解析】數(shù)據(jù)庫是長期儲存在計(jì)算機(jī)內(nèi)、有組織

的、可共享的大量數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享,所以數(shù)據(jù)庫技術(shù)的根本日標(biāo)是解決數(shù)據(jù)共享問題。

49.A解析:兩個(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)換。

50.D解析:選項(xiàng)A定義了一個(gè)1行4列的二維數(shù)組,只有4個(gè)元素,而初始化列表有5個(gè)初始值,所以不正確。定義二維數(shù)組時(shí)只能省略第二維的長度,選項(xiàng)B省略的是第一維的長度,所以不正確。選項(xiàng)C定義了一個(gè)2行3列的二維數(shù)組,但初始值列表中使用了3個(gè)大括號,使行數(shù)超出定義范圍,所以不正確。故正確答案是選項(xiàng)D。

51.C解析:sizeof(x)是一個(gè)標(biāo)準(zhǔn)C函數(shù),它的返回值是x型的數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存字節(jié)數(shù)。題目中定義了一個(gè)共用體,共用體變量在內(nèi)存中所占的長度等于最長的成員的長度。

52.A解析:本題的考點(diǎn)是關(guān)于C語言的輸入語句scanf的通配符。C語言規(guī)定:scanf中的雙引號中的輸入格式(就是俗稱的通配符)決定了輸入的格式。要輸入123給m,456給n,789給p,由scanf的輸入格式:“m=%dn=%dp=%d”決定了輸入必須的格式是:m=123n=456p=789。

53.A

54.D解析:本題考核軟件測試、軟件調(diào)試和軟件維護(hù)的概念。軟件測試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定。軟件測試具有挑剔性,測試不是為了證明程序是正確的,而是在設(shè)想程序有錯(cuò)誤的前提下進(jìn)行的,其目的是設(shè)法暴露程序中的錯(cuò)誤和缺陷,就是說,測試是程序執(zhí)行的過程,目的在于發(fā)現(xiàn)錯(cuò)誤;一個(gè)好的測試在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;一個(gè)成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤。由于測試的這一特征,一般應(yīng)當(dāng)避免由開發(fā)者測試自己的程序。所以,選項(xiàng)A的說法錯(cuò)誤。

調(diào)試也稱排錯(cuò),目的是發(fā)現(xiàn)錯(cuò)誤的位置,并改正錯(cuò)誤,經(jīng)測試發(fā)現(xiàn)錯(cuò)誤后,可以立即進(jìn)行調(diào)試并改正錯(cuò)誤;經(jīng)過調(diào)試后的程序還需進(jìn)行回歸測試,以檢查調(diào)試的效果,同時(shí)也可防止在調(diào)試過程中引進(jìn)新的錯(cuò)誤。所以,選項(xiàng)B的說法錯(cuò)誤。

軟件維護(hù)通常有4類:為糾正使用中出現(xiàn)的錯(cuò)誤而進(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)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時(shí)維護(hù)。只有與程序代碼完全一致的文檔才有意義和價(jià)值。所以,選項(xiàng)C的說法錯(cuò)誤。

綜上所述,選項(xiàng)A、B、C的說法都錯(cuò)誤,所以,選項(xiàng)D為正確答案。

55.D解析:該題主要考查C語言數(shù)組下標(biāo)的概念,即C語言中數(shù)組的下標(biāo)是從。開始的。

56.D解析:關(guān)系模型中包括關(guān)系的數(shù)據(jù)結(jié)構(gòu)、關(guān)系的操縱和關(guān)系中的數(shù)據(jù)約束。關(guān)系完整性約束即數(shù)據(jù)完整性,包括實(shí)體完整性、參照完整性和用戶自定義完整性。

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

58.A解析:本題考查的是自加運(yùn)算符的運(yùn)用。自加運(yùn)算符有前綴和后綴兩種不同的形式,對于變量本身來說,無論是前綴還是后綴其作用的效果都是相同的,使變量值增1。但作為表達(dá)式來說卻有著不同的值,前綴時(shí)自增表達(dá)式的值是變量增1,后的值,而后綴時(shí)自增表達(dá)式的值是變量增1前的值。本題程序開始定義了兩個(gè)整型變量m和n,并分別初始化為12和34.第一條輸出語句是按整型格式輸出表達(dá)式m++和++n的值,根據(jù)前面所述,表達(dá)式m++的值為12,++n的值為35,所以第一次輸出的字符串是'1235',執(zhí)行完后m和n的值都自增1,分別是13和35.接下來第二條輸出語句也是按整型格式輸出表達(dá)式n++和++m的值,分別是35和14,故最終的輸出應(yīng)該為“12353514”,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

59.A解析:數(shù)組a[5][5],0<=i<5,0<=j<5,則可以用5種表達(dá)式來引用,a[i][j],*a(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+5*i+j)。數(shù)組的下限為0,%后面為小寫的x,所以輸出的結(jié)果為小寫字母表示的十六進(jìn)制。

60.C解析:調(diào)用函數(shù)fun使字符數(shù)組中的內(nèi)容是'abcdefghij',函數(shù)的返回值是字符數(shù)據(jù)的地址,該地址指向數(shù)組的第二個(gè)字符,因此,主函數(shù)的輸出結(jié)果是字符串'bcdefghij'。

溫馨提示

  • 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

提交評論