徐風(fēng) 張丹威
摘要:梳理c程序設(shè)計(jì)語言、數(shù)據(jù)結(jié)構(gòu)的歷史發(fā)展脈絡(luò),揭示c語言在計(jì)算機(jī)科學(xué)中的重要地位,說明學(xué)習(xí)c語言的重要性。幫助學(xué)習(xí)者了解c語言的語法規(guī)則是如何應(yīng)對(duì)編程實(shí)際需要的,這可使語言的學(xué)習(xí)與實(shí)際編程緊密聯(lián)系。另外,根據(jù)教學(xué)實(shí)際,提出了一個(gè)關(guān)于c語言學(xué)習(xí)的考核方案,并提出了c語言終生學(xué)習(xí)的理念。
關(guān)鍵詞:c語言;程序設(shè)計(jì);數(shù)據(jù)結(jié)構(gòu);教學(xué);實(shí)踐;考核
1概述
C程序設(shè)計(jì)語言(The C Programming Language,以下簡(jiǎn)稱“C語言”)是一種通用的編程語言,于1969年至1973年,在貝爾實(shí)驗(yàn)室由丹尼斯·里奇(Dennis Ritchie)設(shè)計(jì)并開發(fā)出來。C語言靈活高效、功能豐富、表現(xiàn)力強(qiáng)、移植性好,在程序設(shè)計(jì)人員中備受青睞,在系統(tǒng)軟件與應(yīng)用軟件的開發(fā)中被廣泛采用,成為近年來使用最為廣泛的編程語言之一。
二十世紀(jì)八十年代,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)為C語言規(guī)定了一套完整的語法規(guī)范,稱為ANSI C,作為C語言的標(biāo)準(zhǔn)(該標(biāo)準(zhǔn)于1990年,被國(guó)際標(biāo)準(zhǔn)化組織(IS0)接受),并不再發(fā)展新的C語言標(biāo)準(zhǔn)。當(dāng)下,有關(guān)C語言程序開發(fā)工具,一般都支持ANSI C,國(guó)內(nèi)的C語言教程也基本都是以ANSI C為藍(lán)本編撰。
2學(xué)習(xí)C語言的重要性
C語言以一種簡(jiǎn)易的方式編譯、處理底層存儲(chǔ)器,只產(chǎn)生少量機(jī)器代碼,同時(shí)不需要任何運(yùn)行環(huán)境支持便能高效運(yùn)行。c語言很適合搭配匯編語言使用。盡管c語言提供許多底層服務(wù),但仍保持自身良好的跨平臺(tái)特性,一個(gè)標(biāo)準(zhǔn)的c程序可在許多計(jì)算機(jī)平臺(tái)上進(jìn)行編譯,即使是一些嵌入式處理器或者超級(jí)計(jì)算機(jī)。
C語言是我國(guó)高等學(xué)校理工科學(xué)生的公共基礎(chǔ)課,是學(xué)習(xí)計(jì)算機(jī)專業(yè)基礎(chǔ)課的先修課程,是全國(guó)計(jì)算機(jī)二級(jí)考試語言類考核科目之一,是國(guó)家軟考(程序員方向)的必考科目。肩負(fù)計(jì)算機(jī)編程語言的推廣與普及,結(jié)構(gòu)化設(shè)計(jì)思想訓(xùn)練與培養(yǎng)的重任!
3C語言教學(xué)中遇到的問題
C語言既有嚴(yán)格規(guī)范的程序編制邏輯,又有具體全面的語法表達(dá)細(xì)節(jié),學(xué)生在最初接觸c語言時(shí),常常充滿好奇、大膽嘗試,但隨著課程的深入,難度的加大,總是暴露出這樣那樣的問題:
當(dāng)表達(dá)式、語句單獨(dú)出現(xiàn)時(shí)尚能理解使用,但當(dāng)語法點(diǎn)多了,程序規(guī)模大了,前面的基礎(chǔ)知識(shí)掌握不牢,后邊的新內(nèi)容又接踵而至,同學(xué)們對(duì)這些缺少基本的心理準(zhǔn)備,常常手足無措,導(dǎo)致知識(shí)銜接失環(huán)。
C語言是一門實(shí)踐性很強(qiáng)的課程,不少同學(xué),遇到即使是最簡(jiǎn)單的編程問題,首先想到的是去找現(xiàn)成的答案、查前人的代碼,而不愿嘗試自己動(dòng)手編制,他們只起到一個(gè)文檔錄入員的作用,基本達(dá)不到編程思維訓(xùn)練的目的。
在對(duì)習(xí)題的處理上,同學(xué)們也往往局限于固定的題目或書本的例題,局限于靠記憶積累的知識(shí)分布,缺乏起碼的能動(dòng)性,題目只要稍有變通,他們就不知道從何人手,找不到解題辦法,思維一直處于線性階段,思路始終難以打開。
隨著課程的推進(jìn),特別是到了函數(shù)和指針部分,邏輯思維門檻提高,抽象概念出現(xiàn)頻繁,致使學(xué)生學(xué)習(xí)的興趣迅速衰退,動(dòng)力急劇減弱,特別是學(xué)習(xí)心態(tài)發(fā)生根本性變化:有些同學(xué)過于浮躁,對(duì)C語言的學(xué)習(xí)流于表面,稍有挫折,立即放棄;有些同學(xué)認(rèn)為C語言已經(jīng)過時(shí),內(nèi)容與社會(huì)脫節(jié),在當(dāng)今ITAT產(chǎn)業(yè)中已經(jīng)派不上用場(chǎng);部分學(xué)生認(rèn)為大學(xué)畢業(yè)后不會(huì)從事軟件開發(fā)及相關(guān)職業(yè),學(xué)的好與不好,對(duì)以后就業(yè)、發(fā)展沒有任何影響
4C語言教學(xué)方法的探討
當(dāng)前,科學(xué)技術(shù)突飛猛進(jìn),新生事物層出不窮,體現(xiàn)在校園里:知識(shí)的傳播手段豐富多彩,教育教學(xué)方式不再限于課堂,MOOC、電教、公開課……俯拾皆是。
在開放式教育撲面而來的今天,如何上好一堂傳統(tǒng)的C語言課,倒更值得基層計(jì)算機(jī)教育者深思。筆者結(jié)合多年的學(xué)習(xí)體會(huì)和實(shí)踐經(jīng)驗(yàn),談?wù)勅绾胃玫剡M(jìn)行C語言教學(xué)—個(gè)人的粗淺認(rèn)識(shí),敬請(qǐng)斧正!
4.1歷史的深度——C語言的發(fā)明
計(jì)算機(jī)科學(xué)與技術(shù)界有些里程碑式的人物、劃時(shí)代的事件必須被刻骨銘記,這里面就有肯·湯普遜(Ken Thompson)、丹尼斯·里奇、Unix的出現(xiàn)、C語言的發(fā)明等。
美國(guó)的貝爾實(shí)驗(yàn)室一直聚集著世界上最有天分的科學(xué)家和最富創(chuàng)造力的工程師。1966年,24歲的肯·湯普遜加入貝爾實(shí)驗(yàn)室,參與了基于GE-645電腦的Multics操作系統(tǒng)項(xiàng)目開--發(fā)。期間,肯·湯普遜編寫了+名為"SpaceTravel”的游戲,運(yùn)行在GE-645上。
后來Muhics項(xiàng)目因?yàn)橥七M(jìn)緩慢而被終止。為了能夠繼續(xù)玩游戲,湯普遜找到一臺(tái)老式PDP-7機(jī)器,重寫了他的"SpaceTravel"游戲。那時(shí)候的PDP-7計(jì)算機(jī)和其他計(jì)算機(jī)一樣,還沒有操作系統(tǒng)。把游戲移植好之后,湯普遜與同事丹尼斯·里奇帶領(lǐng)一些貝爾實(shí)驗(yàn)室的成員在PDP-7上面進(jìn)行開發(fā),寫出了一個(gè)名為“Unix”的操作系統(tǒng),(與“Muhics”名字相對(duì)應(yīng))。Unix最早運(yùn)行在PDP-7上,用匯編語言寫成。為適應(yīng)Unix系統(tǒng)工作環(huán)境,湯普遜創(chuàng)造了B語言,B語言沒有數(shù)據(jù)類型。
1970年,PDP-11出現(xiàn),丹尼斯·里奇與肯·湯普遜著手將Unix移植到PDP-11上,無類型的B語言在PDP-11上很不適應(yīng),丹尼斯·里奇就在B語言的基礎(chǔ)上創(chuàng)造了C語言。
1973年,Unix操作系統(tǒng)的核心正式用C語言改寫。
1975年C語言開始被移植到其他機(jī)器上使用。從最小的微型計(jì)算機(jī)到CRAY-2超級(jí)計(jì)算機(jī)。
1983年,因?yàn)榘l(fā)展了通用操作系統(tǒng)理論并實(shí)現(xiàn)了UNIX操作系統(tǒng),丹尼斯·里奇和肯·湯普遜二人一起獲得了圖靈獎(jiǎng)(計(jì)算機(jī)科學(xué)界的“諾貝爾獎(jiǎng)”)。
道格拉斯·麥克羅伊曾經(jīng)評(píng)價(jià):“你可以安全地把丹尼斯·里奇和肯·湯普遜的名字放到計(jì)算機(jī)科學(xué)界幾乎所有未經(jīng)他人署名的地方!”
4.2現(xiàn)實(shí)的廣度——C語言無處不在
C語言發(fā)明于40多年前,經(jīng)過時(shí)間的檢驗(yàn)與歷練,依舊歷久彌新、光彩照人??梢哉f掌握了c語言,你就掌握了很多門語言,經(jīng)過簡(jiǎn)單的學(xué)習(xí),你就可以用這些新型的語言去寫代碼、搞開發(fā)了,這么說是不是太夸張了?
現(xiàn)在可供學(xué)習(xí)的編程語言非常多,新的語言還在不斷涌現(xiàn),有人自然要問,當(dāng)下,哪種編程語言最受歡迎?我該學(xué)習(xí)那種語言?C語言現(xiàn)在用得多嗎,是不是過時(shí)了?
4.2.1統(tǒng)計(jì)規(guī)律
當(dāng)然,以上問題每個(gè)人的看法可能都會(huì)有所差異,還是用數(shù)據(jù)說話比較客觀:
由圖l可以看出,雖然2016年以來C語言受歡迎程度有所下降,但C語言排名始終處于前兩位。該圖中,2008年C語言的受歡迎程度也曾一度下降,但最終仍迎來反彈,甚至在2013年前后超過iava,躥升到第一位。
因?yàn)楣鬃恐?,所以c語言至今仍備受推崇。一個(gè)最直觀的例證是,上圖最受歡迎的10種語言排行中,除了c語言自身,其他9種語言,有7種都或多或少借鑒了c語言的語法規(guī)范,而Java、C++、C#、PeA則直接衍生自C語言,只有VB和Python不怎么受C的影響。
科學(xué)上有句話,叫“先實(shí)現(xiàn)、后優(yōu)化”,先實(shí)現(xiàn)意味著從無到有,后優(yōu)化意味著進(jìn)一步的完善,c語言明顯屬于前者。到這,大家該知道C語言的魅力了吧!
4.2.2我們被c語言包圍
大家知道的操作系統(tǒng),Microsoft Windows、Unix、Linux、Mac 0Sx都是用C語言寫的,無一例外。比如Linux:
目前大家的生活已經(jīng)離不開智能手機(jī),而手機(jī)上運(yùn)行的Android就是基于LintLx操作系統(tǒng)。低成本、移植性好、定制功能強(qiáng),使得Linux在嵌入式系統(tǒng)領(lǐng)域應(yīng)用廣泛。Linux發(fā)行版一直被用來作為服務(wù)器、主機(jī)和超級(jí)計(jì)算機(jī)的操作系統(tǒng),根據(jù)2010年11月公布的數(shù)據(jù),超級(jí)計(jì)算機(jī)前500強(qiáng),有459個(gè)(91.8%)運(yùn)行Linux。
必須強(qiáng)調(diào)的是:Linux的絕大部分代碼是用C語言寫的,少部分用了匯編語言。
4.3數(shù)據(jù)(結(jié)構(gòu))的高度——C語言是對(duì)數(shù)據(jù)結(jié)構(gòu)的具體表達(dá)
丹尼斯·里奇于1967年加入貝爾實(shí)驗(yàn)室。第二年發(fā)表博士論文《程序結(jié)構(gòu)與計(jì)算復(fù)雜性》(Program Structure and Computational Complexity),(耐人尋味的是里奇最終沒有正式獲得博士學(xué)位)。當(dāng)時(shí),里奇已經(jīng)對(duì)(數(shù)據(jù))結(jié)構(gòu)、計(jì)算(后來稱為算法)等等有了深刻的認(rèn)識(shí),他所發(fā)明的C語言其實(shí)是對(duì)這些認(rèn)識(shí)的具體實(shí)現(xiàn)!
無獨(dú)有偶,瑞士計(jì)算機(jī)科學(xué)家尼克勞斯·維爾特(德語:Niklaus Emil Wirth)于1976年出版過一本書Algorithms+DataStructures=Programs,這本書的書名《算法+數(shù)據(jù)結(jié)構(gòu)=程序》成為后來計(jì)算機(jī)科學(xué)特別是軟件科學(xué)的指導(dǎo)思想。
4.3.1起初,我們把計(jì)算機(jī)定義為研究算法的科學(xué)
早期,一些非常復(fù)雜的公式計(jì)算,是很難通過人腦在短時(shí)間內(nèi)完成的,另外,如果需要人腦重復(fù)去運(yùn)算這些公式,出錯(cuò)的幾率非常高。這時(shí),需要借助一種工具來幫助人們高效、準(zhǔn)確、快速地完成公式計(jì)算,做一些重復(fù)性工作,這就是計(jì)算機(jī)出現(xiàn)的原因。
那個(gè)時(shí)候的計(jì)算機(jī)非常龐大,功能簡(jiǎn)單,速度相對(duì)較低,運(yùn)算能力有限,人們通過編制高效的算法簡(jiǎn)化復(fù)雜的公式運(yùn)算,期望較快的得出結(jié)果,所以,當(dāng)時(shí)人們稱計(jì)算機(jī)是研究算法的科學(xué)。
4.3.2現(xiàn)在,計(jì)算機(jī)是研究數(shù)據(jù)(結(jié)構(gòu))的科學(xué)
隨著科技的進(jìn)步,超大規(guī)模集成電路的出現(xiàn)、Internet的異軍突起,這些迅速推動(dòng)了計(jì)算機(jī)的普及,此時(shí)的計(jì)算機(jī)早已超越了原始的公式計(jì)算,轉(zhuǎn)而用來代替人們從事復(fù)雜單調(diào)的勞動(dòng)以及對(duì)大批量數(shù)據(jù)的處理。
廣義上的數(shù)據(jù)實(shí)際上是非常復(fù)雜的,遠(yuǎn)不止中學(xué)時(shí)學(xué)到的整數(shù)、復(fù)數(shù)、虛數(shù)等?,F(xiàn)在的數(shù)據(jù)實(shí)際上包含了現(xiàn)實(shí)世界中所有能被計(jì)算機(jī)處理的信息,我們要對(duì)這些信息進(jìn)行抽象,分析它們的特性,進(jìn)行高效的存儲(chǔ),還要編制算法對(duì)它進(jìn)行統(tǒng)計(jì)、查詢、輸出等等。
為滿足人機(jī)交互、速度快、可視化等要求,計(jì)算機(jī)必須具有對(duì)大批量數(shù)據(jù)進(jìn)行高效分類處理的能力。所以我們稱現(xiàn)在的計(jì)算機(jī)科學(xué)是研究數(shù)據(jù)(結(jié)構(gòu))的科學(xué)。
4.3:3C語言與數(shù)據(jù)結(jié)構(gòu)(算法)的聯(lián)系
程序就是大家用程序設(shè)計(jì)語言編制出來的語句流程。你編寫一個(gè)程序,首先就要對(duì)數(shù)據(jù)進(jìn)行定義。在C語言中所定義的數(shù)據(jù),包括了整型、浮點(diǎn)型以及字符型等,還包括了一些較為復(fù)雜的數(shù)據(jù)比如:數(shù)組、結(jié)構(gòu)、記錄等,這些,被我們稱為數(shù)據(jù)類型。
在編寫程序之前,我們必須確定要面對(duì)哪些數(shù)據(jù),這些數(shù)據(jù)的類型是什么,這些數(shù)據(jù)之間的關(guān)系是什么,這實(shí)質(zhì)上就是數(shù)據(jù)結(jié)構(gòu)的具體體現(xiàn)。當(dāng)然純粹的數(shù)據(jù)結(jié)構(gòu)比C語言處理的范圍更廣,難度更大,更抽象;另外,很多數(shù)據(jù)結(jié)構(gòu)不是由程序設(shè)計(jì)語言提供給你,而是要由你自己來編寫的。
大家用C語言編寫程序,對(duì)定義的數(shù)據(jù)進(jìn)行相應(yīng)的運(yùn)算,加上順序語句、循環(huán)語句、判斷語句等程序流的控制,這就構(gòu)成了算法。
總之,我們的C語言程序確實(shí)就包括了數(shù)據(jù)結(jié)構(gòu)和算法這兩個(gè)部分。
4.4實(shí)踐的厚度——C語言“干”比“知”重要
從事C語言教學(xué)的朋友都知道,這門課程的核心概念是結(jié)構(gòu)化、三個(gè)基本流程、優(yōu)先級(jí)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、作用域、文件等,這些概念把整個(gè)c語言的邏輯體系貫穿起來,只有明白了這些才能在今后的學(xué)習(xí)中扎實(shí)把握C語言的精髓。
當(dāng)然我們也知道,光靠聽課和看書是學(xué)不好以上概念的,c語言的學(xué)習(xí)既要掌握概念,更要?jiǎng)邮志幊蹋€要親自上機(jī)運(yùn)行調(diào)試,要十分重視實(shí)踐環(huán)節(jié),學(xué)得好與壞,不是看你“知不知道”,而是“會(huì)不會(huì)干”。
4.5考核的寬度——C語言要寬進(jìn)寬出
學(xué)校整個(gè)教學(xué)大綱的安排,C語言的課時(shí)相對(duì)較少,一般64學(xué)時(shí)(包括16學(xué)時(shí)上機(jī)),在這么短的時(shí)間內(nèi)要學(xué)生們掌握c語言,著實(shí)不是一件輕松的事。反映在課程的考核上,就是期末考試不及格率高,接下來的補(bǔ)考通過率低。
鑒于c語言自身的特點(diǎn),這著實(shí)讓任課老師傷透腦筋。撇開學(xué)生如何學(xué)習(xí),老師如何講授不談,這里談?wù)劚救藢?duì)考核體系的一些思考與嘗試(本門課學(xué)生的構(gòu)成不做要求:可以是專業(yè)的、選修的、重修的、留級(jí)的……),即,用2-3-5的原則把整個(gè)考核分為論文、平時(shí)成績(jī)、期末考試三個(gè)部分。
4.5.1論文(20%)
以當(dāng)下計(jì)算機(jī)科學(xué)為主題,寫一篇文章。內(nèi)容不限、形式不限、字?jǐn)?shù)不限,可以是自己的看法、觀點(diǎn)、思想,可以是程序、算法、數(shù)據(jù)抽象,但有一點(diǎn)要強(qiáng)調(diào):就是必須是自己的原創(chuàng)。
4.5.2平時(shí)成績(jī)(30%)
平時(shí)成績(jī)主要用來記載課前測(cè)驗(yàn)、課堂提問、作業(yè)完成、實(shí)習(xí)效果等情況,這也是最考驗(yàn)教師智慧的地方,因?yàn)檫@意味著對(duì)每個(gè)學(xué)生的學(xué)習(xí)情況進(jìn)行“跟蹤”,工作量加大。當(dāng)然,如果這個(gè)環(huán)節(jié)處理好了,那就能把握學(xué)生梯度,因材施教,這個(gè)也是對(duì)學(xué)生們最負(fù)責(zé)任的做法。
4.5.2期末考試(50%)
該課程盡量早結(jié)束,晚考試,空出的時(shí)間,留給同學(xué)們做模擬題。本課程參考駕照考試模式,編選出20套題,其中10套留給學(xué)生模擬,另外10套作為期末試題庫(kù),以考督學(xué),如果有部分同學(xué)在第二個(gè)環(huán)節(jié)(平時(shí)成績(jī))做得不夠好,通過模擬題,可以讓他們及時(shí)發(fā)現(xiàn)問題,找出差距,迎頭趕上。
以上是一種個(gè)性化設(shè)計(jì),體現(xiàn)出老師的人文關(guān)懷,通過以上方法,學(xué)習(xí)效果普遍好轉(zhuǎn),考試通過率明顯提高!
4.6成長(zhǎng)的跨度——C語言需要終生學(xué)習(xí)
第一次接觸C語言,往往是在高校,學(xué)習(xí)的目的是學(xué)分。當(dāng)然,學(xué)了以后,有部分朋友會(huì)喜歡上它,特別是等你踏上工作崗位,接觸了其他語言,這時(shí)你再回頭來看C語言,你會(huì)被它的美所征服,c語言是天才的作品,是丹尼斯·里奇留給計(jì)算機(jī)界的寶貴遺產(chǎn),短時(shí)間內(nèi)掌握不了它是很正常的,本人每讀一遍教材,就會(huì)有一次新的體會(huì)。所以,個(gè)人認(rèn)為C語言需要用一輩子來學(xué)習(xí)。
4.6.1對(duì)效率的追求
在計(jì)算機(jī)相當(dāng)昂貴,速度相對(duì)較慢,內(nèi)存以KB計(jì)算的年代,人們對(duì)程序效率的要求是苛刻的。c語言精心設(shè)計(jì)的代碼可以極大地節(jié)約計(jì)算機(jī)資源,同時(shí)又比匯編語言容易理解,所以受到程序員的普遍歡迎。
C語言留給編程人員最大的自由度,讓他們不受約束地張揚(yáng)個(gè)性、發(fā)揮創(chuàng)意,基本不用去質(zhì)疑代碼的危害性,因?yàn)閏相信程序員是正確的,即便有錯(cuò)誤,也一定能夠自我修復(fù)。當(dāng)然,無限制的自由,一面釋放出創(chuàng)造欲,另一面則制造出混亂。
4.6.2誰制造了災(zāi)難
隨著硬件性能的提升、軟件規(guī)模的擴(kuò)大,程序的運(yùn)行效率讓位于安全性、穩(wěn)定性、維護(hù)性,這時(shí)編程人員數(shù)量劇增,編程水平降低,出錯(cuò)概率加大,程序關(guān)聯(lián)陛加強(qiáng),一個(gè)不起眼的錯(cuò)誤就可能引發(fā)系統(tǒng)性災(zāi)難。很多人把這種災(zāi)難產(chǎn)生的原因歸咎于c語言,開始懷疑它、畏懼它、逃避它,卻很少反省自己糟糕的編程能力。
4.6.3倔強(qiáng)的c語言
有人提出給C語言戴上枷鎖,C語言拒絕了。于是很多語言罩上c的外衣,自己戴上枷鎖出現(xiàn)了。它們看上去很像c,所以容易被大家接受;因?yàn)樗鼈兇魃霞湘i,所以不再聽命于程序員,而是朝程序員發(fā)號(hào)施令,如果程序員拒絕,它們干脆就躺倒不干。這樣災(zāi)難事件減少了,開發(fā)步伐加快了,團(tuán)隊(duì)合作容易了,代碼錯(cuò)誤減少了,編程能力降低了……
有那么些程序員,他們堅(jiān)持信念、喜歡挑戰(zhàn),他們顛覆傳統(tǒng),打碎枷鎖,他們向往黑客的自由生活,渴望C語言激發(fā)出自己的內(nèi)在潛力。為了達(dá)到這種高度,你愿不愿意用一輩子來完成?
5結(jié)束語
2006年3月,卡內(nèi)基·梅隆大學(xué)計(jì)算機(jī)科學(xué)系主任周以真(Jeannette M.Wing)教授在《計(jì)算思維》一文中指出:
計(jì)算機(jī)科學(xué)的教授們應(yīng)當(dāng)為大學(xué)新生開一門“怎么像計(jì)算機(jī)科學(xué)家一樣思維”的課程,面向所有專業(yè),而不僅僅是計(jì)算機(jī)科學(xué)專業(yè)。我們應(yīng)當(dāng)使入學(xué)前的大學(xué)生接觸計(jì)算的方法和模型。激發(fā)公眾對(duì)于計(jì)算機(jī)科學(xué)領(lǐng)域探索之興趣,而不是悲嘆對(duì)其興趣的衰落或者哀泣其研究經(jīng)費(fèi)的下降。所以,我們應(yīng)當(dāng)傳播計(jì)算機(jī)科學(xué)的快樂、崇高和力量,致力于使計(jì)算思維成為常識(shí)……
——誰能擔(dān)綱此任,唯C程序語言!