南京財經(jīng)大學(xué)C語言期末(共六卷)含答案解析_第1頁
南京財經(jīng)大學(xué)C語言期末(共六卷)含答案解析_第2頁
南京財經(jīng)大學(xué)C語言期末(共六卷)含答案解析_第3頁
南京財經(jīng)大學(xué)C語言期末(共六卷)含答案解析_第4頁
南京財經(jīng)大學(xué)C語言期末(共六卷)含答案解析_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

南京財經(jīng)大學(xué)C語言期末(一)

考試方式:【閉卷】考試時間:【60分鐘】總分:【100分】

一、單項選擇題(共50題,每小題2分,共100分)

1、以下不正確的說法是—

A、在不同的函數(shù)n可以使用相同名字的變量

B、形式參數(shù)是局部變量

C、在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D、在函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效

【答案】D

2、把十六進(jìn)制數(shù)baf轉(zhuǎn)換成二進(jìn)制數(shù)________o

A、101110101111

B、110110101111

C、101110111111

D、111011011111

【答案】A

【解析】(BAF)16=(101110101111)2

3、能正確表示或aWO的關(guān)系表達(dá)式是。

A、a>=10ora<=0

B、a>=10||a<=0

C、a>=10|a<=0

D、a>=10&&a<=0

【答案】B

4、假定等級和分?jǐn)?shù)有以下對應(yīng)關(guān)系:等級:a分?jǐn)?shù):85?100等級:b分

數(shù):60?84等級:c分?jǐn)?shù):60以下對于等級grade輸出相應(yīng)的分?jǐn)?shù)區(qū)

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

A、switch(grade)

(

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

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

caserC':printf(H60以下\nw);

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

)

B、switch(grade)

(

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

case'B':printf("60-84\n");

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

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

C、switch(grade)

(

caserA':printf("85—100\n");break;

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

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

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

)

D、switch(grade)

(

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

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

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

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

【答案】D

5、假定int類型變量占用4個字節(jié),若有定義:intx[10]={0,2,4}則數(shù)組x在

內(nèi)存中所占字節(jié)數(shù)是O

A、4

B、12

C、20

D、40

【答案】D

6、若變量a,b,t已正確定義,要將a和b中的數(shù)進(jìn)行交換,以下選項中不正確

的語句是o

A、a=a+b;b=a-b;a=a-b;

B、t=a;a=b;b=t;

C、a=t;t=b;b=a;

D、t=b;b=a;a=t;

【答案】C

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

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);

)

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

A、22

B、10

C、34

D、30

【答案】A

8、c語言的程序一行寫不下時,可以。

A、用逗號換行

B、用分號換行

C、在任意一空格處換行

D、用回車符換行

【答案】C

9、下列字符串中,正確的c標(biāo)識符是o

A、foo-1

B、2b

C、new

D、256

【答案】D

【解析】此題考查的是C語言中標(biāo)識符的定義。標(biāo)識符由字母、數(shù)字或下劃線

構(gòu)成,但第一個字符必須是字母或下劃線:標(biāo)識符中大小寫字母是不同的;用

戶定義標(biāo)識符時,不允許采用系統(tǒng)的關(guān)鍵字。

10、charal□='abcw,a2[80]=M1234o;將al串連接到a2串后面的語句是

A、strcat(a2,al);

B、strcpy(a2,al);

C、strcat(al,a2);

D、strcpy(al,a2);

【答案】A

IkC語言函數(shù)內(nèi)定義的局部變量的隱含存儲類則是

A、static

B、auto

C、register

D、extern

【答案】B

12、下面程序段的功能是

^include<stdio.h>

main()

charsi;

sl=putc(getc(stdin),stdout);

}

D、在調(diào)用函數(shù)中必須說明數(shù)組的大小,但在被調(diào)函數(shù)中可以使用不定尺寸數(shù)

【答案】C

18、若有以下定義和語句,則輸出結(jié)果是o

int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);

A、10,20

B、10,10

C、20,10

D、20,20

【答案】D

19、設(shè)有如下定義:charaa[2][20]={HabcdM,wabcdH);則以下說法中錯

誤的是.

A、aa是個二維數(shù)組,可以存放2個19個字符以下的字符串

B、aa是個二維數(shù)組,每行中分別存放了字符串"abed"和"BCD”

C、aa[0]可以看作是一維數(shù)組名

D、aa[0][0]可以看作是一維數(shù)組名

【答案】D

20、設(shè)有如下定義:

structsk

(

inta;

floatb;

)

data,*p;

若有p二&dala;

則對data中成員a的引用正確的是_______。

A、(*p).data,a

B、(*p).a

C、p->data.a

D、p.data,a

【答案】B

【解析】p是指向結(jié)構(gòu)體的指針,用指針引用結(jié)構(gòu)體成員有兩種格式:p->成

員、(*p).成員

21、c語言中運(yùn)算對象必須是整型的運(yùn)算符是o

A、%=

B、/

C、=

D、〈二

【答案】A

22、在c語言程序中可用做用戶標(biāo)識符的是。

A、void

123

BBN

B、aa

_abc

cas

C、as+b3

-123

If

D、6f

Do

SIG

【答案】B

23、設(shè)int*p[4];則標(biāo)識符p是。

A、整型數(shù)組名

B、指針數(shù)組名

C、指針函數(shù)名

D、指向整型變量的指針

【答案】B

【解析】指針數(shù)組的定義格式為:數(shù)據(jù)類型*指針數(shù)組名[長度],…其中,指針

數(shù)組名是標(biāo)識符,前面必須有號,故本題選B。

24、若有以下程序段,w和k都是整型變量;

w=k;

LB:if(w=0)

gotoLE;

w一;

printf(n*")gotoLB;

LE;

則不能與上面程序段等價的循環(huán)語句是O

A、for(w=k;w!-0;w-)printf(n*”);

B、for(w=k;W;—w)printf(M*”);

C、w=k;

while(w-!=0)printfC*");

D、w=k:

W++;do

(

w―;printf(0?;)while(w!=0);

【答案】C

25、若變量已正確定義為int型,要通過語句scanf("%d,%d,%d",&a,&b,&c);

給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯誤的是o(U代

表一個空格符)

A、HLUU,2,3V回車》

B、1U2113V回車》

C、1,口口口2,UUU3V回車》

D、1,2,3V回車〉

【答案】B

【解析】scanf()函數(shù)的一般格式:scanf(格式控制,地址列表)。在輸入多個數(shù)

值數(shù)據(jù)時,若“格式控制”字符串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔,

則可用空格、TAB或回車作間隔。C編譯在碰到空格,TAB,回車或非法數(shù)據(jù)(如

對“外d”輸入“12A”時,A即為非法數(shù)據(jù))時即認(rèn)為該數(shù)據(jù)結(jié)束。如果在“格

式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時應(yīng)輸入與

這些字符相同的字符。本題由于格式控制符中用了逗號,所以在輸入數(shù)據(jù)時,

必須在輸入的各數(shù)據(jù)間用逗號分隔,故選項B不正確。

26、以下程序段中與語句k=a>b?(b>c?l:O):O;功能等價的是o

A、if((a>b)&&(b>c))k=l;

elsek=0;

B、if((a>b)I|(b>c))k=l;

elsek=0;

C、if(a<=b)k=0;

elseif(b<=c)k=l;

D、if(a>b)k=l;

elseif(b>c)k=l;

elsek=0;

【答案】A

27、設(shè)charstr[100];inti=5;則引用數(shù)組元素的錯誤形式的是。

A、strElilO]

B、*(srr+

C、(str+T-1)

D、*(&(str++)+

【答案】D

28、下列選項中不是字符常量的是o

A、7

B、'\x2a'

C、H

D、"\0"

【答案】D

【解析】C語言規(guī)定,一個字符常量代表ASCII碼字符集里的一個字符,在程

序中用單引號括起來,以便區(qū)分?!癨v”'表示的是豎向跳格;"'\x2a'”表

示的是兩位+六進(jìn)制數(shù);“‘a(chǎn)'”表示的是字符a對應(yīng)的ASCII碼值。

29、下面正確的字符串常量是o

A、E

B、'376'

C、"\n"

D、376

【答案】C

30、標(biāo)準(zhǔn)庫函數(shù)fgets(str,n,fp)的功能是________。

A、從fp所指的文件中讀取長度不超過n-1字符串存入指針str所指的

內(nèi)存

B、從fp所指的文件中讀取長度為n的字符串存入指針str所指的內(nèi)存

C、從fp所指的文件中讀取n個字符串存入指針str所指的內(nèi)存

D、從fp所指的文件中讀取長度為n-1的字符串存入指針str所指的內(nèi)

【答案】A

【解析】fgets函數(shù)的功能是從fp所指文件中讀入nl個字符放入以str為

起始地址的空間內(nèi),讀取長度不超過nT,讀入結(jié)束后,自動在最后添加0,選項

A正確,本題答案Ao

31、已定義以下函數(shù)fun(char*p2,char*pl)

(

while((*p2=*pl)!='\0r)

(

pl++;

p2++;

}

}

函數(shù)的功能是。

A、將pl所指字符串復(fù)制到p2所指內(nèi)存空間

B、將pl所指字符串的地址賦給指針p2

C、對pl和p2兩人指針?biāo)缸址M(jìn)行比較

D、檢查pl和p2兩個指針?biāo)缸址惺欠裼小?0'

【答案】A

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

A、2

B、4

C、1

D、8

【答案】D

【解析】在16位編譯器環(huán)境下,double類型占8個字節(jié)。

33、以下敘述中錯誤的是________。

A、對于double類型數(shù)星,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出

B、數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變

C、當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出

“下標(biāo)越界”的出錯信息

D、可以通過賦初值的方式確定數(shù)組元素的個數(shù)

【答案】C

34、有以下定義和語句:

structstudents{

intnum;

charname[20];

charc;

struct(

intgrade1;

intgrade2;

}s;

);

structstudentsw,*pw;

*pw=w;

下列賦值語句不正確的是0

A、num=1002;

B、w.grade1=85;

C、pw->num=1002;

D、w.s.grade2=85;

【答案】B

【解析】本題主要考查的是結(jié)構(gòu)體變量的嵌套定義,也就是說一個結(jié)構(gòu)體變量

也可以是一個結(jié)構(gòu)體。在本題中student這個結(jié)構(gòu)體中包含了結(jié)構(gòu)體s。所以

對結(jié)構(gòu)體變量w中g(shù)rade1成員的引用是w.s.grade1或w->s->grade1u

35、若有定義和語句:int**pp,*p,a=20,b=10;

pp=8p;

p=&a;

p=&b;

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

則輸出結(jié)果是。

A、20,10

B、20,20

C、10,20

D、10,10

【答案】D

36、執(zhí)行下面程序片段的結(jié)果是。intx=23;

printf("%2dn,x-);

)

while(!x);

A、打印出321

B、打印出23

C、不打印任何內(nèi)容

D、陷入死循環(huán)

【答案】B

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

A、構(gòu)成C程序的基本單位是函數(shù)

B、可以在一個函數(shù)中定義另一個函數(shù)

C、main。函數(shù)必須放在其他函數(shù)之前

D、所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義

【答案】A

38、有以下程序

mainO

{

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

s=x+3;

printf(w%d\nH,s[2]);

}

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

A、隨機(jī)值

B、0

C、5

D、6

【答案】B

39、若有定義:intc[4][5],(*cp)[5];和語句cp二c;,則能正確引用c數(shù)組元

素的是.

A、cp+1

B、*(cp+3)

C、*(cp+1)+3

D、*(*cp+2)

【答案】D

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

structpupil

{

charname[20];

intage;

intsex;

)

pup[5],*p=pup;

A、scanf(n%s'r,pup[0].name);

B、scanf("%d,r,&pup[0].age);

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

D、scanf("%d&(p->sex));

【答案】C

41、c語言中的標(biāo)識符第一個字符。

A、必須為字母

B、必須為下劃線

C、必須為字母或r劃線

D、可以是字母,數(shù)字和下劃線中任一種字符

【答案】C

42、已知year為整型變量,不能使表達(dá)式

(year%4==0&&year%100!=o)Iyear%400==0的值為"真"的數(shù)據(jù)是一

A、1990

B、1992

C、1996

D、2000

【答案】A

43、設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句:if(a<

b)if(c==d)y=0;elsey=l;該語句所表示的含義是。

A、y=0,a

y=l,a2b

B、y=0,a

y=l,a2b且c#d

C、y=0,a

y=l,aVB且CWD

D、y=0,a

y=l,cWd

【答案】C

44、有以下程序段:

intx=3;

do

(

printf(“%3d",x-=2);

}

while(!(—x));

程序段的輸出結(jié)果是o

A、1

B、30

C、12

D、死循環(huán)

【答案】C

45、設(shè)有下面的程序段:chars[]="china0;char*p=s;則下列敘述正確的

是—O

A、數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等

B、s和p完全相同

C、s數(shù)組長度和p所指向的字符串長度相等

D、*p與s[0]相等

【答案】D

46、經(jīng)過以下語句定義后,表達(dá)式z+=x>y?++x:++y的值為________。

intx=l,y=2,z=3;

A、2

B、3

C、6

D、5

【答案】C

47、以下函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù)

voidfun(int*w,intn)

(

inti;

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

{

printf,w[i]);

)

printf("\nv);

}

下列劃線處應(yīng)填入的語句是。

A、if(i/8==0)printf(a\nff);

B、if(i/8==0)continue;

C、if(i%8=0)printf(“\n”);

D、if(i%8==0)continue;

【答案】C

48、調(diào)試程序是指對程序進(jìn)行

A、編輯

B、編譯

C、查錯和排錯

D、連接

【答案】C

49、下面各語句行中,能正確進(jìn)行給字符串賦值操作的語句行是o

A、charst[4][5]={"ABCDEff);

B、chars[5]={'Af,'B1,'C*,fD',rE'};

C、char*s="ABCDE";

D、char*s;scanf("%sM,*s);

【答案】C

50、下列敘述中正確的是o

A、C語言編譯時不檢善語£

B、C語言的子程序有過程和函數(shù)兩種

C、C語言的函數(shù)可以嵌套定義

D、C語言中,根據(jù)函數(shù)能否被其它源文件調(diào)用,被區(qū)分為內(nèi)部函數(shù)和外部函數(shù)

【答案】D

南京財經(jīng)大學(xué)C語言期末(二)

考試方式:【閉卷】考試時間:【60分鐘】總分:【100分】

一、單項選擇題(共50題,每小題2分,共100分)

1、在標(biāo)準(zhǔn)ascii碼表中,已知英文字母a的十進(jìn)制碼值是65,英文字母a的十進(jìn)

制碼值是°

A、95

B、96

C、97

D、91

[答案]C

【解析】a的十進(jìn)制碼值比A大32。

2、若需要利用形參直接訪問實參,則應(yīng)把形參變量說明為()參數(shù)。

A、指針

B、引用

C、傳值

D、常值

【答案】B

【解析】在進(jìn)行參數(shù)傳遞時,引用參數(shù)是利用形參直接訪問實參,形參的變化

直接影響實參的變化,而傳值參數(shù)不會影響實參變量。

3、若a是數(shù)值類型,則邏輯表達(dá)式(a=l)||(a!=D的值是。

A、1

B、0

C、2

D、不知道a的值,不能確定

【答案】A

4、以下程序段.x=-l;

do

(

x=x*x;

}

while(!x);

A、是死循環(huán)

B、循環(huán)執(zhí)行二次

C、循環(huán)執(zhí)行一次

D、有語法錯誤

【答案】C

5、下列字符串中,不可以用作c標(biāo)識符的是o

A、y_2006

B、_FESTJI

C、Return

D、switch

【答案】D

【解析】在C中,變量標(biāo)識符必須是以大小寫字母、下畫線開始,由數(shù)字或者

字母下畫線等組成的一個字符串,其中C++關(guān)鍵字不能作為標(biāo)識符,不能包含

-、+、*、/等運(yùn)算符號。C++變量區(qū)分大小寫,麻以Retrun不是關(guān)鍵字,而是

一個合法變量;swith為關(guān)鍵字,所以不能定義為標(biāo)示符。

6、大寫字母b的ascii碼值是。

A、65

B、66

C、41H

D、97

【答案】B

【解析】字母A對應(yīng)的ASCII碼值是1000001,即65,因此字母B對應(yīng)的ASCII

碼值是66o

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

為:()

A、2

B、3

C、4

D、無確定值

【答案】B

8、為了要計算s=10!(10的階乘),則以下對s的定義正確的是o標(biāo)

識符由字母,數(shù)字和下劃線組成且第一個字符必須為字母或下劃線auto自動變

量register寄存器變量extern外部變量static靜態(tài)變量

A、ints

B、unsigneds

C、shorts

D、longs

【答案】D

9、下列哪個是c語言的有效標(biāo)識符

A、_Nol

B、No.1

C、12345

D、int

【答案】A

【解析】標(biāo)識符是一個以字母或下劃線開始的,由字母、下劃線和數(shù)字組成的

字符串,標(biāo)識符不能與任意關(guān)鍵字同名。

10、若有運(yùn)算符:〉、一、〈V、%、sizcof,則它們按優(yōu)先級(由高至低)的正

確排列順序為_______O

A、%、sizeofx>、VV、=

B、sizeofx%、>、=、<<

C、sizeofx<<x>、%、=

D、sizeofx%、VV、>、=

【答案】D

11>合法的main。函數(shù)命令參數(shù)形式是________。

A、main(inta,char*c[])

B、main(intarc,char**arv)

C、main(intargc,char*argv)

D、main(intargv,char*argc[])

【答案】C

12、c語言的編譯系統(tǒng)對宏定義的處理是o

A、在程序連接時進(jìn)行的

B、在程序運(yùn)行時進(jìn)行的

C、在對源程序中的箕它語句進(jìn)行編譯前進(jìn)行的

D、和C程序中的其它語句同時進(jìn)行編譯的

[答案]C

【解析】所謂“編譯預(yù)處理”就是在C編譯程序?qū)源程序進(jìn)行編譯前,由編

譯預(yù)處理程序?qū)@些編譯預(yù)處理命令進(jìn)行處理的過程。宏定義屬于預(yù)處理命令,

在對源程序中的其它語句進(jìn)行編譯前進(jìn)行的。本題答案為C選項。

13、已知三個字符為a、z和8,按它們的ascii碼值升序排序,結(jié)果是

A、8,a,Z

B、a,8,Z

C、a,Z,8

D、8,Z,a

【答案】D

14、有如下函數(shù)調(diào)用語句func(rec1,rec2+rec3,rec4,rec5);該函數(shù)調(diào)用語

句中,含有的實參個數(shù)是.

A、3

B、4

C、5

D、有語法錯誤

【答案】B

15、有以下程序

main()

{

intm=0256,n=256;

printf(r%o%o\n",m,n);

}

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

A、02560400

B、0256256

C、256400

D、400400

[答案]c

【解析】以0為開頭的整數(shù)表示八進(jìn)制整數(shù),所乂按八進(jìn)制輸出時,m的結(jié)果

為256,而根據(jù)十進(jìn)制數(shù)和八進(jìn)制數(shù)之間的轉(zhuǎn)化,十進(jìn)制數(shù)256轉(zhuǎn)化為八進(jìn)制

數(shù)時,應(yīng)該是400。

16、以下for語句中不是死循環(huán)的是o

A^for(inti=0;i<l;i++);

B、for(inti=0;i++);

C、for(inti=l;i>0;++i);

D、for(;;);

【答案】A

【解析】考查循環(huán)語句for的使用。

[解題要點(diǎn)]for循環(huán)的一般格式為for(初始化部分;終止條件判斷部分;迭代

部分){循環(huán)體;}說明如下:for循環(huán)開始時,首先執(zhí)行初始化操作,然后判斷

終止條件是否滿足,如果滿足,則執(zhí)行循環(huán)體中的語句,最后執(zhí)行迭代部分。

完成一次循環(huán)后,重新判斷終止條件。

[錯解分析]在for語句中,如果省略了終止條件判斷部分,開且在語句中沒有

break,或者是終止條件判斷部分始終沒有終止,都將出現(xiàn)死循環(huán)。

[考點(diǎn)鏈接]for循環(huán)語句可由while循環(huán)語句來代替。

17、若有下列定義,則對a數(shù)組元素的正確引用是ointa[5],*p=a;

A、*(p+5)

B、*p+2

C、*(ai2)

D、*&a[5]

【答案】C

18、以下程序運(yùn)行后的輸出結(jié)果是

main(){

charc;

intn=100;

floatf=10;

doublex;

x=f*二n/=(c=50);

printf(n%dn,x);

}

A、220.000000

B、100,20.000000

C、240.000000

D、10040.000000

【答案】A

【解析】對于c語言中的賦值運(yùn)算符,必須遵循乂下規(guī)則:賦值運(yùn)算符的優(yōu)先

級別只高于逗號運(yùn)算符,比其他任何運(yùn)算符的優(yōu)先級都低,并且具有自右向左

的結(jié)合性。因此先得到變量C的值為50,變量n經(jīng)過計算結(jié)果為2,最后通過

變量f的值10和n的值2相乘得到變量x的值,為20.000000。因此選項A)正

確。

19、若使用一位數(shù)組名作為函數(shù)實參,則以下正確的說法是。

A、必須在主調(diào)函數(shù)中說明此數(shù)組的大小

B、實參數(shù)組類型與形參數(shù)組類型可以不匹配

C、在被調(diào)函數(shù)中,不需要考慮形參數(shù)組的大小

D、實參數(shù)組名與形參數(shù)組名必須一致

【答案】C

20、若有以下語句:

typedefstructs

(

intg;

charh;

}t;

以下敘述中正確的是o

A、可用S定義結(jié)構(gòu)體變量

B、可用T定義結(jié)構(gòu)體變量

C、S是struct類型的變量

D、T是structS類型的變量

【答案】B

21、設(shè)x,y,z,s均為int型變量,且初值均為1,則執(zhí)行語句s=++xI++y&&+-z

后,則s的值為:

A、不定值

B、2

C、1

D、0

【答案】C

22、有定義:"inta=2,b=3,c=4;",則下列選項中值為0的表達(dá)式是_______0

A、(!a==l)&&(!b-0)

B、(a<B)&&!C||1

C、a&&b

D、a||(b+b)&&(c-a)

【答案】A

23、通常適用于從被調(diào)用函數(shù)中將一個值傳回主一周函數(shù)的參數(shù)傳遞方式是

A、利用返回值數(shù)據(jù)傳遞方式

B、利用形參與實參傳遞數(shù)據(jù)的方式

C、利用全局變量傳遞數(shù)據(jù)的方式

D、以上都不對

【答案】A

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

doprintf("%d,",i);

while(i++);

printf("%d",i)其輸出結(jié)果是________。

A、0,0

B、0,1

C、1,1

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

【答案】B

25、在函數(shù)聲明中,下面哪項是不必要的—

A、函數(shù)參數(shù)的類型和參數(shù)名

B、函數(shù)名

C、函數(shù)的類型

D、函數(shù)體

【答案】D

【解析】本題考核函教的原型聲明格式。解析此題時,要注意函數(shù)定義和函數(shù)

聲明的區(qū)別。

①C中每一個函數(shù)的定義都是由4個部分組成的,即函數(shù)類型、函數(shù)名、函

數(shù)參數(shù)表和函數(shù)體。

②函數(shù)的聲明是為了消除函數(shù)定義的位置影響。不管函數(shù)是在何處定義的,

只要在調(diào)用前進(jìn)行函數(shù)的聲明,就可保證函數(shù)調(diào)用的合法性。

③函數(shù)原型的說明格式為:

V類型〉〈函數(shù)名〉(V形參表》);

26、下列語句的輸出結(jié)果是()。

printf(,,%d\nM,(int):2.5+3.0)/3);

A、有語法錯誤不能通過編譯

B、2

C、1

D、0

【答案】C

27、fun函數(shù)的功能是:通過鍵盤輸入給x所指的整型數(shù)組所有元素賦值。在下

劃線處應(yīng)填寫的是_______O

^defineN5

voidfun(intx[N])

{

intm;

for(m=N-t;m>=0;m-)scanf("%d二_______);

)

A、%&X[++m]

B、

C、x+(m++)

D、x+m

【答案】D

28、軟件設(shè)計中模塊劃分應(yīng)遵循的準(zhǔn)則是o

A、低內(nèi)聚低耦合

B、高內(nèi)聚低耦合

C、低內(nèi)聚高耦合

D、高內(nèi)聚高耦合

【答案】B

29、對下述程序的判斷中,正確的是o

main()

(

char*p,s[256];

p=s;

while(strcmp(s,*theend"))

printf(ninputthestring:,F);

gets(s);

while(*p)putchar(*p++);

}

A、此程序循環(huán)接收字符串并輸出,直到接收到字符串“theend”為止

B、此程序循環(huán)接收字符串,接收到字符串“theend”則輸出,否則程序終

C、此程序循環(huán)接收字符串并輸出,直到接收字符串“theend”為止,但因

為代碼有錯誤,程序不能正常工作

D、此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串“theend”

為止,輸出連接在一起的字符串

【答案】C

30、執(zhí)行以下程序后,test,txt文件的內(nèi)容是(若文件能正常打開)o

^include<stdio.h>

main()

(

file*fp;

char*sl=Mfortran*',*s2="basic”;

if((fp=fopen(r,test,txt",Hwb"))==null)

(

printf("can'topentest.txtfile\nr);

exit(1);

)

fwrite(si,7,1,fp);

/*把從地址si開始的7個字符寫到fp所指文件中*/fseek(fp,

01,seekset);

/*文件位置指針移到文件開頭*/fwrite(s2,5,l,fp);

fclose(fp);

}

A、Basican

B、BasicFortran

C、Basic

D、FortranBasic

【答案】A

31、有以下程序:

int*f(int*x,int*y){

if(*x<*y)returnx;

elsereturny;

)

main()

inta=7,b=8,*p,*q,*r;

p=&a;

q=&b;

r=f(p,q);

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

}

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

A、7,8,8

B、7,8,7

C、8,7,7

D、8,7,8

【答案】B

【解析】本題定義了一個返回值為指針的函數(shù)f(),此函數(shù)有兩個指針型的形

參x和y,該函數(shù)的功能,是返回x和y指向的變量中值較小的那個指針變

量。主函數(shù)中定義了兩個指針變量p和q,并讓它們指向變量a和b,調(diào)用函數(shù)

f(),返回指向的變量喧較小的指針變量,r的值為指針變量p的值(變量a的

地址),因此最后輸出的*p、*q和*r的值是7,8和7。所以,B選項為所選。

32、設(shè)c語言中,int類型數(shù)據(jù)占2個字節(jié),則long類型數(shù)據(jù)占

A、1個字節(jié)

B、2個字節(jié)

C、4個字節(jié)

D、8個字節(jié)

【答案】C

33、若有說明:long*p,a;則不能通過scanf語句正確給輸入項讀入數(shù)據(jù)

的程序段是______O

A、*p=&a;scanf(M%ld,r,p);

B、p=(long*)malloc(8);scanf(M%ld",p);

C、scanf("機(jī)d”,p=&a);

D、scanf("機(jī)d",&a);

【答案】A

34、有如下定義

structperson

(

charname[9];

intage;

}

structpersonclass[10]={"john\17,,fpaul",19,"mary",18,

"adam",16);

根據(jù)上述定義,能輸出字母a的語句是o

A、printfC^cXn'1,class[3].name);

B、printf(w%c\nH,class[3].name[0]);

C、printf(w%c\nH,class[4].name[l]);

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

【答案】B

35、以下語句段執(zhí)行后的輸出結(jié)果是o

#include<stdio.h>

main()

(

intk=3;

if(k)printfelseprintf("&&&&");

)

A、###

B、&&&&

C、###&&&&

D、有語法錯誤,不能執(zhí)行

【答案】D

【解析】在C語言中語句結(jié)束時應(yīng)該以分號結(jié)尾,程序中的第1個

printf("###")輸出語句后面少了一個分號(;),因此執(zhí)行程序時會出錯。

36、以下程序的輸出結(jié)果是。

main()

(

intx=l,y=O,a=O,b=O;

switch(x)

(

case1:switch(y)

(

case0:a++;

break;

casel:b++;

break;

}

case2:a++;

b++;

break;

)

printf(,'%d,%d\n'r,a,b);

)

A、2,1

B、2,2

C、1,1

D、21

【答案】A

37、有以下程序

main()

inta[3][2]={0},(*ptr)[2],i,j;

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

{

ptr=a+i;

scanf(H%d",ptr);

ptr++;

}

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

(

for(j=0;j<2;j++)printf(w%2dw,a[i][j]);

printf(',\n'3;

若運(yùn)行時輸入:123V回車,,則輸出結(jié)果是_____

A、產(chǎn)生錯誤信息

B、10

C、12

D、10203020000030

【答案】B

【解析】本題定義了一個二維數(shù)組a,又定義了一個指針變量ptr,它用于指向

包含2個元素的一維數(shù)組,在第一個for循環(huán)中,語句"ptr=a+i;"用于將指針

變量ptr指向第i行的數(shù)組元素,通過兩次循環(huán),分別給二維數(shù)組a的第0行

的第1個元素和第1行的第1個元素賦了值1和2。

38、有以下程序

voidf(int*q)

(

inti=0;

for(;i<5;i++)(*q)++;

}

main()

{

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

f(a);

for(i=0;i<5;i+-)printf("%d,\a[i]);

}

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

A、2,2,3,4,5,

B、6,2,3,4,5,

C、1,2,3,4,5,

D、2,3,4,5,6,

【答案】B

39、已有以下數(shù)組定義和f函數(shù)調(diào)用語句,則在f函數(shù)的說明中,對形參數(shù)組

array的錯誤定義方式為。inta[3][4];

f(a);

A、f(intarray[][6])

B、f(intarray[3][])

C、f(intarray[][4])

D、f(intarray[2][5])

【答案】B

40、有以下程序:

structstu

(

charnum[10];

floatscore[3];

};

main()

(

structstus[3]={{"2002r\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é)果是o

A、260

B、270

C、280

D、285

【答案】B

【解析】給結(jié)構(gòu)體數(shù)組賦韌值時,由于數(shù)組中的每個元素都是一個結(jié)構(gòu)體,因

此要將其成員的值依次放在一對花括號中,以便區(qū)分各元素。

s[0]二{"20021〃,90,95,85},s[l]={”20022',95,80,75},s[2]:

{"20023”,100,95,90}。

41、c風(fēng)格的注釋*c風(fēng)格的注釋,也稱塊注釋或多行注釋,以開始,以

______結(jié)束。

A、/*和*/

B、{和}

C、[和]

D、(和)

【答案】A

42、若已定義x和y為double類型,則表達(dá)式x=l,y=x+3/2的值是。

A、1

B、2

C、2.0

D、2.5

【答案】C

43、c語言中邏輯表達(dá)式的值為o

A、0或1

B、非零值或零值

C、true或false

D、'true'或'false'

【答案】A

44、下列選項中均屬于c語言合法的標(biāo)識符是3

A、Int

#sub

break

B、_3ab

FOR

Long

C、3a

printf

a_b

D、WORD

auto

include

【答案】B

【解析】選項A含有非法字符'#'、break屬于C語言關(guān)鍵字都不是合

法標(biāo)識符;選項C中力以數(shù)字開頭不是合法標(biāo)識符;選項D中的auto是C語

言關(guān)鍵字不屬于合法標(biāo)識符;故應(yīng)該選擇B。

45、若定義的函數(shù)為float*fun()……,則函數(shù)的返回值是。

A、float型數(shù)據(jù)

B、void型數(shù)據(jù)

C、float型指針

D、void型指針

【答案】C

46、執(zhí)行以下語句后a的值為o

inta,b,c;

a=b=c=l;

++a||++b&&++c;

A、錯誤

B、0

C、2

D、1

【答案】C

47、下列哪個數(shù)組定義是正確的o

A、inta[5)5];

B、INTa[10];

C、inta[n];

D、inta[3+2];

【答案】D

48、關(guān)于標(biāo)識符,下列選項中描述錯誤的是o

A、標(biāo)識符只能由字母、數(shù)字和下劃線組成

B、標(biāo)識符不能以二劃線作為第一個字符

C、標(biāo)識符不能以數(shù)字作為第一個字符

D、標(biāo)識符不區(qū)分入小寫字母

【答案】D

【解析】標(biāo)識符區(qū)分大小寫字母.

49、判斷兩個字符串是否相等,正確的表達(dá)方式是o

A、while(si==s2)

B、while(sl=s2)

C、while(strcmp(si,s2)==0)

D、while(strcmp(si,s2)=0)

【答案】C

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

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

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

覆蓋

C、在一個程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,

才能讀到第1個數(shù)據(jù)

D、當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)會失

【答案】D

【解析】如果以寫方式打開一個已經(jīng)存在的文件,則在打開時將該文件刪除,然

后重新建立一個同名的新文件。

南京財經(jīng)大學(xué)C語言期末(三)

考試方式:【閉卷】考試時間:【60分鐘】總分:【100分】

一、單項選擇題(共50題,每小題2分,共100分)

1、以下關(guān)于c語言標(biāo)汛符的描述中,正確的是。

A、標(biāo)識符可以由漢字組成

B、標(biāo)識符只能以字母開頭

C、關(guān)鍵字可以作為用戶標(biāo)識符

D、Area與area是不同的標(biāo)識符

【答案】D

2、若變量已正確說明為floal類型,要通過語句

scanf(H%f%f給a賦予10.0,b賦予22.0,c賦予33.0,不正

確的輸入形式是O

A、102233

B、10.0,22.0,33.0

C、10.022.033.0

D、10V回車>22V回車>33V回車〉

【答案】B

【解析】用scanf()讀取從鍵盤輸入的數(shù)據(jù)時,口間不能加逗號,要用空格隔

3、有以下程序

main()

(

inti;

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

switch(i)

(

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

case2:printf(,,%dM,i);

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

)

)

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

A、011122

B、012

C、012020

D、120

【答案】A

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

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

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

4、有以下程序:

#include<stdio.h>

main()

inti=5;

do{

if(i%3==l)

if(i%5==2){

printf(H*%dH,i);

break;

)

i++;

)

while(i!=0);

printf("\n");

)

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

A、*7

B、*3*5

C、*5

D、*2*6

【答案】A

【解析】本題考查的是break語句。do…while循環(huán)是“先執(zhí)行,后判斷”,

所以無論條件如何,它都至少會執(zhí)行一遍。程序首先初始化變量i為5,然后

進(jìn)入do…while循環(huán)體,首先判斷(i%3=l),因為5%3=2,所以if條件不滿

足,跳過下面的if語句,執(zhí)行i++,i變?yōu)?。第1遍循環(huán)結(jié)束,判斷(i!R)

為真,繼續(xù)循環(huán)?,F(xiàn)在設(shè)3二6%3=0,所以if語句還是不被執(zhí)行,繼續(xù)i+十,i

變?yōu)?,仍然滿足(i!R),繼續(xù)循環(huán)。第3遍循環(huán)設(shè)3=7%3=1,滿足條件

(i%3=l),繼續(xù)判斷條件i%5=2成立,即輸出*7,然后執(zhí)行break語句跳出循

環(huán)。

5、已知:intn=10;那么下列語句中錯誤的是________o

A、int*p=newlong[n];

B、intp[n];

C、int*p=newlong(n);

D、intp[10];

【答案】B

6、執(zhí)行下列語句后變量x和y的值是________oy=10;x=y++;

A、x=10,y=10

B、x=ll,y=ll

C、x=10,y=ll

D、x=ll,y=10

【答案】C

7、若有定義:intaa[8];則以下表達(dá)式中不能代表數(shù)組元aa[l]的地址的是

A、&aa[O]+l

B、&aa[l]

C、&aa[O]++

D、aa+1

【答案】C

8、以下敘述正確的是。

A、在C程序中,每行中只能寫一條語句

B、若a是實型變量,C程序中允許賦值a=lD,因此實型變量中允許存放整

型數(shù)

C、C程序中,無論是整數(shù)還是實數(shù),都能被準(zhǔn)確無誤地表示

D、在C程序中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符

【答案】D

9、設(shè)有以下程序段:inta[5]=0,*p,*q;p=a;q二a;則下列選項中,合法的運(yùn)

算是o

A、p+q

B、p-q

C、p*q

D、p%q

【答案】B

【解析】本題考核指針的運(yùn)算。C語言中,指向同一字符串的指針之間能且只

能進(jìn)行減運(yùn)算,減運(yùn)算后返回的是一整型數(shù),表示指針之間的地址偏移量。

10、若a=l,b=2貝I]ab的值是()。

A、0

B、1

C、2

D、3

【答案】D

11>有以下函數(shù):charfun(char*p)

(

returnp;

}

該函數(shù)的返回值是O

A、無確功的值

B、形參P中存放的地址值

C、一個臨時存儲些元的地址

D、形參P自身的地址值

【答案】A

12、”對下面程序段:

ttdefineA3

ttdefineB(a)((A+l)*a)...x=3*(A+B(7));正確的判斷是。"

A、程序錯誤,不許嵌套宏定義

B、程序錯誤,宏定義不許有參數(shù)

C、x=93

D、x=21

【答案】C

13、下列程序的運(yùn)行結(jié)果是o

#include<stdio.h>

voidfun(int*s,int*p){

staticintt=3;

*p=s[t];

t一;

}

main()

{

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

intx;

for(k=0;k<4;k+-){

fun(a,&x);

printf(H%d,n,x);

}

)

A、5,4,3,2

B、2,3,4,5,

C、2,2,2,2,

D、5,5,5,5,

【答案】A

【解析】分析fun函教程序段,可知fun函數(shù)要實現(xiàn)的功能是將s中第(t+1)個

元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,

在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)

組x,最后輸出x數(shù)組。

14、#define能作簡單的替代,用宏來替代計算多項式5*X*x4-5*x+5的值的函

數(shù)f,正確的宏定義語句為()。

A、^definef(x)5*x*x+5*X+5

B、#definef5*x*x+5*x+5

C、^definef(a)(5*a”a+5*a+5)

D、#define(5*x*x+5+x+5)f(x)

【答案】C

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

main()

(

char*s="abcdc";

s+=2;

printf("%ld\nM,s);

)

A、cde

B、字符c的ASCH碼值

C、字符c的地址

D、出錯

【答案】C

16、下面程序

main()

(

inty=9;

for(;y>0;y-)

(

if(y%3=0)

(

printf('%cT,-y);

continue;

)

)

}

的輸出是O

A、741

B、852

C、963

D、875421

【答案】B

17、若調(diào)用一個函數(shù),且此函數(shù)中沒有return語句,則正確的說法是________。

A、該函數(shù)沒有返回值

B、該函數(shù)返回若二個系統(tǒng)默認(rèn)值

C、能返回一個用戶所希望的函數(shù)值

D、返回一個不確定的值

【答案】D

18、以下程序的輸出結(jié)果是.

#include<stdio.h>

voidmain()

(

inti,x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i+-)printf("%d,n,x[i][i]>;

printf("\n");

)

A、1,5,9,

B、1,4,7,

C、3,5,7,

D、3,6,9,

【答案】A

19、設(shè)有以下定義和語句:charstr[20]—"program",*p;p=str:則以下敘述

中正確的是_______o

A、*P與str[0]的值相等

B、str與P的類型完全相同

C、str數(shù)組長度和P所指向的字符串長度相等

D、數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同

【答案】A

20、若有以下說明語句:

structstudent

(

intnum;

charname[];

floatscore;

}stu;

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

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

B、structstudent是用戶定義的結(jié)構(gòu)體類型

C、num,score都是結(jié)構(gòu)體成員名

D、stu是用戶定義的結(jié)構(gòu)體類型名

【答案】D

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

A、0x16

B、016

C、-16

D、Oxaaaa

【答案】C

22、設(shè)x的值為4,則未達(dá)式y(tǒng)=(++x)+(++x)+(++x)后,y的值是。

A、12

B、18

C、16

D、21

【答案】D

23、以下敘述正確的是________。

A、C程序總是以main。作為程序執(zhí)行的起始行

B、main。函數(shù)若天帶參數(shù),其后面的一對圓括號可省略

C、函數(shù)體內(nèi)的定義語句和可執(zhí)行語句允許任意交替出現(xiàn)

D、C語言中的語句之間必須用分號作為分隔符

【答案】A

24、對于while、do…while循環(huán)結(jié)構(gòu),正確的說法是________。

A、只是表達(dá)形式不同

B、do…while結(jié)構(gòu)中的語句

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論