本書內容設置合理,結構嚴謹。知識點闡述完整系統,按照概念定義、理論基礎、實例講解的順序安排章節內容,敘述清晰,講解詳細,便于教學或自學應用。
實踐性強,注重學以致用。各章有針對性地編排大量習題,并設置實踐內容,便于學生掌握所學知識,同時體現了知識來源于實踐又服務于實踐,培養學生自主學習的能力。
可作為計算機專業基礎課、公共基礎課的教學及參考用書,也可作為計算機等級考試輔導用書。內容具有較強的適用性,為學生從事程序設計及相關工作打下堅實基礎。
實踐操作及實際應用為學生參加課外科技立項,程序設計競賽,計算機、電子、通信、自動化等專業的社會實踐活動打開了大門。注重編程興趣及技能培養,可進行開放式學習,服務于軟件開發工作。
本書配套教學課件及電子資源,讀者可登錄清華大學出版社網站下載使用。
本書內容豐富,結構合理,知識完整,易學易用,是針對應用型院校編寫的實踐類教材,注重動手能力培養,理論聯系實際,配套資源豐富。
編審委員會顧問: 李澎林潘海涵主任: 張聚副主任: 宋國琴蔡鐵峰趙端陽朱新芬編委: (按姓氏筆畫為序)王潔王荃馮志林成杏梅劉均劉文程劉勤賢呂圣軍杜豐杜樹旺吳艷何文秀應亞萍張建奇陳偉杰鄭利君宗曉曉趙建鋒郝平金海溶姚晶晶徐歐官郭偉青曹平曹祁傅永峰鮑衛兵潘建電子信息技術和計算機軟件等技術的快速發展,深刻地影響著人們的生產、生活、學習和思想觀念。當前,以工業4.0、兩化深度融合、智能制造和互聯網 為代表的新一代產業和技術革命,把信息時代的發展推進到一個對于國家經濟和社會發展影響更為深遠的新階段。在新的產業和技術革命的背景下,社會對于高校人才的培養模式、教學改革以及高校的轉型發展都提出了新的要求。2015年,浙江省啟動應用型高校示范學校建設。通過面向應用型高校的轉型建設增強學生的就業創業和實踐能力,提高學校服務區域經濟社會發展和創新驅動發展的能力。通過堅持面向需求、產教融合、開放辦學、共同發展的高校發展理念,圍繞一流的應用型大學建設和一流的應用型人才培養目標,我們做了一系列的探索和實踐,取得了明顯實效。作為應用型高校轉型建設的重要舉措之一和應用型人才培養的主要載體,本套規劃教材著眼于應用型、工程型人才的培養和實踐能力的提高,是在應用型高校建設中一系列人才培養工作的探索和實踐的總結和提煉。在學校和學院領導的直接指導和關懷下,編委會依據社會對于電子信息和計算機學科人才素質和能力的需求,充分汲取國內外相關教材的優勢和特點,組織具有豐富教學與實踐經驗的雙師型高校教師成立編委會,編寫了這套教材。本套系列教材具有以下幾個特點:(1) 教材具有創新性。本系列教材內容體現了基本技術和近年來新技術的結合,注重技術方法、仿真例子和實際應用案例的結合。(2) 教材注重應用性。避免復雜的理論推導,通俗易懂,便于學習、參考和應用。注重理論和實踐的結合,加強應用型知識的講解。(3) 教材具有示范性。教材中體現的應用型教學理念、知識體系和實施方案,在電子信息類和計算機類人才的培養以及應用型高校相關專業人才的培養中具有廣泛的輻射性和示范性。(4) 教材具有多樣性。本系列教材既包括基本理論和技術方法的課程,也包括相應的實驗和技能課程,以及大型綜合實踐性學科競賽方面的課程。注重課程之間的交叉和銜接,從不同角度培養學生的應用和實踐能力。(5) 本套教材的編著者具有豐富的教學和實踐經驗。他們大多是從事一線教學和指導的、具有豐富經驗的雙師型高校教師。他們多年的教學心得為本教材的高質量出版提供了有力保障。本套系列教材的出版得到了浙江省教育廳相關部門、浙江工業大學教務處和之江學院領導以及清華大學出版社的大力支持和廣大骨干教師的積極參與,得到了學校教學改革和重點教材建設項目的資助,在此一并表示衷心的感謝。希望本套教材的出版能夠在轉變教學思想,推動教學改革,更新知識體系,增強學生實踐能力,培養應用型人才等方面發揮重要作用,并且為應用型高校的轉型建設提供課程支撐。由于電子信息技術和計算機技術的發展日新月異,以及各方面條件的限制,本套教材難免存在不足之處,敬請專家和廣大師生批評指正。
高等學校計算機類創新與應用型規劃教材編審委員會2016年10月C語言功能豐富、編程靈活方便、兼容能力強、應用面廣,兼具高級語言及低級語言的優點,既可以用于編寫應用程序,也可以用于編寫系統軟件,自20世紀90年代以來一直是最活躍的程序設計語言之一,在高校更是得到重視和普及,是理工科專業學生的一門必修課程,也是計算機等級考試的主要科目。本書立足于本科教育,面向初學者,重點突出實踐及應用,在介紹基本概念及相關理論知識的基礎上,深入淺出,力求用讀者最容易理解的方式敘述,從最簡單的程序入手,引出概念、定義及相關理論知識,結合程序進行解析,為加深理解,在各章節對理論知識介紹之后,均列舉了大量程序實例加以鞏固理解,并且各章節還精心設計了練習及實踐環節,使學生更好地掌握所學理論知識及編程方法,以培養學生的獨立動手能力、實際編程能力,以及分析問題和解決問題的能力,同時也培養學生對C語言程序設計課程學習的興趣。本書以簡單程序概念定義及相關理論知識程序實例練習及實踐環節的方式呈現給讀者,知識體系完整、內容全面、理論簡潔清晰。本書可作為計算機專業基礎、計算機公共基礎及計算機應用基礎等系列課程的教學及參考用書,也可作為計算機等級考試參考用書。全書共11章,第1章概述C語言的程序結構與特點,C程序的編輯編譯及運行步驟;第2章介紹C語言的數據類型;第3章講述常用運算符、表達式和庫函數的使用;第4章詳細介紹結構化程序設計方法;第5章講述利用數組處理批量數據的方法;第6章介紹利用函數實現模塊化程序設計方法;第7章是編譯預處理命令;第8章是指針的概念及其應用;第9章介紹利用結構體與共用體建立數據類型的方法;第10章簡單介紹位運算符及位運算;第11章是文件的使用。本書將常用的字符ASCII碼表、運算符的優先級與結合性、常用庫函數編入附錄A至附錄C中,方便讀者參考查閱。在編寫本書過程中,許多專家、同行及資深程序設計人員對本書理論及實踐內容的組織和編排提出了很多有益的建議,清華大學出版社為本書的出版提供了大力支持和幫助,我們對此表示由衷的感謝和敬意!由于編者水平有限,書中內容不足之處在所難免,期待廣大讀者提出寶貴意見和建議,衷心感謝批評指正!
編者2017年1月
目錄
第1章C語言的程序結構與特點1
1.1C語言程序結構1
1.1.1C程序的初步認識1
1.1.2C程序結構2
1.2C語言的特點4
1.3簡單C程序舉例5
1.4C程序的運行10
1.4.1C程序的運行步驟10
1.4.2在VC 6.0中編輯、編譯和運行C程序11
1.5習題與實踐13
第2章C語言的數據類型15
2.1概述15
2.2基本數據類型16
2.2.1整型16
2.2.2實型17
2.2.3字符型18
2.3常量與變量18
2.3.1字符集與標識符18
2.3.2常量20
2.3.3符號常量22
2.3.4變量23
2.4習題與實踐24
第3章常用運算符、表達式和庫函數27
3.1常用運算符和表達式273.1.1算術運算符和表達式27
3.1.2關系運算符和表達式30
3.1.3邏輯運算符和表達式32
3.1.4賦值運算符和表達式34
3.1.5逗號運算符和表達式36
3.2常用庫函數37
3.2.1輸入輸出函數37
3.2.2數學運算函數47
3.2.3字符處理函數48
3.3習題與實踐50
第4章結構化程序設計53
4.1程序的三種基本結構53
4.2選擇結構程序設計54
4.2.1if語句55
4.2.2switch語句62
4.2.3程序舉例64
4.3循環結構程序設計67
4.3.1while語句67
4.3.2dowhile語句68
4.3.3for語句71
4.3.4break語句與continue語句73
4.3.5循環的嵌套76
4.3.6程序舉例80
4.4習題與實踐84
第5章利用數組處理批量數據93
5.1一維數組的定義和引用935.1.1一維數組的定義93
5.1.2一維數組元素的引用95
5.2二維數組的定義和引用97
5.2.1二維數組的定義97
5.2.2二維數組元素的引用98
5.3字符數組101
5.3.1字符數組的定義和使用101
5.3.2字符數組和字符串101
5.3.3字符串處理函數104
5.4程序舉例107
5.5習題與實踐113
第6章利用函數實現模塊化程序設計121
6.1函數概述121
6.2函數定義、調用和聲明122
6.2.1函數定義122
6.2.2函數調用124
6.2.3函數聲明126
6.3函數的參數傳遞128
6.3.1函數調用的參數傳遞128
6.3.2值傳遞128
6.3.3地址傳遞130
6.4函數的嵌套調用和遞歸調用132
6.4.1函數的嵌套調用132
6.4.2函數的遞歸調用133
6.5全局變量和局部變量137
6.6變量的存儲方式140
6.7習題與實踐142第7章編譯預處理命令149
7.1概述149
7.2宏定義150
7.2.1不帶參數的宏定義150
7.2.2帶參數的宏定義152
7.3文件包含153
7.4條件編譯156
7.5習題與實踐158
第8章指針的使用163
8.1指針的基本概念163
8.1.1地址和指針163
8.1.2指針變量的定義和引用165
8.1.3指針變量作函數參數167
8.2指針與數組170
8.2.1一維數組元素的指針表示法170
8.2.2數組名作函數參數174
8.2.3二維數組中的指針176
8.3指針與字符串179
8.4指針與函數182
8.4.1指向函數的指針182
8.4.2返回指針值的函數184
8.5指針數組185
8.5.1指針數組的定義和應用185
8.5.2指針數組作main函數的參數186
8.6多級指針187
8.7程序舉例1888.8習題與實踐192
第9章利用結構體與共用體建立數據類型199
9.1結構體類型的定義和使用199
9.1.1結構體類型的定義199
9.1.2結構體類型變量的定義200
9.1.3結構體類型變量的引用202
9.2結構體數組205
9.3指向結構體類型數據的指針207
9.4鏈表209
9.4.1鏈表的基本概念209
9.4.2動態存儲分配函數210
9.4.3鏈表的基本操作211
9.5共用體219
9.5.1共用體變量的定義219
9.5.2共用體變量的引用221
9.6習題與實踐222
第10章位運算符及位運算227
10.1概述227
10.2位運算符及位運算228
10.3程序舉例233
10.4習題與實踐237
第11章文件的使用239
11.1概述239
11.2用文件類型指針定義文件240
11.3文件操作函數24211.3.1文件的打開和關閉函數243
11.3.2文件的讀寫函數244
11.3.3文件的定位函數249
11.4程序舉例250
11.5習題與實踐256
附錄A字符的ASCII碼表261
附錄B運算符的優先級與結合性263
附錄C常用庫函數265
參考文獻269