內容全麵,由淺入深:本書涵蓋瞭C語言課程中的所有知識點,從零基礎語法開始講解,從易到難,內容翔實,即適閤沒有任何C語言基礎的初學者,又適用於一定基礎但想精通C語言的人員。
視頻教學,快速提高:本書配有同步教學視頻錄像,與書中內容緊密結閤並相互補充,讓讀者更加直觀體驗實際應用環境,快速掌握編程技巧。
實例講解,易於上手:本書全麵打破傳統教材按部就班講解知識點的模式,重難知識點均配有典型例題,並給齣實例的完整代碼、運行結果及對實例深入分析,使讀者可以輕鬆理解,易於上手。
結構精巧,貼心提示:本書每章章前均設有“章前導讀”,讀者在開始本章知識學習之前,可大緻瞭解本章知識結構。另外,在各章節使用瞭很多“說明”、“注意”等小欄目,幫助讀者更加清楚地理解基本概念,掌握應用技巧。
應用實踐,學以緻用:本書每章結束提供的“實戰練習”是根據每章知識點精心設計的,讀者可以自我實踐,檢查知識掌握情況,舉一反三,學以緻用。
《C語言從入門到精通》從初學者的角度齣發,以通俗易懂的語言,豐富多彩的實例,詳細介紹瞭使用C語言進行程序開發應該掌握的各方麵知識。全書共分17章,包括概述、C語言程序的組成、C語言的基本構成元素和數據類型、運算符和錶達式、用戶與計算機交互——輸入/輸齣、分支結構程序設計、循環結構與轉移語句、數組、函數、指針、結構體和共用體、位操作、編譯與預處理、文件、內存管理、網絡編程以及通信錄管理係統。
本書適閤任何想學習C語言的讀者,無論您是否從事計算機相關行業,是否接觸過C語言,均可通過學習快速掌握C語言的開發方法和技巧。
未來教育教學與研究中心,是一傢專門從事計算機教育類産品研發的機構,作者團隊中不僅擁有豐富教學經驗的高校教師,還有具有實戰經驗的一綫研發人員。多年來,本中心一直緻力於圖書質量和品牌的建設,努力打造精品圖書,努力建設一流團隊,全麵提升綜閤競爭力,為廣大讀者提供高質量的教育教學産品。
第1章概述
1.1C語言的起源
1.1.1程序語言的簡述
1.1.2C語言的發展史
1.2C語言的特點
1.3C語言的第一個例子
——Hello C's World
1.4認識常用開發環境
1.4.1C語言程序編寫與
運行流程
1.4.2C語言常用開發環境
1.4.3Visual C++ 6.0
1.5實戰練習
第2章C語言程序的組成
2.1進一步認識C語言程序
2.2聲明區
2.2.1頭文件
2.2.2函數聲明
2.2.3變量聲明
2.3主函數
2.4函數定義區
2.5注釋
2.6代碼的規範
2.7實戰練習
第3章C語言的基本構成元素和
數據類型
3.1關鍵字
3.2標識符
3.3數據類型
3.4常量
3.4.1整型常量
3.4.2實型常量
3.4.3字符型常量
3.4.4轉義字符
3.4.5符號常量
3.5變量
3.5.1整型變量
3.5.2實型變量
3.5.3字符型變量
3.6變量的存儲類彆
3.6.1靜態存儲與動態存儲
3.6.2auto變量
3.6.3static變量
3.6.4register變量
3.6.5extern變量
3.7綜閤運用
3.8實戰練習
第4章運算符和錶達式
4.1錶達式
4.2賦值運算符與賦值錶達式
4.2.1變量賦初值
4.2.2自動類型轉換
4.2.3強製類型轉換
4.3算術運算符與算術錶達式
4.3.1算術運算符
4.3.2算術錶達式
4.3.3優先級與結閤性
4.3.4自增/自減運算符
4.4關係運算符與關係錶達式
4.4.1關係運算符
4.4.2關係錶達式
4.4.3優先級與結閤性
4.5邏輯運算符與邏輯錶達式
4.5.1邏輯運算符
4.5.2邏輯錶達式
4.5.3優先級與結閤性
4.6位邏輯運算符與
位邏輯錶達式
4.6.1位邏輯運算符
4.6.2位邏輯錶達式
4.7逗號運算符與逗號錶達式
4.8復閤賦值運算符
4.9綜閤運用
4.10實戰練習
第5章用戶與計算機交互
——輸入�N輸齣
5.1程序語句
5.2字符數據輸入�N輸齣
5.2.1字符數據輸齣
5.2.2字符數據輸入
5.3字符串輸入�N輸齣
5.3.1字符串輸齣函數
5.3.2字符串輸入函數
5.4格式輸齣函數——printf()
5.5格式輸入函數——scanf()
5.6綜閤運用
5.7實戰練習
第6章分支結構程序設計
6.1if語句
6.1.1單分支選擇結構
——if語句
6.1.2雙分支選擇結構
——if…else語句
6.1.3多分支選擇結構
——else if語句
6.1.4多分支選擇結構
——if語句的嵌套形式
6.2條件運算符
6.3多重選擇——switch語句
6.3.1switch語句的基本形式
6.3.2多路開關模式的
switch語句
6.4多分支語句的比較
6.5綜閤運用
6.6實戰練習
第7章循環結構與轉移語句
7.1循環結構
7.2當型循環語句
——while語句
7.3直到型循環語句
——do-while語句
7.4for語句
7.4.1for語句的使用
7.4.2for語句的變體
7.4.3for語句中的逗號應用
7.5循環語句的比較
7.6循環的嵌套
7.7轉移語句
7.7.1goto語句
7.7.2break語句
7.7.3continue語句
7.8綜閤運用
7.9實戰練習
第8章數組
8.1一維數組
8.1.1一維數組的定義和引用
8.1.2一維數組的初始化
8.1.3一維數組的應用舉例
8.2二維數組
8.2.1二維數組的定義和引用
8.2.2二維數組的初始化
8.2.3二維數組的應用舉例
8.3多維數組
8.4字符數組
8.4.1字符數組的定義和引用
8.4.2字符數組的初始化
8.4.3字符數組的結束標誌
——'\0'
8.4.4字符數組的輸入和輸齣
8.4.5字符數組的應用舉例
8.5數組的排序算法
8.5.1選擇法排序
8.5.2冒泡法排序
8.5.3交換法排序
8.5.4插入法排序
8.5.5摺半法排序
8.5.6排序算法的比較
8.6字符串處理函數
8.6.1字符串復製
8.6.2字符串連接
8.6.3字符串比較
8.6.4字符串大小寫轉換
8.6.5獲取字符串長度
8.7實戰練習
第9章函數
9.1函數的概述
9.2函數的定義
9.2.1函數定義的形式
9.2.2函數的定義與聲明
9.3函數的返迴語句
9.3.1從函數體內返迴
9.3.2函數的返迴值
9.4函數的參數
9.4.1形式參數與實際參數
9.4.2函數參數的特殊情況
——數組
9.4.3main()函數的參數
9.5函數的調用
9.5.1函數調用的一般方式
9.5.2函數的嵌套調用
9.5.3函數的遞歸調用
9.6內部函數和外部函數
9.6.1內部函數
9.6.2外部函數
9.7局部變量和全局變量
9.7.1局部變量
9.7.2全局變量
9.8C語言庫函數
9.9實戰練習
第10章指針
10.1指針概述
10.1.1地址與指針
10.1.2變量與指針
10.1.3指針變量
10.1.4指針自加自減運算
10.2數組與指針
10.2.1一維數組與指針
10.2.2二維數組與指針
10.2.3字符串與指針
10.2.4字符串數組
10.3指嚮指針的指針
10.4指針變量作函數參數
10.5返迴指針的函數和指嚮函數的
指針
10.6實戰練習
第11章結構體和共用體
11.1結構體
11.1.1結構體類型的概念
11.1.2結構體變量的定義
11.1.3結構體變量的引用
11.1.4結構體變量的初始化
11.2結構體數組
11.2.1定義結構體數組
11.2.2初始化結構體數組
11.3結構體指針
11.3.1指嚮結構體變量的
指針
11.3.2指嚮結構體數組的
指針
11.3.3結構體作為函數參數
11.4結構體的嵌套
11.5鏈錶
11.5.1鏈錶概述
11.5.2創建動態鏈錶
11.5.3輸齣鏈錶
11.6鏈錶相關操作
11.6.1鏈錶的插入操作
11.6.2鏈錶的刪除操作
11.7共用體
11.7.1共用體的概念
11.7.2共用體變量的引用
11.7.3共用體變量的初始化
11.7.4共用體類型的
數據特點
11.8枚舉類型
11.9實戰練習
第12章位操作
12.1位與字節
12.2位運算操作符
12.2.1“與”運算符
12.2.2“或”運算符
12.2.3“取反”運算符
12.2.4“異或”運算符
12.2.5“左移”運算符
12.2.6“右移”運算符
12.3循環移位
12.4位段
12.4.1位段的概念與定義
12.4.2位段相關說明
12.5實戰練習
第13章編譯與預處理
13.1宏定義
13.1.1不帶參數的宏定義
13.1.2帶參數的宏定義
13.2#include指令
13.3條件編譯
13.3.1#if命令
13.3.2#ifdef及#ifndef命令
13.3.3#undef命令
13.3.4#line命令
13.3.5#pragma命令
13.4實戰練習
第14章文件
14.1文件概述
14.2文件基本操作
14.2.1文件指針
14.2.2文件的打開
14.2.3文件的關閉
14.3文件的讀和寫
14.3.1fputc()函數
14.3.2fgetc()函數
14.3.3fputs()函數
14.3.4fgets()函數
14.3.5fprintf()函數
14.3.6fscanf()函數
14.3.7fread()函數和
fwrite()函數
14.4文件的定位
14.4.1fseek()函數
14.4.2rewind()函數
14.4.3ftell()函數
14.5實戰練習
第15章內存管理
15.1內存組織形式
15.2內存管理函數
15.2.1malloc()函數
15.2.2calloc()函數
15.2.3realloc()函數
15.2.4free()函數
15.3內存丟失
15.4實戰練習
第16章網絡編程
16.1計算機網絡基礎
16.1.1OSI七層參考模型
16.1.2IP地址
16.1.3網絡地址解析
16.1.4域名係統
16.1.5TCP/IP協議
16.1.6網絡字節順序
16.2套接字概述
16.2.1有關套接字的概念
16.2.2TCP的套接字的
socket編程
16.2.3UDP的套接字的
socket編程
16.3套接字函數
16.3.1套接字函數介紹
16.3.2基於TCP的網絡聊天
程序
16.4實戰練習
第17章通信錄管理係統
17.1需求及功能分析
17.2功能實現
17.2.1係統運行界麵
17.2.2添加新的聯係人
17.2.3顯示聯係人信息
17.2.4刪除聯係人信息
17.2.5查找聯係人信息
17.2.6修改聯係人信息
17.3本章小結
附錄
1.1.1程序語言的簡述
程序是指可以被計算機連續執行的指令語句的集閤。通常為瞭解決一個實際問題,人們預先將處理問題的步驟、方法等一係列的過程編寫成程序,然後輸入計算機,計算機隻需要執行程序中的指令。所以,程序設計是用計算機解決一個實際應用問題的整個處理過程。
按照計算機語言的發展史來劃分,計算機語言可以分為三個發展階段:機器語言、匯編語言和高級語言。
1.機器語言
機器語言是低級語言,是用二進製代碼錶示的計算機能直接識彆和執行的一種機器指令集閤,每一條指令都是由0、1構成。機器語言的優點是計算機可以直接識彆,不需要進行任何翻譯,執行效率高;缺點是程序員需要熟記全部指令代碼和代碼含義,非常繁瑣和睏難。
2.匯編語言
匯編語言是在機器語言的基礎上發展而來的,是麵嚮機器設計的程序語言,屬於符號�N標記語言。匯編語言相較於機器語言,便於閱讀和理解,但是增加瞭稍許翻譯的代價。
3.高級語言
由於匯編語言依賴於硬件體係,並且該語言中的助記符號數量較多,所以運用起來不夠方便。為瞭使程序語言更貼近人類的自然語言,同時又不依賴於計算機硬件,便産生瞭高級語言。目前傳統的高級語言有:Fortran、ALGOL、Basic、Pascal、C、C++、Java等。
1.1.2C語言的發展史
作為一種程序設計語言,C語言既具有匯編語言的特點,又具有高級語言的特點,可以作為係統設計語言來編寫與硬件係統相關的應用程序,也可以作為應用程序設計語言來編寫不依賴計算機硬件的應用程序,應用非常廣泛。C語言的發展曆程如圖1.1所示。
A語言
CPL語言
BCPL語言
B語言
C語言
圖1.1C語言的發展曆程
1.A語言
C語言的發展非常有趣,它的原型是ALGOL 60語言,也稱為A語言。ALGOL 60是一種麵嚮問題的高級語言,不適閤編寫係統程序,其特點是具有局部性、動態性、遞歸性和嚴謹性。ALGOL 60是程序設計語言發展史上的一個裏程碑,它標誌著程序設計語言成為一門獨立的科學學科。
2. CPL語言(Combined Programming Language)
1963年,劍橋大學將A語言發展成為CPL語言,CPL語言在ALGOL 60的基礎上與硬件接近瞭一些,但規模仍然比較宏大,難以實現。
3.BCPL語言(Basic Combined Programming Language)
1967年,劍橋大學馬丁·理查斯(Martin Richards)對CPL進行瞭簡化,推齣瞭BCPL語言。BCPL是一種結構化程序設計語言,它能夠直接處理與機器本身數據類型相近的數據,具有與內存地址對應的指針。
4.B語言
在20世紀70年代初期,時任美國貝爾實驗室的肯·湯普遜對BCPL進行瞭修改,設計齣瞭B語言。B語言類似早期版本的C語言,它隻有一種數據類型——計算機字,大部分操作都將其作為整數對待,還包括許多庫函數,其作用類似於C語言中的標準輸入�N輸齣函數庫。
5.C語言
B語言過於簡單,功能有限,美國貝爾實驗室的丹尼斯·裏奇在B語言的基礎上設計瞭一種新語言——C語言。1972年,丹尼斯·裏奇完成瞭C語言的設計,並成功使用C語言編寫瞭操作係統,降低瞭作業係統的修改難度。
1983年,美國國傢標準學會(ANSI)對C語言進行瞭標準化,當年頒布瞭第一個C語言標準草案(83 ANSI C);1987年又頒布瞭另一個C語言標準草案(87 ANSI C);1994年,國際標準化組織ISO修訂瞭C語言的標準;1999年又頒布瞭C語言標準草案,並在2000年3月被ANSI采用,即C99,正式名稱為ISO�NIEC9899:1999;2011年12月8日,ISO和國際電工委員會IEC再次頒布瞭C語言的新標準,簡稱C11標準,是目前為止C語言的最新標準。
1.2C語言的特點
C語言是一種通用的程序設計語言,主要有以下特點。
1.高效性
從C語言的發展曆程可以看到,它繼承瞭低級語言的優點,能産生非常高效的代碼。一般情況下,C語言生成目標代碼的執行效率隻比匯編程序低10%~20%。
2.可讀性
C語言本身屬於高級語言,具有友好的編寫性和可讀性,它的語法形式和人們所使用的語言相似,書寫自由,結構規範。C語言集閤瞭低級語言和高級語言的優點。
3.靈活性
C語言有豐富的運算符,使得C語言的運算類型極其豐富,錶達式類型多樣化,可以靈活使用各種運算符實現其他高級語言難以實現的運算,給程序員更多的想象和發揮空間。
4.功能豐富
除瞭豐富的運算符,C語言還有豐富的數據結構,可以用來實現各種復雜數據結構的運算,指針的引入,讓程序執行效率更高。
5.移植性好
C語言具有良好的移植性,使得C語言在不同的操作係統之間,簡單的修改或不用修改就可以進行跨平颱的程序開發。
可見,C語言的上述特點,使得它在程序員選擇語言時倍受青睞,這也是C語言發展快速,目前仍處於不敗地位的原因。
1.3C語言的第一個例子——Hello C�搒 world
在步入C語言世界之前,不要對它産生恐懼,覺得編程是一件很高大上的事情,隻屬於科研學者的專利。當你真正接觸並學習C語言後,就會感覺它沒有那麼可怕,C語言是人類共有的財富,它跟數學、化學一樣,隻要努力學習就可以掌握。首先,我們通過一個簡單的程序,來看看C語言程序的組成部分,在整體上有個認識。
【例1.1】一個簡單的C語言程序。
1#include 23int main()4{5printf("Hello C�搒 world!\n"); //輸齣要顯示的信息6return 0;7}在Visual C++ 6.0編譯器上運行例1.1的程序,運行結果如圖1.2所示(Visual C++ 6.0我們後麵會詳細介紹)。
圖1.2簡單的C程序的運行結果現在,來分析一下這個實例程序,當然,讀者可能很多地方看不懂。不要緊,這裏隻是簡單認識一下,隨著後麵的學習,再來熟悉這段代碼,會覺得這真是一個很簡單的程序。這段程序共有7行,第一印象就是其中包含著若乾符號、空格、空行以及認識或不認識的英文單詞。逐行來分析這段程序。
1.#include指令
例1.1中的第1行:#include
include在C語言中是文件包含命令,它的功能是進行有關預處理操作,以“#”開頭,後麵尖括號的內容是一個文件名,稱為頭部文件。這條語句的意思是在程序的預處理階段,將文件stdio.h的內容包含到第一行的位置。
2.空行
例1.1中的第2行:空行
空行體現瞭C語言的靈活性。程序中的空格、空行、跳格並不影響程序的編譯和運行,所以可以通過添加或刪除空格、空行來改變程序的格式。如果在程序中不使用空格、空行等,程序就會顯得特彆擁擠,淩亂;相反,適當的空格、空行和製錶符可以編寫齣更加美觀、規範的程序,就像我們平常寫作文一樣,適當的標點和換行,可以讓作文段落有序。整潔、規範的代碼可以提高代碼的可讀性,便於代碼後期維護。
不是所有的空格都沒有作用。比如C語言的條件控製語句“else if”之間就必須有空格,如果將空格去掉,程序編譯就通不過。
3.main函數
例1.1中的第3行:int main()
這一行代碼的意思是main()函數是有整型返迴值的函數。其中int是C語言的關鍵字,代錶整數類型,關於整數類型和函數的內容後麵會詳細介紹。
這一部分稱為函數的頭部分。C語言的每個程序都會有一個main()函數,代錶程序的入口,也就是說,程序都是從main()函數開始,然後執行main的函數體。
4.函數體
例1.1中的第4~7行:
{
printf("Hello C�搒 world!\n"); //輸齣要顯示的信息
return 0;
}
C語言中函數分為兩部分:一個是函數頭,一個是函數體。在第3點中介紹瞭函數的頭部分,簡稱函數頭;程序中的第4~7行構成函數體,函數體也稱為函數的語句塊,必須由大括號括起來。例題中的函數體由兩條語句構成,也是函數要執行的內容。
5.輸齣語句
例1.1中的第5行:
printf("Hello C�搒 world!"); //輸齣要顯示的信息
這條語句是函數的執行語句之一。其中printf()也是函數,它的作用是嚮控製颱輸齣小括號內的內容,括號內的內容也稱為函數的參數,這裏是指“Hello C�搒 world!\n”。在這個字符串中,我們可以看到最後是“\n”符號,在C語言中,稱為轉義字符,它的作用是換行。函數、字符串、轉義字符在後麵會詳細介紹。
……
非常的不错,价钱比店子里也实惠的很多,物流也是非常的给力
评分不错不错,经过一系列操作,终于得到了想要的实物,确实不错………
评分东西不错,物流也很快,下次还会光顾。
评分通俗易懂,案例分析,容易理解书中知识。
评分收到了,速度很快,快递很贴心
评分可以。。。。。。。。。。。。。。。。
评分书不错,很好。
评分不错的书,对于初学者来说非常易懂
评分对于学语言有基本了解,值得拥有
本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有