2011年1月自考00342高級(jí)語言程序設(shè)計(jì)一試題及答案含解析_第1頁(yè)
2011年1月自考00342高級(jí)語言程序設(shè)計(jì)一試題及答案含解析_第2頁(yè)
2011年1月自考00342高級(jí)語言程序設(shè)計(jì)一試題及答案含解析_第3頁(yè)
2011年1月自考00342高級(jí)語言程序設(shè)計(jì)一試題及答案含解析_第4頁(yè)
2011年1月自考00342高級(jí)語言程序設(shè)計(jì)一試題及答案含解析_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余5頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

高級(jí)語言程序設(shè)計(jì)(一)年月真題

0034220111

1、【單選題】下列運(yùn)算符的操作數(shù)必須是整型的是()

!

A:

%

B:

=

C:

答D:案:C

解析:運(yùn)算符%的含義是求取兩個(gè)整數(shù)相除的余數(shù),要求除數(shù)和被除數(shù)必須是整型。

2、【單選題】可用于C語言用戶標(biāo)識(shí)符的是()

void,define

2c,DO

A:

or,-abc

B:

as_b3,_123

C:

答D:案:D

解析:在C語言中,合法的標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,并且第1個(gè)字符必須為字

母或下劃線。選項(xiàng)A中void為C語言中的保留字,不能作為用戶的標(biāo)識(shí)符;選項(xiàng)B中2c

數(shù)字開頭,不能作為用戶的標(biāo)識(shí)符。選項(xiàng)C中For的首字母是大寫的,這和關(guān)鍵字for不

同,C語言中大小寫字母是有區(qū)別的,F(xiàn)or可以作為用戶的標(biāo)識(shí)符;但選項(xiàng)C中-abc的-開

頭,不能作為用戶的標(biāo)識(shí)符。選項(xiàng)D的兩個(gè)都可以用于C語言用戶標(biāo)識(shí)符。

3、【單選題】函數(shù)調(diào)用語句fun(fun(a,a+b,a+c),(a,b,c),5);中函數(shù)fun的參數(shù)個(gè)

數(shù)是()

3

4

A:

5

B:

6

C:

答D:案:A

解析:函數(shù)調(diào)用語句fun(fun(a,a+b,a+c),(a,b,c),5);中函數(shù)fun的參數(shù)個(gè)數(shù)有

3個(gè)分別是:fun(a,a+b,a+c)、(a,b,c)和5。

4、【單選題】設(shè)inta=0,b=1;,下列語句錯(cuò)誤的是()

a=b=10;

a++;

A:

b+=a;

B:

(a+b)++;

C:

答D:案:D

解析:進(jìn)行++的必須是變量,不能是表達(dá)式。比如a++相當(dāng)于a=a+1;而(a+b)++相當(dāng)于

(a+b)=(a+b)+1,顯然是錯(cuò)誤的,不能把一個(gè)值賦給一個(gè)表達(dá)式。

5、【單選題】能正確表達(dá)數(shù)學(xué)關(guān)系式0≤x<20的C語言表達(dá)式是()

0<=x<20

x>=0||x<20

A:

x>=0&&x<20

B:

!(x<=0)&&x<20

C:

答D:案:C

解析:數(shù)學(xué)關(guān)系式0≤x<20的含義是x大于等于0且x小于20,四個(gè)選項(xiàng)中只有選項(xiàng)C能

正確表達(dá)該數(shù)學(xué)關(guān)系式。特別要注意選項(xiàng)A,0<=x<20和數(shù)學(xué)關(guān)系式0≤x<20含義不同,C

語音表達(dá)式0<=x<20該式相當(dāng)于“(0<=x)<20”。先計(jì)算“0<=x”,結(jié)果為1或0;再計(jì)

算該結(jié)果(1或0)<20的值,顯然結(jié)果是“1”(真)。

6、【單選題】正確的C語言字符常量是()

‘\\\’

‘65’

A:

“A”

B:

‘/n’

C:

答D:案:A

解析:選項(xiàng)A.‘\\\’是轉(zhuǎn)義字符常量;選項(xiàng)B.‘65’是錯(cuò)誤表示;選項(xiàng)C.“A”是字符

串常量;選項(xiàng)D.‘/n’是錯(cuò)誤表示,回車換行用轉(zhuǎn)義字符‘\n’表示。

7、【單選題】設(shè)chars[]=“1234567”;,執(zhí)行printf(“%d,%d\n”,strlen(s),

sizeof(s));后的輸出結(jié)果是()

7,7

7,8

A:

8,7

B:

8,8

C:

D:

答案:B

解析:函數(shù)strlen(s)的功能是求取s中字符串的長(zhǎng)度,字符串“1234567”的長(zhǎng)度為7;

函數(shù)sizeof(s)的功能是計(jì)算數(shù)組s的長(zhǎng)度,定義s數(shù)組時(shí)長(zhǎng)度省略,實(shí)際長(zhǎng)度是8,除

了存放1234567為還要存放字符串結(jié)束標(biāo)記’\0’,所以7,8。

8、【單選題】設(shè)inta[]={12,34,56,78},*p=a;,下列表達(dá)式的值為56的是()

p[1+2]

*(a+2)

A:

a[3]

B:

*(p+3)

C:

答D:案:B

解析:選項(xiàng)A,相當(dāng)于p[3],即a[3],值為78;選項(xiàng)B,相當(dāng)于a[2],值為56;選項(xiàng)C

的值顯然是78;選項(xiàng)D,相當(dāng)于p[3],即a[3],值為78。

9、【單選題】對(duì)二維數(shù)組正確定義并初始化的是()

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

inta[3][3]=(1,2,3,4,5,6);

A:

inta[3][]={{l,2,3},{4,5,6}};

B:

inta[3][3]={a,b,c,d,e,f,g};

C:

答D:案:A

解析:選項(xiàng)A正確,對(duì)定義二維數(shù)組的同時(shí)進(jìn)行初始化,其第1維可以省略,選項(xiàng)A中省

略的第1維的長(zhǎng)度為2。選項(xiàng)B錯(cuò)誤,初始化數(shù)組用“{}”而不是“()”。選項(xiàng)C錯(cuò)

誤,不論什么情況,定義二維數(shù)組時(shí)也不能省略第2維的長(zhǎng)度。選項(xiàng)D錯(cuò)誤,定義a是整

型數(shù)組,初始化的不是整數(shù)。

10、【單選題】設(shè)doublex=5.168;,執(zhí)行printf(“%5.3f\n”,(int)(x*10+0.5)/

10.0);后的輸出結(jié)果是()

5.218

5.210

A:

5.200

B:

5.168

C:

答D:案:C

解析:求解過程:(int)(x*10+0.5)/10.0=(int)(5.168*10+0.5)/10.0

=(int)(51.68+0.5)/10.0=(int)(52.18)/10.0=52/10.0=5.200。

11、【單選題】關(guān)于函數(shù),下列敘述正確的是()

一個(gè)函數(shù)中可以定義其它的函數(shù)

程序總是從main()函數(shù)開始執(zhí)行

A:

main()函數(shù)也可以被其它函數(shù)調(diào)用

B:

一個(gè)C程序可以有多個(gè)main()函數(shù)

C:

答D:案:B

解析:一個(gè)C程序只能有一個(gè)main()函數(shù);C程序總是從main()函數(shù)開始執(zhí)行,并在

main()函數(shù)中結(jié)束;main()函數(shù)可以調(diào)用其它函數(shù)調(diào),其它函數(shù)之間可以相互調(diào)用,但不

能調(diào)用主函數(shù);函數(shù)不可以嵌套定義(在一個(gè)函數(shù)中定義其它的函數(shù)),但可以嵌套調(diào)

用。

12、【單選題】設(shè)charch=‘a(chǎn)’;,執(zhí)行printf(“%d,%c\n”,ch,ch+2);后的輸出

結(jié)果是()

97,c

97,99

A:

a,c

B:

a,a+2

C:

答D:案:A

解析:按%d的格式輸出,輸出的是‘a(chǎn)’對(duì)應(yīng)的ASCII碼的值97,ch+2的值是‘c’,

按%c的格式輸出是字符c,所以選項(xiàng)A正確。

13、【單選題】下列敘述正確的是()

continue語句的作用是跳出循環(huán)體

while循環(huán)語句的循環(huán)體至少執(zhí)行一次

A:

do-while循環(huán)語句的循環(huán)體至少執(zhí)行一次

B:

switch語句中的每個(gè)case語句組必須含有break語句

C:

答D:案:C

解析:continue語句的作用是結(jié)束本次循環(huán),轉(zhuǎn)去執(zhí)行下一次循環(huán);do-while循環(huán)語句

的循環(huán)體至少執(zhí)行一次;while循環(huán)語句的循環(huán)體至少執(zhí)行0次;switch語句中的case

語句組可以含有break語句,也可以不含有break語句。

14、【單選題】設(shè)struct{intx;inty;}m[2]={7,3,2,1};,執(zhí)行printf(“%

d\n”,m[0].x/m[1].x*m[0].y);后的輸出結(jié)果是()

10.5

9

A:

8.0

B:

7

C:

答D:案:B

解析:m是一個(gè)結(jié)構(gòu)體數(shù)組,m[0].x/m[1].x*m[0].y=7/2*3=3*3=9。

15、【單選題】設(shè)inta=l,b=2,c=3;,執(zhí)行表達(dá)式(a>b)&&(c=1)后c的值是()

0

1

A:

2

B:

3

C:

答D:案:D

解析:用&&對(duì)兩個(gè)表達(dá)式進(jìn)行計(jì)算時(shí),若第一個(gè)表達(dá)式的值為“假”,則運(yùn)算結(jié)果與第二

個(gè)表達(dá)式的值無關(guān),結(jié)果肯定為“假”,所以C語言規(guī)定此時(shí)第二個(gè)表達(dá)式將不再計(jì)算。

計(jì)算表達(dá)式(a>b)&(c=1),先計(jì)算a>b,值為0,表達(dá)式的值就是0,第二個(gè)表達(dá)式c=1不

再進(jìn)行計(jì)算,變量c仍然保持原來的值3。

16、【問答題】#include<stdio.h>voidmain(){inta=0,b=2,c=3;switch(a)

{case0:switch(b==2){casel:printf(“*”);break;case2:printf

(“%”);break;}case1:switch(c){casel:printf(“$”);break;case2:

printf(“&”);break;default:printf(“#”);}}printf(“\n”);}

答案:*#

解析:本題考核的知識(shí)點(diǎn)是switch語句的嵌套應(yīng)用。外層switch語句后面括號(hào)里的a的

值為0,所以執(zhí)行從case0:后面的語句開始執(zhí)行,而case0:后面語句也為switch語

句,這個(gè)switch語句后面括號(hào)里的b==2的值為1,執(zhí)行該switch語句里的case1:輸出

“*”,遇到break語句,退出內(nèi)層switch語句,由于外層switch語句的case0后面沒

有break語句,則繼續(xù)執(zhí)行下面的語句,即case1:后面的語句,又是switch語句,由于

c的值是3,所以執(zhí)行default:后面的語句printf(“#”);輸出“#”,所以程序的輸出

結(jié)果是*#。

17、【問答題】#includevoidfun(int*a,int*b,intx,inty){*a=x+y;*b=x-

y;}voidmain(){intc=8,d=4;fun(&c,&d,5,10);printf(“%d,%d”,c,

d);}

答案:c=15,d=-5

解析:

本題考查的是函數(shù)調(diào)用的問題。主函數(shù)中執(zhí)行語句fun(&c,&d,5,10);,指針變量a和

b分別指向變量c和d,形參x和y的值分別為10和5,執(zhí)行語句*a=x+y;*b=x-y;后,

指針變量a和b所指內(nèi)存單元的值分別變?yōu)?5和-5,由于指針變量a和b所指內(nèi)存單元

就是變量c和d的存儲(chǔ)位置,所以回到主函數(shù)后,變量c和d的值變成了15和-5。

18、【問答題】#include<stdio.h>intfun(intx){intp;if(x==1)return2;

elsep=x-fun(x-2);rerurnmp;}voidmain(){printf(“%d\n”,fun(9));}

答案:6

解析:主函數(shù)中調(diào)用fun(9)函數(shù),fun()函數(shù)中是一個(gè)遞歸調(diào)用的過程:fun(9)=9-

fun(7)=9-(7-fun(5))=9-(7-(5-fun(3)))=9-(7-(5-(3-fun(1))))=9-

(7-(5-(3-2)))=9-(7-(5-1))=9-(7-4)=9-3=6

19、【問答題】#include<stdio.h>inta=10;voidf(){inta=30;printf(“%

d,”,a);}voidmain(){f();printf(“%d\n”,a);}

答案:30,10

解析:本題考查的是局部變量和全局變量的區(qū)別。若在函數(shù)中定義與全局變量名字相同局

部變量,則全局變量在該函數(shù)中將不起作用。在主函數(shù)中調(diào)用f()函數(shù),執(zhí)行f()函數(shù)

printf(“%d,”,a);輸出的是在f()函數(shù)中定義的變量a的值30。在主函數(shù)中執(zhí)行

printf(“%d\n”,a);輸出的是全局變量a的值10。所以程序輸出結(jié)果為30,10。

20、【問答題】將數(shù)組a中元素按下圖循環(huán)左移一位并輸出。

#include

<stdio.h>voidmain(){intj,k,a[5]={1,2,3,4,5};k=a[0];for(j=0;

j<5;j++)a[j]=______;/*第一空*/a[4]=______;/*第二空*/for

(j=0;j<5;j++)printf(“%5d”,_______);/*第三空*/printf(“\n’’);}

答案:a[j+1]ka[j]

解析:第一個(gè)for循環(huán)負(fù)責(zé)將a[1]、a[2]、a[3]、a[4]四個(gè)元素依次左移1位,所以第一

空應(yīng)該填a[j+1]。接下來應(yīng)該將事先保存到變量k的原來a[0]的值賦給a[4],所以第二

空應(yīng)該填k,注意不能填a[0]。第二個(gè)for循環(huán)負(fù)責(zé)輸出循環(huán)左移后數(shù)組5個(gè)元素,所以

第三空應(yīng)該填a[j]。

21、【問答題】計(jì)算并輸出1!+2!+3!+4!+5!的值。#include<stdio.h>intf(inta)

{staticintc=1;c=c*a;return_____;/*第一空*/}voidmain(){inti,k;

k=_________;/*第二空*/for(i=2;i<=5;i++)k+=f(________);/*第三空*/

printf(“%d\n”,k);}

答案:c1i

解析:f()函數(shù)負(fù)責(zé)計(jì)算a的階乘并返回,所以第一空應(yīng)該填c。主函數(shù)中的for循環(huán)中

i從2到5調(diào)用for分別求2~5階乘并累加到變量k中,調(diào)用f函數(shù)的實(shí)參應(yīng)該是i,所

以第三空應(yīng)該填i;而1的階乘顯然沒有計(jì)算在內(nèi),所以第二空應(yīng)該填1,為k賦值為1。

22、【問答題】將文本文件fin.dat中的數(shù)字字符找出并寫入文本文件fnum.dat中。

#include<stdio.h>voidmain(){charch;FILE*fin,*fnum;fin=fopen

(“fin.dat”,________);/*第一空*/fnum=fopen(“fnum.dat”,“w’’);

while(!feof(_______))/*第二空*/{ch=fgetc(fin);if(______)fputc(ch,fnum);

/*第三空*/}fclose(fin);fclose(fnum);}

答案:"r"、fin、ch>='0'&&ch<='9'

解析:由于是將文本文件fin.dat中的數(shù)字字符找出并寫入文本文件fnum.dat中,所以

fin.dat文件以只讀方式打開,第一空填“r”。while(!feof(_______))含義是當(dāng)fin所

指文件為到文件尾,繼續(xù)執(zhí)行循環(huán),所以第二空填fin。if(______)用來判斷讀入的字符

是否是數(shù)字字符,如果是數(shù)字字符,則寫入文本文件fnum所指文件中,所以第三空填

ch>='0'&&ch<='9'。

23、【問答題】從鍵盤輸入代表平面上某點(diǎn)的橫坐標(biāo)x和縱坐標(biāo)y,輸出x和y的值并按下

列要求輸出相應(yīng)的標(biāo)志。當(dāng)x>0且y>0,屬于第一象限,輸出標(biāo)志“A’’當(dāng)x<0且y>0,屬

于第二象限,輸出標(biāo)志“B”當(dāng)x<0且y<0,屬于第三象限,輸出標(biāo)志“C”當(dāng)x>0且y<0,

屬于第四象限,輸出標(biāo)志“D”當(dāng)x=0或y=0,不屬于任何象限,輸出標(biāo)志“E”

答案:#include<stdio.h>voidmain(){intx,y;scanf("%d%d",&x,&y);/*輸入x和y

的值*/if(x>0&&y>0)printf("A\n");/*屬于第一象限*/elseif(x<0&&y>0)

printf("B\n");/*屬于第二象限*/elseif(x<0&&y<0)printf("C\n");/*屬于第

三象限*/elseif(x>0&&y<0)printf("D\n");/*屬于第四象限*/else

printf("E\n");/*不屬于任何象限*/}

解析:輸入兩個(gè)數(shù)之后,使用if語句依次判斷它們所屬的象限即可。

24、【問答題】從鍵盤輸入一個(gè)4行5列的二維整型數(shù)組,輸出其每一行的最小值。

答案:#include<stdio.h>voidmain(){inti,j,a[4][5],min;for(i=0;i<4;i++)/*輸

入4行5列的數(shù)據(jù)*/{for(j=0;j<5;j++)scanf("%d",&a[i][j]);}for(i=0;i<4;i++)

{min=a[i][0];/*假設(shè)每行的第1個(gè)數(shù)為當(dāng)前最小的*/for(j=1;j<5;j++)/*依次讀取

每行的其他元素,如果比當(dāng)前最小的值小,則更新min*/{if(a[i][j]<min)

min=a[i][j];}printf("第%d行最小數(shù)為%d\n",i+1,min);}}

解析:先用一個(gè)雙重循環(huán)輸入4行5列的數(shù)據(jù)。然后再用一個(gè)雙重循環(huán)讀取數(shù)組中的每一

個(gè)元素,在讀取每行數(shù)據(jù)時(shí),先假設(shè)每行的第1個(gè)數(shù)為最小的,然后用該行的每個(gè)數(shù)與最

小的比較,從而找出每行的最小值。

25、【填空題】表達(dá)式3!=6的值是_______________。

答案:1

解析:3不等于6成立,表達(dá)式3!=6的值為1。

26、【填空題】設(shè)inta=15;,執(zhí)行printf(“%d\n”,a>>2);后的輸出結(jié)果是

____________。

答案:3

解析:a>>2的含義是按位右移2位,先將a的值15轉(zhuǎn)換為2進(jìn)制數(shù)00001111,按位右

移2位變?yōu)椋?0000011,按照%d格式輸出結(jié)果是3。

27、【填空題】設(shè)char*str=“People”;,執(zhí)行printf(“%s\n”,str+4);后的輸出

結(jié)果是____________。

答案:le

解析:str是字符串“People”的首地址,str+4是字符串“People”中l(wèi)的地址,按%s

輸出從l開始的字符串,輸出結(jié)果是le。

28、【填空題】執(zhí)行下面程序段,輸出“FIFA”的行數(shù)是____________。inti,j;

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

答案:6

解析:i=0和1時(shí),內(nèi)層循環(huán)1次也不執(zhí)行;i=2時(shí),內(nèi)層循環(huán)執(zhí)行1次,輸出1行

“FIFA”;i=3時(shí),內(nèi)層循環(huán)執(zhí)行2次,輸出2行“FIFA”;i=4時(shí),內(nèi)層循環(huán)執(zhí)行3

次,輸出3行“FIFA”;一共輸出了6行“FIFA”。

29、【填空題】的C語言表達(dá)式是____________。

答案:1.0/(x+y)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論