人類學(xué)語言時,學(xué)會了聽說讀寫; 學(xué)數(shù)學(xué)時,學(xué)會了運算推理; 學(xué)物理時,學(xué)會了觀察實證,從而可以理解現(xiàn)實生活周圍的各種現(xiàn)象,以便針對問題提出有效的解決方案。出于同樣的理由,我們應(yīng)該學(xué)習(xí)編程,這樣能更好地理解
數(shù)字化世界。如果想要深刻地理解這個時代,就要懂得計算機編程,編程完成了基于計算機的計算實現(xiàn),改變著我們的思維方式。編程不只是一門技術(shù),它教會人們?nèi)绾嗡伎。在編程的世界里?br />程序設(shè)計
語言就像超市的商品、琳瑯滿目。但是,我們一如既往還說C語言,因為C語言是一門古老而常青的編程語言,它具備了現(xiàn)代程序設(shè)計的基礎(chǔ)要求,它的語法是很多其他編程語言的基礎(chǔ),它在系統(tǒng)程序、嵌入式系統(tǒng)等領(lǐng)域依然是無可替代的,
常年位于
編程語言排行榜前列。
C語言是一門優(yōu)秀的教學(xué)語言,其優(yōu)美的結(jié)構(gòu)、完善的語法,是面向過程的結(jié)構(gòu)化編程語言最好的詮釋。C語言程序設(shè)計課程是高等院校的必修課程之一,它既是各類專業(yè)技術(shù)的應(yīng)用基礎(chǔ),又是各種實踐環(huán)節(jié)的軟件工具,更是課程設(shè)計、學(xué)科競賽、畢業(yè)設(shè)計、創(chuàng)新創(chuàng)業(yè)等活動的重要平臺。通過學(xué)習(xí)C語言,學(xué)生能夠深入理解計算機的工作原理和程序執(zhí)行過程,為后續(xù)學(xué)習(xí)其他編程語言和計算機科學(xué)相關(guān)課程打下堅實的基礎(chǔ)。不僅可以培養(yǎng)學(xué)生的邏輯思維和抽象思維能力,而且可以提高學(xué)生解決復(fù)雜問題的能力。編程能力不僅是學(xué)習(xí)者進一步專業(yè)深造的潛力體現(xiàn),也是創(chuàng)新人才的重要指標(biāo)。
本書是編者在一線教學(xué)實踐的基礎(chǔ)上,為適應(yīng)當(dāng)前本科教育教學(xué)改革創(chuàng)新的要求,更好地踐行語言類課程注重實踐教學(xué)與創(chuàng)新能力培養(yǎng)的需要,組織新編的教程。本書以O(shè)BE(Out come Based Education,成果導(dǎo)向教育)理念為指導(dǎo),以知識點案例、二級習(xí)題為驅(qū)動,更加注重培養(yǎng)學(xué)生的實踐能力,提高學(xué)生的學(xué)習(xí)成果產(chǎn)出,持續(xù)鞏固學(xué)習(xí)成果。本書具有以下特點:
(1) 案例貫穿全書,貼近實際應(yīng)用。全書按照案例貫穿的形式組織內(nèi)容,將實例融入知識講解中,使知識與案例相輔相成,既有利于讀者學(xué)習(xí)知識,又有利于指導(dǎo)讀者實踐。最后用一個綜合案例貫穿每章的重點難點,方便讀者及時驗證自己的學(xué)習(xí)效果。
(2) 融合二級題庫,增強實用性與針對性。為了提高學(xué)生的二級考試備考效率和實際編程能力,我們將二級題庫的典型題型融入教學(xué)內(nèi)容,使本書既是C語言知識的參考書,也是實用的備考資源。精選的練習(xí)題和案例分析旨在幫助學(xué)生熟悉考試模式,強化應(yīng)試技巧,并加深對C語言實際應(yīng)用的理解。
(3) 配套服務(wù)完善,教輔資源豐富。主要章節(jié)均放置了二維碼,掃描二維碼即可在手機
或計算機上觀看相應(yīng)章節(jié)的視頻講解。每章內(nèi)容由線上和線下資源共同構(gòu)成,包含學(xué)習(xí)任務(wù)、重難點、預(yù)備知識、實用案例、隨堂測驗、拓展資料、本章小結(jié)、實踐練習(xí)等單元。并在學(xué)習(xí)通平臺提供疑難解答、教學(xué)交流等服務(wù)。
本書由任瑞仙擔(dān)任主編,王曉霞、黃英擔(dān)任副主編。任瑞仙負(fù)責(zé)整體構(gòu)思與統(tǒng)稿,并編寫了第1章、第8章,錄制了主要知識點的講解視頻,王麗琴負(fù)責(zé)編寫第2章,李軍紅負(fù)責(zé)編寫第3章,王曉霞負(fù)責(zé)編寫第4章,段新娥負(fù)責(zé)編寫第5章,韓俊芳負(fù)責(zé)編寫第6章,郭偉欣負(fù)責(zé)編寫第7章,曾照華負(fù)責(zé)編寫第9章,黃英負(fù)責(zé)編寫第10章,郝?lián)P瑞負(fù)責(zé)編寫第11章,丁楊柳負(fù)責(zé)編寫附錄,畢鵬云負(fù)責(zé)繪制插圖。
張志東、
路文婷、杜鴻毅、魏曉艷、段海英、趙麗婷、牛思瑤、付淵負(fù)責(zé)
運行程序并進行測試。
田野、王棟、張敬環(huán)、翟世杰、王瑞兵、蘇穎負(fù)責(zé)內(nèi)容審核與校對工作。
由于編者水平有限,書中難免有疏漏和不足之處,敬請各位專家、同行和讀者批評指正,以
便將教材進一步完善。
任瑞仙
2025年1月
第1章初識C語言
1.1簡單的C程序
1.2C程序的基本結(jié)構(gòu)
1.3C程序的開發(fā)環(huán)境
1.3.1Visual C 2022
1.3.2DevC 開發(fā)環(huán)境
1.3.3運行C程序的步驟與方法
1.4算法
1.4.1算法的特性
1.4.2算法的描述
本章小結(jié)
習(xí)題1
第2章C語言基礎(chǔ)知識
2.1基本數(shù)據(jù)類型
2.2常量
2.2.1整型常量
2.2.2實型常量
2.2.3字符常量
2.2.4字符串常量
2.2.5符號常量
2.3變量
2.3.1變量的定義
2.3.2變量賦初值
2.3.3常變量
2.4運算符與表達式
2.4.1賦值運算符與賦值表達式
2.4.2算術(shù)運算符與算術(shù)表達式
2.4.3自增/自減運算符
2.4.4關(guān)系運算符與關(guān)系表達式
2.4.5邏輯運算符與邏輯表達式
2.4.6位運算符與位表達式
本章小結(jié)
習(xí)題2
第3章順序結(jié)構(gòu)程序設(shè)計
3.1程序設(shè)計的三種基本結(jié)構(gòu)
3.1.1程序的基本編寫方法
3.1.2順序結(jié)構(gòu)
3.2C語句的作用和分類
3.2.1C語句的作用
3.2.2C語句的分類
3.3格式輸出和輸入函數(shù)
3.3.1輸入輸出案例
3.3.2格式化輸出函數(shù)printf
3.3.3格式化輸入函數(shù)scanf
3.4字符輸入輸出函數(shù)
3.4.1字符輸出函數(shù)putchar
3.4.2字符輸入函數(shù)getchar
3.5其他常用函數(shù)
3.5.1常用數(shù)學(xué)函數(shù)
3.5.2常用字符函數(shù)
3.5.3其他常用工具函數(shù)
3.6順序結(jié)構(gòu)程序舉例
本章小結(jié)
習(xí)題3
第4章選擇結(jié)構(gòu)程序設(shè)計
4.1使用if語句實現(xiàn)選擇結(jié)構(gòu)
4.1.1用if語句實現(xiàn)單分支結(jié)構(gòu)
4.1.2用if語句實現(xiàn)雙分支結(jié)構(gòu)
4.1.3用if語句實現(xiàn)多分支結(jié)構(gòu)
4.1.4if語句的嵌套
4.2選擇結(jié)構(gòu)的其他表示方法
4.2.1switch結(jié)構(gòu)
4.2.2條件運算符
4.3選擇結(jié)構(gòu)應(yīng)用舉例
本章小結(jié)
習(xí)題4
第5章循環(huán)結(jié)構(gòu)程序設(shè)計
5.1while語句
5.2do…while語句
5.3for語句
5.4break和continue語句
5.5循環(huán)的嵌套
5.6循環(huán)結(jié)構(gòu)典型應(yīng)用
本章小結(jié)
習(xí)題5
第6章數(shù)組
6.1一維數(shù)組
6.1.1一維數(shù)組的定義和引用
6.1.2一維數(shù)組的初始化
6.1.3一維數(shù)組的應(yīng)用
6.2二維數(shù)組
6.2.1二維數(shù)組的定義和引用
6.2.2二維數(shù)組的初始化
6.2.3二維數(shù)組的應(yīng)用
6.3字符數(shù)組與字符串
6.3.1字符串與字符串結(jié)束標(biāo)志
6.3.2字符數(shù)組的定義和元素引用
6.3.3字符數(shù)組的初始化
6.3.4字符數(shù)組的輸入輸出
6.3.5字符串處理函數(shù)
6.3.6字符數(shù)組應(yīng)用舉例
本章小結(jié)
習(xí)題6
第7章函數(shù)
7.1函數(shù)概述
7.1.1函數(shù)的引入
7.1.2函數(shù)的定義
7.1.3函數(shù)的調(diào)用
7.1.4函數(shù)的參數(shù)傳遞
7.1.5函數(shù)的返回值
7.2函數(shù)的嵌套調(diào)用和遞歸調(diào)用
7.2.1函數(shù)的嵌套調(diào)用
7.2.2函數(shù)的遞歸調(diào)用
7.3數(shù)組作為函數(shù)參數(shù)
7.3.1數(shù)組元素作為函數(shù)實參
7.3.2數(shù)組名作為函數(shù)參數(shù)
7.4函數(shù)中的變量
7.4.1局部變量和全局變量
7.4.2變量的生存期
7.4.3存儲類別小結(jié)
本章小結(jié)
習(xí)題7
第8章指針
8.1指針相關(guān)概念
8.1.1地址與指針
8.1.2變量與指針
8.1.3指針變量
8.1.4指針變量作為函數(shù)參數(shù)
8.2指針與數(shù)組
8.2.1通過指針訪問一維數(shù)組
8.2.2通過指針訪問二維數(shù)組
8.2.3通過指針訪問字符串
8.2.4用數(shù)組名作為函數(shù)參數(shù)
8.3指針與函數(shù)
8.3.1指向函數(shù)的指針
8.3.2返回指針值的函數(shù)
本章小結(jié)
習(xí)題8
第9章結(jié)構(gòu)體與共用體
9.1定義和使用結(jié)構(gòu)體變量
9.1.1自己建立結(jié)構(gòu)體類型
9.1.2定義結(jié)構(gòu)體類型變量
9.1.3結(jié)構(gòu)體變量的初始化和引用
9.2結(jié)構(gòu)體數(shù)組
9.2.1結(jié)構(gòu)體數(shù)組的定義
9.2.2結(jié)構(gòu)體數(shù)組的初始化和引用
9.3結(jié)構(gòu)體指針
9.3.1指向結(jié)構(gòu)體變量的指針
9.3.2指向結(jié)構(gòu)體數(shù)組的指針
9.3.3結(jié)構(gòu)體作為函數(shù)參數(shù)
9.4鏈表
9.4.1鏈表的定義
9.4.2建立簡單鏈表
9.5共用體類型
9.5.1共用體的概念
9.5.2共同體變量的引用
9.5.3共用體類型數(shù)據(jù)的特點
9.6枚舉類型
9.6.1枚舉類型的定義
9.6.2枚舉類型變量的賦值和使用
本章小結(jié)
習(xí)題9
第10章文件
10.1文件基本知識
10.1.1文件的分類
10.1.2文件緩沖區(qū)
10.1.3文件指針
10.2文件的打開與關(guān)閉
10.2.1文件的打開
10.2.2文件的關(guān)閉
10.3文件的讀寫
10.3.1格式化讀寫函數(shù)
10.3.2字符讀寫函數(shù)
10.3.3字符串讀寫函數(shù)
10.3.4數(shù)據(jù)塊讀寫函數(shù)
10.4文件的定位
10.4.1文件位置指針回繞函數(shù)
10.4.2文件位置指針定位函數(shù)
10.4.3文件位置指針獲取函數(shù)
10.4.4文件檢測函數(shù)
本章小結(jié)
習(xí)題10
第11章綜合實例學(xué)生成績管理系統(tǒng)
11.1開發(fā)環(huán)境需求
11.1.1Visual C 集成開發(fā)環(huán)境
11.1.2Visual C 的使用
11.2系統(tǒng)功能設(shè)計
11.2.1系統(tǒng)功能分析
11.2.2系統(tǒng)數(shù)據(jù)分析
11.3主函數(shù)設(shè)計
11.4子函數(shù)設(shè)計
11.4.1菜單模塊
11.4.2輸入模塊
11.4.3修改模塊
11.4.4刪除模塊
11.4.5打印模塊
11.4.6查詢模塊
11.4.7統(tǒng)計模塊
習(xí)題11
參考文獻
附錄A常用字符與ASCII代碼對照表
附錄B運算符的優(yōu)先級和結(jié)合性
附錄C常用庫函數(shù)
習(xí)題解析