本書是與《C語言程序設計(第3版)》(馬靖善、秦玉平主編,清華大學出版社)配套的學習指導與實驗教材。全書共分7章,涵蓋了C語言程序設計課程的主要內容,同時兼顧了題目的廣度和深度。每章包括內容概述、典型題解析、習題解答、自測試題及參考答案、思考題及參考答案、實驗題目及參考答案(第1章除外)。本書的絕大部分題目精選于各高校歷年考研題、全國計算機等級考試題和具有豐富教學經(jīng)驗的教師在教學實踐過程中設計、整理的題目。書中涉及的程序都在Turbo C 2.0和Visual C++ 6.0環(huán)境下調試運行通過。
本書適合作為理工類專業(yè)學生學習C語言程序設計課程的學習指導和實驗教材,同時也適合參加全國計算機等級考試的考生使用,還可作為自學者學習C語言程序設計課程的輔導書。
本書是作者根據(jù)多年C語言程序設計教學實踐經(jīng)驗編寫的,結構合理,層次清晰,例題、習題、實驗題目和思考題代表性強、解析詳細,能幫助讀者盡快掌握所學內容。
出 版 說 明
我國高等學校計算機教育近年來發(fā)展迅猛,應用所學計算機知識解決實際問題,已經(jīng)成為當代大學生的必備能力。
時代的進步與社會的發(fā)展對高等學校計算機教育的質量提出了更高、更新的要求。現(xiàn)在,很多高等學校都在積極探索符合自身特點的教學模式,涌現(xiàn)出一大批非常優(yōu)秀的精品課程。
為了適應社會需求,滿足計算機教育的發(fā)展需要,清華大學出版社在大量調查研究的基礎上,組織編寫了本套教材。我們從全國各高校的優(yōu)秀計算機教材中精挑細選了一批很有代表性且特色鮮明的計算機精品教材,把作者對各自所授計算機課程的獨特理解和先進經(jīng)驗推薦給全國師生。
本套教材特點如下。
(1) 編寫目的明確。本套教材主要面向普通高校的計算機專業(yè)學生,使學生通過本套教材,學習計算機科學與技術方面的基本理論和基本知識,接受應用計算機解決實際問題的基本訓練。
(2) 注重編寫理念。本套教材的作者均為各校相應課程的主講教師,有一定的經(jīng)驗積累,且編寫思路清晰,有獨特的教學思路和指導思想,其教學經(jīng)驗具有推廣價值。
(3) 理論與實踐相結合。本套教材貫徹從實踐中來到實踐中去的原則,書中許多必須掌握的理論都將結合實例講述,同時注重培養(yǎng)學生分析、解決問題的能力。
(4) 易教易用,合理適當。本套教材編寫時注意結合教學實際的課時數(shù),把握教材的篇幅。同時,對一些知識點按照教育部高等學校計算機類專業(yè)教學指導委員會的最新精神進行合理取舍與難易控制。
(5) 注重教材的立體化配套。大多數(shù)教材都將配套教學課件、習題及其解答、實驗指導、教學網(wǎng)站等輔助教學資源,方便教學。
隨著本套教材的陸續(xù)出版,我們相信能夠得到廣大讀者的認可和支持,為我國計算機教材建設和計算機教學水平的提高,以及計算機教育事業(yè)的發(fā)展做出應有的貢獻。
清華大學出版社前言C語言是國內外廣泛使用的計算機程序設計語言。各高校理工類專業(yè)大都開設了C語言程序設計課程。從學習的角度看,C語言較其他計算機語言復雜,語言中的特殊語法現(xiàn)象和難點內容也較其他計算機語言多。為使學習者盡快地掌握C語言程序設計課程的整體內容,我們編寫了本書。
本書是《C語言程序設計(第3版)》(馬靖善、秦玉平主編,清華大學出版社)的配套教材。全書共分7章,涵蓋了C語言程序設計課程的主要內容,同時兼顧了題目的廣度和深度。每章包括內容概述、典型題解析、習題解答、自測試題及參考答案、思考題及參考答案、實驗題目及參考答案(第1章除外)。其中,內容概述給出了知識結構圖、考核要點、重點難點和核心考點;典型題解析的題目精選于各高校歷年考研題、全國計算機等級考試題和具有豐富教學經(jīng)驗的教師在教學實踐過程中設計、整理的題目,并給出了較詳細的解析;自測試題包括單項選擇題、程序填空題、程序分析題和程序設計題,并提供了參考答案;實驗題目依據(jù)考核要點和實際應用設計,具有代表性、綜合性和實用性,并提供了參考答案;思考題目根據(jù)常見問題設計,具有一定的針對性和擴展性,并給出了參考答案;習題解答給出了主教材習題的詳細解答。最后在附錄中給出了3套模擬題及參考答案和10個課程設計題目。書中涉及的程序都已在Turbo C 2.0和Visual C++6.0環(huán)境下調試運行通過。
本書第1章、第2章、第3章和第6章由秦玉平編寫,第4章和第7章由王麗君編寫,第5章和附錄由馬靖善編寫,全書由秦玉平和馬靖善審校。
盡管本書是針對《C語言程序設計(第3版)》編寫的,但也適用于其他C語言程序設計的教材。本書可作為全國計算機等級考試和考研復習指導書,也可作為自學者學習C語言程序設計課程的輔導書。
在本書編寫過程中,編者參考了大量有關C語言程序設計和C++程序設計的書籍和資料,在此對這些參考文獻的作者表示感謝。由于書中題目數(shù)量較大,加之編者水平有限,書中難免存在錯誤和不當之處,懇請廣大讀者批評指正,以便再版時改進。
本書受遼寧省普通高等教育本科教學改革研究項目(20160484)資助。
作者C語言程序設計(第3版)學習與實驗指導前言
第1章C語言概述1
1.1內容概述1
1.2典型題解析1
1.3自測試題3
1.4思考題4
1.5習題解答4
1.6自測試題參考答案5
1.7思考題參考答案6
第2章基本語法規(guī)則7
2.1內容概述7
2.2典型題解析8
2.3自測試題16
2.4實驗題目20
2.5思考題22
2.6習題解答23
2.7自測試題參考答案34
2.8實驗題目參考答案35
2.9思考題參考答案36
第3章控制語句與預處理命令39
3.1內容概述39
3.2典型題解析40
3.3自測試題50
3.4實驗題目55
3.5思考題56
3.6習題解答57C語言程序設計(第3版)學習與實驗指導目錄3.7自測試題參考答案71
3.8實驗題目參考答案72
3.9思考題參考答案75
第4章數(shù)組77
4.1內容概述77
4.2典型題解析78
4.3自測試題86
4.4實驗題目90
4.5思考題91
4.6習題解答91
4.7自測試題參考答案111
4.8實驗題目參考答案113
4.9思考題參考答案117
第5章函數(shù)119
5.1內容概述119
5.2典型題解析120
5.3自測試題130
5.4實驗題目135
5.5思考題136
5.6習題解答136
5.7自測試題參考答案157
5.8實驗題目參考答案159
5.9思考題參考答案166
第6章結構體、共用體和枚舉169
6.1內容概述169
6.2典型題分析170
6.3自測試題180
6.4實驗題目185
6.5思考題185
6.6習題解答185
6.7自測試題參考答案201
6.8實驗題目參考答案202
6.9思考題參考答案207第7章文件209
7.1內容概述209
7.2典型題分析210
7.3自測試題213
7.4實驗題目216
7.5思考題217
7.6習題解答217
7.7自測試題參考答案231
7.8實驗題參考答案233
7.9思考題參考答案235
附錄A模擬試題A及其參考答案237
A.1模擬試題A237
A.2模擬試題A參考答案242
附錄B模擬試題B及其參考答案245
B.1模擬試題B245
B.2模擬試題B參考答案249
附錄C模擬試題C及其參考答案251
C.1模擬試題C251
C.2模擬試題C參考答案255
附錄D課程設計題目259
參考文獻263
第3章控制語句與預處理命令3.1內容概述
本章主要介紹了分支語句、循環(huán)語句、無條件轉移語句以及宏定義、文件包含和條件編譯等編譯預處理命令。本章知識結構如圖3.1所示。
圖3.1第3章知識結構
考核要求: 熟練掌握if語句、switch~case兩種分支語句的特點和實際運用。熟練掌握while語句、do~while語句、for語句三種循環(huán)語句執(zhí)行過程、用法、區(qū)別以及三種循環(huán)格式之間的轉換和嵌套。掌握宏定義和文件包含的使用。掌握break語句和continue語句的特點和使用。了解goto語句的使用。
重點難點: 本章的重點是實現(xiàn)分支結構的兩個語句和實現(xiàn)循環(huán)結構的三個語句的運用。本章的難點是分支語句的嵌套和循環(huán)語句的嵌套。
核心考點: 分支語句的格式及使用、循環(huán)語句的格式及使用、宏定義及宏調用。C語言程序設計(第3版)學習與實驗指導第3章控制語句與預處理命令3.2典型題解析
【例3.1】下列關于if后面圓括號內“表達式”值的敘述正確的是()。
A. 必須是邏輯值 B. 必須是整數(shù)值
C. 必須是正數(shù) D. 可以是任意合法的數(shù)值
解析: if后面表達式的值應該是邏輯值,即“真”或“假”,但C語言中沒有邏輯類型的數(shù)據(jù)。C語言規(guī)定,表達式值為0代表“假”,表達式值為非0代表“真”,因此,表達式的值可以是任意合法的數(shù)值。
答案: D
【例3.2】設有定義: int a=3,b=2,c;,以下語句中執(zhí)行效果與其他三個不同的是()。
A. if(a>b) c=a,a=b,b=c; B. if(a>b){c=a,a=b,b=c;}
C. if(a>b) c=a;a=b;b=c; D. if(a>b){c=a;a=b;b=c;}
解析: 單分支if語句的一般形式為: if(表達式)語句其執(zhí)行過程是: 計算表達式的值,若結果為真(非0),執(zhí)行后面的語句;若結果為假(0),不執(zhí)行該語句。其中的語句可以是任意語句。
本題中,由于“c=a,a=b,b=c;”是一個語句,因此選項A與選項B等價。選項D中的語句是復合語句: {c=a;a=b;b=c;},其功能與選項A等價。選項C中的語句是表達式語句c=a;。由此可知,選項C的執(zhí)行效果與其他三個不同。
答案: C
……