本書以培養(yǎng)計(jì)算機(jī)專業(yè)學(xué)生的系統(tǒng)化編程思維與工程實(shí)踐能力為核心目標(biāo),結(jié)合C語言的基礎(chǔ)性與前沿應(yīng)用場景,系統(tǒng)構(gòu)建從語法基礎(chǔ)到復(fù)雜項(xiàng)目開發(fā)的完整知識體系。在夯實(shí)傳統(tǒng)C語言編程技能的基礎(chǔ)上,本書創(chuàng)新性引入人工智能工具鏈與跨領(lǐng)域案例,幫助讀者理解C語言在新時代技術(shù)生態(tài)中的獨(dú)特價(jià)值,具備以工程思維解決實(shí)際問題的能力,為后續(xù)專業(yè)學(xué)習(xí)與職業(yè)發(fā)展奠定堅(jiān)實(shí)基礎(chǔ)。
本書共12章,內(nèi)容循序漸進(jìn)、層次分明。按基礎(chǔ)語法、控制結(jié)構(gòu)、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、文件操作、現(xiàn)代工具和AI應(yīng)用的邏輯順序展開,并提供了涵蓋大部分知識點(diǎn)的微課視頻。本書內(nèi)容全面、條理清晰、實(shí)例豐富、實(shí)用性強(qiáng),主要供高等院校計(jì)算機(jī)和相關(guān)專業(yè)的學(xué)生使用。
本書采用項(xiàng)目案例驅(qū)動模式,配有源代碼、微課視頻、教學(xué)課件、教學(xué)大綱等資源,內(nèi)容豐富實(shí)用。通過問題導(dǎo)向的教學(xué)方式,夯實(shí)學(xué)生的基礎(chǔ)知識,并配有大量編程實(shí)例和綜合設(shè)計(jì)案例,將所有知識點(diǎn)融入實(shí)踐之中。語言簡明易懂,程序?qū)嵗δ芡陚,處理過程嚴(yán)謹(jǐn),應(yīng)用價(jià)值高,非常適合作為計(jì)算機(jī)及相關(guān)專業(yè)、各類工科專業(yè)的教材,也可作為C語言程序設(shè)計(jì)愛好者的自學(xué)用書。
前言
在數(shù)字化時代背景下,編程技能已成為開啟科技創(chuàng)新之門的關(guān)鍵。 C語言作為一門歷史悠久且具有深遠(yuǎn)影響力的編程語言,在計(jì)算機(jī)科學(xué) 領(lǐng)域中占據(jù)著舉足輕重的地位。
C語言的應(yīng)用范圍極為廣泛,其在操作系統(tǒng)(如 Windows、Linux)及 各類嵌入式系統(tǒng)(如智能手機(jī)、智能家居設(shè)備)中扮演著不可或缺的角色。 在游戲開發(fā)領(lǐng)域,C語言同樣發(fā)揮著關(guān)鍵作用,它能夠?qū)崿F(xiàn)高效的圖形渲 染和游戲邏輯處理。此外,在科學(xué)計(jì)算、金融領(lǐng)域等,C語言也有廣泛的 應(yīng)用,為復(fù)雜的數(shù)值計(jì)算和數(shù)據(jù)處理提供了強(qiáng)大的支持。
本書旨在為讀者全面系統(tǒng)地介紹C語言程序設(shè)計(jì),主要內(nèi)容涵蓋以 下幾個方面。 第1章概述了計(jì)算機(jī)語言的演進(jìn)以及C 語言的發(fā)展歷程,闡述了C語言的特點(diǎn),并使讀者初步了解C語言的編程環(huán)境及其相關(guān)流程。 第2、3章從基礎(chǔ)語法入手,詳細(xì)講解C語言的基本數(shù)據(jù)類型、常量和 變量的定義及使用、運(yùn)算符的運(yùn)用、數(shù)據(jù)的輸入/輸出等。讓讀者對C語 言的基本構(gòu)成要素有清晰的認(rèn)識,為后續(xù)的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
第4、5章深入闡述控制結(jié)構(gòu),包括選擇結(jié)構(gòu)(如if語句、switch 語句 等)和循環(huán)結(jié)構(gòu)(如while語 句、do...while語 句、for語 句 等)。通 過 大 量 實(shí)例,幫助讀者掌握如何運(yùn)用這些控制結(jié)構(gòu)來實(shí)現(xiàn)程序的邏輯流程控制。 第6、8、9章涉及數(shù)組、指針、結(jié)構(gòu)體等重要的數(shù)據(jù)結(jié)構(gòu),幫助讀者處 理大規(guī)模數(shù)據(jù)和復(fù)雜的數(shù)據(jù)關(guān)系,實(shí)現(xiàn)更強(qiáng)大的程序功能。 第7章介紹了函數(shù)的定義、調(diào)用和參數(shù)傳遞等知識,讓讀者學(xué)會將復(fù)雜的問題分解為一個個獨(dú)立的函數(shù)模塊,提高程序的可讀性、可維護(hù)性和可擴(kuò)展性。
第10章對文件操作有專門的講解,包括文件的打開、關(guān)閉、讀/寫等 操作,能夠?qū)崿F(xiàn)數(shù)據(jù)的持久化存儲與讀取。
第11章介紹了使用現(xiàn)在比較火爆的DeepSeek和Trae等工具賦能 C語言的方法。
第12章論述了人工智能的基礎(chǔ)知識,并通過案例說明了C語言在人 工智能領(lǐng)域中的應(yīng)用。
C語言程序設(shè)計(jì)(微課版)
在學(xué)習(xí)編程的過程中,讀者可以采用以下方法來更好地掌握C語言。
(1)多實(shí)踐。編程是一門實(shí)踐性很強(qiáng)的學(xué)科,只有通過不斷地編寫代碼,才能真正理 解和掌握C語言的各種概念和技巧。每學(xué)習(xí)一個新的知識點(diǎn),都要嘗試自己動手編寫一 些小程序來鞏固所學(xué)內(nèi)容。 (2)勤思考。在編程過程中,遇到問題不要急于尋求答案,要先自己思考,分析問題產(chǎn)生的原因和可能的解決方法,這樣可以培養(yǎng)自己的獨(dú)立思考能力和解決問題的能力。
(3)善總結(jié)。學(xué)習(xí)過程中,要定期總結(jié)所學(xué)的知識,將零散的知識點(diǎn)整理成體系,加 深對C語言的整體理解。同時,總結(jié)自己在編程中遇到的問題和解決方法,以便在今后 遇到類似問題時能夠快速解決。
(4)多交流。加入編程社區(qū)或者與同學(xué)、老師交流,分享自己的學(xué)習(xí)經(jīng)驗(yàn)和心得,同 時也可以從他人那里學(xué)到新的知識和技巧。
(5)善于使用AI工具。在編程學(xué)習(xí)過程中,善于利用AI工具可以極大地提升學(xué)習(xí) 效率和質(zhì)量。AI工具如智能代碼補(bǔ)全、語法檢查、代碼優(yōu)化建議等,可以幫助我們快速定 位和解決編程中的常見問題。同時,一些AI驅(qū)動的在線編程教育平臺還提供了個性化 的學(xué)習(xí)路徑和資源推薦。
在編寫本書的過程中,注重理論與實(shí)踐相結(jié)合,書中的每個知識點(diǎn)均配有精心設(shè)計(jì)的 示例代碼,以輔助讀者更好地掌握編程技巧。同時,書中還設(shè)置了大量練習(xí)題和實(shí)踐項(xiàng) 目,旨在通過實(shí)際操作鞏固所學(xué)知識,提升解決問題的能力。此外,本書還注重培養(yǎng)讀者 的編程思維和創(chuàng)新能力。通過對經(jīng)典案例的深入分析和拓展,旨在激發(fā)讀者的創(chuàng)造力,使 其能夠獨(dú)立思考并設(shè)計(jì)出高效、優(yōu)雅的程序。 本書各章節(jié)編寫分工如下:煙臺南山學(xué)院金燕老師負(fù)責(zé)第1、2章的編寫,呂莉平老師負(fù)責(zé)第3、4章的編寫,柳丹陽老師負(fù)責(zé)第5、6章的編寫,鄭美珠老師負(fù)責(zé)第7、8章的編寫,楊洪軍老師負(fù)責(zé)第9、10章的編寫,本書的編者共同負(fù)責(zé)第11、12章的編寫。曲阜師范大學(xué)李桂青老師負(fù)責(zé)各章課后習(xí)題的編寫。煙臺南山學(xué)院肖川教授負(fù)責(zé)全書的統(tǒng)稿工作,并主審了全書。南山控股李石師等其他老師也為本書的編寫付出了辛勤的勞動,在此一并表示衷心的感謝。
為便于教學(xué),本書提供了豐富的配套資源,包括教學(xué)大綱、教學(xué)課件、電子教案、程序 源代碼、習(xí)題答案和知識點(diǎn)的微課視頻。鑒于作者水平有限,書中難免存在不足之處,敬 請讀者及各位指教。
編 者
2025年1月
Ⅱ
肖川 教授 校教學(xué)名師
現(xiàn)任煙臺南山學(xué)院科技與數(shù)據(jù)學(xué)院副院長。山東省大數(shù)據(jù)研究會委員、主持的《計(jì)算機(jī)網(wǎng)絡(luò)》《局域網(wǎng)技術(shù)與組網(wǎng)工程》課程獲評山東省混合式一流本科課程。優(yōu)質(zhì)主編《局域網(wǎng)組網(wǎng)技術(shù)》獲評山東省一流本科教材。主持山東省教改項(xiàng)目“新工科”背景下計(jì)算機(jī)專業(yè)課程思政教學(xué)模式的研究與實(shí)踐;省成人數(shù)字化課程、省精品資源共享課計(jì)算機(jī)網(wǎng)絡(luò)負(fù)責(zé)人。發(fā)表SCI、EI等核心論文10篇,獲得發(fā)明專利、實(shí)用新型專利、軟件著作權(quán)8項(xiàng),出版著作、譯注、教材10本;主持參與協(xié)同育人項(xiàng)目4項(xiàng),完成省教育廳十三五規(guī)劃項(xiàng)目2項(xiàng),省軟科學(xué)項(xiàng)目2項(xiàng),指導(dǎo)學(xué)生獲得山東省互聯(lián)網(wǎng)+、創(chuàng)新創(chuàng)業(yè)項(xiàng)目、服務(wù)外包項(xiàng)目、計(jì)算機(jī)系統(tǒng)能力大賽等20余項(xiàng)。
目 錄
第1章 初識C語言———編程探索之旅的嶄新起點(diǎn)…………………… 1
1.1 計(jì)算機(jī)語言 …………………………………………………… 1
1.2 C 語言發(fā)展歷史 ……………………………………………… 4
1.3 C 語言的特點(diǎn) ………………………………………………… 5
1.4 優(yōu)質(zhì)個 C 語言程序 …………………………………………… 6
1.5 C 語言程序開發(fā)步驟 ………………………………………… 12
1.6 C 語言程序的算法 …………………………………………… 14
1.6.1 算法的含義 ………………………………………… 14
1.6.2 算法的特點(diǎn) ………………………………………… 16
1.6.3 算法的描述 ………………………………………… 16
職業(yè)素養(yǎng)小故事 …………………………………………………… 20
第2章 數(shù)據(jù)類型和運(yùn)算符———C語言編程的基石與工具 ………… 22
2.1 標(biāo)識符 ………………………………………………………… 22
2.1.1 C 語言的字符集 …………………………………… 22
2.1.2 關(guān)鍵字 ……………………………………………… 23
2.1.3 標(biāo)識符 ……………………………………………… 24
2.2 數(shù)據(jù)類型 ……………………………………………………… 25
2.3 常量和變量 …………………………………………………… 26
2.3.1 常量 ………………………………………………… 26
2.3.2 變量 ………………………………………………… 28
2.3.3 整型變量 …………………………………………… 29
2.3.4 實(shí)型變量 …………………………………………… 31
2.3.5 字符型變量 ………………………………………… 32
2.3.6 變量初始化 ………………………………………… 34
2.3.7 各類數(shù)值型數(shù)據(jù)之間的混合運(yùn)算 ………………… 35
2.4 運(yùn)算符和表達(dá)式 ……………………………………………… 36
2.4.1 C 語言運(yùn)算符簡介 ………………………………… 36
C語言程序設(shè)計(jì)(微課版)
2.4.2 算術(shù)運(yùn)算符 …………………………………………………………… 36
2.4.3 賦值運(yùn)算符和賦值表達(dá)式 …………………………………………… 38
2.4.4 逗號運(yùn)算符和逗號表達(dá)式 …………………………………………… 40
2.5 宏定義…………………………………………………………………………… 40
2.5.1 不帶參數(shù)的宏定義 …………………………………………………… 41
2.5.2 帶參數(shù)的宏定義 ……………………………………………………… 41
2.6 常見錯誤………………………………………………………………………… 42
職業(yè)素養(yǎng)小故事 ……………………………………………………………………… 44
第3章 數(shù)據(jù)的輸入/輸出———C語言程序的交互橋梁 ……………………………… 45
3.1 C 語言語句的分類……………………………………………………………… 45
3.2 程序的三種基本結(jié)構(gòu)…………………………………………………………… 47
3.3 數(shù)據(jù)輸入/輸出的概念 ………………………………………………………… 48
3.4 字符輸入/輸出函數(shù) …………………………………………………………… 49
3.4.1 字符輸出函數(shù)putchar()函數(shù) ……………………………………… 49
3.4.2 字符輸入函數(shù)getchar()函數(shù)………………………………………… 50
3.5 格式輸入/輸出函數(shù) …………………………………………………………… 51
3.5.1 格式輸出函數(shù)printf() ……………………………………………… 51
3.5.2 格式輸入函數(shù)scanf()………………………………………………… 55
3.6 程序舉例………………………………………………………………………… 58
3.7 常見錯誤………………………………………………………………………… 59
職業(yè)素養(yǎng)小故事 ……………………………………………………………………… 61
第4章 選擇結(jié)構(gòu)———C語言程序的決策核心……………………………………………… 62
4.1 關(guān)系運(yùn)算………………………………………………………………………… 62
4.1.1 關(guān)系運(yùn)算符及優(yōu)先級 ………………………………………………… 62
4.1.2 關(guān)系表達(dá)式