《普通高等教育計算機類特色專業系列規劃教材:C語言程序設計實用教程》以應用為主線,討論C語言程序設計,內容包括概況、C語言程序的運算功能、最簡單程序的設計、分支程序設計、循環程序設計、同類問題的求解、表格處理功能的實現、鏈表的設計與實現、C語言應用程序的編寫、界面的設計與實現及應用程序編寫實例、C語言低級特性及其在系統軟件中的應用,以及C語言程序的閱讀與查錯。《普通高等教育計算機類特色專業系列規劃教材:C語言程序設計實用教程》強調程序設計全過程,即設計、編程與調試,強調程序設計的基本功,即程序的讀、寫與調試能力,強調思路與總體設計,兼顧基礎性、實用性、趣味性與拓展性。
《普通高等教育計算機類特色專業系列規劃教材:C語言程序設計實用教程》可作為高等院校理工科C語言程序設計課程的教材,或作為使用C語言開發應用程序的參考書,也可作為C語言程序設計自學讀物。書中融合了C語言程序設計二級等級考試內容,亦可作為等級考試的輔助讀物。《普通高等教育計算機類特色專業系列規劃教材:C語言程序設計實用教程》所附光盤中包含有可運行的界面函數及管理信息系統實例,對進行畢業設計的讀者可提供有效支持。
前言
第1章概況
1.1程序與程序設計語言
1.1.1程序的概念
1.1.2程序設計語言的引進
1.1.3 C語言特點
1.2 C語言程序的組成
1.2.1 C語言程序結構
1.2.2 C語言程序基本成分
1.2.3數據結構與控制結構
1.2.4 C語言程序的書寫格式
1.3 C語言程序設計
1.3.1程序設計的概念
1.3.2程序設計的要點
1.3.3 C語言編程的基本法則
1.4 C語言程序的執行
1.4.1 C語言程序的執行方式與集成支持系統
1.4.2 C語言集成支持系統Turboo C
1.5 C語言程序錯誤的查出
1.5.1靜態模擬追蹤法
1.5.2動態調試法
1.6 C語言程序中的預處理命令
1.6.1宏定義
1.6.2文件包含
1.6.3條件編譯
1.7小結
1.7.1本章C語法概括
1.7.2 C語言有別于其他語言處
本章概括
習題
第2章C語言程序的運算功能
2.1表達式
2.1.1量
2.1.2運算
2.1.3表達式的組成與計算
2.1.4算術表達式
2.2賦值表達式
2.2.1賦值運算與賦值表達式
2.2.2復合賦值表達式
2.3數據類型與變量說明
2.3.1類型的概念
2.3.2變量說明及其作用
2.3.3類型定義
2.3.4類型轉換
2.4小結
2.4.1本章C語法概括
2.4.2 C語言有別于其他語言處
本章概括
習題
第3章最簡單程序的設計——順序結構
3.1概況
3.1.1 C語言程序的執行順序
3.1.2 C語言順序程序設計
3.2賦值語句
3.2.1賦值語句的組成
3.2.2賦值語句的含義與執行步驟
3.2.3注意問題
3.3數據的輸入輸出
3.3.1輸入輸出語句的功能
3.3.2輸入輸出的三要素
3.3.3注意問題
3.4應用實例
3.4.1幼兒算術題測驗程序
3.4.2知識小測驗程序
3.5 小結
3.5.1本章C語法概括
3.5.2 C語言有別于其他語言處
本章概括
習題
第4章 分支程序設計一選擇結構
4.1 概況
4.1.1必要性
4.1.2選擇結構的兩種形式
4.2 if語句
4.2.1 if語句的概況
4.2.2邏輯表達式
4.2.3應用中的注意事項
4.2.4 if語句的應用
4.2.5動態調試包含if語句的程序
4.3 switch語句
4.3.1書寫形式
4.3.2 switch語句的含義與執行步驟
4.3.3 switch語句的應用
4.3.4枚舉類型簡介
4.3.5 switch語句與if語句的比較
4.4綜合應用實例
4.4.1算術題自測程序
4.4.2天數的計算
4.5小結
4.5.1本章C語法概括
4.5.2 C語言有別于其他語言處
本章概括
習題
第5章循環程序設計——C語言程序的迭代結構與數組類型
5.1概況
5.1.1重復運算的必要性
5.1.2迭代結構的三種形式
5.1.3比較
5.1.4包含循環結構的程序的閱讀
5.2若干數學問題的計算機求解
5.2.1 三角函數值表的打印輸出
5.2.2級數求和
5.2.3生成斐波那契數列
5.2.4求平方根
5.2.5求素數之和
5.3適用于循環的數據結構——數組類型
5.3.1數組的概念
5.3.2數組類型與數組變量說明
5.3.3數組類型的應用
5.3.4二維數組
5.3.5引進數組帶來的問題:賦值語句的執行步驟
5.4數組類型的進一步應用:排序
5.5小結
5.5.1本章C語法概括
5.5.2 C語言有別于其他語言處
本章概括
習題
第6章 同類問題的求解——函數定義與函數調用
6.1 問題的提出及解決
6.1.1實例
6.1.2解決的思路
6.2函數定義與函數調用
6.2.1 函數定義的書寫形式
6.2.2函數調用的書寫形式及執行步驟
6.3如何設計函數定義
6.3.1設計要點
6.3.2有值函數的定義與調用
6.3.3無值函數的定義與調用
6.3.4有值函數與無值函數的比較
6.3.5函數參數類型的進一步擴充
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 C語言的存儲類
6.6.3函數副作用
6.7函數與程序編寫
6.7.1程序編寫的基本策略——自頂向下、逐步細化
6.7.2應用自頂向下、逐步細化策略編寫程序
6.8小結
6.8.1本章C語法概括
6.8.2 C語言有別于其他語言處
本章概括
習題
第7章表格處理功能的實現——字符串與結構類型
7.1 問題的提出及解決
7.1.1數據處理的需要
7.1.2解決思路
7.2表格的設計與實現
7.2.1字符串與字符數組
7.2.2字符串型量的輸入輸出
7.2.3對字符串操作的常用系統函數
7.2.4表格的輸出
7.3表格數據結構的設計與實現
7.3.1 結構類型定義與結構類型變量說明
7.3.2結構成員變量的表示與存取
7.4綜合應用
7.4.1通訊錄管理系統
7.4.2學生檔案信息管理系統
7.5小結
7.5.1本章C語法概括
7.5.2 C語言有別于其他語言處
本章概括
習題
第8章鏈表的設計與實現——指針類型
8.1概況
8.1.1 問題的提出
8.1.2解決思路——指針類型的引進
8.2指針類型
8.2.1指針與存儲地址
8.2.2指針類型變量說明與指針類型定義
8.2.3指針類型變量所指向數據對象的引用
8.2.4關于指針類型的運算
8.2.5指針類型與數組的聯系
8.2.6指針類型應用于形式參數
8.3指針類型的應用——鏈表
8.3.1建立鏈表的一般思路
8.3.2關于鏈表的操作
8.3.3鏈表的種類
8.4指針類型的綜合應用
8.4.1學生檔案信息管理
8.4.2散列表及其應用
8.5小結
8.5.1本章C語法概括
8.5.2 C語言有別于其他語言處
本章概括
習題
第9章C語言應用程序的編寫
9.1概況
9.1.1編寫要點
9.1.2編寫步驟
9.2數學教學系統的設計與實現
9.2.1復數演算系統
9.2.2小學數學自測系統
9.3簡單數學游戲程序的設計與實現
9.3.1 24點游戲
9.3.2幻方
9.3.3后綴表達式的生成
本章概括
習題
第1 0章界面的設計與實現及應用程序編寫實例
10.1界面設計概況
10.1.1界面設計的必要性
10.1.2界面設計的風格
10.1.3界面的種類及實現方法
10.2古典型界面的設計與實現
10.2.1 C語言程序實現的界面
10.2.2界面實現的要點
10.3時尚型界面的設計與實現
10.3.1 窗口函數的設計與實現
10.3.2菜單函數的設計與實現
10.4應用程序編寫實例
10.4.1 界面的設計與實現
10.4.2程序的編寫
10.4.3數據的保存與恢復
10.4.4 C語言文件的概念及其操作
10.5與VC++開發平臺相結合編寫應用程序
10.5.1 VC++平臺上研制應用程序的要點
10.5.2 VC++平臺上界面的設計與實現
10.5.3通訊錄管理系統的設計與實現
10.6小結
10.6.1本章C語法概括
10.6.2 C語言中關于日期的數據結構與函數
本章概括
習題
第11章C語言低級特性及其在系統軟件中的應用
11.1 問題的提出
11.2共用體類型
11.2.1引進的目的
11.2.2共用體類型定義與變量說明
11.2.3應用實例
11.3位運算
11.3.1引進的目的
1 1.3.2位運算及其優先級
11.3.3應用實例
11.4位域
1 1.4.1位域的概念與應用
11.4.2位域的一般定義形式
11.5小結
11.5.1本章C語法概括
11.5.2 C語言有別于其他語言處
本章概括
習題
第12章C語言程序的閱讀與查錯
12.1概況
12.1.1程序閱讀的必要性
12.1.2程序閱讀的要點與方法
12.2 C語言程序閱讀方法
12.2.1基本方法(概念法)
12.2.2 IPO法
12.2.3列表法
12.2.4分析法
12.2.5圖示法
12.2.6觀察法
12.2.7靜態模擬追蹤法
12.2.8綜合法
12.3典型算法閱讀之例
12.3.1關于字符串操作的程序
12.3.2其他典型程序
12.4程序查錯
12.4.1程序查錯的要點與常見錯誤種類
12.4.2靜態程序查錯
12.4.3動態程序查錯
12.5小結
本章概括
習題
參考文獻
光盤目錄
附錄1正文附錄
附錄1.1 C語言語法一覽
附錄1.2常用系統函數名與頭文件
附錄1.3 Turbo C的使用
附錄2 C語言實現的界面函數
附錄3界面函數應用實例
附錄3.1 24點游戲程序
附錄3.2小學數學自測系統
附錄3.3知識咨詢系統
附錄4基于VC++的通訊錄管理系統
附錄5各章例題的C程序
附錄6綜合題與補充習題
3.3數據的輸入輸出
一個程序執行的目的是達到某種效果,當程序運行后,為了要能驗證程序的正確性,了解程序運行的效果,必須執行輸出語句以顯示運行效果。因此輸出是必不可少的一個語言成分。一般來說,一個程序的運行,需要有初始數據,這可以通過賦值語句獲得,但是,這樣獲得的值只能是確定的和固定的,因為這是由賦值語句右部表達式所規定了的。為了能適應各種特定情況,隨機地獲得初始數據,需要在程序運行時刻從鍵盤鍵入數據,這要通過輸入語句來實現。就如同一個人,需要進出平衡,一個程序一般都包含有輸入輸出成分。
C語言中的輸入輸出,可以是有格式的,也可以是無格式的。這里首先討論有格式的輸入輸出。不特殊說明時,本書討論的輸入輸出都是有格式的。
3.3.1輸入輸出語句的功能
C語言中,輸入輸出功能通過輸入輸出語句來實現,輸入輸出語句又主要是對輸入輸出函數的調用。例如,
printf(\n請輸入x的值:);
scanf(%d”,&x);
輸入輸出函數的功能,簡單地說,是在程序與外設之間進行數據傳輸,具體地說,輸入函數把從鍵盤鍵入的數據傳輸到程序變量(存儲字)中,而輸出函數把程序變量的值從存儲字中傳輸到顯示屏上。因此,輸入輸出語句是對輸入輸出函數調用,后跟一個分號“;”。
例如,設有輸入語句:
scanf(“%d,%f”,&k,&x);
假定執行此輸入語句時從鍵盤鍵入:
12,9.8
即用逗號隔開的一個整數值12與一個實數值9.8,變量k與X將分別得到值12與9.8。
又如下列輸出語句:
printf(“k=%d,x=%f\n”,k,x);
執行此輸出語句將在顯示屏上顯示如下所示的一行:
k=12,x=9.800000<回車>
這里9.8后跟有5個0。這是因為C語言規定:輸出float型值而不指明輸出位數時,小數點后顯示6位小數。數字后面的“<回車>”表示不可見的換行字符。下面進一步討論輸入輸出語句的細節。
3.3.2輸入輸出的三要素
從上面的例子中可以看到,一個輸入輸出函數中指明輸入輸出的是什么,同時還指明按什么格式來輸入輸出。在這里,隱含地指明在什么外設上進行輸入輸出,如輸入是通過鍵盤,而輸出是顯示在顯示屏上。可見,一般來說,輸入輸出的三要素是:設備、輸入/輸出項、輸入/輸出格式。
輸入輸出函數printf與scanf中,設備隱含是指標準設備,輸入的標準設備是鍵盤,輸出的標準設備是顯示屏,因此不在輸入輸出函數中指明設備。輸入/輸出項指明進行輸入/輸出的是什么,而輸入輸出的格式由格式控制串指明,確切地說,由格式控制串中包含的格式轉換符指明。格式轉換符由字符%標記,且一個格式轉換符對應一個輸入輸出項。例如,假定int型變量X的值是5,執行輸出語句“printf(“x=%d\n”,x);”,其中格式控制串“X=%dhn”中不是格式轉換符的字符串部分“x=”提示輸出的是什么值,無需進行格式轉換,直接輸出。“\n”輸出時使得換到下一行的左端,而格式轉換符%d對應于輸出項x,規定按整型值格式輸出變量x的值,因此輸出的是:x=5<回車>。