大數(shù)據(jù)、人工智能推動數(shù)字經(jīng)濟(jì)的大發(fā)展,應(yīng)用型高校以培養(yǎng)計(jì)算思維 專業(yè)應(yīng)用的新工科人才為己任。計(jì)算思維能力體現(xiàn)在數(shù)據(jù)的符號化表達(dá)與流程自動化處理兩個(gè)方面。大學(xué)計(jì)算機(jī)培養(yǎng)學(xué)生符號化數(shù)據(jù)表達(dá)能力,程序設(shè)計(jì)課程培養(yǎng)學(xué)生的自動化處理能力。
C 語言由于其卓越的優(yōu)點(diǎn),在國內(nèi)外得到了廣泛的應(yīng)用,幾乎所有的理工科大學(xué)都開設(shè)了C 語言程序設(shè)計(jì)這門公共基礎(chǔ)課,通過學(xué)習(xí)這門課程使學(xué)生掌握程序設(shè)計(jì)的基本方法并逐步形成正確的程序設(shè)計(jì)思想,能夠使用 C 語言進(jìn)行程序設(shè)計(jì)并具備調(diào)試程序的能力,為后繼課程及其他程序設(shè)計(jì)課程的學(xué)習(xí)和應(yīng)用打下基礎(chǔ)。
在多年非計(jì)算機(jī)專業(yè)的計(jì)算機(jī)系列課程教學(xué)工作中,我們深切地感到多數(shù)學(xué)生總停留在學(xué)會 C 語言的基本語法、理論,編寫簡單的 C 語言程序,通過書面考試的水平上;并且,雖然目前介紹 C 語言的教材很多,但大多是圍繞編程語言本身的體系展開,以講解語言知識為主,特別是語法知識,輔以一些編程技巧的介紹,不利于培養(yǎng)學(xué)生的計(jì)算思維能力與工程應(yīng)用能力。
上海工程技術(shù)大學(xué)作為首批卓越工程師教育培養(yǎng)計(jì)劃試點(diǎn)的本科專業(yè)單位及新工科建設(shè)地方高校的牽頭單位之一,要求培養(yǎng)具備大學(xué)本科基礎(chǔ)知識,并有一定的實(shí)踐能力與應(yīng)用能力的高級技術(shù)人才,強(qiáng)化工程能力和創(chuàng)新能力。卓越工程師計(jì)劃旨在培養(yǎng)掌握實(shí)際操作技能、能為企業(yè)創(chuàng)造更多實(shí)際價(jià)值的人才。因此,C 語言程序設(shè)計(jì)課程的教學(xué)重點(diǎn)應(yīng)該是培養(yǎng)學(xué)生的實(shí)際編程能力,提高計(jì)算思維 專業(yè)應(yīng)用的能力。教材也要以程序設(shè)計(jì)為中心來組織內(nèi)容,學(xué)生必須通過大量的編程訓(xùn)練,在實(shí)踐中掌握語言知識,培養(yǎng)程序設(shè)計(jì)的基本能力,并逐步理解和掌握程序設(shè)計(jì)的思想和方法,提高學(xué)生的計(jì)算思維能力與信息素養(yǎng)。
在多年非計(jì)算機(jī)專業(yè)的 C 語言程序設(shè)計(jì)課程教學(xué)工作中,我們深切地感到這門課要不斷改革,讓學(xué)生愛聽、愛學(xué),還要充分體現(xiàn)這門課程的重要性和實(shí)用性,讓學(xué)生能夠?qū)W有所用、學(xué)以致用,體會計(jì)算思維的方法論與理念,促進(jìn)自己的專業(yè)學(xué)習(xí),促進(jìn)新工科建設(shè);诖,我們編寫了這本《C 語言程序設(shè)計(jì)》。本書以程序設(shè)計(jì)思想的掌握為主線,以編程應(yīng)用為驅(qū)動,通過案例和問題引入內(nèi)容,由淺入深,重點(diǎn)訓(xùn)練學(xué)生的編程思想,提高學(xué)生應(yīng)用 C 語言的能力,達(dá)到提升計(jì)算思維能力的目的。
本書與同類教材相比,具有以下特點(diǎn):
(1)是一本適合卓越工程師計(jì)劃、新工科建設(shè)的 C 語言程序設(shè)計(jì)教材
一般 C 語言程序設(shè)計(jì)課程課時(shí)為 64 學(xué)時(shí)或者更多,但現(xiàn)在教學(xué)改革,課時(shí)基本在減少,48學(xué)時(shí)的計(jì)劃安排也比較多。本書為重應(yīng)用、少學(xué)時(shí)的靈活教材,需要分清重點(diǎn)、難點(diǎn)。我們將順序、選擇、循環(huán)三種結(jié)構(gòu),一維數(shù)組、函數(shù)、指針作為重點(diǎn)內(nèi)容;簡單介紹用戶自定義類型、宏定義、文件和語法;并且強(qiáng)調(diào)實(shí)踐編程能力,重應(yīng)用、輕語法。學(xué)生可參考其他參考書,或者利用本書配
套 MOOC 資源。
(2)以實(shí)用技能為核心
工程應(yīng)用型大學(xué)重點(diǎn)要培養(yǎng)學(xué)生的實(shí)際工程技能和創(chuàng)新能力。因此,本書不是一本介紹語法的書,而是幫助學(xué)生通過大量實(shí)例了解怎么設(shè)計(jì)和運(yùn)用算法,怎樣用語言工具和編程環(huán)境去實(shí)現(xiàn)編程,從而處理實(shí)際問題。在教材編寫上,我們不求語法面面俱到,而是結(jié)合工程需求,以實(shí)用技能為核心,重點(diǎn)講解在實(shí)際編程中經(jīng)常使用的一些核心技術(shù),對于其他語法內(nèi)容則少講或不講,需要的可以參考附錄或者其他參考書。
與傳統(tǒng)的教材編排方式不同,在基本遵循 C 語言教學(xué)體系的情況下,本書將所有教學(xué)內(nèi)容用例題組織。即根據(jù)要介紹的內(nèi)容精心編寫相應(yīng)的例題,將大量正確、規(guī)范的程序介紹給學(xué)生,在講解例題的過程中,使學(xué)生學(xué)習(xí)語法、了解概念、掌握算法。
(3)以動手能力為突破點(diǎn)
按傳統(tǒng)教材的教學(xué)方式,很多學(xué)生 C 語言語法學(xué)得很好,但卻不會編程。在書的結(jié)構(gòu)設(shè)計(jì)上,強(qiáng)調(diào)實(shí)踐和動手能力,使學(xué)生從第 1 堂課起就練習(xí)編程,并貫穿始終:從模仿程序到改寫程序,后自己編寫程序。在教材編寫和教學(xué)過程中,都要求學(xué)生動手、動手、再動手,要讓學(xué)生敢于編碼、樂于編碼、大量編碼,不要把學(xué)習(xí)重點(diǎn)放在語法規(guī)則上,而是要提高動手能力,提高實(shí)際編程經(jīng)驗(yàn)。
(4)多形式、分層次的練習(xí)題目
為了鼓勵學(xué)生多思考、多練習(xí)、多動手,提高學(xué)生的學(xué)習(xí)效果,本書各章都配有大量的例題解析和多形式、分層次的習(xí)題。為了滿足不同層次學(xué)生的學(xué)習(xí)需要,編程題也層次多樣:有些題目難度較低,學(xué)生根據(jù)本章節(jié)講解的知識點(diǎn)就可以輕松完成;有些題目難度加大,要求學(xué)生認(rèn)真思考、調(diào)試才能完成;還有些題目難度更大,一般為綜合運(yùn)用題,要求學(xué)生綜合所學(xué)的知識,從多個(gè)知識點(diǎn)和角度考慮,是對于學(xué)有余力的學(xué)生提出的思考題,能夠充分提高學(xué)生的編程能力,鍛煉學(xué)生的工程能力和創(chuàng)新能力,鼓勵學(xué)生利用 C 語言知識解決專業(yè)的具體問題。
全書共 11 章。第 1 章 C 語言概述:介紹 C 語言的特點(diǎn)和實(shí)現(xiàn)過程;第 2 章用 C 語言編寫簡單程序:從實(shí)例出發(fā),簡單介紹順序、選擇和循環(huán) 3 種控制結(jié)構(gòu)的初步使用,以及在實(shí)例程序中用到的語言知識;第 3 章選擇結(jié)構(gòu)程序設(shè)計(jì):講解選擇結(jié)構(gòu)程序設(shè)計(jì)的思路和方法;第 4 章循環(huán)結(jié)構(gòu)程序設(shè)計(jì):講解循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的思路和方法;第 5 章數(shù)據(jù)類型和表達(dá)式:介紹數(shù)據(jù)類型等一些語法知識;在初步學(xué)習(xí)了三種結(jié)構(gòu)程序設(shè)計(jì)后的流程與算法設(shè)計(jì);第 6 章數(shù)組:講解數(shù)組的用法;第 7 章函數(shù):講解函數(shù)定義與調(diào)用;第 8 章指針及其應(yīng)用:講解指針的用法;第 9 章結(jié)構(gòu)體、共用體和枚舉類型:講解自定義的數(shù)據(jù)類型及其用法;第 10 章宏定義與文件包含:講解宏定義、文件包含與條件編譯的用法;第 11 章文件:講解文件的操作。
本書由陳強(qiáng)、黃容、趙毅任主編并負(fù)責(zé)統(tǒng)稿。教研室多位同事對本書的初稿進(jìn)行了審閱,并提出了許多寶貴的修改意見。此外,本書的編寫還得到了各級領(lǐng)導(dǎo)的關(guān)心和支持,在此一并表示感謝!
由于編者水平有限,書中難免有不妥之處,我們衷心希望得到廣大讀者的批評指正。
編 者
2021年5月