本書是C語言程序設(shè)計的入門教程,針對沒有程序設(shè)計基礎(chǔ)的讀者,詳細介紹了C語言的基本概念、語法及編程技術(shù)。全書共分為12章,內(nèi)容包括:程序設(shè)計有關(guān)的基本知識、常量與變量、運算符與表達式、流程控制、函數(shù)、數(shù)組、指針、文件、多文件工程等;最后通過一個成績管理系統(tǒng)綜合實例,全面應(yīng)用了C語言中幾乎所有的知識點,充分體現(xiàn)了結(jié)構(gòu)化程序設(shè)計的思想和方法,便于讀者通過模仿學(xué)會綜合程序的編程。
本書的配套教材《C語言程序設(shè)計習(xí)題解析與實驗指導(dǎo)(第2版)》,包含了主教材思考題的解析、主教材后的習(xí)題解答、補充習(xí)題與答案、10個配套實驗,可以與本書配合使用。
本書可作為高等學(xué)校本?聘鲗I(yè)程序設(shè)計課程相關(guān)教材,也可作為編程愛好者自學(xué)C語言的參考書。
內(nèi)容和寫法上比較有特色之處是: 。1)第一章開篇從機器語言程序的設(shè)計及執(zhí)行過程解釋了計算機程序設(shè)計和執(zhí)行的本質(zhì),尤其是子程序調(diào)用的解釋,這是本教材區(qū)別于其他教材的一種獨特思路。因為,長期以來,學(xué)生在學(xué)完了C語言之后,對函數(shù)調(diào)用的原理不清楚,什么叫斷點地址、如何能返回原調(diào)用點等等都不清楚,這從本質(zhì)上解釋了程序執(zhí)行的過程! 。2)解釋了字面值常量問題,統(tǒng)一了常量與變量存儲空間的標識與存儲空間里面的內(nèi)容的區(qū)別。 。3)將一維數(shù)組與一級指針放在同一章中同時講解,因為在實際編程中,一級指針常用來訪問一維數(shù)組的元素,而且一維數(shù)組形式參數(shù)的本質(zhì)就是一級指針參數(shù),兩部分內(nèi)容整合在一起,不僅縮減了篇幅,而且很自然地給出很多應(yīng)用的實例。更主要的,給出了一維數(shù)組名的兩種意義解釋,從而使得二維數(shù)組中的行列指針的知識非常容易掌握,這是很多教材中我法講解得很清楚的問題,也是教師教學(xué)過程中的一個難點! 。4)對函數(shù)的返回值為什么能賦值給主調(diào)函數(shù)的變量這一問題作了深入分析,通過簡單的三句話的總結(jié)解決了一直困擾學(xué)生的返回值存放在哪里,為什么能傳出被調(diào)函數(shù)這一疑問。這是目前其他教材中幾乎都沒有解釋的問題。并且對于函數(shù)的參數(shù),尤其是指針參數(shù)的應(yīng)用原理作了深入分析! 。5)全書大量采用表格對比的形式引出了新的知識點,用學(xué)生已經(jīng)掌握的老知識介紹新的內(nèi)容,自然過渡,降低了學(xué)習(xí)的難度,也使同樣頁碼的教材含有比同類教材更豐富的信息! 。6)實用的附錄信息。將主教材中一些總結(jié)性的表格、內(nèi)容以附錄形式出現(xiàn),這樣,使得主教材需要主講的內(nèi)容部分簡明清晰,教師不會覺得負擔(dān)重,學(xué)生看的時候也會感覺輕松。特別值得一提的是:作者總結(jié)多年的教學(xué)經(jīng)驗將初學(xué)者編程易出錯的現(xiàn)象及解決方案,分門別類地給出了示例、報錯或告警信息及解決方案,這是其他教材中沒有的亮點! 。7)動態(tài)演示程序執(zhí)行過程的配套課件。提供兩種版本的多媒體課件:教學(xué)版和自學(xué)版,教學(xué)版為PPT加程序動態(tài)演示整合版(AUTHORWARE制作),從出版社網(wǎng)站供教師下載;自學(xué)版為整本教材的動態(tài)演示整合版(AUTHORWARE制作),方便讀者根據(jù)課件更好地理解程序執(zhí)行的過程,增強了趣味性和直觀性。 總之,該教材從內(nèi)容的組織及配套資源的提供上都是從有利于教學(xué)、有利于自學(xué)出發(fā)的,期待著經(jīng)得起讀者檢驗。
第1章 計算機、C語言與二進制 1.1 計算機、程序與程序設(shè)計語言 1.1.1 電子計算機概述 1.1.2 程序與程序設(shè)計 1.1.3 程序設(shè)計語言簡介 1.2 初識C 第1章 計算機、C語言與二進制 1.1 計算機、程序與程序設(shè)計語言 1.1.1 電子計算機概述 1.1.2 程序與程序設(shè)計 1.1.3 程序設(shè)計語言簡介 1.2 初識C語言 1.2.1 C語言的傳奇身世 1.2.2 為什么選擇C語言 1.2.3 C語言程序及其開發(fā) 1.3 信息的存儲及進制問題 1.3.1 內(nèi)存的基本知識 1.3.2 二進制、八進制及十六進制 1.3.3 進制間的相互轉(zhuǎn)換 習(xí)題第2章 初識C語言源程序及其數(shù)據(jù)類型 2.1 C語言源程序及其符號 2.1.1 C語言源程序的組成 2.1.2 C語言源程序中的6種基本符號 2.2 C語言中的數(shù)據(jù)類型 2.2.1 C語言數(shù)據(jù)類型的種類 2.2.2 基本數(shù)據(jù)類型及其修飾符 2.3 常量 2.3.1 整型常量 2.3.2 實型常量 2.3.3 字符常量 2.3.4 字符串常量 2.3.5 符號常量 2.4 變量 2.4.1 變量的定義及初始化 2.4.2 變量的輸入和輸出 2.4.3 用const修飾符限定變量 2.5 基本數(shù)據(jù)類型在計算機內(nèi)部的表示 2.5.1 整型數(shù)據(jù)在內(nèi)存中的存儲形式 2.5.2 字符型數(shù)據(jù)在內(nèi)存中的存儲形式 2.5.3 實型數(shù)據(jù)在內(nèi)存中的存儲形式 2.6 本章常見錯誤及解決方案 習(xí)題第3章 運算符與表達式 3.1 什么是運算符與表達式 3.2 運算符的優(yōu)先級與結(jié)合性 3.3 常用運算符 3.3.1 算術(shù)運算符 3.3.2 關(guān)系運算符 3.3.3 邏輯運算符 3.3.4 條件運算符 3.3.5 賦值及復(fù)合賦值運算符 3.3.6 逗號運算符 3.3.7 自增、自減運算符 3.4 運算過程中的數(shù)據(jù)類型轉(zhuǎn)換 3.4.1 表達式中的自動類型轉(zhuǎn)換 3.4.2 賦值中的自動類型轉(zhuǎn)換 3.4.3 強制類型轉(zhuǎn)換 3.5 位運算符 3.6 本章常見錯誤及解決方案 習(xí)題第4章 程序流程控制 4.1 語句與程序流程 4.1.1 語句的分類 4.1.2 程序流程及其表示 4.2 順序結(jié)構(gòu) 4.3 選擇結(jié)構(gòu) 4.3.1 if語句 4.3.2 switch語句 4.4 循環(huán)結(jié)構(gòu) 4.4.1 while語句 4.4.2 do~while語句 4.4.3 for語句 4.4.4 循環(huán)嵌套 4.5 break與co 4.6 應(yīng)用舉例——判斷質(zhì)數(shù)、百錢百雞 4.7 本章常見錯誤及解決方案 習(xí)題第5章 函數(shù)的基本知識 5.1 函數(shù)與模塊化程序設(shè)計 5.2 函數(shù)的定義 5.3 函數(shù)的調(diào)用 5.3.1 函數(shù)調(diào)用的基本形式 5.3.2 函數(shù)調(diào)用的完整過程 5.4 函數(shù)的原型聲明 5.5 函數(shù)的遞歸 5.6 變量的作用域與存儲類型 5.6.1 變量的作用域 5.6.2 變量的存儲類型 5.7 應(yīng)用舉例——二次項定理求值 5.8 本章常見錯誤及解決方案 習(xí)題第6章 數(shù)組 6.1 一維數(shù)組 6.1.1 一維數(shù)組的定義 6.1.2 一維數(shù)組的初始化 6.1.3 一維數(shù)組的訪問 6.1.4 一維數(shù)組應(yīng)用舉例——求和及Fibonacci數(shù)列 6.2 二維數(shù)組 6.2.1 二維數(shù)組的定義 6.2.2 二維數(shù)組的初始化 6.2.3 二維數(shù)組的訪問 6.3 向函數(shù)傳遞數(shù)組 6.3.1 向函數(shù)傳遞一維數(shù)組 6.3.2 向函數(shù)傳遞二維數(shù)組 6.4 數(shù)組常用算法介紹 6.4.1 數(shù)組元素查找 6.4.2 插入數(shù)組元素 6.4.3 數(shù)組元素刪除 6.4.4 數(shù)組排序 6.5 本章常見錯誤及解決方案 習(xí)題第7章 指針 7.1 指針變量 7.1.1 變量地址和變量的值 7.1.2 指針變量的定義和訪問 7.1.3 指針變量的運算 7.2 指針與函數(shù) 7.2.1 傳值與傳地址 7.2.2 指針作形參返回多個值 7.2.3 返回指針的函數(shù) 7.3 指針與數(shù)組 7.3.1 指針與一維數(shù)組 7.3.2 指針和二維數(shù)組 7.4 應(yīng)用舉例 7.4.1 批量數(shù)據(jù)的統(tǒng)計 7.4.2 進制轉(zhuǎn)換 7.4.3 選擇法排序 7.4.4 矩陣中的運算 7.5 指針進階 7.5.1 const與指針的結(jié)合 7.5.2 二級指針和指針數(shù)組 7.5.3 行指針與二維數(shù)組 7.5.4 指針與動態(tài)空間 7.5.5 指向函數(shù)的指針 7.6 本章常見錯誤及解決方案 習(xí)題第8章 字符串 8.1 字符串的定義與初始化 8.2 字符串的常用操作 8.2.1 字符串的輸入/輸出 8.2.2 指向字符串的指針 8.2.3 字符串處理的常用函數(shù) 8.3 應(yīng)用舉例 8.3.1 回文的判斷 8.3.2 統(tǒng)計單詞出現(xiàn)次數(shù) 8.3.3 密碼問題 8.3.4 字符串的排序 8.4 帶參數(shù)的main函數(shù) 8.5 綜合應(yīng)用實例——單詞本管理 8.6 本章常見錯誤及解決方案 習(xí)題第9章 編譯預(yù)處理與多文件工程程序 9.1 編譯預(yù)處理 9.1.1 文件包含 9.1.2 宏定義 9.1.3 條件編譯 9.2 多文件工程程序 9.2.1 多文件工程程序的組織結(jié)構(gòu) 9.2.2 外部變量與外部函數(shù) 9.2.3 靜態(tài)全局變量與靜態(tài)函數(shù) 9.3 應(yīng)用舉例——多文件結(jié)構(gòu)處理數(shù)組問題 9.4 本章常見錯誤及解決方案 習(xí)題第10章 結(jié)構(gòu)、聯(lián)合、枚舉 10.1 結(jié)構(gòu) 10.1.1 結(jié)構(gòu)的定義 10.1.2 結(jié)構(gòu)體變量 10.1.3 結(jié)構(gòu)體指針 10.1.4 結(jié)構(gòu)體數(shù)組 10.1.5 結(jié)構(gòu)體應(yīng)用 10.2 鏈表 10.2.1 鏈表的概念 10.2.2 鏈表的基本操作 10.3 聯(lián)合 10.4 枚舉 10.5 本章常見錯誤及解決方案 習(xí)題第11章 文件 11.1 文件與文件指針 11.2 文件的打開和關(guān)閉 11.2.1 文件打開操作 11.2.2 文件關(guān)閉操作 11.3 文件讀寫 11.3.1 字符讀寫 11.3.2 字符串讀寫 11.3.3 格式化讀寫 11.3.4 塊數(shù)據(jù)讀寫 11.4 位置指針的定位 11.5 應(yīng)用舉例——文件的復(fù)制 11.6 本章常見錯誤及解決方案 習(xí)題第12章 學(xué)生成績管理系統(tǒng)的設(shè)計與實現(xiàn) 12.1 系統(tǒng)概述 12.2 數(shù)據(jù)類型的定義 12.3 為結(jié)構(gòu)體類型定制的基本操作 12.4 用二進制文件實現(xiàn)數(shù)據(jù)的永久保存 12.5 用兩級菜單四層函數(shù)實現(xiàn)系統(tǒng) 習(xí)題附錄A 常用字符與ASCII碼對照表附錄B C語言的關(guān)鍵字附錄C Visual C 下各數(shù)據(jù)類型所占字節(jié)數(shù)及取值范圍附錄D C語言運算符的優(yōu)先級與結(jié)合性附錄E 常用的ANSI C標準庫函數(shù)附錄F C語言程序設(shè)計常見錯誤及解決方案附錄G 命名規(guī)則附錄H C語言的發(fā)展簡史附錄I 函數(shù)printf的格式轉(zhuǎn)換說明符附錄J 函數(shù)printf的格式修飾符參考文獻