本書是根據(jù)教育部《關(guān)于進一步加強高等學校計算機基礎教學的意見》的基本要求編寫的計算機程序設計課程教材。
本書從C語言程序設計的基本原理及程序設計的基本思想出發(fā),以“實踐應用”為目標,緊扣基礎,循序漸進,面向應用。
全書主要包括兩部分,即基礎部分和面向應用部分;A部分的主要內(nèi)容包括程序設計中的基本概念與應用,如變量、表達式、輸入/輸出函數(shù)、流程控制結(jié)構(gòu)等。面向應用部分包括函數(shù)、數(shù)組、指針的概念及其應用、算法設計與實現(xiàn)、結(jié)構(gòu)型數(shù)據(jù)的應用及文件的操作等面向應用的知識。
本書可作為高等院校相關(guān)專業(yè)的教材,也可作為軟件水平考試輔導、各類成人教育的教材,還可供計算機愛好者自學使用。
第1章 程序設計概述
1.1 程序設計概述
1.1.1 程序、程序設計與程序設計語言
1.1.2 程序設計的一般過程
1.1.3 程序設計語言的發(fā)展
1.2 算法及其描述
1.2.1 算法及其特性
1.2.2 算法的表示
1.3 C語言概述
1.3.1 C語言的發(fā)展
1.3.2 C語言的特點
1.4 C程序的基本結(jié)構(gòu)
1.4.1 簡單的C語言程序例子
1.4.2 C語言的基本結(jié)構(gòu)
1.5 C語言程序的運行步驟
1.6 學習程序設計應注意的幾個問題
本章小結(jié)
習題1
第2章 數(shù)據(jù)類型與表達式
2.1 詞法構(gòu)成
2.1.1 基本字符集
2.1.2 標識符
2.1.3 關(guān)鍵字
2.2 基本數(shù)據(jù)類型
2.2.1 數(shù)據(jù)類型的一般概念
2.2.2 基本數(shù)據(jù)類型
2.3 常量與變量
2.3.1 常量
2.3.2 變量
2.4 運算符和表達式
2.4.1 運算符和表達式概述
2.4.2 算術(shù)運算符和表達式
2.4.3 賦值運算符和賦值表達式
2.4.4 關(guān)系運算符和表達式
2.4.5 邏輯運算符和表達式
2.4.6 其他運算符和表達式
2.4.7 表達式的類型轉(zhuǎn)換
本章小結(jié)
習題2
第3章 順序結(jié)構(gòu)程序設計
3.1 結(jié)構(gòu)化程序設計
3.1.1 程序的三種基本結(jié)構(gòu)
3.1.2 結(jié)構(gòu)化程序設計的核心思想
3.1.3 自頂向下、逐步細化的程序 設計方法
3.2 C語句
3.3 賦值語句
3.4 數(shù)據(jù)輸入/輸出的概念及在C語言 中的實現(xiàn)
3.5 字符數(shù)據(jù)的輸入/輸出
3.5.1 putchar函數(shù)(字符輸出函數(shù))
3.5.2 getchar函數(shù)(鍵盤輸入函數(shù))
3.6 格式輸入/輸出
3.6.1 printf函數(shù)(格式輸出函數(shù))
3.6.2 scanf函數(shù)(格式輸入函數(shù))
3.7 順序結(jié)構(gòu)程序?qū)嵗?
本章小結(jié)
習題3
第4章 選擇結(jié)構(gòu)程序設計
4.1 IF語句
4.1.1 if語句的三種形式
4.1.2 if語句的嵌套
4.2 switch語句
4.3 條件運算符和條件表達式
4.4 選擇結(jié)構(gòu)程序?qū)嵗?
本章小結(jié)
習題4
第5章 循環(huán)結(jié)構(gòu)程序設計
5.1 循環(huán)的基本概念
5.2 while和do-while語句
5.2.1 while語句
5.2.2 do-while語句
5.3 for語句
5.4 循環(huán)的嵌套
5.5 幾種循環(huán)的比較
5.6 循環(huán)中的跳轉(zhuǎn)
5.6.1 break語句
5.6.2 continue語句
5.6.3 goto語句
5.7 基本的算法設計技術(shù)
5.7.1 窮舉法
5.7.2 遞推法
5.8 循環(huán)程序設計實例
本章小結(jié)
習題5
第6章 函數(shù)與程序結(jié)構(gòu)
6.1 函數(shù)的基本語法知識
6.1.1 函數(shù)定義
6.1.2 函數(shù)調(diào)用
6.1.3 函數(shù)返回
6.1.4 函數(shù)聲明
6.2 函數(shù)的執(zhí)行過程
6.2.1 函數(shù)的存儲
6.2.2 函數(shù)調(diào)用的執(zhí)行過程
6.2.3 函數(shù)間的數(shù)據(jù)傳遞
6.3 函數(shù)的嵌套調(diào)用與遞歸調(diào)用
6.3.1 嵌套調(diào)用
6.3.2 遞歸調(diào)用
6.4 函數(shù)分解與程序結(jié)構(gòu)
6.4.1 函數(shù)分解
6.4.2 程序結(jié)構(gòu)
6.5 變量的存儲類別與作用域
6.5.1 自動變量(auto)
6.5.2 外部變量(extern)
6.5.3 靜態(tài)變量(static)
6.5.4 寄存器變量(register)
6.6 庫函數(shù)
6.6.1 靜態(tài)鏈接庫
6.6.2 動態(tài)鏈接庫
6.6.3 C語言常用庫函數(shù)
本章小結(jié)
習題6
第7章 數(shù)組
7.1 一維數(shù)組
7.1.1 一維數(shù)組的定義
7.1.2 一維數(shù)組的引用
7.1.3 一維數(shù)組的初始化
7.1.4 一維數(shù)組應用舉例
7.2 二維數(shù)組
7.2.1 二維數(shù)組的定義
7.2.2 二維數(shù)組的引用
7.2.3 二維數(shù)組的初始化
7.2.4 二維數(shù)組的分解
7.3 數(shù)組與運算符
7.3.1 數(shù)組與算術(shù)/賦值/邏輯運算符
7.3.2 對數(shù)組使用sizeof運算符
7.4 數(shù)組與函數(shù)
7.4.1 數(shù)組元素作函數(shù)實參
7.4.2 數(shù)組名作為函數(shù)參數(shù)
7.5 字符數(shù)組與字符串
7.5.1 字符數(shù)組的基本語法知識
7.5.2 字符串和字符串結(jié)束標志
7.5.3 字符數(shù)組的輸入/輸出
7.5.4 字符串處理函數(shù)
7.6 數(shù)組應用實例
7.6.1 數(shù)組中的查找算法
7.6.2 數(shù)組中的排序算法
7.6.3 數(shù)組的綜合應用
本章小結(jié)
習題7
第8章 指針
8.1 地址、指針與指針變量的基本概念
8.1.1 地址與指針
8.1.2 指針變量
8.2 指針變量的定義、賦值和引用
8.2.1 指針變量的定義
8.2.2 指針變量的賦值
8.2.3 引用指針變量所指的值
8.3 數(shù)組指針和指向數(shù)組的指針變量
8.3.1 指向一維數(shù)組的指針
8.3.2 通過指針引用一維數(shù)組元素
8.3.3 字符指針與字符數(shù)組
8.3.4 指向二維數(shù)組的指針
8.3.5 指針數(shù)組
8.4 指針與函數(shù)
8.4.1 指針作為函數(shù)參數(shù)
8.4.2 指針函數(shù)
8.4.3 函數(shù)指針
8.5 指針的指針
8.6 動態(tài)內(nèi)存分配與指向它的 指針變量
8.6.1 內(nèi)存的動態(tài)分配概述
8.6.2 內(nèi)存的動態(tài)分配方法與應用
本章小結(jié)
習題8
第9章 結(jié)構(gòu)、聯(lián)合與枚舉
9.1 結(jié)構(gòu)體
9.1.1 定義結(jié)構(gòu)體類型
9.1.2 結(jié)構(gòu)體變量的定義、 引用及初始化
9.1.3 結(jié)構(gòu)體數(shù)組的定義
9.1.4 結(jié)構(gòu)體作函數(shù)參數(shù)
9.1.5 指針與結(jié)構(gòu)體
9.1.6 結(jié)構(gòu)指針變量作函數(shù)參數(shù)
9.1.7 鏈表
9.2 聯(lián)合體
9.3 枚舉類型
9.4 類型定義符typedef
本章小結(jié)
習題9
第10章 文件
10.1 文件概述
10.1.1 文本文件與二進制文件
10.1.2 文件緩沖區(qū)
10.1.3 文件的指針
10.2 文件處理
10.2.1 文件的建立/打開
10.2.2 文件的關(guān)閉
10.3 文件的順序讀寫
10.3.1 字符讀寫函數(shù)fgetc和fputc
10.3.2 字符串讀寫函數(shù):fgets 和fputs
10.3.3 數(shù)據(jù)塊讀寫函數(shù):fread 和fwrite
10.3.4 格式化讀寫函數(shù):fscanf 和fprintf
10.4 文件的隨機讀寫
10.4.1 文件定位
10.4.2 隨機讀寫函數(shù)rewind和fseek
10.5 文件檢測函數(shù)
本章小結(jié)
習題10
第11章 編譯預處理
11.1 宏定義
11.1.1 無參數(shù)宏定義
11.1.2 帶參數(shù)宏定義
11.1.3 宏嵌套
11.2 條件編譯
11.3 文件包含
本章小結(jié)
習題11
附錄A ASCII字符編碼表
附錄B 運算符優(yōu)先級和結(jié)合性表
附錄C C庫函數(shù)
參考文獻