2022-2023年山西省運(yùn)城市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第1頁(yè)
2022-2023年山西省運(yùn)城市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第2頁(yè)
2022-2023年山西省運(yùn)城市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第3頁(yè)
2022-2023年山西省運(yùn)城市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第4頁(yè)
2022-2023年山西省運(yùn)城市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022-2023年山西省運(yùn)城市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

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

2.在定義inta[5][6];后,數(shù)組a中的第10個(gè)元素是()。(設(shè)a[0][0]為第一個(gè)元素)

A.a[2][5]B.a[2][4]C.a[1][3]D.a[1][5]

3.有以下程序:

運(yùn)行時(shí),若輸入123450<;回車>;,則輸出結(jié)果是()。

A.66656B.6566456C.66666D.6666656

4.設(shè)有如下定義:int(*ptr);則以下敘述中正確的是()。

A.ptr是指向一維組數(shù)的指針變量

B.ptr是指向int型數(shù)據(jù)的指針變量

C.ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)

D.ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指int型數(shù)據(jù)的指針

5.下列二維數(shù)組初始化語(yǔ)句中,不正確的是()。

A.intb[][2]={1,2,3,4,5,6,7};

B.intb[3][5]={0,0,0};

C.intb[][4]={{1,2},{3,4,5},{6}};

D.intb[3][2]={(1,2),(3,4),(5,6)};

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

A.通過(guò)指針變量存取某個(gè)變量值的方式稱為“直接存取”方式

B.在程序的開(kāi)頭包含頭文件stdio.h后,可以給指針變量賦NULL值

C.將一個(gè)指針變量中的值賦給另一個(gè)指針變量,則這兩個(gè)指針變量指向同一地址

D.C語(yǔ)言中函數(shù)返回值的類型可以是簡(jiǎn)單的數(shù)據(jù)類型,也可以是指針類型

7.對(duì)稱數(shù)組A中,每個(gè)元素的長(zhǎng)度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到8。將其下三角中的元素連續(xù)存儲(chǔ)在從首地址SA開(kāi)始的存儲(chǔ)器內(nèi),該數(shù)組按行存放是,則元素A[5][8]的起始地址為()。

A.SA+124B.SA+128C.SA+132D.136

8.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結(jié)果是

A.10,A,10B.10,a,10C.1O,a,0D.10,A,0

9.在一個(gè)C語(yǔ)言源程序文件中所定義的全局變量,其作用域?yàn)椋ǎ?/p>

A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.由具體定義位置和extern說(shuō)明來(lái)決定范圍

10.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價(jià)的賦值語(yǔ)句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

11.以下敘述中正確的是

A.語(yǔ)句inta[4][3]={{1,2},{4,5}};是錯(cuò)誤的初始化形式

B.語(yǔ)句inta[4][3]={1,2,4,5};是錯(cuò)誤的初始化形式

C.語(yǔ)句inta[][3]={1,2,4,5};是錯(cuò)誤的初始化形式

D.在邏輯上,可以把二維數(shù)組看成是一個(gè)具有行和列的表格或矩陣

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

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

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

A.“charc1,*c2,*c3[10];”是合法的變量定義語(yǔ)句

B.數(shù)組說(shuō)明符的方括號(hào)中不能使用表達(dá)式

C.數(shù)組元素下標(biāo)可以是非整數(shù)

D.若有定義“chararray[4];”,則語(yǔ)句“printf(“%c”,array[“3”]);”是合法的

14.以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能。#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<n;i++){max=MIN;if(max<x[i])max=x[i];)returnmax;}造成錯(cuò)誤的原因是()。A.定義語(yǔ)句“inti,max;”中max未賦初值

B.賦值語(yǔ)句“max=MIN;”中,不應(yīng)給max賦MIN值

C.語(yǔ)句“if(max<x[i])max=x[i];”中判斷條件設(shè)置錯(cuò)誤

D.賦值語(yǔ)句“max-MIN;”放錯(cuò)了位置

15.若有宏定義“#defineA_RECT(W,H)W*H”和以下程序段:intx=5,y=6,area1,area2;area1=A_RECT((x-1),(y+1));area2=A_RECT(x+3,y-1);執(zhí)行上述程序段后,變量area1和area2的值分別是()。

A.022B.2840C.2822D.040

16.面向?qū)ο蠓椒ㄖ?,繼承是指()。

A.一組對(duì)象所具有的相似性質(zhì)B.一個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)C.各對(duì)象之間的共同性質(zhì)D.類之間共享屬性和操作的機(jī)制

17.有以下程序:

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

A.4B.34C.31D.32

18.閱讀以下程序:#include<stdio.h>main(){intcase;floatprintF;printf("請(qǐng)輸人2個(gè)數(shù):");scanf("%d%fl"&case,&printF);printf("%dofof\n",case,printF);}該程序在編譯時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是()。A.定義語(yǔ)句出錯(cuò),case是關(guān)鍵字,不能用做用戶自定義標(biāo)識(shí)符

B.定義語(yǔ)句出錯(cuò),printF不能用做用戶自定義標(biāo)識(shí)符

C.定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用

D.定義語(yǔ)句無(wú)錯(cuò),printf不能輸出case的值

19.若執(zhí)行下面的程序時(shí),從鍵盤上輸入5和2,則輸出結(jié)果是______。main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}

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

20.有以下程序:

main()

{intX,i;

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

{x=i;

if(X%2=O)

if(x%3=O)

if(X%7=0)

printf("%d,i)";

}

}

輸出結(jié)果是()。

A.28

B.27

C.42

D.41

二、2.填空題(20題)21.軟件危機(jī)出現(xiàn)于60年代末,為了解決軟件危機(jī),人們提出了【】的原理來(lái)設(shè)計(jì)軟件,這就是軟件工程誕生的基礎(chǔ)。

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

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

printf("%d\n",MAX(i,j));

}

23.該程序運(yùn)行的結(jié)果是【】。

#include<stdio.h>

main()

{unionEXANPLE

{struct

{

intx;

inty;

}in;

inta;

intb;

}e;

e.a=1;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf("\n%d,%d",e.in.x,e.in.y);

printf("%d,%d\n",e.a,e.b);

}

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

main()

{

chara[]="123456789",*p;

inti=0;

p=a;

while(*p)

{

if(i%2==0)

*p='*';

p++;i++;

}

puts(a);

}

25.不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。

26.以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡?/p>

main()

{intx[10],a[9],I;

for(I=0;I<10;I++)scanf("%d",&x[I]);

for(【】;I<10;I++)

a[I-1]=x[I]+【】;.

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

printf("");

}

27.軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)o

28.樹中度為零的結(jié)點(diǎn)稱為_(kāi)_____。

29.若按功能劃分,軟件測(cè)試的方法通常分為_(kāi)_____測(cè)試方法和黑盒測(cè)試方法。

30.與二維表中的“行”的概念最接近的概念是()。

31.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。請(qǐng)?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=______);}

main()

{charstr1[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

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

}

32.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。

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

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{intx==3,y=5,*p=&x,*q=&y;

swap(p,q);

printf("%d%d\n",*p,*q);

}

34.計(jì)算機(jī)中存儲(chǔ)容量的基本單位是字節(jié),它的英文名稱是【】。

35.目前實(shí)際存在和使用的廣域網(wǎng)基本上都是采用______拓?fù)浣Y(jié)構(gòu)類型。

有以下程序:

#include<string.h>

structSTU

{intnum;

floatTotalScore;};

voidf(structSTUp)

{structSTUs[2]={{20041,703},{20045,537}};

p.num=s[1].num;p.TotalScore=s[1].TotalScore;

}

main()

{structSTUs[2]={{20041,703},{20042,580}};

f(s[0]);

printf("%d%3.0f\n",s[0].num,s[0],TotalScore);

}

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

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

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

}

37.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長(zhǎng)度。請(qǐng)?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

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

return(num);

}

38.下面rotme函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置為A'。例如:

請(qǐng)?zhí)羁铡?/p>

#defineN4

voidrotate(inta[][N])

{inti,j,t;

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

for(j=0;【】;j++)

{t=a[i][j];

【】;

a[j][i]=t;

}

}

39.若a=l,b=2,則表達(dá)式!(x=a)||y=b)&&0的值是______。

40.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

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

{…}

}

三、1.選擇題(20題)41.有以下程序:#include<string.h>main(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q));}以下敘述中正確的是()。

A.在給p和q數(shù)組置初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,故輸出的長(zhǎng)度都為3

B.由于p數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能確定;但q數(shù)組中字符串長(zhǎng)度為3

C.由于q數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能確定;但p數(shù)組中字符串長(zhǎng)度為3

D.由于p和q數(shù)組中都沒(méi)有字符串結(jié)束符,故長(zhǎng)度都不能確定

42.有如下程序;

intfunc(inta,intb)

{return(a+b);}

main()

{intx=2,y=5,z=8,r;

r=func(func(x,y),z);printf("%\d\n",r);}

該程序的輸出的結(jié)果是______。

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

43.下列函數(shù)定義中,會(huì)出現(xiàn)編譯錯(cuò)誤的是()。

A.max(intx,inty,int*z){*z=x>y?x:y;}

B.intmax(intx,y){intz;z=x>y?x:y;returnz;}

C.max(intx,inty){intz;z=x>y?x:y;return(z);}

D.intmax(intx,inty){return(x>y?x:y);}

44.有以下程序#include<string.h>main(){char*p=“abcde、Ofghjik\0”;printf(“%d\n”,strlen(p));}程序運(yùn)行后的輸出結(jié)果

A.12B.15C.6D.5

45.下列程序中的for循環(huán)執(zhí)行的次數(shù)是______。#defineN2#defineMN+1#defineNUM2*M+1#main(){inti;for(i=1;i<=NUM;i++)printf("%d\n",i);}

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

46.下面的程序執(zhí)行后,文件test.t中內(nèi)容是______。#include<stdio.h>voidfun(char*fName,char*st){FILE*myf;inti;myf=fopm(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}

A.hello,B.newworldhelloC.newworldD.hello.rld

47.下面程序的輸出結(jié)果是()main(){inti,x=023;printf("%d\n",--x);}

A.17B.18C.23D.24

48.在結(jié)構(gòu)化設(shè)計(jì)方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭頭的連線表示______。A.A.模塊之間的調(diào)用關(guān)系B.程序的組成成分C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向

49.在下列各m的值中,能使m%3=2&&m%5=3&&m%7=2為真的是()

A.8B.23C.17D.6

50.若有語(yǔ)句int*point,a=4;和point=&a;下面均代表地址的一組選項(xiàng)是()。

A.a,point,*&a

B.&*a,&a,*point

C.*&point,*point,&a

D.&a,&*point,point

51.計(jì)算機(jī)中,能夠用來(lái)與外存交換信息的是______。

A.鍵盤B.RAMC.顯示器D.ROM

52.有以下程序main(){inti=0,s=0;for(;;){if(i==3‖i==5)continue;if(i==6)break;i++;s+=i};printf("%d\n",s)}程序運(yùn)行后的輸出結(jié)果是

A.10B.13C.21D.程序進(jìn)入死循環(huán)

53.有定義語(yǔ)句:intx,y;若要通過(guò)scanf("%d,%do,&x,&y);語(yǔ)句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,錯(cuò)誤的是

A.1112<回車>B.11,12<回車>C.11,12<回車>D.11,<回車>12<回車>

54.以下程序輸出正確的是______。amovep(int*p,int(*A)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}

A.56B.25C.34D.程序錯(cuò)誤

55.函數(shù)ftell(fp)的作用是()。

A.得到fp所指向文件的當(dāng)前讀寫位置B.初始化流式文件的位置指針C.移動(dòng)流式文件的位置指針D.以上答案均正確

56.以下正確的程序段是

A.charstr1[]="12345",str2[]="abcdef";

B.charstr[10],*st="abcde";strcat(str,st);

C.charstr[10]=""。*st="abcde";strcat(str,st);

D.char*st1="12345",*st2="abcde";strcat(st1,st2);

57.若有運(yùn)算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(jí)(由高至低)的正確排列順序?yàn)?)。

A.%、sizeof、>、<<、=

B.sizeof、%、>、=、<<

C.sizeof、<<、>、%、=

D.sizeof、%、<<、>、=

58.設(shè)有下列定義:structsk{intm;floatx;}data,*q;若要使q指向data中的m域,正確的賦值語(yǔ)句是()。

A.q=&data.m;

B.q=data.m;

C.q=(structsk*)&data.m;

D.q=(structsk*)data.m;

59.若有定義inta[10],*p=a,則p+6表示()。

A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5

60.在以下給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。

A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)

四、選擇題(20題)61.以下選項(xiàng)中正確的定義語(yǔ)句是()。

62.

63.在下列關(guān)于二叉樹的敘述中,選出正確的一項(xiàng)()。

A.在二叉樹中,任何一個(gè)結(jié)點(diǎn)的度都是2

B.二叉樹的度為2

C.在二叉樹中至少有一個(gè)結(jié)點(diǎn)的度是2

D.一棵二叉樹的度可以小于2

64.有三個(gè)關(guān)系R,S和T如下:

其中關(guān)系T由關(guān)系R和S通過(guò)某種操作得到,該操作為()。A.選擇B.投影C.交D.并

65.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件),下面屬于系統(tǒng)軟件的是()。A.學(xué)生管理系統(tǒng)B.C語(yǔ)言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫(kù)管理系統(tǒng)

66.設(shè)有定義:

67.以下關(guān)于retllm語(yǔ)句的敘述中正確的是()。

A.一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句

B.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條retum語(yǔ)句

C.定義成void類型的函數(shù)中可以有帶返回值的return語(yǔ)句

D.沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

68.算法的空間復(fù)雜度是指()。

A.算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間

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

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

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

69.(73)已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是()

A.堆排序

B.直接插入排序

C.快速排序

D.直接選擇排序

70.

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

#include<stdio.h>

main

{inti;

for(i=1;i<=10,i++)

{if((i*i>=20)&&(i*i<=100))

break;

}

printf("%d\n",i*i;

}

A.49B.36C.25D.64

71.在C程序中有如下語(yǔ)句:char*func(intx,inty);它是()。

A.對(duì)函數(shù)func的定義。B.對(duì)函數(shù)func的調(diào)用。C.對(duì)函數(shù)func的原型說(shuō)明。D.不合法的

72.若有條件表達(dá)式

則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp.的是()。

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

73.

設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語(yǔ)句時(shí),若從鍵盤輸入876543.0<回車>,a和b的值分別是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

74.若有以下定義和語(yǔ)句:

則輸出結(jié)果是()。

A.107B.105C.55D.58

75.設(shè)有關(guān)系R和S,關(guān)系代數(shù)表達(dá)式為R一(R—S)表示的是()。

A.R∩SB.R—SC.RUSD.R÷S

76.以理對(duì)枚舉類型名的定義中正確的是______。

A.enuma={one,two,three);

B.enuma{one=9,two=1three};

C.enuma={"one","two","three"};

D.enuma{"one","two"."three"};

77.

78.有以下程序

79.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語(yǔ)句:printf("i=%%d,j=%%d\n",i,j);輸出的結(jié)果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

80.有下列程序:

main()

{char*P[]={"3697","2584");

inti,j;longnum=0;

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

{j=0;

while(p[i][j]!=\0)

{if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;

j+=2;

}

}

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

}

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

A.35B.37C.39D.3975

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:利用插入排序法對(duì)字符串中的字符按從大到小的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前2個(gè)字符中,插人后前3個(gè)字符依然有序,再把第4個(gè)字符插入前3個(gè)字符中,待排序的字符串已在主函數(shù)中賦予。例如,原始字符串為“goodluck”,則排序后的字符串為“uoolkgdc”。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過(guò)形參n傳回,平均分通過(guò)函數(shù)值返回。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:

參考答案

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

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

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

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

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

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

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

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

2.C

3.Bswitch語(yǔ)句的執(zhí)行流程是:首先計(jì)算switch后面圓括號(hào)中表達(dá)式的值,然后用此值依次與各個(gè)case的常量表達(dá)式比較,若圓括號(hào)中表達(dá)式的值與某個(gè)e·*后面的常量表達(dá)式的值相等,就執(zhí)行此ca*后面的語(yǔ)句,執(zhí)行后遇break語(yǔ)句就退出switch語(yǔ)句;若圓括號(hào)中表達(dá)式的值與所有ca$e后面的常量表達(dá)式都不等,則執(zhí)行default后面前語(yǔ)句。然后退出。所以輸入l時(shí)打印65,輸入2時(shí)打印6,輸入3時(shí)打印64,輸入4時(shí)打印5,輸入5時(shí)打印6。

4.C本題中int(*ptr)的含義是指向函數(shù)的指針變量,其為指向函數(shù)的指針變量,該函數(shù)返回一個(gè)int型數(shù)據(jù),故選擇C選項(xiàng)。

5.D解析:在對(duì)二維數(shù)組元素賦初值時(shí),可以只對(duì)部分元素賦初值,未賦初值的元素自動(dòng)取0;C語(yǔ)言規(guī)定,對(duì)于二維數(shù)組,只可以省略第1個(gè)方括號(hào)中的常量表達(dá)式,而不能省略第2個(gè)方括號(hào)中的常量表達(dá)式;賦的初值不能多于事先定義好的數(shù)組元素個(gè)數(shù)。

在選項(xiàng)D)賦值表達(dá)式中,對(duì)每一維的元素賦初值應(yīng)用{},而不是()。

6.A通過(guò)指針變量存取某個(gè)變量值的方式稱為“間接存取”方式,選項(xiàng)A錯(cuò)誤;頭文件stdio.h中定義了NULL,在程序的開(kāi)頭包含stdio.h后,可以給指針變量賦NULL值,表示一個(gè)空指針,選項(xiàng)B正確;將一個(gè)指針變量中的值賦給另一個(gè)指針變量,這兩個(gè)指針變量指向同一地址,選項(xiàng)C正確;C語(yǔ)言中函數(shù)返回值的類型可以是簡(jiǎn)單的數(shù)據(jù)類型,也可以是指針類型,選項(xiàng)D正確。故本題答案為A選項(xiàng)。

7.B

8.A解析:本題考核的知識(shí)點(diǎn)是scallf()函數(shù)輸入格式。格式字符“%d”用于輸入整數(shù),“%C”用來(lái)輸入字符。在輸入時(shí),系統(tǒng)把第一個(gè)10作為整數(shù)10賦給m,把隨后的A作為字符賦值給c,后面的10作為整數(shù)賦給n,最后輸出的結(jié)果為10,A,10所以,A選項(xiàng)為所選。

9.D

\n全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開(kāi)始,到整個(gè)源文件結(jié)束止。當(dāng)全局變量定義在后,引用它的函數(shù)在前時(shí),應(yīng)該在引用它的函數(shù)中用extern對(duì)此全局變量進(jìn)行說(shuō)明,以便通知編譯程序該變量是一個(gè)已在外部定義了的全局變量,這時(shí)全局變量的作用域從extern說(shuō)明處起,延伸到該函數(shù)末尾。

\n

10.B解析:本題考核的知識(shí)點(diǎn)是for循環(huán)次數(shù)的計(jì)算.本程序中for循環(huán)的次數(shù)為c-1+1共循環(huán)了c次,而每循環(huán)一次s的值加1,所以s的值為s+c.而最開(kāi)始s的值為a,故4個(gè)選項(xiàng)中選項(xiàng)B符合題意.

11.D二維數(shù)組在初始化時(shí),可以省第1維,但是不可以省第2維??梢詾椴糠?jǐn)?shù)組元素初始化。A選項(xiàng)、B選項(xiàng)和C選項(xiàng)內(nèi)的初始化都沒(méi)有錯(cuò)誤。因此D選項(xiàng)正確。

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

13.AC語(yǔ)言規(guī)定定義數(shù)組時(shí),數(shù)組的長(zhǎng)度必須是整型常量,數(shù)組說(shuō)明符的方括號(hào)中表達(dá)式只要是常量即合法,因此選項(xiàng)B錯(cuò)誤。C語(yǔ)言規(guī)定,數(shù)組元素下標(biāo)必須是非負(fù)整數(shù),因此選項(xiàng)C錯(cuò)誤。選項(xiàng)D中,“chararray[4]”數(shù)組的長(zhǎng)度為4,“army[“3”]”中“3”是常量字符串,與C語(yǔ)言規(guī)定數(shù)組的下標(biāo)必須是非負(fù)整數(shù)不符。故本題答案為A選項(xiàng)。

14.D“max=MIN;”語(yǔ)句應(yīng)放在for循環(huán)之前,否則每次循環(huán)時(shí)都重新賦值,值沒(méi)有變化。

15.C帶參數(shù)的宏定義的替換過(guò)程是:用宏調(diào)用提供的實(shí)參字符串,直接置換宏定義命令行中相應(yīng)的形參字符串,非形參字符串保持不變。題干中,“area1=A_RECT((x-1),(y+1));”宏替換后為“area1=(x-1)*(y+1);”,“area2=A_RECT(x+3,y-1);”宏替換后為“area2=x+3*y-1;”。所以area1=4*7=28,area2=5+3*6-1=22。故本題答案為C選項(xiàng)。

16.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€(gè)主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說(shuō),繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說(shuō)繼承是指類之間共享屬性和操作的機(jī)制。

17.C本題重點(diǎn)考察二維數(shù)組名作為實(shí)參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實(shí)參為二維數(shù)組名a和兩個(gè)整數(shù)4.0,這樣對(duì)應(yīng)定義fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對(duì)s[i][j]進(jìn)行操作實(shí)際上就是對(duì)主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個(gè)元素。因此C選項(xiàng)正確。

18.A本題中定義了整形變量case,但case是關(guān)鍵字,關(guān)鍵字不能用做標(biāo)識(shí)符。單精度printF不是關(guān)鍵字,因?yàn)闃?biāo)識(shí)符區(qū)分大小寫。所以A不正確。

19.C解析:本題考查簡(jiǎn)單的if...else語(yǔ)句。先執(zhí)行條件if(a<b),顯然不成立,則執(zhí)行else語(yǔ)句。

20.C\n只有當(dāng)3個(gè)if條件同時(shí)成立,即能夠同時(shí)被2、3、7整除時(shí),才輸出i的值,而從0到50能夠同時(shí)被2、3、7整除的數(shù)只有42,故選擇c選鞏。

\n

21.軟件工程學(xué)軟件工程學(xué)

22.99解析:本題考查宏定義與三目運(yùn)算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個(gè)表達(dá)式的值,否則為b+1的值為整個(gè)表達(dá)式的值,(應(yīng)注意后面的加1)。

23.4844

24.*2*4*6*8**2*4*6*8*解析:程序中定義了一個(gè)字符數(shù)組a,并初始化為123456789,接著定義了一個(gè)指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個(gè)while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時(shí),將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時(shí)數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*

25.選擇選擇解析:關(guān)系數(shù)據(jù)庫(kù)的專門關(guān)系運(yùn)算包括選擇、投影和連接3種,其中選擇不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)。

26.I=1x[I-1]I=1,x[I-1]解析:對(duì)于10個(gè)數(shù),相臨的兩個(gè)數(shù)相加取和,總共要進(jìn)行9次加法運(yùn)算,所以空14處應(yīng)填入I=1。相臨的兩個(gè)數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[I-1]。

27.完善性完善性解析:軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)。完善性維護(hù)是指為了滿足用戶對(duì)軟件提出的新功能與性能要求,需要修改或再開(kāi)發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。

28.葉子結(jié)點(diǎn)葉子結(jié)點(diǎn)解析:樹中度為零的結(jié)點(diǎn),也就是沒(méi)有后件的結(jié)點(diǎn),稱為葉子結(jié)點(diǎn)。

29.白盒白盒解析:軟件測(cè)試的方法分為白盒測(cè)試方法和黑盒測(cè)試方法.

30.元組元組解析:在關(guān)系模型中,數(shù)據(jù)結(jié)構(gòu)用單一的二維表結(jié)構(gòu)來(lái)表示實(shí)體及實(shí)體間的聯(lián)系。一個(gè)關(guān)系對(duì)應(yīng)一個(gè)二維表。二維表中的列稱為屬性,屬性值的取值范圍稱為值域。二維表中的一行稱為一個(gè)元組。

31.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個(gè)字符型數(shù)組st1l和str2,并且給str2賦初值“abcdefgh”,接著調(diào)用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1.在函數(shù)sstrcpy(*s,*t)中,用了一個(gè)while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲(chǔ)空間,然后指針s和指針t都下移到下一個(gè)元素。所以空格處應(yīng)該填*t++或*(t++)。

32.存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間。供隊(duì)列循環(huán)使用??芍?,循環(huán)隊(duì)列應(yīng)當(dāng)是物理結(jié)構(gòu)。

33.3535解析:主函數(shù)中通過(guò)定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用swap(p,q),把p和q中的地址值傳給了形參指針變量a和b,此時(shí)a和b分別指向了主函數(shù)中的變量x和y。在函數(shù)swap()中交換了指針變量a和b的值,但并沒(méi)有改變a和b所指向的內(nèi)容,所以函數(shù)調(diào)用返回后x和y依舊是原來(lái)的值。故運(yùn)行結(jié)果為35。

34.Brte

35.2004170320041703解析:由于參數(shù)傳遞只是將實(shí)參的值復(fù)制到形參中,形參與實(shí)參擁有各自的存儲(chǔ)空間,因此形參的改變并不影響實(shí)參,所以并不改變s的情況。

36.11解析:因?yàn)樵跅l件表達(dá)式(a<b)?a:b中,比較表達(dá)式a<b為真,所以x的值等于a的值等于1,后面兩個(gè)條件表達(dá)式中的比較表達(dá)式都為真,所以最終x的值等于1。

37.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

38.j<Ia[i][j]=a[j][i]j<I\r\na[i][j]=a[j][i]解析:本題中要求將n行n列的矩陣A轉(zhuǎn)置,即讓數(shù)組中行上的元素變成對(duì)應(yīng)列上的元素。即把對(duì)角線兩邊的元素對(duì)換,所以本題的第一個(gè)空白處應(yīng)該填寫j<i,第二個(gè)空白處填寫交換對(duì)角線兩邊的元素的語(yǔ)句a[i][j]=a[j][i]。

39.00解析:根據(jù)運(yùn)算符的運(yùn)算順序可知,該表達(dá)式最后運(yùn)算的是與(&&)運(yùn)算,而任何表達(dá)式與“0”進(jìn)行“與”運(yùn)算,結(jié)果都為0。

40.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。

41.A解析:在給p和q數(shù)組賦初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,從題目中可以看出數(shù)組p和q都有3個(gè)字符,所以長(zhǎng)度均為3。

42.D解析:函數(shù)func的功能是計(jì)算兩個(gè)形參之和,并將值返回主調(diào)函數(shù)。所以:r=func(func(x,y),z)=func(func(2,5),8)=func(7,8)=15。

43.B解析:本題考核的知識(shí)點(diǎn)是函數(shù)的定義方法。選項(xiàng)B中在說(shuō)明形參時(shí),省略了第二個(gè)參數(shù)的類型,故選項(xiàng)B編譯不能通過(guò)。

44.D解析:本題首先定義了一個(gè)字符型指針變量p,并用一個(gè)字符串給它賦值,然后調(diào)用printf()函數(shù)輸出p所指向的字符串的長(zhǎng)度。字符串的結(jié)束標(biāo)記為“\\0”,其長(zhǎng)度為“\\0”前的字符個(gè)數(shù),故長(zhǎng)度為5。

45.B

46.A解析:C語(yǔ)言中文件有文本文件與二進(jìn)制文件,對(duì)文件的使用前必須先打開(kāi),打開(kāi)方式有只讀、寫入、讀寫等方式。

47.B

48.A解析:讓考生對(duì)常用的軟件結(jié)構(gòu)設(shè)計(jì)工具要有較深入的了解。常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC-structureChart),也稱程序結(jié)構(gòu)圖。其中,矩形內(nèi)用于注明模塊的功能和名字;箭頭表示模塊間的調(diào)用關(guān)系,帶實(shí)心圓的箭頭表示傳遞的是控制信息,帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。注意:根據(jù)結(jié)構(gòu)圖設(shè)計(jì)思想,了解結(jié)構(gòu)圖構(gòu)成的基本形式。

49.B

50.D本題主要考查指針變量對(duì)數(shù)值的引用。在題目中,首先定義了整型指針變量point和一個(gè)整型變量a,變量a的初值為4,然后是指針變量指向a,或者說(shuō)將變量a所在存儲(chǔ)單元的地址值賦給指針變量。

在選項(xiàng)A中,很顯然,不全是地址,只有point表示地址,而*&a等價(jià)于*(&a),表示取一個(gè)數(shù)值。

在選項(xiàng)B中,也不都表示地址,其中*point表示數(shù)值,其他兩個(gè)表示地址。

在選項(xiàng)C中,與選項(xiàng)B類似,其中的*point表示數(shù)值。

在選項(xiàng)D中,都表示地址,是題目的選擇答案。

51.B解析:RAM中存儲(chǔ)著當(dāng)前使用的程序、數(shù)據(jù)、中間結(jié)果和與外存交換的數(shù)據(jù),CPU根據(jù)需要可以直接讀/寫RAM中的內(nèi)容。

52.D解析:本題考核的知識(shí)點(diǎn)是for循環(huán),continue語(yǔ)句和break語(yǔ)句的運(yùn)用。程序中for循環(huán)中省略了判斷退出循環(huán)的表達(dá)式,for循環(huán)將由里面的break語(yǔ)句控制是否結(jié)束循環(huán),第一次循環(huán),第一條if語(yǔ)句后面括號(hào)里的表達(dá)式的值為假,所以該if語(yǔ)句不被執(zhí)行,執(zhí)行下面的第二條語(yǔ)句,此時(shí)該if語(yǔ)句表達(dá)式的值為假,所以該if語(yǔ)句也不執(zhí)行,執(zhí)行下面的語(yǔ)句,i++、s+=i,執(zhí)行完畢后i的值為1,s的值為1,如此循環(huán),直到第三次之后i,s的值都為3,繼續(xù)第四次循環(huán),顯然這時(shí)滿足第一條if語(yǔ)句的,執(zhí)行后面的continue;該次循環(huán)結(jié)束從頭開(kāi)始下次循環(huán),而i的值為3一直沒(méi)有改變,所以第一條語(yǔ)句始終要執(zhí)行,因此for循環(huán)將一直循環(huán)下去,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

53.A解析:scanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)為輸入格式字符申;第二個(gè)參數(shù)為輸入變量地址列表,在scanf()語(yǔ)句中非格式字符可以作為輸入時(shí)數(shù)據(jù)的間隔,輸入時(shí)必須原樣輸入,在本題中輸入格式串為%d,%d其中“,”為非格式字符,所以輸入時(shí)必須原樣輸入。

54.A解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過(guò)函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲(chǔ)單元中,a的各各元素分別為:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過(guò)malloc()函數(shù)紿指針?lè)峙鋬?nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過(guò)amovep(p,a,3)調(diào)用函數(shù)amovep,使得實(shí)參p與形參p,實(shí)參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲(chǔ)空間。最后輸出p[2],p[5]為56。

55.A解析:位置指針當(dāng)前值函數(shù)ftell()的基本調(diào)用格式為:ftell(fp)。

ftell()函數(shù)的參數(shù)說(shuō)明:“fp”是指向文件的文件型指針。

ftell函數(shù)的功能:得到fp所指向文件的當(dāng)前讀寫位置,即位置指針的當(dāng)前值,如果函數(shù)的返回值為-1L,表示出錯(cuò)。

56.C解析:本題考查了一維字符數(shù)組的定義和初始化。選項(xiàng)C中str[10]初始化為空,可以不必進(jìn)行類似''的空賦值,字符數(shù)組若沒(méi)有進(jìn)行初始化賦值,默認(rèn)的字符為空,并且定義完str數(shù)組后,應(yīng)該用“,”分隔而不是“?!保赃x項(xiàng)C錯(cuò)誤。

57.D解析:主要考查運(yùn)算符的優(yōu)先級(jí)。sizeof的優(yōu)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論