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