全國(guó)計(jì)算機(jī)二級(jí)C語言程序設(shè)計(jì).ppt
《全國(guó)計(jì)算機(jī)二級(jí)C語言程序設(shè)計(jì).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《全國(guó)計(jì)算機(jī)二級(jí)C語言程序設(shè)計(jì).ppt(79頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
全國(guó)計(jì)算機(jī)二級(jí)C語言程序設(shè)計(jì) 考點(diǎn)復(fù)習(xí) 全國(guó)計(jì)算機(jī)二級(jí)考試考試方式 1 筆試 90分鐘 滿分100分 其中含公共基礎(chǔ)知識(shí)部分的30分 選擇10題20分 填空5題10分 2 上機(jī) 90分鐘 滿分100分3 上機(jī)操作包括 1 填空 30分 3處填空 2 改錯(cuò) 30分 2 3處改錯(cuò) 3 編程 40分 一個(gè)自定義函數(shù)體 第1章C語言程序設(shè)計(jì)基本概念 一 C語言程序的結(jié)構(gòu)1 程序的構(gòu)成 main函數(shù)和其他函數(shù) 2 頭文件 數(shù)據(jù)說明 函數(shù)的開始和結(jié)束標(biāo)志以及程序中的注釋 3 源程序的書寫格式 4 C語言的風(fēng)格 大綱要求重點(diǎn) 考點(diǎn)點(diǎn)撥 重點(diǎn)記憶程序的構(gòu)成和書寫程序是可以連續(xù)執(zhí)行的指令的集合 目前當(dāng)用的程序程序語言主要是 高級(jí)語言 如VisualBasic C Java和C 其中C語言具有高級(jí)語言和低級(jí)語言的雙重優(yōu)點(diǎn) C語言程序由函數(shù)構(gòu)成 一個(gè)C語言源程序有且僅有一個(gè)main函數(shù)和零個(gè)或多個(gè)其他函數(shù) 無論main函數(shù)的位置如何 它是程序執(zhí)行的入口和出口中 C語言程序書寫自由 一行內(nèi)可以寫一條或多條語句 一條語句也可以寫在多行 C語言的注釋有兩種形式 分別為行尾注釋 和塊式注釋 注釋只是給人看 對(duì)編譯和運(yùn)行不起作用 真題舉例 11 以下敘述正確的是 2010 3 A C語言程序是由過程和函數(shù)組成的B C語言函數(shù)可以嵌套調(diào)用 例如 fun fun x C C語言函數(shù)不可以單獨(dú)編譯D C語言中除了main函數(shù) 其他函數(shù)不可以作為單獨(dú)文件形式存在 B 考點(diǎn)點(diǎn)撥 C程序的編譯連接和后綴C源程序文件 后綴為 c 必須翻譯為二進(jìn)制目標(biāo)文件 后綴為 obj 此過程稱為 編譯 負(fù)責(zé)此工作的程序稱為 編譯器 或 編譯程序 然后由連接程序把該二進(jìn)制文件與C語言的各種庫函數(shù)連接起來 生成可執(zhí)行文件 后綴為 exe 此過程稱為 連接 最后執(zhí)行該可執(zhí)行文件 實(shí)現(xiàn)程序功能 真題舉例 13 以下敘述中錯(cuò)誤的是 2010 9 A C程序在運(yùn)行過程中所有計(jì)算都以二進(jìn)制方式進(jìn)行B C程序在運(yùn)行過程中所有計(jì)算都以十進(jìn)制方式進(jìn)行C 所有C程序都需要編譯鏈接無誤后才能運(yùn)行D C程序中整型變量只能存放整數(shù) 實(shí)型變量只能存放浮點(diǎn)數(shù) B 考點(diǎn)點(diǎn)撥 算法的五個(gè)特性算法是為解決某個(gè)特定問題而采取的確定且有限的步驟 算法的五個(gè)特性是 有窮性 確定性 有效性 零個(gè)或多個(gè)輸入 一個(gè)或多個(gè)輸出 算法的表示方法有自然語言 流程圖 偽代碼和程序設(shè)計(jì)語言 真題舉例 13 以下關(guān)于算法敘述錯(cuò)誤的是 2012 3 A 算法可以用偽代碼 流程圖等多種形式來描述B 一個(gè)正確的算法必須有輸入C 一個(gè)正確的算法必須有輸出D 用流程圖可以描述的算法可以用任何一種計(jì)算機(jī)高級(jí)語言編寫成程序代碼 B 考點(diǎn)點(diǎn)撥 記住程序設(shè)計(jì)的任務(wù)程序設(shè)計(jì)指設(shè)計(jì) 編程 調(diào)試程序的方法和過程 程序設(shè)計(jì)通常分為問題建模 算法設(shè)計(jì) 編寫代碼和編譯調(diào)試四個(gè)階段 真題舉例 11 針對(duì)簡(jiǎn)單程序設(shè)計(jì) 以下敘述的實(shí)施步驟正確的是 2012 3 A 確定算法和數(shù)據(jù)結(jié)構(gòu) 編碼 調(diào)試 整理文檔B 編碼 確定算法和數(shù)據(jù)結(jié)構(gòu) 調(diào)試 整理文檔C 整理文檔 確定算法和數(shù)據(jù)結(jié)構(gòu) 編碼 調(diào)試D 確定算法和數(shù)據(jù)結(jié)構(gòu) 調(diào)試 編碼 整理文檔 A 考點(diǎn)點(diǎn)撥 記憶結(jié)構(gòu)化程序的三種結(jié)構(gòu)組成結(jié)構(gòu)化程序設(shè)計(jì)通常采用自頂向下 逐步細(xì)化 模塊化設(shè)計(jì) 結(jié)構(gòu)化編碼的方法 結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成 順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 真題舉例 11 以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是 2010 9 A 一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序 分支 循環(huán)三種結(jié)構(gòu)組成B 結(jié)構(gòu)化程序使用goto語句會(huì)很便捷C 在C語言中 程序的模塊化是利用函數(shù)實(shí)現(xiàn)的D 由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題 C 第2章數(shù)據(jù)類型 運(yùn)算符和表達(dá)式 二 數(shù)據(jù)類型及其運(yùn)算1 C的數(shù)據(jù)類型 基本類型 構(gòu)造類型 指針類型 無值類型 及其定義方法 2 C運(yùn)算符的種類 運(yùn)算優(yōu)先級(jí)和結(jié)合性 3 不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算 4 C表達(dá)式類型 賦值表達(dá)式 算術(shù)表達(dá)式 關(guān)系表達(dá)式 邏輯表達(dá)式 條件表達(dá)式 逗號(hào)表達(dá)式 和求值規(guī)則 大綱要求重點(diǎn) 考點(diǎn)點(diǎn)撥 標(biāo)識(shí)符的命名規(guī)則標(biāo)識(shí)符的命名規(guī)則有 1 由字母 數(shù)字 下劃線三類字符組成 2 必須以字母或下劃線打頭 3 區(qū)分大小寫 4 不能和關(guān)鍵字相同 5 盡量見名知義 真題舉例 13 以下C語言用戶標(biāo)示符中 不合法的是 2010 3 A 1B AaBcC a bD a b D 考點(diǎn)點(diǎn)撥 記十進(jìn)制 八進(jìn)制 十六進(jìn)制整型常量的表示C語言中整型常量的表示方法有 十進(jìn)制 以非零數(shù)字打頭 八進(jìn)制 以數(shù)字0打頭后跟八進(jìn)制數(shù)符 十六進(jìn)制 以0X或0 x打頭后跟十六進(jìn)制數(shù)符 C語言中整型數(shù)據(jù)有三大類 短整型 short 2B 基本整型 int 4B 長(zhǎng)整型 long 4B 此為有符號(hào)類型 可表示正 負(fù)數(shù) 在三個(gè)關(guān)鍵字前加上unsigned則為無符號(hào)類型 所占字節(jié)數(shù)不變 但只能表示正數(shù) 整型數(shù)據(jù)在內(nèi)存中以二進(jìn)制補(bǔ)碼存放 若超出其表示范圍 會(huì)產(chǎn)生溢出 考點(diǎn)點(diǎn)撥 記實(shí)型常量的表示實(shí)型常量的表示方法有兩種 小數(shù)形式和指數(shù)形式 實(shí)型數(shù)據(jù)主要使用兩種類型 單精度 float 4B 雙精度 double 8B 注意不同類型的有效數(shù)字位數(shù)區(qū)別 實(shí)型數(shù)據(jù)在內(nèi)存中以指數(shù)形式存放 實(shí)型常量默認(rèn)為double型 可以在常量后加f或F將其按float型處理 考點(diǎn)點(diǎn)撥 記字符常量及轉(zhuǎn)義字符常量的定義普通字符常量是用一對(duì)單引號(hào)括起來的一個(gè)字符表示的常量 字符常量的值是該字符的ASCII碼值 如 A 的值是65 0 字符的值是48等 在內(nèi)存中占1B空間 轉(zhuǎn)義字符常量指在單引號(hào)內(nèi)由反斜線打頭 后跟特定字符表示的常量 需要記的轉(zhuǎn)義字符有三類 1 控制字符 n r b t 2 特殊字符 3 轉(zhuǎn)義進(jìn)制 bbb 1 3位八進(jìn)制數(shù)符 xhh 1 2位十六進(jìn)制數(shù)符 字符串常量是用一對(duì)雙引號(hào)括起來的零個(gè)或多個(gè)字符序列 其中包含的字符可以是普通字符或轉(zhuǎn)義字符 系統(tǒng)自動(dòng)在字符串末尾增加一個(gè)不可顯示字符 0 空字符 作為字符串結(jié)束標(biāo)記 字符串所占的內(nèi)存空間為所含字符數(shù) 1 真題舉例 15 以下選項(xiàng)中能表示合法常量的是 2010 9 A 整數(shù) 1 200B 實(shí)數(shù) 1 5E2 0C 字符斜杠 D 字符串 007 13 以下選項(xiàng)中不能用作C程序合法常量的是 2011 3 A 1 234B 123 C 123D x7G 14 以下選項(xiàng)中可用作C程序合法實(shí)數(shù)的是A 2011 3 A 1e0B 3 0e0 2C E9D 9 12E D A A 考點(diǎn)點(diǎn)撥 記字符數(shù)據(jù)的運(yùn)算方法C語言規(guī)定 將所有的字符型數(shù)據(jù)都作為整型來處理 因此 字符常量和轉(zhuǎn)義字符常量可以參與任何整數(shù)運(yùn)算 如 A 32得 a 5 0 得5 常考英文字母大 小寫之間的轉(zhuǎn)換 數(shù)字字符與整數(shù)值之間的相互轉(zhuǎn)換 字符數(shù)據(jù)還可以進(jìn)行關(guān)系運(yùn)算和邏輯運(yùn)算 真題舉例 21 以下不能輸出字符 A 的語句是 注 字符A的ASCIl碼值為65 字符a的ASCIl碼值為97 2011 9 A printf c n a 32 B printf d n A C printf c n 65 D print f c n B 1 B 考點(diǎn)點(diǎn)撥 記字符變量的定義及賦值C語言中用關(guān)鍵字char定義字符型變量 在內(nèi)存中分配1B空間 用來存放字符常量的ASCII碼值 該值可以作為整型數(shù)據(jù)來參與運(yùn)算 真題舉例 22 有以下定義語句 編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是 2009 9 A chara a B chara n C chara aa D chara x2d C 考點(diǎn)點(diǎn)撥 運(yùn)算符的分類 常用運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符按功能分有13類 P56 按所需操作數(shù)目分可分為 單目運(yùn)算符 右結(jié)合 優(yōu)先級(jí)2 雙目運(yùn)算符 除賦值為右結(jié)合外 其余為左結(jié)合 三目運(yùn)算符 條件運(yùn)算符 右結(jié)合 各運(yùn)算符的優(yōu)先級(jí)和結(jié)合性見教材P378 考點(diǎn)點(diǎn)撥 系統(tǒng)自動(dòng)轉(zhuǎn)換成同一類型的方向和結(jié)果的類型不同數(shù)據(jù)類型混合運(yùn)算時(shí)系統(tǒng)自動(dòng)轉(zhuǎn)換的規(guī)則見下圖 其中水平箭頭為必然轉(zhuǎn)換 垂直箭頭為從低向高方向轉(zhuǎn)換 運(yùn)算結(jié)果類型為轉(zhuǎn)換后的類型 真題舉例 14 若有定義語句 inta 10 doubleb 3 14 則表達(dá)式 A a b值的類型是 2011 9 A charB intC doubleD float C 考點(diǎn)點(diǎn)撥 重點(diǎn)記算術(shù)運(yùn)算符各自的運(yùn)算特點(diǎn)基本算術(shù)運(yùn)算符 均為雙目運(yùn)算符 其中 求余數(shù) 運(yùn)算符要求兩側(cè)的操作數(shù)必須為整型 除 運(yùn)算符兩側(cè)若均為整數(shù) 則結(jié)果為除以后的整數(shù)部分 否則為實(shí)型 真題舉例 14 有以下定義 inta longb doublex y 則以下選項(xiàng)中正確的表達(dá)式是 2010 9 A a int x y B a x y C a y bD y x y x A 考點(diǎn)點(diǎn)撥 重點(diǎn)記賦值表達(dá)式及復(fù)合賦值表達(dá)式的特點(diǎn)賦值表達(dá)式左側(cè)必須是簡(jiǎn)單變量 不能是常量或表達(dá)式 包括賦值表達(dá)式 右邊可以是常量 變量或表達(dá)式 包括賦值表達(dá)式 賦值運(yùn)算符及復(fù)合賦值運(yùn)算符右結(jié)合 優(yōu)先級(jí)倒數(shù)第二級(jí) 當(dāng)賦值表達(dá)式右邊表達(dá)式值的類型與左邊變量的類型不一致時(shí) 系統(tǒng)會(huì)自動(dòng)將該值轉(zhuǎn)換成左邊變量的類型后再賦值 轉(zhuǎn)換規(guī)則則教材P62 真題舉例 16 表達(dá)式a a a 9的值是 2010 9 A 9B 9C 18D 0 15 若有定義語句 inta 3 b 2 c 1 以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是 2011 3 A a b 4 3 B a b c 1 C a b 4 c D a 1 b c 4 15 若有定義語句 intx 12 y 8 z 在其后執(zhí)行語句z 0 9 x y 則z的值為 2011 9 A 1 9B 1C 2D 2 4 D A B 考點(diǎn)點(diǎn)撥 理解前置運(yùn)算和后置運(yùn)算的不同意義自增 自減 均為單目運(yùn)算符 右結(jié)合 操作數(shù)可以是整型變量或?qū)嵭妥兞?但不能是常量或表達(dá)式 前置運(yùn)算 如 i 是先增減后運(yùn)算 后置運(yùn)算 如i i 是先運(yùn)算后增減 真題舉例 18 有以下程序main intx 011 printf d n x 程序運(yùn)行后的輸出結(jié)果是 2011 3 A 12B 11C 10D 9 C 考點(diǎn)點(diǎn)撥 記逗號(hào)運(yùn)算符的優(yōu)先級(jí) 結(jié)合性及求值規(guī)則逗號(hào)表達(dá)式是用逗號(hào)運(yùn)算符 將兩個(gè)或兩個(gè)以上的表達(dá)式順序連接起來的表達(dá)式 左結(jié)合 逗號(hào)運(yùn)算符優(yōu)先級(jí)最低 從左到右順序求解各表達(dá)式 也稱為順序求值表達(dá)式 結(jié)果為最右邊表達(dá)式的值 注意區(qū)分逗號(hào)分隔符和逗號(hào)運(yùn)算符 真題舉例 6 執(zhí)行以下程序后的輸出結(jié)果是 2007 4 main inta 10 a 3 5 a 4 printf a d n a a 14 考點(diǎn)點(diǎn)撥 理解強(qiáng)制類型轉(zhuǎn)換 自動(dòng)類型轉(zhuǎn)換 1 強(qiáng)制類型轉(zhuǎn)換 格式為 類型 表達(dá)式 將表達(dá)式值的類型強(qiáng)制轉(zhuǎn)換成指定的類型 對(duì)表達(dá)式中原有變量的類型無影響 2 自動(dòng)類型轉(zhuǎn)換 a 賦值運(yùn)算中的自動(dòng)轉(zhuǎn)換 b 混合運(yùn)算中的自動(dòng)轉(zhuǎn)換 真題舉例 14 表達(dá)式 int double 9 2 9 2的值是 2009 9 A 0B 3C 4D 5 B 考點(diǎn)點(diǎn)撥 掌握關(guān)系運(yùn)算符及表達(dá)式的求值關(guān)系運(yùn)算符有 區(qū)分關(guān)系等 和賦值等 關(guān)系表達(dá)式用于判斷兩個(gè)對(duì)象之間的關(guān)系 其操作數(shù)可以是C語言中任何合法的表達(dá)式 關(guān)系表達(dá)式的值為邏輯值 關(guān)系成立為真 用整數(shù)1表示 關(guān)系不成立為假 用整數(shù)0表示 該值可以繼續(xù)參加其他表達(dá)式運(yùn)算 注意 關(guān)系表達(dá)式不能直接判斷三個(gè)以上對(duì)象的關(guān)系 真題舉例 8 在C語言中 當(dāng)表達(dá)式值為0時(shí)表示邏輯值 假 當(dāng)表達(dá)式值為 8 時(shí)表示邏輯值 真 2010 9 非0 考點(diǎn)點(diǎn)撥 掌握邏輯運(yùn)算符及表達(dá)式的求值邏輯運(yùn)算符有 按優(yōu)先級(jí)從高到低排列 邏輯運(yùn)算符常結(jié)合關(guān)系表達(dá)式判斷多個(gè)對(duì)象之間的復(fù)雜關(guān)系 邏輯表達(dá)式的值為邏輯值 參與邏輯運(yùn)算的操作數(shù)可以是任意合法的常量 變量或表達(dá)式 均以 非零為真 零為假 判斷其邏輯值 注意邏輯表達(dá)式求值時(shí)的 短路特性 真題舉例 17 若a是數(shù)值類型 則邏輯表達(dá)式 a 1 a 1 的值是 2010 3 A 1B 0C 2D 不知道a的值 不能確定 17 若有定義語句 intk1 10 k2 20 執(zhí)行表達(dá)式 k1 k1 k2 k2 k2 k1 后 k1和k2的值分別為 2011 9 A 0和1B 0和20C 10和1D 10和20 A B 考點(diǎn)點(diǎn)撥 理解條件表達(dá)式的求值方法條件運(yùn)算符 是C語言里唯一的三目運(yùn)算符 優(yōu)先級(jí)倒數(shù)第三 右結(jié)合 其一般形式是 表達(dá)式1 表達(dá)式2 表達(dá)式3 先求解表達(dá)式1 取其邏輯值 若為真 求解表達(dá)2作為整個(gè)表達(dá)式的值 若為假 求解表達(dá)式3的值作為整個(gè)表達(dá)式的值 各表達(dá)式可以為任意類型的合法表達(dá)式 真題舉例 19 有如下嵌套的if語句if a b if a c k a elsek c elseif b c k b elsek c 以下選項(xiàng)中與上述if語句等價(jià)的語句是 2010 3 A k a b a b k b c b c B k a b b c a b b c b c C k a b a c a c b c b c D k a b a b k a c a c C 考點(diǎn)點(diǎn)撥 理解位運(yùn)算符及其求值規(guī)則和優(yōu)先級(jí)順序位運(yùn)算符有 同優(yōu)先級(jí) 按優(yōu)先級(jí)從高到低排列 位運(yùn)算的操作數(shù)必須是整型或字符型 計(jì)算時(shí)先將操作數(shù)轉(zhuǎn)換成二進(jìn)制 然后再低位對(duì)齊按運(yùn)算規(guī)則進(jìn)行計(jì)算 真題舉例 39 有以下程序 includemain inta 2 b 2 c 2 printf d n a b 程序運(yùn)行后的結(jié)果是 2010 3 A 0B 1C 2D 3 C 第3章順序結(jié)構(gòu) 三 基本語句1 表達(dá)式語句 空語句 復(fù)合語句 2 輸入輸出函數(shù)的調(diào)用 正確輸入數(shù)據(jù)并正確設(shè)計(jì)輸出格式 大綱要求重點(diǎn) 考點(diǎn)點(diǎn)撥 理解C語句的概念及分類見教材P57 圖3 14可知 C語句是函數(shù)體里的基本構(gòu)成單位 語句的作用是向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令 要求執(zhí)行相應(yīng)的操作 一個(gè)C語句經(jīng)過編譯后產(chǎn)生若干條機(jī)器指令 C語句可以分成5大類 1 控制語句 2 函數(shù)調(diào)用語句 3 表達(dá)式語句 4 空語句 5 復(fù)合語句 考點(diǎn)點(diǎn)撥 掌握字符數(shù)據(jù)的輸入輸出函數(shù)的用法putchar函數(shù)用于向顯示器輸出一個(gè)字符 一般格式是 putchar c 其中c可以是字符型或整型常量 變量或表達(dá)式 結(jié)果是向顯示器輸出其值對(duì)應(yīng)的ASCII碼字符 getchar函數(shù)用于從鍵盤輸入緩沖區(qū)讀取一個(gè)字符 一般格式是 getchar 一般用法 ch getchar 將從鍵盤輸入的一個(gè)字符值賦給變量ch 從鍵盤輸入的空格 回車等控制字符也作為有效字符讀取 真題舉例 10 下列程序運(yùn)行時(shí) 若輸入1abcedf2df輸出結(jié)果為 includemain chara 0 ch while ch getchar n if a 2 0 1AbCdEf2dF 考點(diǎn)點(diǎn)撥 掌握格式化輸出 輸入函數(shù)的用法及注意事項(xiàng)printf 格式控制字符串 輸出表列 scanf 格式控制字符串 輸入地址表列 格式控制字符串 中允許有兩類字符 普通字符 在printf函數(shù)中會(huì)原樣輸出 在scanf函數(shù)中要求原樣輸入 格式字符 由 格式字符 用于指定輸出 輸入項(xiàng)的格式 常用格式字符有 教材P74 表3 6 表3 7 P76 表3 8 表3 9 整數(shù)類型十進(jìn)制有符號(hào)類型 d md md ld mld mld十進(jìn)制無符號(hào)類型 u八進(jìn)制無符號(hào)類型 o十六進(jìn)制無符號(hào)類型 x X實(shí)數(shù)類型小數(shù)格式 f nf m nf m nf指數(shù)格式 e E簡(jiǎn)潔格式 g G 根據(jù)輸出數(shù)據(jù)大小自動(dòng)選擇小數(shù)或指數(shù)格式 且不輸出無意義的零 字符類型字符格式 c mc字符串格式 s ns m ns 考點(diǎn)點(diǎn)撥 掌握格式化輸出 輸入函數(shù)的用法及注意事項(xiàng)printf函數(shù)中的 輸出表列 可以沒有 若有 可以是常量 變量或表達(dá)式 將其值按對(duì)應(yīng)的格式輸出 若有多項(xiàng) 以逗號(hào)分開 其他說明見教材P75 scanf函數(shù)中的 地址表列 必須為變量的地址 多個(gè)地址之間以逗號(hào)分開 注意的問題見教材P76 77 真題舉例 15 程序段 intx 12 doubley 3 141593 printf d 8 6f x y 的輸出結(jié)果是 2009 3 A 123 141593B 123 141593C 12 3 141593D 123 1415930 16 若有定義語句 doublex y px py 執(zhí)行了px C A 第4章選擇結(jié)構(gòu) 四 選擇結(jié)構(gòu)程序設(shè)計(jì)1 用if語句實(shí)現(xiàn)選擇結(jié)構(gòu) 2 用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu) 3 選擇結(jié)構(gòu)的嵌套 大綱要求重點(diǎn) 考點(diǎn)點(diǎn)撥 掌握三種if語句的執(zhí)行過程if語句的功能是判斷所給的條件 選擇執(zhí)行其中一個(gè)操作 if語句的一般形式if 表達(dá)式 語句1 else語句2 常用三種形式是單分支 雙分支和多分支 祥見教材P89 表達(dá)式可以是任意類型的表達(dá)式 取其值的邏輯值 非零為真 零為假 if或else只能控制其后的一條語句 該語句可以是五大類語句中的任意一種 真題舉例 18 有以下程序 includemain inta 1 b 0 if a b elseif a 0 if a b 2 elseb 3 printf d n b 程序運(yùn)行后的輸出結(jié)果是 2010 9 A 0B 1C 2D 3 18 有以下程序 includemain intx scanf d 程序運(yùn)行時(shí) 輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果 2009 3 A 不等于10的整數(shù)B 大于3且不等10的整數(shù)C 大于3或等于10的整數(shù)D 小于3的整數(shù) C A 考點(diǎn)點(diǎn)撥 掌握嵌套if語句的執(zhí)行 及else與if的配對(duì)嵌套if指一般格式中if或else的控制語句又是if語句 注意if可以單獨(dú)使用 而else必須和if配對(duì)使用 且else總是和它上面的最近的未曾配對(duì)的if進(jìn)行配對(duì) 從而在配對(duì)的if后的條件為假時(shí)執(zhí)行該else之后的語句 真題舉例 27 有以下程序 includemain intx 1 y 0 if x y elseif x 0 if x y 2 elsey 3 printf d n y 程序運(yùn)行后的輸出結(jié)果是 2011 3 A 3B 2C 1D 0 D 考點(diǎn)點(diǎn)撥 switch語句的格式及其執(zhí)行 跳轉(zhuǎn)的過程switch語句又稱開關(guān)語句 一般用于實(shí)現(xiàn)多分支選擇 switch語句的一般形式及執(zhí)行見教材P103 注意 switch后的表達(dá)式值的類型一般為整型或字符型case子句后的常量必須為簡(jiǎn)單的整型或字符型常量當(dāng)執(zhí)行完一個(gè)分支的執(zhí)行語句后沒有遇到break 將繼續(xù)執(zhí)行下一分支的執(zhí)行語句switch語句可以嵌套 break在switch中的作用是跳出所在的switch語句 真題舉例 18 以下選項(xiàng)中與if a 1 a b elsea 語句功能不同的switch語句是 2010 3 A switch a B switch a 1 case1 a b break case0 a b break default a case1 a C switch a D switch a 1 default a break case1 a b break case1 a b case0 a B 第5章循環(huán)結(jié)構(gòu) 五 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)1 for循環(huán)結(jié)構(gòu) 2 while和do while循環(huán)結(jié)構(gòu) 3 continue語句和break語句 4 循環(huán)的嵌套 大綱要求重點(diǎn) 考點(diǎn)點(diǎn)撥 理解while循環(huán)的執(zhí)行過程及應(yīng)用while語句構(gòu)成的循環(huán)稱為 當(dāng)型 循環(huán) 其一般形式是 while 表達(dá)式 語句表達(dá)式可以是C語言中任意類型的合法表達(dá)式 取其值的邏輯值 語句也可以是五大類語句任意之一 但只能控制其后的一條語句 循環(huán)體有可能一次也不執(zhí)行 真題舉例 20 有以下程序 includemain inta 1 b 2 while amain while getchar n 以下敘述中正確的是 2011 3 A 此while語句將無限循環(huán)B getchar 不可以出現(xiàn)在while語句的條件表達(dá)式中C 當(dāng)執(zhí)行此while語句時(shí) 只有按回車鍵程序才能繼續(xù)執(zhí)行D 當(dāng)執(zhí)行此while語句時(shí) 按任意鍵程序就能繼續(xù)執(zhí)行 B C 考點(diǎn)點(diǎn)撥 理解do while循環(huán)的執(zhí)行過程及應(yīng)用do while語句構(gòu)成的循環(huán)稱為 直到型 循環(huán) 其一般形式是 do語句while 表達(dá)式 其特點(diǎn)是先執(zhí)行循環(huán)體再判斷循環(huán)條件 循環(huán)體至少執(zhí)行一次 注意while之后的分號(hào)不能少 真題舉例 9 以下程序運(yùn)行后的輸出結(jié)果是 9 includemain inta 1 b 7 do b b 2 a b while b 1 printf d n a 5 考點(diǎn)點(diǎn)撥 理解for循環(huán)的執(zhí)行過程及應(yīng)用for語句的一般形式是 for 表達(dá)式1 表達(dá)式2 表達(dá)式3 語句for中的三個(gè)表達(dá)式可以是任意合法的C語言表達(dá)式 表達(dá)式1在進(jìn)入循環(huán)的進(jìn)修執(zhí)行一次 一般是給循環(huán)變量賦初值 表達(dá)式2取其邏輯值作為循環(huán)條件 表達(dá)式3在執(zhí)行循環(huán)體后才執(zhí)行 一般是使循環(huán)條件趨于假的運(yùn)算 三個(gè)表達(dá)式均可以省略 但分號(hào)不能省 真題舉例 21 有以下程序 includesmain inta 1 b 2 for a 8 a b a a 2 printf d d n a b 程序運(yùn)行后的輸出結(jié)果是 2010 3 A 9 18B 8 11C 7 11D 10 14 D 考點(diǎn)點(diǎn)撥 理解循環(huán)嵌套的幾種形式及執(zhí)行過程循環(huán)體內(nèi)又完整地包含了另一個(gè)循環(huán) 稱循環(huán)嵌套 前三種循環(huán)語句可以相互嵌套 可多層嵌套 嵌套循環(huán)在執(zhí)行時(shí)外循環(huán)執(zhí)行一次內(nèi)循環(huán)要執(zhí)行一遍 書寫上一般采用縮進(jìn)形式 使程序?qū)哟畏置?可讀性強(qiáng) 真題舉例 20 以下程序段中的變量已正確定義for i 0 i 4 i i for k l k 3 k printf 程序段的輸出結(jié)果是 2009 3 A B C D D 考點(diǎn)點(diǎn)撥 掌握break和continue語句在循環(huán)體中的應(yīng)用break語句的作用是退出所在的循環(huán)體 在循環(huán)體中使用可增加循環(huán)的出口 使循環(huán)更靈活 break只能用于switch或循環(huán)語句中 continue語句的作用是結(jié)束本層本次的循環(huán) 轉(zhuǎn)去執(zhí)行下一次的循環(huán)處理 continue語句只能用于循環(huán)體中 第6章數(shù)組 六 數(shù)組的定義和引用1 一維數(shù)組和二維數(shù)組的定義 初始化和數(shù)組元素的引用 2 字符串與字符數(shù)組 大綱要求重點(diǎn) 考點(diǎn)點(diǎn)撥 掌握一維數(shù)組的定義方式及初始化的定義形式一維數(shù)組的定義方式 數(shù)據(jù)類型數(shù)組名 常量表達(dá)式 常量表達(dá)式規(guī)定了數(shù)組元素的個(gè)數(shù) 或長(zhǎng)度 整個(gè)數(shù)組所占字節(jié)數(shù) 類型長(zhǎng)度 數(shù)組長(zhǎng)度 常量表達(dá)式中可以包括整型常量和符號(hào)常量 在給全部元素賦初值時(shí)可以省略定義時(shí)的數(shù)組長(zhǎng)度說明 一維數(shù)組初始化的一般形式 數(shù)據(jù)類型數(shù)組名 常量表達(dá)式 值0 值1 值2 初值的個(gè)數(shù)不能超過數(shù)組的長(zhǎng)度 可以只給部分元素賦初值 未賦初值元素默認(rèn)值為0 真題舉例 28 若要定義一個(gè)具有5個(gè)元素的整型數(shù)組 以下錯(cuò)誤的定義語句是 2010 9 A inta 5 0 B intb 0 0 0 0 0 C intc 2 3 D inti 5 d i D 考點(diǎn)點(diǎn)撥 掌握一維數(shù)組元素的引用形式一維數(shù)組元素的引用形式 數(shù)組名 下標(biāo)表達(dá)式 下標(biāo)表達(dá)式可以是整型的常量 變量或表達(dá)式 數(shù)組名代表數(shù)組內(nèi)存空間的起始地址 不能企圖用數(shù)組名引用全部數(shù)組元素 C語言規(guī)定 數(shù)組的下標(biāo)從0開始 因其下標(biāo)的有效范圍為0 長(zhǎng)度 1 C系統(tǒng)不會(huì)對(duì)數(shù)組的下標(biāo)進(jìn)行越界檢查 在程序中一般用單重for循環(huán)控制元素下標(biāo)引用所有元素 真題舉例 29 有以下程序 includemain inta 5 1 2 3 4 5 b 5 0 2 1 3 0 i s 0 for i 0 i 5 i s s a b i printf d n s 程序運(yùn)行后的輸出結(jié)果是 2010 3 A 6B 10C 11D 15 C 考點(diǎn)點(diǎn)撥 掌握二維數(shù)組的定義方式及初始化的定義形式二維數(shù)組的定義方式 數(shù)據(jù)類型數(shù)組名 常量表達(dá)式1 常量表達(dá)式2 二維數(shù)組一般用于存儲(chǔ)矩陣 常量表達(dá)式1為矩陣行數(shù) 常量表達(dá)式2為矩陣列數(shù) 二維數(shù)組元素在內(nèi)存中是按行存放的 各元素在內(nèi)存中所占的字節(jié)數(shù) 行數(shù) 列數(shù) 類型長(zhǎng)度二維數(shù)組初始化的方法有 按行賦初值按元素排列順序賦初值部分元素賦值全部元素賦值可省略常量表達(dá)式1的說明 省略的長(zhǎng)度由初始值個(gè)數(shù)確定 真題舉例 26 以下定義數(shù)組的語句中錯(cuò)誤的是 2011 9 A intnum 1 2 3 4 5 6 B intnum 3 1 2 3 4 5 6 C intnum 2 4 1 2 3 4 5 6 D intnum 4 1 2 3 4 5 6 C 考點(diǎn)點(diǎn)撥 掌握二維數(shù)組元素的引用形式二維數(shù)組元素的引用形式 數(shù)組名 下標(biāo)表達(dá)式1 下標(biāo)表達(dá)式2 各維下標(biāo)均從0開始 且為整數(shù)類型 不得越界 在程序中一般用雙重for循環(huán)控制兩維下標(biāo)訪問元素 若外循環(huán)控制行下標(biāo) 內(nèi)循環(huán)控制列下標(biāo)則按行序訪問元素 若外循環(huán)控制列下標(biāo) 內(nèi)循環(huán)控制行下標(biāo)則按列序訪問元素 真題舉例 11 有以下程序 includemain inta 3 3 1 2 3 4 5 6 7 8 9 intb 3 0 i for i 0 i 3 i b i a i 2 a 2 i for i 0 i 3 i printf d b i printf n 程序運(yùn)行后的結(jié)果是 2010 3 101418 考點(diǎn)點(diǎn)撥 掌握字符數(shù)組的定義及初始化形式在C語言中只有字符變量 沒有字符串變量 通常用字符數(shù)組來存儲(chǔ)字符串 一維數(shù)組存儲(chǔ)一個(gè)字符串 二維數(shù)組中的一行存儲(chǔ)一個(gè)字符串 字符數(shù)組的定義 chars1 80 s2 5 80 字符數(shù)組的存儲(chǔ)同數(shù)值數(shù)組 區(qū)別在于每個(gè)元素都是一個(gè)字符變量 只分配一個(gè)字節(jié)存儲(chǔ)空間 可以存儲(chǔ)一個(gè)字符的ASCII碼值 字符數(shù)組的初始化有兩種形式 逐個(gè)字符賦初值 如 chars1 80 a b c d e 未賦初值元素默認(rèn) 0 值用字符串賦初值 如 chars1 80 abcde s2 abcde 數(shù)組s1占80B 數(shù)組s2占6B 注意系統(tǒng)自動(dòng)在字符串末尾加結(jié)束標(biāo)記 0 二維字符數(shù)組賦初值 charss 4 80 abc abcde xyz 1234 一個(gè)字符串占一行 二維數(shù)組的定義中第一維大小決定了字符串的個(gè)數(shù) 第二維大小決定了各字符串的最大長(zhǎng)度 真題舉例 23 有以下程序 include includemain charx STRING x 0 0 x 1 0 x 2 0 printf d d n sizeof x strlen x 程序運(yùn)行后的輸出結(jié)果是 2010 9 A 61B 70C 63D 71 B 考點(diǎn)點(diǎn)撥 掌握字符數(shù)組 字符串 的輸入輸出方法字符數(shù)組 字符串 的輸入 輸出一般有以下三種方法 c字符格式 在printf或scanf函數(shù)中使用 其I O對(duì)象是單個(gè)元素 一般結(jié)合循環(huán)使用 s字符串格式 在printf或scanf函數(shù)中使用 其I O對(duì)象是數(shù)組名所代表的地址 一維數(shù)組名字代表它的存儲(chǔ)空間的首地址 二維數(shù)組名帶第一維下標(biāo)代表所在行的首地址 可以整體輸入 輸出字符串 在scanf函數(shù)中接收以空格或回車結(jié)束的字符串 字符串處理函數(shù)gets或puts gets接收以回車結(jié)束的字符串 puts輸出一個(gè)以 0 結(jié)束的字符串 且回車換行 其參數(shù)均為字符數(shù)組的名字 真題舉例 34 有以下程序 二維字符數(shù)組 includemain charch 3 5 AAAA BBB CC printf s n ch 1 程序運(yùn)行后的輸出結(jié)果是 2011 9 A AAAAB CCC BBBCCD BBB D 考點(diǎn)點(diǎn)撥 掌握各常用的字符串處理函數(shù)的應(yīng)用常用的字符串處理函數(shù)有 需包含string h頭文件 教材P162 164 strcpy s1 s2 字符串拷貝函數(shù) 將s2中的內(nèi)容復(fù)制到字符數(shù)組s1中去strncpy s1 s2 n 拷貝子串函數(shù) 將s2中的前n個(gè)字符拷貝到s1中strcat s1 s2 字符串連接函數(shù) 將s2連接在s1的末尾strcmp s1 s2 字符串比較函數(shù) 從左到右逐個(gè)字符比較兩個(gè)字符串的大小strlen str 求字符函數(shù)串長(zhǎng)度 求字符數(shù)組str中第一個(gè) 0 字符之前的字符個(gè)數(shù) 真題舉例 31 下列選項(xiàng)中 能夠滿足 若字符串s1等于字符串s2 則執(zhí)行ST 要求的是 2010 9 A if strcmp s2 s1 0 ST B if sl s2 ST C if strcpy sl s2 1 ST D if sl s2 0 ST A 第7章函數(shù) 七 函數(shù)1 庫函數(shù)的正確調(diào)用 2 函數(shù)的定義方法 3 函數(shù)的類型和返回值 4 形式參數(shù)與實(shí)在參數(shù) 參數(shù)值傳遞 5 函數(shù)的正確調(diào)用 嵌套調(diào)用 遞歸調(diào)用 6 局部變量和全局變量 7 變量的存儲(chǔ)類別 自動(dòng) 靜態(tài) 寄存器 外部 變量的作用域和生存期 大綱要求重點(diǎn) 考點(diǎn)點(diǎn)撥 理解函數(shù)在C語言中的功能 掌握如何調(diào)用庫函數(shù)一個(gè)C程序有且僅有一個(gè)main函數(shù) 和若干個(gè)其他函數(shù)構(gòu)成 主函數(shù)可以調(diào)用其他函數(shù) 其他函數(shù)可以相互調(diào)用 這些函數(shù)可以是庫函數(shù) 也可以是用戶自定義函數(shù) 函數(shù)之間可以相互調(diào)用 但各函數(shù)必須是相互獨(dú)立的 一個(gè)函數(shù)并不屬于其他函數(shù) 其他函數(shù)不能調(diào)用main函數(shù) C系統(tǒng)提供了豐富的庫函數(shù) 編程時(shí)可直接調(diào)用 使用庫函數(shù)應(yīng)注意 教材P384 389 1 函數(shù)功能2 函數(shù)參數(shù)的數(shù)目和順序 及各參數(shù)意義和類型3 函數(shù)返回值意義和類型4 需要使用的包含文件 考點(diǎn)點(diǎn)撥 掌握函數(shù)定義的一般形式及注意事項(xiàng)函數(shù)定義的一般形式 返回值類型函數(shù)名 類型1形參1 類型2形參2 說明部分執(zhí)行部分 函數(shù)名和形參名必須是合法的標(biāo)識(shí)符函數(shù)可以沒有返回值 可以定義為void類型 返回值若省略不寫則默認(rèn)為int型函數(shù)可以沒有參數(shù) 即為無參函數(shù)函數(shù)可以沒有函數(shù)體 即為空函數(shù)不能在函數(shù)體中定義另外一個(gè)函數(shù) 各函數(shù)之間是相互獨(dú)立的 考點(diǎn)點(diǎn)撥 掌握函數(shù)聲明的方法和聲明時(shí)應(yīng)該注意的問題在C語言中 用戶自定義函數(shù)必須 先定義 后使用 如果調(diào)用在前定義在后 就必須在調(diào)用之前對(duì)函數(shù)進(jìn)行聲明 將該函數(shù)的有關(guān)信息通知編譯器 函數(shù)聲明的形式如下 返回值類型函數(shù)名 類型1 類型2 返回值類型函數(shù)名 類型1形參1 類型2形參2 函數(shù)定義在前 調(diào)用在后則不必對(duì)自定義函數(shù)進(jìn)行聲明 真題舉例 12 請(qǐng)將以下程序中的函數(shù)聲明語句補(bǔ)充完整 includeint 12 main intx y p scanf d d max inta intb 考點(diǎn)點(diǎn)撥 掌握形參和實(shí)參的概念及作用定義函數(shù)時(shí) 函數(shù)名后的參數(shù)稱為形參 調(diào)用函數(shù)時(shí) 函數(shù)名后的參數(shù)稱為實(shí)參 當(dāng)在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)時(shí) 前者稱主調(diào)函數(shù) 后者稱被調(diào)函數(shù) 主調(diào)函數(shù)通過實(shí)參向被調(diào)函數(shù)的形參傳遞數(shù)據(jù) 說明 實(shí)參可以是常量 變量 表達(dá)式或函數(shù) 形參只能是變量實(shí)參和形參的類型一致或賦值兼容 個(gè)數(shù)必須相同 按順序一一對(duì)應(yīng)當(dāng)函數(shù)被調(diào)用時(shí) 形參才分配內(nèi)存空間 調(diào)用結(jié)束時(shí) 形參所占內(nèi)存空間被釋放實(shí)參對(duì)形參的數(shù)據(jù)傳遞是單向值傳遞 且在內(nèi)存中 形參與實(shí)參占用的是不同的內(nèi)存單元 因此形參的改變并不影響實(shí)參 真題舉例 24 有以下程序 includevoidfun intp intd 2 p d printf d p main inta 1 fun a printf d n a 程序運(yùn)行后的輸出結(jié)果是 2009 9 A 32B 12C 21D 22 C 考點(diǎn)點(diǎn)撥 理解在函數(shù)調(diào)用時(shí)return語句的作用被調(diào)函數(shù)可以用return語句將函數(shù)值傳遞給主調(diào)函數(shù) return語句形式 return表達(dá)式 或return 表達(dá)式 說明 當(dāng)函數(shù)執(zhí)行到return語句時(shí) 返回到它的主調(diào)函數(shù)的調(diào)用位置 并帶回返回值 return后的表達(dá)式可以是常量 變量或表達(dá)式表達(dá)的類型若和函數(shù)定義中的返回值類型不相同 則系統(tǒng)自動(dòng)轉(zhuǎn)換為定義的類型 若無法轉(zhuǎn)換 則賦值不兼容 若函數(shù)定義為void類型 則不能用return帶回返回值 函數(shù)最后一個(gè) 起返回作用 函數(shù)中可以有多條return語句 但只執(zhí)行其中一條 或都不執(zhí)行 真題舉例 24 以下關(guān)于return語句的敘述中正確的是 2010 3 A 一個(gè)自定義函數(shù)中必須有一條return語句B 一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句C 定義成void類型的函數(shù)中可以有帶返回值的return語句D 沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處 B 考點(diǎn)點(diǎn)撥 掌握函數(shù)調(diào)用的基本形式及其語法要求函數(shù)調(diào)用的形式如下 函數(shù)名 實(shí)參表 說明 調(diào)用函數(shù)時(shí) 函數(shù)名必須與被調(diào)用的函數(shù)名完全相同 函數(shù)調(diào)用可以出現(xiàn)在允許表達(dá)式出現(xiàn)的任何地方函數(shù)調(diào)用可以作為一條獨(dú)立的語句 此時(shí)最后的分號(hào)不能少 考點(diǎn)點(diǎn)撥 掌握函數(shù)嵌套調(diào)用與遞歸調(diào)用的方法及注意事項(xiàng)在被調(diào)用的函數(shù)中又調(diào)用另外一個(gè)函數(shù) 稱 嵌套調(diào)用 函數(shù)直接或間接地調(diào)用自身 稱 遞歸調(diào)用 可以將遞歸調(diào)用看做是嵌套調(diào)用的特殊形式采用遞歸方法求解一個(gè)問題時(shí) 該問題必須滿足以下條件 可以把要求解的問題轉(zhuǎn)化為新的問題 而且新問題的解法與原問題相同必須有一個(gè)明確的結(jié)束遞歸的條件函數(shù)遞歸調(diào)用時(shí) 系統(tǒng)利用堆棧將當(dāng)前函數(shù)中的變量和形參暫時(shí)保存起來 再為新一輪函數(shù)調(diào)用中的形參和變量分配內(nèi)存空間 嵌套或遞歸調(diào)用的返回原則是 先調(diào)用 后返回 真題舉例 24 有以下程序 includeintf intx main intn 1 m m f f f n printf d n m intf intx returnx 2 程序運(yùn)行后的輸出結(jié)果是 2010 9 A 1B 2C 4D 8 35 有以下程序 includevoidfun intx if x 2 1 fun x 2 printf d x main fun 7 printf n 程序運(yùn)行后的輸出結(jié)果是 2010 9 A 137B 731C 73D 37 D D 考點(diǎn)點(diǎn)撥 掌握局部變量和全局變量的作用范圍及特點(diǎn)在函數(shù)體內(nèi)部或復(fù)合語句內(nèi)部定義的變量稱局部變量 其作用范圍只在定義它的函數(shù)體或復(fù)合語句中 說明 形參也屬于局部變量 作用域僅限于它所在的函數(shù)體 不同函數(shù)之間可以使用同名的局部變量 因其占用的內(nèi)存空間不同 所以互不影響 在函數(shù)體外部定義的變量稱為全局變量 其作用范圍是從定義位置到源文件結(jié)束 說明 全局變量在整個(gè)程序執(zhí)行期間占用固定的存儲(chǔ)空間當(dāng)全局變量和局部變量同名時(shí) 在局部變量的作用范圍內(nèi)同名的全局變量不起作用 考點(diǎn)點(diǎn)撥 掌握變量四種存儲(chǔ)類型的聲明和應(yīng)用從變量生存期的角度 可以將變量分為靜態(tài)存儲(chǔ)和動(dòng)態(tài)存儲(chǔ) 靜態(tài)存儲(chǔ)是指在程序運(yùn)行期間給變量分配固定的內(nèi)存空間 動(dòng)態(tài)存儲(chǔ)是指在程序運(yùn)行期間根據(jù)需要?jiǎng)討B(tài)地進(jìn)行內(nèi)存空間分配 變量在程序運(yùn)行過程中可以使用的存儲(chǔ)位置有 動(dòng)態(tài)存儲(chǔ)區(qū) 靜態(tài)存儲(chǔ)區(qū) CPU寄存器存儲(chǔ)區(qū) 變量的存儲(chǔ)類型指定變量的存儲(chǔ)位置 共有四種存儲(chǔ)類型 auto 自動(dòng)型 在函數(shù)體內(nèi)部使用 為該類型的變量分配在動(dòng)態(tài)存儲(chǔ)區(qū) 其特點(diǎn)是進(jìn)入其作用范圍時(shí)分配存儲(chǔ)空間 退出其作用范圍時(shí)釋放為其分配的存儲(chǔ)空間 在函數(shù)體內(nèi)部未指定變量存儲(chǔ)類型時(shí)默認(rèn)為auto型 該類型變量若賦初值 則每次使用時(shí)重新賦初值 若不賦初值 則為隨機(jī)值 static 靜態(tài)型 可以在函數(shù)體內(nèi)部或外部使用 為該類型的變量分配在靜態(tài)存儲(chǔ)區(qū) 其特點(diǎn)是在整個(gè)程序運(yùn)行期間占用固定的存儲(chǔ)空間 若賦初值則只在第一次使用的時(shí)候賦初值一次 若不賦初值 則默認(rèn)為0 在函數(shù)內(nèi)部定義稱靜態(tài)局部變量 其生存期全局 作用域局部 該類型變量具有繼承性 即多次使用時(shí)后一次繼承前一次使用的結(jié)果值 在函數(shù)外部定義稱靜態(tài)全局變量 其特點(diǎn)同全局變量 區(qū)別在于僅限本文件使用 考點(diǎn)點(diǎn)撥 掌握變量四種存儲(chǔ)類型的聲明和應(yīng)用register 寄存器型 其特點(diǎn)同auto型變量 區(qū)別是在CPU寄存器中分配存儲(chǔ)空間 僅限數(shù)據(jù)類型為整型 字符型或指針類型且使用頻繁的變量extern 外部型 引用性聲明 此種類型只針對(duì)全局變量且不分配存儲(chǔ)空間 作用是擴(kuò)展已經(jīng)在其他位置定義過的全局變量的作用范圍到聲明位置 真題舉例 36 有以下程序 includeintfun staticintx 1 x 1 returnx main inti s 1 for i 1 i 5 i s fun printf d n s 程序運(yùn)行后的輸出結(jié)果是 2010 9 A 11B 21C 6D 120 B 第8章編譯預(yù)處理 八 編譯預(yù)處理1 宏定義和調(diào)用 不帶參數(shù)的宏 帶參數(shù)的宏 2 文件包含 處理 大綱要求重點(diǎn) 考點(diǎn)點(diǎn)撥 掌握不帶參數(shù)宏的替換形式和特點(diǎn)不帶參數(shù)宏的定義形式 define宏名宏體說明 宏名為合法標(biāo)識(shí)符 為和普通變量區(qū)分 常用大寫字母表示 在定義新宏時(shí) 可以引用已經(jīng)定義過的宏 替換時(shí)層層替換 在字符串中若有與宏名相同的內(nèi)容 不進(jìn)行替換 宏替換時(shí) 只是將宏體簡(jiǎn)單替換掉宏名 不得隨意增 減任何內(nèi)容 宏計(jì)算的原則是 先替換 再計(jì)算 考點(diǎn)點(diǎn)撥 掌握帶參數(shù)宏定義的替換形式及特點(diǎn)帶參數(shù)宏的定義形式 define宏名 參數(shù)表 宏體說明 宏名與參數(shù)表的 之間不能有空格宏的參數(shù)表無類型 多個(gè)參數(shù)之間以逗號(hào)分隔引用帶參宏時(shí) 實(shí)參可以是常量 變量或表達(dá)式 都以原樣替換宏體中對(duì)應(yīng)的形參 宏體中的其他內(nèi)容原樣書寫 最后再計(jì)算替換后的表達(dá)式 千萬不能將實(shí)參表達(dá)式計(jì)算后再替換 真題舉例 35 以下程序 include defineSUB a a a main inta 2 b 3 c 5 d d SUB a b c printf d n d 程序運(yùn)行后的結(jié)果是 2010 3 A 0B 12C 20D 10 C 35 有以下程序 include definef x x x xmain inta 3 s t s f a 1 t f a 1 printf d d n s t 程序運(yùn)行后的輸出結(jié)果是 2009 3 A 10 64B 10 10C 64 10D 64 64 A 考點(diǎn)點(diǎn)撥 理解文件包含的作用 形式及特點(diǎn)文件包含是指在一個(gè)文件中包含另一個(gè)文件的全部?jī)?nèi)容 文件包含有兩種形式 include 在系統(tǒng)所在的標(biāo)準(zhǔn)目錄中查找要包含的文件 include 文件名 在用戶當(dāng)前目錄中查找要包含的文件 若沒有再到標(biāo)準(zhǔn)目錄中查找 第9章指針 九 指針1 地址與指針變量的概念 地址運(yùn)算符與間址運(yùn)算符 2 一維 二維數(shù)組和字符串的地址以及指向變量 數(shù)組 字符串 函數(shù) 結(jié)構(gòu)體的指針變量的定義 通過指針引用以上各類型數(shù)據(jù) 3 用指針作函數(shù)參數(shù) 4 返回地址值的函數(shù) 5 指針數(shù)組 指向指針的指針 大綱要求重點(diǎn) 考點(diǎn)點(diǎn)撥 理解變量的地址和指針的概念 掌握指針變量的定義和賦值地址是內(nèi)存空間某一字節(jié)的編號(hào) 變量的地址是指給變量在內(nèi)存中分配的空間的起始地址編號(hào) 指針變量是專門存放變量地址的一種特殊變量 C語言允許可以用變量名直接訪問所分配的內(nèi)存空間 也可以通過指針變量間接訪問所指向變量的內(nèi)存空間 指針變量的定義形式 類型名 指針名1 指針名2 其中 1 類型名是指針變量可以指向的目標(biāo)變量的類型 2 定義形式中的 僅為說明符 指針變量是其后的標(biāo)識(shí)符 3 不管指針變量指向何種類型的變量 均給其分配一個(gè)存放地址的空間 一般為4B 指針變量只能存放地址 不能存放其他數(shù)據(jù) 如inti int p 讓指針變量指向地址編號(hào)為0的單元 該單元不存放任何有意義的數(shù)據(jù) 考點(diǎn)點(diǎn)撥 掌握如何通過指針變量間接訪問所指地址空間指針變量在運(yùn)算時(shí)常用兩個(gè)運(yùn)算符 則 p i p i 真題舉例 25 以下程序段完全正確的是 2010 9 A int p scanf d C c 考點(diǎn)點(diǎn)撥 掌握指針變量作函數(shù)參數(shù)傳遞和返回值的意義指針可以作為函數(shù)的形參 這樣 函數(shù)調(diào)用時(shí)實(shí)際是將實(shí)參的地址傳遞給形參 即形參指針變量指向?qū)崊?這種傳遞方式叫地址值傳遞 地址值傳遞方式的特點(diǎn)是可以通過對(duì)形參指針變量的間接訪問引用 改變實(shí)參變量的值 這樣調(diào)用函數(shù)可以實(shí)現(xiàn)不用return而得到多個(gè)函數(shù)處理結(jié)果 在程序中廣泛使用 真題舉例 26 有以下程序 includevoidfun char c intd c c 1 d d 1 printf c c c d main charb a a A fun 程序運(yùn)行后的輸出結(jié)果是 2010 3 A b B b AB b B B AC a B B aD a B a B A 考點(diǎn)點(diǎn)撥 掌握指向一維數(shù)組 二維數(shù)組和字符數(shù)組的指針的應(yīng)用一維數(shù)組的名字即是數(shù)組存儲(chǔ)空間的首地址 或首元素地址 常量 可以用指針指向一維數(shù)組 如有inta 10 p p a 則a i a i p i p i 考點(diǎn)點(diǎn)撥 掌握數(shù)組的指針作函數(shù)參數(shù)特點(diǎn)和應(yīng)用數(shù)組作函數(shù)參數(shù)有以下情況 數(shù)組元素作函數(shù)參數(shù) 同普通變量作函數(shù)參數(shù) 此時(shí)形參為普通變量 是單向普通值傳遞 最多由return帶回一個(gè)返回值 一維數(shù)組名作函數(shù)參數(shù) 傳遞的是一維數(shù)組的首地址 此時(shí)形參為一級(jí)指針變量或同類型的一維數(shù)組 可以在被調(diào)函數(shù)中通過形參變量或數(shù)組名間接訪問 改變所有的實(shí)參數(shù)組元素值 二維數(shù)組名作函數(shù)參數(shù) 傳遞的是二維數(shù)組的首行地址 此時(shí)形參為二級(jí)行指針變量或同類型二維數(shù)組 真題舉例 23 下列語句中 正確的是 2010 3 A char s s Olympic B chars 7 s Olympic C char s s Olympic D chars 7 s Olympic 27 若有定義int pt 3 則下列說法正確的是 2010 3 A 定義了基類型為int的三個(gè)指針變量B 定義了基類型為int的具有三個(gè)元素的指針數(shù)組pt C 定義了一個(gè)名為 pt 具有三個(gè)元素的整型數(shù)組D 定義了一個(gè)名為pt的指針變量 它可以指向每行有三個(gè)整數(shù)元素的二維數(shù)組 28 設(shè)有定義doublea 10 s a 一下能夠代表數(shù)組元素a 3 的是 2010 3 A s 3 B s 3 C s 3 D s 3 A D B 考點(diǎn)點(diǎn)撥 掌握指針數(shù)組的定義及其應(yīng)用指針數(shù)組即數(shù)組中的每個(gè)元素均為指針的數(shù)組 其定義形式如下 類型名 數(shù)組名 數(shù)組長(zhǎng)度 通常用指針數(shù)組處理二維數(shù)組或字符串?dāng)?shù)組 真題舉例 26 有定義語句 int p 4 以下選項(xiàng)中與此語句等價(jià)的是 2010 9 A intp 4 B int p C int p 4 D int p 4 C 考點(diǎn)點(diǎn)撥 掌握命令行參數(shù)的個(gè)數(shù) 類型及意義主函數(shù)帶參數(shù)稱為命令行參數(shù) 因?yàn)闆]有函數(shù)能調(diào)用main函數(shù) 所以要從操作系統(tǒng)的命令行給其傳參數(shù) main函數(shù)帶參數(shù)的形式 voidmain intargc char argv 其中 argc接收命令行中參數(shù)的個(gè)數(shù) 包括命令名 即可執(zhí)行文件名 本身argv接收命令行中各參數(shù)字符串的首行地址 argv argv兩個(gè)參數(shù)的名字可以變 但類型不能變 考點(diǎn)點(diǎn)撥 掌握指向函數(shù)的指針的定義及應(yīng)用函數(shù)的指針及函數(shù)的入口地址 用函數(shù)名表示 指向函數(shù)的指針定義形式 返回值類型 指針變量名 參數(shù)類型1 參數(shù)類型2 只要函數(shù)的類型 參數(shù)個(gè)數(shù)和類型與指針變量定義中一致 就可以將函數(shù)的入口地址賦給該指針變量 如下 指針變量名 函數(shù)名 此時(shí) 可以通過指針變量間接調(diào)用所指向的函數(shù) 指針變量名 實(shí)參列表 指針變量名 實(shí)參列表 真題舉例 33 設(shè)有以下函數(shù) voidfun intn char s 則下面對(duì)函數(shù)指針的定義和賦值均正確的是 2009 9 A void pf pf fun B void pf pf fun C void pf pf fun D void pf int char pf A 考點(diǎn)點(diǎn)撥 掌握返回指針值的函數(shù)頭定義形式及返回值表示返回指針值函數(shù)的函數(shù)頭定義形式是 類型 函數(shù)名 形參列表 在這樣的函數(shù)體中 用return帶回的是一個(gè)和函數(shù)頭上指定類型相同的指針 考點(diǎn)點(diǎn)撥 理解二級(jí)指針的定義 意義及使用一級(jí)指針變量存放普通變量的地址 二級(jí)指針變量存放一級(jí)指針變量的地址 以此類推 二級(jí)指針變量即為指向指針的指針 其定義形式如下 數(shù)據(jù)類型 指針變量名 若有inti p q p 則i p q i p q 考點(diǎn)點(diǎn)撥 理解malloc函數(shù)和free函數(shù)的作用庫函數(shù)malloc是在程序運(yùn)行過程中向內(nèi)存申請(qǐng)存儲(chǔ)空間 其調(diào)用形式是malloc size 其中 size必須是一個(gè)正整數(shù) 申請(qǐng)成功 函數(shù)的返回值是申請(qǐng)到存儲(chǔ)空間的首地址 一般先強(qiáng)制類型轉(zhuǎn)換后用程序中的某個(gè)指針變量接收 如 int p p int malloc sizeof int 10 由malloc函數(shù)申請(qǐng)到的存儲(chǔ)空間不會(huì)因?yàn)楹瘮?shù)執(zhí)行結(jié)束而釋放 若確定不用 可以使用free函數(shù)來釋放 如free p 使用這兩個(gè)庫函數(shù)需要包含頭文件 stdlib h或malloc h 真題舉例 37 有以下程序 inctude includemain int a b c a b c int malloc sizeof int a 1 b 2 c 3 a b printf d d d n a b c 程序運(yùn)行后的輸出結(jié)果是 2010 9 A 3 3 3B 2 2 3C 1 2 3D 1 1 3 A 第10章結(jié)構(gòu)體和共用體 十 結(jié)構(gòu)體 即 結(jié)構(gòu) 與共同體 即 聯(lián)合 1 用typedef說明一個(gè)新類型 2 結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義和成員的引用 3 通過結(jié)構(gòu)體構(gòu)成鏈表 單向鏈表的建立 結(jié)點(diǎn)數(shù)據(jù)的輸出 刪除與插入 大綱要求重點(diǎn) 考點(diǎn)點(diǎn)撥 理解結(jié)構(gòu)體類型的聲明及變量的定義聲明結(jié)構(gòu)體類型用關(guān)鍵字struct 形式如下 struct 結(jié)構(gòu)體名 成員列表 其中 結(jié)構(gòu)體名 是合法標(biāo)識(shí)符 可以省略 成員列表 定義該類型中各成員的類型和名字 結(jié)構(gòu)體類型定義只描述結(jié)構(gòu)中各成員的組織形式 各成員并不占用內(nèi)存空間 可以嵌套定義結(jié)構(gòu)體類型 新定義的結(jié)構(gòu)體類型為 struct結(jié)構(gòu)體名 用已經(jīng)定義的結(jié)構(gòu)體類型定義變量 其形式為 struct結(jié)構(gòu)體名變量名列表 也可以定義類型的同時(shí)定義變量或定義無名結(jié)構(gòu)體變量 系統(tǒng)會(huì)在編譯時(shí)為結(jié)構(gòu)體變量分配內(nèi)存空間 其字節(jié)數(shù) 類型中各成員所占字節(jié)數(shù)的總和 真題舉例 36 下面結(jié)構(gòu)體的定義語句中 錯(cuò)誤的是 2009 9 A structord intx inty intz structorda B structord intx inty intz structorda C structord intx inty intz n D struct intx inty intz a B 考點(diǎn)點(diǎn)撥 掌握結(jié)構(gòu)體變量的賦值和引用可以在定義結(jié)構(gòu)體變量時(shí)按成員順序給其賦初值 如 struct結(jié)構(gòu)體名變量名 初值1 初值2 除了同類型結(jié)構(gòu)體變量可以整體賦值外 其余只能通過成員運(yùn)算符 逐個(gè)引用其成員 其形式為 結(jié)構(gòu)體變量名 成員名結(jié)構(gòu)體類型也可以定義數(shù)組或指針 如 structstudentstu stud 3 p p 因此 也可以通過結(jié)構(gòu)體指針引用其指向變量的成員 stu age p age p age 真題舉例 37 設(shè)有以下程序段structMP3 charname 20 charcolor floatprice std ptr ptr 若要引用結(jié)構(gòu)體變量std中的color成員 寫法錯(cuò)誤的是 2012 3 A std colorB ptr colorC std colorD ptr color C 考點(diǎn)點(diǎn)撥 理解鏈表的結(jié)構(gòu)特點(diǎn)及鏈表的建立 輸出 插入 刪除鏈表是一種動(dòng)態(tài)存儲(chǔ)結(jié)構(gòu) 其基本構(gòu)成單位稱結(jié)點(diǎn) 其特點(diǎn)是通過結(jié)點(diǎn)中的指針來體現(xiàn)結(jié)點(diǎn)間的先后關(guān)系 結(jié)點(diǎn)中一般包含兩部分?jǐn)?shù)據(jù) 數(shù)據(jù)域和指針域 因其類型不同 所以用結(jié)構(gòu)體類型組織 一般形式如下 structNODE intdata structNODE next 其中 數(shù)據(jù)域或指針域根據(jù)需要可以是多項(xiàng)成員 在單向鏈表中 指針成員next通常用來存放下一個(gè)結(jié)點(diǎn)的地址 鏈表的處理在機(jī)試題中有所涉及 近幾次筆試題中沒有考 考點(diǎn)點(diǎn)撥 了解共用體類型和變量的定義及引用方法共用體類型用關(guān)鍵字union定義 其形式同結(jié)構(gòu)體類型共用體變量的定義和引用同結(jié)構(gòu)體變量 區(qū)別在于 共用體變量分配的字節(jié)數(shù) 各成員所占字節(jié)數(shù)的最大值共用體變量不能在定義的時(shí)候賦初值共用體變量中各成員不能同時(shí)存在 某一時(shí)刻只能有一個(gè)成員起作用且是最后一次賦值的成員 考點(diǎn)點(diǎn)撥 了解typedef聲明新類型的方法typedef聲明新類型的形式如下 typedef類型名標(biāo)識(shí)符其中 類型名是一種已經(jīng)存在的類型 標(biāo)識(shí)符是用戶定義用作新類型的名稱 定義后 使用新的 標(biāo)識(shí)符 等價(jià)于原類型名 真題舉例 39 若有以下語句typedefstructS intg charh T 以下敘述中正確的是 2010 9 A 可用S定義結(jié)構(gòu)體變量B 可用T定義- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 全國(guó)計(jì)算機(jī) 二級(jí) 語言程序設(shè)計(jì)
鏈接地址:http://zhongcaozhi.com.cn/p-5210188.html