C語言程序設計簡明教程

C語言程序設計簡明教程

作者: 張睿 楊吉斌 雷小宇 王家寶 李陽 李志剛 白瑋 王彩玲
出版社: 清華大學
出版在: 2022-01-01
ISBN-13: 9787302593454
ISBN-10: 7302593450
裝訂格式: 平裝
總頁數: 361 頁





內容描述


本書是一本深入淺出,通俗易懂,原理性、趣味性和實用性兼具的 C 語言程序設計教材。本書在全面介紹 C 語言和程序設計等基本知識的基礎上,著重從教材的“易讀、易學、易用”和培養“計算思維”兩個方面,對 C 語言程序設計的知識點進行有效組織與闡述。 本書對電腦知識進行必要的補充,從電腦認知和解決人類世界問題的需求出發,以電腦語言設計者的視角,按照利用電腦解決問題由簡單到復雜的順序,採用“問題驅動”的行文方式依次介紹 C 語言基本數據類型與運算符、數據的輸入輸出、選擇與循環、函數、數組、結構體等內容,將指針知識點巧妙地融入函數、數組和結構體中。全書共8章,內容包括:我們與電腦的對話,讓電腦學會運算,與電腦面對面地交流,讓電腦做復雜的事情,像搭積木一樣搭建程序,同類型數據的批量處理問題,人類思維視角下的數據類型,程序寫得好關鍵在算法。 本書適合作為高等院校各專業的 C 語言程序設計課程教材,尤其適合非電腦專業的程序設計課程教學,也可以供廣大電腦愛好者及各類自學人員參考。


目錄大綱


目錄
第1章我們與電腦的對話——電腦與C語言
1.1人類夢想與機器伴侶
1.1.1尋找人類的朋友
1.1.2創造人類的夥伴
1.2人類的助手電腦
1.2.1困擾人類發展的兩個問題
1.2.2電與二進制引發的技術革命
1.2.3電腦的組織結構
1.3我們如何與電腦對話
1.3.1機器語言很難懂
1.3.2機器語言的進化
1.3.3C語言與人類語言的區別
1.3.4我們如何使用C語言
1.4從問題到程序的過程
1.4.1程序也需要設計
1.4.2算法的描述很重要
1.4.3結構化的流程圖
1.4.4讓我們開啟第一次與電腦對話的旅程
1.5本章小結
1.6習題
第2章讓電腦學會運算——基本數據類型
2.1教電腦認識整數
2.1.1十進制與二進制
2.1.2電腦的數字倉庫——存儲器
2.1.3電腦認識的整數是有限的
2.1.4負整數的表示與存儲有點不一樣
2.1.5C語言中的整數類型
2.2教電腦認識小數
2.2.1小數點很關鍵
2.2.2小數的存儲與整數不一樣
2.2.3電腦存儲的小數可能不精確
2.2.4電腦認識的小數也是有限的
2.2.5C語言中的浮點數類型
2.3教電腦認識字符
2.3.1圖形字符的巧妙表示
2.3.2電腦認識的字符也是有限的
2.3.3C語言中的字符類型
2.4教電腦“記憶”數據
2.4.1數據的門牌號——內存地址
2.4.2變化的數據是變量
2.4.3指針變量的定義
2.4.4兩種訪問變量的方法
2.4.5常變量
2.4.6不變的數據是常量
2.5教電腦認識運算符
2.5.1算術運算符與算術表達式
2.5.2關系運算符與關系表達式
2.5.3邏輯運算符與邏輯表達式
2.5.4賦值運算符與賦值表達式
2.5.5強制類型轉換運算符
2.5.6不同數據類型間的混合運算
2.5.7
位運算符
2.6教電腦做簡單的運算
2.6.1如何書寫語句
2.6.2如何組織語句
2.6.3簡單運算舉例
2.7本章小結
2.8習題
第3章與電腦面對面地交流——數據的輸入與輸出
3.1我們與電腦的交流方式
3.1.1人類與電腦理解數據的差異性
3.1.2電腦如何輸入和輸出數據
3.1.3兩種對話方式的選擇
3.2通過鍵盤和顯示器與電腦交流
3.2.1C語言標準函數庫
3.2.2通過鍵盤輸入數據
3.2.3通過顯示器輸出數據
3.2.4通過鍵盤和顯示器完成一次完整對話
3.3通過文件與電腦交流
3.3.1記錄我們與電腦之間的對話
3.3.2我們可以閱讀的文件
3.3.3我們無法閱讀的文件
3.3.4順序讀寫與按需讀寫
3.3.5文件讀寫的出錯問題
3.3.6文件合並示例
3.4本章小結
3.5習題
第4章讓電腦做復雜的事情——順序、選擇與循環語句
4.1分步驟完成任務
4.1.1控制語句
4.1.2按部就班地解決問題
4.2遇到選擇該怎麽辦
4.2.1用if實現“二選一”
4.2.2用switch實現“多選一”
4.3選擇結構很有用
4.3.1順序結構是基礎
4.3.2靈活選用選擇語句
4.3.3提高程序的可靠性
4.4用循環語句解決重復性計算問題
4.4.1發現循環要素
4.4.2如何構建循環結構
4.4.3如何靈活退出循環
4.4.4多重循環結構的實現挺困難
4.5有趣的循環問題舉例
4.5.1循環程序的構建
4.5.2用循環實現枚舉法
4.5.3循環語句的優化
4.6本章小結
4.7習題
第5章像搭積木一樣搭建程序——函數
5.1復雜程序的開發問題
5.1.1像工業化生產一樣開發程序
5.1.2將程序代碼做成積木模塊的方法
5.2對程序模塊進行組裝
5.2.1程序模塊間的組裝問題
5.2.2遞歸思想的程序實現
5.3人類永恆的話題“矛盾”: 封閉性與開放性
5.3.1不準動我的積木
5.3.2我偏要動你的積木
5.4函數舉例
5.4.1求三角形的面積
5.4.2利用函數實現簡單的文件操作
5.5本章小結
5.6習題
第6章同類型數據的批量處理問題——數組
6.1如何一次定義多個變量
6.1.1定義一組變量的方法
6.1.2數組初始化
6.1.3引用數組元素
6.1.4特殊的“變量”標識符
6.2數組的存儲機理
6.2.1與眾不同的數組名
6.2.2“[]”運算符的作用
6.2.3數組地址不允許改變
6.2.4穿馬甲的“數組”
6.3靈活運用數組
6.3.1通過數組處理一批數字
6.3.2將字符拼接成字符串
6.3.3通過數組名向函數傳遞數據
6.4根據維度存儲數據的方法
6.4.1二維數組的本質
6.4.2二維數組初始化
6.4.3二維數組使用
6.4.4
更多維度的數組
6.5本章小結
6.6習題
第7章人類思維視角下的數據類型——用戶自己建立的數據類型
7.1從人類的視角看數據
7.1.1人類需要什麽樣的數據類型
7.1.2自由地命名數據類型
7.2有結構的數據類型——結構體
7.2.1莫把結構體當變量
7.2.2結構體變量的定義與初始化
7.2.3結構體變量的引用
7.2.4
結構體變量的存儲
7.2.5定義結構體數組
7.2.6結構體的應用
7.3“勤儉節約”的數據類型——共享體
7.3.1存儲空間很寶貴
7.3.2能省一點是一點
7.3.3正確區分結構體與共享體
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.7習題
第8章程序寫得好關鍵在算法
8.1算法的性能評價
8.2用試商法求解素數
8.2.1試商法判定素數
8.2.2試商法搜索素數
8.3用數組實現大數求和
8.3.1“列豎式”實現大數求和
8.3.2大數求和的程序實現
8.4用冒泡法實現排序
8.4.1冒泡排序的思想
8.4.2冒泡排序的程序實現
8.5用二分法實現查找
8.5.1二分查找的思想
8.5.2二分查找的程序實現
8.6*用遞歸優化求數列
8.6.1“暴力遞歸”問題
8.6.2利用“備忘錄”優化遞歸
8.7本章小結
8.8習題
附錄AC語言中的關鍵字
附錄B常用字符與ASCII代碼對照表
附錄C運算符的優先級和結合性
附錄D常用庫函數
參考文獻


作者介紹


張睿,1999年畢業於解放軍通信工程學院計算機與指揮自動化專業本科,2004年獲解放軍理工大學通信與信息系統專業博士學位。現為陸軍工程大學指揮控制工程學院戰場信息融合教研室主任、教授,軟件工程學科碩導,主要從事數據工程領域的教學科研工作,主持或參與國家自然科學基金項目4項、社科基金2項,獲得軍隊科技進步二等獎3項,三等獎3項。參與編寫教材《作戰仿真數據工程》1部。




相關書籍

Radio Resource Management in Wireless Networks: An Engineering Approach (Hardcover)

作者 Ekram Hossain Mehdi Rasti Long Bao Le

2022-01-01

C語言從入門到項目實戰(全程視頻版)

作者 王一萍 梁偉 李長榮

2022-01-01

Shell Scripting: Expert Recipes for Linux, Bash and more (Paperback)

作者 Steve Parker

2022-01-01