《C語言程序設計》主要講述C語言的基本知識 和程序設計的初步方法。全書共11 章,其中第1章至第6章主要介紹C語言程序設計的基本概念、基本結構及 函數等;第7章至第11章主要介紹數組、指針、結構體與共用體等復雜數據 結構。為便于讀者掌握書中的知識和操作,本書配有《C語言程序設計輔導 及實驗指導書》,其中包含大量的操作實例和習題。
《C語言程序設計》結構合理,詳略得當,語言精練,通俗易懂,可作 為高等院校各專業 C語言程序設計課程教材,也可供相關領域的工程技術人員參考。
前言
第1章 C語言概述
1.1 C語言簡介
1.1.1 程序和程序設計語言
1.1.2 C語言的發展歷史
1.1.3 C語言的特點
1.2 簡單的C程序介紹
1.3 運行C程序的步驟
本章小結
第2章 基本數據類型及運算
2.1 數據類型
2.2 常量與變量
2.2.1 標識符
2.2.2 常量
2.2.3 變量 前言
第1章 C語言概述
1.1 C語言簡介
1.1.1 程序和程序設計語言
1.1.2 C語言的發展歷史
1.1.3 C語言的特點
1.2 簡單的C程序介紹
1.3 運行C程序的步驟
本章小結
第2章 基本數據類型及運算
2.1 數據類型
2.2 常量與變量
2.2.1 標識符
2.2.2 常量
2.2.3 變量
2.3 格式化輸人與輸出函數
2.3.1 格式輸出函數printf()
2.3.2 格式輸入函數scanf()
2.4 整型數據
2.4.1 整型變量
2.4.2 整型常量
2.5 實型數據
2.5.1 實型常量
2.5.2 實型變量
2.6 字符型數據
2.6.1 字符常量
2.6.2 字符變量
2.7 變量賦初值
2.8 各類數值型數據間的混合運算
2.8.1 隱式類型轉換
2.8.2 強制類型轉換
2.9 算術運算符和算術表達式
2.9.1 C語言運算符簡介
2.9.2 算術運算符和算術表達式
2.10 賦值運算符和賦值表達式
2.10.1 賦值運算符
2.10.2 賦值表達式
2.11 逗號運算符和逗號表達式
本章小結
第3章 順序結構程序設計
3.1 結構化程序設計方法
3.1.1 結構化程序設計方法的產生
3.1.2 三種基本控制結構
3.2 C語句概述
3.2.1 表達式語句
3.2.2 控制語句
3.2.3 函數調用語句
3.2.4 空語句
3.2.5 復合語句
3.3 字符數據的輸入與輸出
3.3.1 字符格式控制符
3.3.2 字符輸入輸出函數
3.3.3 程序舉例
本章小結
第4章 選擇結構程序設計
4.1 關系運算符和關系表達式
4.2 邏輯運算符和邏輯表達式
4.3 if語句
4.3.1 if語句的基本形式
4.3.2 if語句的嵌套形式
4.3.3 條件運算符
4.4 switch語句
本章小結
第5章 循環結構程序設計
5.1 概述
5.2 while語句
5.3 do-while語句
5.4 for語句
5.5 循環的嵌套
5.6 13reak語句和continue語句
5.6.1 break語句
5.6.2 continue語句
本章小結
第6章 函數
6.1 概述
6.1.1 模塊化程序設計思想
6.1.2 函數的基本概念
6.1.3 庫函數與用戶自定義函數
6.2 函數定義的一般形式
6.2.1 函數的定義
6.2.2 自定義函數在程序代碼中的位置
6.3 函數的參數和函數的返回值
6.3.1 函數的參數
6.3.2 函數的返回值
6.4 函數的調用
6.4.1 語句調用
6.4.2 表達式調用
6.4.3 嵌套調用
6.5 局部變量和全局變量
6.5.1 局部變量
6.5.2 全局變量
6.6 函數的高級應用
6.6.1 函數的遞歸調用
6.6.2 變量的存儲類別
6.6.3 內部函數和外部函數
本章小結
第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 字符數組的初始化
7.3.3 字符數組的輸入和輸出
7.3.4 字符串處理函數
7.3.5 字符數組應用舉例
7.4 數組作為函數參數
7.4.1 數組元素作函數實際參數
7.4.2 數組名作函數參數
7.5 數組綜合實例
本章小結
第8章 編譯預處理
8.1 宏定義
8.1.1 不帶參數的宏
8.1.2 帶參數的宏
8.2 文件包含
8.2.1 庫函數與頭文件包含
8.2.2 文件包含處理
8.3 條件編譯
本章小結
第9章 指針
9.1 內存地址與指針
9.1.1 內存地址和內存分配
9.1.2 指針和指針變量
9.2 指向變量的指針變量
9.2.1 指向變量的指針變量的定義
9.2.2 指向變量的指針變量的賦值和初始化
9.2.3 指向變量的指針變量的引用
9.3 指針和數組
9.3.1 指向一維數組元素的指針變量
9.3.2 指針變量的算術運算和比較
9.3.3 通過指針引用一維數組元素
9.3.4 指針數組
9.4 字符串與指針
9.4.1 用字符數組實現
9.4.2 用字符指針實現
9.4.3 字符串的數組實現和指針實現的區別
9.4.4 字符串的數組實現和指針實現的聯系
9.5 函數與指針
9.5.1 指針作為函數的參數
9.5.2 返回值為指針的函數
9.5.3 函數的指針與通過指針調用函數
本章小結
第10章 結構體和共用體
10.1 概述
10.2 定義結構體類型變量的方法
10.2.1 結構體類型聲明
10.2.2 結構體類型變量的定義
10.3 結構體變量的引用
10.4 結構體變量的初始化
10.5 結構體數組
10.5.1 結構體數組的定義
10.5.2 結構體數組的初始化
10.6 共用體
10.6.1 共用體類型聲明
10.6.2 共用體變量的定義及引用
10.7 枚舉類型
10.7.1 枚舉類型聲明
10.7.2 枚舉變量的定義及其賦值
10.8 用typedef定義類型
本章小結
第11章 文件
11.1 文件概述
11.1.1 文件的基本概念
11.1.2 文本文件和二進制文件
11.1.3 緩沖文件系統
11.2 文件類型指針
11.3 文件的打開和關閉
11.3.1 文件的打開
11.3.2 文件的關閉
11.4 文件的讀寫
11.4.1 以字符方式讀寫文件
11.4.2 以字符串方式讀寫文件
11.4.3 格式化方式讀寫文件
11.4.4 數據塊方式讀寫文件
11.4.5 文件結束判斷
11.5 文件的定位函數
11.5.1 指向文件的首地址
11.5.2 改變文件指針位置
11.5.3 獲取當前文件指針位置
11.6 出錯檢測
11.6.1 ferror()函數
11.6.2 clearerr()函數
本章小結
參考文獻
第1章 C語言概述
1.1 C語言簡介
1.1.1 程序和程序設計語言
在人類發展的歷史中,人們為了傳達信息、表達思想、交流情感,逐漸發明了各種語言,如漢語、英語等。人類進行交流所用的語言稱為自然語言。自從世界上第一臺電子計算機ENIAC誕生以來,計算機的發展已歷經半個多世紀。在這一過程中,為了能夠更好、更有效地與計算機進行通信,指揮其為人類工作,人們發明、設計出許多專門與計算機進行交流的語言,這些語言稱為程序設計語言。程序設計語言相對自然語言來說,使用的詞匯不多、語法簡單、語義清晰,便于人們使用其去控制計算機。
計算機是能夠自動進行數據處理的電子設備。那么,計算機為什么能夠自動、有條不紊地工作呢?原因就在于計算機是在程序的控制下進行工作的。什么是程序呢?程序實際上就是用戶用于指揮計算機進行各種動作,使計算機完成指定任務的指令序列。編寫程序的過程稱為程序設計。程序設計過程中所使用的語言就是程序設計語言。
計算機的一切工作都是通過執行程序完成的,而計算機可以直接識別并執行的程序是用二進制串表示的機器語言程序。對于人類來說,直接用機器語言書寫程序是一件十分痛苦的工作。為此,人們發明了匯編語言,采用便于記憶的符號代替二進制串,但實際上匯編語言僅是機器語言的一種助記符,沒有本質的區別,使用仍然不便。在這種情況下,各種高級程序設計語言便隨之產生了。高級程序設計語言之所以高級就在于它接近人類的自然語言,更加符合人類的思維方式。
因為高級程序設計語言更接近人所習慣的描述形式,所以更容易被接受,這也使得更多的人能夠參與程序設計活動。因為開發效率高,所以人們使用高級程序設計語言設計出了更多的應用系統,這反過來又大大推動了計算機應用的發展。應用的發展又推動了計算機工業的發展。可以說,高級程序設計語言的誕生和發展,對于計算機發展到今天起了極其重要的作用。
1.1.2 C語言的發展歷史
C語言是國際上最流行的、應用最廣泛的高級程序設計語言之一,深受廣大程序員的歡迎。C語言的發展過程大致分為以下幾個階段。
1.C語言的出現
C語言是在貝爾實驗室由KenThompson和DennisRitchie在開發UNIX操作系統的過程中開發出來的一種程序設計語言。UNIX系統最初是用匯編語言編寫的,當時,Thompson