本教材為山東省精品課程《數(shù)據(jù)庫系統(tǒng)概論》研究成果。
C語言是國內(nèi)外各高校理工科專業(yè)的一門重要基礎(chǔ)課程,是一些計算機相關(guān)專業(yè)的研究生入學(xué)考試科目之一,地位至關(guān)重要。
本書是山東省精品課程《信息技術(shù)基礎(chǔ)實踐》的研究成果,是在長期從事程序設(shè)計類課程教學(xué)、教研經(jīng)驗豐富的一線教師教學(xué)手稿的基礎(chǔ)上修改、整理而成。在本系列教材的規(guī)劃、編寫、整理過程中,不僅對現(xiàn)有較經(jīng)典的教材進行了充分調(diào)研,并多次邀請專家和程序設(shè)計類課程的一線教師參會論證,力求博采眾長、定位準確、突出特色。
本書具有如下特點:
(1) 全書體系完整,重點突出,深入淺出,循序漸進,圖文并茂,講解透徹,剖析深入,案例豐富新穎。
(2) 關(guān)注例題之間的階梯性和連貫性,所有例題均有程序設(shè)計思路分析,這不僅有效降低了學(xué)習(xí)難度,而且突出了算法思想設(shè)計,注重學(xué)生編程思維和編程能力的培養(yǎng)。
(3) 注重理論,突出實踐。每章后面均有典型例題及程序分析,以實踐的形式強化理論,突出易錯點,為學(xué)生提供解題思路,并通過程序調(diào)試方法的詳細講解為實踐提供有力保障。
(4) 以一個小型系統(tǒng)為案例,隨著課程學(xué)習(xí)的不斷深入逐步完善,最后形成一個功能完整的小型系統(tǒng)。本案例著力突出培養(yǎng)學(xué)生利用C語言分析問題、解決問題的能力。
(5) 全方位服務(wù)。為方便教師和讀者使用,提供了配套的電子課件、例題源程序、習(xí)題答案、教學(xué)大綱、參考書目等。
全書內(nèi)容共分為12章,主要內(nèi)容包括概述、數(shù)據(jù)類型和表達式、順序結(jié)構(gòu)和常用函數(shù)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、函數(shù)和變量、指針、結(jié)構(gòu)體與共同體、編譯預(yù)處理、位運算及文件等。每章的開篇文字,說明本章的主要內(nèi)容;每章后面有典型例題分析,幫助讀者強化理論內(nèi)容;全書設(shè)有一個綜合案例將全書內(nèi)容有機貫穿起來,使讀者隨著課程學(xué)習(xí)的不斷深入,能走出局部,以全局的角度綜合運用C語言知識點解決實際問題。
本書的編寫得益于編寫小組的鼎力合作,其中王文博、郭長友負責編寫第1、2章,謝延紅、宋秀芹負責編寫第3~5章,魯燕負責編寫第6章,李天志、張建臣負責編寫第7章,趙麗敏負責編寫第8章,戎麗霞、楊光軍負責編寫第9、10章,王付山負責編寫第11、12章和附錄A、B,曹金鳳、戎麗霞負責編寫綜合案例和附錄C。全書由謝延紅、李麗統(tǒng)稿并任主編。所有教師均參與了書稿的校稿和程序調(diào)試工作。本教材在編寫過程中得到了德州學(xué)院信息管理學(xué)院的鼎力支持,參考了大量書籍、報刊和互聯(lián)網(wǎng)等參考文獻,一些教師和學(xué)生也提出了寶貴的意見和建議,在此一并表示衷心的感謝。
由于編者水平有限,書中疏漏和不足在所難免,誠摯地希望專家和廣大讀者不吝賜教,提出寶貴意見和建議,我們會認真對待,以期不斷改善教材質(zhì)量。郵件請發(fā)至dzxyjsjxc@163.com。
編者
2015年1月
第1章概述
1.1計算機程序設(shè)計語言的發(fā)展
1.2算法
1.2.1算法的主要特征
1.2.2算法的描述方法
1.3C語言簡介
1.3.1C語言發(fā)展歷程
1.3.2C語言的特點
1.3.3C語言程序示例
1.3.4C語言程序書寫約定
1.4C語言程序開發(fā)步驟
1.4.1C語言程序開發(fā)過程
1.4.2VC++ 6.0環(huán)境中C語言程序運行步驟
1.4.3VC++ 6.0環(huán)境中其他關(guān)鍵功能
1.5C語言程序的錯誤類型及調(diào)試方法
1.5.1編譯錯誤及調(diào)試方法
1.5.2鏈接錯誤及調(diào)試方法
1.5.3運行錯誤及調(diào)試方法
1.5.4邏輯錯誤及調(diào)試方法
1.6綜合案例
習(xí)題
第2章數(shù)據(jù)類型和表達式
2.1C語言字符集與詞法規(guī)則
2.1.1C語言字符集
2.1.2C語言詞匯及其組成規(guī)則
2.2數(shù)據(jù)類型
2.2.1基本類型
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常變量
2.5運算符和表達式
2.5.1運算符的優(yōu)先級與結(jié)合性
2.5.2算術(shù)運算符和算術(shù)表達式
2.5.3賦值運算符與賦值表達式
2.5.4關(guān)系運算符和關(guān)系表達式
2.5.5邏輯運算符和邏輯表達式
2.5.6其他運算符與表達式
2.5.7數(shù)據(jù)的類型轉(zhuǎn)換
2.6典型例題
2.7綜合案例
習(xí)題
第3章順序結(jié)構(gòu)程序設(shè)計及常用函數(shù)
3.1C語句分類
3.2常用數(shù)據(jù)輸出函數(shù)
3.2.1單字符輸出函數(shù)putchar
3.2.2格式輸出函數(shù)printf
3.3常用數(shù)據(jù)輸入函數(shù)
3.3.1單字符輸入函數(shù)getchar
3.3.2格式輸入函數(shù)scanf
3.4其他常用函數(shù)
3.4.1常用數(shù)學(xué)函數(shù)
3.4.2常用字符函數(shù)
3.4.3其他常用工具函數(shù)
3.5典型例題
3.6綜合案例
習(xí)題
第4章選擇結(jié)構(gòu)程序設(shè)計
4.1if條件語句
4.2條件表達式
4.3switch語句
4.4典型例題
4.5綜合案例
習(xí)題
第5章循環(huán)結(jié)構(gòu)程序設(shè)計
5.1while語句
5.2dowhile語句
5.3for語句
5.4循環(huán)語句的嵌套
5.5break語句和continue語句
5.5.1break語句
5.5.2continue語句
5.6典型例題
5.7綜合案例
習(xí)題
第6章數(shù)組
6.1一維數(shù)組
6.1.1一維數(shù)組的定義
6.1.2一維數(shù)組的使用
6.1.3一維數(shù)組的初始化
6.2二維數(shù)組
6.2.1二維數(shù)組的定義
6.2.2二維數(shù)組的使用
6.2.3二維數(shù)組的初始化
6.3字符串
6.3.1字符串常量
6.3.2字符串與字符數(shù)組
6.3.3字符串的輸入輸出
6.3.4字符串處理函數(shù)
6.4典型例題
6.5綜合案例
習(xí)題
第7章函數(shù)與變量
7.1函數(shù)定義
7.2函數(shù)的調(diào)用
7.2.1函數(shù)的調(diào)用形式
7.2.2函數(shù)的調(diào)用過程
7.2.3函數(shù)的嵌套調(diào)用
7.3函數(shù)原型聲明
7.4函數(shù)的參數(shù)傳遞
7.4.1傳值方式
7.4.2傳址方式
7.5遞歸函數(shù)
7.6變量的作用域
7.6.1局部變量
7.6.2全局變量
7.7變量的存儲類型
7.7.1自動變量
7.7.2靜態(tài)變量
7.7.3寄存器變量
7.7.4外部變量
7.7.5變量匯總
7.8典型例題
7.9綜合案例
習(xí)題
第8章指針
8.1指針與指針變量
8.1.1指針變量的基本概念
8.1.2指針變量的定義與初始化
8.1.3指針變量的使用
8.1.4二級指針
8.2指針與數(shù)組
8.2.1一維數(shù)組和指針
8.2.2二維數(shù)組和指針
8.2.3指向字符串的指針
8.3指針與函數(shù)
8.3.1指針變量作為函數(shù)參數(shù)
8.3.2指向函數(shù)的指針
8.3.3返回值為指針的函數(shù)
8.3.4main函數(shù)的參數(shù)
8.4典型例題
8.5綜合案例
習(xí)題
第9章結(jié)構(gòu)體與共用體
9.1結(jié)構(gòu)體類型
9.1.1定義結(jié)構(gòu)體類型
9.1.2結(jié)構(gòu)體變量的定義
9.1.3結(jié)構(gòu)體變量的使用
9.1.4結(jié)構(gòu)體變量的初始化
9.1.5結(jié)構(gòu)體變量的賦值
9.2結(jié)構(gòu)體數(shù)組
9.2.1結(jié)構(gòu)體數(shù)組的定義
9.2.2結(jié)構(gòu)體數(shù)組的初始化
9.2.3結(jié)構(gòu)體數(shù)組的使用
9.3結(jié)構(gòu)體類型指針
9.3.1指向結(jié)構(gòu)體變量的指針
9.3.2指向結(jié)構(gòu)體數(shù)組的指針
9.4結(jié)構(gòu)體與函數(shù)
9.4.1結(jié)構(gòu)體變量作函數(shù)參數(shù)
9.4.2指向結(jié)構(gòu)體變量(或數(shù)組)的指針作函數(shù)參數(shù)
9.4.3函數(shù)的返回值為結(jié)構(gòu)體類型
9.5鏈表
9.5.1鏈表概述
9.5.2動態(tài)存儲分配函數(shù)
9.5.3鏈表的基本操作
9.6共用體
9.6.1共用體類型的定義
9.6.2共用體類型變量的定義
9.6.3共用體變量的使用
9.7枚舉類型
9.8typedef類型定義
9.9典型例題
9.10綜合案例
習(xí)題
第10章編譯預(yù)處理
10.1宏定義
10.1.1不帶參數(shù)的宏定義
10.1.2帶參數(shù)的宏定義
10.2文件包含
10.3條件編譯
10.4典型例題
10.5綜合案例
習(xí)題
第11章位運算
11.1位運算符
11.2位運算的應(yīng)用
11.3位段及其應(yīng)用
11.4典型例題
習(xí)題
第12章文件
12.1文件概述
12.2文件指針
12.3文件的打開與關(guān)閉
12.4文件的定位與檢測
12.5文件的讀寫操作
12.5.1按字符方式文件讀寫函數(shù)fgetc和fputc
12.5.2按字符串方式文件讀寫函數(shù)fgets和fputs
12.5.3按格式化方式文件讀寫函數(shù)fscanf和fprintf
12.5.4按數(shù)據(jù)塊方式文件讀寫函數(shù)fread和fwrite
12.5.5文件的隨機讀寫
12.6典型例題
12.7綜合案例
習(xí)題
附錄AC語言常用庫函數(shù)
附錄B常用字符與ASCII代碼對照表
附錄C綜合案例參考源代碼
參考文獻