C語言期末習(xí)題庫和答案_第1頁
C語言期末習(xí)題庫和答案_第2頁
C語言期末習(xí)題庫和答案_第3頁
C語言期末習(xí)題庫和答案_第4頁
C語言期末習(xí)題庫和答案_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

期末考試試題,填空題只出第五章內(nèi)容,改錯題為第六章,程序設(shè)計為第三、八章。

選擇題部分

第一章,概述

1,以下敘述中錯誤的是(B)

A.一個C語言程序只能有一個主函數(shù)

B.C語言編寫的每個函數(shù)都可以進行獨立的編譯并執(zhí)行

C.C語言編寫的函數(shù)都可以作為一個獨立的源程序文件

D.C語言編寫的函數(shù)源程序,其文件名后綴可以是C

2,計算機高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是

(A)

A.C語言程序僅可以編譯執(zhí)行

B.C語言程序僅可以解釋執(zhí)行

0.以上說法都不對

D.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行

3,C語言規(guī)定:在一個源程序中,main的位置(A)

A,可以任意

B.必須在最后

C.必須在最開始

D.必須在系統(tǒng)調(diào)用的庫函數(shù)后面

4,一個C語言程序是由(C)

A,若干過程組成

B,若干子程序組成

C.函數(shù)組成

D.一個主程序和若干子程序組成

5,以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是(B)

A.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成

B.在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的

C.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題

D.結(jié)構(gòu)化程序使用goto語句會很便捷

6,以下敘述正確的是(C)

A.在C程序中,main函數(shù)必須位于程序的最前面

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

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

D.程序的每行中只能寫一條語句

I

7,以下敘述中錯誤的是(A)

A.C語言編寫的每個函數(shù)都可以進行獨立的編譯并執(zhí)行

B.C語言編寫的函數(shù)源程序,其文件名后綴可以是C

C.一個C語言程序只能有一個主函數(shù)

D.C語言編寫的函數(shù)都可以作為一個獨立的源程序文件

8,以下敘述正確的是(B)

A.C程序的書寫格式是固定的,每行只能寫一條語句

B.C程序中注釋部分可以單獨占一行

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

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

9,以下敘述正確的是(D)

A.C語言程序是由過程和函數(shù)組成的

B.C語言函數(shù)不可以單獨編譯

C.C語言中除了main函數(shù),其他函數(shù)不可作為單獨文件形式存在

D.C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))

10,一個C程序的執(zhí)行是從(D)

A.本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結(jié)束

B.本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束

C.本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束

D.本程序的main函數(shù)開始,到main函數(shù)結(jié)束

11,以下敘述不正確的是(A)

A.在C程序中,注釋說明只能位于一條語句的后面

B.C程序的基本組成單位是函數(shù)

C.一個C源程序可由一個或多個函數(shù)組成

D.一個C源程序必須包含一個main函數(shù)

第二章,數(shù)據(jù)類型、運算符和表達式

3ae

1,若有數(shù)學(xué)式兒,則不正確的C語言表達式是(A)

A.3*a*e/b*c

B.a/b/c*e*3

C.3*a*e/b/c

D.a*e/c/b*3

2,設(shè):inta=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m二a>b)&&(n=c>d)后n的值為(C)。

A.4

B.3

0.2

D.1

3,下列表達式中,不滿足”當(dāng)x的值為偶數(shù)時值為真,為奇數(shù)時值為假”的要求的是(C)

A.(x/2*2-x)=0

B.!(x%2)

C.!(x%2=0)

2

D.x%2=0

4,表達式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為(B)。

A.char

B.doubIe

C,不確定

D.fIoat

5,在C語言中,要求運算數(shù)必須是整型的運算符是(A)

A.%

B./

C.++

D.!=

6,

若x,i,j和k都是int型變量,則計算表達式x=(i=4,產(chǎn)16,k=32)后,x的值為(B

A.4

B.32

C.16

D.52

7,C語言中的標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符(D)

A.必須為下劃線

B.必須為字母

C.可以是字母、數(shù)字和下劃線中的任意一種

D.必須為字母或下劃線

8,若a是數(shù)值類型,則邏輯表達式(a=1)||(a!=1)的值是(D)

A.不知道a的值,不能確定

B.0

0.2

D.1

9,判斷字符型變量c1是否為數(shù)字字符的正確表達式為(A)

A.(c1>=’0')&&(c1<二'9')

B.(c1>=0)&&(c1<=9)

C.C0'>=c1)||('9'〈二c1)

D.'0'<=c1<='9'

10,下面四個選項中,均是合法的用戶標(biāo)識符的選項是(A)o

A.J23tempINT

B.Ap_odo

0.b-agotoint

D.fIoatIao_A

11,以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯誤的是(B)

A.若要處理如"人員工資”的相關(guān)數(shù)據(jù),單精度類型

B.若只處理"真"和"假"兩種邏輯值,應(yīng)使用邏輯類型

3

C.若要保存帶有多位小數(shù)的數(shù)據(jù),應(yīng)使用雙精度類型

D.若要準確無誤差的表示自然數(shù),應(yīng)使用整數(shù)類型

12,假設(shè)所有變量均為整型,則表達式(a=2,b=5,b++,a+b)的值是(B)。

A.7

B.8

0.6

D.2

13,下面正確的字符常量是(B)

A.'\\"

B.W

0.*,

D.'c"

14,設(shè)變量a是整型,f是實型,i是雙精度型,則表達式10+'a,+i*f值的數(shù)據(jù)類型為

(0)

A.float

B.不確定

C.double

D.int

15,在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是(C)。

A.補碼

B.原碼

C.ASCII碼

D.反碼

16,下面四個選項中,均是不合法的用戶標(biāo)識符的選項是(B)。

A.floatlao_A

B.b-agotoint

0._123tempINT

D.Ap_odo

17,以下選項中關(guān)于C語言常量的敘述錯誤的是:(D)

A.所謂常量,是指在程序運行過程中,其值不能被改變的量

B.常量分為整型常量、實型常量、字符常量和字符串常量

C.常量可分為數(shù)值型常量和非數(shù)值型常量

D.經(jīng)常被使用的變量可定義成常量

18,判斷字符型變量c1是否為小寫字母的正確表達式為(B)。

A.('a'>=c1)||('z'<=c1)

B.(c1>='a,)&&(c1<='z')

C.(c1>=a)&&(c1<=z)

D.'a,<=cK='z,

19,若有定義語句:intk1=10,k2=20;,執(zhí)行表達式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2

的值分別為(B)

A.。和1

4

B.0和20

C.10和1

D.10和20

20,以下選項中,能表示邏輯值”假"的是(B)

A.0.000001

B.0

C.100.0

D.1

21,以下選項中非法的字符常量是(B)

A.'\102'

B.'\0191

C.'\xff'

第三章,算法和控制語句部分

1,為表示關(guān)系x2y2z,應(yīng)使用的表達式是A

A.(x>=y)&&(y>=z)

B.(x>=y>=z)

C.(x>=y)AND(y>=z)

D.(x>=y)&(y>=z)

2,有以下程序

main()

{inti;

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

switch(i)

{case1:printf("%dn,i);

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

default:printf("%dn,i);

)

)

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

A.011122

B.120

C.012020

D.012

3,對for(表達式1;;表達式3)可理解為(A)o

A.for(表達式1;1;表達式3)

B.for(表達式1;0;表達式3)

C.for(表達式1;表達式1;表達式3)

D.for(表達式1;表達式3;表達式3)

4,若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是(A)o

for(i=2;i==0;)printfi--);

5

A.。次

B.1次

C.無限次

D.2次

5,有以下程序段

intn=0,p;

do

(

scanf("%d",&p);

n++;

}while(p!=12345&&n<3);

此處do-whiIe循環(huán)的結(jié)束條件是—D—。

A.p的值等于12345并且n的值大于等于3

B.p的值不等于12345并且n的值小于3

C.p的值不等于12345或者n的值小于3

D.p的值等于12345或者n的值大于等于3

6,以下描述中正確的是(D)o

A.do-whiIe循環(huán)中,根據(jù)情況可以省略whiIe

B.由于do-whiIe循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語

0.do-whiIe循環(huán)由do開始,用whiIe結(jié)束,在whiIe(表達式)后面不能寫分號

D.在do-whiIe循環(huán)體中,一定要有能使whiIe后面表達式的值變?yōu)榱?”假”)的操作

7,執(zhí)行語句for(i=1;i++<4;);后變量i的值是(D)o

A.不定

B.3

C.4

D.5

8,有以下程序

main()

(

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

if(a>b>c)

printf(',%d\nH,d);

elseif((c-1>=d)==1)

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

eIseprintf("%d\n",d+2);

)

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

A.2

B.4

C.編譯時出錯

D.3

6

9,main()

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

switch(x)

{case0:b++;

case1:a++;

case2:a++;b++;}printf("a=%d,b=%dH,a,b);

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

A.2,2

B.2,1

0.1,1

D.1,0

10,以下程序的功能是:按順序讀入10名學(xué)生4門課程的成績,計算出每位學(xué)生的平均分并

輸出,程序如下:

main()

{intn,k;

fIoatscore,sum,ave;

sum=0.0;

for(n=1;n<=10;n++)

(

for(k=1;k<=4;k++)

(

scanf("%f",&score);

sum+=score;

)

ave=sum/4.0;

printf("N0%d:%f\n",n,ave);

)

)

上述程序運行后結(jié)果不正確,調(diào)試中發(fā)現(xiàn)有一條語句出現(xiàn)在程序中的位置不正確。這條語句

是B

A.ave=sum/4.0

B.sum=0.0;

C.sum+二score;

D.printf(nN0%d:%f\nH,n,ave);

11,運行以下程序后,輸出的結(jié)果是A

main()

{intk=-3;

if(k<=0)

printf("****\n");

eIseprintf("&&&&\n");

}

7

A.****

B.有語法錯誤不能通過編譯

C.&&&&

D,****&&&&

12,下面的程序片斷所表示的數(shù)學(xué)函數(shù)關(guān)系是A

y=-1;

if(x!=0)y=1;

if(x>0)y=1;

eIsey=0;

A.

C0(x<0)

y=10(x=0)

〔1(x>Q)

B.

-1(x<聽

y='-1(x=0)*-'

.0(x>0)^

c.

0-i(x<聽

y=yi(x=0)*-

、o(x>0)*-

D.

--i(x<0)

y=y0(x=0)

J1(x>q)

13,以下程序的輸出結(jié)果是A

main()

{intx,i;

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

{x=i;

if(++x%2==0)

if(++x%3=0)

if(++x%7==0)

printf("%d”,x);

)

printf(“\n”);

A.2870

B.3981

C.4284

8

D.2668

14,以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是(A)

A.if((a>b)&&(b>c))k=1;

eIsek=0;

B.if((a>b)||(b>c))k=1;

eIsek=0;

C.if(a>b)k=1;

eIseif(b>c)k=1;

eIsek=0;

D.if(a<=b)k=0;

eIseif(b<=c)k=1;

15,為了避免在嵌套的條件語句if-eIse中產(chǎn)生二義性,C語言規(guī)定:

else子句總是與(B)配對。

A.其之后最近的if

B.其之前最近的if

C.縮排位置相同的if

D,同一行上的if

16,t為int類型,進人下面的循環(huán)之前,t的值為0

while(t=1)

{……}

則以下敘述中正確的是—B_?

A,以上說法都不對

B,循環(huán)控制表達式的值為1

C.循環(huán)控制表達式的值為0

D.循環(huán)控制表達式不合法

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

intk,j,s;

for(k=2;k<6;k++,k++)

{s=1;

for(j=k;j<6;j++)

s+=j;

)

printf(“%d\n”,s);

A.15

B.10

C.24

D.9

18,語句while(!E);中的表達式!E等價于(B)。

A.E!=1

B.E==0

C.E==1

9

D.E!二0

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

intx=3;

do

{pritnf(u%3d",x-=2);

}while(!(—x));

A.死循環(huán)

B.1-2

0.30

D.1

20,以下程序的運行結(jié)果是(B)o

main()

(

inti=1,sum=O;

whiIe(i<10)sum=sum+1;i++;

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

)

A.i=10,sum=9

B.運行出現(xiàn)錯誤

C.i~2,sum—1

D.i=9,sum二9

21,

設(shè)有定義:inta二1,b=2,c=3;以下語句中執(zhí)行效果與其它三個不同的是(D)

A.if(a>b){c=a,a=b,b=c;}

B.if(a>b)c—3,a—b,b—cj

C.if(a>b){c=a;a=b;b=c;}

D.if(a>b)c=a;a二b;b二c;

22,以下程序中,whiIe循環(huán)的循環(huán)次數(shù)是_A____

main()

(

inti=0;

whiIe(i<10)

(

if(i<1)continue;

if(i==5)break;

i++;

}

)

A.死循環(huán),不能確定次數(shù)

B.6

C.4

10

D.1

23,選擇結(jié)構(gòu)中的條件與循環(huán)結(jié)構(gòu)中循環(huán)成立的條件,在寫法上可以是任一表達式,但其

值只能被判斷為“真”或“假”。哪個數(shù)作為邏輯“假”值(D)o

A.-1

B,非零的數(shù)

0.1

D.0

24,inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;則a的值為(A)o

A.1

B.不一定

0.3

D.2

25,有以下程序,若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為

789,則正確的輸入是(B)

#include<stdio.h>

intmain()

(

intm,n,p;

scanf("m=%dn=%dp=%dH,&m,&n,&p);

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

return0;

)

A.m=123n=456p=789

B.m=123n=456p=789

C.123456789

D.m=123,n=456,p=789

26,有以下程序

main(A)

(

inti=1,j=1,k=2;

if((j++||k++)&&i++)

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

)

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

A,2,2,2

B.2,2,3

0.1,1,2

D.2,2,1

27,以下程序段的輸出結(jié)果為(A)ofor(i=4;i>1;i—)for(j=1;j<i;j++)putchar('#');

A.######

11

B.無

C.#

D.###

28,有如下程序

main(A)

(

fIoatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

eIsey=1.0;

printf("%f\n",y);J

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

A.0.500000

B.0.250000

0.1.000000

D.0.000000

29,判斷兩個字符串是否相等,正確的表達方式是D

A.whiIe(s1=s2)

B.whiIe(s1==s2)

C.whiIe(strcmp(s1,s2)=0)

D.whiIe(strcmp(s1,s2)==0)

30,若x是int類型變量,以下程序段的輸出結(jié)果是D

for(x=3;x<6;x++)

printf((x%2)?(:("##%d\n"),x);

A.

##3

**4

B.

##3

C.

州1111Ai

**5

D.

**5〃

31,C語言中,switch后的括號內(nèi)表達式的值可以是C

A.只能為整型和字符型

12

B.只能為整型

0.任何類型

D.只能為整型,字符型,枚舉型

32,設(shè)j和k都是int類型,則下面的for循環(huán)語句(C)?

for(j=0,k=0;j<=9&&k!=876;j++)scanf("%d",&k);

A.最多執(zhí)行9次

B.循環(huán)體一次也不執(zhí)行

0.最多執(zhí)行10次

D.是無限循環(huán)

33,inta=3,b=2,c=1;if(a>b>c)a=b;eIsea=c;則a的值為(C),

A.2

B.3

C.1

D.0

34,為了避免在嵌套的條件語句if-else中產(chǎn)生二義性,C語言規(guī)定:else總與(C)配對

A,同一行上的if

B.其之后最近的if

0.其之前最近的未配對的if

D.縮排位置相同的if

35,以下不正確的if語句形式是(D)?

A.if(x<y){x++;y++;}

B.if(x>y&&x!=y);

C.if(x==y)x+=y;

D.if(x!=y)scanf("%d",&x)eIsescanf("%d",&y);

36,結(jié)構(gòu)化程序設(shè)計所規(guī)定的三種基本控制結(jié)構(gòu)是(D)。

A.樹形、網(wǎng)形、環(huán)形

B.輸入、處理、輸出

C.主程序、子程序、函數(shù)

D,順序、選擇、循環(huán)

37,以下程序的輸出結(jié)果是D

main()

{inty=10

for(;y>0;y-)

if(y%3==0)

{pritnf("%d",-y);

continue;

)

)

A.741

B.963

C.875421

D.852

38,以下程序的執(zhí)行結(jié)果是C

13

main()

{intx=0,s=0;

whiIe(!x!=0)s+=++x;

printf("%d",s);}

A..無限循環(huán)

B.0

0.1

D.語法錯誤

39,inta=1,b=2,c=3;if(a>c)b=a;a二c;c=b;則c的值為(B)。

A.3

B.2

C.不一定

D.1

40,以下敘述正確的是(B)o

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

B,用do-whiIe語句構(gòu)成的循環(huán),在whi2后的表達式為零時結(jié)束循環(huán)

C.用do-whiIe語句構(gòu)成的循環(huán),在whiIe后的表達式為非零時結(jié)束循環(huán).

D.do-whiIe語句構(gòu)成的循環(huán)只能用break語句退出.

41,假定所有變量均已正確定義,下列程序段運行后x的值是(D)o

k仁1;

k2=2;

k3=3;

x=15;

if(!k1)x—;

eIseif(k2)x=4;

eIsex=3;

A.15

B.14

0.3

D.4

42,有以下程序,程序運行后的輸出結(jié)果是(B)

#incIude<stdio.h>

intmain()

(

inti,j,m=1;

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

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

{if(i*j>3)break;

m*=i*j;

}

14

)

printf(am=%d\n,m);

return0;

)

A.m=2

B.m=6

0.m=4

D.m二5

43,以下for循環(huán)的執(zhí)行次數(shù)是for(x=0,y=0;(y=123)&&(x<4);x++);(A)。

A.4次

B.是無限循環(huán)

0.3次

D.循環(huán)次數(shù)不定

44,下列程序的輸出結(jié)果是(A)o

main()

(

intx=1,y=0,a二0,b=0;

switch(x)

(

case1:

switch(y)

(

case0:a++;break;

case1:b++;break;

)

case2:a++;b++;break;

case3:a++;b++;break;

)

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

1

A.a=2,b=1

B.a=2,b=2

C.a=1,b二0

D.a=1,b=1

45,有以下程序,當(dāng)執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第1列開始,<CR>代表回車,注

意:回車也是一個字符)

12<CR>

34<CR>

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

#include<stdio.h>

15

intmain()

chara,b,c,d;

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

c=getchar();d=getchar();

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

return0;

)

A.12

34

B.1234

0.12

3

D.12

46,以下程序的運行結(jié)果是(D)o

main()

{intn;

for(n=1;n<=10;n++)

(

if(n%3==0)continue;

printf("%d",n);

1

)

A.12

B.12457810

0.1234567890

D.369

47,C語言中whiIe和do-whiIe循環(huán)的主要區(qū)別是(B)。

A.whiIe的循環(huán)控制條件比do-whiIe的循環(huán)控制條件更嚴格

B.do-whiIe的循環(huán)體至少無條件執(zhí)行一次

C.do-whiIe的循環(huán)體不能是復(fù)合語句

D.do-whiIe允許從外部轉(zhuǎn)到循環(huán)體內(nèi)

48,以下不是無限循環(huán)的語句為(C)o

A.for(;;x++=i);

B.while(1){x++;}

0.for(y=0,x=1;x>++y;x=i++)i=x;

D.for(i=10;;i-)sum+=i;

49,從循環(huán)體內(nèi)某一層跳出,繼續(xù)執(zhí)行循環(huán)外的語句是A

A.break語句

B.return語句

C.continue語句

16

D.空語句

50,下列程序的輸出為(C)o

main()

{inty=10;

while(y-);

printfC,y=%d\n",y);

1

A.whiIe構(gòu)成無限循環(huán)

B.y=0

C.y=-1

D.y=1

51,有以下程序,程序運行后的輸出結(jié)果是(D)

#incIude<stdio.h>

intmain()

(

inta=1,b=2;

whiIe(a<6){b+=a;a+=2;b%=10;}

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

return0;

1

A.5,11

B.6,1

C.7,11

D.7,1

52,在以下給出的表達式中,與do-while(E)語句中的(E)不等價的

表達式是(A)o

A.(E=0)

B.(E>0||E<0)

0.(!E=0)

D.(E!=0)

53,以下程序段的輸出結(jié)果是C

inti,j,m=0;

for(i=1;i<=15;i+=4)

for(j=3;j<=19;j+二4)

m++;

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

A.15

B.12

C.20

D.25

54,執(zhí)行下列語句后的輸出為(C)o

17

intj=-1;

if(j<=1)printf("****\n");

eIseprintf("%%%%\n");

A.%%%%c

B.有錯,執(zhí)行不正確

C****

D.%%%%

55,以下程序的執(zhí)行結(jié)果是_A_.

main()

{intnum=0;

whiIe(num<=2){num++;printf("%d,",num);}}

A.1,2,3,

B.1,2,3,4,

C.1,2,

D.0,1,2

56,下面程序的運行結(jié)果是A

#incIude<stdio.h>

main()

(

inty=10;

do{y一;}whiIe(-y);

printf(H%d\n",y-);

)

A.0

B.1

C.8

D.-1

57,若有定義語句inta,b;doublex;則下列選項中沒有錯誤是(B)

A.switch((int)(x)%2)

{case0.0:a++;break;

case1.0:b++;break;

defauIt:a++;b++;

)

B.switch((int)x%2)

{case0:a++;break;

case1:b++;break;

defauIt:a++;b++;

)

0.switch(x%2)

{case0:a++;break;

case1:b++;break;

18

defauIt:a++;b++;

)

D.switch((int)x%2.0)

{case0:a++;break;

case1:b++;break;

default:a++;b++;

)

58,設(shè)a、b和c都是int變量,且a=3,b=4,c=5;則以下的表達式中,值為0的表達式是C

A.a||b+c&&b-c

B.a<=b

C.!((a<b)&&!c||1)

D.a&&b

59,C語言程序的三種基本結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和_D_結(jié)構(gòu).

A.遞歸

B.轉(zhuǎn)移

C.嵌套

D循環(huán)

60,在下述程序中,判斷i>j共執(zhí)行了多少次C

#include<stdio.h>

main()

(

inti=0,j=10,k=2,s=0;

for(;;)

(

i+二k;

if(i>j)

(

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

break;

)

s十二i;

1

)

A.4

B.8

C.6

D.7

61,while(fabs(t)<1e-5)if(!s/10)break;循環(huán)結(jié)束的條件是(C)o

A.fabs(t)<1e-5&&!s/10

B.fabs(t)<1e-5

C.t>=1e-5&&t<=-1e-5&&s>-10&&s<10

19

D.s/10=0

62,以下敘述正確的是:C

A.用do-whiIe構(gòu)成循環(huán)時,只有在whiIe后的表達式為非零時結(jié)束循環(huán)

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

C.用do-whiIe構(gòu)成循環(huán)時,只有在whiIe后的表達式為零時結(jié)束循環(huán)

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

63,以下程序的輸出結(jié)果是B

main()

{inti,sum;

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

sum+二i;

printf("%d\n"sum);

}

A.15

B.不確定

C.16

D.0

64,有以下程序,程序運行后的輸出結(jié)果是(D)

#incIude<stdio.h>

intmain()

(

charb,c;inti;

b='ar;c='A';

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

t

if(i%2)putchar(i+b);

eIseputchar(i+c);

)

printf(n\nn);

return0;

1

A.ABCDEF

B.aBcDeF

C.abcdef

D.AbCdEf

65,有如下程序

main()

(

intx=1,a=0,b=0;

switch(x)

(

case0:b++;

case1:a++;

20

case2:a++;b++;

)

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

)

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

A.a=1,b=1

B.a=2,b=1

C.a=1,b=0

D.a=2,b二2

66,以下程序段中,能夠正確地執(zhí)行循環(huán)的是(B)o

A.staticinta;while(a)

B.ints=6;dos-=2;whiIe(s);

C.for(i=1;i>10;i++)

D.ints=6;m:if(s<100)exit(0);eIses-=2;gotom:

67,判斷char型變量c是否為大寫字母的C的表達式是C

A.'A'<=c<='Z'

B.("'<=c)AND('Z'>=c)

0.(c>=,A')&&(c<=fZf)

D.(c>='A')&(cUZ')

68,下列程序的輸出結(jié)果是(A)o

main()

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

switch(x)

(

case1:switch(y)

(

case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;break;

)

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

)

A.a=2,b=1

B.a=1,b=0

C.a=2,b二2

D.a=1,b=1

69,下面有關(guān)for循環(huán)的正確描述是(D)o

A.for循環(huán)是先執(zhí)行循環(huán)循環(huán)體語句,后判斷表達式

B.在for循環(huán)中,不能用break語句跳出循環(huán)體

C.for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況

D.for循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用花括號括起來

70,假定所有變量均已正確定義,下面語句段執(zhí)行后的x的值是B

21

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

if(!a)x—;eIseif(b);if(c)x=3;elsex=4;

A.34

B.4

C.35

D.3

71,在C語言中,為了結(jié)束由whiIe語句構(gòu)成的循環(huán),while后一對圓括號

中表達式的值應(yīng)該為(B)o

A.1

B.0

C.True

D.非0

72,有以下程序,程序執(zhí)行后的輸出結(jié)果是(A)

#incIude<stdio.h>

intmain()

(

inty=10;

while(y-);

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

return0;

1

A.y=-1

B.y=1

GwhiIe構(gòu)成無限循環(huán)

D.y=0

73,有以下程序,程序運行后的輸出結(jié)果是(B)

#incIude<stdio.h>

intmain()

(

inta=1,b=0;

if(!a)b++;

elseif(a==0)if(a)b+=2;

elseb十二3;

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

return0;

)

A.3

B.0

22

C.1

D.2

74,有輸入語句:scanf(Ha=%d,b=%d,c=%d",&a,&b,&c);為使變量a的值為1,b的值為3,c

的值為2,則正確的數(shù)據(jù)輸入方式是(B)o

A.a=1b=3c=21

B.a—1,b—3,c—2U

C.1321

D.1,3,21

75,程序段:intx=12;doubIey=3.141593;printf(u%d%8.6fv,x,y);的輸出結(jié)果是(C)

A.12,3.141593

B.123.141593

C.123.141593

D.123.1415930

76,若變量已正確定義,有以下程序段

i二0;

doprintf("%d,",i);while(i++);

printf(“%d\n",i);其輸出結(jié)果是(D)

A.0,0

B.程序進入無限循環(huán)

C.1,1

D.0,1

77,下列條件語句中輸出結(jié)果與其他語句不同的是(C)

A.if(a)printf(M%d\nH,x);eIseprintf("%d\n",y);

B.if(a==0)printf("%d\n",y);eIseprintf(H%d\nn,x);

C.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

D.if(a!=0)printf("%d\n",x);eIseprintf("%d\n",y);

78,有以下程序,程序運行后的輸出結(jié)果是(C)

#include<stdio.h>

intmain()

{intx=1,y=0;

if(!x)y++;

elseif(x==0)

if(x)y+=2;

eIsey十=3;

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

return0;

)

A.3

23

B.2

0.0

D.1

79,有以下程序段

charname[20];

intnum;

scanf(Hname=%snum=%d",name;&num);

當(dāng)執(zhí)行上述程序,并從鍵盤輸入:name二Lilinum=1001<回車>后,name的值(C)

A.LiIinum=

B.name=LiIi

0.Lili

D.name=LiIinum=1001

80,執(zhí)行下列程序片段時輸出的結(jié)果是(C)o

intx=13,y=5;

printf(n%d",x%=(y/=2));

A.2

B.3

C.1

D.O

81,已知有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當(dāng)從第一

列開始輸入數(shù)據(jù)時,

正確的數(shù)據(jù)輸入方式是(A)。

inta1,a2;charc1,c2;

scanfC'%d%c%d%c",&a1,&d,&a2,&c2);

A.10A20B1

B.10A20BZ

C.10A20BZ

D.10A20Bl

82,若定義x為double型變量,則能正確輸入x值的語句是(C)。

A.scanf("%5.1f",&x);

B.scanf("%f",x);

0.scanf("%lf",&x);

D.scanf("%f",&x);

83,以下程序段中的變量已正確定義

for(i=0;i<4;i++,i++)

for(k=1;k<3;k++)printf(“*”);程序段的輸出結(jié)果是(C)

A****

B.**

I.TTTTTTTT

D.*

84,有以下程序段,以下敘述中正確的是(B)

intmain()

24

whiIe(getchar()!='\n");

A.此whiIe語句將無限循環(huán)

B.當(dāng)執(zhí)行此whiIe語句時,只有按回車鍵程序才能繼續(xù)執(zhí)行

0.當(dāng)執(zhí)行此whiIe語句時,按任意鍵程序就能繼續(xù)執(zhí)行

D.getchar()不可以出現(xiàn)在while語句的條件表達式中

85,有以下程序:程序運行后的輸出結(jié)果是(A)

#incIude<stdio.h>

intmain()

(

inta=7;

while(a-);

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

return0;

)

A.-1

B.1

C.0

D.7

86,if語句的基本形式是:if(表達式)語句,以下關(guān)于“表達式”值的敘述中正確的是(B)

A.必須是正數(shù)

B.可以是任意合法的數(shù)值

C.必須是整數(shù)值

D.必須是邏輯值

87,設(shè)變量均已正確定義并且賦值,以下與其他三組輸出結(jié)構(gòu)不同的一組語句是(B)

A.n=++x;printf((n%cl\n",n);

B.n=x++;printf((n%d\n",n);

C.++x;printf(("%d\n",x);

D.x++;printf(("%d\n",x);

88,若有定義:inta,b;,通過語句scan千("%d;%d”,&a,&b);,能把整數(shù)3賦給變量a,5付給

變量b的輸入數(shù)據(jù)是(C)

A.3,5

B.35

C.3;5

D.35

89,有以下程序

#incIude<stdio.h>

intmain()

inta1,a2;charc1,c2;

25

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

printf("%d,%c,%d,%c",a1,c1,a2,c2);

return0;

1

若想通過鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,

程序輸出結(jié)果是:12,a,34,b則正確的輸入格式是C(以下—代表空格,<CR>代表回車)

A.12,a,34,b<CR>

B.12_a34_b<CR>

C.12a34b<CR>

D.12_a_34_b<CR>

90,有以下程序,程序運行后的輸出結(jié)果是(D)

#incIude<stdio.h>

intmain()

(

inta=1,b=2;

for(;a<8;a++){b+=a;a+=2;}

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

return0;

)

A.8,11

B.7,11

0.9,18

D.10,14

91,若i和k都是int類型變量,有以下for語句

for(i=0,k=-1;k=1;k++)printf("*****\n");

下面關(guān)于語句執(zhí)行情況的敘述中正確的是(A)

A.構(gòu)成無限循環(huán)

B.循環(huán)體一次也不執(zhí)行

C.循環(huán)體執(zhí)行兩次

D.循環(huán)體執(zhí)行一次

第四章,函數(shù)

1,有以下程序,程序運行后的輸出結(jié)果是(B)

#incIude<stdio.h>

intfun(intx,inty)

{if(x!=y)return((x+y)/2);

eIsereturn(x);

}

26

intmain()

{inta=4,b=5,c=6;

printf("%d\nn,fun(2*a,fun(b,c)));

return0;

)

A.12

B.6

C.3

D.8

2,有以下程序,程序運行的輸出結(jié)果(A)

#incIude<stdio.h>

intf(intx);

intmain()

{intn=1,m;

m=f(f(f(n)));printf("%d\n";

return0;

)

intf(intx)

{returnx*2;}

A.8

B.4

C.1

D.2

3,有以下程序,程序執(zhí)行后變量w中的值是(C)

#incIude<stdio.h>

intfunI(doublea){returna*=a;}

intfun2(doubIex,doubIey)

{doublea=0,b=0;

a=funI(x);b=funI(y);return(int)(a+b);

)

intmain()

{doubIew;w=fun2(1.1,2.0);....}

A.5.21

B.0.0

C.5.0

D.5

4,有以下程序,程序運行后的輸出結(jié)果是(B)

#incIude<stdio.h>

27

intfun()

{staticintx=1;

x*=2;

returnx;

)

intmain()

{inti,s=1;

for(i=1;i<=3;i++)s*=fun();

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

1

A.10

B.64

C.0

D.30

5,有以下程序,程序運行后的輸出結(jié)果是(D)

#incIude<stdio.h>

intf(intx,inty)

{return((y-x)*x);}

intmain()

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

d=f(f(a,b),f(a,c));

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

)

A.10

B.8

C.7

D.9

6,有以下程序,程序運行后的輸出結(jié)果是(B)

#incIude<stdio.h>

voidfun(intp)

{intd=2;p=d++;printf("%d",p);

intmain()

{inta=1;

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

return0;

1

A.22

28

B.21

C.12

D.32

7,有以下程序:程序運行后的輸出結(jié)果是(A)

#incIude<stdio.h>

intf()

{staticintx=1;

x+=1;returnx;

)

intmain()

{inti,s=1;

for(i=1;i<=5;i++)s+=fun0;

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

return0;

)

A.21

B.6

C.120

D.11

8,若有代數(shù)式Ji""+,?(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表

示該代數(shù)式的C語言表達式是(A)

A.sqrt(fabs(pow(n,x)+exp(x,e)))

B.sqrt(fbs(pow(n,x)+pow(x,e)))

C.sqrt(fabs(pow(x,n)+exp(x)))

D.sqrt(abs(nx+ex))

9,以下關(guān)于return語句敘述中正確的是(D)

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

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

C.一個自定義函數(shù)中必須有一條return語句

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

10,設(shè)有如下函數(shù)定義,若執(zhí)行調(diào)用語句:n=fun(3);,則函數(shù)fun總共被調(diào)用的次數(shù)是(B)

intfun(intk)

{if(k<1)return0;

eIseif(k==1)return1;

eIsereturnfun(k-1)+1;

)

A.2

B.3

C.5

D.4

29

1

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論