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