《C語言程序設(shè)計(jì)》習(xí)題及答案、上機(jī)指導(dǎo)及答案_第1頁
《C語言程序設(shè)計(jì)》習(xí)題及答案、上機(jī)指導(dǎo)及答案_第2頁
《C語言程序設(shè)計(jì)》習(xí)題及答案、上機(jī)指導(dǎo)及答案_第3頁
《C語言程序設(shè)計(jì)》習(xí)題及答案、上機(jī)指導(dǎo)及答案_第4頁
《C語言程序設(shè)計(jì)》習(xí)題及答案、上機(jī)指導(dǎo)及答案_第5頁
已閱讀5頁,還剩115頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1部分《C語言程序設(shè)計(jì)》習(xí)題解答

1.1第1章習(xí)題解答

1.選擇題

(1)在計(jì)算機(jī)上可以直接運(yùn)行的程序是()。

A.高級(jí)語言程序B.匯編語言程序

C.機(jī)器語言程序D.C語言程序

【答案】C

【解析】機(jī)器語言是直接面向機(jī)器的,可以直接運(yùn)行,其他語言都需要編譯。

(2)一個(gè)C語言程序由()。

A.若干函數(shù)組成B.若干過程組成

C.若干主程序組成D.若干子程序組成

【答案】A

【解析】C語言程序由一個(gè)主函數(shù)和零個(gè)以上(含零個(gè))非主函數(shù)構(gòu)成。

(3)C語言不具有的特點(diǎn)是()。

A.具有結(jié)構(gòu)化的控制語句

B.數(shù)據(jù)類型豐富

C.語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大

D.在可移植性上,C語言比其他語言差

【答案】D

【解析】C程序的可移植性好,這是C語言的一個(gè)主要特點(diǎn)。

(4)以下敘述不正確的是()<,

A.一個(gè)C語言程序可由一個(gè)或多個(gè)函數(shù)組成

B.一個(gè)C語言程序必須包含一個(gè)主函數(shù)

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

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

【答案】D

【解析】在C語言程序中,注釋說明可以位于程序中任意合適的位置。

(5)以下敘述正確的是()。

A.C語言比其他語言高級(jí)

B.C語言可以不用編譯就能被計(jì)算機(jī)識(shí)別和執(zhí)行

C.C語言以接近英語國(guó)家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

D.C語言出現(xiàn)最晚,所以具有其他語言的一切優(yōu)點(diǎn)

【答案】C

【解析】“C語言以接近英語國(guó)家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式”,這

是C語言的定義。

(6)編譯C語言程序時(shí),程序中的注釋部分將()。

A.不參加編譯,也不會(huì)出現(xiàn)在目標(biāo)程序中

B.參加編譯,但不會(huì)出現(xiàn)在目標(biāo)程序中

C.不參加編譯,但會(huì)出現(xiàn)在目標(biāo)程序中

D.參加編譯,并會(huì)出現(xiàn)在目標(biāo)程序中

【答案】A

【解析】C語言程序中的注釋不參加程序的編譯與運(yùn)行。

2.填空題

(1)計(jì)算機(jī)語言的發(fā)展經(jīng)歷了、和階段。

【答案】機(jī)器語言匯編語言高級(jí)語言

(2)C語言既適合編寫,也適合編寫應(yīng)用軟件。

【答案】系統(tǒng)軟件

(3)簡(jiǎn)單地說,設(shè)計(jì)和調(diào)試C語言程序要經(jīng)過、

和4個(gè)階段。

【答案】編輯編譯鏈接執(zhí)行

3.編程題

(1)編寫一個(gè)簡(jiǎn)單的C語言程序,使得在屏幕上顯示下列信息。

***************************************************

Cisveryfun.

****************************************************

【參考源程序】

Winclude<stdio.h>

intmain()

(

printf(*****************************************************

printf("Cisveryfun.\n");

printf("****************************************************

return0;

)

(2)編寫一個(gè)簡(jiǎn)單的C語言程序,使得在屏幕上顯示下列信息。

***

*****

*******

【參考源程序】

#include<stdio.h>

intmain()

(

printff'*\n");

printff'?*KJP3*\n");

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

printff'******EJP3*\n");

return0;

)

1.2第2章習(xí)題解答

i.選擇題

(1)選出可以作為c語言用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符()o

A.void,define,WORDB.A3_B3Z_123,abc

C.FOR,-abc,CaseD.2a,Do,Sizeof

【答案】B

【解析】C語言中的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,第一個(gè)字符只

能是字母或下劃線,且不允許是系統(tǒng)關(guān)鍵字。

(2)下列運(yùn)算符優(yōu)先級(jí)最高的是()。

A.關(guān)系運(yùn)算符B.賦值運(yùn)算符

C.算術(shù)運(yùn)算符D.邏輯運(yùn)算符

【答案】C

【解析】上述4種運(yùn)算符中,算術(shù)運(yùn)算符的優(yōu)先級(jí)最高。

(3)sizeof(float)是(

A.一種函數(shù)調(diào)用B.一個(gè)不合法的表示形式

C.一個(gè)整型表達(dá)式D.一個(gè)浮點(diǎn)表達(dá)式

【答案】C

【解析】sizeof()用來獲取一個(gè)數(shù)據(jù)或數(shù)據(jù)類型在內(nèi)存中所占空間的字節(jié)數(shù),它的結(jié)果

返回值為字節(jié)數(shù),即為整型值。

(4)下列字符串常量不正確的是()o

A.'abc'B."12'12"C."0"D.""

【答案】A

【解析】字符串常量指用雙引號(hào)括起來的若干字符。

(5)下列4個(gè)選項(xiàng)均是合法整型常量的是(

A.160,-Oxffff,011

B.-Oxcdf,Ola,Oxe

C.-01,986,012,0668

D.-0x48a,2e5,Ox

【答案】A

【解析】本題主要考查十進(jìn)制、八進(jìn)制、十六進(jìn)制實(shí)型數(shù)據(jù)的表達(dá)方式。

(6)以下選項(xiàng)中不屬于C語言類型的是()<.

A.signedshortintB.unsignedlongint

C.unsignedintD.longshort

【答案】D

【解析】C語言中沒有l(wèi)ongshort類型。

(7)數(shù)值029是一個(gè)()o

A.八進(jìn)制數(shù)B.十六進(jìn)制數(shù)

C.十進(jìn)制數(shù)D.非法數(shù)

【答案】D

【解析】C語言中,以數(shù)字0開頭的數(shù)值表示八進(jìn)制數(shù),八進(jìn)制數(shù)的合法字符是。?

7。

(8)在C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是()。

A./B.++C.!=D.%

【答案】D

【解析】取余運(yùn)算(%)要求兩邊的運(yùn)算數(shù)必須是整型。

(9)當(dāng)c的值不為。時(shí),以下能將c的值賦給變量a、b的是()。

A.c=b=aB.(a=c)||(b=c)

C.(a=c)&&(b=c)D.a=c=b

【答案】C

【解析】本題主要考查邏輯運(yùn)算的短路特性。

若有說明語句rtw則變量()。

(10)charc='\72';,c

A.包含1個(gè)字符B.包含2個(gè)字符

C.包含3個(gè)字符D.說明不合法,c的值不確定

【答案】A

【解析】轉(zhuǎn)義字符代表一個(gè)字符常量。

(11)設(shè)有說明"charw;intx;floaty:doublez;w,則表達(dá)式“w*x+z?y”值的數(shù)據(jù)類

型為()o

A.floatB.charC.intD.double

【答案】D

【解析】混合運(yùn)算表達(dá)式的數(shù)據(jù)類型為其中精度最高的運(yùn)算量的數(shù)據(jù)類型。

(12)長(zhǎng)整型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是()。

A.ASCII碼B.原碼

C.反碼D.補(bǔ)碼

【答案】D

【解析】任何整型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式都是補(bǔ)碼。

(13)字符型常量在內(nèi)存中的存儲(chǔ)形式是()。

A.ASCII碼B.BCD碼

C.內(nèi)部碼D.十進(jìn)制碼

【答案】A

【解析】字符型常量在內(nèi)存中采用ASCII碼形式存儲(chǔ)。

(14)若X、i、j和k都是int型變量,則計(jì)算表達(dá)式“x=(i=4,j=16,k=32)”后x的值為()。

A.4B.16C.32D.52

【答案】C

【解析】考查逗號(hào)表達(dá)式的運(yùn)算規(guī)則。逗號(hào)表達(dá)式的值為最后一個(gè)表達(dá)式的值。

(15)若有代數(shù)式半,則下列C語言表達(dá)式不正確的是()。

be

A.a/b/c*e*3B.3*a*e/b/c

C.3*a*e/b*cD.a*e/c/b*3

【答案】C

【解析】3*a*e/b*c對(duì)應(yīng)的代數(shù)式為《不。

(16)表達(dá)式"1091=99"的道是(

A.1B.非空值C.0D.t’ue

【答案】A

【解析】關(guān)系表達(dá)式的值為。或1,其中0表示假,I表示真。

(17)若變量t為double類型,表達(dá)式“t=l,t*5",則t的值為()o

A.1B.6.0C.2.0D.1.0

【答案】D

【解析】該題是問t的值,而不是表達(dá)式的值,故為1.0。

(18)表示關(guān)系"x<=y<=z”的C語言表達(dá)式為()。

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

C.(x<=y<=y)D.(x<=y)&(y<=z)

【答案】A

【解析】多于一個(gè)關(guān)系運(yùn)算符的表達(dá)式,在C語言中應(yīng)該用邏輯運(yùn)算符連接。

(19)在C語言中,int、char和short三種類型數(shù)據(jù)所占用的內(nèi)存()。

A.均為2字節(jié)B.由用戶自己定義

C.由所用機(jī)器的字長(zhǎng)決定D.是任意的

【答案】C

【解析】C語言中各種類型數(shù)據(jù)所占內(nèi)存字節(jié)數(shù)是由所用機(jī)器的字長(zhǎng)決定的。

(20)下列程序的執(zhí)行結(jié)果是()。

#include<stdio.h>

voidmain()

(

inti=2;

printf("%d,%d\n",++i,-i);

)

A.1,1B.2,1C.1,2D.2,2

【答案】B

【解析】printf語句是從右向左計(jì)算輸出表達(dá)式的值。

(21)字符串常量”\\\22a,0\n”的長(zhǎng)度是()。

A.8B.7C.6D.5

【答案】C

【解析】該題主要考查轉(zhuǎn)義字符的使用。

(22)下列敘述錯(cuò)誤的是()。

A.在C語言程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低

B.在C語言程序中,APH和aph是兩個(gè)不同的變量

C.若變量a和b的類型相同,在計(jì)算了賦值表達(dá)式“a=b”后,b中的值將放入a中,

而b中的值不變

D.當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型數(shù)值,對(duì)于實(shí)型變量只能輸入實(shí)

型數(shù)值

【答案】D

【解析】當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于實(shí)型變量也可以輸入整型值,只不過接收進(jìn)來之

后自動(dòng)在末尾加“.0”。

(23)下列敘述正確的是()o

A.C語言中既有邏輯類型也有集合類型

B.C語言中沒有邏輯類型但有集合類型

C.C語言中有邏輯類型但沒有集合類型

D.C語言中既沒有邏輯類型也沒有集合類型

【答案】D

【解析】C語言中既沒有邏輯類型也沒有集合類型。

2.填空題

(1)已知“intx=6;",則執(zhí)行語句"x+=x-=x*x;"后x的值是o

【答案】-60

(2)若w=l,x=2,y=3,z=4.則條件表達(dá)式“w>x?w:y<z?y:z”的結(jié)果是。

【答案】3

(3)若"intm=5,y=2;w,則計(jì)算表達(dá)式"y+=y-=m*=y"后y的值是0

【答案】-16

(4)在C語言中,一個(gè)mt型數(shù)據(jù)在內(nèi)存中如果占2字節(jié),則int型數(shù)據(jù)的取值范圍為

【答案】-32768^32767

(5)已知字母a的ASCII碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)或‘ch='a'+'8'-'3'"

的值為。

【答案】f

(6)若x和n均為int型變量,且x和n的初值均為5,則計(jì)算表達(dá)式“x+=n++”后x

的值為,n的值為。

【答案】106

(7)若有定義“inta=2,b=3;floatx=3.5,y=2.5;則表達(dá)式“(float)(a+b)/2+(int)x%(int)y”

的值為o

【答案】3.500000

(8)下列程序的輸出結(jié)果是o

#include<stdio.h>

intmain()

(

intk=2,i=2,m;

m<k+=i*=k);

printf("%d,%d\rT,m,i);

return0;

)

【答案】6,4

(9)以下程序的執(zhí)行結(jié)果是o

#include<stdio.h>

intmain()

(

inta,b,c;

a=b=l;

c=a++-l;

printf(”%d,%d,”,a,c);

c+=-a+++(++b11++c);

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

return0;

)

【答案】2,0,3,-1

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

include<stdio.h>

intmain()

(

intn=023;

printf("%d\n"/--n);

return0;

)

【答案】18

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

include<stdio.h>

voidmain()

(

inti=10;

printf("%d,%d,%d”,

)

【答案】8,9,10

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

//include<stdio.h>

voidmain()

(

shortinta=-32768,b;

b=a-l;

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

)

[答案】

a=-32768zb=32767

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

#include<stdio.h>

voidmain()

(

intx=042/y=067,z;

z=(x?2)&(y?3);

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

)

【答案】8

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

include<stdio.h>

voidmain()

(

intx=10,y=9;

inta,b,c;

a=(-x==y++)?-x:++y;

b=x++;

c=y;

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

)

【答案】8,8,10

(15)以下程序輸入123456789,其輸出結(jié)果是。

include<stdio.h>

voidmain()

(

inta,b;

floatf;

scanf("%2d%*2d%2d%f",&a,&b,&f);

printf("%d,%d,%f\rT,a,b,f);

)

【答案】12,56,789.000000

1.3第3章習(xí)題解答

i.選擇題

(1)c語言的if語句中,用做判斷的條件表達(dá)式為()。

A.任意表達(dá)式B.邏輯表達(dá)式

C.關(guān)系表達(dá)式D.算術(shù)表達(dá)式

【答案】A

【解析】在C語言中,任意類型的表達(dá)式都可以用做類型判斷,判斷的標(biāo)準(zhǔn)是:零

值為假,非零值為真。

(2)若希望當(dāng)x的值為奇數(shù)時(shí),表達(dá)式的值為真,x的值為偶數(shù)時(shí),表達(dá)式的值為假,

則以下不能滿足要求的表達(dá)式是()。

A.x%2==lB.x%2

C.!(x%2)D.!(x%2==0)

【答案】C

【解析】表達(dá)式”!(x%2)”與題意剛好相反。

(3)已知x=12,y=10,執(zhí)行語句“*x>12?x+l:x-l「后y的值為(.

A.13B.11C.0D.10

【答案】B

【解析】本題主要考查C語言中唯一一個(gè)三目運(yùn)算符,即關(guān)系運(yùn)算符的使用。

(4)已知a=l、b=2、c=3、d=4、m=2、n=2,執(zhí)行語句a(m=a>b)&&(n=c>d);n后n

的值為()o

A.lB.2C.3D.4

【答案】B

【解析】本題主要考查邏輯與運(yùn)算符的短路特性。

(5)下列程序運(yùn)行后輸出()0

#include<stdio.h>

intmain()

intx=10/y=20/z=30;

if(x>y)z=x;x=y;y=z;

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

return0;

)

A.x=10,y=20?z=30B.x=20?y=30?z=30

C.x=20,y=30?z=10D.x=20>y=30?z=20

【答案】B

【解析】如果不是復(fù)合語句,if只與其下的第一條語句構(gòu)成條件結(jié)構(gòu)。

(6)下列程序()o

#include<stdio.h>

intmain()

inta=5,b=0,c=0;

if(a=b+c)

printfC'lllXn");

else

printf("222\n");

return0;

)

A.有語法錯(cuò)誤B.輸出111

C.不能輸出D.輸出222

【答案】D

【解析】if語句中的條件表達(dá)式為一個(gè)賦值表達(dá)式,其值為0,故運(yùn)算結(jié)果為222。

(7)下列程序運(yùn)行后輸出()。

#include<stdio.h>

intmain()

(

intm=l;

if(m++>l)

printf(”%d",m);

else

return0;

)

A.OB.1C.2D.3

【答案】C

【解析】該題主要考查自增、自減運(yùn)算符的位置,若“++”在后,則先取其當(dāng)前值參

與運(yùn)算,之后再自增1。

(8)若x=4、y=-2>z=5,則表達(dá)式w++x-y+z++w的值為()。

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

【答案】12

【解析】因?yàn)椤?+”在前,所以“++x”得到5,減去y之后得到7,因?yàn)椤?+”在后,

所以“Z++”先取z當(dāng)前的值參與計(jì)算,之后得到結(jié)果為12。

(9)下列程序的輸出結(jié)果為()o

#include<stdio.h>

intmain()

(

intx=12;

while(x-);

printf(”%d”,x);

return0;

)

A.-1B.0C.11D.1

【答案】A

【解析】因?yàn)檠h(huán)的條件表達(dá)式為“x--”,所以當(dāng)循環(huán)條件不成立時(shí),x的值為0,隨

后x的值再自減1,故輸出x的值為-1。

(10)C語言允許if…else語句嵌套使用,規(guī)定else總是和()配對(duì)。

A.之前最近的ifB.第1個(gè)if

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

【答案】D

【解析】本題考查在嵌套的if結(jié)構(gòu)中需要重點(diǎn)掌握的規(guī)則。

(11)下列程序執(zhí)行后的輸出結(jié)果是()<.

//include<stdio.h>

intmain()

(

inti=lj=2,k=3;

if(i++==l&&(++j==3||k++==3))

printf("%d%d%d”,i,j,k);

return0;

)

A.123B.234

C.223D.233

【答案】D

【解析】該題主要考查自增運(yùn)算符與邏輯運(yùn)算符的結(jié)合,重點(diǎn)是邏輯運(yùn)算符的短路性

質(zhì)。

(12)下列敘述正確的是()。

A.break語句只能用于switch語句中

B.在switch語句中必須使用default

C.break語句必須與switch語句中的case配對(duì)使用

D.在switch語句中不一定使用break語句

【答案】D

【解析】在switch語句中,break語句不是必須的項(xiàng)。

(13)當(dāng)從鍵盤輸入32時(shí),下列程序的輸出結(jié)果為()。

-include<stdio.h>

intmain()

(

intx,y;

scanf("%d",&x);

y=o;

if(x>=0)

(

if(x>0)y=l;

)

else

y=-i;

printf("%d,y);

return0;

)

A.0B.1C.-1D.不確定值

【答案】B

【解析】本題主要考查嵌套的if語句的作用。

(14)對(duì)于下列程序的判斷正確的是(

#include<stdio.h>

intmain()

(

intx=3/y=0/z=0;

if(x=y+z)

printfC*****");

else

printf("####");

return0;

)

A.有語法錯(cuò)誤不能通過編譯

B.輸出****

C.可以通過編譯,但是不能通過鏈接,因而不能運(yùn)行

D.輸出####

【答案】D

【解析】if語句的條件表達(dá)式為賦值表達(dá)式,其值為0o

(15)對(duì)于下列程序段的描述正確的是(

inta=10;

while(a=0)a=a-l;

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

C.循環(huán)是無限循環(huán)D.循環(huán)體語句僅執(zhí)行一次

【答案】B

【解析】循環(huán)條件為假,所以一次也不執(zhí)行。

(16)語句awhile(!A);w中的表達(dá)式“!A”等價(jià)于()。

A.A==0B.A==lC.A!=0D.A!=l

【答案】A

【解析】作為循環(huán)條件時(shí),!A等價(jià)于A==0,A等價(jià)于A!=0。

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

#include<stdio.h>

intmain()

inta=l/b=2/c=4,t;

while(a<b<c)

(

t=a;a=b;b=t;c-;

)

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

return0;

)

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

【答案】C

【解析】重點(diǎn)理解循環(huán)中的條件表達(dá)式"a<b<c"與數(shù)學(xué)上的關(guān)系表達(dá)式的區(qū)別。

(18)下列程序的執(zhí)行結(jié)果是()。

include<stdio.h>

voidmain()

(

inta-0,i;

for(i=l;i<5;i++)

(

switch(i)

(

case0:

case3:a+=2;

case1:

case2:a+=3;

default:a+=5;

)

)

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

)

A.31B.13C.10D.20

【答案】A

【解析】循環(huán)過程中對(duì)變量a的增值情況為:8+8+10+5=31。

(19)對(duì)下列程序的描述正確的是()。

#include<stdio.h>

intmain()

(

inta=3;

do

(

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

}while(!(-a));

return0;

)

A.輸出1B.輸出1和?2

C.輸出3和0D.是死循環(huán)

【答案】B

【解析】該題主要考查自減運(yùn)算符與邏輯非運(yùn)算符的結(jié)合性。

(20)for(表達(dá)式1;;表達(dá)式3)可理解為()。

A.for(表達(dá)式1;0;表達(dá)式3)

B.for(表達(dá)式1;1;表達(dá)式3)

C.for?(表達(dá)式1;表達(dá)式1;表達(dá)式3)

D.for?(表達(dá)式1;表達(dá)式3;表達(dá)式3)

【答案】C

【解析】for語句中,省略表達(dá)式2相當(dāng)于條件永為真。

(21)下列描述正確的是()。

A.continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

B.break語句和continue語句的作用相同

C.只能在循環(huán)體內(nèi)使用continue語句

D.從循環(huán)嵌套中退出時(shí),只能使用got。語句

【答案】C

【解析】continue語句只能用于循環(huán)。

(22)下列程序段不是死循環(huán)的是()o

A.inti=100;

while(l)

{

i=i%100+l;

if(i>100)break;

)

B.for(;;);

C.intk=0;

do{++k;}while(k<=0);

D.ints=36;

while(s);-s;

【答案】C

【解析】C選項(xiàng)中的循環(huán)體只執(zhí)行一次就結(jié)束了,而其他都是死循環(huán)。

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

include<stdio.h>

intmain()

(

inti;

for(i=l;i<=5;i++)

(

if(i%2)

printfC'*");

else

continue;

printf("#");

)

printff'$\n");

return0;

)

A.*#*#*#$B.#?#*#*

C.*#*#$D.#*#*

【答案】A

【解析】本題主要考查for循環(huán)中continue語句的用法。

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

//include<stdio.h>

intmain()

(

inti,j,x=O;

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

(

x++;

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

(

if(j%2)

continue;

x++;

)

x++;

)

printf("x=%d\n"/x);

return0;

)

A.x=4B.x=8C.x=6D.x=12

【答案】B

【解析】在雙重循環(huán)結(jié)構(gòu)中,continue語句只結(jié)束其所在循環(huán)的本次循環(huán)操作。

(25)若w、x、Y、z、m均為int型變量,則執(zhí)行以下語句后的m值是()。

w=l;x=2;y=3;z=4;

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

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

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

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

【答案】A

【解析】本題主要考查條件運(yùn)算符的使用,在“(表達(dá)式1)?(表達(dá)式2):(表達(dá)式

3)”中,“表達(dá)式1”的值為真時(shí)取“表達(dá)式2”的值為結(jié)果,否則取“表達(dá)式3”的值為結(jié)

果。

(26)下列程序段()。

for(t=l;t<=100;t++)

scanf("%d",&x);

if(x<0)

continue;

primf("%3cT,t);

)

A.當(dāng)x<0時(shí)整個(gè)循環(huán)結(jié)束B.x>=0時(shí)什么也不做

C.printf函數(shù)永遠(yuǎn)也不會(huì)被執(zhí)行D.最多允許輸出100個(gè)非負(fù)整數(shù)

【答案】D

【解析】當(dāng)x的值小于零時(shí),直接進(jìn)入下一次循環(huán),只有當(dāng)x的值大于等于零時(shí)才輸

出。

2,填空題

(1)在C語言中,break語句只能用于語句和語句中。

【答案】switch循環(huán)

(2)當(dāng)a=3,b=2>c=l時(shí),表達(dá)式"f=a>b>c"的值是。

【答案】0

(3)下列程序段的功能是從鍵盤輸入的字符中統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù),用換行符結(jié)束循

環(huán)。請(qǐng)?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while()

(

if()n++;

c=getchar();

)

【答案】c!='\n'c>='0,&&c<='9,

(4)下列程序的功能是計(jì)算2?100的偶數(shù)的累加和。請(qǐng)?zhí)羁铡?/p>

include<stdio.h>

intmain()

(

inti,sum=0;

for()

sum+=i;

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

return0;

)

【答案】i=2;i<=100;i+=2

(5)下列程序的輸出結(jié)果是o

#include<stdio.h>

intmain()

(

inta=100,x=10,y=20,okl=S/ok2=0;

if(x<y)

if(y!=10)

if(!okl)

a=l;

else

if(ok2)

a=10;

a=-l;

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

return0;

)

【答案】-1

(6)下列程序運(yùn)行后輸出。

#include<stdio.h>

intmainf)

(

intx=l,y=2;

switch(x)

(

case1:

switch(y)

{

case1:printf("%d",x);break;

case2:printf("%d",y);break;

)

case2:printf("3");

)

return0;

)

【答案】23

(7)下列程序的功能是找出整數(shù)的所有因子。請(qǐng)?zhí)羁铡?/p>

include<stdio.h>

intmain()

(

intnJ;

scanf("%d",&n);

for(i=l;;i++)

(

iff)

printf("%3d",i);

)

printf("\n");

return0;

)

【答案】i<=n/2n%i==0

(8)下列程序執(zhí)行后的輸出結(jié)果是

#include<stdio.h>

intmain()

inta=3;

do

(

printf("*");

a-;

}while(!a==0);

return0;

}

【答案】***

(9)下列程序的執(zhí)行結(jié)果是

include<stdio.h>

intmain()

(

inti=l,n=0,s=l;

do

(

n=n+s*i;

s=-s;

i++;

}while(i<=9);

printf("%d",n);

return0;

)

【答案】5

(10)下列程序運(yùn)行后輸出_

#include<stdio.h>

intmain()

(

inta,b=19;

whilc(a=b1)

(

b-=3;

if(b%5==0)

(

a++;

continue;

}

elseif(b<5)

break;

a++;

)

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

return0;

)

【答案】6,4

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

#include<stdio.h>

intmain()

(

inti=l;

while(i<=15)

if(++i%3!=2)

continue;

else

printf("%d\t",i);

printf("\n");

return0;

)

【答案】2581114

(12)下列程序的功能是打臼100以內(nèi)個(gè)位數(shù)為6且能被3整除的所有數(shù)。請(qǐng)?zhí)羁铡?/p>

include<stdio.h>

intmain()

(

intij;

for(i=0;;i++j

(

j=i*10+6;

if()

continue;

printf("%d"J);

)

return0;

)

【答案】i<-9j%31-0

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

include<stdio.h>

intmain()

(

inti=5;

do

(

switch(i%2)

case4:i-;break;

case6:i-;continue;

)

printf("%d\t”,i);

}while(i>0);

return0;

)

【答案】31-1

2R5A

(14)下列程序的功能是計(jì)算分?jǐn)?shù)數(shù)列前20項(xiàng)的和:,…。請(qǐng)?zhí)羁铡?/p>

12358

#include<stdio.h>

intmain()

(

floats=0.0;

inti,a,b,t;

for(;i<=2O;i4-+)

(

s+=;

t-a+b;

b=a;

a=t;

)

printf("s=%.2f",s);

return0;

)

【答案】a=2,b=l/i=l(float)(a)/b

(15)下列程序的功能是根據(jù)公式e=1+1+工+工+…求e的近似值,要求精

1!2!3!

度為IO4。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

intmain()

(

inti;

doublee,new;

new=1.0;

for(i=l;;i++j

(

new/=(double)i;

e+=new;

)

printf("e=%f\n"/e);

return0;

)

【答案】e=1.0new>=le-6

3.編程題

(1)從鍵盤輸入任意一個(gè)整數(shù),判斷其是否為偶數(shù)。

【參考源程序】

include<stdio.h>

intmain()

(

intn;

printff'pleaseinputanurrber:\n");

scanf("%d",&n);

if(n%2==0)

printf("Yes!");

else

printf("No!");

return0;

)

(2)有如下函數(shù):

x,(x<1)

y=<2x-1,(14xv10)

3x-1,x>10

編寫程序,使輸入x時(shí),輸出相應(yīng)的y值。

【參考源程序】

#include<stdio.h>

intmain()

(

intx,y;

printf("pleaseinputthex:\n");

scanf("%d",&x);

if(x<l)

y=x;

elseit(x>=l&&x<10)

y=2*x-l;

elseif(x>=10)

y=3*x-l;

printff'yis%d",y);

return0;

)

(3)輸入一個(gè)整數(shù),若該數(shù)能夠被3和7整除,則輸出2:若只能被3和7中的?個(gè)

整除,則輸出L若不能被3和7中的任意一個(gè)整除,則輸出0。

【參考源程序】

#include<stdio.h>

intmain()

intn,m;

printf("pleaseinputn:\n");

scanf(”%d”,&n);

if(n%3==0&&n%7==0)

m=2;

elseif(n%3==0||n%7==0)

m=l;

else

m=0;

printf("theresultis%d"/m);

return0;

)

(4)愛因斯坦的階梯問題。愛因斯坦曾提出這樣一道有趣的數(shù)學(xué)題:有一個(gè)長(zhǎng)階梯,

若每步上2階,最后剩1階;若每步上3階,最后剩2階;若每步上5階,最后剩4階;若

每步上6階,最后剩5階;只有每步上7階,最后剛好一階不剩。問該階梯至少有多少階?

編寫程序解決這個(gè)問題。

【參考源程序】

#include<stdio.h>

intmain()

(

inti,n=l,m=l;

while(m)

(

if(n%2==l)

if(n%3==2)

if(n%5==4)

if(n%6==5)

if(n%7==0)

(

printf("%d",n);

m=0;

}

n++;

)

return0;

)

(5)輸出所有的水仙花數(shù)。水仙花數(shù)是一個(gè)3位整數(shù),它的各位數(shù)字的立方和等于該

數(shù)本身。

【參考源程序】

#indude<stdio.h>

intmain()

(

inti,a,b,c;

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

a=i%10;

b=i/10%10;

c=i/100;

if(a*a*a+b*b*b+c*c*c==i)

printf("%d,i);

)

return0;

)

(6)編寫程序,打印九九乘法表。

【參考源程序】

include<stdio.h>

intmain()

(

intij;

for(i=l;i<10;i++)

(

for(j-l;j<-i;j++)

printf("%3d"/i*j);

printf("\n");

)

return0;

}

(7)編寫程序,打印如下圖形。

?

???

*****

*******

*****

???

?

【參考源程序】

#include<stdio.h>

intmain()

(

intij;

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

(

for(j=l;j<=4-i;j++)

printf("");

for(j=l;j<=2*i-l;j++)

printfC'*");

printf("\n");

)

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

for(j=l;j<=i;j++)

printf("");

for(j=l;j<=7-2*i;j++)

printf("*");

printfC'Xn");

)

return0;

)

(8)用公式K=1…求冗的近似值,直到最后一項(xiàng)的絕對(duì)值小于

4357

為止。

【參考源程序】

-include<stdio.h>

intmain()

(

floatsum=0.0/t=1.0/s=-l;

inti=l;

while(t>le-6)

(

s=s*(-l);

t=t*s;

sum+=t;

t=1.0/(2*i+l);

i++;

)

sum=sum*4;

printf("%f",sum);

return0;

)

(9)一個(gè)數(shù)如果恰好等于它的因子之和,就稱其為完數(shù)。例如,6的因子為1、2、3,

而6=1+2+3,因此6是完數(shù)。編寫程序找出1000以內(nèi)的所有完數(shù),并按下面格式輸出其因

子:6itsfactorsare1,2,3。

【參考源程序】

#include<stdio.h>

intmain()

(

inta,i,m;

for(a=l;a<=1000;a++)

(

for(m=Ozi=l;i<=a/2;i+4-)

if(!(a%i))

m+=i;

if(m==a)

(

printf("%4ditsfactorsare",a);

for(i=l;i<=a/2;i++)

if(!(a%i))

printf("%d,i);

printf("\n");

}

)

return0;

)

(10)給出任意一個(gè)不多于5位的正整數(shù),要求如下:

①求出它是幾位數(shù)。

②分別輸出每一位數(shù)字。

③按逆序輸出各位數(shù)字。例如,原數(shù)為321,則輸出123。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論