本書是根據(jù)教育部《關(guān)于進(jìn)一步加強(qiáng)高等學(xué)校計(jì)算機(jī)基礎(chǔ)教學(xué)的意見》的基本要求編寫的計(jì)算機(jī)程序設(shè)計(jì)課程教材。
本書從C語言程序設(shè)計(jì)的基本原理及程序設(shè)計(jì)的基本思想出發(fā),以“實(shí)踐應(yīng)用”為目標(biāo),緊扣基礎(chǔ),循序漸進(jìn),面向應(yīng)用。
全書主要包括兩部分,即基礎(chǔ)部分和面向應(yīng)用部分。基礎(chǔ)部分的主要內(nèi)容包括程序設(shè)計(jì)中的基本概念與應(yīng)用,如變量、表達(dá)式、輸入/輸出函數(shù)、流程控制結(jié)構(gòu)等。面向應(yīng)用部分包括函數(shù)、數(shù)組、指針的概念及其應(yīng)用、算法設(shè)計(jì)與實(shí)現(xiàn)、結(jié)構(gòu)型數(shù)據(jù)的應(yīng)用及文件的操作等面向應(yīng)用的知識。
本書可作為高等院校相關(guān)專業(yè)的教材,也可作為軟件水平考試輔導(dǎo)、各類成人教育的教材,還可供計(jì)算機(jī)愛好者自學(xué)使用。
第1章 程序設(shè)計(jì)概述
1.1 程序設(shè)計(jì)概述
1.1.1 程序、程序設(shè)計(jì)與程序設(shè)計(jì)語言
1.1.2 程序設(shè)計(jì)的一般過程
1.1.3 程序設(shè)計(jì)語言的發(fā)展
1.2 算法及其描述
1.2.1 算法及其特性
1.2.2 算法的表示
1.3 C語言概述
1.3.1 C語言的發(fā)展
1.3.2 C語言的特點(diǎn)
1.4 C程序的基本結(jié)構(gòu)
1.4.1 簡單的C語言程序例子
1.4.2 C語言的基本結(jié)構(gòu)
1.5 C語言程序的運(yùn)行步驟
1.6 學(xué)習(xí)程序設(shè)計(jì)應(yīng)注意的幾個(gè)問題
本章小結(jié)
習(xí)題1
第2章 數(shù)據(jù)類型與表達(dá)式
2.1 詞法構(gòu)成
2.1.1 基本字符集
2.1.2 標(biāo)識符
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 運(yùn)算符和表達(dá)式
2.4.1 運(yùn)算符和表達(dá)式概述
2.4.2 算術(shù)運(yùn)算符和表達(dá)式
2.4.3 賦值運(yùn)算符和賦值表達(dá)式
2.4.4 關(guān)系運(yùn)算符和表達(dá)式
2.4.5 邏輯運(yùn)算符和表達(dá)式
2.4.6 其他運(yùn)算符和表達(dá)式
2.4.7 表達(dá)式的類型轉(zhuǎn)換
本章小結(jié)
習(xí)題2
第3章 順序結(jié)構(gòu)程序設(shè)計(jì)
3.1 結(jié)構(gòu)化程序設(shè)計(jì)
3.1.1 程序的三種基本結(jié)構(gòu)
3.1.2 結(jié)構(gòu)化程序設(shè)計(jì)的核心思想
3.1.3 自頂向下、逐步細(xì)化的程序 設(shè)計(jì)方法
3.2 C語句
3.3 賦值語句
3.4 數(shù)據(jù)輸入/輸出的概念及在C語言 中的實(shí)現(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é)
習(xí)題3
第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)
4.1 IF語句
4.1.1 if語句的三種形式
4.1.2 if語句的嵌套
4.2 switch語句
4.3 條件運(yùn)算符和條件表達(dá)式
4.4 選擇結(jié)構(gòu)程序?qū)嵗?
本章小結(jié)
習(xí)題4
第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
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è)計(jì)技術(shù)
5.7.1 窮舉法
5.7.2 遞推法
5.8 循環(huán)程序設(shè)計(jì)實(shí)例
本章小結(jié)
習(xí)題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é)
習(xí)題6
第7章 數(shù)組
7.1 一維數(shù)組
7.1.1 一維數(shù)組的定義
7.1.2 一維數(shù)組的引用
7.1.3 一維數(shù)組的初始化
7.1.4 一維數(shù)組應(yīng)用舉例
7.2 二維數(shù)組
7.2.1 二維數(shù)組的定義
7.2.2 二維數(shù)組的引用
7.2.3 二維數(shù)組的初始化
7.2.4 二維數(shù)組的分解
7.3 數(shù)組與運(yùn)算符
7.3.1 數(shù)組與算術(shù)/賦值/邏輯運(yùn)算符
7.3.2 對數(shù)組使用sizeof運(yùn)算符
7.4 數(shù)組與函數(shù)
7.4.1 數(shù)組元素作函數(shù)實(shí)參
7.4.2 數(shù)組名作為函數(shù)參數(shù)
7.5 字符數(shù)組與字符串
7.5.1 字符數(shù)組的基本語法知識
7.5.2 字符串和字符串結(jié)束標(biāo)志
7.5.3 字符數(shù)組的輸入/輸出
7.5.4 字符串處理函數(shù)
7.6 數(shù)組應(yīng)用實(shí)例
7.6.1 數(shù)組中的查找算法
7.6.2 數(shù)組中的排序算法
7.6.3 數(shù)組的綜合應(yīng)用
本章小結(jié)
習(xí)題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)分配方法與應(yīng)用
本章小結(jié)
習(xí)題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é)
習(xí)題9
第10章 文件
10.1 文件概述
10.1.1 文本文件與二進(jìn)制文件
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 文件的隨機(jī)讀寫
10.4.1 文件定位
10.4.2 隨機(jī)讀寫函數(shù)rewind和fseek
10.5 文件檢測函數(shù)
本章小結(jié)
習(xí)題10
第11章 編譯預(yù)處理
11.1 宏定義
11.1.1 無參數(shù)宏定義
11.1.2 帶參數(shù)宏定義
11.1.3 宏嵌套
11.2 條件編譯
11.3 文件包含
本章小結(jié)
習(xí)題11
附錄A ASCII字符編碼表
附錄B 運(yùn)算符優(yōu)先級和結(jié)合性表
附錄C C庫函數(shù)
參考文獻(xiàn)