本書主要介紹了C語言的數(shù)據(jù)類型、運(yùn)算符和表達(dá)式,結(jié)構(gòu)化程序設(shè)計(jì)語句、數(shù)組、函數(shù)、指針、復(fù)合數(shù)據(jù)類型、文件、圖形庫函數(shù)等各種的典型內(nèi)容。全書共10章,前9章分別介紹各種基礎(chǔ)知識,通過大量案例和練習(xí)讓讀者掌握所學(xué)知識,第10章介紹了兩個綜合項(xiàng)目,分別是不帶圖形界面的管理信息系統(tǒng)和帶圖形界面的迷宮探險游戲。每章課后配有類型豐富的練習(xí)題,都是國家二級考試題,并提供了習(xí)題參考答案。
本書對C語言各知識的闡述通俗易懂,習(xí)題的選擇難易適當(dāng),題型豐富;對于在TC和VC6.0不同環(huán)境下運(yùn)行結(jié)果不同的程序,給出兩種環(huán)境下的運(yùn)行結(jié)果,方便讀者理解,所有程序均已調(diào)試運(yùn)行通過,運(yùn)行結(jié)果為截屏顯示。本書配有電子課件、源程序、習(xí)題參考答案和配套教學(xué)視頻等資源,方便讀者自學(xué)或教師授課。讀者可登錄華信教育資源網(wǎng)(www.hxedu.com.cn)免費(fèi)下載。
第1章 C語言概述1
1.1 程序設(shè)計(jì)的基本概念1
1.1.1 程序的概念1
1.1.2 程序設(shè)計(jì)的一般過程2
1.1.3 程序設(shè)計(jì)的方法2
1.2 C語言簡介2
1.2.1 C語言的發(fā)展2
1.2.2 C語言的特點(diǎn)3 第1章 C語言概述1
1.1 程序設(shè)計(jì)的基本概念1
1.1.1 程序的概念1
1.1.2 程序設(shè)計(jì)的一般過程2
1.1.3 程序設(shè)計(jì)的方法2
1.2 C語言簡介2
1.2.1 C語言的發(fā)展2
1.2.2 C語言的特點(diǎn)3
1.2.3 C語言的書寫規(guī)則3
1.2.4 C程序的幾種類型文件3
1.3 C語言程序案例4
1.3.1 第一個C語言程序4
1.3.2 定義符號常量C語言程序5
1.3.3 有多個函數(shù)的C語言程序5
1.4 算法6
1.4.1 算法概述6
1.4.2 算法的圖形表示7
1.5 C語言編程環(huán)境8
1.5.1 turbo C 2.0編程環(huán)境8
1.5.2 Visual C++ 6.0編程環(huán)境9
1.5.3 C/C++程序設(shè)計(jì)學(xué)習(xí)與實(shí)驗(yàn)系
統(tǒng)編程環(huán)境12
本章小結(jié)14
學(xué)生自我完善練習(xí)15
習(xí)題115
第2章 程序中的數(shù)據(jù)17
2.1 數(shù)據(jù)類型、變量與常量17
2.1.1 數(shù)據(jù)類型概述17
2.1.2 標(biāo)識符18
2.1.3 變量的定義、賦值和初始化19
2.1.4 變量的存儲形式20
2.1.5 整型及整型常量22
2.1.6 實(shí)型及實(shí)型常量23
2.1.7 字符型及字符型常量、字符串
常量25
2.1.8 符號常量27
2.2 運(yùn)算符與表達(dá)式28
2.2.1 算術(shù)運(yùn)算符與算術(shù)表達(dá)式29
2.2.2 自增、自減運(yùn)算符(++、--)29
2.2.3 賦值運(yùn)算符與賦值表達(dá)式31
2.2.4 關(guān)系運(yùn)算符與關(guān)系表達(dá)式32
2.2.5 邏輯運(yùn)算符與邏輯表達(dá)式33
2.2.6 位運(yùn)算符35
2.2.7 其他運(yùn)算符36
2.3 數(shù)據(jù)類型轉(zhuǎn)換及數(shù)據(jù)的溢出誤差38
2.3.1 類型轉(zhuǎn)換概述38
2.3.2 自動類型轉(zhuǎn)換39
2.3.3 賦值類型轉(zhuǎn)換40
2.3.4 強(qiáng)制類型轉(zhuǎn)換40
2.3.5 數(shù)據(jù)的溢出和誤差40
2.4 數(shù)據(jù)的輸入/輸出42
2.4.1 格式化輸出函數(shù)printf42
2.4.2 格式化輸入函數(shù)scanf45
2.4.3 字符數(shù)據(jù)的輸入與輸出49
2.5 程序案例50
2.5.1 典型案例——求直角三角形的
周長和面積50
2.5.2 典型案例——英文大小寫字母的
轉(zhuǎn)換51
本章小結(jié)52
學(xué)生自我完善練習(xí)52
習(xí)題254
第3章 程序設(shè)計(jì)語句58
3.1 程序的語句與結(jié)構(gòu)58
3.1.1 程序的語句58
3.1.2 程序的結(jié)構(gòu)60
3.1.3 如何設(shè)計(jì)C語言程序61
3.1.4 順序結(jié)構(gòu)61
3.2 選擇結(jié)構(gòu)62
3.2.1 二選一結(jié)構(gòu)—— if語句63
3.2.2 多選一結(jié)構(gòu)——switch語句68
3.3 循環(huán)結(jié)構(gòu)70
3.3.1 程序的設(shè)計(jì)過程70
3.3.2 當(dāng)型循環(huán)——while循環(huán)71
3.3.3 直到型循環(huán)——do-while循環(huán)72
3.3.4 格式化的當(dāng)型循環(huán)——for循環(huán)73
3.3.5 循環(huán)的嵌套75
3.4 break、continue和goto語句77
3.4.1 break語句77
3.4.2 continue語句79
3.4.3 goto語句79
3.5 程序案例80
3.5.1 典型案例——求四則運(yùn)算表達(dá)式
的值80
3.5.2 典型案例——求1+(1+2)+(1+2+3)+
(1+2+3+4)+…+(1+2+…+n)數(shù)列
的和81
3.5.3 典型案例——猜數(shù)字游戲82
本章小結(jié)83
學(xué)生自我完善練習(xí)83
習(xí)題385
第4章 數(shù)組91
4.1 數(shù)組概念的引入91
4.2 一維數(shù)組92
4.2.1 一維數(shù)組的定義92
4.2.2 一維數(shù)據(jù)的元素引用92
4.2.3 一維數(shù)組的賦值方法92
4.3 二維數(shù)組94
4.3.1 二維數(shù)組的定義94
4.3.2 二維數(shù)據(jù)的元素引用95
4.3.3 二維數(shù)組的存儲95
4.3.4 二維數(shù)據(jù)的賦值方法96
4.4 字符數(shù)組與字符串97
4.4.1 字符數(shù)組的定義、初始化和引用97
4.4.2 字符串的輸入和輸出函數(shù)98
4.4.3 字符串函數(shù)簡介101
4.5 程序案例104
4.5.1 典型案例——冒泡法排序104
4.5.2 典型案例——矩陣的轉(zhuǎn)置105
4.5.3 典型案例——打印楊輝三角形106
本章小結(jié)108
學(xué)生自我完善練習(xí)108
習(xí)題4111
第5章 函數(shù)115
5.1 模塊化的設(shè)計(jì)思想115
5.2 函數(shù)的定義、調(diào)用和函數(shù)聲明116
5.2.1 函數(shù)的定義116
5.2.2 函數(shù)的調(diào)用117
5.2.3 函數(shù)的聲明118
5.3 函數(shù)的參數(shù)傳遞120
5.4 函數(shù)的嵌套調(diào)用122
5.5 函數(shù)的遞歸調(diào)用123
5.6 變量的作用域和存儲類型126
5.6.1 變量的作用域126
5.6.2 變量的生存期126
5.6.3 變量的存儲類型127
5.7 程序案例131
5.7.1 典型案例——編寫函數(shù)實(shí)現(xiàn)
求xn131
5.7.2 典型案例——設(shè)計(jì)遞歸函數(shù)gcd(x,y),
求x和y的最大公約數(shù)132
5.7.3 典型案例——設(shè)計(jì)函數(shù)驗(yàn)證任意
偶數(shù)為兩個素數(shù)之和133
5.7.4 典型案例——編寫函數(shù)實(shí)現(xiàn)任意
進(jìn)制數(shù)的轉(zhuǎn)換135
本章小結(jié)136
學(xué)生自我完善練習(xí)136
習(xí)題5139
第6章 指針145
6.1 地址和指針的關(guān)系145
6.2 指針的定義和賦值146
6.2.1 指針變量的定義及初始化146
6.2.2 指針變量的賦值146
6.3 指針變量的運(yùn)算147
6.3.1 *運(yùn)算符和&運(yùn)算符147
6.3.2 指針的算術(shù)運(yùn)算和關(guān)系運(yùn)算147
6.4 指針和數(shù)組的關(guān)系149
6.4.1 指針與一維數(shù)組149
6.4.2 指針與字符數(shù)組151
6.4.3 指針與二維數(shù)組153
6.4.4 指針數(shù)組155
6.4.5 指向指針的指針——二級指針156
6.5 指針在函數(shù)中的應(yīng)用158
6.5.1 函數(shù)的參數(shù)是指針158
6.5.2 函數(shù)的返回值是指針159
6.5.3 指向函數(shù)的指針160
6.5.4 帶參數(shù)的main函數(shù)162
6.6 程序案例163
6.6.1 典型案例——用指針實(shí)現(xiàn)統(tǒng)計(jì)字
符串中各種字符的個數(shù)163
6.6.2 典型案例——多個字符串中找出
最長字符串,并在其他字符串左
邊補(bǔ)'*'號164
6.6.3 典型案例——將矩陣元素右移,
左側(cè)補(bǔ)0165
本章小結(jié)167
學(xué)生自我完善練習(xí)167
習(xí)題6169
第7章 復(fù)合的數(shù)據(jù)類型174
7.1 結(jié)構(gòu)概念的引入174
7.2 結(jié)構(gòu)體的描述與存儲175
7.2.1 結(jié)構(gòu)體的類型定義175
7.2.2 結(jié)構(gòu)體變量定義及初始化176
7.2.3 結(jié)構(gòu)體變量的初始化177
7.2.4 結(jié)構(gòu)體變量和成員的引用及賦值177
7.2.5 結(jié)構(gòu)變量的空間分配及查看方法178
7.2.6 結(jié)構(gòu)體類型的嵌套定義179
7.3 結(jié)構(gòu)體數(shù)組和結(jié)構(gòu)體指針的使用181
7.3.1 結(jié)構(gòu)體數(shù)組181
7.3.2 結(jié)構(gòu)體指針182
7.4 結(jié)構(gòu)體與函數(shù)的關(guān)系184
7.4.1 結(jié)構(gòu)體變量、指針和數(shù)組作為函
數(shù)參數(shù)184
7.4.2 結(jié)構(gòu)體變量和指針作為函數(shù)的返
回值187
*7.5 鏈表189
7.5.1 鏈表基礎(chǔ)知識及動態(tài)分配函數(shù)189
7.5.2 鏈表的操作191
7.6 共用體、枚舉和typedef類型定義195
7.6.1 共用體195
7.6.2 枚舉199
7.6.3 typedef聲明新的類型名201
7.7 程序案例203
7.7.1 典型案例——用“結(jié)構(gòu)”統(tǒng)計(jì)學(xué)
生成績,對成績進(jìn)行排序203
7.7.2 典型案例——枚舉示例,輸出52
張撲克牌205
本章小結(jié)206
學(xué)生自我完善練習(xí)206
習(xí)題7208
第8章 文件和編譯預(yù)處理214
8.1 文件的概念和基本操作214
8.1.1 文件的概念214
8.1.2 文件的打開和關(guān)閉216
8.2 文件的讀寫218
8.2.1 字符的讀寫函數(shù)218
8.2.2 字符串的讀寫函數(shù)219
8.2.3 數(shù)據(jù)塊的讀寫函數(shù)221
8.2.4 格式化輸入輸出文件函數(shù)223
8.3 文件的定位和檢測226
8.3.1 文件的定位226
8.3.2 文件的檢測229
8.4 編譯預(yù)處理229
8.4.1 宏定義230
8.4.2 文件包含232
8.4.3 條件編譯233
8.5 程序案例235
8.5.1 典型案例——文件的字符串讀寫
程序,實(shí)現(xiàn)人員登錄功能235
8.5.2 典型案例——文件中的字?jǐn)?shù)統(tǒng)計(jì)
程序236
本章小結(jié)238
學(xué)生自我完善練習(xí)239
習(xí)題8240
*第9章 C語言圖形程序設(shè)計(jì)基礎(chǔ)245
9.1 屏幕設(shè)置245
9.1.1 屏幕顯示模式與坐標(biāo)系245
9.1.2 圖形驅(qū)動程序與圖形模式247
9.1.3 TC2.0圖形庫函數(shù)248
9.2 圖形處理函數(shù)248
9.2.1 圖形系統(tǒng)管理函數(shù)248
9.2.2 屏幕管理和顏色設(shè)置函數(shù)249
9.2.3 畫點(diǎn)函數(shù)251
9.2.4 繪圖函數(shù)252
9.2.5 設(shè)定線型函數(shù)254
9.2.6 基本圖
C語言雖然已經(jīng)誕生并使用了幾十年,但因?yàn)槠湔Z法規(guī)則、運(yùn)算符豐富,是現(xiàn)在學(xué)習(xí)計(jì)算機(jī)編程知識的入門語言,各類高等學(xué)校中普遍開設(shè)C語言課程,全國計(jì)算等級考試二級和三級中也包括C語言的考試。
本書作為C語言程序設(shè)計(jì)的入門與應(yīng)用教材,共分10章。主要內(nèi)容包括:第1章C語言概述,主要介紹程序設(shè)計(jì)的基本概念,C語言的特點(diǎn),C語言程序的基本結(jié)構(gòu)。第2章程序中的數(shù)據(jù),主要介紹C語言的基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式,數(shù)據(jù)的輸入和輸出。第3章程序設(shè)計(jì)語句,主要介紹結(jié)構(gòu)化三種結(jié)構(gòu)的各種語句格式及功能。第4章數(shù)組,主要介紹一維數(shù)組、二維數(shù)組和字符數(shù)組及其應(yīng)用。第5章函數(shù),主要介紹函數(shù)定義及調(diào)用、變量和函數(shù)的作用域。第6章指針,主要介紹指針的概念,指針的定義、運(yùn)算,指針與數(shù)組和指針與函數(shù)的關(guān)系。第7章復(fù)合的數(shù)據(jù)類型,主要介紹C語言的構(gòu)造數(shù)據(jù)類型,如結(jié)構(gòu)體、共用體和枚舉,以及typedef定義類型別名。第8章文件和編譯預(yù)處理,主要介紹文件的基本操作和使用規(guī)則,及編譯預(yù)處理的三種命令宏定義、文件包含和條件編譯。第9章C語言圖形程序設(shè)計(jì)基礎(chǔ),主要介紹了C語言屏幕設(shè)置和主要的圖形函數(shù)。第10章綜合訓(xùn)練項(xiàng)目,分別介紹了兩個實(shí)用的C語言綜合項(xiàng)目,一個是不帶圖形界面的管理信息系統(tǒng),一個是圖形界面的迷宮探險游戲。書中帶“*”號的章節(jié)部分表示本書的難點(diǎn)部分,不同的學(xué)校教師可根據(jù)自己的授課情況選講。
本教材是針對高職高專學(xué)生的實(shí)際情況,加強(qiáng)學(xué)生對C語言程序設(shè)計(jì)課程的理論及實(shí)踐的學(xué)習(xí)而編寫的,本書的特點(diǎn)有以下幾點(diǎn)。
第一,適合高職高專學(xué)生的特點(diǎn)。
本書全文語言簡潔精練、易讀易懂。在對每一理論知識要點(diǎn)進(jìn)行總結(jié)概括時,均采用了簡潔精練的語言,使學(xué)生易讀易懂、易于記憶。
第二,內(nèi)容豐富、結(jié)構(gòu)合理。
C語言是各個院校學(xué)生學(xué)習(xí)程序設(shè)計(jì)的基礎(chǔ)語言,書中通過一個個實(shí)用的小例子,深入淺出,講解每一個知識點(diǎn)。而且第9章講解了C語言圖形程序設(shè)計(jì)的基礎(chǔ)知識,打破了一般教材只講前面結(jié)構(gòu)化語法、沒有實(shí)用的圖形函數(shù)、做不了實(shí)際項(xiàng)目的缺點(diǎn)。
第三,案例給出在TC和VC6.0兩種環(huán)境下運(yùn)行結(jié)果。
因?yàn)橛行┏绦蛟赥C2.0和VC6.0的環(huán)境中運(yùn)行結(jié)果不同,本教材將在不同環(huán)境運(yùn)行結(jié)果不同的程序都給出對應(yīng)的運(yùn)行結(jié)果截屏和相關(guān)講解,方便讀者理解。
第四,本書配有大量豐富的教學(xué)資源,方便老師授課和學(xué)生自學(xué)。
本書配有豐富的教學(xué)資源,提供運(yùn)行調(diào)試軟件、全部源程序、教學(xué)PPT、習(xí)題參考答案、歷年國家二級考試的筆試原題和上機(jī)百套試題。本教材還錄制了配套的視頻講解教程,學(xué)生可以在課后通過視頻掌握C語言編程技巧。
第五,讓讀者掌握計(jì)算機(jī)編程的數(shù)據(jù)存儲及變化過程。
本書從常量、變量在內(nèi)存的存放、函數(shù)的調(diào)用等知識講解了數(shù)據(jù)在內(nèi)存中處理的信息,讓讀者更容易掌握所學(xué)知識。
第六,本書的編寫方式采用了舉例說明、逐步講解的方法介紹C語言的各知識點(diǎn)。
C語言是編程入門語言,不適合舉例難度很大的大型案例。所以,如何設(shè)計(jì)難度適中、讓編程初步者容易理解的案例就非常有必要。本書精心設(shè)計(jì),通過一個例程,講解本案例的相關(guān)知識點(diǎn),再通過一兩個案例來加深對該知識點(diǎn)的印象。
第七,書中所有程序運(yùn)行結(jié)果采用截屏方式,增加程序運(yùn)行結(jié)果的準(zhǔn)確性。
以前很多教材的運(yùn)行結(jié)果是用文字表示,不直觀。本書將各個源程序運(yùn)行結(jié)果屏幕化,不可能出錯,讀者看起來更直觀。
第八,書中課后習(xí)題全部為歷年國家二級考試題,并在書后給出答案。
本書的課后習(xí)題選用了一些典型的國家二級等級考試試題,方便讀者加深所學(xué)重點(diǎn)知識的印象,又了解了國家二級試題的樣式和難度。
本書易教易學(xué)、學(xué)以致用、注重能力,對初學(xué)者容易混淆的內(nèi)容進(jìn)行了重點(diǎn)提示和講解。針對高職的教學(xué)目標(biāo),提高讀者的動手編程能力,以便于讀者能夠更好地理解C語言的知識,提高實(shí)際編程能力。本書適合作為本、專科各相關(guān)專業(yè)的程序設(shè)計(jì)教材,也適合編程開發(fā)人員培訓(xùn)、自學(xué)使用。
本書由劉暢編著,全書由劉暢統(tǒng)稿及修改。教學(xué)視頻和書中所有算法源代碼等相關(guān)資源均可從電子工業(yè)出版社的華信教育資源網(wǎng)(http://www.hxedu.com.cn)下載,或通過郵件向劉暢老師索取,劉暢老師郵箱為:lcluwzc@163.com。
由于作者水平有限,書中疏漏或不足之處在所難免,懇請廣大專家和讀者給出寶貴意見。
編著者