C語言-基本選擇題及答案_第1頁
C語言-基本選擇題及答案_第2頁
C語言-基本選擇題及答案_第3頁
C語言-基本選擇題及答案_第4頁
C語言-基本選擇題及答案_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C語言)

單項(xiàng)選擇練習(xí)題

說明:帶*號的對非信息學(xué)院的同學(xué)不作要求。

一、基本概念

1.c語言程序是由(、構(gòu)成的。

A)一些可執(zhí)行語言B)main函數(shù)C)函數(shù)D)包含文件中的第一個函數(shù)

2.(A)是構(gòu)成C語言程序的基本單位。

A、函數(shù)B、過程C、子程序D、子例程

3.C語言程序從(,起先執(zhí)行。

A)程序中第一條可執(zhí)行語句B)程序中第一個函數(shù)

0程序中的main函數(shù)D)包含文件中的第一個

函數(shù)

4.C語言程序從main:)函數(shù)起先執(zhí)行,所以這個函數(shù)要寫在——

A)程序文件的起先B)程序文件的最終

0它所調(diào)用的函數(shù)的前面D)程序文件的任何位置

5、以下說法中正確的是(C)0

A、C語言程序總是從第一個定義的函數(shù)起先執(zhí)行

B、在C語言程序中,要調(diào)用的函數(shù)必需在main()函數(shù)中定義

C、C語言程序總是從main()函數(shù)起先執(zhí)行

D、C語言程序中的niain()函數(shù)必需放在程序的起先部分

6.下列方法中錯誤的是(D)。

A.主函數(shù)可以分為兩個部分:主函數(shù)說明部分和主函數(shù)體。

B.主函數(shù)可以調(diào)用任何非主函數(shù)的其它函數(shù)。

C.任何非主函數(shù)可以調(diào)用其它任何非主函數(shù)。

D.程序可以從任何非主函數(shù)起先執(zhí)行。

7.下列說法錯誤的是:(B)

A.C程序運(yùn)行步驟是編輯、編譯、連接、執(zhí)行。

B.C語言的變量名必需用小寫,常量用大寫。

C.C語言的三種基本結(jié)構(gòu)是依次、選擇、循環(huán)。

D.C程序確定由函數(shù)構(gòu)成的。

8.下列關(guān)于C語言的說法錯誤的是(B)

A)C程序的工作過程是編輯、編譯、連接、運(yùn)行

B)C語言不區(qū)分大小寫。

0C程序的三種基本結(jié)構(gòu)是依次、選擇、循環(huán)

D)C程序從main函數(shù)起先執(zhí)行

9.系統(tǒng)默認(rèn)的C語言源程序擴(kuò)展名為.C,需經(jīng)過」之后,生成.exe文件,

才能運(yùn)行。

A)編輯、編譯B)編輯、連接C)編譯、連接D)編輯、改錯

*10.下列說法中正確的是(B)。

A.由于C源程序是高級語言程序,因此確定要在TC軟件中輸入。

B.由于C源程序是由字符流組成的,因此可以作為文本文件在任何文本編輯

的軟件中輸入。

C.由于C程序是高級語言程序,因此輸入后即可執(zhí)行。

D.由于C程序是高級語言程序,因此它是由叮囑組成的。

二、數(shù)據(jù)類型、運(yùn)算符與表達(dá)式

1.不是C語言供應(yīng)的合法關(guān)鍵字是(B)。

A.switchB.cherC.caseD.default

*2.C語言供應(yīng)的合法關(guān)鍵字是(D)。

A.nextB.stringC.docaseD.struct

*3.下列不屬于C語言中關(guān)鍵字的是

A)1ongB)printC)defaultD)typedef

4.下列正確的標(biāo)識符是(C)o

A.-alB.a[i]C.a2_iD.intt

5.下列C語言用戶標(biāo)設(shè)符中合法的是(B)o

A、*yB、sumC、intD>%5f

6.下面四個選項(xiàng)中,合法的標(biāo)識符是:(D)

A.autoB.defineC.6aD.c

7.下列C語言用戶標(biāo)設(shè)符中合法的是(B)0

A)3axB)xC)caseD)-e2E)union

8.以下選項(xiàng)中合法的用戶標(biāo)識符是」

A)longB)_2TestC)3DmaxD)A.dat

9.下列四組選項(xiàng)中,正確的C語言標(biāo)識符是(C)。

A)%xB)a+bC)al23D)123

10.請選出可用作C語言用戶標(biāo)識符的一組標(biāo)識符(B)

A)voidB)a3_b3C)ForD)2a

define123-abcDO

WORDsumCasesizeof

11、下列四組字符串中都可以用作C語言程序中的標(biāo)識符的是(A)。

A、print_3ddb8aBcB、I\amone_halfstart$it3pai

C、str_lCpppowwhileD、PxqMy->bookline#His.age

12.下列C語言標(biāo)識符中合法的變量名是」o

A)2e3B)youC)*yD)float

13.C語言中的簡潔數(shù)據(jù)類型包括(D)o

A、整型、實(shí)型、邏輯型B、整型、實(shí)型、邏輯型、字符型

C、整型、字符型、邏輯型D、整型、實(shí)型、字符型

14、下列可以正確表示字符型常量的是(A)0

A、'\t,B、"a“C、"\n”D、297

15.下列表達(dá)式中,[)是正確的C語言字符常量。

A)"x"B;e3C)"COMPUTER"D)'#'

16.在下列表達(dá)式中,屬于字符型常量的是B.

A)AB)'a'C)〃A〃D)b

17.以下選項(xiàng)中合法的字符常量是(B)

A)"B"B)''n'C)'68'D)E

18.下面字符常量表示錯誤的是(D)

A)7B”?,C”\n,D)”\rT

19.已定義c為字符型變量,則下列語句中正確的是(C)

A)c='97'B)c二〃97〃C)c='a'D)

20.已知ch是字符型變量,不正確的賦值語句是(A)

A)ch='a+b,;B)ch='\0;

C)ch=’7';D)ch=,;';

21.C語言中字符型(char)數(shù)據(jù)在內(nèi)存中的存儲的是(D)

A)原碼B)補(bǔ)碼C)反碼D)ASCH碼

22.在C語言中,字符型數(shù)據(jù)所占的內(nèi)存空間是:C)

A)2個字節(jié)B)4字節(jié)C)1字節(jié)D)由用戶自定義

*23.若int類型數(shù)據(jù)占2個字節(jié),則unsignedint類型數(shù)據(jù)的取值范圍是

(B)

A)0?255B)0-65535C)-32768?32767D)-256-255

木24.若有以下類型說明語句:chara;intb;floatu;doubled;則表達(dá)式

a*b+d-c的結(jié)果類型為(D)

A)floatB)charC)intD)double

*25.若有以下類型說明語句:charw;intx;floaty;doublez;則表達(dá)式w-x*y/z的結(jié)

果為(D)類型,表達(dá)式(int)(x+y-z*w)的結(jié)果為(C)類型。

A)floatB)charC)intD)double

26.C語言中運(yùn)算對象必需是整型的運(yùn)算符是(A)

A)%-B)/C)=D)<=

27.在C語言程序中,表達(dá)式8/5的結(jié)果是(B)

A)1.6B)103D)0

28.設(shè)x為int型變量,則執(zhí)行以下語句后,x的值為」—

x=10;x+=x;

A)10B)20C)40D)30

31.在C語言程序中,表達(dá)式5%2的結(jié)果是」。

A)2.5BJ2C)1D)3

32.假如inta=3,b=4;則條件表達(dá)式〃水b?a:b〃的值是一A0

A)3B)4C)0D)1

33.若intx=2,y=3,z=4則表達(dá)式x〈z?y:z的結(jié)果是(B).

A)4B)302D)0E)1

34.C語言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是(B)。

A)0B)0或1C)1D)T或‘F'

35.設(shè)a,b和c都是int型變量,且a=3,b=4,c=5,則下面表達(dá)式中,值為0的

表達(dá)式是(D)

A、'a'&&'b'B、a<=b

C、a||b+c&ab-cD、!((a<b)&&!c||1)

37.下面(D)表達(dá)式的值為4.

A)11/3B)11.0/3

C)(float)11/3D)(int)(11.0/3+0.5)

*39.已知intx=5,y=5,z=5;執(zhí)行語句斕二y+z;后,x的值是(C)

A.0B.1C.5D.6

40.已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語句

c2='A'+'6'」3';后,c2中的值為(B)

A)68BJDC)錯誤D)d

41.下列關(guān)于C語言的敘述錯誤的是(A)

A)大寫字母和小寫字母的意義相同

B)不同類型的變量可以在一個表達(dá)式中

0在賦值表達(dá)式中等號(二)左邊的變量和右邊的值可以是不同類型

D)同一個運(yùn)算符號在不同的場合可以有不同的含義

42.有:intx=:2,y=3,叫執(zhí)行下面語句后田的結(jié)果是(C)

m=(w<x)?w:x;

m=(m<y)?m:y;

A.1B.2C.3D.以上結(jié)果都不對

43.有:intw=7,x=12,y=3,m;執(zhí)行下面語句后m的值是(A)

m=(w>x)?w:x:

(m>y)?m:y:

A.12B.0C.3D.1

45.設(shè)整型變量a=2,則執(zhí)行下列語句后,浮點(diǎn)型變量b的值不為0.51勺是

(B)

A.b=l.0/aB.b=(float)(1/a)

C.b=l/(float)aD.b=l/(a*l.0)

48.以下運(yùn)算符中優(yōu)先級最高的運(yùn)算符是(B)

A)&&B)++C+=D)!=

49.若“intn;floatf=13.8;”,則執(zhí)行"n=(int)f%3”后,n的值是(A)

A.1B.4C.4.333333D.4.6

52.設(shè)x為int型變量,則執(zhí)行以下語句后,x的值為(C)

x=10;x*二x;

A)10B)20C)100D)0

53.若有語句inta=l,b;doubley=2.3;b=(int)y;則b的值為(B)o

A)3B)2C)1D)2.3

54.己知intx;chary;則下面錯誤的scanf函數(shù)調(diào)用語句為(B)

A)scanf("%d,%d,,&x,&y);B)scanf("%d,%c”,x,y)

C)scanf(%d/d”,&x,&y)D)scanf(“/d,%c”,&x,&y)

57.在C語言的庫函數(shù)中,可以輸出char型變量x值的語句是.C。

A)getchar(x);B)fputc(x)Oputchar(x)D)puts(x)

60.以下說法正確的是(0)

A)'x'+5是一個錯誤的表達(dá)式

B)C語言不允許類型的混合運(yùn)算

O強(qiáng)制類型轉(zhuǎn)換時,類型說明符必需加括號

D)(int)x+y和(int)(x+y)是完全等價(jià)的表達(dá)式

61.設(shè)intx=0,y=l:表達(dá)式(x||y)的值是(B)

A)0B)1C)2D)-1

三、選擇結(jié)構(gòu)

1.在C語言中,認(rèn)為:D)為邏輯〃真〃

A)trueB)大于0的數(shù)C)非0整數(shù)D)非0的數(shù)

2.表示關(guān)系x<=y<=z的c語言表達(dá)式為

A)(x<=y)&&(y<=z)B)(x<=y)AND(y<=z)

0(x<=y<=z)D)(x<=y)&(y<=z)

3.能正確表示邏輯關(guān)系:“a2=10或aWO”的C語言表達(dá)式是(D)

A)a>=10ora<=0B)a>=0a<=10

C)a〉=10&&a〈=0D)a>=10IIa<=0

4、推斷char型變量cl是否為大寫字母的表達(dá)式為(D)。

A、‘A'<=cl<=fZ'B、(cl>=,A')&(cl<='Z')

C、('A'<=cl)AND(2>=cl)D、cl>=,A'&&cl<='V

5.為表示邏輯表達(dá)式79<X<90,應(yīng)運(yùn)用的C語言表達(dá)式是」o

A)(X>79)&&(X<90)B)(X>79)!=(X<90)

C)79<X<90D)(X>79)|(X<90)

6.設(shè)有語句“inta=2,b=3,c=-2,d=2;”,則邏輯表達(dá)式“a設(shè)&&b&句<0&&d>0”的

值是(A)

A.1B.0C.-1D.出錯

7.設(shè)a為整型變量,則不能正確表達(dá)數(shù)學(xué)關(guān)系10<a<15的C語言表達(dá)式是

(A)。

A.10<a<15B.a==l11|a-121|a==13||a==14

C.a>10&&a<15D.!(a<=10)&&!(a>=15;

8.設(shè)x,t均為int型變量,則執(zhí)行語句“x=10;t=x&&x〉10;“后,t的值為(D)

A.不定值B.10C.1D.O

9.若inti=10;執(zhí)行下列程序后,變量i的正確結(jié)果是(A)0

switch(i)

{case9:i+=l;

case10:i+=l;

case11:i+=l;

default:i+=l;}

A、13B、12C、11D、10

10.在下面的條件語句中(其中si和s2表示是C語言的語句),只有一個在功

能上與其它三個語句不等價(jià),它是(D)。

A、if(a)si;elses2;B、if(a==0)s2;elsesi;

C、if(a!=0)si;elses2;D、if;a==0)si;elses2;

11.假定全部變量均己正確定義,則下列程序段運(yùn)行后y的值是(A)

inta=0,y=10;

if(a=0)y-;

elseif(a>0)y+-;

elsey+=y;

A.20B.11C.9D.0

12.假定全部變量均已正確定義,則下列程序段運(yùn)行后x的值是(B)0

a=b=c=0;x=35;

if(!a)x-;

elseif(b);

if(c)x=3;

elsex=4;

A.34B.4C.35D.3

13.C語言對嵌套if語句的規(guī)定是:else語句總是與(D)配對。

A)其之前最近的ifB)第一個if

O縮進(jìn)位置相同的ifD)其之前最近的且尚未配對的if

14.在C語言語句中,用來確定分支流程的表達(dá)式是(A)o

A.可用隨意表達(dá)式B.只能用邏輯表達(dá)式或關(guān)系表達(dá)式

C.只能用邏輯表達(dá)式D.只能用關(guān)系表達(dá)式

15.C語言中用(B)表示邏輯“真:

A.trueB.整數(shù)值1

C.非零整數(shù)值D.false

16、若k是int型變量,且有下面的程序段:

intk;

k=-3;

if(k<=0)printf("####");

elseprintf("&&&&");

上面程序段的輸出結(jié)果是(A)

A、##時B、&&&&

C、####&&&&D、有語法錯誤,無輸出結(jié)果

17.main()

{intx=0,a=0,b=0;

switch(x){

case0:b++;

case1:a++;

case2:a++;b++;)

printf("a=%d,b=%d\nw,a,b);}

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

A)a=2,b=lB)a=l,b=lC)a=l,b=0D)a=2,b=2

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

main()

{intx=-10,y=1,z=l;

if(x<y)

if(y<0)z=0;

elsez=z+l;

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

}

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

19.以下程序段的輸出結(jié)果是(B)

inta=10,b=50,c=30;

if(a>b)

a=b;

b二c;

c=a;

printf("a=%2db=%2dc=%2d\n〃,a,b,c);

A)a=10b=50c=10B)a=10b=30c=10

C)a=50b=30c=10D)a=50b=30c=50

四、循環(huán)結(jié)構(gòu)

*1.在C語言中,下列說法中正確的是(D)0

A)do-while語句構(gòu)成的循環(huán)不能用其它語句構(gòu)成的循環(huán)來代替。

B)do-while語句構(gòu)成的循環(huán)只能用break語句退出。

0do-while語句構(gòu)成的循環(huán)在while后的表達(dá)式非零時結(jié)束循環(huán)。

D)do-while語句構(gòu)成的循環(huán),在while后的表達(dá)式為零時結(jié)束循環(huán)。

2.break語句不能出現(xiàn)在(D)語句中

A.switchB.forC.whileD.if…else

*3.對于break語句和continue語句的說法錯誤的是(B)

A)break語句不能用于循環(huán)語句和switch語句之外的任何其他語句中。

B)break和continue也可以用于if語句中

0continue語句只結(jié)束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行。

D)break語句是結(jié)束整個循環(huán)過程,不再推斷執(zhí)行循環(huán)的條件是否成立。

4.語句while(!y);中的表達(dá)式!y等價(jià)于A

A)y==OB)y!=1C)y=!OD;y==l

5.若有“inta=l,x=l;",則循環(huán)語句“while(aGO)x++;a++;”的循環(huán)執(zhí)行(A)

A.無限次B.不確定次C.10次D.9次

6.有以下程序段

intk=0

while(k)k++;

則while循環(huán)體執(zhí)行的次數(shù)是£—

A)無限次B)有語法錯,不能執(zhí)行

0一次也不執(zhí)行D)執(zhí)行1次

7.下列循環(huán)語句中有語法錯誤的是(D)

Awhile(x=y)5;Bwhile(0);

Cdo2;while(x==b);Ddox++while(x==10);

*8.當(dāng)運(yùn)行時輸入:abcdSabcdel^,下面程序的運(yùn)行結(jié)果是B

#include<stdio.h>

main()

{while(putchar(gctchar())!='$');

printf(〃end〃);

)

A)abcd$abcdeB)abcd$endC)abcdendD)abcd$abcdeend

9.以下程序段(A)

x=-l;

do{x=x*x;}

while(x>0);

A.是死循環(huán)B.循環(huán)執(zhí)行一次C.循環(huán)執(zhí)行二次D.有語法錯誤

10.下面程序段執(zhí)行后的結(jié)果為:(B)

intsum=0,n=10;

do{sum=sum-n;

n++;}

while(n<10)

printf(w%d,%dw,sum,n)

A.0,10B.10,11C.0,11D.以上結(jié)果都不對

11.對以下程序段的敘述正確的是A.

intx=l;

do

(X=-1*X;}

while(!x)

A)是死循環(huán)B)循環(huán)執(zhí)行一次C)循環(huán)執(zhí)行二次D)有語法錯誤

12.循環(huán)“for(i=0,x=:;i=10&&x〉0;i++);”的循環(huán)執(zhí)行(A)。

A.無限次B.不確定次C.10次D.9次

13.執(zhí)行語句{for(j=0:j<=3;j++)a=l;}后變量j的值是C.

A)OB)3C)4D)1

14.有如下程序

main()

{inti,sum=2;

for(i=l;i<=3;i+=2)sum+=i;

printf("%d\n”,sum);}

該程序的執(zhí)行結(jié)果是」―

A)6B)3C)死循環(huán)D)4

*15、執(zhí)行語句"for㈠=0;i++<3;);后,變量i的值為(C)。

A、2B、3C、4D、5

16.設(shè)x和y均為int型變量,則執(zhí)行以下的循環(huán)后,y的值為(D)。

for(y=l,x=l;y<=50;y-+)

(

if(x>=0)break;

if(x%2==l){x+=5;continue;}

x-=3;

}

A.2B.4C.6D.1

五數(shù)組

1.以下對一維數(shù)組a的正確說明是:I)

A)chara(10);B)inta[];

C)intk=5,a[k];D)chara[3]={'a','b','c'};

2.以下能對一維數(shù)組a進(jìn)行初始化的語句是:(C)

A.inta[5]=(0,1,2,3,4,)B.inta(5)=(}

C.inta[3]={0,1,2}D.inta{5}=(10*l)

3.在C語言中對一維整型數(shù)組的正確定義為Do

A)inta(10):B)intn=10,a[n];

C)intn;a[n];D)#defineN10

inta[N];

4、已知:inta[10]:則對a數(shù)組元素的正確弓;用是(D)。

A、a[10]B、a[3.5]C、a(5)D、a[0]

5.執(zhí)行下面的程序段后,變量k中的值為」

A)不定值B)33C)30D)10

intk=3,s[2];

s[0]=k:k=s[0]*10;

*6.下列說法中錯誤的是C

A構(gòu)成數(shù)組的全部元素的數(shù)據(jù)類型必需是相同的

B用指針法引用數(shù)組元素允許數(shù)組元素的下標(biāo)越界

C一維數(shù)組元素的下標(biāo)依次是1、2、3……

D定義數(shù)組時的長度可以是整型常量表達(dá)式

7.若有以下數(shù)組說明,則數(shù)值最大的和最小的元素下標(biāo)分別是(B)0

inta[12]={l,2,3,4,5,6,7,8,9,10,11,12);

A.1,12B.0,11C.1,11D.0,12

8.若有以下數(shù)組說明,則i=10;a[a[i]]元素?cái)?shù)值是(B

inta[12]={l,4,7,10,2,5,8,11,3,6,9,12);

A.10B.9C.6D.5

9.假定int類型變量占用兩個字節(jié),其有定義:intx[10]={0,2,4};,則數(shù)組

x在內(nèi)存中所占字節(jié)數(shù)是」_

A)3B)6C)10D)20

IL若有說明:inta[][3]={{l,2,3},{4,5},{6,7}};則數(shù)組a的第一維的大小

為:(B)

A.2B.3C.4D.無確定值

12.以下定義語句中,錯誤的是(D)

A)inta[]={l,2};B)char*a;

C)chars[10]="test";D)intn=5,a[n];

13.下面程序段的輸出結(jié)果是:(C)

inti;

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

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

printf("%d〃,x[i][2-i]);

A)159B)1470357D)369

14.對二維數(shù)組的正確定義是(C)

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

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

15.已知inta[3][4];則對數(shù)組元素引用正確的是£

A)a[2][4]B)a[l,3]C)a[2][0]D)a(2)(1)

六、函數(shù)

1.C語言中函數(shù)返回值的類型是由A確定的.

A)函數(shù)定義時指定的類型B)return語句中的表達(dá)式類型

0調(diào)用該函數(shù)時的實(shí)參的數(shù)據(jù)類型D)形參的數(shù)據(jù)類型

2.在C語言中,函數(shù)的數(shù)據(jù)類型是指(A)

A函數(shù)返回值的數(shù)據(jù)類型B.函數(shù)形參的數(shù)據(jù)類型

C調(diào)用該函數(shù)時的實(shí)參的數(shù)據(jù)類型D.隨意指定的數(shù)據(jù)類型

*3.C程序中函數(shù)返回值的類型是由」確定的.

A)函數(shù)定義時指定的函數(shù)類型B)函數(shù)中運(yùn)用的最終一個變量的類型

C)調(diào)用函數(shù)時臨時確定D)調(diào)用該函數(shù)的主調(diào)函數(shù)類型

*4.C語言規(guī)定,簡潔變量做實(shí)參時,它和對應(yīng)形參之間的數(shù)據(jù)傳遞方式為

(B)

A.由系統(tǒng)選擇B.單向值傳遞C.由用戶指定傳遞方式D.地址傳遞

5.在函數(shù)調(diào)用時,以下說法正確的是(B)

A.函數(shù)調(diào)用后必需帶回返回值

B.實(shí)際參數(shù)和形式參數(shù)可以同名

C.函數(shù)間的數(shù)據(jù)傳遞不行以運(yùn)用全局變量

D.主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一-個文件里

*6.在C語言程序中,有關(guān)函數(shù)的定義正確的是:B)0

A.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不行以嵌套

B.函數(shù)的定義不行以嵌套,但函數(shù)的調(diào)用可以嵌套

C.函數(shù)的定義和函數(shù)的調(diào)用均不行以嵌套

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

*7.以下對C語言函數(shù)的有關(guān)描述中,正確的是;A)0

A.在C語言程序中,調(diào)用函數(shù)時,如函數(shù)參數(shù)是簡潔變量,則只能把實(shí)參的

值傳遞給形參,形參的值不能傳送給實(shí)參

B.C語言函數(shù)既可以嵌套定義又可遞歸調(diào)用

C.C語言函數(shù)必需有返回值,否則不能運(yùn)用函數(shù)

D.在C語言程序中有調(diào)用關(guān)系的全部函數(shù)必需放在同一個源程序文件中

*8.C語言中對函數(shù)的描述正確的是C.

A)可以嵌套調(diào)用,不行以遞歸調(diào)用B)可以嵌套定義

C)嵌套調(diào)用,遞歸調(diào)用均可D)不行以嵌套調(diào)用

9.以下敘述中正確的是」

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

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

C)main。函數(shù)必需放在其它函數(shù)之前

D)全部被調(diào)用的函數(shù)確定要在調(diào)用之前進(jìn)行定義

10.用數(shù)組名作為函數(shù)調(diào)用時的實(shí)參時,傳遞給形參的是2°

A)數(shù)組首地址B)數(shù)組第一個元素的值

C)數(shù)組全部元素的值D)數(shù)組元素的個數(shù)

11.有一函數(shù)的定義如:voidfun(char*s){……},則不正確的函數(shù)調(diào)用是(D)。

A.main()

{chara[20]="abcdefgh";

fun(a);

B.main()

{chara[20]=wabcdefghn;

fun(&a[0]);

}

C.main()

{chara[20]="abcdefghw;

char*p=a;fun(p);

D.main()

{chara[20]="abcdefgh

fun(a[]);

}

13、函數(shù)的功能是交換變量x和y中的值,且通過正確調(diào)用返回交換的結(jié)果。能

正確執(zhí)行此功能的函數(shù)是(D)0

A、funa(int*x,int*y)B.funb(intx,inty)

{int*p;{intt;

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

*p二*x;*x=*y;*y=*p;

、

Cfunc(int*x,int*y)D、fund(int*x,int*y)

{int*p;{intt;

p二x;x二y;y=p;t=*x;*x=*y;*y=t;

1

14.有如下程序

intfunc(inta,intb)

{return(a+b);}

main()

{intx=2,尸x,z=8,r;

r=func(func(x,y),func(y,z));

printf(,r);}

該程序的輸出的結(jié)果是」—

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

*15.以下程序的輸出結(jié)果是」

inta,b;

voidfun()

{a=100;b=200;}

main()

{inta=100,b=100;

fun();

printfC%d%d\n”,a,b);

)

A)100200B)100100C)202300D)202300

*16.下列說法中正確的是:(A)

A.局部變量在確定范圍內(nèi)有效,且可與該范圍外的變量同名。

B.假如一個源文件中,全局變量與局部變量同名,則在局部變量范圍內(nèi),

局部變量不起作用。

C.局部變量缺省狀況下都是靜態(tài)變量。

D.函數(shù)體內(nèi)的局部靜態(tài)變量,在函數(shù)體外乜有效。

17.在C語言中,表示靜態(tài)存儲類別的關(guān)鍵字是:(C)

A)auluB)registerC)sialicD)exteni

18.未指定存儲類別的變量,其隱含的存儲類別為(A)o

A)autoB)staticC)externD)register

七、結(jié)構(gòu)體

1.若有以下說明語句:

structstudent

{intnum;

charname[];

floatscore;

}stu;

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

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

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

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

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

2.若有以下說明語句:

structdate

{intyear;

intmonth;

intday;

}brithday;

則下面的敘述不正確的是.

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

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

0brithday是用戶定義的結(jié)構(gòu)體類型名

D)year,day都是結(jié)構(gòu)體成員名

*3.已知:(設(shè)整型2字節(jié),字符型1字節(jié),浮點(diǎn)型4字節(jié))

struct

{inti;

charc;

floata;

}test;

則sizcof(test)的值是D。

A)4B)5C)6D)7

4.以下對結(jié)構(gòu)變量stul中成員age的非法引用是B

structstudent

{intage;

intnum;

}stul,*p;

p=&stul;

A)stul.ageB)student,ageC)p->agcD)(*p).age

*5.有如下定義

structperson{charname[9];intage;);

structpersonclass[10]={"Tom”,17,“John”,19,

“Susan”,18,“Adam”,16,};

依據(jù)上述定義,能輸出字母A的語句是(B)

A)printf(u%c\nv,class[3].name);

B)printf(a%c\n,?,class[3].name[0]);

C)printf(u%c\n>,,class[3].name[l]);

D)printf(a%c\nw,class[2].name[3]);

6.存放100個學(xué)生的數(shù)據(jù)、包括學(xué)號、姓名、成果。在如下的定義中,不正確的

是(B)。

A.structstudent

{intsno;

charname[20];

floatscore;}stu[100];

B.structstudentstu[100]

{intsno;

charname[20];

floatscore);

C.struct

{intsno;

charname[20];

floatscore:}stu[100];

D.structstudent

{intsno;

charname[20];

floatscore;};

structstudentstu[100];

*7.設(shè)有定義語句“struct{intx;inty;}d⑵={{1,3},{2,7}};”則

“printf(“機(jī)l\n",d[O].y/d[O].x*d[l].x)輸出的是(D)。

A.0B.1C.3D.6

8.己知:structsk

{inta;

floatb;

}data,邛;

若有p=&data,則對data中的成員a的正確引用是(C)。

A、(*p).data,ap->data.aC、(*p).aD、p.data,a

9.設(shè)有如下定義:

strucksk

{inta;

floatb;

[data;

int*p;

若要使P指向dala中的a域,正確的賦值語句是

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

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

typedefstructstu

{inta;

floatb;

}stutype;

則下面敘述中錯誤的是(D)o

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

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

C、a和b都是結(jié)構(gòu)成員名

D、stutype是用戶定義的結(jié)構(gòu)體變量名

八.指針

1.語句int*D;說明白C。

A)p是指向一維數(shù)組的指針

B)p是指向函數(shù)的指針,該函數(shù)返回一int型數(shù)據(jù)

C)p是指向int型數(shù)據(jù)的指針

D)p是函數(shù)名,該函數(shù)返回一指向int型數(shù)據(jù)的指針

2.變量的指針,其含義是指該變量的:(B)

A.值B.地址C.名D.一個標(biāo)記

3.若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達(dá)式是

(A)

A)pb二&xB)pb=xC)*pb=&xD)*pb=*x

4、已知:inta,*p=&a;則下列函數(shù)調(diào)用中錯誤的是(D)。

A^scanf("%d",&a);B、scanf("%d",p);

C、printf(<<%dM,a);D、printf(<<%dv,p);

5.對于同類型的指針變量,不行能進(jìn)行的運(yùn)算是(C)0

A.-B.=C.+D.==

6.對于基類型相同的兩個指針變量之間,不能進(jìn)行的運(yùn)算是_C_

A)<B)=C)+D)-

7.下列不正確的定義是(A)o

A.intB.int*p,i;

C.inti,*p=&i;D.inti,*p;

8.若有說明:intn=2,*p=&n,*q=p,則以下非法的賦值語句是:(D)

A)p=qB)*p二*qC)n=*qD)p=n

9.int*p,a=10,b=l;p=&a;a=*p+b;

執(zhí)行該程序段后,a的值為4

A)編譯出錯B)10011D)12

10.有語句:int則」是對指針變量p的正確定義和初始化。

A)intp=*a;B)int*p=a;C)intp=&a;D)int*p=&a;

11.若有說明語句“inta[5],*p=a;",則對數(shù)組元素的正確引用是(C兒

A.a[p]B.p[a]C.*(p+2)D.p+2

12.若指針變量p指向整型數(shù)組a[10]的首地址,即p二a;則下列數(shù)組元素

a[i](0<i<10)的表示方法中正確的是:(C)

A.p+iB.&(a+i)C.*(a+i)D.*(p+i*2)

13.有如下程序

inta[10]={l,2,3,4,5,6,7,8,9,10},*P=a;

則數(shù)值為9的表達(dá)式是」

A)*P+9B)*(P+8)C)*P+=9D)P+8

14.若有以下定義,則不能表示a數(shù)組元素的表達(dá)式是(B)。

inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a;

A.*pB.a[10]C.*aD.a[p-a]

*15.已知inta[5],*[尸a;下面的敘述中正確的是A

A)pi1與a"等價(jià)B)p[l]與小p等價(jià)

C)*(p+l)與a+1等價(jià)D)p[l]與a++等價(jià)

16.若有以下說明:

inta[10]={l,2,3,4,5,6,7,8,9,10),*p=a;

則數(shù)值為4的表達(dá)式是(C)

A)*p+4B)*(p+4)C)*(p+3)D)p+3

17.下面程序的輸出結(jié)果是C

A)0B)102D)輸出錯誤

main()

{inta[]={l,2,3,4,5,6,7,8,9,0),*p;

p=a;

printfT%d\n",*p+l);

)

18.執(zhí)行語句charc[10]={wabed"},*pc=c;后,*(pc+4)的值是(B)

A)“abed"B)''0'C)dD)不確定

19.下列函數(shù)的功能是A。

voidfun(int*pl,int*p2)

{intp;

p=*p1;*p1=*p2;*p2=p;

)

A)交換*pl和*p2的值B)語法正確,但無法交換*pl和*p2的值

C)交換*pl和*p2的地址D)有語法錯誤

*20.有如下程序

main()

chars[]="ABCD”,*P;

for(p=s+l;p<s+4;p++)printf("%s\n",p);)

該程序的輸li!結(jié)果是」_

A)ABCDB)A0BD)BCD

BCDBCCD

CDCDD

DD

*21.請讀程序,輸出結(jié)果為:(A)

#include<stdio.h>

inta[]={2,4,6,8};

main()

{inti,b[4];

int*p=a;

for(i=0;i<4;i++){b[i]=*p;p++;}

printf(〃%d\n〃,b[2]):

)

A)6B)8C)4D)2

*22.內(nèi)存空間被分成不同區(qū)域,其中用函數(shù)void*malloc(unsignedintsize);

申請的內(nèi)存在」支配。

A)程序區(qū)B)靜態(tài)存儲區(qū)C)動態(tài)存儲區(qū)

九、字符串

1.在C語言中,以」作為字符串結(jié)束標(biāo)記

A)''n'B)''C)'O'D)?\0f

2.下列數(shù)據(jù)中屬于“字符串常量”的是(A)。

A."a”B.{ABC}C.<abc\0,D.'a'

3.字符串“ABCD”在內(nèi)存占用的字節(jié)數(shù)是(D)o

A.4B.6C.1D.5

4.下面不正確的字符串常量是:(A)

A.4PROGRAMJB“12'12"C“0”D"”

5.設(shè)有數(shù)組定義:chararray[]=〃abcd〃;則數(shù)組array所占的空間為B

A)4個字節(jié)B)5個字節(jié)C)6個字節(jié)D)7個字節(jié)

*6.下述對C語言中字符數(shù)組的描述錯誤的是C。

A)字符數(shù)組可以存放字符串

B)字符數(shù)組中的字符串可以整體輸入和輸出

C)可在賦值語句中通過賦值運(yùn)算符對字符數(shù)組整體賦值

D)可在對字符數(shù)組定義時通過賦值運(yùn)算符“二”對字符數(shù)組整體初始化

7.已知charx□二“hello”,y口={'h','e','a','b','e'};,則關(guān)于兩個數(shù)組是

度的正確描述是B.

A)相同B)x大于yC)x小于yD)以上答案都不對

8.給出以下定義:

charx[]=〃abcdefg〃;

charyLa,b,c,d,e,t,g);

則正確的敘述為」

A)數(shù)組x利數(shù)組y等價(jià)B)數(shù)組x和數(shù)組y的長度相同

C)數(shù)組x的長度大于數(shù)組y的長度D)數(shù)組x的長度小于數(shù)組y的長度

9、若有以下語句,則正確的描述是(D)0

staticcharx[]="12345”;

staticchary[]={T,'2',‘3,,'4',5','\0'};

A、x數(shù)組長度大于y數(shù)組長度B、x數(shù)組和y數(shù)組不相同

C、x數(shù)組長度小于y數(shù)組長度D、x數(shù)組等價(jià)于y數(shù)組

10^已知:chars[20]="programmingw,*ps=s;則不能引用字母o的表達(dá)式

是(C)。

A、ps⑵B、s[2]C、ps+2D、ps+=2,*ps

*11.推斷兩字符串si,s2是否相等,應(yīng)運(yùn)用(D).

A)if(sl=s2)B)if(sl=s2)

C)if(strcpy(sl.s2))D)if(strcmp(sl,s2)==0)

*12.以下printf語句的輸出結(jié)果為:A

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

A)7B)6C)存在語法錯誤D)不定值

13.對字符數(shù)組s賦值,不合法的一個是(C)

A.chars□二〃Be:jing”;

B.chars[20]={"beijing”};

C.chars[20];s="Beijing”;

D.chars[20]={'B','e','i','j','i','n','g'};

14.對字符數(shù)組str賦初值,str不能作為字符串運(yùn)用的一個是(D)

A.charstr口二〃shanghai”;

B.charstr口={"shanghai”};

C.charstr[9]='s,/h,「a,」n;,a,/i\,\0,};

D.charstr[8]={,s,,,h,,,a,,,n,,,g,,,h,,,a,,,i,};

15.合法的數(shù)組定義是一C

溫馨提示

  • 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

提交評論