C語言是應(yīng)用范圍最廣、最為基礎(chǔ)的一門程序設(shè)計語言,也是一門實踐性很強的課程,作為計算機相關(guān)專業(yè)的必修專業(yè)基礎(chǔ)課程,為后續(xù)Java面向?qū)ο蟪绦蛟O(shè)計、數(shù)據(jù)結(jié)構(gòu)與算法、嵌入式開發(fā)等課程的學(xué)習(xí)奠定堅實基礎(chǔ)。本書共分為11個項目,項目1介紹C語言程序及程序編輯環(huán)境的應(yīng)用;項目2講解C語言的數(shù)據(jù)類型與運算符;項目3講解選擇結(jié)構(gòu)的設(shè)計方法和應(yīng)用程序;項目4講解循環(huán)結(jié)構(gòu)化程序設(shè)計;項目5講解數(shù)組與應(yīng)用;項目6講解函數(shù);項目7講解指針;項目8講解結(jié)構(gòu)體與共用體;項目9講解位運算;項目10講解C語言中的文件;項目11講解綜合應(yīng)用。本書可作為高職高專院校和應(yīng)用型本科院校計算機相關(guān)專業(yè) C語言程序設(shè)計課程的教材或教學(xué)參考書。
趙秀芝,主持省雙高專業(yè)群建設(shè)、浙江省產(chǎn)教融合"五一一批”工程項目、溫州市教師教學(xué)創(chuàng)新團隊、溫州市物聯(lián)網(wǎng)高技能基地。曾獲浙江省高職院校教學(xué)能力比賽二等獎、浙江省高校第七屆青年教師教學(xué)技能競賽優(yōu)秀獎、杭鋼集團第九屆員工技術(shù)比武運動會說課比賽一等獎、浙江工貿(mào)職業(yè)技術(shù)學(xué)院第二屆說課比賽一等獎、首屆工貿(mào)"我最喜歡的老師”、首屆工貿(mào)"教學(xué)名師”、溫州市尊重教育、尊重人才突出個人獎等?蒲蟹矫,主持浙江省"十三五”第二批教學(xué)改革研究項目改革"高職電子信息類專業(yè)"1+X”模式的創(chuàng)新與實踐”、主持浙江省2022年度教育科學(xué)規(guī)劃課題"基于"兩系一線”人工智能專業(yè)群思政課程體系研究與實踐”、主持浙江省2022年度高等教育研究課題"雙高背景下"課程思政”同向同行協(xié)同育人實踐研究”、主持工信行指委2022-2023年度科研課題"職業(yè)院校具有專業(yè)特色的學(xué)生思想政治教育的創(chuàng)新實踐”;主持企業(yè)橫向委托項目《AI人工智能的視力篩查云平臺系統(tǒng)》,到賬經(jīng)費10萬;在計算機應(yīng)用、東華大學(xué)學(xué)報、中國教育報等期刊和雜志發(fā)表多篇學(xué)術(shù)論文;主持2022年省級課程思政教學(xué)項目中課程思政示范課程《單片機技術(shù)及應(yīng)用》,參與(第二)省級精品在線開放課程《單片機技術(shù)及應(yīng)用》;參編"十二五”國家規(guī)劃教材《單片機技術(shù)應(yīng)用》等;授權(quán)發(fā)明專利6項。
項目1 初識C語言 1
任務(wù)描述:打印歡迎詞 1
1.1 C語言發(fā)展簡史及特點 2
1.1.1 C語言的起源與發(fā)展 2
1.1.2 C語言的特點 2
1.2 開發(fā)環(huán)境介紹 3
1.2.1 主流開發(fā)工具介紹 3
1.2.2 Dev-C++的下載和安裝 4
1.2.3 創(chuàng)建第一個C語言程序Hello world 6
1.3 C語言程序的結(jié)構(gòu)和編譯運行步驟 7
1.3.1 C語言程序的結(jié)構(gòu) 7
1.3.2 C語言程序編譯運行步驟 8
1.4 程序算法基礎(chǔ) 9
1.4.1 算法的概念 9
1.4.2 流程圖 9
知識拓展:編碼規(guī)范 11
綜合練習(xí) 11
拓展案例 11
項目2 顯示系統(tǒng)時間—數(shù)據(jù)類型與運算符 13
任務(wù)描述:顯示系統(tǒng)時間 13
2.1 基本字符、關(guān)鍵字和標識符 14
2.1.1 基本字符 14
2.1.2 關(guān)鍵字 14
2.1.3 標識符 15
2.2 常量和變量 15
2.2.1 常量 16
2.2.2 變量 17
2.3 基本數(shù)據(jù)類型 19
2.3.1 整型 19
2.3.2 浮點型 22
2.3.3 字符型 23
2.3.4 類型轉(zhuǎn)換 25
2.4 基本輸入和輸出 27
2.4.1 格式化輸出函數(shù) 27
2.4.2 格式化輸入函數(shù) 30
2.4.3 字符的輸入和輸出 33
2.5 運算符與表達式 33
2.5.1 算術(shù)運算符和算術(shù)表達式 34
2.5.2 賦值運算符和賦值表達式 37
2.5.3 逗號運算符和逗號表達式 40
2.5.4 sizeof運算符及表達式 40
知識拓展:簡單代碼調(diào)試 41
綜合練習(xí) 44
拓展案例 45
項目3 身份證號碼歸屬地查詢—選擇結(jié)構(gòu)與應(yīng)用 46
任務(wù)描述:浙江省身份證號碼歸屬地查詢 46
3.1 判定條件 47
3.1.1 關(guān)系運算符和關(guān)系表達式 47
3.1.2 邏輯運算符和邏輯表達式 49
3.2 單分支和雙分支選擇結(jié)構(gòu) 53
3.2.1 單分支if語句 53
3.2.2 雙分支if-else語句 56
3.2.3 條件運算符和條件表達式 60
3.3 多分支選擇結(jié)構(gòu) 62
3.3.1 嵌套使用if語句和if-else語句 62
3.3.2 switch語句 65
知識拓展:分支結(jié)構(gòu)設(shè)計規(guī)范 68
綜合練習(xí) 69
拓展案例 69
項目4 計算圓周率—循環(huán)結(jié)構(gòu)與應(yīng)用 71
任務(wù)描述:計算圓周率 71
4.1 簡單循環(huán)語句 72
4.1.1 while語句 72
4.1.2 do-while語句 76
4.1.3 for語句 78
4.1.4 break語句和continue語句 81
4.2 嵌套循環(huán)及應(yīng)用 86
知識拓展:使用goto語句跳出多重循環(huán) 90
綜合練習(xí) 91
拓展案例 92
項目5 國際標準書號檢驗—數(shù)組與應(yīng)用 93
任務(wù)描述:國際標準書號檢驗 93
5.1 一維數(shù)組及應(yīng)用 94
5.1.1 一維數(shù)組的定義和引用 94
5.1.2 一維數(shù)組的初始化 97
5.1.3 一維數(shù)組的應(yīng)用 98
5.1.4 一維數(shù)組元素排序 99
5.2 二維數(shù)組及應(yīng)用 102
5.2.1 二維數(shù)組的定義和引用 103
5.2.2 二維數(shù)組的初始化 104
5.2.3 二維數(shù)組的應(yīng)用 104
5.3 字符數(shù)組與字符串 107
5.3.1 字符數(shù)組 107
5.3.2 字符串 107
5.3.3 字符串輸入和輸出函數(shù) 108
5.3.4 字符串處理函數(shù) 109
知識拓展:選擇排序和插入排序 113
綜合練習(xí) 117
拓展案例 117
項目6 實現(xiàn)一個簡易計算器—函數(shù) 118
任務(wù)描述:實現(xiàn)一個簡易計算器 118
6.1 函數(shù)及簡單應(yīng)用 119
6.1.1 函數(shù)的作用 119
6.1.2 函數(shù)的定義、調(diào)用和聲明 120
6.1.3 函數(shù)的簡單應(yīng)用 123
6.1.4 單向按值傳遞參數(shù) 127
6.2 數(shù)組作為函數(shù)參數(shù) 129
6.2.1 數(shù)組名作為參數(shù)的語法 129
6.2.2 傳遞數(shù)組首地址 130
6.2.3 數(shù)組作為參數(shù)的應(yīng)用 131
6.3 遞歸函數(shù)及應(yīng)用 134
6.4 函數(shù)的嵌套調(diào)用 138
6.5 變量的作用域及生命期 139
6.5.1 作用域 140
6.5.2 生命期 142
6.6 編譯預(yù)處理 144
知識拓展:C語言內(nèi)存分配 146
綜合練習(xí) 147
拓展案例 148
項目7 拆分實數(shù)—指針 150
任務(wù)描述:拆分實數(shù) 150
7.1 指針的基礎(chǔ)知識 151
7.1.1 地址和指針 151
7.1.2 指針變量的定義和初始化 152
7.1.3 指針的基本運算 153
7.2 指針的進階應(yīng)用 157
7.2.1 指針與函數(shù) 157
7.2.2 指針與數(shù)組 160
7.3 安全地使用指針 164
知識拓展:動態(tài)分配堆區(qū)內(nèi)存 165
綜合練習(xí) 167
拓展案例 167
項目8 統(tǒng)計一組學(xué)生成績的最高分、最低分和平均分—結(jié)構(gòu)體與共同體 169
任務(wù)描述:統(tǒng)計一組學(xué)生成績的最高分、最低分和平均分 170
8.1 結(jié)構(gòu)體類型 170
8.1.1 結(jié)構(gòu)體類型的定義 170
8.1.2 結(jié)構(gòu)體類型變量的定義 172
8.1.3 結(jié)構(gòu)體成員的引用 173
8.1.4 結(jié)構(gòu)體在函數(shù)中的應(yīng)用 173
8.2 類型定義typedef 177
8.3 共同體類型 179
8.3.1 共同體的概念、定義及變量 179
8.3.2 共同體的應(yīng)用 179
8.4 枚舉類型 181
8.5 鏈表※ 183
8.5.1 鏈表的概念 183
8.5.2 鏈表的創(chuàng)建和銷毀 183
8.5.3 鏈表的插入和刪除操作 186
知識拓展:線性表 190
綜合練習(xí) 191
拓展案例 191
項目9 不使用第三個變量交換兩個變量—位運算 192
任務(wù)描述:不使用第三個變量交換兩個變量 193
9.1 位運算符 193
9.2 位運算的應(yīng)用 196
9.3 位段及其應(yīng)用 199
9.3.1 位段結(jié)構(gòu)體的定義 199
9.3.2 位段的應(yīng)用 200
知識拓展:使用位運算為字符串加密 201
綜合練習(xí) 203
拓展案例 203
項目10 存取學(xué)生信息—文件 205
任務(wù)描述:存取學(xué)生信息 205
10.1 文件的概念 206
10.2 文本文件和二進制文件 207
10.3 文件的操作函數(shù) 207
10.3.1 文件的打開和關(guān)閉 208
10.3.2 文件的讀寫 209
知識拓展:文件類型與編碼方式 217
綜合練習(xí) 218
拓展案例 219
項目11 最近鄰算法的實現(xiàn)與驗證—綜合應(yīng)用案例 221
任務(wù)描述:最近鄰算法的實現(xiàn)與驗證 221
11.1 開發(fā)背景 222
11.2 開發(fā)需求 224
11.3 整體設(shè)計 225
11.4 程序?qū)崿F(xiàn) 226
11.5 程序拓展 233
綜合練習(xí) 236
拓展案例 236
附錄A ASCII碼對照表 237
附錄B 運算符優(yōu)先級和結(jié)合性 238
附錄C 配套PTA題目集 239