

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第一章C 語言基礎(chǔ)知識考點(diǎn)跟蹤1.答案:A解析:在 C 語言中,合法標(biāo)識符的命名規(guī)則是:標(biāo)識符可以由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線。在C 語言程序中,凡是要求標(biāo)識符的地方都必須按此規(guī)劃命名。在 C 語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為兩個(gè)不同的標(biāo)識符。在選 擇標(biāo)識符時(shí),應(yīng)注意到“見名知意”,即選擇具有一定會義的英文單詞或漢語拼音作為標(biāo)識 符,以增加程序的可讀性。2.答案:B解析:C 語言規(guī)定,不能在函數(shù)的內(nèi)部定義函數(shù),使用選項(xiàng)D 錯(cuò)誤;在 C 語言中函數(shù)定義時(shí)是互相獨(dú)立的,可以相互調(diào)用,但不能調(diào)用 main 函數(shù),所以選項(xiàng) A 是錯(cuò)誤的。每個(gè)函數(shù) 都可以被單獨(dú)編譯
2、,但不能單獨(dú)運(yùn)行,所以選項(xiàng) B 正確。3.答案:C解析:在 C 語言程序中,合法標(biāo)識符的命名規(guī)則是:標(biāo)識符可以由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線。4.答案:D解析:C 語言規(guī)定,變量標(biāo)識符只能有字母、數(shù)字或下劃線3 種字符組成,且首字符必須為字母或下劃線。在 C 語言中大寫字母和小寫字母被認(rèn)為兩個(gè)不同的標(biāo)識符。選項(xiàng)A 定義的標(biāo)識符的變量標(biāo)識符 nt 和選項(xiàng) B 定義的變量標(biāo)識符 int_與 C 語言的關(guān)鍵字 int 是不同的, 是正確的變量標(biāo)識。選項(xiàng) C 定義的變量標(biāo)識符 For 與 C語言中的關(guān)鍵字 for 是兩個(gè)不同的標(biāo) 識符,所以選項(xiàng) C 是正確的,而選項(xiàng) D包含
3、有特殊字符$,因而其不符合 C 語言變量命名 的規(guī)則。5.答案:B解析:在 C 語言中,合法標(biāo)識符的命名規(guī)則是:標(biāo)識符可以由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線。在C 語言的標(biāo)識符中,大寫字母和小寫字母被認(rèn)為兩個(gè)不同的標(biāo)識符。選項(xiàng)B 是連字符,不在 C 語言規(guī)定的命名變量標(biāo)識符的范圍內(nèi)。6.答案:A解析:一個(gè) C 語言源程序無論包括了多少函數(shù),在正常情況下總是從main 函數(shù)開始執(zhí)行,從 main 函數(shù)結(jié)束。7.答案:C解析:C 語言規(guī)定必須以 main 作為主函數(shù)名。程序中的main()是主函數(shù)的起始行,也是C程序執(zhí)行的起始行。每一行的C 程序都必須有且只能有一個(gè)主函數(shù)。
4、一個(gè)C 程序中可以包含任意多個(gè)不同的函數(shù),但只能有一個(gè)主函數(shù)。程序要從 main()函數(shù)開始執(zhí)行,最后在 main() 函數(shù)結(jié)束。8.答案:C解析:本題主要是考查的是 C 語言結(jié)構(gòu)中的源程序書寫格式這個(gè)知識點(diǎn),在C 語言中注釋部分對程序的運(yùn)行結(jié)果不產(chǎn)生任何影響,它可以出現(xiàn)在任意位置;C語言書寫自由,一行內(nèi)可以寫多個(gè)語句,一個(gè)語句可以寫在多行上;由于 C 語言編寫的程序有很好的移植性,可 以放在多個(gè)程序文件中。9.答案:C解析:實(shí)型常量又稱實(shí)數(shù)或浮點(diǎn)數(shù)。在C 語言中,可以用兩種形式表示一個(gè)實(shí)型常量。小數(shù)形式是由數(shù)字和小數(shù)點(diǎn)組成的一種實(shí)數(shù)表示形式,這種表示形式的常量必須要有小數(shù)點(diǎn)。指數(shù)形式用“ e
5、”或“ E”后跟一個(gè)整數(shù)來表示以10 為底的幕數(shù)。C 語言的語法規(guī)定,字母 e 或 E 之前必須要有數(shù)字,且 e 或 E 后面的指數(shù)必須為整數(shù)。因?yàn)檫x項(xiàng)C 中字母 E 后面的指數(shù)為小數(shù)形式,使用選項(xiàng)C 的表示方法不合法。10. 答案:A解析:C 語言規(guī)定,在字符“ /*”和其后緊跟的第一個(gè)字符“/*”中間的部分是注釋內(nèi)容,且注釋部分的內(nèi)容不參與程序的編譯和運(yùn)行,因此,本題中程序語句“b=20; ”沒有執(zhí)行,故本題的答案為選項(xiàng) A。11. 答案:B解析:“u”格式符表示以十進(jìn)制形式輸出無符號整型變量。本題中無符號整型變量 x=OxFFF(十六進(jìn)制)表示的是無符號整型變量(十進(jìn)制形式)的最大值65
6、535,所以最后輸出結(jié)果為 65535。12. 答案:A解析:C 語言中,合法標(biāo)識符的命名規(guī)則是:標(biāo)識符可以由字母、數(shù)字和下劃線組成,并且 第一個(gè)字符必須為字母或下劃線。在 C 語言中,凡是要求標(biāo)識符的地方都必須按此規(guī)則命名。C 語言標(biāo)識符可以分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符3類。關(guān)鍵字是 C 語言已經(jīng)預(yù)先規(guī)定了的一批標(biāo)識符,它們在吃呢光緒中都代表著固定的含義,不能另作他用。所謂預(yù)定義標(biāo)識符是指 C 語言中預(yù)先定義并具有特定含義的標(biāo)識符,如C 語言提供的庫函數(shù)名、預(yù)編譯處理命名等。用戶標(biāo)識符有用戶根據(jù)需要定義的標(biāo)識符,又稱為自定義標(biāo)識符。 選項(xiàng)B 和 C 中的橫線以及點(diǎn)都不是合法的字符,選
7、項(xiàng)D中的case為C語言關(guān)鍵字,故本題答案為選項(xiàng) A。13. 答案:B解析:八進(jìn)制數(shù)其開頭數(shù)字必須是“0”,其數(shù)字包括 07,而在選項(xiàng) A中,028 是錯(cuò)誤的。浮點(diǎn)數(shù)指數(shù)形式表示在常量中,C 語言規(guī)定字母 e 或 E 之前必須要有數(shù)字,且 e 或 E 之后的指數(shù)必須為整數(shù), 而選項(xiàng) C 中 4el.5 是錯(cuò)誤的。 在選項(xiàng) D 中, 整型數(shù)據(jù) 10,000的表示形式 是錯(cuò)誤的。所以本題的答案為選項(xiàng)B。14. 答案:D解析:不同的編譯系統(tǒng)或計(jì)算機(jī)系統(tǒng)對幾類整型數(shù)所占用的字節(jié)數(shù)有不同的規(guī)定。所以 long、int 和 short 類型數(shù)據(jù)占用內(nèi)存大小是由選擇何種C 編譯系統(tǒng)決定的。15. 答案:C解
8、析:在賦值表達(dá)式中,賦值符號“=”的左邊只能為要賦值的變量, 不能為表達(dá)式,右邊可以為常量或者是表達(dá)式,故選項(xiàng)A 錯(cuò)誤, 選項(xiàng) C 正確; 在取余運(yùn)算中,運(yùn)算符“%”兩邊都必須是整型數(shù)據(jù),所以選項(xiàng)B、D 錯(cuò)誤。16. 答案:A解析:在 C 語言中,兩個(gè)整型變量相除,其值也是整型。所以 1/2 的結(jié)果等于 0, 而不是 0.5, 所以, 選項(xiàng) A 的表達(dá)式計(jì)算過程為 1/3*sin (1/2) *sin (1/2)=1/3*sin(0)*sin(0)=0, 所以選項(xiàng) A 錯(cuò)誤。17. 答案:C解析:在 C 語言中,求余運(yùn)算符“ %”兩邊的運(yùn)算符對象都應(yīng)為整型數(shù)據(jù),所以需要對變量 f 進(jìn)行強(qiáng)制類型
9、轉(zhuǎn)換,正確的寫法為k%(int)f。在 C 語言匯總,邏輯運(yùn)算符與賦值運(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符之間從高到低的運(yùn)算有限次序是:?。ㄟ壿嫛胺恰保⑺銛?shù)運(yùn)算符、關(guān)系運(yùn)算符、&(邏輯“與”)、|(邏輯“或”)、賦值運(yùn)算符。根據(jù)運(yùn)算符的優(yōu)先級與結(jié)合性, 對于選項(xiàng) A,先計(jì)算 k=k 的值(為真,即 1),再用 1 對 k 進(jìn)行賦值。對于選項(xiàng) B,先計(jì)算 k+的值,再對其取負(fù)數(shù)。對于選項(xiàng)D, 先計(jì)算 k=f 的值 (為假, 即 0) ,再用 0 與 m 進(jìn)行比較,故最終結(jié)果為 0。18. 答案:67G解析:根據(jù)字符 ASCII 的排序順序可知,執(zhí)行語句 a=A+ 3;得到的是大寫字母 C 的 ASC
10、II 值,即 67,用“d”的十進(jìn)制數(shù)字輸出。而執(zhí)行語句b=a+ A-2 得到的是大寫字母 G 的 ASCII 值,即 71,用“c”以字符的形式輸出,即字母 G。19. 答案:D解析:表達(dá)式的計(jì)算過程為:3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8 此題要注意 5/2 的結(jié)果是 2, 而不是 2.5,因?yàn)槌ㄟ\(yùn)算符兩編的數(shù)值類型均為整型,故運(yùn)算結(jié)果的數(shù)值類型也被認(rèn)定為 整型。20. 答案:C解析:子函數(shù) fun( double a)的功能是返回 a 的平方值的整數(shù)部分。 子函數(shù)fun (double x,double y)的功能是返回 x 的平方值的整數(shù)部分與 y 平方值的
11、整數(shù)部分的和。又因?yàn)轭}中變量w 的定義為 double 型,函數(shù) fun(2)的定義為 int 型,按照各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型數(shù) 據(jù)被轉(zhuǎn)換為實(shí)型數(shù)據(jù)。所以雙精度型變量w 的值為 5.0o21. 答案:C解析:C 語言規(guī)定每條語句和數(shù)據(jù)定義的最后必須有一個(gè)分號,分號是C 語言的必要組成部分。符合語句也稱為“語句塊”,其形式如下: 語句 1 語句 2語句 n ,即用一對花括 號把若干語句括起來構(gòu)成一個(gè)語句組。一個(gè)符合語句在語法上視為一條語句,在一對花括號內(nèi)的語句數(shù)量不限。 一個(gè)賦值表達(dá)式的最后加一個(gè)分號就成為一條語句,即賦值語句??照Z句是只有一個(gè)分號的語句,它什么也不做,程序設(shè)計(jì)中有時(shí)需
12、要加一個(gè)空語句來表示存在一 條語句,但隨意加分號會導(dǎo)致邏輯上的錯(cuò)誤,而且這種錯(cuò)誤十分隱蔽, 編輯器也不會提示邏輯錯(cuò)誤,需要慎用。22. 答案:B解析:C 語言規(guī)定,可以在定義變量的同時(shí)給變量賦初值,稱為變量初始化。在選項(xiàng)A 中給 n1 和 n2 進(jìn)行賦初值,但變量 n2 沒有定義;在選項(xiàng) C 中定義變量 f 時(shí),不能在賦值表達(dá) 式的右邊出現(xiàn)變量 f 自身,所以選項(xiàng) C 錯(cuò)誤;在選項(xiàng) D 用指數(shù)表達(dá)式的常量中,字母E 后面的數(shù)應(yīng)該為整數(shù)形式,而不應(yīng)為小數(shù)形式。23. 答案:A解析:用逗號將表達(dá)式連接起來的試子稱為逗號表達(dá)式。其表達(dá)式的一般形式為:表達(dá)式 1,表達(dá)式 2,表達(dá)式 n 最后一個(gè)表達(dá)式
13、的值就是此逗號表達(dá)式的值。所以選項(xiàng)A 為 C 語言中的逗號表達(dá)式,選項(xiàng)A 為正確答案。賦值表達(dá)式的左側(cè)值能是變量,不能是常量或者是表達(dá)式,因此選項(xiàng) B 和選項(xiàng) C 均不正確。強(qiáng)制類型轉(zhuǎn)換表達(dá)式的形式為:(類型名)(表達(dá)式), 其中(類型名)稱為強(qiáng)制類型轉(zhuǎn)換運(yùn)算符, 數(shù)據(jù)類型兩邊的圓括號不能省略,所以 選項(xiàng) D 不正確。24. 答案:A解析:選項(xiàng) A 的含義是把關(guān)系表達(dá)式 y=5 的值賦給變量 x,所以這是一條正確的賦值語句。 因?yàn)橘x值運(yùn)算符左側(cè)的操作數(shù)必須是一個(gè)變量,而不能是表達(dá)式或者常量, 所以選項(xiàng) C 和 D是錯(cuò)誤的。因?yàn)榍笥噙\(yùn)算符“%”兩側(cè)的運(yùn)算對象都應(yīng)當(dāng)是整型數(shù)據(jù),所以選項(xiàng) B 是錯(cuò)誤
14、的。25. 答案:B解析:本題考查的是數(shù)據(jù)類型的定義賦值,選項(xiàng)A 中對變量聲明類型且賦值的情況是不允許出現(xiàn)的,必須單獨(dú)定義其類型。選項(xiàng)B 給實(shí)型變量賦值時(shí)不用引號,也不能將地址賦于實(shí)型變量;C 語言允許在一個(gè)類型說明符后說明多個(gè)形同類型的變量,各變量之間要用逗號(,)隔開,而不是用(;)隔開;在計(jì)算機(jī)存儲字符時(shí)將字符相應(yīng)的ASCn碼以其對應(yīng)的二進(jìn)制進(jìn)行存放,選項(xiàng) B 中的定義是合法的,故選項(xiàng) B 正確。章節(jié)鞏固訓(xùn)練選擇題1. 答案:C解析:選項(xiàng) A 和選項(xiàng) B 為拼寫錯(cuò)誤,選項(xiàng) D 中出現(xiàn)了大寫字母。2. 答案:C解析:C 語言程序總是從程序的main()函數(shù)開始執(zhí)行。main()函數(shù)可以放在
15、 C 程序的任何位置,包括最前面和最后面。C 程序中的函數(shù)可以任意地相互調(diào)用,他們之間的關(guān)系是平等的。3. 答案:B解析:在編寫程序時(shí),標(biāo)識符的作用是為函數(shù)、變量等命名。標(biāo)識符的命名規(guī)則如下:(1) 合法的標(biāo)識符只能由字母、數(shù)字或下劃線組成。(2) 標(biāo)識符的第一個(gè)字符必須是字母或下劃線,不能是數(shù)字(3) 要區(qū)分字母的大小寫,例如, q 和 Q 是兩個(gè)不同的變量。4. 答案:B解析:選項(xiàng) A 中的 void 是 C 語言中的關(guān)鍵字。選項(xiàng) C 中的-wer 前邊有一個(gè)字符是減號,而case 是關(guān)鍵字。選項(xiàng) D 中的 4b 是以數(shù)字開頭。5. 答案:C解析:因?yàn)檩敵龈袷椒?% -06d,含義是輸出
16、值占 6 個(gè)位置,左邊對齊,右邊不滿6 個(gè)補(bǔ)空格,其他都原樣輸出。6. 答案:C解析:本題中的表達(dá)式為逗號表達(dá)式,此表達(dá)式的結(jié)果為y=x+3/2 的值。y=x+3/2 的元運(yùn)算次序?yàn)椋合冗M(jìn)行 3/2 運(yùn)算,兩個(gè)運(yùn)算數(shù)均為整型量,結(jié)果也為整型量,等于1,此結(jié)果將與double 類型數(shù)進(jìn)行相加,要轉(zhuǎn)換為1.0000。最后將 x 的值 1 轉(zhuǎn)換稱double 型,與 1.0000 相加。7. 答案:B解析:本題的關(guān)鍵是要弄清楚C 語言中常量的表示方法和有關(guān)的賦值規(guī)則。在一個(gè)整型常量后面加一個(gè)字母I 或 L,則認(rèn)為是 long int 型常量。一個(gè)整型常量,如果其值在-32768 +32767 范圍內(nèi)
17、,可以賦給一個(gè) int 型或 long int 型變量;但如果整型常量的值超出了上述范圍,而在-2147483648 2147483647 范圍內(nèi),則應(yīng)將其賦值給一個(gè) long int型變量。本例中-2L 雖然為 long int 型變量,但是其值為-2,因此可以通過類型轉(zhuǎn)換把長整型轉(zhuǎn)換為短整型,然 后賦給 int 型變量 a 并按照%d 格式輸出該值。8. 答案:C解析:本題考查的是自增運(yùn)算符及賦值運(yùn)算符的綜合使用問題。自增運(yùn)算符是一元運(yùn)算符,其優(yōu)先級比賦值運(yùn)算符高,要先計(jì)算。把表達(dá)式i+的值賦予 a,由于i+的結(jié)果為當(dāng)前 i 的值(當(dāng)前 i 值為 4),所以 i+的值為 4,得到 a 的值
18、為 4.同時(shí),計(jì)算了 i+后,i 由 4 變?yōu)?5。填空題1. 答案:8127-12810000000解析:一個(gè)字節(jié)包含 8 個(gè)二進(jìn)制位。一個(gè)字節(jié)中能存放的最大(十進(jìn)制)整數(shù)是 127。它的 二進(jìn)制形式是 01111111。一個(gè)字節(jié)中能存放的最?。ㄊM(jìn)制)整數(shù)是 -128。它的二進(jìn)制形式 是 10000000。用最高位上的數(shù)表示符號位,是 0 時(shí)表示正數(shù);1 表示負(fù)數(shù)。2. 答案:036 0 xle 00000000000111103. 答案:(x20 ) & (x30) |(x -100 )解析:在 C 語言程序中,一般采用關(guān)系表達(dá)式和邏輯表達(dá)式的組合形式表示給定的條件。兩個(gè)條件表示“并且”
19、關(guān)系時(shí),一般使用邏輯運(yùn)算符中的邏輯與“& ”;兩個(gè)條件用“或”連接時(shí),一般使用邏輯運(yùn)算符中的邏輯或“。4.答案:18解析:本題考查的是整型常量的表達(dá)方法和算術(shù)運(yùn)算符中的自減運(yùn)算符“一一”的用法。題中的 x=023 是整型量的八進(jìn)制數(shù)表示法,等價(jià)于x=19。對于自減表達(dá)式“一 一 x”,運(yùn)算后表達(dá)式的值為 18,x 的值也是 18。第二章順序結(jié)構(gòu)考點(diǎn)跟蹤1. 答案:C解析:自增運(yùn)算符“ +”出現(xiàn)在變量之前,表示先使變量的值加1,再使用變量的值進(jìn)行運(yùn)算;出現(xiàn)在變量之后,表示先使用變量的值進(jìn)行云端,再使變量的值加 1,例如題中的“b+ ”。題中的第一條語句先輸出字符b 的值,此時(shí)變量 b= 2因此輸
20、出值為 2;再使 b 的值加 1,b= 3 因此第二條語句輸出:b-a= 3 1 =2。2. 答案:C解析:函數(shù) sizeof(a)的功能是:求出字符串占用存儲空間的大小,由于字符數(shù)組a 的長度為7,所以 i=7 ;函數(shù) strlen(a)的功能是:求出字符串 a 的長度。而每個(gè)字符串都以0 為字 符串的結(jié)束標(biāo)記,所以 j 的值等于 2。3. 答案:A解析:在 C 語言中,一個(gè)字符常量代表ASCn字符集中的一個(gè)字符,在程序中用單引號把一個(gè)字符括起來用為字符常量。轉(zhuǎn)義字符常量也是必須括在一對單引號內(nèi),以一個(gè)反斜線開頭后跟一個(gè)特定的字符,用來代表某一個(gè)特定的ASCn字符。 在選項(xiàng) A中, 018
21、是用八進(jìn)制數(shù)來代表一個(gè)字符常量,所以其中的數(shù)字只能小于8,并不包括8選項(xiàng) B、C、D 都是正確的轉(zhuǎn)義字符常量。4. 答案:D解析:字符串常量是用一對雙括號括起來的一串字符。它用字符數(shù)組來存放,不用一對花括號來括起來。5. 答案:A解析:C 語言的字符常量是用單引號()括起來的一個(gè)字符,也可以用以一個(gè)“”開頭的字符序列來表示字符常量。其中形式ddd 表示 13 位八進(jìn)制數(shù)所代表的字符;形式 xhh 表示 12 位十六進(jìn)制數(shù)所代表的字符。 在本題中x13表示回車符,是一個(gè)字符常量;而081 用八進(jìn)制數(shù)所代表的字符形式不正確,因?yàn)榘诉M(jìn)制數(shù)所表示的字符中不會出現(xiàn)數(shù)字“8” ; 65單引號(即撇號)括起
22、來的不是一個(gè)字符,而是一個(gè)十進(jìn)制數(shù)字;“ n”是用雙引號括起來的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。6. 答案:D解析:在用基本輸出語句 printf 時(shí),格式說明與輸出項(xiàng)的個(gè)數(shù)應(yīng)該相同。如果格式說明的個(gè) 數(shù)少于輸出項(xiàng)的個(gè)數(shù)(正如本題的情況) ,多余的輸出項(xiàng)不予輸出,如果格式說明個(gè)數(shù)多于 輸出項(xiàng)個(gè)數(shù),則對于多余的格式項(xiàng)輸出不定值或0。故本題選項(xiàng) D)是正確的輸出結(jié)果。7. 答案:#2#4解析:題中從 k=2 輸出,printf 中“ %d”錢的內(nèi)容原樣輸出,所以第一次輸出#2,接著 k兩次自加為 4, 接著輸出#4, 接著 k 再兩次自加為 6, 此時(shí)不符合循環(huán)條件,所以輸出結(jié)果為“ #
23、2#4”。8. 答案:A解析:while 循環(huán)的執(zhí)行如下:(1)計(jì)算 while 后面圓括號中表達(dá)式的值。當(dāng)值為非0 時(shí),執(zhí)行步驟(2);當(dāng)值為 0 時(shí),執(zhí)行步驟(4)。(2)執(zhí)行循環(huán)體一次。(3)轉(zhuǎn)去執(zhí)行步驟(1 )。(4)退出循環(huán)。在選項(xiàng) A 中,表達(dá)式(ch=getchar() != N 表示輸入的字符不等于N ,如果這個(gè)條件表達(dá)式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個(gè)條件表達(dá)式不成 立,即輸入的字符等于N,則退去循環(huán)。9. 答案:B解析:題目的定義語句中,將 b 定義為整型變量, 所以在輸入語句中, 應(yīng)在 b 前加上取地址 符& ;而 c 為長度是 10 的字符數(shù)組,而且 c
24、 就是字符數(shù)組的首地址,所以在輸入語句中,c前不用加上取地址符&。10. 答案:B解析:在輸入函數(shù) scanf 的輸入格式符2d%f 中,2d 表示輸入的數(shù)據(jù)的寬度為 2,所以當(dāng)從 鍵盤輸入 876543.0時(shí),這時(shí)把輸入數(shù)字串的前兩位 87 賦給變量 a,然后緊接著將 6 按 按照格式控制符 %f 的形式賦給變量 b,所以 b 的值為 6.000000,故本題的答案為選項(xiàng) B.11. 答案:printf( a=%d,b=%d ,a,b);解析:printf 函數(shù)是 C 語言提供準(zhǔn)輸出函數(shù),用來在終端設(shè)備上按指定格式進(jìn)行輸出。其調(diào) 用形式如下:printf (格式控制,輸出項(xiàng)1,輸出項(xiàng)2,),
25、格式控制是字符串形式。本題中要按格式輸出兩個(gè)整型變量,所以格式說明符用“d”的形式, 又輸出“ a= ,b= ”的字符形式,所以輸出函數(shù)printf 的完整輸出格式說明符為“a=%d,b=%d ”。12. 答案:12 34解析:在 scanf 函數(shù)的輸出格式說明中,變量 a 和 b 的格式控制符為“ %2d”,即 a 和 b 都只 獲取 2 個(gè)字符的輸入。所以當(dāng)輸入 1234567 時(shí),其前面的 4 個(gè)字符被分別賦給 a 和 b, 其余 的字符丟掉。 所以輸出結(jié)果為 1234.章節(jié)鞏固訓(xùn)練選擇題1. 答案:C解析:本題考查的是賦值語句的基本語法。2. 答案:C解析:本題考查了復(fù)合語句和空語句的
26、基本用法。3. 答案:B解析:C 語言中輸出 long 型數(shù)時(shí),在%和 d 之間必須加 l(L 的小寫);輸出 double 型數(shù)時(shí), 在%和 f (e)之間也必須加 I。4. 答案:A解析:C 語言匯總,格式字符 d 表示輸出帶符號的十進(jìn)制整型數(shù),o表示以八進(jìn)制無符號型輸出整型數(shù)(不帶前導(dǎo) 0)。5. 答案:B解析:scanf 和 printf 函數(shù)的一般調(diào)用形式,以及他們的功能。用%s作為格式控制符,在輸入時(shí)以非空白字符開始,以第一個(gè)空白字符結(jié)束。6. 答案:D解析:本題考查 scanf 函數(shù)基本格式。7. 答案:B解析:因?yàn)樵谳斎敫袷娇刂品兄付ㄗ兞縥 的輸入格式控制符為“2d”,即變量
27、 j 所占的寬度為 2,所以變量 j 只接收輸入數(shù)據(jù)的前兩位,從第三位開始直接到空格之間的輸入整數(shù)都會被保存到變量 y 中,因?yàn)?y 為浮點(diǎn)型數(shù)據(jù),所以正確答案為選項(xiàng)B。8.答案:C解析:程序語句 int a,b,c,*p=&c;定義了 3 個(gè)整型變量 a、b、c,和一個(gè)整型指針變量 p,并 且把變量 c 的地址賦給 pscnaf 函數(shù)的一般形式為“ scanf(格式控制字符串,地址列表)”, 其中地址列表應(yīng)當(dāng)是存放輸入數(shù)據(jù)變量的地址。所以本題答案為選項(xiàng)C。填空題1. 答案:一條語句;解析:按 C 語言語法規(guī)定,在程序中,用花括號把若干語句括起來稱為復(fù)合語句;復(fù)合語 句在語法上被認(rèn)為是一條語句
28、??照Z句的形式是:一個(gè)分號(;)。它是由一個(gè)單獨(dú)的分號構(gòu)成,程序遇到空語句是,不產(chǎn)生任何動作。2. 答案:x=127,x=177,x=7f,x=127解析:變量 x 為 int 類型,所賦初值為八進(jìn)制數(shù)0177 (在 C 語言中,八進(jìn)制數(shù)都用數(shù)字0開頭)。對應(yīng)的十進(jìn)制數(shù)是 127。在 printf 語句中,x 以不同的形式輸入 5次,分別用寬度為 3 的十進(jìn)制數(shù)形式、寬度為 6 的十進(jìn)制數(shù)形式、寬度為 6的八進(jìn)制數(shù)形式、寬度為 6 的十六 進(jìn)制數(shù)形式、寬度為 6 的無符號十進(jìn)制數(shù)形式進(jìn)行輸出。格式串中的若干“x= ”和逗號將按原樣輸出。八進(jìn)制數(shù)0177,轉(zhuǎn)換出呢過十進(jìn)制數(shù)127,轉(zhuǎn)換成十六進(jìn)制
29、數(shù)是7f,轉(zhuǎn)換成無符號十進(jìn)制數(shù)也是127。3. 答案:1200解析:在執(zhí)行以上第一個(gè)輸入語句時(shí),首先為變量i 讀入數(shù)據(jù)。的那個(gè)讀入 12 是遇到點(diǎn) h號()因?yàn)?i 是整型變量,則視該點(diǎn)號為非法數(shù)據(jù),這時(shí)讀入操作自動結(jié)束,把12 賦值給變量 i。 未讀入的點(diǎn)號留在緩沖區(qū)內(nèi)作為下一次輸入操作的輸入數(shù)據(jù)。 當(dāng)執(zhí)行第二個(gè)輸入語句時(shí),系統(tǒng)將為變量 j 讀入數(shù)據(jù),首先遇到的就是點(diǎn)號,因?yàn)?點(diǎn)號為非法數(shù)據(jù),讀入操作自動結(jié)束,沒有讀入數(shù)據(jù)給變量0) 。 執(zhí)行第三個(gè)輸入語句的情況與第二個(gè)輸入語句形同,變量4.答案:(1)a:b(2)c:t1解析:本題采取條件表達(dá)式對a、b、c 這三個(gè)變量進(jìn)行比較。先判斷a 是
30、否小于 b,若小于則 t1=a,否則 t1=b,這樣 t1 就是 a、b 中較小的值,同理,再比較t1 同 c 的大小,小的存入 t2 中,t2 就是 a、b、c 中的最小值。第三章選擇結(jié)構(gòu) 考點(diǎn)跟蹤1. 答案:B解析:在 while(E)中,表達(dá)式 E 可以是 C 語言中任意合法的條件表達(dá)式,但不能為空, 由它 來控制循環(huán)體是否執(zhí)行。在選項(xiàng)B 中表達(dá)式E0|E0 是一個(gè)邏輯表達(dá)式。2. 答案:B解析:選項(xiàng) A 調(diào)用函數(shù) isupper()來判斷字符 c 是否是大寫字母;選項(xiàng) C用邏輯與運(yùn)算符來 連接關(guān)系表達(dá)式A =c 和 c= Z 來判斷 c 是否是大寫字母;選項(xiàng) D 用邏輯與運(yùn)算符 來連接
31、關(guān)系表達(dá)式 c=( z-32)=Z 和(a-32)=A=c 來判斷 c 是否是大寫字母,這 3 個(gè)選項(xiàng)都 符合題目的要求。而選項(xiàng) B 是先計(jì)算關(guān)系表達(dá)式“ A =c”的值是 0 還是 1,再比較值與字符Z之間的大小關(guān)系,不能實(shí)現(xiàn)題目所要求的功能。3. 答案:B解析:選項(xiàng) A 用邏輯運(yùn)算符來連接關(guān)系表達(dá)式A =kk 和 kk= 玄玄和(kk+32 ) =z來判斷 kk 的字母是否是大寫字母。選項(xiàng) D 調(diào)用函數(shù) isalpha()首先判斷 kk 是否為字母,接著通過與運(yùn)算(kk=A),假如為真時(shí),就不進(jìn)行(kk= Z)的判斷,直接進(jìn)入非運(yùn)算,故不能正確判斷kk 是否為大寫字母,故選B。4.答案:D
32、解析:本題考查自增運(yùn)算符“+ ”、邏輯運(yùn)算符“ & ”和邏輯或運(yùn)算符“。自增運(yùn)算符“ + ”,出現(xiàn)在變量之前(如題中的+n) ,表示是變量的值加1,再使用變量的值進(jìn)行運(yùn)算出現(xiàn)在變量之后(如題中的n+),表示先使變量的值進(jìn)行預(yù)算,再使用變量的值加1當(dāng)邏輯運(yùn)算符“& ”兩邊的運(yùn)算符對象都為真時(shí),邏輯表達(dá)式的值才為真;當(dāng)邏輯或運(yùn)算符“ 左邊的運(yùn)算對象為真時(shí),其值就為真,不用計(jì)算就為真,不用計(jì)算其右邊的運(yùn)算對象的值。所以根據(jù)運(yùn)算符的優(yōu)先級,題中應(yīng)先計(jì)算內(nèi)層括號中的值。+j 是想自加后運(yùn)算,因此運(yùn)算是 j 的值等于 3,所以表達(dá)式+j=3 成立,即表達(dá)式的值為 1;由于 1 與任何數(shù)進(jìn)行或(|) 運(yùn)算,
33、結(jié)果都是 1,因此 k=3 ;最后計(jì)算“ & ”之前的表達(dá)式,i+s 先運(yùn)算后自加,因此 運(yùn)算時(shí) i 為 1,所以 i+=1 成立,自加 1 后i=2。If 語句的條件為真即“ 1”,所以輸出 i、j、 k 的值分別為 2 3 3.5.答案:10 20 0解析:賦值運(yùn)算符、算數(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符之間從高到低的運(yùn)算次序?yàn)椋核?術(shù)運(yùn)算符、關(guān)系云運(yùn)算符、&(邏輯與)、|(邏輯或)、賦值運(yùn)算符。所以在程序中,由于 a=10、b=20,所以 c=(10%201)=(01)=0|0=0。6.答案:A解析:在選項(xiàng) A 中,因?yàn)?a=0,所以表達(dá)式!a=1 的值為 0,又因?yàn)檫壿嬇c運(yùn)算符“ & ”
34、兩 邊表達(dá)式只要一個(gè)等于0,則整個(gè)表達(dá)式為 0,所以選項(xiàng)A 正確。在選項(xiàng) B 中,關(guān)系表達(dá)式ab 為真,表達(dá)式(ab) &!c 為假,而表達(dá)式(ac) &(a+cb)&(b+ca)解析:構(gòu)成三角形的條件是兩邊之和大于第三邊。所以要用(& )與運(yùn)算符連接 3 個(gè)條件的表達(dá)式,表示 3 個(gè)條件表達(dá)式都要滿足。所以用C語言的語法規(guī)則寫成與表達(dá)式的形式為(a+bc)&(a+cb )&(b+ca)。8.答案:D解析:邏輯運(yùn)算符兩側(cè)的運(yùn)算對象可以是任意合法的表達(dá)式。邏輯表達(dá)式的結(jié)果或者為1(“真”),或?yàn)?0 (“假”)。9.答案:1解析:因?yàn)樵跅l件表達(dá)式(ab) ? a:b 中,如果比較表達(dá)式 ab 為
35、真,條件表達(dá)式的值等于 a 的值,否則等于 b 的值。對于本題在第一個(gè)表達(dá)式(ab) ? a:b 中,比較表達(dá)式 ab 為真,所以條件表達(dá)式的值等于 a 的值,即等于 1,所以變量 x 的值等于 1。對于條件表達(dá)式(xx)? x:d 來說,其比較表達(dá)式都為真,所以這個(gè)條件表達(dá)式的值都等于變量x 的值,最終變量 x 的值等于 1。10. 答案:B解析:設(shè)有表達(dá)式的形式為:表達(dá)式 1 ?表達(dá)式 2:表達(dá)式 3。其含義為:當(dāng)“表達(dá)式1”的值為非零時(shí),求出“表達(dá)式2 ”的值。此時(shí)“表達(dá)式 2”的值就是整個(gè)條件表達(dá)式的值;當(dāng)“表達(dá)式 1”的值為零時(shí),求出“表達(dá)式3”的值,此時(shí),“表達(dá)式 3”的值就是整個(gè)
36、條件表達(dá)式的值。對于本題來說,當(dāng)表達(dá)式 EXP 為非 0 值時(shí)的條件成立,即執(zhí)行語句 i+ ;當(dāng) EXP 等于 0 時(shí), 執(zhí)行語句 j-;這等同于條件表達(dá)式“(EXP ! =0) ?i+:j-;”。11. 答案:a:b c:t1解析:本題采用條件表達(dá)式對 a、b、c 這 3 個(gè)變量進(jìn)行比較。先判斷 a 是否小于 b,若小于 則 t1=a,否則 t1=b,這樣 t1 就是 a、b 中較小的值,同理,再比較 t1 同 c 的大小,小的存 入 t2 中,t2 就是 a、b、c 中的最小值。12. 答案:1解析:在主函數(shù) main()中,語句 if(c=a)printf( %dn ”,c);的條件判斷
37、表達(dá)形式是一個(gè)賦值語 句,而根據(jù)變量的初始值等于 1,所以變量 c 值等于 1 為真,所以執(zhí)行打印輸出語句,輸出 變量 c 的當(dāng)前值 1。13. 答案:C解析:C 語言的語法規(guī)定:else 子句總是與前面最近的不帶else 的 if相結(jié)合,與書寫格式無關(guān)。所以選項(xiàng) C 為正確答案。14. 答案:C解析:在選項(xiàng) A 和 B 中條件判斷語句的后面是空語句,什么都不做;在選項(xiàng)D 中 if 后面是 一個(gè)復(fù)合空語句;而在選項(xiàng) C 中, 在 X-后面少了一個(gè)分號,所以程序段在編譯時(shí)會出現(xiàn)語法錯(cuò)誤。15. 答案:B解析:由題意可知計(jì)算公式的含義是:當(dāng)x=0 時(shí), y 值等于 x 的算術(shù)平方根;當(dāng) x=0?x
38、:-x條件表達(dá)式來表達(dá)了計(jì)算公式的含義;選項(xiàng)B 沒有用 C 語言語句正確的表達(dá)計(jì)算公式的含義。16. 答案:B解析:本題考查的是程序結(jié)構(gòu)設(shè)計(jì)中if 語句的應(yīng)用,當(dāng) if 判斷條件成立時(shí)就執(zhí)行其后的相關(guān)語句,否則不執(zhí)行,題中的第一個(gè)if 條件不成立故不執(zhí)行a=b”,接著執(zhí)行c=a”,此時(shí)第二個(gè) if 條件也不成立,故不執(zhí)行其后語句,最終c 的值為 3。17. 答案:C解析:在 C 語言中,switch()后一對圓括號中可以是整型表達(dá)式或字符表達(dá)式。case 語句后面的常量表達(dá)式的類型必須與 switch后圓括號中的表達(dá)式類型相同, 各 case語句標(biāo)號的值 應(yīng)該互不相同。選項(xiàng) A 中 case
39、后面的常量表達(dá)式為實(shí)型,所以不正確;選項(xiàng) D 中 case 后面 出現(xiàn)了變量表達(dá)式,所以 D 不正確。18. 答案:D解析:break 為 C 語言關(guān)鍵字,又稱間斷語句。break 語句的功能是跳出正在執(zhí)行的條件語句或循環(huán)語句。它可以出現(xiàn)在switch 語句中,也可以出現(xiàn)在循環(huán)語句中。default 是關(guān)鍵字,起標(biāo)號的作用,代表所有case 標(biāo)號之外的那些標(biāo)號。default 標(biāo)號可以出現(xiàn)在語句體中的任何標(biāo)號位置上。在 switch 語句體中也可以沒有 default 標(biāo)號。19. 答案:B解析:因?yàn)樽兞康某跏贾捣謩e為k=5,n=0,所以程序第一次進(jìn)入循環(huán)時(shí),執(zhí)行default 語句,輸出 0
40、, k 減 1 ;這時(shí) n=O,k=4,程序進(jìn)行第 2 次循環(huán),執(zhí)行 case4:這個(gè)分支,結(jié)果是 n=2,k=3, 打印出 2;這時(shí) n=2,k=3,程序進(jìn)行第 3 次循環(huán),執(zhí)行 case3:這個(gè)分支,結(jié)果是 n=3,k=2, 打印出 3;這時(shí) n=3,k=2,程序進(jìn)行第 4 次循環(huán),執(zhí)行 case2:case4 這兩個(gè)分支,結(jié)果是 n=5;k=1, 打印出 5,這時(shí)因?yàn)?n=5 不滿足*5 的循環(huán)條件,因此退出循環(huán),程序運(yùn)行結(jié)束,所以在屏 幕上打印出的結(jié)果是 0235。20. 答案:#&解析:根據(jù) switch 語句的執(zhí)行過程可知,首先判斷關(guān)系表達(dá)式a0是否成立,由題目的已知條件可知,這個(gè)
41、表達(dá)式的結(jié)果為真,所以執(zhí)行“easel 分支”,再判斷表達(dá)式 b=d ”的值為邏輯值 1,所以該條件成立。3. 答案:A解析:本題考查了 if 語句的執(zhí)行流程。4. 答案:C解析:本題比較全面的考查了條件運(yùn)算符的基本知識點(diǎn),選項(xiàng)C 的說法是正確的。5. 答案:A解析:本題考查了條件運(yùn)算和運(yùn)算優(yōu)先級的綜合知識。需要注意,在C 語言中,條件運(yùn)算優(yōu)先于賦值運(yùn)算,但低于邏輯運(yùn)算、關(guān)系運(yùn)算和算數(shù)運(yùn)算,再根據(jù)條件運(yùn)算的運(yùn)行機(jī)理,就可以得到, 只有選項(xiàng) A 和題干語句的功能是等價(jià)的 (先算括號內(nèi)的條件運(yùn)算,然后再使表 達(dá)式的值參與外部的條件運(yùn)算)。6. 答案:A解析:本題功能是計(jì)算 07 之間所有奇數(shù)的和(
42、包括 7)。7. 答案:D解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、模塊化及限制使用goto 語句,總的來說要使程序結(jié)構(gòu)良好、易讀、易理解、易維護(hù)。8. 答案:B解析:這是嵌套形式的 switch 語句,因?yàn)?break 結(jié)構(gòu)影響較大,而此程序中的第一個(gè)case后沒有 break 語句。程序執(zhí)行時(shí),x=1,執(zhí)行內(nèi)嵌的 switch 語句,因 y=0,執(zhí)行“ a+;”,使 變量 a 的值為 1 并終止內(nèi)層 switch 結(jié)構(gòu),回到外層。程序繼續(xù)執(zhí)行“ case2”后面的語句“a+;b+; ”,這使變量 a、b 的值分別為 2 和 1,外層 switch 語句結(jié)束。選擇題1.
43、 答案:92解析:本題是循環(huán)的嵌套。當(dāng)i=0 時(shí),滿足 while 語句的條件,并且條件判斷完成后,i 自加變?yōu)?1,不滿足 if 語句的條件,執(zhí)行 do-while 語句,將二維數(shù)組的第 1 行的 4 個(gè)元素累加 到 s;再一次進(jìn)入 while 循環(huán),i=1 滿足條件,之后 i 自加為2,由于 i=2 滿足 if 語句的條件, 則結(jié)束本次循環(huán),再將 i=2 進(jìn)行 while 條件判斷。如此循環(huán),最后的結(jié)果是將第1 行和第 3行的 8 個(gè)元素累加到 s 中。2. 答案:1解析:由于 a 已在定義語句中賦了初值 100,所以接下來 if 語句中關(guān)系表達(dá)式 a100 的值是 0,不執(zhí)行其后的輸出語
44、句,而執(zhí)行 else 子句中的 printf語句,它的輸出項(xiàng)是 a=100。由于 a 的值為 100,此表達(dá)式的值為 1。注意:無論是邏輯表達(dá)式還是關(guān)系表達(dá)式,結(jié)果為“真” 時(shí),它們的值就是確切的等于 1 而不是“非零”。3. 答案:yes解析:在條件語句中,條件表達(dá)式的值是“ c=a+b”的值,a+b 的值 4 賦給c,則條件表達(dá)式 的值是 4,為非零值,故條件成立。需要注意的是,“=”是賦值運(yùn)算符而不是關(guān)系運(yùn)算符 “等 于”,請同學(xué)不要混淆。4. 答案:* #解析:由于 x 的值為 0,首先執(zhí)行外層 caseO 標(biāo)號中的 switch 語句,執(zhí)行完此 switch 語句后, 沒有遇到 br
45、eak 語句,因此就接著執(zhí)行外層 casel 標(biāo)號中的 switch 語句,最后退出外層 switch 語句。執(zhí)行外層 caseO 標(biāo)號中的switch 語句時(shí),表達(dá)式 y= =2 的值為 1,接著執(zhí)行該 switch 語句的 case1 標(biāo)號中的 printf, 輸出一個(gè)“*”號, 然后遇到接著的 break; 語句, 結(jié)束該 switch語句。執(zhí)行外層 case1 標(biāo)號中的 switch 語句。在外層 case1 標(biāo)號的 switch語句中,括號中 z 的值是 3,沒有對應(yīng)的 case 標(biāo)號,因此執(zhí)行 default 標(biāo)號后的 printf 語句,輸出一個(gè)#號,最 后結(jié)束外層的 switc
46、h 語句。第四章循環(huán)結(jié)構(gòu)考點(diǎn)跟蹤1.答案:D解析:要正確計(jì)算函數(shù) f=n!,由 n!的數(shù)學(xué)定義可知 n!=n*(n-1)*(n-2)* *1。在選項(xiàng) A 中, 由于 f 的初值為 0,在 for 循環(huán)語句中,f 依次乘以 1, 2, 3, ,n。最后計(jì)算 f=n!=0 , 所以選項(xiàng) A 不正確。在選項(xiàng) B 中,f 的初值為 1,在 for循環(huán)語句中,f 依次乘以 1,2,3,(n-1 )。最后計(jì)算得到 f=(n-1)!,所以選項(xiàng) B 不正確。在選項(xiàng) C 中,f 的初值為 1,在 for 循 環(huán)語句中,f 依次乘以 n, n+1, n+2 ,,所以選項(xiàng) C 不正確。在選項(xiàng) D 中,f 的初值為1
47、. 在 for 循環(huán)語句中,f 依次乘以 n, n-1, n-2 , ., 2。最后計(jì)算f=n!,所以選項(xiàng) D 正確。2. 答案:09 18 27 36 45解析:在 for 循環(huán)語句中,由于循環(huán)變量的初始值c1= 0 c2= 9,又因?yàn)檠h(huán)的終止為c1=c2 時(shí),退出循環(huán)。因而,第一次循環(huán)輸出 09,第二次循環(huán)輸出 18,第三次循環(huán)輸出 27,第四次循環(huán)輸出 36,第五次循環(huán)輸出 45, 此后 c1=5, c2=4,不滿足循環(huán)條件,退出循環(huán)。3. 答案:t*10解析:因?yàn)樵?for 循環(huán)的每一次循環(huán)中,循環(huán)變量從1 遞增到 5, 其值都作為每一次求和累加數(shù)的個(gè)位數(shù),所以空白處應(yīng)該填寫 t*1
48、0,這樣表達(dá)式 t=i+t*10 的值才是每次累加的數(shù),執(zhí)行語句 s=s+t,即累加每次循環(huán) t 的值,就求得到的和。4. 答案:B解析: 外層 for 循環(huán)的自變量 i 從 1 開始, 每次循環(huán)后增 1,知道 i 等于 3 結(jié)束。對于外層循 環(huán)自變量 i 的每一個(gè)值,內(nèi)層循環(huán)的自變量j 每次從 i 開始,每次循環(huán)后增 1,知道 j 等于 3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印 i*j=兩個(gè)乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。5. 答案:B解析:在程序中,內(nèi)層循環(huán)判斷條件為“j=i”,而 j 的初值為 3,故當(dāng)外層循環(huán)變量 i 的值為 1 和 2 的時(shí)候,內(nèi)
49、層循環(huán)體都不會被執(zhí)行。只有當(dāng)i 和 j 都等于 3 時(shí)循環(huán)才會執(zhí)行一次。以為 m 的值為 55 對 3 求余結(jié)果為 1。6. 答案:A解析:在程序語句中,k 的初始值為 5,進(jìn)行第一次 while 循環(huán)后,k 自減 1為 4,非 0,執(zhí) 行循環(huán)體里的 printf 語句,輸出 1,此時(shí) k 的值變?yōu)?1 程序執(zhí)行第 2 次循環(huán)是,k 自減 1 變 為 0,退出 while 循環(huán)語句。所以程序的最后結(jié)果為 1。7.答案:11解析:當(dāng)給變量 a 輸入 18,b 輸入 11 時(shí),因?yàn)?18! =11,所以進(jìn)入第 1 次while 循環(huán),在循 環(huán)體內(nèi),又有兩個(gè) while 循環(huán)執(zhí)行完后,a=7, b=
50、4,這兩個(gè)值不相等,進(jìn)入第 2 次 while 循 環(huán),在循環(huán)體內(nèi)執(zhí)行完兩個(gè) while 循環(huán)后,a=3,b=1,進(jìn)入第 3 個(gè) while 循環(huán),在循環(huán)體內(nèi)執(zhí)行完兩個(gè) while 循環(huán)后,a=2,b=1,進(jìn)入第 4 次 while 循環(huán),在循環(huán)體內(nèi)執(zhí)行第一個(gè)while循環(huán)后,a=1,b=1,所以輸出 a 和 b 的值都等于 1。8.答案:54321解析:將一個(gè)正整數(shù)對 10 求余數(shù),其結(jié)果就是該整數(shù)的個(gè)位數(shù)字, 被 10整數(shù)的結(jié)果則是除 去個(gè)位的其余數(shù)位。第一次 while 循環(huán)輸出數(shù)字 5,第二次 while 循環(huán)輸出數(shù)字 4,第三次 while 循環(huán)輸出數(shù)字 3,第四次 while 循環(huán)
51、輸出數(shù)字 2,第五次循環(huán)輸出數(shù)字 1,每次輸出之 間沒有換行或分隔符,所以結(jié)果為 54321。9.答案:k=n k+解析:因?yàn)樵?for 循環(huán)中,循環(huán)終止執(zhí)行的判斷條件為 k=n,每次執(zhí)行循環(huán)之后,循環(huán)控制 變量 k 都會加 1。所以用 while 循環(huán)來表示時(shí),循環(huán)終止執(zhí)行的判斷條件仍為k=n,在循環(huán)體中增加改變循環(huán)控制變量 k 的數(shù)值的語句“ k+ ”。10. 答案:D解析: 因?yàn)樽兞?t 的初始值等于 1, 經(jīng)過第一次 do-while 的循環(huán)中, 執(zhí)行 t=t-2語句一次,所 以變量 t 的值為-1,判斷關(guān)系表達(dá)式 t!=n 是否成立,如果關(guān)系表達(dá)式成立,則執(zhí)行第二次循 環(huán),再執(zhí)行 t
52、=t-2 語句一次,所以變量 t 的值為-3,接著再判斷關(guān)系表達(dá)式t!=n 是否成立,如果關(guān)系表達(dá)式成立,執(zhí)行第三次循環(huán),否則退出循環(huán)。由此可知,所以只要輸入變量n的值為負(fù)奇數(shù),一定會使t=n 成立,則退出 do while 循環(huán)。11. 答案:n/=10 或 n=n/10解析:在主函數(shù)的每次循環(huán)中變量s=n%10, 所以變量 s 的值是 n 的個(gè)位上的數(shù)字,每次將其輸出。在空白處填寫n/=10 或 n=n/10,就是每次循環(huán)時(shí),將n 的值縮小 10 倍,這樣知道n 的值等于 0 時(shí),就完成數(shù)字 n 的逆序輸出。12. 答案:B解析:dowhile 循環(huán)的執(zhí)行過程如下:執(zhí)行do 后面的循環(huán)體中
53、的語句。計(jì)算 while 后一對圓括號中表達(dá)式的值。當(dāng)值為非0 時(shí),轉(zhuǎn)去執(zhí)行步驟;當(dāng)值為 0時(shí),執(zhí)行步驟。退出 dowhile 循環(huán)。對于本題變量 i 的初始值等于 0。再判斷 while 后面括號中表達(dá)式 i+ 的值,其值為 0,所以循環(huán)結(jié)束。此時(shí)變量i 的值經(jīng)過自加已經(jīng)變?yōu)?,所以再次輸出 i 的值為 1。13. 答案:A解析:選項(xiàng) B 中 while(1)永遠(yuǎn)為真所以進(jìn)入死循環(huán),選項(xiàng)C 中while(n=10)同理,選項(xiàng) D 中for 循環(huán)沒有循環(huán)限定條件也將進(jìn)入無限循環(huán),值有選項(xiàng)A 中 while(n7,只要 n 的值大于 7,循環(huán)體就不斷執(zhí)行。在進(jìn)入循環(huán)時(shí),n 的值為 10。循環(huán)體內(nèi)
54、只有兩條語句,每循環(huán)一次,首先 n 的值減 1, 然后輸出 n 的值; 由于 n 的初值為 10, 所以執(zhí)行循環(huán)中的 n-;后,n 的值 依次為 9、8、7,并進(jìn)行輸出,printf 每執(zhí)行一次就在最后輸出一個(gè)換行符。當(dāng)n 的值為 7時(shí),while 的控制表達(dá)式 n7 的值已為 0,因此退出循環(huán)。2.答案:D解析:dowhile 語句構(gòu)成的循環(huán)可以用其他語句構(gòu)成循環(huán)來代替。但要注意,for 和 while語句構(gòu)成的循環(huán)不管循環(huán)控制的條件如何設(shè)置,循環(huán)體總要執(zhí)行一次。無論哪種循環(huán),break語句都可以退出循環(huán)。用dowhile 語句構(gòu)成的循環(huán)和 while 語句構(gòu)成的循環(huán)一樣,都是在while
55、后的表達(dá)式為零時(shí)結(jié)束循環(huán),非零時(shí)循環(huán)繼續(xù)。3.答案:C解析:本題中包含一個(gè) for 循環(huán),循環(huán)變量由 1 變化到 5,所以其循環(huán)體執(zhí)行5 次。 for 循環(huán) 體內(nèi)只有一條語句 sum+=sum ; ,它相當(dāng)于 sum=sum+sum;,此表達(dá)式的值只與變量 sum 有 關(guān),并執(zhí)行 5 次。觀察 sum 的值,可以發(fā)現(xiàn)程序沒有給它賦初值, 因此在第一次執(zhí)行 sum+sum的時(shí)候,sum 的值就是不確定的;在運(yùn)行此程序時(shí),系統(tǒng)會給出警告信息,提示用戶:sum在使用前沒有確定的值。4. 答案:A解析:此題中 for 循環(huán)的執(zhí)行次數(shù)取決于關(guān)系表達(dá)式(i=0,x=0,;i=9&x!=876;i+ )的結(jié)
56、果,值要 i9,或者 x=876。只要執(zhí)行 seanf 語句時(shí),從終端輸入 876,循環(huán)就將結(jié)束。如果從終端一直未輸入876,則 i值的增加使 i9,從而結(jié)束循環(huán)。按照題中所給定的for 語句,每執(zhí)行一次循環(huán),i 自增 1,因此執(zhí)行 10 次循環(huán)后,i 的值為 10,循環(huán)最終也將將結(jié)束。5. 答案:B解析:本例的關(guān)鍵是賦值表達(dá)式k=1。由于表達(dá)式 2 是賦值表達(dá)式 k=1,為真,因此執(zhí)行循環(huán)體,使 k 增 1,但循環(huán)再次計(jì)算表達(dá)式2 時(shí),又使 k 為 1,如此反復(fù)。6. 答案:C解析:本題所示的程序段包含了一個(gè)雙重循環(huán)。外層的循環(huán)控制變量是i,其初值是 1,沒循環(huán)一次,i 的值增 4。在執(zhí)行時(shí)
57、,i 的值依次是 1,5,9,13,當(dāng) i 的值達(dá)到17 時(shí),外層的 循環(huán)就結(jié)束,去執(zhí)行最后的printf 語句,因此外層循環(huán)執(zhí)行4 次。外層的循環(huán)體內(nèi)只包含了一條語句,也就是一個(gè)for 循環(huán),此內(nèi)層的循環(huán)控制變量是j,其初值是 3,每循環(huán)一次,j的值增 4,j 的值依次為 3,7,11,15,19,內(nèi)循環(huán)體執(zhí)行 5 次。內(nèi)循環(huán)體也只包含一條語 句 m+ ;,即每執(zhí)行一次內(nèi)循環(huán)體,m 的值增 1。 因?yàn)?m 的初值是 0。所以 m 的值就是內(nèi)循環(huán)總的循環(huán)次數(shù)。內(nèi)循環(huán)總的執(zhí)行次數(shù)是4(外循環(huán)執(zhí)行次數(shù))X5(內(nèi)循環(huán)次數(shù))=20,所以 m 的值為 20。7. 答案:D解析:本例涉及 break 語句,重在循環(huán)次數(shù)的判定。本例的循環(huán)由于無外出口, 只能借助 break 語句終止。鑒于題目要求說明判斷 ij 的執(zhí)行次數(shù),只需考查經(jīng)過 i+=k 運(yùn)算如何累計(jì) i 的值(每次累計(jì) i 的值,都會累計(jì)判別 ij 一次),i 值分別是 i=2、4、6、8、10、12,當(dāng) i 的值 為 12 時(shí)判斷 ij 為真,程序輸出 s 的值并結(jié)束,共循環(huán) 6次。8. 答案:B解析:for 循環(huán)的循環(huán)控制變量 y 的初值是 10,每循環(huán)一次,y 減 1,因此 y的值由 10 變化 到 1。for 循環(huán)中值包含了一條 if 語句,if 子句是一個(gè)復(fù)合語句
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級語文下冊 課文5 16 雷雨第1課時(shí)教學(xué)實(shí)錄 新人教版
- 合同范例中合同數(shù)大寫
- Unit 5 What color is it Part B(教學(xué)設(shè)計(jì))-2024-2025學(xué)年接力版(2024)英語三年級上冊
- 發(fā)票協(xié)議合同范例
- 中藥產(chǎn)品購銷合同范例
- 1919加盟合同范例
- 加工安裝協(xié)議合同范本
- 二手房過戶評估合同范例
- 臨時(shí)勞務(wù)雇傭合同范例
- 代建租賃住房合同范例
- 精神病學(xué)簡答題(溫州醫(yī)學(xué)院題庫)
- 上市公司組織架構(gòu)策略
- 上海交通大學(xué)有機(jī)化學(xué)課件第二章烷烴
- DB34∕T 3968-2021 橋梁健康監(jiān)測系統(tǒng)運(yùn)營維護(hù)與管理規(guī)范
- 加氣混凝土砌塊砌筑規(guī)范標(biāo)準(zhǔn)[詳]
- 定語從句漢譯英
- 財(cái)政部金融企業(yè)不良資產(chǎn)批量轉(zhuǎn)讓管理辦法(財(cái)金[2012]6號)
- 倉庫管理警示標(biāo)語
- 天然氣次高壓管線工程焊接施工方案和措施
- 項(xiàng)目量產(chǎn)移交點(diǎn)檢表
- 功率因數(shù)角對應(yīng)正切值
評論
0/150
提交評論