本叢書是基於《CCF青少年計算機程序設計評級標準》開發的一個係列培訓教材。該標準圍繞計算機程序設計的知識要求和能力要求,共分十級,其中1-3級為基礎級,4-5級為提高級,6-7級為高手級,8-10級為大師級。本叢書將評級內容進行歸納,計劃1-3級齣1本、4-5級齣1本,6-7級齣1本,8-10級齣1本,共4本教材。
江 濤:全國先進工作者、中學特級教師、全國信息學奧林匹剋高級指導教師、佛山市南海區十佳教師
宋新波:全國青少年信息學奧賽金牌指導教師、廣東省青少年信息學競賽優秀輔導員、中山市十大傑齣青年,榮獲中山市學科競賽突齣貢獻奬
硃全民:全國師德先進個人、雅禮中學特級教師、國際金牌指導教師、NOI十大傑齣指導教師
第1章?模塊化編程—函數
1.1 自定義函數的引入................................................... 1
1.2 函數的定義............................................................. 3
1.3 函數調用與參數傳遞................................................ 5
1.4 變量的作用域.......................................................... 9
1.5 函數的應用........................................................... 11
1.6 遞歸函數.............................................................. 20
第2章?字符串處理—string類型
2.1 string類型的引入................................................... 33
2.2 string類型的基本操作............................................. 36
2.3 string類型中字母與數字的關係................................ 41
2.4 string類型的應用................................................... 48
本章小結...................................................................... 52
第3章?數據類型的組閤—結構和聯閤
3.1 結構體(struct)的引入............................................. 61
3.2 結構體(struct)的使用............................................. 66
*3.3 結構體(struct)的擴展............................................. 72
*3.4 聯閤(union)的定義和使用........................................ 76
*3.5 枚舉(enum)的定義和使用........................................ 79
本章小結...................................................................... 81
第4章?功能強大的利器—指針
4.1 指針概念、定義與內存分配..................................... 85
4.2 指針的引用與運算.................................................. 87
4.3 指針與數組........................................................... 90
4.4 指針與字符串........................................................ 95
*4.5 函數指針和函數指針數組........................................ 97
4.6 指針的擴展......................................................... 100
本章小結.................................................................... 104
第5章?數據外部存儲—文件
5.1 數據存儲的分類................................................... 109
5.2 文件類型變量的定義及引用................................... 110
5.3 文件的重定嚮...................................................... 116
本章小結.................................................................... 118
第6章?數據結構及其運用
6.1 什麼是數據結構................................................... 125
6.2 綫性錶的儲存結構及其應用................................... 126
6.3 隊列及其應用...................................................... 138
6.4 棧及其運用......................................................... 145
6.5 二分及其快速排序................................................ 151
第7章?簡單算法
7.1 什麼是算法......................................................... 169
7.2 高精度數值處理................................................... 171
7.3 簡單枚舉算法...................................................... 178
7.4 模擬算法............................................................. 184
7.5 簡單動態規劃...................................................... 187
7.6 用遞歸實現迴溯算法............................................. 199
第8章?數學在程序設計中的應用
8.1 常用數學函數...................................................... 207
8.2 質因數的分解...................................................... 209
8.3 最大公約數的歐幾裏德算法................................... 212
8.4 加法原理與乘法原理............................................. 216
8.5 排列與組閤......................................................... 219
8.6 圓排列、可重集排列............................................. 222
第9章?STL(標準模闆庫)簡要說明
9.1 STL中的一些新概念.............................................. 227
9.2 幾個常見的容器介紹............................................. 232
9.3 幾個常見的算法函數............................................. 240
索引 245
序
由中國計算機學會(CCF)組編的“CCF中學生計算機程序設計教材”麵世瞭。
早在1984年,鄧小平就提齣“計算機的普及要從娃娃抓起”。這很有先見之明,但這裏的“計算機普及”是泛指,並未明確普及哪些內容。在過去的三十多年中,中小學廣泛開展瞭計算機普及活動,2000年教育部也曾發文,要在全國中小學開展信息技術教育。但事實上,現有的所謂“普及”大多成瞭對計算機工具的認識,而不是對中小學生智力的開發和思維的訓練,因而效果不佳。CCF早在1984年就創辦瞭“青少年信息學奧林匹剋競賽NOI”,這是麵嚮那些學有餘力的中學生的一項計算機科學(CS)教育活動,但具備開展這項活動的學校並不很多,每年參加NOI聯賽的學生不過七八萬,比例很小,因而普及的麵並不大。
計算機科學教育的核心是算法設計和編程,這要求學生麵對一個給定的現實問題要能夠找到一個正確和高效的辦法(算法)並將其變成計算機能理解的語言(程序設計語言),進而讓計算機計算齣人們需要的結果來。像快遞員最佳路徑算法就是一個典型的現實問題。這個過程並不容易,因為將一個問題抽象並構造一個模型,需要一定的數學基礎,還得理解計算機的特點,“指揮”計算機乾活。這還涉及欲求解問題的“可計算性”,因為並不是任何問題都可以由計算機求解的。計算機也並不知道什麼是“問題”,是人告訴計算機,如何按照一步一步的程序求解。這個過程,就會訓練一個人求解問題的能力,相應地,其具備的讓計算機做事的思維能力稱之為“計算思維”(Computational Thinking)。我們平常操作計算機(包括手機這些終端設備)僅僅像開關電燈那樣簡單,並不會使我們具備計算思維能力,而隻有通過上述步驟纔能訓練這樣的能力。隨著計算機和網絡的發展,未來越來越多的工作將和計算(機)有關(據美國政府的統計是51%以上)。我們必須知道如何讓計算機做事,起碼知道計算機是如何做事的,這就要求普及計算機科學教育(注意:不是計算機教育,也不是信息技術教育)。
美國政府已經把在中小學普及計算機科學當成一種國策(CS for All,每一個人學習計算機科學),並投入40億美元落實這一項目。奧巴馬總統說“在新經濟形態中,計算機科學已不再是可選技能,而是同閱讀、寫作和算術一樣的基礎技能……因此,我製定瞭一項計劃,以確保所有孩子都有機會學習計算機科學。”美國政府已明確把計算機教育列入(從幼兒園到12年級)教育體係K12中。英國從2014年起,對中小學的計算機課程進行重大改革,5歲的兒童就開始學寫程序。英國教育部啓動瞭“計算機在學校”(Computing at School,CAS)項目。新西蘭等國也把計算機編程課當作中學的必修課,並為此投入資金培訓教師。未來的競爭不是資源的競爭,而是人纔的競爭,如果不具有計算素養和技能,則在未來的社會中處於被動地位。
CCF作為一個負責任的學術社會組織,應該勇於承擔起CS普及的任務,這比NOI更加艱巨,更難。不過有NOI三十多年發展的基礎,會對未來CS的普及提供有益的經驗。
普及計算機科學教育的難點在於師資,而培訓師資需要閤適的教材。CCF組織富有程序設計教學經驗的中學老師編寫瞭“CCF中學生計算機程序設計教材”,分為入門篇、基礎篇、提高篇和專業篇,隻要有一定數學基礎的老師,均可從入門篇修起。學習編程並不像人們想象的那麼睏難,隻要從現實中遇到的(簡單)問題齣發,循序漸進,通過和計算機的互動,一旦入門就好辦瞭,以後就可以逐步深入下去。
感謝硃全民、陳穎、徐先友、江濤、邱桂香、宋新波、汪星明、屈運華、廖曉剛等老師的貢獻,他們花瞭兩年時間寫成瞭這套教材。感謝吳文虎教授、王宏博士審閱本書,在此嚮他們錶示感謝。
杜子德
中國計算機學會秘書長
2016 年8 月29 日
坦白說,我最開始拿到《CCF中學生計算機程序設計 基礎篇》的時候,並沒有抱太大的期待,想著可能就是市麵上那種泛泛而談的入門書。但是,翻開之後,我的看法徹底改變瞭。它在“基礎篇”這個定位上做得非常到位,幾乎每一個概念的引入都經過瞭深思熟慮。例如,在講解變量的時候,作者沒有直接給齣定義,而是通過一個“小盒子”的比喻,讓你先理解數據是可以存儲和變化的,然後再逐步引齣“變量”這個術語。這種“先感受,後定義”的方式,比枯燥的理論講解要有效得多。我特彆欣賞書中對算法的初步介紹,雖然是基礎篇,但已經觸及到瞭排序和查找這樣核心的算法思想。而且,它講解的方式非常巧妙,沒有直接展示復雜的僞代碼,而是通過一些小故事或者場景模擬,讓你在不知不覺中就理解瞭算法的邏輯。書中的習題設計也很有針對性,每一章後麵的練習題都緊密結閤瞭該章節的內容,而且難度循序漸進,從最簡單的“填空”到需要獨立思考的小項目,都能幫助我們鞏固所學。做完這些習題,我感覺自己對基礎知識的掌握紮實瞭很多,也體會到瞭編程的樂趣在於解決問題的過程。
評分這本書的排版和內容組織給我留下瞭深刻的印象。打開來,首先映入眼簾的是一個清晰的目錄,列齣瞭所有章節以及主要內容,非常方便查找。我最喜歡的是它在講解某個編程概念時,往往會先給齣一個實際的應用場景,然後引齣需要用到的編程知識。比如,在講到“循環”的時候,它會先描述一個需要重復執行的操作,例如打印齣1到100的數字,然後再告訴我們如何用循環語句來實現。這種“需求驅動”的學習方式,讓我覺得學到的東西都是有用的,能夠解決實際問題,而不是空中樓閣。書中的代碼示例也非常簡潔明瞭,注釋清晰,每一個重要的語句都會有詳細的解釋,不像有些書的示例代碼動輒幾十行,讓人望而生畏。我尤其喜歡它在解釋“函數”這個概念時,用瞭“一個獨立的工具箱”的比喻,讓我們理解到函數就是一段可復用的代碼,可以完成特定的任務。這種形象的比喻,加上實際的代碼演示,讓我對函數的理解一下子清晰瞭很多。總而言之,這本書的“接地氣”和“易理解”的特點,對於初學者來說,絕對是事半功倍的學習利器。
評分不得不說,《CCF中學生計算機程序設計 基礎篇》在內容的前沿性和實用性上做得相當不錯。雖然是基礎篇,但它並沒有迴避一些未來學習中會遇到的重要概念,比如一些簡單的麵嚮對象思想的初步引入,雖然篇幅不多,但已經為我們打下瞭概念基礎。我印象特彆深刻的是,書中有專門一章講解如何利用編程來解決一些生活中的小問題,比如一個簡單的計算器程序,或者一個自動生成生日祝福語的小工具。這些案例都非常貼近我們的生活,讓我們切實感受到編程的實用價值,也激發瞭我們自己動手去嘗試解決問題的動力。而且,書中所用的編程語言版本也是比較新的,使用的語法和函數都是當前主流的,這對於我們將來繼續深入學習非常有幫助,避免瞭學到一些過時的知識。最重要的是,這本書不僅僅是在教我們寫代碼,更是在培養我們的“計算思維”,也就是如何將一個問題分解成更小的、可管理的部分,並用邏輯的方式去解決它。這種思維方式,無論是在編程領域還是其他學科,都是極其寶貴的財富。
評分《CCF中學生計算機程序設計 基礎篇》這本書的文字風格非常親切,沒有那種高高在上的學術腔調,讀起來就像在和一位經驗豐富的老師聊天。作者在講解過程中,常常會穿插一些小貼士或者“溫馨提示”,提醒我們一些容易齣錯的地方,或者分享一些提高編程效率的小技巧。我記得在講到“字符串處理”的時候,書中就列舉瞭好幾種不同的方法來截取和連接字符串,並且詳細分析瞭每種方法的優劣,這對我來說非常有啓發。另外,這本書還有一個我非常欣賞的特點,就是它非常注重邏輯思維的培養。在講解每一個新的概念之前,都會先引導我們思考“為什麼我們需要這個?”,然後再解釋“它是什麼?”,最後纔是“如何用?”。這種層層遞進的提問方式,能夠幫助我們建立起完整的知識體係,而不是零散地記憶一些代碼片段。書中的案例分析也做得非常齣色,它不僅僅是展示代碼,更是分析代碼的思路和背後的邏輯,讓我們學會如何去“讀懂”代碼,而不是簡單地“復製粘貼”。
評分這本《CCF中學生計算機程序設計 基礎篇》的封麵設計簡直讓人眼前一亮,簡潔大氣,藍白相間的配色透露著科技感,又不會過於冰冷,非常符閤它麵嚮中學生的定位。拿到手裏,紙張的觸感也很好,厚實且光滑,印刷清晰,字體大小適中,看起來就讓人有翻閱的衝動。我特彆喜歡書中那種循序漸進的講解方式,不像有些教程上來就拋齣一堆復雜的概念,這本書從最基本的“什麼是程序”、“如何給電腦下達指令”這樣通俗易懂的例子入手,就像一位耐心的老師,一步一步地引導你走進編程的世界。即便你之前對編程毫無概念,也能在閱讀的過程中逐漸建立起邏輯思維能力,理解代碼是如何工作的。書中的插圖和圖錶運用也非常恰當,將抽象的編程概念形象化,讓學習過程不再枯燥乏味。很多地方都會用一些生活化的比喻,比如把循環比作每天重復的刷牙洗臉,把條件判斷比作下雨天是否需要帶傘,這些都大大降低瞭學習的門檻,讓原本可能覺得“高大上”的編程,變得親切起來。對於我這樣纔剛剛開始接觸編程的學生來說,這樣的引導簡直是太及時瞭,它不僅僅是傳授知識,更重要的是培養瞭我對編程的興趣和信心,讓我覺得原來編程並不是那麼遙不可及。
評分很好,發貨速度太及時瞭,正好趕上給孩子用
評分618活動買的,京東大贊,物流也沒有延誤,如期而至。
評分好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好好
評分書沒看到,給弟弟買的,弟弟很喜歡,不是第一次在京東買書瞭,很劃算,以後還會再來,一百多買瞭一堆,真的很值,希望以後這樣的活動多一點哈?
評分ccf給的類似基礎教材
評分孩子參加信息奧賽,急需這本書,京東物流救瞭急,書是正版,印刷很清楚,習慣在這裏買東西瞭,贊一個?
評分不錯的哦 講的很詳細
評分很好的編程入門級彆的書
評分不錯~適閤有一定信奧基礎的人
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有