C語(yǔ)言復(fù)習(xí)結(jié)構(gòu)框架知識(shí)點(diǎn)(DOC)_第1頁(yè)
C語(yǔ)言復(fù)習(xí)結(jié)構(gòu)框架知識(shí)點(diǎn)(DOC)_第2頁(yè)
已閱讀5頁(yè),還剩62頁(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、第 1頁(yè) 共 53頁(yè) 常量 變量運(yùn)算符 單分支選擇 分支選擇 多分支選擇 嵌套選擇 C程序設(shè)計(jì)基礎(chǔ) 選擇結(jié)構(gòu) 數(shù)組 文件&編譯系統(tǒng) 預(yù)處理 文件 -_ 子符串 字符趣 while皤環(huán)涪句 cf 口whilE話不吾旬 檢傑環(huán)語(yǔ)句 跳轉(zhuǎn)語(yǔ)人 循環(huán)戰(zhàn)套丿 define typedef include 打開&關(guān)閉 定位 諛寫 思維導(dǎo)圖 1 : C 語(yǔ)言程序設(shè)計(jì)知識(shí)結(jié)構(gòu) 函數(shù)達(dá)義 1函數(shù)調(diào)用 概念&定義 引用&運(yùn)算 指針與數(shù)組 指針I(yè)行指針 丫指針數(shù)組 卜指軟與函數(shù) 指向指針的指針 結(jié)構(gòu)體& 共用體 結(jié)構(gòu)體展共用體)類型定義 結(jié)構(gòu)體(&共用體)變量 結(jié)構(gòu)體

2、數(shù)組 結(jié)構(gòu)體指針 鏈表 第 2頁(yè) 共 53頁(yè) 就阿牯點(diǎn)瓷常特”:筑入聯(lián)址: / 3HA J gdchaitl 鴨 昶弊橄包刊劇 第一課C語(yǔ)言程序設(shè)計(jì)基礎(chǔ) 鴦入&輸出函數(shù) G程序框架 庫(kù)函數(shù) 救學(xué)函敎 戲目預(yù)算符 住邏輯運(yùn)算符 運(yùn)舜符 邏輯廷諄符 用戶自定義函數(shù)(詳見函叢章) 11 淚&苗瞞 咗邊 1 St 右邊:斐量、常量叢迖式 十丸進(jìn)制営亀 :卜 9.日、口或恥 F 床示,側(cè)或(凋開頭) 字符型 char (1字節(jié)) (type) +-低血廠&叩握坦薊緲 f 單目運(yùn)第符 - *Q - 錢畑L整型 宀上位移運(yùn)算符 關(guān)系預(yù)弊符 PM馭控帶埼捫卷詭 double (8孚節(jié))

3、 0 12 小歡形式 - 實(shí)型 - - -z I 加削錦制 施 呵加或字謗!求和懺 a 普通亭幕 嘗 轉(zhuǎn)字荷I乎符型 2了 C +進(jìn)制常竄 (0-姬說(shuō)首也不能是 0) 三目運(yùn)算符 談值預(yù)算符/ 逗號(hào)運(yùn)算符 ht (2字節(jié)) 整型 bug (4字節(jié)) 第 3頁(yè) 共 53頁(yè) strcmpl靜串入宇髀 2)埴 ,f 皿W(李砸弄W 姻 字符串處理函裁./ - . st 曲笫制組,罕捋判 擁 思維導(dǎo)圖 2 :第一課 C 語(yǔ)言程序設(shè)計(jì)基礎(chǔ)第 4頁(yè) 共 53頁(yè) 本課主要知識(shí)點(diǎn): 1.知識(shí)點(diǎn):C 程序基礎(chǔ) C 語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言。三種基本結(jié)構(gòu): 順序、選擇、循環(huán)。 例 1:( 2010-09-11

4、)以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是( C) A) 一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成 B) 結(jié)構(gòu)化程序使用 goto 語(yǔ)句會(huì)很便捷 C) 在 C 語(yǔ)言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的 D) 由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問(wèn)題 例 2:(2011-03-26)計(jì)算機(jī)高級(jí)語(yǔ)言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種, 以下敘述中正確的是(A) A) C 語(yǔ)言程序僅可以編譯執(zhí)行 B) C 語(yǔ)言程序僅可以解釋執(zhí)行 C) C 語(yǔ)言程序既可以編譯執(zhí)行又可以解釋執(zhí)行 D) 以上說(shuō)法都不對(duì) 【解析】計(jì)算機(jī)不能直接理解高級(jí)語(yǔ)言, 只能直接理解機(jī)器語(yǔ)言, 所以必須要把高 級(jí)語(yǔ)言翻譯

5、成機(jī)器語(yǔ)言,計(jì)算機(jī)才能執(zhí)行高級(jí)語(yǔ)言編寫的程序。 翻譯的方式有兩 種,一個(gè)是編譯,一個(gè)是解釋。 C 語(yǔ)言程序僅可以編譯。 例 3:(2011-03-26)以下敘述中錯(cuò)誤的是 (D) A) C 語(yǔ)言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的 B) 用 C 語(yǔ)言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行 C) 通過(guò)編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行 D) 在沒(méi)有安裝C語(yǔ)言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行 C 源程序生成的.exe 文件 【解析】C 程序開發(fā)過(guò)程:編輯一 (.c)編譯一 (.obj)鏈接一 可執(zhí)行文件(.exe) 2知識(shí)點(diǎn):C 語(yǔ)言程序的構(gòu)成 C 程序是由函數(shù)構(gòu)成的,一個(gè) C 程序有且僅有一個(gè)

6、main 函數(shù)。一個(gè)函數(shù) 由兩部分組成:函數(shù)的首部和函數(shù)體。函數(shù)體包括聲明部分和執(zhí)行部分。 一個(gè) C 程序總是從 main 函數(shù)開始執(zhí)行 (即程序的入口),由 main 函數(shù)結(jié)束,(即程序的 出口)。 例 1: (2010-03-12)以下敘述正確的是( B) A) C 語(yǔ)言程序是由過(guò)程和函數(shù)組成的 B) C 語(yǔ)言函數(shù)可以嵌套調(diào)用,例如: fun(fun(x) C) C 語(yǔ)言函數(shù)不可以單獨(dú)編譯 D) C 語(yǔ)言中除了 main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在 例 2:(2011-09-11)以下敘述中錯(cuò)誤的是 (C) A. C 語(yǔ)言編寫的函數(shù)源程序,其文件名后綴可以是 C B. C 語(yǔ)言編

7、寫的函數(shù)都可以作為一個(gè)獨(dú)立的源程序文件 C. C 語(yǔ)言編寫的每個(gè)函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行 D. 個(gè) C 語(yǔ)言程序只能有一個(gè)主函數(shù) 3知識(shí)點(diǎn):標(biāo)識(shí)符 命名規(guī)則: 標(biāo)識(shí)符中只能包含字母 (a-z,A-Z),數(shù)字(0-9),下劃線(_) o 類型說(shuō)明符:in t,float,double 等 語(yǔ)句定義符: if , for,while 等 庫(kù)函數(shù)的名字: printf , scanf 等 編譯預(yù)處理命令名:in clude 等 格式合法,ii 不能使用關(guān)鍵字,iii 見名知意 例 1: (2010-03-13)以下 C 語(yǔ)言用戶標(biāo)識(shí)符中,不合法的是( D) A)_1 B)AaBc C)a_b

8、D)a-b 4知識(shí)點(diǎn):數(shù)據(jù)類型 例 1: (2010-03-16 )以下關(guān)于 C 語(yǔ)言數(shù)據(jù)類型使用的敘述中錯(cuò)誤的是( D) 第一個(gè)字符必須是字母或下劃線。 分類 關(guān)鍵字(32 個(gè)) (有固定含義,不可改變) 預(yù)定義標(biāo)識(shí)符 匚(有特殊含義,可以改變) 用戶自定義的標(biāo)識(shí)符 i 都 是- 小 寫 第 5頁(yè) 共 53頁(yè) A) 若要準(zhǔn)確無(wú)誤差的表示自然數(shù),應(yīng)使用整數(shù)類型 B) 若要保存帶有多位小數(shù)的數(shù)據(jù),應(yīng)使用雙精度類型第 6頁(yè) 共 53頁(yè) 一個(gè)基本數(shù)據(jù)類型或又是一個(gè)構(gòu)造類型, 項(xiàng)錯(cuò)誤。 例 2:(2011-03-26)定義無(wú)符號(hào)整數(shù)類為 (B) A) -369 B)369 C)0.369 【解析】無(wú)符

9、號(hào)整數(shù)類型為只有正整數(shù)和 5知識(shí)點(diǎn):常量 整型常量 十進(jìn)制整常數(shù):沒(méi)有前綴,其數(shù)碼為 八進(jìn)制整常數(shù):以 0 開頭,其數(shù)碼為 十六進(jìn)制整常數(shù):以 無(wú)符號(hào)數(shù):整型常數(shù)后綴為 U 或 u。例如 158u 實(shí)型常量的形式 小數(shù)形式:必須有小數(shù)點(diǎn),小數(shù)點(diǎn)前后不能同時(shí)沒(méi)有數(shù)字。 指數(shù)形式:aEn (其中 a 表示十進(jìn)制數(shù),E 階碼標(biāo)志,n階碼)。E 前 E 后必須有數(shù) 字,E 后必為整數(shù),可以帶符號(hào)。 例如 2.1E-3、5E8 例 1:( 2011-09-13)以下選項(xiàng)中關(guān)于 C 語(yǔ)言常量的敘述錯(cuò)誤的是: (D) A. 所謂常量,是指在程序運(yùn)行過(guò)程中,其值不能被改變的量 B. 常量分為整型常量、實(shí)型常量

10、、字符常量和字符串常量 C. 常量可分為數(shù)值型常量和非數(shù)值型常量 D. 經(jīng)常被使用的變量可定義成常量 【解析】根據(jù)常量的基本概念,則不難判斷 A、B、C 均正確。 例 1:(2009-04-13)以下選項(xiàng)中,能用作數(shù)據(jù)常量的是( D) E 后必為整數(shù),故 C 項(xiàng)錯(cuò)誤;長(zhǎng)整型數(shù)后綴為 L 或 I,故 D 項(xiàng)正確。 例 2:(2010-03-26)以下選項(xiàng)中可用作 C 程序合法實(shí)數(shù)的是( A) A) .1e0 B)3.0e0.2 C)E9 D)9.12E 【解析】實(shí)型指數(shù)表示方式 E 前 E 后比有數(shù),E 后必須是整數(shù),故選 A 字符常量:用 單引號(hào)括起來(lái) 的一個(gè)字符。包括普通字符常量和轉(zhuǎn)義字符。

11、 普通字符常量:如 a、A 、1。 轉(zhuǎn)義字符:由一對(duì)單引號(hào)引起來(lái)的以 開頭的若干字符的組合。如 n表示回車 換行、表示反斜線符、表示單引號(hào)符、 表示雙引號(hào)、ddd表示八 進(jìn)制數(shù)、xhh 表示十六進(jìn)制數(shù)。 例 3: (2010-09-15)以下選項(xiàng)中能表示合法常量的是( C) A) 整數(shù):1,200 B)實(shí)數(shù):1.5E2.0 C)字符斜杠: D )字符串: 007 ” 【解析】表示整常量不能用逗號(hào)分隔, A 項(xiàng)錯(cuò)誤;實(shí)型常量的指數(shù)形式 E 后必為 整數(shù),故 B 項(xiàng)錯(cuò)誤;007是轉(zhuǎn)義字符,只能用單引號(hào)括起來(lái),不能用雙引號(hào)或其 他括號(hào),C) 若要處理如人員信息等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體

12、類型 D) 若只處理真和假兩種邏輯值,應(yīng)使用邏輯類型 【解析】結(jié)構(gòu)數(shù)據(jù)類型是根據(jù)已定義的一個(gè)或多個(gè)數(shù)據(jù)類型用構(gòu)造的方法來(lái)定義 的,一個(gè)結(jié)構(gòu)類型的值可以分解成若干個(gè)成員或元素 ,每個(gè)成員都是 C 項(xiàng)正確。C 語(yǔ)言沒(méi)有邏輯類型,故 D Ulnt,下面可以作為類 Ulnt 實(shí)例化值的是 D)整數(shù)集合123,4,5 0,所有選擇 B。 0-9。例如 65535,-568 0-7。例如 015 0-9,A-F 或 a-f。例如 0 x2A 長(zhǎng)整型數(shù):整型常數(shù)后綴為 0X 或 0 x開頭,其數(shù)碼為 L 或 I。例如 358000L A)o115 B)0118 C)1.5e1.5 D)115L 【解析】八進(jìn)

13、制整常數(shù)以 0 開頭,A 項(xiàng)錯(cuò)誤;八進(jìn)制整常數(shù)的數(shù)碼味 0-7,B 項(xiàng)錯(cuò) 誤;實(shí)型常量的指數(shù)形式 第 7頁(yè) 共 53頁(yè) 故 D 項(xiàng)錯(cuò)誤。例 4: (2010-03-26)以下選項(xiàng)中不能用作 C 程序合法常量 的是(B) A) 1,234 B)123 C)123 D)x7G 【解析】A 中的;在編譯時(shí)會(huì)出錯(cuò)的,直接寫成 1234 即可,B 是一個(gè)三位八進(jìn) 制數(shù)代表的字符,C 是一個(gè)數(shù)字常量,D 是一個(gè)字符串,其中x7 是一個(gè)一位十六 進(jìn)制數(shù)代表的字符,也即 D 中的字符串是兩個(gè)字符,如果 sizeof 的話是 3,如果 strlen 的話是 2。6知識(shí)點(diǎn):變量 不是單個(gè)字符,故 C 項(xiàng)錯(cuò)誤。 整

14、型變量和實(shí)型變量 以考試標(biāo)準(zhǔn) Viusal C+6.0 為例,說(shuō)明各類型變量所占的位數(shù)。 類型 所占 位數(shù) 所占 字節(jié)數(shù) 類型 所占 位數(shù) 所占 字節(jié)數(shù) short 16 2 un sig ned int 32 4 int 32 4 un sig ned long 32 4 long 32 4 float 32 4 un sig ned short 16 2 double 64 8 例 1: ( 2010-09-38)有以下程序 #i nclude mai n(0) int s,t,A=100;double B=6; s=sizeof(A); t=sizeof(B); printf( n”,s

15、,t); 在 VC6 平臺(tái)上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是 (C) A) 2,4 B)4,4 C)4,8 D)10,6 【解析】在 VC6 平臺(tái)上,int 型占 4 個(gè)字節(jié),double 型占 8 個(gè)字節(jié),故答案是 C。 字符變量:一個(gè)字符變量只能存放一個(gè)字符。字符串不能存放在字符變量中, 只能用字符數(shù)組或指針存放字符串。 例 1:( 2009-09-22 )有以下定義語(yǔ)句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是 (C) A) char a= B)char a= n; C) char a= aa; D)char a= x2d 【解析】一個(gè)字符變量只能存放一個(gè)字符, A 項(xiàng)字符變量存放的是普通字符常量; B

16、、D 項(xiàng)字符變量存放的轉(zhuǎn)義字符; 字符常量只能是單個(gè)字符, 不能是字符串,a 第 5頁(yè) 6知識(shí)點(diǎn):變量 不是單個(gè)字符,故 C 項(xiàng)錯(cuò)誤。 7知識(shí)點(diǎn):ASCII 碼 0的 ASCII 碼值為 48; A的 ASCII 碼值為 65; d的 ASCII碼值為 97。 大寫字母與小寫字母的 ASCII碼值相差 32。 例 1 :( 2009-09-23)有以下程序 #i nclude mai n() char c1,c2; c 仁 4 c2= 5; printf( n”,c1,c2); 已知字母 A 的 ASCII 碼為 65,程序運(yùn)行后的輸出結(jié)果是( A) A) E,68 B)D,69 C)E,D

17、D)輸出無(wú)定值 【解析】 A的 ASCII 碼值為 65, 的 ASCII碼值為 56, 的 ASCII碼值為 52,65+56-52=69,對(duì)應(yīng)于字符E。的 ASCII 碼值為 53,65+56-53=68,對(duì)應(yīng)于字 符D 字符變量 c1 以%c格式輸出,即 字符變量 c2 以%d 格式輸出,即 68。 故答案是 A。 &知識(shí)點(diǎn):進(jìn)制轉(zhuǎn)換 十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制:將十進(jìn)制的數(shù)字除以 2(8、16), 得到的商數(shù)繼續(xù)除以 2,直到商為 0,然后將各次相除所得的余數(shù)從后往前排列。 二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制:將二(八、十六)進(jìn)制數(shù)的每一位 數(shù)從高位到低位乘以 2

18、的 n-1 次幕,n為該位所在的位數(shù)。 二進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換:每個(gè)八進(jìn)制數(shù)字轉(zhuǎn)換成 3 位二進(jìn)制數(shù)字。 二進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換:每個(gè)十六進(jìn)制數(shù)字轉(zhuǎn)換成 4 位二進(jìn)制數(shù)字。 共 53頁(yè)第 10頁(yè) 共 53頁(yè) 例 1:( 2010-09 )以下程序運(yùn)行后的輸出結(jié)果是 2008 。 #i nclude mai n() int a=200,b=010; printf “ %d%dn ” ,a,b); 【解析】八進(jìn)制數(shù) 010 轉(zhuǎn)換成十進(jìn)制數(shù)為 8,按 %d%d 格式分別輸出 a、b,即 % :參與運(yùn)算的量均為整型。 /:當(dāng)除號(hào)左右兩邊都是整數(shù)的時(shí)候,商也要是 整數(shù),如果不是整數(shù)則舍棄小數(shù)部 分

19、。當(dāng)參與運(yùn)算量有一個(gè)為實(shí)型,則商為 double 型。 例 1: ( 2011-09-14)若有定義語(yǔ)句:int a=10;double b=3.14;,則表達(dá)式A +a+b 值 得類型是 (C) A. char B.i nt C.double D.float 【解析】各種類型數(shù)據(jù)混合運(yùn)算時(shí),最終結(jié)果的類型可依據(jù)以下轉(zhuǎn)換規(guī)律: 2008。 9知識(shí)點(diǎn):運(yùn)算符的優(yōu)先級(jí) 級(jí)別由大到?。?邏輯)非 算(術(shù)運(yùn)算符)關(guān)(系運(yùn)算符)(邏輯)與 (邏 輯)或 條(件運(yùn)算符)賦(值運(yùn)算符) 10. 知識(shí)點(diǎn):強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 一般形式:(類型說(shuō)明符)(表達(dá)式) 功能:把表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型說(shuō)明符所表示

20、的類型 例 1: ( 2009-04-06)表達(dá)式(int)(double)(5/2)+2.5)的值是 4。 【解析】(int)(double)(5/2)+2.5 )宀(int)(double)2)+2.5 ) (int)(2.000000+2.5) T (in t)(4.500000) 4。 例 2:以下程序運(yùn)行后的輸出結(jié)果是 ()。 main () int a; a=(i nt)(double)(3/2)+0.5+(i nt)1.99*2); prin tf(%dn,a); 答案:3 【解析】(3/2)=1 , (double)(3/2)+0.5=1.5 , (in t)1.99*2=2

21、,所以 (double)(3/2)+0.5+(int)1.99*2=3.5 ,故 a=3。 11. 知識(shí)點(diǎn):算術(shù)運(yùn)算符:+、一、*、人% char - short - int - long - float - double 例 1: (2011-09-15)如有定義語(yǔ)句:int x=12,y=8,z;,在其后執(zhí)行語(yǔ)句 z=0.9+x/y,則 z 的值為(B) A.1.9 B.1 C.2 D.2.4 【解析】x,y,z 均為整型變量,因此 x/y 結(jié)果為 1,即 z=0.9+1=1.9 , z 最終結(jié)果為 1 例 1: (2010-09-14)有以下定義:int a; long b; doubl

22、e x, y;則以下選項(xiàng)中正確 的表達(dá)式是(A) A) a%(int)(x-y) B)a=x!=y ; C) (a*y)%b D)y=x+y=x 【解析】參與%運(yùn)算的左右操作數(shù)均為整型,故 A 項(xiàng)正確,C 項(xiàng)錯(cuò)誤。B 項(xiàng)是賦值 語(yǔ)句,不是表達(dá)式。賦值運(yùn)算符左邊必須是變量, 而不是表達(dá)式,而 D 項(xiàng)中 x+y=x , 錯(cuò)誤。 12知識(shí)點(diǎn):逗號(hào)表達(dá)式 一般形式:表達(dá)式 1,表達(dá)式 2. 表達(dá)式 n 求值過(guò)程:自左向右依次求解,最后一個(gè)表達(dá)式的值為 整個(gè)逗號(hào)表達(dá)式的值。 例 1 : (2009-04-14 )設(shè)有定義:int x=2 ;以下表達(dá)式中,值不為 6 的是(D ) 第 11頁(yè) 共 53頁(yè)

23、A) x*=x+1 B)x+,2*x C)x*=(1+x) D)2*x,x+=2 【解析】A 項(xiàng) x=x*(x+1)=2*(2+1)=6 ; B 項(xiàng) x+后,x 的值為 3,2*x的值為 6,整個(gè) 逗號(hào)表達(dá)式的值為 6; C 項(xiàng) x=x*(1+x)=2*3=6 ; D 項(xiàng) x=x+2=2+2=4,整個(gè)逗號(hào)表達(dá) 式的值為 4。故答案是 D。 13. 知識(shí)點(diǎn):自增自減運(yùn)算符 +i i 自加 1 后再參與運(yùn)算 i+ i 參與運(yùn)算后再自加 1 -i i 自減 1 后再參與運(yùn)算 i- i 參與運(yùn)算后再自減 1 +和-的運(yùn)算對(duì)象只能為變量,不能是常量或表達(dá)式。 例 1: ( 2009-09-06 )若有定

24、義語(yǔ)句:int a=5 ;則表達(dá)式:a+的值是_5 _ 。 【解析】表達(dá)式 a+的值是 a 未加 1 之前的值,即 5。. 當(dāng)+或一與 printf 語(yǔ)句結(jié)合時(shí),若+/-X 的形式,則先自增/自減,然后輸出; 若 x+/-的形式,則先輸出 x原值,在進(jìn)行自增/自減操作。 例 2: (2011-03-26 )有以下程序 #i nclude main () int x=011; prin tf(%dn,+x); 程序運(yùn)行后的輸出結(jié)果是(C) A) 12 B)11 C)10 D)9 【解析】011 是一個(gè)八進(jìn)制的數(shù),轉(zhuǎn)為十進(jìn)制則為 1*8+1=9 ; +x 是 x 先自增 1 再 參與其他運(yùn)算,所以

25、先 x 自增 1 為 10 再輸出即為 10,故選 C。 14. 知識(shí)點(diǎn):賦值表達(dá)式 一般形式:變量名=表達(dá)式 賦值運(yùn)算符左邊必須是變量,而不是表達(dá)式。 例 1: (2010-03-14 )若有定義:double a=22;int i=0,k=18 ;則不符合 C 語(yǔ)言規(guī) 定的賦值語(yǔ)句是(C) A) a=a+, i+ ; B)i= (a+k) =(i+k) ; C)i=a%11 ; D)i=!a ; 【解析】a 為 double 型,參與%運(yùn)算的操作數(shù)均為整型,故 C 項(xiàng)錯(cuò)誤。 例 2: ( 2011-03-26 )若有定義語(yǔ)句:int a=3,b=2,c=1;,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá) 式是

26、(A) A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c; D)a=1+(b=c=4); 【解析】賦值表達(dá)式的左邊必須是變量不能是表達(dá)式。而答案 A 中,(b =4) 個(gè)賦值表達(dá)式。 復(fù)合賦值運(yùn)算符和表達(dá)式 +=、一 =、*=、/=、=、=、 &=、 A=、 | = 例 2: (2010-09-16 )表達(dá)式 a+=a-=a=9 的值是(D) A) 9 B)-9 C)18 D)0 【解析】賦值運(yùn)算符的結(jié)合性是從右到左, a=9 a=a-9=0 宀 a=a+0=0+0=0。故答案 是 Do 15知識(shí)點(diǎn):位運(yùn)算 按位與運(yùn)算& 規(guī)則:0&0=0 0&am

27、p; 1=0 1& 0=0 1& 1=1 按位或運(yùn)算 I 規(guī)則:0|0=0 0| 仁 1 1|0=1 1| 仁 1 按位異或運(yùn)算人 規(guī)則:0 A 0=0 0 A 仁 1 1 A 0=1 1 A 仁 0 求反運(yùn)算 規(guī)則:0=1 仁 0 左移運(yùn)算 規(guī)則:把 左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,高位丟棄,低位補(bǔ) 0o左移 n 第 12頁(yè) 共 53頁(yè) 一位相當(dāng)于該數(shù)乘以 2o左移 n位相當(dāng)于該數(shù)乘以 2。 例 1 : (2010-09-40 )有以下程序 #in clude 第 8頁(yè) printf( %dn”,r1); 輸出結(jié)果是(C) c=c _ D _ ; printf( %dn

28、 ,c); 若要使程序的運(yùn)行結(jié)果為 248,應(yīng)在下劃線處填入的是 A) 2 B)|248 C)&0248 D)1 相當(dāng)于 124 乘以 2,等于 248。故答 案是Do 例 2: (2009-04-39)有以下程序 #i nclude mai n() int a=5,b=1,t ; t=(a2)|b ; printf( n”,t); 程序運(yùn)行后的輸出結(jié)果是(A) A) 21 B)11 C)6 D)1 2 【解析】左移 2 位相當(dāng)于該數(shù)乘以 2 o 5 把 左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位。 高位補(bǔ) 0,低位丟棄。右移一位相 n 當(dāng)于該數(shù)除以 2o右移 n位相當(dāng)于除以 2 o 例 3

29、: (2009-09-39)若有以下程序段 int r=8 ; A) 16 B)8 C)4 D)2 【解析】右移一位相當(dāng)于該數(shù)除以 2o 81 相當(dāng)于除以 2,等于 4,故答案是 Co 16知識(shí)點(diǎn):關(guān)系運(yùn)算符和表達(dá)式 例 1 : (2010-09-08 )在 C 語(yǔ)言中,當(dāng)表達(dá)式值為 0 時(shí)表示邏輯值假,當(dāng)表達(dá)式 值為_ 非 0 時(shí)表示邏輯值真 。 例 2 : ( 2010-03-06 )設(shè) x 為 int 型變量,請(qǐng)寫出一個(gè)關(guān)系表達(dá)式 (x%3=0)&(x%7=0) ,用以判斷 x同時(shí)為 3 和 7 的倍數(shù)時(shí),關(guān)系表達(dá)式的 值為真。 仃知識(shí)點(diǎn):邏輯運(yùn)算符和表達(dá)式 邏輯運(yùn)算符優(yōu)先級(jí)從高

30、到低:!、&、| 邏輯運(yùn)算的真值表 a b a&b a|b !a 真 真 真 真 假 真 假 假 真 假 假 真 假 真 真 假 假 假 假 真 進(jìn)行邏輯運(yùn)算時(shí), 若&左邊的值為 0,則不再對(duì)右邊的運(yùn)算對(duì)象進(jìn)行運(yùn)算, 整個(gè)表達(dá)式的值為 0o 例 1: (2011-09-17)若有定義語(yǔ)句:int k1=10,k2=20;,執(zhí)行表達(dá)式(k1=k1k2 ) &(k2=k2k1)后,k1 和 k2 的值分別為 (B) A. 0 和 1 B.0 和 20 C.10 和 1D. 10 和 20 mai n() short c=124; 第 8頁(yè) 【解析】k1k2 為假,因

31、此 k1= k1k2 結(jié)果 0,邏輯與左邊表達(dá)式為假,右邊表達(dá) 共 53頁(yè)第 15頁(yè) 共 53頁(yè) 式不再處理,因此 k1 結(jié)果為 0, k2 不變,仍為 20 例 2: int a=2 ;則表達(dá)式(!a=1)&(a+=2)的值為 0, a 的值為 2。 【解析】! a 為 0,! a=1 的值為 0,&左邊的值為 0,則不再對(duì)右邊的運(yùn)算對(duì)象進(jìn) 行運(yùn)算,所以 a 的值為 2。 若|左邊的運(yùn)算對(duì)象的值為 1,則不再對(duì)右邊的運(yùn)算對(duì)象進(jìn)行運(yùn)算,整個(gè)表達(dá) 式的值為 1。 例 2:(2010-03-17)若 a 是數(shù)值類型,則邏輯表達(dá)式 (a=1)|(a!=1)的值是(A) A) 1 B)

32、0 C)2 D)不知道 a 的值,不能確定 【解析】a 的值有兩種情況:a 等于 1 或 a 不等于 1。故邏輯表達(dá)式(a=1)|(a!=1) 的值為 1。 18.知識(shí)點(diǎn):格式輸入函數(shù) printf() (1) 一般形式:printf(格式控制字符串,輸出列表); (2) 遇到控制字符,按照控制字符的規(guī)定輸出, 遇到非格式字符串按原樣輸出 。 例 1: (2009-04-07)若變量 x,y 已定義為 int 類型且 x 的值為 99,y 的值為 9,請(qǐng)將 輸出語(yǔ)句printf( x/y=%d x/y);補(bǔ)充完整,使其輸出的計(jì)算結(jié)果形式為:x/y=11。 例 2: (2009-04-15 )程

33、序段:int x=12;double y=3.141593;printf( %d%8.6f ”,x,y) ; 的 輸出結(jié)果是(A) A) 123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930 【解析】以%8.6f 格式輸出,即輸出的總寬度為 8,小數(shù)的位數(shù)為 6。 佃知識(shí)點(diǎn):格式輸入函數(shù) scanf() (1) 一般形式:scanf(格式控制字符串地址列表); (2 )若格式控制字符串中有非格式字符串,則按原樣輸入。若格式控制字符串中 沒(méi)有非格式字符作輸入數(shù)據(jù)之間的間隔,則可用空格、 Tab、回車作間隔。 例 1: (2011-09-16)若

34、有定義:int a,b;,通過(guò)語(yǔ)句 scanf( %d;%d ,&a,&b);,能把整數(shù) 3賦給變量 a,5 付給變量 b 的輸入數(shù)據(jù)是 A.3 5 B.3,5 C.3 ; 5 D.35 【解析】scanf 格式字符串中兩個(gè) %d 之間帶有非格式字符分號(hào), 運(yùn)行時(shí)應(yīng)原樣輸入。 例 1: (2005-04-19)有以下程序 mai n() int m, n,p; scanf( m=%dn=%dp=%d ,&m,&n,&p); printf( %d%d%dn ,m,n,p); 若想從鍵盤上輸入數(shù)據(jù),使變量 m 中的值為 123, n中的值為 456 ,p 中

35、的值為 789, 則正確的輸入是(A) A) m=123n=456p=789 B)m=123 n=456 p=789 C) m=123 ,n=456,p=789 D)123 456 789 【解析】scanf( m=%dn=%dp=%d ,&m,&n,&p); 格式控制字符串中有非格式字符 串,則按原樣輸入,故答案是 A。 例 2: (2011-03-26)有以下程序段 char n ame20; int num; sca nf(” name=%s num=%d, name;&nu m); 當(dāng)執(zhí)行上述程序,并從鍵盤輸入: name=Lili num=1001后,

36、name 的值(A) A)Lili B)n ame=Lili C)Lili num= D)n ame=Lili num=1001 【解析】scanf 中格式字符串的非格式字符串原樣輸入,如其中的 name=和 num=,所以接受到的 name 值是后面的 Lili, num 值為 1001。故選 A。 (3) 在輸入字符數(shù)據(jù)時(shí),若格式控制字符串中無(wú)非格式字符,則認(rèn)為所有輸入的 字符均為有效字符。 空格會(huì)被當(dāng)作字符賦值給變量。 例 3:( 2009-04-23)有以下程序 第 16頁(yè) 共 53頁(yè) #i nclude mai n() int a1,a2; char c1,c2; seanf( %d

37、%c%d%c &a1,&c1,&a2,&c2); printf( %d,%c,%d,%ca1,c1,a2,c2); 若想通過(guò)鍵盤輸入,使得 al 的值為 12, a2 的值為 34, cl 的值為字符 a, c2 的值 為字符 b,程序輸出結(jié)果是:12, a, 34, b 則正確的輸入格式是(以下 代表空格, 代表回車) A)12a34b B)12_a_34_b C)12,a,34,b D)12_a34_b 【解析】空格會(huì)被當(dāng)作字符賦值給變量,故 B、D 錯(cuò)誤;C 項(xiàng)中逗號(hào)會(huì)被當(dāng)作字符 賦值給變量,故 C 項(xiàng)錯(cuò)誤。 (4) 格式字符串 一般形式:%*輸入數(shù)據(jù)寬度

38、長(zhǎng)度類型 *表示該輸入項(xiàng),讀入后不賦予相應(yīng)的變量。 輸入數(shù)據(jù)寬度:用十進(jìn)制數(shù)指定輸入的字符數(shù)。 例 4: (2010-09-07)有以下程序 #in clude mai n() int x,y; scanf( %2d%ld &x,&y); printf( %dnx+y); 程序運(yùn)行時(shí)輸入:1234567 程序的運(yùn)行結(jié)果是 _ 34579 _。 【解析】%2d 輸入的數(shù)據(jù)寬度為 2, x的值為 12, y 的值為 34567, x+y=34579。 例 5: (2009-04-16)若有定義語(yǔ)句:double x,y,*px,*py ;執(zhí)行了 px=&x ; py=&am

39、p;y ; 之后,正確的輸入語(yǔ)句是 (C) A) scanf( %f%f x,y); B)scanf( %f%f,&x,&y); C)scanf( %lf%le ,px,py); D)scanf( %lf%lf x,y); 【解析】A、D 項(xiàng)地址列表,應(yīng)為&x,&y ;x、y 為 double 型,格式控制字符串不是 %f%f, 故B 項(xiàng)錯(cuò)誤。 當(dāng)定義的變量類型和 scanf 中格式符類型不一致時(shí)(這里只限定在字符型 和整型兩種類型,其他數(shù)據(jù)類型不可以。)整型和字符型之間通過(guò) ASCALL 可 以相互轉(zhuǎn)化。 例 6: (2011-03-12)有以下程序 (說(shuō)明:

40、字符 0 的 ASCII 碼值為 48) mai n() char c1,c2; scan f(%d,&c1); c2=c1+9; prin tf(%c%c n,c1,c2); 若程序運(yùn)行時(shí)從鍵盤輸入 48回車,則輸出結(jié)果為 (09)。 【解析】輸入 48,則 c 仁 48, c2=48+9,以字符輸出 c1 和 c2,則為輸出 ASCII 碼 為 48 和57 對(duì)應(yīng)的字符,分別為 0 和 9。 20知識(shí)點(diǎn):字符輸出函數(shù) putchar() 一般形式:putchar( a); putchar( 101 ); 21知識(shí)點(diǎn):字符輸入函數(shù) getchar() 一般形式:getchar();

41、或 ch=getchar(); 例 1 : (2010-03-15)有以下程序 #i nclude mai n() char a,b,c,d; scanf( %c%c&a,&b); c=getchar(); d=getchar(); printf( %c%c%c%cn a,b,c,d); 第 17頁(yè) 共 53頁(yè) 當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第 1 列開始,代表回車,注意:回 車也是一個(gè)字符) 12 34 則輸出結(jié)果是(B) A)1234 B)12 C)12 D)12 3 34 【解析】以c 格式讀取一個(gè)字符,以 getchar()形式也是讀取一個(gè)字符。空格會(huì)被 當(dāng)作字符

42、賦值給變量。所以, a=1,b=2 ,c= n,d=。 getchar 經(jīng)常作為 while 循環(huán)條件,判斷輸入哪一個(gè)字符時(shí),循環(huán)結(jié)束。例如, 輸入字符串,直到輸入0,程序結(jié)束,則可寫成 while( getchar()!=O) 例 2: (2011-03-26)有以下程序段 mai n() while( getchar()!=n); 以下敘述中正確的是(C) A) 此 while 語(yǔ)句將無(wú)限循環(huán) B) getchar()不可以出現(xiàn)在 while 語(yǔ)句的條件表達(dá)式中 C) 當(dāng)執(zhí)行此 while 語(yǔ)句時(shí),只有按回車鍵程序才能繼續(xù)執(zhí)行 D) 當(dāng)執(zhí)行此 while 語(yǔ)句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行

43、【解析】while 條件表達(dá)式 getchar()!=n只要輸入的字符不是回車,就一直執(zhí)行循 環(huán),而循環(huán)內(nèi)是一個(gè)空語(yǔ)句,所以按回車鍵程序才能繼續(xù)執(zhí)行,選擇 Co第 18頁(yè) 共 53頁(yè) I條件表達(dá)式 TflRjn: break; Lfl磁起 式 紐武3 第二課選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu) 3 if表達(dá)式H 語(yǔ)旬1: else iN表達(dá)式2)語(yǔ)句也 else i表達(dá)式3)語(yǔ)句3; 十 else 語(yǔ)句n; 只執(zhí)行溝足條 件的那旬 switch俵達(dá)式 case$ 達(dá)式 1; casefr表達(dá)式2: caseX量表達(dá)式也 default:謫句rwd; 暹旬仏break; 誥應(yīng);braak if(壷達(dá)式D if(表

44、達(dá)式2) M1; else 語(yǔ)旬2: else語(yǔ)句玉 el%永遠(yuǎn)是和 蔑它怎近且 沒(méi)育配對(duì)的if 配對(duì) 注意 衢環(huán)體有可能 F 也不執(zhí)行” 渭環(huán)體牛一般有便循環(huán)趟問(wèn)皓東的悟色 形式/流程 丁王忌 陌那殺懺巾円少丨廿耳小 W 少 I brea k語(yǔ)句 墅磚環(huán)電科結(jié)耒 continueiS旬 直犢進(jìn)入下找箱壞判斷 - LT 喘環(huán)集套 外層尊游環(huán)一氏內(nèi)展循環(huán)全筍執(zhí)行直到結(jié)束 第 19頁(yè) 共 53頁(yè) 本課重要知識(shí)點(diǎn): 1知識(shí)點(diǎn):if 語(yǔ)句 if (表達(dá)式),其中表達(dá)式可以是任意合法的 C 語(yǔ)言表達(dá)式。 例 1:( 2011-09-19)下列條件語(yǔ)句中輸出結(jié)果與其他語(yǔ)句不同的是( D) A.if (a)

45、 printf( %dn else printf( %dn ,y); B.if (a=0) printf( %dn ,y); else printf( %dn ,x); C.if (a!=0) printf( %dn ,x); else printf( “dn ,y); D.if (a=0) printf( %dn ,x); else printf( %dn ,y); 【解析】作為 if 語(yǔ)句的條件, a 等價(jià)于a!=0, 因此 A 和 C 是等價(jià)的。 例 2: (2011-03-26)if 語(yǔ)句的基本形式是:if(表達(dá)式)語(yǔ)句,以下關(guān)于表達(dá)式值 的敘述中正確的是(D) A)必須是邏輯值 B)

46、必須是整數(shù)值 C)必須是正數(shù) D)可以是任意合法的數(shù)值 【解析】表達(dá)式不限于關(guān)系表達(dá)式、邏輯表達(dá)式, 也可以是任意的數(shù)值類型,其中 非 0 為真,0 為假。故選 D。 對(duì)于單個(gè) if 語(yǔ)句,其后跟隨的受 if 控制的只能是 1 個(gè)語(yǔ)句或者是 1 個(gè)復(fù)合語(yǔ) 句。 例 1:( 2009-09-17)設(shè)有定義:int a=1,b=2,c=3;以下語(yǔ)句中執(zhí)行效果與其它三個(gè)不 同的是(C) A)if(ab) c=a , a=b, b=c ; B)if(ab) c=a , a=b, b=c ; C)if(ab) c=a ; a=b; b=c ; D)if(ab) c=a ; a=b; b=c ; 【解析】

47、對(duì)于單個(gè) if 語(yǔ)句,其后跟隨的受 if 控制的只能是 1 個(gè)語(yǔ)句或者是 1 個(gè)復(fù) 合語(yǔ)句。故 C 項(xiàng), if(ab)條件成立時(shí), 語(yǔ)句 c=a;才被執(zhí)行, 而無(wú)論 if(ab)條件成立 與否, 語(yǔ)句 a=b;b=c;都會(huì)被執(zhí)行。A、B、D 項(xiàng),只有 if(ab)條件成立時(shí),語(yǔ)句 c=a; a=b;b=c;才被執(zhí)行。 例 2:(2011-03-26)以下程序運(yùn)行后的輸出結(jié)果是 200 main () int x=10,y=20,t=0; if(x=y)t=x;x=y;y=t; prin tf(%d %dn,x,y); 【解析】x=10,y=20,所以 x=y 為 false,t=x;不執(zhí)行,直

48、接執(zhí)行 x=y;y=t;x 為 20,y 為 0。注意和 if(x=y)t=x;x=y;y=t; 區(qū)別。 當(dāng)多個(gè) if(表達(dá)式) )單分支形式并行出現(xiàn)時(shí),其執(zhí)行順序是:先判斷第一 if 單分 支的條件,如果為真,執(zhí)行其后面的語(yǔ)句,執(zhí)行完后,繼續(xù)向下執(zhí)行。判斷第 二個(gè) if單分支語(yǔ)句,依次類推。如果第一個(gè) if 表達(dá)式的值為假,則不執(zhí)行其 后的語(yǔ)句,而去判斷第二個(gè) if 單分支條件。 例 1:( 2011-03-26)有以下程序 main () int x; scan f(%d, &x); if(x15) pri ntf(%d,x-5); if(x10) pri ntf(%d,x); i

49、f(x5) pri ntf(%dn,x+5); 若程序運(yùn)行時(shí)從鍵盤輸入 12,則輸出結(jié)果為 1217 【解析】輸入 12,比較不大于 15 所以不執(zhí)行 if(x15)內(nèi)的語(yǔ)句;大于 10 執(zhí)行 printf(%d,x);輸出 12;大于 5 執(zhí)行 printf(%d,x+5);輸出 17。 2知識(shí)點(diǎn):if 語(yǔ)句的嵌套 內(nèi)嵌結(jié)構(gòu)中,else 總是與前面最近的且未曾配對(duì)的 if 語(yǔ)句配對(duì),組成一對(duì) if-else 語(yǔ)句。 例 2:( 2010-09-18)有以下程序 #i nclude mai n() int a=1,b=0; if(!a) b+; else if(a=0) if(a) b+=2;

50、 else b+=3; printf( n”,b); 程序運(yùn)行后的輸出結(jié)果是(A) A)0 B)1 C) 2 D)3 【解析】else 總是與前面最近的且未曾配對(duì)的 if 語(yǔ)句配對(duì),組成一對(duì) if-else 語(yǔ)句。 即 else b+=3; 與 if(a) b+=2;配對(duì)o if(!a)不成立,不執(zhí)行 b+;else if(a=0)不成立,不執(zhí)行 if(a) b+=2; else b+=3;故直接執(zhí)行 printf( n”,b);,輸出結(jié)果為 0。 3知識(shí)點(diǎn):條件表達(dá)式 一般形式:表達(dá)式 1 ?表達(dá)式 2:表達(dá)式 3 執(zhí)行過(guò)程:表達(dá)式 1 的值為真,條件表達(dá)式取表達(dá)式 2 的值;表達(dá)式 1 的

51、值為 假,條件表達(dá)式取表達(dá)式 3 的值。 例 1: (2009-09-19)以下程序段中,與語(yǔ)句:k=ab?(bc?1:0):0 ;功能相同的是(A) A)if(ab)&(bc) k=1; B) if(ab)|(bc) k=1; else k=0; else k=0; C) if(ab) k=1; else if(bc) k=1; else k=0; 【解析】 條件運(yùn)算符的結(jié)合性是從右至左。 當(dāng) bc 時(shí),bc?1:0 的值為 1 ,k=ab?1:0, 同時(shí)當(dāng) ab 時(shí),ab?1:0 的值為 1,此時(shí) k=1。否則 k=0o故答案為 A。 4知識(shí)點(diǎn):switch 語(yǔ)句 switch語(yǔ)句

52、的圓括號(hào)中的 表達(dá)式的值必須是整型或字符型 ,不能為實(shí)型。 第 14頁(yè) case 后的表達(dá)式可以是求得整型和字符型的常量表達(dá)式,但不能含有變量。 default 的位置對(duì)程序的執(zhí)行沒(méi)有影響。 例 1: (2010-09-19)若有定義語(yǔ)句 int a,b;double x;則下列選項(xiàng)中沒(méi)有錯(cuò)誤是( C) A)switch(x%2) B) switch(i nt)x%2.0) case 0:a+;break; case 0:a+;break; case 1:b+;break; case 1:b+;break; default:a+;b+; default:a+;b+; C)switch(i nt

53、)x%2) D)switch(i nt)(x)%2) case 0:a+;break; case 0.0:a+;break; case 1:b+;break; case 1.0:b+;break; default:a+;b+; default:a+;b+; 【解析】switch語(yǔ)句的圓括號(hào)中的表達(dá)式的值必須是整型或字符型,不能為實(shí)型。 x 是 double 型,x%2 不合法,A 項(xiàng)錯(cuò)誤。(int)x%2.0 不合法,B 項(xiàng)錯(cuò)誤。(int)x%2 值為整型,故 C 項(xiàng)正確。case 后面的表達(dá)式可以是求得整型量和字符型量的常量 表達(dá)式,故 D 項(xiàng)錯(cuò)誤。 例 2: (2009-09-18)有以下

54、程序 #i nclude mai n() in t c=0,k; for(k=1;k3;k+) switch(k) default:c+=k; case 2:c+;break; 共 53頁(yè)第 21頁(yè) 共 53頁(yè) case 4:c+=2;break; printf( %n”,c); 程序運(yùn)行后的輸出結(jié)果是(A) A)3 B)5 C)7 D)9 【解析】當(dāng) k=1 時(shí),沒(méi)有匹配的 case,執(zhí)行 default 語(yǔ)句,c=c+k=0+仁 1。繼續(xù)往下 執(zhí)行case 2 后邊的語(yǔ)句,c+,c 變?yōu)?2,遇到 break 語(yǔ)句,于是退出內(nèi)層 switch結(jié) 構(gòu)。當(dāng) k=2時(shí),找到匹配的 case 2,

55、執(zhí)行 c+; c 變?yōu)?3,遇到 break 語(yǔ)句,于是退 出內(nèi)層 switch結(jié)構(gòu)。執(zhí)行外層循環(huán) for 結(jié)構(gòu)的 k+, k 變?yōu)?3,k0) switch(s) case1:pri ntf(%d,s+5); case2:pri ntf(%d,s+4); break; case3:pri ntf(%d,s+3); default:pri ntf(%d,s+1);break; sca nf(%d, &s); 運(yùn)行時(shí),若輸入 1 2 3 4 5 0,則輸出結(jié)果是(A) A)6566456 B)66656 C)66666 D)6666656 【解析】while 循環(huán) s=0 時(shí)退出循環(huán),輸

56、入 1 2 3 4 5 0,只有當(dāng)輸入 0 時(shí)退出循環(huán), switch中當(dāng) s=1 時(shí),執(zhí)行 case 1,case 2,由于 case 1 后面沒(méi)有 break,會(huì)繼續(xù)執(zhí)行 case 2,遇到 break,退出 switch ;當(dāng) s=2 時(shí),執(zhí)行 case 2,退出 switch ;當(dāng) s=3 時(shí), 執(zhí)行 case 3 default,由于 case 3 后面沒(méi)有 break,會(huì)繼續(xù)執(zhí)行 default,遇到 break, 退出 switch ;當(dāng) s=4 和 5時(shí),執(zhí)行 default,退出 switch。所以輸入 1 時(shí),輸出 65; 輸入 2 時(shí),輸出 6;輸入 3 時(shí),輸出 64;

57、輸入 4 時(shí),輸出 5;輸入 5 時(shí),輸出 6。 故選擇 A。 5.知識(shí)點(diǎn):while,do-while,for 三種循環(huán)結(jié)構(gòu) 例 1 :(2011-09-20)有以下程序: #i nclude mai n() int a=7; while(a-); printf( d n,a); 程序運(yùn)行后的輸出結(jié)果是(B) A.- 1 B.0 C.1 D.7 【解析】此類題一定要注意標(biāo)點(diǎn)符號(hào)的位置, while(a-); 該行末尾的分號(hào)即 為一條空語(yǔ)句,來(lái)作為 while 的循環(huán)體。 例 1 :( 2010-09-20)有以下程序 #i nclude mai n() int a=1,b=2; while(

58、a6) b+=a;a+=2;b%=10; printf( %d,%dn ,a,b); 程序運(yùn)行后的輸出結(jié)果是(B) A)5,11 B)7,1 C)7,11 D)6,1 例 2:( 2011-03)有以下程序段第 16頁(yè) mai n() while( getchar()!=n); 以下敘述中正確的是(C) A) 此 while 語(yǔ)句將無(wú)限循環(huán) B) getchar()不可以出現(xiàn)在 while 語(yǔ)句的條件表達(dá)式中 C) 當(dāng)執(zhí)行此 while 語(yǔ)句時(shí),只有按回車鍵程序才能繼續(xù)執(zhí)行 D) 當(dāng)執(zhí)行此 while 語(yǔ)句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行 【解析】while 條件表達(dá)式 getchar()!=n只

59、要輸入的字符不是回車,就一直執(zhí)行循 環(huán),而循環(huán)內(nèi)是一個(gè)空語(yǔ)句,所以按回車鍵程序才能繼續(xù)執(zhí)行,選擇 C。 循環(huán)體部分可以只有一條空語(yǔ)句,不做任何操作。 例 3: (2010-09-21)有以下程序 #i nclude mai n() int y=10; while(y_); printf( y=%dn”,y); 程序執(zhí)行后的輸出結(jié)果是(B) A)y=0 B)y=-1 C)y=1 D)while 構(gòu)成無(wú)限循環(huán) 【解析】while(y-)后面的分號(hào)是一個(gè)空語(yǔ)句, 當(dāng) y-不等于 0 時(shí)執(zhí)行空語(yǔ)句,當(dāng) y 等于 0時(shí),執(zhí)行 printf 函數(shù)輸出 y 值,當(dāng) y等于 0 時(shí)退出循環(huán),此時(shí) y 值變成-

60、1。 如果第一次判斷表達(dá)式的值為 0,則循環(huán)一次也不執(zhí)行。即 while 循環(huán)體最少 執(zhí)行 0 次。 例 4: (2011-03)當(dāng)執(zhí)行下列程序時(shí), 輸入 1234567890,則其中 while 循環(huán)體 將執(zhí)行 0 次。 #i nclude mai n() char ch; while(ch=getchar()= 0) printf( ); 【解析】ch=getchar(), ch 第一次讀入的值為1,故 while(ch=getchar()= 0)不成 立,循環(huán)一次也不執(zhí)行。 while 循環(huán)與 switch 結(jié)構(gòu) 例 5、( 2011-03)有以下程序 main () int s; scan f(%d, &s); while(s0) switch(s) case1:pri ntf(%d,s+5); case2:pri ntf(%d,s+4); break; case3:pri ntf(%d,s+3); default:pri ntf(%d,s+1);break; sca nf(%d, &s); 運(yùn)行時(shí),若輸入 1 2 3 4 5 0,則輸出結(jié)果是

溫馨提示

  • 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)論