本書是面向高等院校C語言程序設(shè)計課程編寫的教材,系統(tǒng)介紹C語言程序設(shè)計的基礎(chǔ)語法知識和程序設(shè)計方法。全書分為11章,主要內(nèi)容包括:緒論,數(shù)據(jù)類型、運算符與表達式,標準輸入和輸出,選擇結(jié)構(gòu)程序設(shè)計,循環(huán)結(jié)構(gòu)程序設(shè)計,數(shù)組與字符串,函數(shù),指針,結(jié)構(gòu)體,文件,項目案例實現(xiàn)。在每章的開頭,通過對科技名人的介紹,引導讀者認識學習方法與方式;在每章的結(jié)尾,通過對科技前沿知識的介紹,幫助讀者拓展知識面;全書在注重基礎(chǔ)的同時,通過工程應(yīng)用實際案例,將學與用緊密結(jié)合。本書語言通俗易懂、簡潔流暢;內(nèi)容敘述深入淺出、突出重點;精選大量典型例題,講解由淺入深、細致詳盡。充分體現(xiàn)了漸進式教學、啟發(fā)式教學、分層式教學的思想。為便于讀者高效學習,快速掌握C語言編程與實踐,本書配套完整的教學大綱、教學課件、程序代碼、測試題庫、習題解答,以及每章重難點微課視頻。本書既可以作為高等院校與高職高專院校學生C語言程序設(shè)計的教材,又可以作為C語言相關(guān)工作人員和編程愛好者的參考用書。
在人類科技特別是智能科技發(fā)展歷程中,程序設(shè)計一直起著重要的作用。而在眾多程序設(shè)計語言中,C語言以其獨特的魅力和強大的功能占據(jù)著一席之地。自20世紀70年代誕生以來,C語言便以其高效、靈活的特性迅速成為系統(tǒng)編程、嵌入式開發(fā)以及操作系統(tǒng)設(shè)計等領(lǐng)域的首選語言。如今,C語言仍然廣泛應(yīng)用于各種軟件開發(fā)環(huán)境中,其影響力和生命力可見一斑。
C語言程序設(shè)計是一門具有較高難度的課程。一方面,C語言通常是學生學習到的優(yōu)質(zhì)個編程語言,從面向的對象、計算規(guī)則、語法結(jié)構(gòu)等都與已有的知識積累存在區(qū)別。另一方面,C語言需要初學者進行思維方式的轉(zhuǎn)換,即用計算機思維去處理實際問題。
C語言程序設(shè)計又是相對簡單的課程。它具有簡單明了的語法結(jié)構(gòu)和良好的可移植性,設(shè)計哲學強調(diào)高效性和簡潔性,使得程序員能夠用較少的代碼實現(xiàn)復雜的功能。這種特性使得C語言在性能要求較高的場合具有不可替代的優(yōu)勢,編好的程序無須進行大量的修改即可輕松地移植到不同的硬件平臺和操作系統(tǒng)上。此外,C語言提供了豐富的運算符和強大的指針功能,這使得程序員能夠更加直接地操作內(nèi)存,從而編寫出更加高效、靈活的代碼。C語言在數(shù)據(jù)結(jié)構(gòu)和算法方面的表現(xiàn)也非常出色。通過使用C語言提供的數(shù)據(jù)類型、控制結(jié)構(gòu),以及函數(shù)等基本元素,程序員可以構(gòu)建各種復雜的數(shù)據(jù)結(jié)構(gòu)和算法,從而實現(xiàn)各種復雜的計算任務(wù)。C語言的這一特性使得它在算法研究和軟件開發(fā)領(lǐng)域具有廣泛的應(yīng)用前景。
本書面向程序設(shè)計初學者,看重思維方式的引導,體現(xiàn)由淺入深、一例貫穿、以例闡理的編寫理念,在面向工科學生專業(yè)學習和研究方面進行了有益的探索,所選實例大多來自工程實際。本書通過引入計算機領(lǐng)域名人與科技前沿知識,深化大工匠探索,構(gòu)筑育人新格局。
本書配備了豐富的教學資源,如程序代碼、微課視頻、教學大綱、教學課件、電子教案、測試題庫等,屬于新形態(tài)教材,方便教師與學生使用,希望本書得到C語言學習者和講授者的使用和喜歡!
作者2025年5月
高峰,院長,博士,教授,碩士生導師。全面主持學院行政工作,主管人事、財務(wù)、專業(yè)與學科建設(shè)、科研和人才隊伍建設(shè)等工作。主要研究領(lǐng)域圖像智能解譯、智能感知與自動化,現(xiàn)為湖南省市級領(lǐng)軍人才,長沙市高層次軍事科研一類人才、長沙高新區(qū)骨干人才,湖南軍民融合發(fā)展中心,長沙市科技委項目評審,湖南省電子信息協(xié)會常務(wù)理事。主要科研成果:主持或參與重點項目20余項,作為項目負責人,主持國家自然科學項目1項、主持國家重大專項項目2項、主持國家973項目3項,作為技術(shù)骨干,參與國家重大專項6項,國家973項目6項,國防科技創(chuàng)新項目1項,國防型號項目1項等,并在2014-2015年和2016-2018年擔任973首席科學家助理和973項目辦公室主任。所得的科研成果發(fā)表在了IEEE、電子學報、計算機學報等國內(nèi)著名期刊上,撰寫學術(shù)論文30余篇,其中sci檢索3篇,EI檢索17篇。申請專利4項。
第1章緒論
微課視頻4分鐘
1.1程序與程序設(shè)計語言
1.1.1程序設(shè)計語言的發(fā)展
1.1.2程序的算法表示
1.2C語言的發(fā)展歷史
1.3C語言與工科專業(yè)
1.3.1C語言在工科專業(yè)中的應(yīng)用
1.3.2C語言在工科專業(yè)中的重要性
1.4C語言的集成開發(fā)環(huán)境
1.5C語言程序調(diào)試
1.6科技前沿之人工智能
本章小結(jié)
本章習題
第2章數(shù)據(jù)類型、運算符與表達式
微課視頻24分鐘
2.1數(shù)據(jù)類型
2.1.1數(shù)據(jù)類型的概念
2.1.2整型
2.1.3實型
2.1.4字符型
2.2標識符、常量和變量
2.2.1標識符
2.2.2變量
2.2.3常量
2.3變量或數(shù)據(jù)類型所占內(nèi)存空間的大小
2.4運算符與表達式
2.4.1算術(shù)運算符與算術(shù)表達式
2.4.2賦值運算符與賦值表達式
2.4.3關(guān)系運算符與關(guān)系表達式
2.4.4條件運算符與條件表達式
2.4.5邏輯運算符與邏輯表達式
2.4.6逗號運算符與逗號表達式
2.4.7位運算符
2.5數(shù)據(jù)類型的轉(zhuǎn)換
2.5.1自動類型轉(zhuǎn)換
2.5.2強制類型轉(zhuǎn)換
2.6科技前沿之物聯(lián)網(wǎng)
本章小結(jié)
本章習題
第3章標準輸入和輸出
微課視頻7分鐘
3.1輸入和輸出的基本概念
3.2字符型常量
3.2.1ASCII字符集
3.2.2UTF8字符集
3.3單個字符的輸入和輸出函數(shù)
3.3.1字符輸入函數(shù)getchar()
3.3.2字符輸出函數(shù)putchar()
3.4格式輸入和輸出函數(shù)
3.4.1格式輸入函數(shù)scanf()
3.4.2格式輸出函數(shù)printf()
3.5輸入輸出函數(shù)的安全版本
3.5.1格式輸入函數(shù)的安全版本scanf_s()
3.5.2格式輸出函數(shù)的安全版本printf_s()
3.6科技前沿之云計算
本章小結(jié)
本章習題
第4章選擇結(jié)構(gòu)程序設(shè)計
微課視頻24分鐘
4.1分支結(jié)構(gòu)中關(guān)系運算符與表達式的應(yīng)用
4.1.1關(guān)系運算符的應(yīng)用
4.1.2關(guān)系表達式的應(yīng)用
4.2if語句
4.2.1用if語句實現(xiàn)單分支選擇結(jié)構(gòu)
4.2.2用ifelse語句實現(xiàn)雙分支選擇結(jié)構(gòu)
4.2.3條件運算符和條件表達式
4.2.4用ifelse if…語句實現(xiàn)多分支選擇結(jié)構(gòu)
4.2.5ifelse語句的嵌套
4.3switchcase語句
4.3.1switchcase語句的基本形式
4.3.2switchcase語句實現(xiàn)多路開關(guān)控制結(jié)構(gòu)
4.4分支結(jié)構(gòu)中邏輯運算符的應(yīng)用及短路特性
4.4.1邏輯非、與、或運算符的應(yīng)用
4.4.2邏輯表達式的短路特性
4.5科技前沿之機器學習
本章小結(jié)
本章習題
第5章循環(huán)結(jié)構(gòu)程序設(shè)計
微課視頻23分鐘
5.1基本循環(huán)結(jié)構(gòu)
5.1.1for循環(huán)結(jié)構(gòu)
5.1.2while循環(huán)結(jié)構(gòu)
5.1.3dowhile循環(huán)結(jié)構(gòu)
5.1.43種基本循環(huán)結(jié)構(gòu)比較
5.2循環(huán)結(jié)構(gòu)中的計數(shù)控制和條件控制
5.2.1計數(shù)控制循環(huán)結(jié)構(gòu)
5.2.2條件控制循環(huán)結(jié)構(gòu)
5.3嵌套循環(huán)結(jié)構(gòu)
5.4循環(huán)的轉(zhuǎn)移控制
5.4.1break語句和continue語句在循環(huán)結(jié)構(gòu)中的作用
5.4.2goto語句在循環(huán)結(jié)構(gòu)中的作用
5.4.3exit(0)在循環(huán)結(jié)構(gòu)中的作用
5.5科技前沿之深度學習
本章小結(jié)
本章習題
第6章數(shù)組與字符串
微課視頻10分鐘
6.1數(shù)組
6.1.1數(shù)組的定義與聲明
6.1.2數(shù)組的維度
6.1.3數(shù)組的初始化
6.1.4數(shù)組的訪問與遍歷
6.1.5數(shù)組的賦值與復制
6.1.6數(shù)組的應(yīng)用舉例
6.2字符串
6.2.1字符串的定義與表示
6.2.2字符串的輸入與輸出
6.2.3字符串的操作與函數(shù)
6.3科技前沿之人工神經(jīng)網(wǎng)絡(luò)
本章小結(jié)
本章習題
第7章函數(shù)
微課視頻12分鐘
7.1函數(shù)分類
7.1.1標準函數(shù)
7.1.2自定義函數(shù)
7.2函數(shù)調(diào)用
7.2.1函數(shù)調(diào)用的形式與過程
7.2.2參數(shù)傳遞
7.3遞歸調(diào)用
7.4變量的作用域與生命周期
7.4.1變量的作用域
7.4.2變量的生命周期
7.5模塊化程序設(shè)計
7.6科技前沿之數(shù)據(jù)挖掘
本章小結(jié)
本章習題
第8章指針
微課視頻37分鐘
8.1指針和指針變量
8.1.1指針
8.1.2指針變量
8.2指針運算符
8.2.1取地址運算符
8.2.2間接尋址運算符
8.2.3用指針處理簡單變量
8.3指針與一維數(shù)組
8.3.1一維數(shù)組的內(nèi)存分配
8.3.2定義指向數(shù)組元素的指針變量
8.3.3使用指針變量訪問數(shù)組元素
8.3.4一維數(shù)組的指針作函數(shù)參數(shù)
8.4指針與二維數(shù)組
8.4.1二維數(shù)組的內(nèi)存分配
8.4.2使用指針變量訪問二維數(shù)組
8.4.3二維數(shù)組的行地址與列地址
8.4.4二維數(shù)組的指針作函數(shù)參數(shù)
8.5指針與字符串
8.6指針數(shù)組
8.7科技前沿之光子計算機
本章小結(jié)
本章習題
第9章結(jié)構(gòu)體
微課視頻21分鐘
9.1結(jié)構(gòu)體類型的定義
9.2結(jié)構(gòu)體變量的定義和使用
9.2.1結(jié)構(gòu)體變量的定義
9.2.2結(jié)構(gòu)體變量成員的使用
9.2.3通過結(jié)構(gòu)體變量的指針引用成員
9.2.4結(jié)構(gòu)體變量作函數(shù)參數(shù)
9.3結(jié)構(gòu)體數(shù)組
9.3.1結(jié)構(gòu)體數(shù)組的定義和初始化
9.3.2結(jié)構(gòu)體數(shù)組元素的使用
9.3.3結(jié)構(gòu)體數(shù)組作函數(shù)參數(shù)
9.4指針、結(jié)構(gòu)體數(shù)組與函數(shù)
9.4.1指向結(jié)構(gòu)體數(shù)組的指針
9.4.2結(jié)構(gòu)體指針作函數(shù)參數(shù)
9.5動態(tài)內(nèi)存分配
9.5.1動態(tài)內(nèi)存分配函數(shù)
9.5.2可變長度的動態(tài)數(shù)組
9.6科技前沿之邊緣計算
本章小結(jié)
本章習題
第10章文件
微課視頻15分鐘
10.1文件的基本概念
10.1.1文件的分類
10.1.2文件指針
10.1.3文件操作的基本過程
10.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文件的定位
10.4.2文件的隨機讀寫
10.5科技前沿之大數(shù)據(jù)
本章小結(jié)
本章習題
第11章項目案例實現(xiàn)
微課視頻7分鐘
11.1項目需求分析
11.2溫濕度采集模塊
11.3顯示溫濕度信息模塊
11.4溫濕度數(shù)據(jù)排序模塊
11.5溫濕度信息查找模塊
11.6信息修改模塊
11.7加溫加濕終端控制模塊
11.8系統(tǒng)的集成
11.9科技前沿之決策和控制
附錄AC關(guān)鍵字
附錄BGCC中基本數(shù)據(jù)類型的取值范圍
附錄CC語言運算符的優(yōu)先級與結(jié)合性
附錄DANSI C碼值與常用字符對照表
附錄E常用的ANSI C標準庫函數(shù)
參考文獻