同步練習(xí)1-13參考答案及解析_第1頁(yè)
同步練習(xí)1-13參考答案及解析_第2頁(yè)
同步練習(xí)1-13參考答案及解析_第3頁(yè)
同步練習(xí)1-13參考答案及解析_第4頁(yè)
同步練習(xí)1-13參考答案及解析_第5頁(yè)
已閱讀5頁(yè),還剩87頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)

選擇題

1.答案:A

【解析】C語(yǔ)言作為計(jì)算機(jī)高級(jí)語(yǔ)言,用它編寫的程序必須經(jīng)過(guò)C語(yǔ)言的編譯器編譯后,

轉(zhuǎn)換為二進(jìn)制的機(jī)器語(yǔ)言來(lái)運(yùn)行。

2.答案:B

【解析】設(shè)計(jì)一個(gè)能解決實(shí)際問(wèn)題的計(jì)算機(jī)程序需要經(jīng)過(guò)以下幾個(gè)過(guò)程:①建立模型。②算

法設(shè)計(jì):給出解決問(wèn)題的步驟,即算法。③算法表達(dá):選擇一種表達(dá)算法的工具,對(duì)算法

進(jìn)行清晰的表達(dá)。④編寫程序:選擇一種程序設(shè)計(jì)語(yǔ)言,把以上算法程序化,這稱為編寫

程序。⑤程序調(diào)試:對(duì)編寫好的程序進(jìn)行調(diào)試,修改程序中的錯(cuò)誤。⑥程序文檔編寫與程

序維護(hù)。綜上所述,B)選項(xiàng)是符合上述描述的,其他選項(xiàng)不恰當(dāng)。

3.答案:B

【解析】C程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行,所以A)正確,B)錯(cuò)誤。所有C

程序先編譯再鏈接,全都無(wú)誤后才能運(yùn)行。C程序中整型變量用于存放整數(shù),實(shí)型變量用于

存放浮點(diǎn)數(shù)。所以,本題答案為B)。

4.答案:B

【解析】C語(yǔ)言中只有函數(shù)沒(méi)有過(guò)程,故選項(xiàng)A錯(cuò)誤;C語(yǔ)言可以嵌套調(diào)用,故選項(xiàng)B正

確;C語(yǔ)言函數(shù)可以單獨(dú)編譯成.dll文件,故選項(xiàng)C錯(cuò)誤;C語(yǔ)言中除main函數(shù)以外,其

他函數(shù)可作為單獨(dú)文件形式存在,故選項(xiàng)D也錯(cuò)誤。

5.答案:D

【解析】程序設(shè)計(jì)通常分為問(wèn)題建模、算法設(shè)計(jì)、編寫代碼和編譯調(diào)試四個(gè)階段。所以選

項(xiàng)A)、B)、C)說(shuō)法都不完整。

6.答案:C

【解析】函數(shù)是C程序的基本組成單位;C語(yǔ)言書寫風(fēng)格很自由,不但一行可以寫多個(gè)語(yǔ)

句,還可以將一個(gè)語(yǔ)句寫在多行中。故本題答案為C)。

7.答案:D

【解析】計(jì)算機(jī)能直接執(zhí)行的只能是機(jī)器語(yǔ)言程序,源程序和匯編程序都是用高級(jí)語(yǔ)言編寫

的程序,不能被直接執(zhí)行。目標(biāo)程序也是不能被直接執(zhí)行的程序,需要通過(guò)系統(tǒng)提供的連接

程序與庫(kù)函數(shù)連接裝配成可執(zhí)行程序,才能被計(jì)算機(jī)執(zhí)行。所以本題答案為D)。

8.答案:D

【解析】選項(xiàng)D)為兩條語(yǔ)句。

9.答案:D

【解析】一個(gè)C語(yǔ)言的源程序(后綴名為.c)在經(jīng)過(guò)編譯器編譯后,先生成一個(gè)匯編語(yǔ)言程序,

然后山編譯程序再將匯編語(yǔ)言程序翻譯成機(jī)器指令程序,即目標(biāo)程序(后綴名為.obj),

目標(biāo)程序不可以直接運(yùn)行,它要和庫(kù)函數(shù)或其他目標(biāo)程序連接成可執(zhí)行文件(后綴名為.exe)

后方可運(yùn)行。

10.答案:A

【解析】一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數(shù),所以一個(gè)C

語(yǔ)言程序可以實(shí)現(xiàn)多種算法。

11.答案:B

【解析】選項(xiàng)A)main();的分號(hào)是錯(cuò)誤的,不能有分號(hào);選項(xiàng)C)的注釋語(yǔ)句多了兩個(gè)*號(hào);

選項(xiàng)D)include前面沒(méi)有#。

12.答案:C

【解析】選項(xiàng)A)中,C語(yǔ)言的注釋可以出現(xiàn)在程序的任何位置;C語(yǔ)言的語(yǔ)法限制不嚴(yán)格,

可以多條語(yǔ)句放在同一行上,也可以將一條語(yǔ)句寫在多行,故選項(xiàng)B)錯(cuò)誤,選項(xiàng)C)正確;

選項(xiàng)D)是錯(cuò)誤的,因?yàn)橛肅語(yǔ)言編寫的程序可以放在不同的文件中,文件之間使用預(yù)處理

命令進(jìn)行調(diào)用。

13.答案:C

【解析】一個(gè)結(jié)構(gòu)化程序可以由順序、分支、循環(huán)三種結(jié)構(gòu)組成,但不是必須同時(shí)都包括,

可以包括其中的一個(gè)或多個(gè),所以選項(xiàng)A)錯(cuò)誤。goto語(yǔ)句會(huì)破壞程序的結(jié)構(gòu)性、可讀性,

不得以不要用,所以選項(xiàng)B)錯(cuò)誤。三種基本結(jié)構(gòu)構(gòu)成的程序也可以解決大規(guī)模的程序,所

以選項(xiàng)D)錯(cuò)誤。在C語(yǔ)言中,利用函數(shù)來(lái)實(shí)現(xiàn)程序的模塊化,C)正確。

第2章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式

選擇題

1.答案:C

【解析】C語(yǔ)言的標(biāo)識(shí)符命名規(guī)則為:①只能由字母、數(shù)值和下劃線3種字符組成;②第

一個(gè)字符必須是字母或下劃線;③不能與C語(yǔ)言中的關(guān)鍵字或保留字相同。

2.答案:C

【解析】標(biāo)識(shí)符命名規(guī)則:標(biāo)識(shí)符必須由字母(a?z或A?Z)或下劃線(J開頭;標(biāo)識(shí)符的

其他部分可以用字母、下劃線或數(shù)字(0?9)組成;大小寫字母表示不同意義,如cout和Cout

代表不同的標(biāo)識(shí)符;在定義標(biāo)識(shí)符時(shí),雖然語(yǔ)法卜.允許用下劃線開頭,但是,我們最好避免

定義用下劃線開頭的標(biāo)識(shí)符,因?yàn)榫幾g器常常定義一些下劃線開頭的標(biāo)識(shí)符。因此,本題正

確答案為C)o

3.答案:C

【解析】C語(yǔ)言合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成,并且第

一個(gè)字符必須為字母或下劃線。因?yàn)檫x項(xiàng)C)中的標(biāo)識(shí)符的第一個(gè)字符為所以選項(xiàng)C)

為本題的正確答案。

4.答案:A

【解析】在C語(yǔ)言中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下劃線3種

字符組成,且第一個(gè)字符必須為字母或下劃線。C語(yǔ)言的標(biāo)識(shí)符可以分為關(guān)鍵字、預(yù)定義標(biāo)

識(shí)符和用戶標(biāo)識(shí)符。選項(xiàng)B)和C)中的橫線以及點(diǎn)都不合法,選項(xiàng)D)中的case為C語(yǔ)言關(guān)

鍵字,故本題答案為A)。

5.答案:B

【解析】C語(yǔ)言規(guī)定用戶標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,且第一個(gè)字符必須是字母或下

劃線,可見選項(xiàng)C),D)是錯(cuò)誤的;此外,C語(yǔ)言不允許用戶將關(guān)鍵字作為標(biāo)識(shí)符,而選項(xiàng)

A)中的void正是C語(yǔ)言的關(guān)鍵字。

6.答案:C

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

字母或下劃線,并且不能使用C語(yǔ)言中的關(guān)鍵字作為標(biāo)識(shí)符。選項(xiàng)C)中g(shù)oto和int是關(guān)鍵

字,b-a中不是組成標(biāo)識(shí)符的3種字符之一;選項(xiàng)D)中int是關(guān)鍵字,所以,均是不合法

用戶標(biāo)識(shí)符的選項(xiàng)是C)o

7.答案:B

【解析】合法的標(biāo)識(shí)符是由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線,

用戶定義的標(biāo)識(shí)符不能與關(guān)鍵字相同。選項(xiàng)A),數(shù)字不能為第一個(gè)字母,auto為關(guān)鍵字;

選項(xiàng)C)中,也是數(shù)字不能為第一個(gè)字母,else為關(guān)鍵字;選項(xiàng)D)中負(fù)號(hào)不合法。

8.答案:C

【解析】C語(yǔ)言規(guī)定,標(biāo)志符由字母、數(shù)字或下劃線組成,它的第一個(gè)字符必須是字母或下

劃線。

9.答案:A

【解析】C語(yǔ)言規(guī)定用戶標(biāo)識(shí)符由英文字母、數(shù)字和下劃線組成,且第-個(gè)字符必須是字母

或下劃線,由此可見選項(xiàng)B)、D)是錯(cuò)的;此外,C語(yǔ)言不允許用戶將關(guān)鍵字作為標(biāo)識(shí)符,

而選項(xiàng)C)中的int是C語(yǔ)言的關(guān)鍵字。

10.答案:A

【解析】C程序的合法實(shí)數(shù)有兩種表示形式,一種是小數(shù)形式,另一種是指數(shù)形式,對(duì)于用

指數(shù)形式表示的實(shí)數(shù)來(lái)說(shuō),需要注意的是字母e或E之前必須要有數(shù)字,且字母e或E后

面的指數(shù)必須為整數(shù),所以選項(xiàng)A)為正確答案。

11.答案:D

【解析】A)選項(xiàng)中1,200不能表示整數(shù)1200。B)選項(xiàng)中應(yīng)表示為1.5E2。在C語(yǔ)言中,反斜

杠是轉(zhuǎn)義符,其后必須跟有其他字符,所以選項(xiàng)C)也是錯(cuò)誤的。D)選項(xiàng)正確。

12.答案:A

【解析】C語(yǔ)言中注釋可以放在任何位置,但不能夾在變量名或關(guān)鍵字中間,選項(xiàng)A)正確;

C語(yǔ)言中的變量要在使用之前定義,C標(biāo)準(zhǔn)規(guī)定定義位置在相關(guān)程序塊的首部,選項(xiàng)B)錯(cuò)

誤;C語(yǔ)言中兩側(cè)數(shù)據(jù)類型可以不一致,系統(tǒng)可進(jìn)行強(qiáng)制類型轉(zhuǎn)換,選項(xiàng)C)錯(cuò)誤:C語(yǔ)言

數(shù)值常量中不允許存在空格,選項(xiàng)D)錯(cuò)誤。

13.答案:D

【解析】整型常量和實(shí)型常量統(tǒng)稱為數(shù)值型常量。本題中A)項(xiàng)是數(shù)字和字符的組合,不能

構(gòu)成數(shù)值型常量。B)項(xiàng)以0開頭代表該常量是一個(gè)8進(jìn)制數(shù),但其后面的數(shù)字中又出現(xiàn)了"8",

因此不正確。C)項(xiàng)用指數(shù)形式表示實(shí)型常量,但e后面必須為整數(shù),不正確。D)項(xiàng)中一個(gè)常

量后面加字母L表示長(zhǎng)整型數(shù)據(jù)。因此,本題答案為D)。

14.答案:A

【解析】選項(xiàng)B)是實(shí)型常量,選項(xiàng)C)是字符串常量,選項(xiàng)D)是轉(zhuǎn)義字符常量,都是合法的

常量。

15.答案:A

【解析】C語(yǔ)言中整型常量可用十進(jìn)制、八進(jìn)制和十六進(jìn)制3種形式表示。

16.答案:B

【解析】在C語(yǔ)言程序中,用單引號(hào)把一個(gè)字符或反斜線后跟一個(gè)特定的字符括起來(lái)表示

一個(gè)字符常量。選項(xiàng)A)、C)和D)為正確的字符常量;而選項(xiàng)B)是用雙引號(hào)括起來(lái)的字符,

表示一個(gè)字符串常量,所以正確答案為選項(xiàng)B)。

17.答案:B

【解析】本題考查的是各個(gè)進(jìn)制數(shù)值常量的表示方法,八進(jìn)制數(shù)據(jù)是以0開頭的常量,其數(shù)

字包括0?7,選項(xiàng)A)錯(cuò)誤。浮點(diǎn)數(shù)據(jù)的指數(shù)表示中,e的右側(cè)必須為整數(shù),選項(xiàng)C)錯(cuò)誤。

在選項(xiàng)D)中,10,000顯然是錯(cuò)誤的。故本題的答案為B)。

18.答案:D

【解析】字符串常量是一對(duì)雙引號(hào)括起來(lái)的字符序列。選項(xiàng)A)中第二個(gè)雙引號(hào)"'""被編譯系

統(tǒng)解釋為轉(zhuǎn)義字符,選項(xiàng)A)錯(cuò)誤,選項(xiàng)B)和C)顯然也不是字符串常量。故本題答案為D)。

19.答案:D

【解析】C語(yǔ)言中沒(méi)有字符串類型,選項(xiàng)A)錯(cuò)誤。比較任意兩個(gè)字符串的大小要通過(guò)字符

串操作函數(shù)strcmp()來(lái)進(jìn)行,而不能直接用關(guān)系運(yùn)算符進(jìn)行比較。選項(xiàng)B)和C)錯(cuò)誤。空串

是最小的字符串。故本題答案為D)。

20.答案:B

【解析】C語(yǔ)言的語(yǔ)法規(guī)定,字母e(E)之前必須有數(shù)字,且e(E)后面的指數(shù)必須是整數(shù),而

選項(xiàng)B)中,e(E)后面的指數(shù)是小數(shù),所以不合法。

21.答案:A

【解析】C語(yǔ)言中,一個(gè)字符常量代表ASCH字符集中的一個(gè)字符,在程序中用單引號(hào)括起

來(lái)作為字符常量,字符常量的的范圍是0~127。由于字符常量用單引號(hào)括起來(lái),所以選項(xiàng)

B)、C)錯(cuò)誤,選項(xiàng)D)超過(guò)了字符常量的表示范圍。

22.答案:A

【解析】C語(yǔ)言的字符常量是用單引號(hào)(即撇號(hào))括起來(lái)的一個(gè)字符。除此之外,在C語(yǔ)言中

還允許用個(gè)"\"開頭的字符序列來(lái)表示字符常量。其中,形式"\ddd"表示1?3位八進(jìn)制

數(shù)所代表的字符;形式"\xhh”表示1?2位十六進(jìn)制數(shù)所代表的字符。在本題中,'\xl3'

表示回車符,是一個(gè)字符常量;、08;用八進(jìn)制數(shù)所代表的字符,但形式不正確,因?yàn)榘?/p>

進(jìn)制數(shù)所代表的字符中不會(huì)出現(xiàn)數(shù)字"8":'65,不是一個(gè)字符,而是一個(gè)十進(jìn)制數(shù)字;"\n"

是用雙引號(hào)括起來(lái)的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。

23.答案:D

【解析】八進(jìn)制中,不可能包括8以上的數(shù)字,它的范圍只在0~7之間,以0開頭。同樣,

十六進(jìn)制是以O(shè)x開頭,數(shù)字在。?9和A?F之間。

24.答案:B

【解析】字符串常量是由雙引號(hào)括起來(lái)的一串字符,其中的雙引號(hào)不可缺少。由此可知,選

項(xiàng)A)、C)、D)都是合法的字符串常量,而選項(xiàng)B)是一個(gè)字符常量。

25.答案:B

【解析】十六進(jìn)制數(shù)以O(shè)x開頭,后面跟著若干位l~f的數(shù),所以正確答案為B)。

26.答案:C

【解析】sizeof的作用就是返回?個(gè)對(duì)象或者類型所占的內(nèi)存字節(jié)數(shù)。在VC6中整型占4

個(gè)字節(jié),雙精度實(shí)型占8個(gè)字節(jié),所以選C)。

27.答案:D

【解析】C語(yǔ)言中沒(méi)有邏輯類型,若只處理"真"或"假"兩種邏輯值,可以使用整型數(shù)"1"或"0"

表示,故選D)。

28.答案:A

【解析】標(biāo)識(shí)符不能與C編譯系統(tǒng)已經(jīng)預(yù)定義的、具有特殊用途的保留標(biāo)識(shí)符(即關(guān)鍵字)

同名,否則程序在編譯時(shí)會(huì)出現(xiàn)錯(cuò)誤。題目源程序中使用了已經(jīng)預(yù)定義的關(guān)鍵字case,所以

將出現(xiàn)錯(cuò)誤。

29.答案:B

【解析】用int方法定義變量時(shí),編譯器僅為變量開辟存儲(chǔ)單元,并沒(méi)有在存儲(chǔ)單元中存

放任何值,此時(shí)變量中的值是無(wú)確定的,稱變量值"無(wú)意義"。因此,本題正確答案為B)。

30.答案:C

【解析】定義變量a和變量b為double類型,并對(duì)其賦初值。變量之間應(yīng)以","分隔,定

義關(guān)鍵字與變量名之間應(yīng)以空格分隔,語(yǔ)句應(yīng)以";"結(jié)尾。

31.答案:D

【解析】在ANSI標(biāo)準(zhǔn)中,long、int和short分別占用4、2和2個(gè)字節(jié)。但實(shí)際上對(duì)于某些

C編譯系統(tǒng),int和short卻都實(shí)際占用4個(gè)字節(jié)。所以說(shuō)各種類型數(shù)據(jù)占用內(nèi)存大小是由選

擇何種C編譯系統(tǒng)決定的。故本題答案為D)。

32.答案:D

【解析】在C語(yǔ)言所有的運(yùn)算符中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。C語(yǔ)言中區(qū)分大小寫,所

以APH和aph是兩個(gè)不同的變量。賦值表達(dá)式a=b表示將b的值付給a,而b本身的值保

持不變;通過(guò)鍵盤可以向計(jì)算機(jī)輸入允許的任何類型的數(shù)據(jù)。選項(xiàng)D)中當(dāng)從鍵盤輸入數(shù)據(jù)

時(shí),對(duì)于整型變量可以輸入整型數(shù)值和字符,對(duì)于實(shí)型變量可以輸入實(shí)型數(shù)值和整型數(shù)值等。

33.答案:D

【解析】C語(yǔ)言中算術(shù)運(yùn)算符的結(jié)合性均為自左向右。選項(xiàng)D)中表達(dá)式計(jì)算結(jié)果是

2*a*b*d/c,和題目要求的代數(shù)式不一致,因此選項(xiàng)D)不能正確表示題目所給的代數(shù)式內(nèi)容。

34.答案:A

【解析】在C語(yǔ)言中,"%"運(yùn)算符兩側(cè)的運(yùn)算數(shù)必須是整型。

35.答案:B

【解析】為了滿足運(yùn)算,表達(dá)式需要轉(zhuǎn)化類型,此表達(dá)式的轉(zhuǎn)化結(jié)果是double型。

36.答案:D

【解析】C語(yǔ)言中,字符數(shù)據(jù)參加運(yùn)算時(shí),實(shí)際上是其ASCII碼參與運(yùn)算。大寫字母的ASCH

碼比其對(duì)應(yīng)的小寫字母的ASCII碼小32。因此大寫字母轉(zhuǎn)化為小寫字母只需將其加上32即

可。所以選項(xiàng)B)、C)都符合條件,因?yàn)樽兞縞中存儲(chǔ)的是大寫字母,所以的值一定小

于26,故選項(xiàng)A)與選項(xiàng)C)的含義相同。

37.答案:C

【解析】根據(jù)混合運(yùn)算規(guī)則,如果有一個(gè)數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)

化為double型,運(yùn)算的結(jié)果最終也是double型。

38.答案:B

【解析】(int)((double)9/2)的值為4,(9)%2的值為1,因此(int)((double)9/2)—(9)%2的值為

3。

39.答案:A

【解析】這道題目主要考查賦值表達(dá)式,對(duì)于賦值表達(dá)式來(lái)說(shuō),賦值號(hào)『"的左邊一定為變

量名,右邊為一個(gè)C語(yǔ)言合法的表達(dá)式。

40.答案:B

【解析】A)選項(xiàng)中如果x與y的值相等那么取余時(shí)就會(huì)有除數(shù)為0的情況。C)選項(xiàng)中取余

的兩個(gè)數(shù)據(jù)都應(yīng)為整數(shù),不能有一方為實(shí)型變量,而a*y的結(jié)果為double型。D)選項(xiàng)表達(dá)

式本身就錯(cuò)誤,不能給表達(dá)式賦值。所以,本題答案為B)。

41.答案:D

【解析】題干中的表達(dá)式可以分解為以下表達(dá)式:①a=9:②a=a-a即a=9-9,此時(shí)a的值

為0;③a=a+a即a=0+0,此時(shí)a的值為0?故本題的答案為D)。

42.答案:C

【解析】C語(yǔ)言中取余運(yùn)算符兩側(cè)的操作數(shù)只能是整型(若為char型,則會(huì)自動(dòng)轉(zhuǎn)換成整型)。

43.答案:B

【解析】x-=x+x可化為:x=x-(x+x),由于x初始值為10,所以計(jì)算后,x=10-20=-10,因

此選B)?

44.答案:C

【解析】求余運(yùn)算符"%"兩邊的運(yùn)算對(duì)象必須是整型,而選項(xiàng)B)和D)中"%"兩邊的運(yùn)算對(duì)

象有浮點(diǎn)整數(shù)據(jù),所以選項(xiàng)B)和D)是錯(cuò)誤的表達(dá)式;在選項(xiàng)A)中賦值表達(dá)式的兩邊出現(xiàn)相

同的變量x,也是錯(cuò)誤的;選項(xiàng)C)是一個(gè)逗號(hào)表達(dá)式,所以正確答案為C)。

45.答案:A

【解析】賦值運(yùn)算符左側(cè)的操作數(shù)必須是一個(gè)變量,而不能是表達(dá)式或者常量,選項(xiàng)C)和

D)錯(cuò)誤。"%"運(yùn)算符兩側(cè)都應(yīng)當(dāng)是整型數(shù)據(jù),選項(xiàng)B)錯(cuò)誤。故本題答案為A)。

46.答案:B

【解析[選項(xiàng)A)中包含一個(gè)不合法的運(yùn)算符選項(xiàng)C)應(yīng)改為(int)18.5%3;選項(xiàng)D)可理

解為兩個(gè)表達(dá)式:2+7土+1)和2=2+7,其中第?個(gè)是錯(cuò)的,因?yàn)镃語(yǔ)言規(guī)定賦值號(hào)的左邊只能

是單個(gè)變量,不能是表達(dá)式或常量等。因此,正確答案是選項(xiàng)B),它實(shí)際上相當(dāng)于a=(b=c+2),

進(jìn)而可分解為兩個(gè)表達(dá)式:6=。+2和2=L

47.答案:B

【解析】本題中a的值為6,b的值為8,最后s的值為8,s*=s等價(jià)于s=s*s。

48.答案:C

【解析】本題中,程序先執(zhí)行語(yǔ)句x=1.2;,根據(jù)賦值運(yùn)算的類型轉(zhuǎn)換規(guī)則,先將double型

的常量1.2轉(zhuǎn)換為int型,即取整為1,然后將1賦值給變量X。接下來(lái)執(zhí)行語(yǔ)句y=(x+3.8)/5.0;

根據(jù)運(yùn)算符的優(yōu)先級(jí),先計(jì)算小括號(hào)內(nèi),再計(jì)算除法,最后執(zhí)行賦值運(yùn)算。小括號(hào)內(nèi)的運(yùn)算

過(guò)程:先將整型變量x的值1轉(zhuǎn)換為double型1。然后與3.8進(jìn)行加法運(yùn)算,得到中間結(jié)

果4.8。接著進(jìn)行除法運(yùn)算4.8/5.0,其結(jié)果小于1.0,這里沒(méi)有必要計(jì)算出精確值,因?yàn)榻又?/p>

進(jìn)行賦值運(yùn)算,賦值號(hào)左邊變量y的類型為整型,于是對(duì)這個(gè)小于1.0的中間結(jié)果進(jìn)行取整,

結(jié)果為0,于是變量y的值為0,d*y的值也為0。

49.答案:D

【解析】011轉(zhuǎn)換成十進(jìn)制為9,并且k++表示先使用k的值,再使k的值加1,所以輸出

值為9。

50.答案:C

【解析】逗號(hào)表達(dá)式的求解過(guò)程是:按表達(dá)式順序從左往右依次求解。本題中由于判斷條

件a>b的值為假,所以選項(xiàng)A)、B)、D)中if語(yǔ)句后面的語(yǔ)句均未被執(zhí)行,而C)中的后兩

條語(yǔ)句a=b和b=c被執(zhí)行,因此選項(xiàng)C)的執(zhí)行效果與其他三個(gè)不同。

51.答案:D

【解析】本題考查逗號(hào)運(yùn)算符的運(yùn)算方式,逗號(hào)運(yùn)算符的作用是將若干表達(dá)式連接起來(lái),

它的優(yōu)先級(jí)別在所有運(yùn)算符中是最低的,結(jié)合方向?yàn)?自左至右"。A)項(xiàng)和C)項(xiàng)的結(jié)果是一

樣的,可展開為:x=x*(x+l)=2*3=6;B)項(xiàng)中先執(zhí)行x++,因?yàn)?+運(yùn)算符有自加功能,逗

號(hào)之前執(zhí)行后x的值為3,逗號(hào)后的值就是整個(gè)表達(dá)式的值,即6;D)項(xiàng)逗號(hào)之前并未給x

賦值,所以表達(dá)式的值就是x+=2的值,即4。因此,本題答案為D)。

—.填空題

1.答案:3|

【解析】因?yàn)?/2的結(jié)果等于1,再進(jìn)行強(qiáng)制類型轉(zhuǎn)換為雙精度型,其值等于1.0,再加上

05等于1.5;對(duì)于(int)1.99*2來(lái)說(shuō),先把1.99進(jìn)行類型轉(zhuǎn)換為整型,得到1,再乘以2,得

到2,再與前面的1.5相加等于3.5,再進(jìn)行整型轉(zhuǎn)換得到3。

2.答案:4|

【解析】計(jì)算5/2=2,其結(jié)果先轉(zhuǎn)換為double類型,即2.000000,然后加上2.5為4.5000000,

再轉(zhuǎn)換為int型,所以結(jié)果為4。

3.答案:a=-b|

【解析】a-=a+b等價(jià)于a=a-(a+b),等價(jià)于a=-b。

4.答案:5|

【解析】a++的含義是在使用a值以后,使a值加1,所以a++的值為5。

5.答案:3|

【解析】本題考查的是C語(yǔ)言逗號(hào)表達(dá)式的相關(guān)知識(shí)。程序在計(jì)算逗號(hào)表達(dá)式時(shí),從左到

右計(jì)算由逗號(hào)分隔各表達(dá)式的值,整個(gè)逗號(hào)表達(dá)式的值等于其中最后一個(gè)表達(dá)式的值。本題

中,首先i被賦值為2,再自加1,最后i++的值計(jì)算為3。

6.答案:a=14|

【解析】本題考查的是表達(dá)式的優(yōu)先級(jí)問(wèn)題。先計(jì)算表達(dá)式3*5=15,再計(jì)算a+4=14,將數(shù)

據(jù)14賦值給a,根據(jù)printf()函數(shù)內(nèi)的輸出格式控制串,最后的輸出結(jié)果應(yīng)為"a=14"。

7.答案:25|

【解析】++和-做前綴使用的時(shí)候,先對(duì)變量進(jìn)行增1或減1,之后進(jìn)行其他的運(yùn)算。

第3章順序結(jié)構(gòu)程序設(shè)計(jì)

選擇題

1.答案:A

【解析】在題目中以字符串的形式給字符數(shù)組賦值,所以字符數(shù)組name的值為L(zhǎng)ili。

2.答案:C

【解析】變量x的初值為八進(jìn)制數(shù)011,轉(zhuǎn)換成十進(jìn)制數(shù)為9,輸出時(shí)再加1,所以輸出結(jié)

果為10o

3.答案:D

【解析】執(zhí)行第一個(gè)printf語(yǔ)句時(shí)、b=a+b=l,所以輸出1,執(zhí)行第二個(gè)printf語(yǔ)句時(shí),a

=2*b=2,所以輸出結(jié)果為2。

4.答案:A

【解析】cl輸出字符的ASCII碼比字母A大4,即字母E;c2以十進(jìn)制數(shù)字形式輸出,因

此可以判斷本題答案為A)。

5.答案:A

【解析】本題考查printf函數(shù)的輸出格式控制符,%m.nf表示指定輸出的實(shí)型數(shù)據(jù)的寬度

為m(包含小數(shù)點(diǎn)),并保留n位小數(shù)。當(dāng)輸出數(shù)據(jù)的小數(shù)位大于n時(shí),截去右邊多余的小數(shù),

并對(duì)截去的部分的第一位小數(shù)做四舍五入處理;當(dāng)輸出數(shù)據(jù)的小數(shù)位小于n時(shí);在小數(shù)的最

右邊補(bǔ)0,輸出數(shù)據(jù)的小數(shù)部分寬度為n。若給出的總寬度m小于n加上整數(shù)位數(shù)和小數(shù)點(diǎn),

則自動(dòng)突破m的限制;反之,數(shù)字右對(duì)齊,左邊補(bǔ)空格。本題中3.141593數(shù)值長(zhǎng)度為8,

小數(shù)位數(shù)為6,因此左端沒(méi)有空格,故正確答案為A)。

6.答案:B

【解析】由于scanf格式輸入語(yǔ)句中,使用逗號(hào)作為輸入值的間隔,所以在輸入時(shí)需要使用

逗號(hào)隔開。只有選項(xiàng)B)中沒(méi)有使用逗號(hào),故本題選B)。

7.答案:D

【解析】輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變

量以帶符號(hào)的十進(jìn)制整型數(shù)輸出。所以第一個(gè)輸出語(yǔ)句輸出的結(jié)果為a,97,第二個(gè)輸出語(yǔ)句

輸出的結(jié)果為k=12,所以選項(xiàng)D)為正確答案。

8.答案:C

【解析】在C語(yǔ)言中,字符型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是其ASCH碼值。當(dāng)需要以整型格

式輸出字符時(shí),輸出的也是其ASCII碼值。字符A和D的ASCII碼值分別為65和68。故

本題答案為C)o

9.答案:C

【解析】本題綜合考查了輸入函數(shù)的使用。scanf函數(shù)會(huì)將空格視為分隔符,getchar函數(shù)只

能輸入單個(gè)字符,getc函數(shù)是文件操作函數(shù),顯然都不符合題意。通過(guò)gets函數(shù)輸入字符串

時(shí),輸入的空格被認(rèn)為是字符串的一個(gè)字符。故本題答案為C)。

10.答案:D

【解析】若在scanf的格式化控制串中插入了其他字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置

原樣輸入這些字符。格式化輸入函數(shù)必須嚴(yán)格按照雙引號(hào)里面的格式進(jìn)行輸入。在格式化輸

出函數(shù)中,格式控制串中除了合法的格式說(shuō)明外,可以包含任意的合法字符。

11.答案:D

【解析】putchar(cl)輸出1,putchar(c2)輸出2,printf("%c%c\n",c5,c6)輸出45。

12.答案:B

【解析】scanf函數(shù)的一般格式是:

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

該格式中,地址表列中應(yīng)是從終端讀入一個(gè)字符。

13.答案:B

【解析】getchar函數(shù)的作用是從終端讀入一個(gè)字符。

二.填空題

1.答案:09|

【解析】因?yàn)樽址?的ASCII碼值等于48,而從鍵盤輸入48,就相當(dāng)于給字符cl賦值0,

再執(zhí)行cl加9,得到c2的值等于9,所以輸出結(jié)果為09。

2.答案:2008|

【解析】整型變量a的值為200,b的值"010"是用八進(jìn)制表示的"10"即十進(jìn)制的"8",最后輸

出格式均為%d,即十進(jìn)制格式,所以輸出為"2008"。

3.答案:15|

【解析】可以指定輸入數(shù)據(jù)所占列寬,系統(tǒng)自動(dòng)按所指定的格式截取所需數(shù)據(jù)。%2d即將

輸入數(shù)據(jù)的2個(gè)列寬的數(shù)據(jù)賦給變量x,因?yàn)檩斎氲臑椤?234567",所以前兩個(gè)列寬的數(shù)據(jù)

為12,即x的值為12,同理%Id即把輸入數(shù)據(jù)中前兩個(gè)列寬所在數(shù)據(jù)后的一個(gè)列寬的數(shù)據(jù)

賦給變量y,所以y的值為3,所以x+y的值為15。

4.答案:a=%d\nb=%d\n|

【解析】"%d"表示按十進(jìn)制整型輸出,"\n"表示回車換行。

5.答案:1234|

【解析】本題scanf函數(shù)的輸出格式說(shuō)明中,變量a和b的格式控制都為%2d,即a和b都

只獲取兩個(gè)字符的輸入。輸入的前4個(gè)字符被分別賦給了a和b,其值分別為12和34。

第4章選擇結(jié)構(gòu)程序設(shè)計(jì)

一.選擇題

1.答案:B

【解析】在本題中,選項(xiàng)B)實(shí)際是先計(jì)算關(guān)系表達(dá)式,"Ay=c"的值是0還是1,再比較該值

與字符Z之間的大小關(guān)系。顯然不能實(shí)現(xiàn)題目所要求的功能,而選項(xiàng)A)、C)、D)都可以。

故本題答案為B)。

2.答案:D

【解析】因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項(xiàng)A)、C)中

表達(dá)式的結(jié)果為真,不為0;對(duì)于選項(xiàng)B)來(lái)說(shuō),x除以2的商不會(huì)等于0;選項(xiàng)D)中表達(dá)式

的結(jié)果為假,即等于0。

3.答案:A

【解析】當(dāng)A==l時(shí),(A=1)||(A!=1)為真;當(dāng)A!=l時(shí),(A=1)||(A!=1)也為真,故正確答案

為A。

4.答案:C

【解析】根據(jù)題目所給條件可知,x||y為1,w<H為結(jié)果為1。因此正確答案為C)。

5.答案:B

【解析】滿足表達(dá)式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當(dāng)變量c的值不為2,4,6

時(shí),其值只能為3或5,所以表達(dá)式c!=3和c!=5中至少有一個(gè)為真,即不論c為何值,

選項(xiàng)B)中表達(dá)式的值都為"真"。正確答案為B)。

6.答案:B

【解析】C語(yǔ)言的字符以其ASCII碼的形式存在,所以要確定某個(gè)字符是大寫字母,只要確

定它的ASCII碼在A和Z之間就可以了,選項(xiàng)A)和C)符合要求。函數(shù)isalpha用來(lái)確定一

個(gè)字符是否為字母,大寫字母的ASCII碼值的范圍為65?90,所以如果一個(gè)字母的ASCH

碼小于91,那么就能確定它是大寫字母。

7.答案:D

【解析】在C語(yǔ)言中,邏輯運(yùn)算符有4個(gè),它們分別是:?。ㄟ壿嫹牵?、11(邏輯或)、&&(邏輯

與)、-(異或)。在位運(yùn)算里面還有&(位與)、|(位或)的運(yùn)算。本題考查邏輯與運(yùn)算符的用法,

在表達(dá)式x=(a&&b)&&(c〈E);中,先判斷a&&b條件,邏輯與條件的兩邊都要保證為1,即

a和b都成立,當(dāng)然c<B是成立的,顯然,該表達(dá)式的值為1。

8.答案:D

【解析】字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)部是以ASCII碼存儲(chǔ)的,英文大寫字母和小寫字母在ASCH

碼表中都是連續(xù)的。大寫字母A?Z是從65?90,所以只要變量cl大于A并且小于Z就能

保證其為大寫字母。

9.答案:D

【解析】C語(yǔ)言中if(表達(dá)式)中表達(dá)式的值可以是任意合法的表達(dá)式,如果表達(dá)式的值為0

表示條件為假,如果表達(dá)式的值非0表示條件為真。

10.答案:B

【解析】if—else控制結(jié)構(gòu)中,else總是與最近的未配對(duì)的if匹配。本題的執(zhí)行過(guò)程為:如

果輸入整數(shù)小于3則不進(jìn)行任何操作,否則判斷是否不等于10,若為真則進(jìn)行輸出。因此

程序輸出的數(shù)據(jù)為大于3且不等于10的整數(shù)。

11.答案:A

【解析】該題考查if條件語(yǔ)句,當(dāng)條件為真時(shí),將b值賦給a,c值賦給b:當(dāng)條件為假時(shí),

將a值賦給c。該題中if條件為假,所以將a的值賦給c,故a=10b=50c=10。

12.答案:B

【解析】?jī)蓚€(gè)if語(yǔ)句的判斷條件都不滿足,程序只執(zhí)行了c=a這條語(yǔ)句,所以變量c的值

等于3,變量b的值沒(méi)能變化,程序輸出的結(jié)果為3,5,3。所以正確答案為選項(xiàng)B)。

13.答案:B

【解析】對(duì)于選項(xiàng)B)來(lái)說(shuō),若x的值小于0,則有兩次調(diào)用sqrt()函數(shù),這很明顯不符合題

意。通過(guò)分析可知,本題答案為B)。

14.答案:C

【解析】本題考查簡(jiǎn)單的if…else語(yǔ)句。先執(zhí)行條件if(a<b),顯然不成立,再執(zhí)行else語(yǔ)句。

15.答案:D

【解析】x=l,if和elseif的條件都不滿足,故y值不改變輸出。

16.答案:C

【解析】程序首先執(zhí)行第一個(gè)判斷語(yǔ)句,a==l成立;b++==2,先判斷b是否為2,再進(jìn)行

b加1操作,執(zhí)行后b的值為3。繼續(xù)執(zhí)行第二個(gè)判斷語(yǔ)句,注意程序此時(shí)進(jìn)行邏輯或運(yùn)算,

b!=2的值為真,因此條件表達(dá)式b!=2||c-!=3的值為真,程序便不再執(zhí)行第二個(gè)邏輯語(yǔ)

句c-!=3,而直接進(jìn)行輸出操作。因此,本題正確答案為C)。

17.答案:D

【解析】該題目考查if條件語(yǔ)句。else語(yǔ)句和最近的一個(gè)if語(yǔ)句配對(duì)。由于x>y為假,所

以直接執(zhí)行最后一行代碼。

18.答案:D

【解析】if...else語(yǔ)句的執(zhí)行過(guò)程如下,首先計(jì)算if后面一對(duì)圓括號(hào)內(nèi)表達(dá)式的值,若表達(dá)

式的值為非0,執(zhí)行if子句,然后跳過(guò)else子句,去執(zhí)行if語(yǔ)句后的下一條語(yǔ)句;若表達(dá)式

的值為0,跳過(guò)if子句,去執(zhí)行else子句,接著去執(zhí)行if語(yǔ)句后的下一條語(yǔ)句。C語(yǔ)言的語(yǔ)

法規(guī)定,else子句總是與前面最近的不帶else的if匹配,與書寫格式無(wú)關(guān),本題目的后一個(gè)

if-else相當(dāng)于嵌套在第一個(gè)if子句里,相當(dāng)于x<y&&y>0時(shí),z=0;當(dāng)x<y&&y>=0時(shí),z=z+l。

19.答案:A

【解析】函數(shù)調(diào)用相當(dāng)于《2,3),程序運(yùn)算應(yīng)得結(jié)果為"-1"。

20.答案:C

【解析】該題目測(cè)驗(yàn)考生對(duì)if…elseif結(jié)構(gòu)的理解,比較簡(jiǎn)單。x的值滿足x<10.0的關(guān)系,

所以程序?qū)?zhí)行y=1.0/x;語(yǔ)句,y的值應(yīng)該等于0.5。最后,用printf函數(shù)輸出時(shí),%f的輸

出格式為小數(shù)點(diǎn)后保留6位。

21.答案:A

【解析】表達(dá)式k=a>b?(b>c?1:0):0表示:如果(a>b)條件為真,則k取值(b>c?1:

0),否則k取值0:當(dāng)a>b的情況下,如果b>c,則k值為1,否則為0。所以該表達(dá)式與選

項(xiàng)A)功能相同。

22.答案:B

【解析】當(dāng)表達(dá)式EXP為非0值時(shí)條件成立,即執(zhí)行語(yǔ)句計(jì)+;,當(dāng)EXP等于0時(shí)執(zhí)行語(yǔ)句

j-;o這就等同于條件表達(dá)式"(EXP!=0)?i++:j--;"。故本題答案為B)。

23.答案:C

【解析】switch。中括號(hào)內(nèi)的變量類型應(yīng)該與下面case語(yǔ)句后的常量保持類型一致。使用

(int)x,可以將x強(qiáng)制轉(zhuǎn)換成整型,然后與整型2做取余運(yùn)算還是整型數(shù)據(jù)。若與數(shù)據(jù)2.0

做取余運(yùn)算,按照轉(zhuǎn)換原理:向高精度的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,結(jié)果就變成了實(shí)型數(shù)據(jù)。綜上

所述,本題C)正確,B)錯(cuò)誤。A),D)均不滿足switch語(yǔ)句的原則。

24.答案:B

【解析】switch(a==l)語(yǔ)句中,若a等于1,貝IIa=l為"真",則應(yīng)該進(jìn)行a=b的操作,故選

項(xiàng)B)錯(cuò)誤。

25.答案:D

【解析】本題考查了switch結(jié)構(gòu)的內(nèi)容。在C語(yǔ)言中,程序執(zhí)行完一個(gè)case標(biāo)號(hào)的內(nèi)容后,

如果沒(méi)有break語(yǔ)句,控制結(jié)構(gòu)會(huì)轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是

起語(yǔ)句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼

續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支。最后a和b的值分別為2和1。

26.答案:C

【解析】C語(yǔ)言中,switch語(yǔ)句專用于實(shí)現(xiàn)多分支結(jié)構(gòu)程序,其特點(diǎn)是各分支清晰且直觀。

switch后面括號(hào)中可以是任何表達(dá)式,取其整數(shù)部分與各常量表達(dá)式進(jìn)行比較。常量表達(dá)式

中不能出現(xiàn)變量,且類型必須是整型、字符型或枚舉型,各常量表達(dá)式各不相同。

27.答案:C

【解析】本題主要對(duì)switch語(yǔ)句進(jìn)行了考查。switch語(yǔ)句的執(zhí)行過(guò)程為:進(jìn)入switch結(jié)構(gòu)

后,對(duì)條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入

口,執(zhí)行switch結(jié)構(gòu)中后面的各語(yǔ)句,直到遇到break語(yǔ)句,則跳出switch語(yǔ)句,如果各

case都不匹配時(shí),則執(zhí)行default后面的語(yǔ)句。本題中ch為字符H,所以caseH條件中的語(yǔ)

句將被執(zhí)行,由于沒(méi)有break語(yǔ)句,所以caseG后的語(yǔ)句也被執(zhí)行,由于同樣的缺少break

語(yǔ)句,所以default后的語(yǔ)句也被執(zhí)行了。

28.答案:A

【解析】switch語(yǔ)句的條件是"a%3=15%3=0",所以執(zhí)行case0后面的語(yǔ)句,m++;m=l,然

后就執(zhí)行break,跳出switch語(yǔ)句,所以最后輸出m的值為1。

二.填空題

1.答案:(x%3==0)&&(x%7==0)|

[解析]x%3==0能保證x是3的倍數(shù),x%7=0能保證x是7的倍數(shù),(x%3==0)&&(x%7=0)

能保證x是3的倍數(shù)并且x是7的倍數(shù)。

2.答案:10|

【解析】第個(gè)printf語(yǔ)句輸出的結(jié)果是邏輯表達(dá)式(x>0]|x<20)的值,顯然為真,即為1;

第二個(gè)printf語(yǔ)句輸出的是邏輯表達(dá)式(x>0&&x<20)的值,該值為假,即為0。

3.答案:0|

【解析】字符空格的ASCH碼不為0,所以本題中表達(dá)式!C的值為0,b=0&&l的結(jié)果顯然

為0。

4.答案:1,0|

【解析】與運(yùn)算兩邊的語(yǔ)句必須同時(shí)為真時(shí),結(jié)果才為真。當(dāng)執(zhí)行完if((++a〈0)&&!(b->=0))

時(shí),a、b的值已經(jīng)發(fā)生了變化。

5.答案:1|

【解析】在執(zhí)行邏輯表達(dá)式"j=!ch&&i++"時(shí),首先判斷j=!ch的值,因?yàn)?ch=$"不為0,所

以"j=!ch=0",編譯系統(tǒng)便不再計(jì)算表達(dá)式"i++"的值,i的值不變,仍為1。

6.答案:(a+b>c)&&(a+c>b)&&(b+c>a)|

【解析】三角形的條件是兩邊之和大于第三邊。要用"&&"指令連接三個(gè)條件,表示三個(gè)條

件都要滿足。

7.答案:4]

【解析】a==l為真,b!=2為假,c!=3為假,所以d=4。

8.答案:3|

【解析】C語(yǔ)言的語(yǔ)法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因?yàn)閤不大

于y,所以執(zhí)行printf("%d\n",z);語(yǔ)句。

9.答案:7|

【解析】此表達(dá)式為三目運(yùn)算符,++a的值為6,b-的值為6,則整個(gè)表達(dá)式的值為++a的值,

++a的值為7。清注意前綴++、--和后綴的區(qū)別。

10.答案:a=2,b=l|

【解析】本題考查了switch結(jié)構(gòu)的內(nèi)容。C語(yǔ)言中,程序執(zhí)行完一個(gè)case標(biāo)號(hào)的內(nèi)容后,

如果沒(méi)有break語(yǔ)句,控制結(jié)構(gòu)會(huì)轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是

起語(yǔ)句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼

續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支,最后a和b的值分別為2和1

第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

選擇題

1.答案:B

【解析】當(dāng)y減為1時(shí)判斷while(y-),此時(shí)滿足條件,但是y變成0。下次循環(huán)判斷while(y-)

時(shí),因?yàn)閥為0不滿足條件跳出循環(huán),但是此時(shí)也要執(zhí)行y-,所以y變成了-1。打印輸出

時(shí)輸出-1。

2.答案:D

【解析】本題考查邏輯運(yùn)算符的"短路"現(xiàn)象,山于k的值為0,表達(dá)式首先去求k++的值,

因?yàn)楸磉_(dá)式k++的值為0,系統(tǒng)完全可以確定邏輯表達(dá)式的運(yùn)算結(jié)果總是為0,因此將跳過(guò)

nH>2,不再對(duì)它進(jìn)行求值,即k的值加1,n的值不變。

3.答案:D

【解析】在本題中,程序每執(zhí)行一次循環(huán)x的值就減2,循環(huán)共執(zhí)行4次。當(dāng)x的值為8,4,2

時(shí),printf語(yǔ)句先輸出x的值,再將x的值減1。而當(dāng)x為6時(shí),if語(yǔ)句條件成立,程序先

將x的值減1,再將其輸出。所以輸出結(jié)果為選項(xiàng)D)。

4.答案:A

【解析】選項(xiàng)A)中變量n的值,先自加1,再進(jìn)行循環(huán)條件判斷,此時(shí)循環(huán)條件n<=0不

成立,跳出循環(huán)。所以正確答案為A)。

5.答案:C

【解析】本題考查變量的自加"++"和自減"-"問(wèn)題。當(dāng)y的值為9、6或3時(shí),if語(yǔ)句的條件

成立,執(zhí)行輸出語(yǔ)句,輸出表達(dá)式-y的值,y的自減要先于輸出語(yǔ)句的執(zhí)行,故輸出結(jié)果

為852。因此,本題答案為C)。

6.答案:B

【解析】t=l是將t賦值為1,所以循環(huán)控制表達(dá)式的值為1。判斷t是否等于1時(shí),應(yīng)用t==l,

注意"="與"=="的用法。

7.答案:D

【解析】選項(xiàng)A)的循環(huán)表達(dá)式的條件永久為1,并且小于100的數(shù)與100取余不超過(guò)99,

所以在循環(huán)體內(nèi)表達(dá)式i%100+l的值永遠(yuǎn)不大于100,break語(yǔ)句永遠(yuǎn)不會(huì)執(zhí)行,所以是死

循環(huán);選項(xiàng)B)的括號(hào)內(nèi)沒(méi)有能使循環(huán)停下來(lái)的變量增量,是死循環(huán);選項(xiàng)C)中先執(zhí)行k++,

使k=10001,從而使循環(huán)陷入死循環(huán)。

8.答案:B

【解析】本題考查邏輯非運(yùn)算符和不等于運(yùn)算符的區(qū)別,邏輯非運(yùn)算符"!"的優(yōu)先級(jí)大于不

等于運(yùn)算符"!="的優(yōu)先級(jí)。

9.答案:A

【解析】整個(gè)程序中只有對(duì)i增加的語(yǔ)句而沒(méi)有對(duì)i減少的語(yǔ)句,所以2、3都不可能出現(xiàn),

選項(xiàng)B)和D)錯(cuò)誤。而i=5時(shí)第一個(gè)if語(yǔ)句的表達(dá)式為假,所以選項(xiàng)C)也錯(cuò)誤。

10.答案:A

【解析】這道試題主要考查了switch和break語(yǔ)句,當(dāng)變量s的值為1時(shí),執(zhí)行case1、case

2兩條語(yǔ)句,輸出65;當(dāng)變量s的值為2時(shí),執(zhí)行case2語(yǔ)句,輸出6;變量S的值為3時(shí),

執(zhí)行case3、default兩條語(yǔ)句,輸出64;變量s的值為4時(shí),執(zhí)行default語(yǔ)句,輸入5;變

量s的值為5時(shí);執(zhí)行default語(yǔ)句,輸出6;變量s的值為0時(shí),程序運(yùn)行結(jié)束。

11.答案:D

【解析】當(dāng)產(chǎn)生的隨機(jī)數(shù)n為。時(shí),執(zhí)行case。:exit(O)這條語(yǔ)句,結(jié)束程序的運(yùn)行。

12.答案:A

【解析】第一次循環(huán)時(shí),k=l,在switch語(yǔ)句中,先執(zhí)行default后面的語(yǔ)句,即c=c+k

=1,因?yàn)闆](méi)有break語(yǔ)句,所以不會(huì)跳出switch結(jié)構(gòu),會(huì)接著執(zhí)行case2后面的語(yǔ)句,即c

=c+l=2,然后跳出switch;第二次循環(huán)時(shí),k=2,直接執(zhí)行case2后面的語(yǔ)句,即c=c+l

=3,然后跳出switch語(yǔ)句,結(jié)束循環(huán),執(zhí)行輸出語(yǔ)句。

13.答案:B

【解析】循環(huán)變量i從。依次遞增到5,依次輸出字母A,b,C,d,E,f。

14.答案:C

【解析】根據(jù)程序順序執(zhí)行的次序,當(dāng)程序執(zhí)行到while這條語(yǔ)句,根據(jù)while語(yǔ)句中的結(jié)

束循環(huán)的條件是"輸入回車鍵時(shí),結(jié)束循環(huán)",所以當(dāng)按回車鍵后,程序才執(zhí)行while語(yǔ)句的

下-一條語(yǔ)句。

15.答案:D

【解析】A)項(xiàng)每進(jìn)行一次循環(huán)判斷一個(gè)字符是否為回車,如果不是就進(jìn)行下一次判斷,因

此可以統(tǒng)計(jì)出輸入字符個(gè)數(shù);B)項(xiàng)與A)項(xiàng)的判斷相似,僅為是否將讀入的數(shù)據(jù)賦值給一個(gè)

變量,因此并不影響判斷結(jié)果;C)項(xiàng)用for循環(huán)來(lái)判斷,與B)項(xiàng)的判斷完全相同,可以統(tǒng)計(jì)

出輸入字符個(gè)數(shù);D)項(xiàng)中ch=getchar()是給變量ch賦初值,如果輸入回車,則程序只循環(huán)

一次,如果輸入一個(gè)非回車的字符,則程序進(jìn)入死循環(huán)。因此,本題正確答案為D)。

16.答案:D

【解析】初始值a=l,b=2,第一次循環(huán):b=b+a=2+l=3,a=a+2=1+2=3,a=a+l=3+l=4;第

二次循環(huán):b=b+a=3+4=7,a=a+2=4+2=6,a=a+l=6+l=7;第三次循環(huán):b=b+a=7+7=14,

a=a+2=7+2=9,a=a+l=9+l=10,故本題答案選D)。

17.答案:D

【解析】本題是計(jì)算50之內(nèi)的自然數(shù)相加之和,題中if語(yǔ)句括號(hào)中的條件表達(dá)

式!(i%5)&&!(i%3)表明只有能同時(shí)被5和3整除的數(shù)才符合相加的條件,1?49之間滿足這

個(gè)條件的只有15、30和45,因?yàn)閟的初始值為1,所以s=l+15+30+45=91。

18.答案:D

【解析】本題考查for循環(huán)語(yǔ)句,注意第二個(gè)for語(yǔ)句的后面有一個(gè)分號(hào),即printf函數(shù)不

屬于循環(huán)體,無(wú)論循環(huán)執(zhí)行多少次,printff*")語(yǔ)句只執(zhí)行一次。因此,本題正確答案為D)。

19.答案:B

【解析】本題考查循環(huán)語(yǔ)句的嵌套以及條件的判斷問(wèn)題。在程序中,內(nèi)層循環(huán)判斷條件為

"jv=i",而j的初值為3,故當(dāng)i的值為1和2時(shí),內(nèi)層循環(huán)體都不會(huì)被執(zhí)行。只有當(dāng)i和j

都等于3時(shí)才會(huì)執(zhí)行一次。m的值為55對(duì)3取模,計(jì)算結(jié)果為1。故本題答案為B)o

20.答案:A

【解析】第一次循環(huán)i=Lj=3和j=2時(shí)都能執(zhí)行m*=i*j,此時(shí)得到m的值為6;然后進(jìn)行

第二次循環(huán)i=2,j=3時(shí)會(huì)執(zhí)行break語(yǔ)句,內(nèi)部循環(huán)直接結(jié)束,此時(shí)i再加1,也會(huì)導(dǎo)致退出

外部循環(huán),所以最終結(jié)果m的值為6。

21.答案:A

【解析】本題考查了continue和break語(yǔ)句在循環(huán)語(yǔ)句中的作用。break語(yǔ)句的作用是結(jié)束

本層循環(huán),而continue語(yǔ)句的作用是結(jié)束本次循環(huán)直接進(jìn)入到下次循環(huán)。

22.答案:B

【解析】此程序考查了for循環(huán)和x++。對(duì)于大循環(huán),有兩個(gè)xH,其中循環(huán)3次,對(duì)于小循

環(huán),循環(huán)三次,但是運(yùn)行了兩次x++,所以最后結(jié)果是6+2=8。

23.答案:D

【解析】continue語(yǔ)句的作用是結(jié)束本次循環(huán),直接進(jìn)入下次循環(huán)。

24.答案:C

【解析】本題考查變量的自加"++"和自減"一"問(wèn)題。當(dāng)y的值為9、6或3時(shí),if語(yǔ)句的條件

成立,執(zhí)行輸出語(yǔ)句,輸出表達(dá)式-y的值,y的自減要先于輸出語(yǔ)句執(zhí)行,故輸出結(jié)果為

852o

25.答案:A

【解析】本題主要考查switch語(yǔ)句的使用方法。switch語(yǔ)句的執(zhí)行過(guò)程為:進(jìn)入switch結(jié)

構(gòu)后,對(duì)條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為

入口,執(zhí)行switch結(jié)構(gòu)中后面的各語(yǔ)句,直到遇到break語(yǔ)句,則跳出switch語(yǔ)句,如果各

case都不匹配時(shí),則執(zhí)行default后面的語(yǔ)句。

26.答案:A

【解析】本題考查用于多分支選擇的switch語(yǔ)句。

27.答案:A

【解析】因?yàn)樽兞康某跏贾捣謩e為"k=5,n=0",所以程序第一次進(jìn)入循環(huán)時(shí),執(zhí)行default

語(yǔ)句,這時(shí)k=4,執(zhí)行"case4:"這個(gè)分支,結(jié)果是"n=2,k=3",打印出2;程序然后進(jìn)行第

二次循環(huán),這時(shí)"n=2,k=3",執(zhí)行"case3:"這個(gè)分支,結(jié)果是"n=3,k=2",打印出3;程序

進(jìn)行第三次循環(huán),這時(shí)"n=3,k=2",執(zhí)行"case2:case4:"這兩個(gè)分支,結(jié)果是"n=5,k=l",

打印出5,這時(shí)因?yàn)閚=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運(yùn)行結(jié)束,故輸出結(jié)

果為235。

28.答案:D

【解析】本題考查用于多分支選擇的switch語(yǔ)句。

—.填空題

1.答案:不能|

【解析】cl,c2被定義為字符類型,當(dāng)輸入65時(shí)是以字符形式讀入,只能讀到字符6,6的

ASCH碼值是54,滿足while(cl<6511c2>90),所以執(zhí)行scanf("%c",&cl),即不能輸出結(jié)果。

2.答案:4]

【解析】執(zhí)行調(diào)用語(yǔ)句prt('*',24)后,函數(shù)prt中的形參變量n的值等于24,而在1到24

之間是6的倍數(shù)的整數(shù)有:6,12,18,24,所以共輸出4行*號(hào)。

3.答案:lAbCeDf2dF|

【解析】本題考查邏輯運(yùn)算和ASCII碼。While循環(huán)的功能是對(duì)輸入的第偶數(shù)個(gè)且為小寫字

母的字符進(jìn)行處理,將小寫字母轉(zhuǎn)化為大寫,因此答案為lAbCeD£2dF。

4.答案:54321|

【解析】將一個(gè)正整數(shù)對(duì)10進(jìn)行取模運(yùn)算的結(jié)果就是該整數(shù)的個(gè)位數(shù)字,被10整除的結(jié)果

則是除去個(gè)位的其余數(shù)位。本題通過(guò)一個(gè)while循環(huán)反復(fù)取n的個(gè)位并將其輸出,依次輸出

為54321。

5.答案:k<=n;k++|

【解析】本題要求將一個(gè)fbr循環(huán)改成while循環(huán)。這首先要保證循環(huán)條件相同,在fbr循

環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會(huì)加1。而while循環(huán)則沒(méi)有,故需在循環(huán)增

加改變k的數(shù)值的語(yǔ)句"k++;%

6.答案:

【解析】在for循環(huán)語(yǔ)句中,自變量k

溫馨提示

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