重慶科技學院歷年計算機C語言選擇題(含六卷)_第1頁
重慶科技學院歷年計算機C語言選擇題(含六卷)_第2頁
重慶科技學院歷年計算機C語言選擇題(含六卷)_第3頁
重慶科技學院歷年計算機C語言選擇題(含六卷)_第4頁
重慶科技學院歷年計算機C語言選擇題(含六卷)_第5頁
已閱讀5頁,還剩112頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

歷年計算機C語言選擇題(一)

(總分100分,考試時長90分鐘)

一、理論基礎(每小題1分,共10分)

1、char型常量在內存中存放的是o

A、二進制代碼值

B、十進制代碼值

C、十六進制代碼值

D、ASCH代碼值

【答案】D

2、在c語言中,退格符是o

A、\n

B、\t

C、\v

D、\b

【答案】D

3、在c語言中,和存儲所占用的字節(jié)數(shù)分別是。

A、1,1

B、1,2

C、2,1

D、2,2

【答案】B

4、設x為整型變量,和表達式”!(!x)”值完全相同的表達式是o

A、A==0

B、x=l

C、x!=0

D、x!=l

【答案】C

5、各種運算符間的優(yōu)先順序從高到低是o

A、比較運算符一算術運算符一邏輯運算符

B、比較運算符一邏輯運算符一算術運算符

C、算術運算符一比較運算符一邏輯運算符

D、算術運算符一邏輯運算符一比較運算符

【答案】C

【解析】對于多種運算的混合運算,一定要記住它們之間的優(yōu)先級,否則就會

得到不同的計算結果。

6、下列符號中,可以作為變量名的是o

A、+c

B、*X

C、_DAY

D、next-day

【答案】C

7、在64位編譯器環(huán)境下,int類型占多少字節(jié)?

A、2

B、4

C、1

D、8

【答案】B

8、以下各標識符中,合法的是。

A、A&M

B、_sum

C、float

D、2x1

【答案】B

9、若要求在if后一兩圓括號中表示a不等于0的關系,則能正確表示這一關系

的表達式為O

A.a<>0

B、!a

C、a—0

D、a!=0

【答案】D

10、若有定義inta=12,n=5,則表達式a%=(n%2)運算后,a的值:

A、0

B、1

C、12

D、6

【答案】A

11、設有以下宏定義:

#defineN3

井defineY(n)((N+l)*n)則執(zhí)行語句:z=2*(N-Y(5+l));后,z的值為

________o

A、出錯

B、42

C、48

D、54

【答案】C

12、下列可用于c語言用戶標識符的一組是o

A、void,define,WORD

B、a3_b3,_123,Car

C、For,-abc,IFCaso

D、2a,DO,sizeof

【答案】B

【解析】C語言規(guī)定標識符只能由字母、數(shù)字和六畫線3種字符組成,且第一

個字符必須為字母或下畫線,排除選項C)和D);C語言中還規(guī)定標識符不能

為C語言的關鍵字,而選項A)中void為關鍵字,故排除選項A)0

13、以下4個選項中,不能看作一條語句的是o

A、;

B、a=5,b=2.5,c=3.6;

C、if(b!=5)x=2;y=6;

D、returnj;

【答案】C

【解析】c語言規(guī)定每個語句以;(分號)結束,因此選項C)為兩條語句。

14、下列選擇中,不能用做標識符的是o

A、1234

B、_1_2

C、int_2_

D、2_int_

【答案】D

15、數(shù)值型數(shù)據(jù)包括()兩種。

A、整型和長整型

B、整型和浮點型

C、單精度型和雙精度型

D、整型實型和貨行型

【答案】B

16、以下不正確的定義語句是o

A、doublex[5]={2.0,4.0,6.0,8.0,10.0};

B、inty[5]={0,l,3,5,7,9};

C、charcl[]={'r,'2,,,3'/4,/5');

D、charc2[]={'\xl0',r\xar,'\x8,};

【答案】B

17、表達式的值為0的是o

A、5/5%5

B、5>2

C、!4

D、3>2&&5-6<7

【答案】C

18、已知英文字母m的ascii碼值為109,那么英文字母p的ascii碼值是

A、112

B、113

C、111

D、114

【答案】A

【解析】字母m與字母p的ASCII碼值相差3,那么q的ASCH碼值二109+3-

112o

19、若a是float型變量,b是unsigned型變量,以下輸入語句中合法的

是()。

A、scanf(M%6.2f%d',,&a,&b);

B、scanf("%f%nn,&a,&b);

C、scanf(M%f%3oH,&a,&b);

D、scanf("%f%f*,,&a,&b);

【答案】C

20、執(zhí)行下列語句后,:和n的值為________ointi=10;intn=i++%5;

A、10,0

B、10,1

C、11,0

D、11,1

【答案】C

二、控制結構(每小題1分,共10分)

1、C語言中,關系表達式和邏輯表達式的值是O

A、0

B、0或)

C、1

D、T或F

【答案】B

2、下列程序的輸出結果是。

#include<stdio.h>

main()

(

inta=0,b=l,c=2;

if(++a>0||++b>0)++c;

printf("%d,%d,%d",a,b,c);

)

A、0,1,2

B、1,2,3

C、1,1,3

D、1,2,2

【答案】C

【解析】本題考查if語句。先判斷if語句的條件是否成立,因為++a=1>0,

所以條件成立,又因為是進行邏輯或運算,在已知其中一個運算對象為真的情

況下,不必判斷另外一個運算對象的真假,即不進行++b操作,就可以直接得

出整個表達式的值為邏輯1,執(zhí)行下面的++c。

3、c語言對嵌套if語句的規(guī)定是:else總是與()。

A、其之前最近的:f配對

B、其之前最近的且尚未配對的if配對

C、縮進位置相同的if配對

D、第一個if配對

【答案】B

4、下列程序的運行結果是o

main()

(

inta=-5,b=l,c=l;

intx=0,y=2,z=0;

if(c>O)x=x+y;

if(a<=0)

if(b>0)if"c<=O)y=x-y;

)

elseif(c>0)y=x-y;

elsez=y;

printf("%d,%d,%d\nM,x,y,z);

)

A、2,2,0

B、2,2,2

C、0,2,0

D、2,0,2

【答案】A

【解析】本題考查ifelse語句的使用。先判斷第1個if語句,因為c=l>

0,所以x=x+尸0+2=2。第1個if語句,因為a=-5V0,所以進入下列的復合

語句。經(jīng)判斷發(fā)現(xiàn),復合語句中第2個if語句的條件均不滿足,不執(zhí)行任何語

句退出,在這個過程中y和z的值沒有發(fā)生變化。

5、c語言對嵌套的if語句的規(guī)定是:else總是與配對。

A、與之前最近的建

B、第一個if

C、縮進位置相同的if

D、與之前最近的且尚未配對的if

【答案】D

6、有以下程序

main()

(

inti;

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

switch(i)

(

case1:printfi);

case2:printf("%d",i);

default:printf(w%d",i);

}

}

執(zhí)行后輸出的結果是0

A、011122

B、012

C、012020

D、120

【答案】A

【解析】當執(zhí)行switch語句時,首先計算緊跟其后一對括號中的值,然后在語

句體內尋找與該值吻合的case標號。若相等,則執(zhí)行該標號后開始的各語句,

包括在其后的所有case和default后的語句,直到switch語句體結束。

7、有如下程序

main()

(

intx=l,a=5,b=5;

switch(x)

(

case0:b-;

case1:a-;

case2:a—;

b一;

}

printf(,ra=%d,b=%d\n",a,b);

}

該程序的輸出結果是o

A、a=3,b=4

B、a=3,b=3

C、a=4,b=5

D、a=4,b=4

【答案】A

8、有以下程序:

main()

(

inta=3,b=4,c=5,d=2;

if(a>b)if(b>c)printf('r%dn,d+++1);

elseprintf("%d",++d+l);

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

)

程序運行后的輸出結果是______o

A、2

B、3

C、43

D、44

【答案】A

【解析】本題考查嵌套if語句中else的配對。本題中else和第二個if即

if(b>c)配對。由于a>b不成立,因此整個程序只輸出printf("%d\n",d),

即輸出2。

9、下列程序的輸出結果是o

main()

{

inta=4,b=5,c;

if(a<b)

c=a*b;

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

)

else

(

c=b/a;

printf(飛d,%d,%d\n",b,a,c);

)

)

A、4,5,12

B、20

C、5,4,20

D、12

【答案】C

【解析】本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)aVb成

立,執(zhí)行下列的復合語句,得c=a*b=20,b、a的值不變。

10、設變量x和y均已正確定義并賦值。以下if語句中,在編譯時將產(chǎn)生錯誤

信息的是O

A、if(x++);

B、if(x>y&&y!=0);

C、if(x>0)x—

D、if(y<0){;}

【答案】C

【解析】elsey++;elsex++;

本題考查的是if語句。if后表達式兩側的圓括號不可少,最后是一條語句或

是用花括號括起來的一組語句。選項A和B是在表達式后跟了一條空語句,選

項D是在表達式后跟了一組空語句,選項C中x一是表達式而不是語句,所以

在編譯時會出現(xiàn)錯誤信息。故本題答案選C。

三、循環(huán)結構(每小題1分,共10分)

1、下列敘述中正確的是O

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

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

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

D、在循環(huán)體內使月break諸句和continue語句的作用相同

【答案】C

2、以下程序的輸出結果是o

main()

inti=0,s=0;

for(;;)

if(i==6)break;

i++;

s+=i;

)

printf("%d\nn,s);

}

A、10

B、15

C、21

D、死循環(huán)

【答案】C

3、程序的基本控制結構是o

A、順序結構,多分支結構和單分支結構

B、順序結構,支結構和循環(huán)結構

C、順序結構,選擇結構和循環(huán)結構。

D、單行結構和多行結構。

【答案】C

4、有以下程序

#include<stdio.h>

main()

(

inti,n;

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

(

n=rand()%5;

switch(n)

(

case1:

case3:

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

break;

case2:

case4:

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

continue;

case0:

exit(0);

}

printf(w%d\n*,n);

)

)

以下關于程序執(zhí)行情況的敘述,正確的是一

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

B、當產(chǎn)生的隨機數(shù)n為4時結束循環(huán)操作

C、當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作

D、當產(chǎn)生的隨機數(shù)n為0時結束程序運行

【答案】D

【解析】閱讀本程序可知,當產(chǎn)生隨機數(shù)為4時,會繼續(xù)執(zhí)行循環(huán);當產(chǎn)生隨

機數(shù)為1和2時,會順勢執(zhí)行case1或case2下面的語句,進而輸出結果;

當產(chǎn)生隨機數(shù)為0時,正常結束程序的運行。for循環(huán)語句隨著產(chǎn)生的隨機數(shù)

的不同,執(zhí)行的次數(shù)也不相同。

5、假定等級和分數(shù)有以下對應關系:等級:a分數(shù):85?100等級:b分

數(shù):60?84等級:c分數(shù):60以下對于等級grade榆出相應的分數(shù)區(qū)

間,能夠完成該功能的程序段是.

A、switch(grade)

(

case1A':printf("85--100\n");

casefB):printf("60—84\nn);

caserC':printf(M60以下\nH);

default:printf(H等級錯誤!\nH);

)

B、switch(grade)

(

case'A':printf("85―100\n");break;

caserB':printf("60—84\n");

caserC':printf("60以下\n,f);

default:printf(,'等級錯誤!\n");

)

C、switch(grade)

(

case'A':printf("85―100\n");break;

caserB':printf("60—84\n");break;

case'C':printf(M60以下\nw);

default:printf(n等級錯誤!\nH);

)

D、switch(grade)

(

case1A':printf("85-100\n");break;

caserB':printf("60—84\n");break;

case'C:printf("60以下\n");break;

default:printf(r,等級錯誤!\nH);)

【答案】D

6、若變量已正確定義,有以下程序段i—。;

doprintf(,F%d,",i);

whi1e(i++);

printfi)其輸出結果是。

A、0,0

B、0,1

C、1,1

D、程序進入無限循環(huán)

【答案】B

7、以下程序的執(zhí)行結果是mainO

{intx=0,s=0;

whi1e(!x!=0)s-=++x;

printf(n%dM,s);)

A、0

B、1

C、語法錯誤

D、無限循環(huán)

【答案】B

8、程序語言一般都提供多種循環(huán)語句,例如實現(xiàn)先判斷循環(huán)條件再執(zhí)行循環(huán)體

的while語句和先執(zhí)行循環(huán)體再判斷循環(huán)條件的do-while語句。關于這兩種循

環(huán)結構,在不改變循環(huán)體的條件下,(17)是正確的。

A、while語句的功能可由do-while語句實現(xiàn)

B、do-while語句的功能可由while語句實現(xiàn)

C、若已知循環(huán)體的次數(shù),則只能使用while語句

D、循環(huán)條件相同時,do-while語句的執(zhí)行效率更高

【答案】B

【解析】本題考查程序的控制結構。

do-while語句的形式為:

do

循環(huán)體語句;

while循環(huán)條件;

首先執(zhí)行一次循環(huán)體語句(無條件地),若循環(huán)條件不成立,則結束do-

while語句的執(zhí)行;否則再一次執(zhí)行循環(huán)體語句,即,此后循環(huán)條件每成立一

次,循環(huán)體語句就執(zhí)行1次。顯然,do-while中的循環(huán)體語句至少執(zhí)行1次。

while語句的形式為:

while循環(huán)條件

循環(huán)體語句;

其執(zhí)行過程為:先判斷循環(huán)條件,若不成立,則結束while語句的執(zhí)行;

否則執(zhí)行一次循環(huán)體語句。此后循環(huán)條件每成立一次,循環(huán)體語句就執(zhí)行1

次。顯然,while中的循環(huán)體語句可能一次也不執(zhí)行。

因此,在不改變循環(huán)體的情況下,可用while語句來代替do-whilc語句,

反之則不行。

9、有以下程序

^include<stdio.h>

main()

{

inti,j,m=l;

for(i=l;i<3;i+-)

for(j=3;j>0;j—)

if(i*j>3)break;

)

)

printf("m=%d\nH,m)

)

程序運行后的輸出結果是0

A、m=6

B、m=2

C、m=4

D、m=5

【答案】A

10、有以下程序

main()

(

inti,j;

for(i=l;i<4;i?)

(

for(j=i;j<4;j++)printf(,r%d*%d=%d

printf(,r\n");

)

}

程序運行后的輸出結果是o

A、1*1=11*2=21*3=3

2*1=22*2=42*3=6

3*1=33*2=63*3=9

B、1*1=11*2=21*3=3

2*2=42*3=6

3*3=9

C、1*1=1

D、1*1=11*2=2

2*1=22*2=4

3*3=9

【答案】B

【解析】本題考查的是循環(huán)嵌套。在一個循環(huán)體力又完整地包含了另一個循

環(huán),稱為循環(huán)嵌套。外循環(huán)i的值分別為1、2、3,當i=l,內循環(huán)j=l時,輸

出1*1=1;當內循環(huán)j=2時,輸出1*2=2;當內循環(huán)j=3時,輸出1*3=3;當

i=2,內循環(huán)戶2時,瑜出2*2=4;當內循環(huán)戶3時,輸出2*3=6;當i=3,內

循環(huán)j:3時,輸出3*3=9。

四、數(shù)組/指針數(shù)組(每小題1分,共10分)

1、合法的數(shù)組定義是________O

A、inta[]="string”;

B、inta[5]=0,1,2,3,4,5;

C、chara="string”;

D、chara=0,1,2,3,4,5;

【答案】D

2、對長度為8的數(shù)組進行快速排序,最多需要的比較次數(shù)為o

A、8

B、28

C、56

D、64

【答案】B

【解析】對長度為n的線性表進行快速排序,最壞情況下需要比較的次數(shù)為

n(n-1)/2.數(shù)組屬于線畦表,故對長度為8的數(shù)組進行快速排序,最多需要的比

較次數(shù)為8(8-1)/2=28.本題答案為B選項。

3、對以下說明語句inta[10]={6,7,8,9,10};的正確理解是()。

A、將5個初值依次賦給a[l]至a[5]

B、將5個初值依次賦給a[O]至a[4]

C、;將5個初值依次賦給a[6]至a[10]

D、因為數(shù)組長度與初值的個數(shù)不相同,所以此語句不正確

【答案】B

4、有如下程序

#include<stdio.h>

voidmainO

{

charch[80]=H123abcdefg*&'r;

intj;

longs=0;

puts(ch);

for(j=0;ch[j]>'\0';j++)if(ch[j]>='a'&&ch[j]<='z')

ch[j]=ch[j]+,e,-,e';

puts(ch);

)

該程序的功能是.

A、測字符數(shù)組ch的長度

B、將數(shù)字字符串ch轉換成十進制數(shù)

C、將字符數(shù)組ch中的小寫字母轉換成大寫

D、將字符數(shù)組ch中的大寫字母轉換成小寫

【答案】D

5、若有以下的說明和語句,則在執(zhí)行for語句后,*(*(pt+l)+2)表示的數(shù)組元素

是。

int[3][3L*pt[3],k;

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

pt[k]-&t[k][0];

A、t[2]Eo]

B、t[2][2]

C、tell[2]

D.t[2][l]

【答案】C

6、已知英文字母a的十進制ascii碼值為65,那么a的十進制ascii碼值為

A、98

B、100

C、89

D、97

【答案】D

【解析】在ASCII碼表中,大、小寫英文字母是分組排序安排在不同位置的,

并且小寫英文字母的碼值比對應的大寫英文字母的碼值大32。所以,當知道A

的ASCII碼值是65后,字符a的碼值為65+32=97。

7、閱讀下列程序段:chars[18]="abook!H;printf("%.4s\n",s);

其輸出結果為________o

A、abook!

B、abook

Csabo

D、a

【答案】C

【解析】"abook!”在字符數(shù)組中是按單個字符存儲的,包括空格,以4s是輸

出前四個字符。

8、若有說明語句"inta[5],*p=a;二則對數(shù)組元素的正確引用是。

A、a[p]

B、p[a]

C、*(p+2)

D、p+2

【答案】C

9、若有說明:int@[][3]={{1,2,3},{4,5},{6,7)};則數(shù)組@的第一維的大小

為:()

A、2

B、3

C、4

D、無確定值

【答案】B

10、下列一維數(shù)組定義正確的是________。

A、x=5;intnum[x];

B、constihtx=5;floatnum[x];

C、constfloatx=5;intnum[x];

D、constintx;x=5;intnum[x];

【答案】B

【解析】數(shù)組的下標不能是變量,不能為非整數(shù),定義為常量的標識符不能再

用來賦值,只能在定義時初始化。

五、字符串/字符串指針(每小題1分,共10分)

1、\、/、mod、*等4個算術運算符中,優(yōu)先級最低的是o

A、\

B、/

C、Mod

D、*

【答案】C

【解析】[知識點]模塊/VBA編程基礎

在一個表達式中進行若干操作時,每一部分都會按預先確定的順序進行計算求

解,稱這個順序為運算符的優(yōu)先順序。而算術表達式的優(yōu)先順序從高到低分別

為:指數(shù)運算(八)、負數(shù)(-)、乘法和除法(*、/)、整數(shù)除法(\)、求模運算

(Mod)、加法和減法(+、-)、小字符串連接(&)。

2、判斷字符串a(chǎn)和b是否相等,應當使用。

A、if(a==b)

B、if(a=b)

C^if(strcmp(a,b))

D、if(strcmp(a,b)==0)

【答案】D

3、以下語句中,不能實現(xiàn)回車換行的是()。

A、printf(w\nM);

B、putchar('An1');

C、fprintf(stdout,"Xn,1);

D、fwrite(tt\nH,1,1,stdout);

【答案】B

4、下列數(shù)據(jù)中為字符串常量的是

A、'A'

B、"9"

C、Howdoyoudo

D、'$abd'

【答案】B

5、char*s="\t\\name\\address\n";指針s忻指字符串的長度為:。

A、說明不合法

B、19

C、18

D、15

【答案】D

6、宏定義用于將一個標識符定義為一個

A、常量

B、字符串

C、整數(shù)

D、長整數(shù)

【答案】B

【解析】宏定義用于將一個標識符定義為一個字符串

7、下列類型的數(shù)據(jù)不可以存儲在可變型變量中的是_______o

A、整型

B、字節(jié)型

C、單精度型

D、日期型

【答案】B

【解析】本題考查可變型變量。可變型變量可以存儲9種類型的數(shù)據(jù):空、

NULL型、整型、長整理、單精度型、雙精度型、貨幣型、日期型和字符串型。

選項A錯誤,整型數(shù)據(jù)可以存儲在可變型變量中;選項B正確,字節(jié)型數(shù)據(jù)不

可以存儲在可變型變量中;選項C錯誤,單精度型數(shù)據(jù)可以存儲在可變型變量

中;選項D錯誤,日期型數(shù)據(jù)可以存儲在可變型變量中。答案為B。

8、按照c語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是

A、大寫字母

B、連接符

C、數(shù)字字符

D、下劃線

【答案】B

【解析】C語言的標識符要符合以下規(guī)定:

①標識符是個以字母或下劃線開頭的,由字母、數(shù)字、下劃線組成的字符

串:

②標識符不能與任意一個關鍵字同名:

③標識符中的字母區(qū)分大小寫。

故本題應該選擇B。

9、下面各語句行中,能正確進行字符串賦值操作的語句是______。

A、charST[5]={',ABCDEH);

B、charS[5]={'Af,'B',,C,,'D','E'};

C、char*S;S="ABCDEM;

D、char*S;scanf("%SM,S);

【答案】C

10、設pl和p2是指向同一個字符串的指針變量,c為字符變量,則以下不

能正確執(zhí)行的賦值語句是()。

A、c=*pl+*p2;

B、p2=c;

C、pl=p2;

D、c=*pl*(*p2);

【答案】B

六、函數(shù)/函數(shù)指針(每小題1分,共10分)

1、下面函數(shù)定義形式正確的是。

A、intf(intx;inty)

B、intf(intx,y)

C、intf(int,inty)

D、intf(x,y:int)

【答案】C

2、結構化程序設計方法的三種基本控制結構中不包括(.)o

A、循環(huán)結構

B、遞歸結構

C、順序結構

D、選擇結構

【答案】B

3、x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是

A、INPUTx、v、z;

B、scanf("%d%d%d",&x,&y,&z);

C、scanf("%d%d%d",x,y,z);

D、read("%d%d%d",&x,&y,&z);

【答案】B

【解析】考查格式輸入函數(shù)scanf的使用。

[解題要點]scanf函數(shù)的一般格式是:

scanf(格式控制,地址表列)

該格式中,地址表列中應是變量地址,而不是變量名。

[考點鏈接]調用putchar和getchar函輸出和輸入字符。

4、c語言規(guī)定,在一個源程序中,main函數(shù)的位置。

A、必須在最開始

B、必須在系統(tǒng)調月的庫函數(shù)的后面

C、可以任意

D、必須在最后

【答案】C

【解析】C程序總是從main函數(shù)開始執(zhí)行,但main函數(shù)在程序中的位置可以

是任意的。

5、以下敘述中正確的是。

_A、在C程序中無論是整數(shù)還是實數(shù),只要在允許的范圍內都能準確無誤地

表不

B、C程序由主函數(shù)組成

C、C程序由若干函數(shù)組成

D、C程序中只允許包含一個函數(shù)

【答案】C

6、結構化程序設計所規(guī)定的三種基本控制結構是。

A、輸入、輸出、處理

B、順序結構、選擇結構、循環(huán)結構

C、for、whilexswitch

D、主程序、子程序、函數(shù)

【答案】B

【解析】結構化程序有三種基本結構組成,分別是順序結構、選擇結構和循環(huán)

結構。

7、若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函

數(shù)聲明語句中正確的是________O

A、intfun(doubleX,int*n);

B、intfun(double,int);

C、intfun(double*X,intn);

D、intfun(double*int*);

【答案】C

【解析】函數(shù)首部intfun(doublex[10],int:n)表示這個函數(shù)的返回值是整

型,箕第一個形式參數(shù)是一個雙精度型的一維數(shù)組,第二個參數(shù)是一個整型指

針。在C語言中,一維數(shù)組的名字表示的是一維數(shù)組的地址,所以選項D)是正確

的。

8、下列程序的輸出結果是o

intfl(intx,inty)

returnx>y?x:y;

)

intf2(intx,inty)

returnx>y?y:x;

)

main()

inta=4,b=3,c=5,d=2,e,f,g;

e=f2(fl(a,b),fl:c,d));

f=fl(f2(a,b),f2:c,d));

g=a+b+c+d-e-f;

printf("%d,%d,%d\nM,e,f,g);

}

A、4,3,7

B、3,4,7

C、5,2,7

D、2,5,7

【答案】A

【解析】根據(jù)函數(shù)intfl(intx,inty){

returnx>yx:y;}和intf2(intx,inty){

returnx)>y:x;}的定義可知,如果x>y成立,則函數(shù)fl返回x的值,函

數(shù)f2返回y的值。所以fl(a,b)=4,fl(c,d)=5,f2(a,b)=3,f2(c,d)=2,故

e=f2(4,5),f=fl(3,2)=3,g=4+3+5+2-4-3=7。

9、以下敘述中,不正確的是________o

A、在一個函數(shù)中,可以有多條retuiri語句

B、函數(shù)的定義不能嵌套,但函數(shù)的調用可以嵌套

C、函數(shù)必須有返回值

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

【答案】C

【解析】函數(shù)不一定有返回值。

10、以下敘述正確的是________O

A、在C語言程序口,main函數(shù)必須位于程序的最前面

B、C語言程序的每行中只能寫一條語句

C、C語言本身沒有輸入輸出語句

D、在對一個C語言程序進行編譯的過程,可發(fā)現(xiàn)注釋中的拼寫錯誤

【答案】C

【解析】考查C語言的幾個基本概念。

[解題要點]選項A)中,main函數(shù)可以放在程序的任何位置,不一定要放在程

序的最前面,不論main函數(shù)放在什么位置,程序的執(zhí)行卻總是從main函數(shù)開

始的;選項B)中,因為C語言的語法限制不嚴格,所以可以多條語句放在同一

行上;選項C)是正確的,C語言中沒有專門的輸入輸出語句,輸入輸出是通過

使用輸入輸出庫函數(shù)來實現(xiàn)的;選項D)是錯誤的,因為C語言中的注釋是入會

被編譯的a

[考點鏈接]掌握算法的相關特性。

七、指針(每小題1分,共10分)

1、調用函數(shù)時,當實參和形參都是簡單變量時,它們之間數(shù)據(jù)傳遞的過程是

A、實參將其地址傳遞給形參,并釋放原先占用的存儲單元

B、實參將其地址傳遞給形參,調用結束時形參再將其地址回傳給實參

C、實參將其值傳遞給形參,調用結束時形參再將其值回傳給實參

D、實參將其值傳遞給形參,調用結束時形參并不將其值回傳給實參

【答案】D

2、inta[10];

合法的數(shù)組元素的最小下標值為一

A、10

B、9

C、1

D、0

【答案】D

3、一個c語言程序總是從開始執(zhí)行。

A、主過程

B、主函數(shù)

C、子程序

D、主程序

【答案】B

4、數(shù)組a[0…5,0…6]每個元素占5個單元,將其按列優(yōu)先次序存儲在起始地址

為1000的連續(xù)內存單元中,則元素a[5][5]的地址為________o

A、1175

B、1180

C、1205

D、1210

【答案】A

【解析】本題主要考查的知識點是二維數(shù)組元素的地址計算。

[要點透析]a[5][5]的地址是1000+(5X6+5)X5=1175e

5、字符串',\\\ffabc\,\\N的長度是o

A、11

B、7

C、5

D、3

【答案】B

6、程序流程圖中指有箭頭的線段表示的是________o

A、圖元關系

B、數(shù)據(jù)流

C、控制流

D、調用關系

【答案】C

7、以下正確的描述是________。

A、函數(shù)的定義可以嵌套,但函數(shù)的調用不可以嵌套

B、函數(shù)的定義不可以嵌套,但函數(shù)的調用可以嵌套

C、函數(shù)的定義和函數(shù)的調用均不可以嵌套

D、函數(shù)的定義和函數(shù)的調用均可以嵌套

【答案】B

8、設有以下函數(shù):

^include<stdio.h>

intf(inta)

{

intb=0,c;

c=3;

b++;

c++;

return(a+b+c);

}

如果在下面的程序中調用該函數(shù),則輸出結果是.

voidmain()

{

inti;

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

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

}

A、567

B、579

C、345

D、333

【答案】B

9、以下程序中的函數(shù)reverse的功能是將a所指數(shù)組中的內容進行逆置。

voidreverse(inta[],intn)

(

inti,t;

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

(

t=a[i];

a[i]=a[n-l-i];

a[n-l-i]=t;

)

}

main()

(

intb[10]={l,2,3,4,5,6,7,8,9,10};

inti,s=0;

reverse(b,8);

for(i=6;i<10;i-+)s+=b[i];

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

)

程序運行后的輸出結果是。

A、22

B、10

C、34

D、30

【答案】A

10、若有以下定義和語句:doubler=99,*p=&r;*p=r;則以下正確的敘述

是______。

A、以下兩處的*p含義相向,都說明紿指針變量p賦值

B、在"doubler=99,*p=&r;"中,把r的地址賦值給了p所指的存

儲單元

C、語句H*p=r;”把變量r的值賦給指針變量p

D、語句H*p=r;"取變量r的值放回r中

【答案】D

八、結構體(每小題1分,共10分)

1、有以下結構體說明和變量的定義,且指針P指向變量a,指針q指向變量b。則

不能把結點b連接到結點a之后的語句是________o

structnode

(

chardata;

structnode*next;

)

a,b,*p=&a,*q=&b;

A.3475

B、3574

C、1234

D、1235

【答案】B

【解析】在被調用過程中,有這樣的語句“StaticSum”,因為變量Sum是局

部變量,局部變量除了可以用Dim語句聲明外,還可用Static語句將變量聲明

為靜態(tài)變量,它在程序運行過程中可保留變量的嗔,這就是說每次調用過程

時,用Static說明的變量保持原來的值。具體過程分析如下:調用P(l),

所以在被調過程中N=l,執(zhí)行ForNext循環(huán),P(l)=Sum=l;調用P(2),配以

在被調過程中N=2,執(zhí)行ForNext循環(huán),P(2)=Sum=4;調用P(3),所以在被

調過程中N=3,執(zhí)行ForNext循環(huán),P(3)=Sum=10;調用P(4),所以在被-周過

程中N=4,執(zhí)行ForNext循環(huán),P(4)=Sum=20;不難看出,最后輸出的結具S

值應為1+4+10+20=35,所以選項C)正確。

2、設有以下語句:

typedefstructtt(charc;inta[4];}cin;則下面敘述中正確的是

A、可以用TT定義結構體變量

B、TT是struct類型的變量

C、可以用CIN定義結構體變量

D、CIN是structTT類型的變量

【答案】C

【解析】將題目中的定義語句去掉前面的typedef和后面的CIN(分號保留),

就是一條完整的結構體定義語句,其中struct是說明符,TT是結構體名,大

括號里面的是結構體成員的定義。此時要聲明該結構體變量時需要使用struct

加結構體名一起來聲明,structTT一起構成一人結構體類型,就好像字符類

型char。若只去掉前面的typedef,就是一條結構體定義同時聲明個結構體變量

CIN的語句,因為CIN的前面部分是structTT的完整寫法,可以看作是

structTToC語言允許用typedef說明一種新類型名,其語法格式為:

typedef類型名標漢符;

以后就可以用該標識符來代替被說明的類型名了。因此,當前面存在

typedef時,該語句就變成了給structTT的定義一個新的名稱CIN。所以,此

時的CIN是一個結構體類型,它相當于structTT,即可以和char一樣單獨用

來聲明該結構體變量,而TT只是一個結構體名,不能單獨用來聲明變量。所

以,4個選項中C符合題意。

3、有以下程序

structs

(

intx,y;

)

data[2]={10,100,20,200);

main()

structs*p=data;

printf("%d\n,',+-(p->x));

}

程序運行后的輸出結果是________0

A、10

B、11

C、20

D、21

【答案】B

4、若定義下列結構體,結構體變量p的出生年份賦值正確的語句是o

structst

{

intx;

inty;

intz;

)

structworker

(

charname[20];

charsex;

structstbirth;

}P;

A、x=1987

B、birth.x=1987;

C、p.birth.x=1987;

D、x=1987;

【答案】C

【解析】本題主要考查怎樣為嵌套定義的結構中的成員賦值:由于worker中的

birth是一個st型的結構,在給birth賦值時,不能將birth作為一個整體,

要用運算再深入一層訪問到最基本的成員x、y、Zo

5、c語言中,switch后的括號內表達式的值可以是o

A只能為整型

B:只能為整型,字符型,枚舉型

C、只能為整型和字符型

D、任何類型

【答案】D

6、若有以下說明語句:

structstudent

(

intnum;

charnamet];

floatscore;

}stu;

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

A、struct是結構為類型的關鍵字

B、structstudent是用戶定義的結構體類型

C、num,score都是結構體成員名

D、stu是用戶定義的結構體類型名

【答案】D

7、以下敘述中正確的是o

A、使用typedef定義新類型名后,新類型名與原類型名實際上是等價的

B、結構體類型中的各個成分均不能是數(shù)組或指針

C、結構體類型的變量,不能在聲明結構體類型組成時一起定義

D、元素為結構體類型的數(shù)組,只能在聲明過結構體類型之后,單獨進行定義

【答案】A

【解析】本題考查typedef的使用方法,typedef對已存在的類型使用一個新

的名字,結構體類型中的成分可以是數(shù)組和指針,所以B選項錯誤,結構體類型

的變量可以在聲明結構體的時候一起定義,C選項錯誤,D選項中可以一起定

義。

8、以下scanf函數(shù)調用語句中不正確的是

structpupi1

(

charname[20];

intage;

intsex;

)

pup[5],*p=pup;

A、scanf,pup[0].name);

B、scanf&pup[0].age);

C、scanf(M%d,r,p->age);

D、scanf(M%d,r,&(p->sex));

【答案】C

9、定義共用體的關鍵字是——

A、union

B、enum

C、struct

D、typedef

【答案】A

10、有以下結構體說明、變量定義和賦值語句

structstd

(

charname[10];

intage;

charsex;

)

s[5],*ps;

ps=&s[0];

則以下scanf函數(shù)調民語句中錯誤引用結構體變量成員的是

A、scanf("%SM,S[0].name);

B、scanf(n%dn,&s[0].age);

C、scanf("%C",&(ps->sex));

D、scanf("%dr,,ps->agc);

【答案】D

【解析】在scanf函數(shù)中,第二個參數(shù)應該表示為地址變量,而選項D)只是一個

具體的值,而并不是一個地址值。

九、程序題(每小題1分,共10分)

1、以下程序的輸出結果是。

#defineA3

#defineB(A)((A+1)*A)

main()

(

intx;

x=3*(A+B(7));

printf(Mx=%4d\n",x);

)

A、93

B、135

C、54

D、251

【答案】A

2、下述程序的輸出結果是o

main()

(

intb[]={2,4,6,8,10,12};

int*p=b,**q=&p;

printf("%d,”,*(p++));

printf("%d,",**q);

)

A、4,4

B、2,2

C、4,5

D、2,4

【答案】D

3、以下程序運行后的瑜出結果是.

#include<stdio.h>

voidmain()

(

inti=10,j=0;

do

(

j=j+l;

i一;

)

while(i>2);

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

)

A、50

B、52

C、51

D、8

【答案】D

4、以下程序的運行結果是o

main()

(

inti=l,sum=0;

whilc(i<10)sun=sum+l;

i++;

printf("i=%d,sun=%d,i,sum);

)

A、i=10,sum=9

B、i=9,sum=9

C、i=2,sum=l

D、運行出現(xiàn)錯誤

【答案】D

5、有以下程序

main()

(

intx[8]={8,7,6,5,0,0},*s;

s=x+3;

printf("%d\n",s[2]);

)

執(zhí)行后輸出結果是________。

A、隨機值

B、0

C、5

D、6

【答案】B

6、有以下程序:

^include<stdio.h>

main()

{

chara,b,c,d;

scanf(,,%c%cn,&a,&b);

c=getchar();

d=getchar();

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

)

當執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第1列開始,Vcr>代表回車,注意:回車

也是一個字符)12<cr>34<cr>則輸出結果是______。

A、12

34

B、12

C、1234

D、12

3

【答案】D

【解析】按照從鍵盤輸入的數(shù)據(jù)可以判斷字符1洽了變量a,字符2給了變量

b,字符VCR>即回車洽了變量c,字符3給了變量d。所以打印輸出的結果為

D選項。

7、以下程序輸出的結果是.

^include<stdio.h>

voidmain()

(

charstr[]=r,la2b3c";

inti;

for(i=0;str[i]!='\0';i++)if(str[i]>='0'&&str[i]<=,9')

printf("%cv,str[i]);

printf("\nv);

)

A、123456789

B、la2b3c

C、abc

D、123

【答案】D

8、下面程序的輸出結果是o

main()

(

externintm;

m+=2;

f();

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

)

intm=7;

f()

{

printf;

m+=m;

}

A、8118

B、81&81

C、18&18

D、81&18

【答案】D

9、有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

(

while(*t!=0)t+-;

while((*t++=*s+-)!=0);

)

min()

(

charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);

printf("%s,%s\n'r,ss,aa);

)

程序的運行結果是o

A、accxyy,bbxxyy

B、axx,bbxxyy

C、accxxyy,bbxxyy

D、accbbxxyy,bbxxyy

【答案】D

10、下列程序的輸出結果是

#include<stdio.h>

intmyfuntion(intn);

intmain()

(

intentry=12345;

printf("%5dn,myfuntion(entry));

return0;

)

intmyfuntion(intpar)

{

intresult;

result=0;

do

(

result=result*10+par%10;

par/=10;

)

while(par);

returnresult;

)

A、12345

B、543

C、5432

D、54321

【答案】D

歷年計算機C語言選擇題(二)

(總分100分,考試時長90分鐘)

一、理論基礎(每小題1分,共10分)

1、以下敘述中正確的是一

A、C程序中的注釋只能出現(xiàn)在程序的開始位谿和語句的后面

B、C程序書寫格式嚴格,要求一行內只能寫一個語句

C、C程序書寫格式自由,一個語句可以寫在多行上

D、用C語言編寫的程序只能放在一個程序文件中

【答案】C

2、在位運算中,操作數(shù)每右移一位,其結果相當于()

A、操作數(shù)乘以2

B、操作數(shù)除以2

C、操作數(shù)除以16

D、操作數(shù)乘以16

【答案】B

【解析】本題考查的知識點是:右移運算。根據(jù)右移運算的原理,右移一位相

當于操作數(shù)縮小為原來的二分之一,故本題選B)。

3、以下選項中不正確的整型常量是。

A、12L

B、-10

C、12

D、2,900

【答案】D

4、以下數(shù)值中,不正確的八進制數(shù)或十六進制數(shù)是o

A、0x16

B、016

C、-16

D、Oxaaaa

【答案】C

5、計算機之所以能按人們的意圖自動進行工作,最直接的原因是因為采用了

A、二進制

B、高速電子元件

C、程序設計語言

D、存儲程序控制

【答案】D

【解析】電子計算機能夠快速、自動、準確地按照人們地意圖工作的基本思想

最主要是存儲程序和程序控制,這個思想是由馮?諾依曼在1946年提出的。

6、在微機漢字系統(tǒng)中,一個漢字的機內碼占的字節(jié)數(shù)是________o

A、1

B、2

C、4

D、8

【答案】B

7、指針變量p進行自加運算(即執(zhí)行p++;)后,地址偏移值為4,則其數(shù)據(jù)類型

為。

A、int

B、float

C、double

D、char

【答案】A

8、doublex;scanf(*%lf'\&x);不可以賦值給x變量的常量是?

A、123

B、100000

C、A'

D、"abc"

【答案】D

9、若有說明:int*pl,*p2,m=5,n;

以下均是正確賦值語句的選項是O

A、pl=&m;

B、p1=&m;p2=&n;*p1=*p2;

C、pl=&m;p2=pl;

D、pl=&m;*p2=*pl;

【答案】C

10、關于字符型變量的定義,下列選項正確的是O

A、charch=a;

B、charch='a1;

C、charch="a";

D、charch=\a;

【答案】B

【解析】字符型變量的值要用一對英文半角格式的單引號('')把字符括是

來。

11、設c語言中,一個int型數(shù)據(jù)在內存中占2個字節(jié),則unsignedint型數(shù)

據(jù)的取值范圍為_______O

A、0-255

B、0-32767

C、0-65535

D、0-2147483647

【答案】C

12、在下列字符序列中,合法的標識符是________o

A、P12&.a

B、stud_100

C、$water.12

D、88sum

【答案】B

13、下列哪個賦值語句是不正確的

A、floatf=ll.1;

B、doubled=5.3E12;

C、floatd=3.14f;

D、doublef=ll.lElOf;

【答案】A

【解析】浮點型數(shù)的賦值,帶有小數(shù)點的數(shù)字缺省是double型的,如果在浮點

數(shù)后面加f或者F則是float,后面加d或者D則是double,科學計數(shù)法形式

的浮點數(shù)也是double型的,而double的精度比float高,將一個高精度的

double賦值給一個低精度的float時需要進行強制類型轉換,反之則不需要。

14、下列選項中,不正確的賦值語句是

A、++

溫馨提示

  • 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

提交評論