CCF中學生計算機程序設計-入門篇 信息學奧賽官方指定用書

CCF中學生計算機程序設計-入門篇 信息學奧賽官方指定用書 pdf epub mobi txt 電子書 下載 2025

中國計算機學會 著
圖書標籤:
  • CCF
  • 信息學奧賽
  • 入門
  • 編程
  • 計算機
  • 青少年
  • 算法
  • C++
  • 學習
  • 教材
想要找書就要到 靜思書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
店鋪: 科學齣版社旗艦店
齣版社: 科學齣版社
ISBN:9787030500212
商品編碼:10900036080
包裝:平裝
開本:16
齣版時間:2016-10-08
頁數:272
字數:336

具體描述



本店POD版圖書均在書名下有明顯紅字標注,POD圖書屬於按需定製,您下單購買後我們纔開始印刷,故不可取消訂單。 我們一般會在您下單後的7-10個工作日內完成發貨,請謹慎下單!商品無質量問題不支持退貨,定價和裝幀可能會與原書不同,請以實物為準!詳情請谘詢客服 購買電子版圖書請與客服直接聯係,或者到科學齣版社電子商務平颱直接購買
CCF中學生計算機程序設計-入門篇
定價 38.00
齣版社 科學齣版社
版次 1
齣版時間 2016年10月
開本 16
作者 中國計算機學會
裝幀 平裝
頁數 272
字數 336
ISBN編碼 9787030500212


內容介紹
本叢書是基於《CCF青少年計算機程序設計評級標準》開發的一個係列培訓教材。該標準圍繞計算機程序設計的知識要求和能力要求,共分十級,其中1-3級為基礎級,4-5級為提高級,6-7級為高手級,8-10級為大師級。本叢書將評級內容進行歸納,計劃1-3級齣1本、4-5級齣1本,6-7級齣1本,8-10級齣1本,共4本教材。

目錄
目錄
第1章編程如此簡單
1.1程序設計概念1
1.2整數算術運算4
1.3實數算術運算8
附錄ADev-C++集成開發環境11
第2章數據的存儲和讀入
2.1變量和變量的類型17
2.2賦值語句和數學錶達式21
*2.3數據類型轉換32
2.4變量的讀入38
*2.5C語言中的scanf語句和printf語句43
2.6順序結構程序設計實例51
附錄B基本數據類型56
附錄C常用數學函數57
第3章程序的選擇執行
3.1if語句和關係錶達式59
3.2邏輯錶達式和條件錶達式68
3.3嵌套if語句75
3.4switch語句83
*3.5分支結構程序設計實例92
第4章程序段的反復執行
4.1for語句105
4.2while語句119
4.3do-while語句131
4.4多重循環142
*4.5在循環結構中應用位運算156
*4.6循環結構程序設計實例167
附錄Dbreak語句和continue語句178
第5章數據的批量存儲
5.1一維數組183
5.2活用數組下標192
5.3數值排序和查找204
5.4字符數組220
5.5二維數組233
*5.6數組的綜閤應用實例245
參考文獻261
索引263

在綫試讀
第1章編程如此簡單
為什麼計算機能管理龐大的係統?為什麼人能指揮計算機按自己的想法做事?計算機能超*人的思維嗎?麵對計算機,很多人都會帶著或多或少的疑問。其實,計算機是通過執行一個個程序來實現各種神奇的功能。人們要指揮計算機做事,需要編寫程序,把自己的思想融入程序中,再利用這些程序按照自己的思路去指揮計算機工作。
1.1程序設計概念
【例1.1】用記事本編寫一個程序,讓計算機告訴大傢我愛編程,即“Iloveprogramming.”
程序如下:
1//exam1.1
2#include
3usingnamespacestd;
4intmain()
5{
6cout<<"Iloveprogramming."<7return0;
8}
編寫完這個程序後,大傢還會有些疑問,程序為什麼要這樣寫?編程到底要遵循什麼樣的規則?這個程序編寫後怎樣讓計算機去執行呢?為瞭迴答這些問題,我們必須先弄清一些概念。
1.1.1編程概念
1.程序和計算機語言
程序就是為實現特定目標或解決特定問題而用計算機語言編寫的一係列指令序列。
計算機語言是人與計算機之間通信的語言。計算機語言有很多種,比如BASIC語言、PASCAL語言、C語言、C++語言、Java語言等,每種程序語言都有自身所定義的規則,即使是同一個語言也有不同的版本,內部規則也會有少許不同,比如C++語言就有VisualC++、Dev-C++等。
編程可以簡單理解為程序員為解決特定問題,按照自己的思路,在遵循特定的計算機語言規則下編寫程序的過程。因此,要學好編程,首先選擇一種計算機語言,然後按照該程序語言規則編寫程序。本書以C++語言規則為例來學習編程。
2.編輯和編譯
在某種計算機語言環境下編寫程序的過程,叫程序的編輯。程序編輯好後,計算機是不是就可以立即運行呢?其實不然。這個程序在沒有被計算機識彆之前,僅僅隻是一些符號所組成的文本。就像我們讀的書籍一樣,如果不經過大腦去領會書籍內容所包含的含義,文字永遠隻能是文字,課本也隻能是課本,但經過我們的大腦學習和領會瞭書籍文字中所包含的內涵和思想,那麼看起來死闆的文字就成為大腦所學到的知識。程序也一樣,也需要計算機去學習和領會程序所包含的含義,這個學習和領悟的過程當然不完全類似人腦對知識的學習,而僅僅是按照計算機語言所對應的規則,對所編寫的程序進行解析的過程,這個過程叫翻譯。翻譯分為兩種方式,一種叫解釋,是計算機對程序的指令翻譯一句執行一句的行為,BASIC語言和Java語言都屬於解釋語言;另一種叫編譯,是計算機對程序的全部指令一次性全部翻譯後,再讓計算機執行的行為,PASCAL語言和C++語言都屬於編譯型語言。
高級語言程序要通過編譯器纔能運行得到結果,不同的計算機語言使用的編譯器不同,如不能用C++編譯器編輯運行BASIC語言編寫的程序,同時,編譯後的程序,在不同操作係統環境下進行的解析也會略有區彆。
3.集成開發環境
知道瞭編輯和編譯後,自然就需要一個用來編輯程序的軟件和一個對程序進行編譯的軟件。編輯的軟件有很多,所有的文本編輯器都可以,比如記事本。編譯的軟件隻能是特指,比如C語言用的是GCC編譯器,C++語言用的是G++編譯器等。
一個程序編輯後,需要經過編譯,方可執行。可萬一編寫程序時齣錯瞭,或者程序思路有問題,那麼就要反復對程序進行編輯和編譯,顯得非常麻煩。為瞭方便程序的編輯和編譯,軟件公司開發瞭程序語言的集成環境,也就是將編輯和編譯調試集成在一塊,形成瞭集成開發環境(IntegratedDevelopmentEnvironment,IDE)。IDE對人們學習編程提供瞭極大的方便。
為瞭學習方便,本章將在附錄A中簡單介紹DEVC++的IDE使用方法。當然大傢選擇C++語言的其他IDE也可,使用方法也與Dev-C++的IDE類似。
1.1.2程序結構
為瞭弄清C++的編程規則,首先我們看C++程序的基本結構,如圖1.1所示。
圖1.1C++語言基本結構
由圖1.1可以看齣,C++程序由頭文件、名字空間和主函數組成。
1.頭文件
頭文件是C++程序對其他程序的引用。頭文件作為一種包含功能函數、數據接口聲明的載體文件,用於保存程序的聲明。include的英文含義是“包括”。格式為:#include<引用文件名>或#include“引用文件名”。
2.名字空間
指明程序采用的名字空間。采用名字空間是為瞭在C++新標準中,解決多人同時編寫大型程序時名字産生衝突問題。比如A、B兩個班都有叫張三的人,你要使用A班的張三,必然要先指明是A班這個名字空間(namespace),然後你對張三的所有命令纔能達到你的預想,不會叫錯人。“usingnamespacestd”錶示這個程序采用的全部都是std(標準)名字空間,std是英文單詞standard(標準)縮寫。若不加這句,則該程序中cout和endl都需指明其名字空間的齣處。cout語句必須寫成std::cout<<"Iloveprogramming."<3.主函數
日常生活中,我們要完成一件具有復雜功能的事,總是習慣把“大功能”分解為多個“小功能”來實現。在C++程序的世界裏,“功能”可稱為“函數”,因此“函數”其實就是一段實現瞭某種功能的代碼,並且可以供其他代碼調用。
一個程序,無論復雜或簡單,總體上都是一個“函數”,這個函數稱為“main函數”,也就是“主函數”。比如有個“做菜”程序,那麼“做菜”這個過程就是“主函數”。在主函數中,根據情況,你可能還需要調用“買菜、切菜、炒菜”等子函數。main函數在程序中大多數是必須存在的,程序運行時都是找main函數來執行。
每個函數內的所有指令都需用花括號“{}”括起來。一般每個函數都需要有一個返迴值,用return語句返迴。
練習
(1)閱讀附錄A中的Dev-C++集成開發環境,嘗試運行圖1.1的程序。
(2)熟悉C++程序的基本結構,嘗試改變程序,輸齣你想說的句子。
1.2整數算術運算
【例1.2】把20張畫平均分給7個同學,每人分得幾張,還剩幾張?
分析:每個人分得的張數是20除以7的商,剩餘的張數是20除以7的餘數。
程序如下:
1//exam1.2
2#include
3usingnamespacestd;
4intmain()
5{
6cout<<20/7<7cout<<20%7<8return0;
9}
5
運行結果:
對於這個解決問題的程序,大傢的疑問會是什麼呢?cout語句能做什麼事?如何錶達兩個整數相除的商和餘數?為瞭迴答這些問題,我們需要學習cout語句的格式和使用,學習算術錶達式的計算機錶示方式。
1.2.1cout語句
cout是C++的輸齣語句,C++的輸齣和輸入是用“流”(stream)的方式實現的。
圖1.2C++的輸齣流
在定義流對象時,係統會在內存中開闢一段緩衝區,用來暫存輸入輸齣流的數據。在執行cout語句時,先把數據存放在輸齣緩衝區中,直到輸齣緩衝區滿或遇到cout語句中的endl或' '為止,此時將緩衝區中已有的數據一起輸齣,並清空緩衝區。輸齣流中的數據在係統默認的設備(一般為顯示器)輸齣。輸齣遇到endl或' '換行。cout語句的一般格式為:cout<<項目1<<項目2<<…<<項目n;
功能:
(1)如果項目是錶達式,則輸齣錶達式的值。
(2)如果項目加引號,則輸齣引號內的內容。
1.2.2算術運算符
在例1.2中運用cout語句輸齣算術錶達式的值,C++語言為算術運算提供瞭5種基本算術運算符號:加(+)、減(-)、乘(×)、除(/)還有模(%)。如錶1.1所示。
錶1.1基本算術運算符
上述運算符的優先級與數學中相同,*、/、%高於+、-。
錶1.1中特彆值得注意的是“/”號和“%”,對於“/”號,當參與運算的數含有實數,運算結果是兩數相除的值,當參與運算的兩個數都是整數,運算結果是兩數相除的商,如:例1.2程序中第6行求20/7的商為2;對於“%”是求兩個整數相除的餘數,如:例1.2程序中第7行求20%7的餘數為6。
【例1.3】閱讀下列程序和運行結果,學習錶達式的書寫格式,瞭解程序中錶達式運算先後順序和數學習慣的數學錶達式運算先後順序的關係。
1//exam1.3
2#include
3usingnamespacestd;
4intmain()
5{
6cout<<9/8<<4*(6+3)%5<<(4*6+3)%5<7return0;
8}
運行結果:
說明:由於9和8是整數,因此,9/8結果為1;對於式子4*(6+3)%5,先計算4*(6+3)的值為36然後%5,結果為1;對於式子(4*6+3)%5,先計算(4*6+3)的值為27然後%5,結果為2。錶達式的運算先後順序與數學習慣相同。
【例1.4】在例1.3中3個錶達式的運行結果緊挨在一起,希望改變輸齣方式,要求:(1)每個錶達式值隔開一個空格;(2)在結果前提示錶達式。
《算法的奇妙世界:從零開始的計算思維之旅》 這本書將引領你踏上一段激動人心的計算思維探索之旅,即使你從未接觸過編程,也能輕鬆入門。我們相信,算法和編程不僅僅是枯燥的代碼,更是解決問題、創造可能性的強大工具。在這裏,你將學會如何用一種全新的方式思考,如何將現實世界的問題拆解成可執行的步驟,並最終用計算機語言將這些步驟付諸實踐。 第一部分:思維的基石——認識計算思維 在開始編寫任何代碼之前,我們需要搭建起堅實的思維框架。本部分將從最基礎的概念入手,讓你理解“計算思維”究竟是什麼。 什麼是問題解決? 我們將從日常生活中的例子齣發,例如“如何煮一碗麵條?”、“如何規劃一次旅行?”來引齣“問題”的定義,以及解決問題所需要的基本要素:理解問題、設計方案、執行方案、驗證結果。 算法的魅力: 你將瞭解到,無論多麼復雜的問題,都可以被分解成一係列清晰、有序的指令。我們將用生動有趣的類比,例如“製作一張地圖”、“教機器人跳舞”來解釋算法的概念,讓你體會到算法的邏輯之美和簡潔高效。 程序的語言: 計算機是怎樣理解我們的指令的?我們將簡要介紹編程語言的作用,以及為何需要學習一門語言來與計算機溝通。這部分不會涉及具體的語法,而是建立一個宏觀的認識。 數據:信息的載體: 程序處理的都是數據。我們將探討數據的基本類型,比如數字、文字、布爾值(真/假),並通過形象的比喻,例如“積木”、“盒子”來幫助你理解數據是如何被組織和存儲的。 邏輯的力量: 程序執行的關鍵在於邏輯判斷。你將學習到“如果……那麼……”、“當……時……”等基本的邏輯結構,理解它們在程序中的作用,並嘗試用這些邏輯來描述生活中的場景。 第二部分:探索編程的樂趣——從簡單到進階 在打下堅實的思維基礎後,我們將正式進入編程的世界。本書將選擇一種廣受歡迎且易於上手的編程語言(此處省略具體語言名稱,以保持通用性)作為學習工具,帶領你從最簡單的指令開始,逐步構建更復雜的程序。 你的第一個程序: 從“Hello, World!”開始,體驗編寫和運行程序的樂趣。我們將一步步指導你完成代碼的輸入、編譯和運行,讓你親手看到自己編寫的指令轉化為屏幕上的輸齣。 變量:變化的容器: 學習如何使用變量來存儲和管理數據。你將理解變量的聲明、賦值和使用,並通過實際的例子,例如“計算生日”、“記錄分數”來掌握變量的應用。 運算符:數據的運算: 掌握基本的算術運算符(加、減、乘、除)、比較運算符(大於、小於、等於)和邏輯運算符(與、或、非),學會如何對數據進行各種運算和比較。 控製流程:程序的指揮棒: 順序結構: 理解程序代碼是如何按照從上到下依次執行的。 分支結構(if-else): 學習如何根據不同的條件來決定程序的執行路徑。例如,根據用戶輸入的成績,判斷是“及格”還是“不及格”。 循環結構(while, for): 掌握如何讓程序重復執行某些操作。我們將通過“數數”、“重復打印”、“查找特定元素”等例子,讓你體會到循環的強大威力。 數據結構:有序的組織: 列錶(數組): 學習如何將一組相關的數據組織成一個有序的集閤,並進行訪問和修改。例如,存儲一串同學的名字,或者一個班級的考試分數。 字典(映射): 瞭解如何使用鍵值對來存儲和查找數據,實現更靈活的數據管理。例如,根據姓名查找對應的電話號碼。 函數:代碼的積木: 學習如何將一段可重用的代碼封裝成函數。你將理解函數的定義、參數傳遞和返迴值,並學會如何通過調用函數來組織和簡化程序,提高代碼的可讀性和可維護性。 輸入與輸齣:人機交互: 學習如何從用戶那裏獲取輸入,以及如何將程序的結果展示給用戶,實現簡單的交互式程序。 第三部分:走嚮應用——算法在實踐中的力量 當掌握瞭基本的編程技能後,我們將把目光投嚮更廣闊的應用領域,讓你看到算法和編程是如何解決實際問題的。 搜索與查找: 學習如何高效地在大量數據中找到所需的信息。我們將介紹綫性的查找方法,並初步引入更高效的二分查找思想,讓你體會到算法效率的重要性。 排序的藝術: 學習如何將一組無序的數據按照特定的順序排列。我們將介紹冒泡排序、選擇排序等基礎的排序算法,讓你理解排序過程中的邏輯和步驟。 簡單的遊戲開發: 通過編寫一些簡單的遊戲,例如“猜數字遊戲”、“石頭剪刀布”,來鞏固你所學的知識,並體驗編程帶來的創造樂趣。 數據分析初探: 學習如何用程序處理和分析數據。例如,計算一組數據的平均值、最大值、最小值,或者進行簡單的頻率統計。 問題分解與抽象: 學習如何將一個復雜的問題分解成若乾個更小的、可管理子問題的思路,並運用編程來實現。 本書的特色: 循序漸進,零門檻入門: 每一章都建立在前一章的基礎上,確保你能夠逐步掌握知識,不會感到 overwhelmed。 豐富的實例與練習: 大量的代碼示例和動手練習,讓你在實踐中鞏固所學,培養解決問題的能力。 生動形象的講解: 運用貼近生活、寓教於樂的比喻和故事,讓抽象的概念變得易於理解。 強調計算思維: 不僅僅是傳授編程技巧,更注重培養你獨立思考、邏輯推理和解決問題的能力。 麵嚮未來的學習: 為你打下堅實的基礎,為未來深入學習更復雜的算法和編程技術做好準備。 誰適閤閱讀這本書? 對計算機和編程充滿好奇的中學生。 希望培養邏輯思維和解決問題能力的初學者。 任何想要瞭解程序是如何工作的,並希望自己動手創造的人。 閱讀本書,你將收獲: 掌握基礎的編程語法和核心概念。 培養嚴謹的邏輯思維和分析能力。 提升解決實際問題的能力。 體驗創造的樂趣,點燃對計算機科學的熱情。 加入我們,一起開啓這場充滿驚喜的計算思維之旅吧!在這個過程中,你不僅會學到編程的技巧,更會發現一個嶄新的、充滿無限可能的世界。

用戶評價

評分

這本書給我最大的感受是,它不僅僅是在教你“怎麼做”,更是在教你“為什麼這麼做”。在講到“圖論”的某些基本概念時,它並沒有直接給齣各種圖的定義和性質,而是通過一個“社交網絡”的比喻,讓你理解節點和邊的含義,以及網絡中信息的傳播方式。然後,它再慢慢地引申到現實世界中的各種應用,比如地圖導航、交通綫路規劃等等。這種將抽象的計算機概念與我們熟悉的生活場景緊密結閤的方式,讓我在閱讀過程中一點都不覺得枯燥,反而充滿瞭探索的樂趣。我感覺它培養的是一種“計算思維”,讓你能夠用更係統、更科學的方式去分析和解決問題,而不僅僅是死記硬背一些編程技巧。它讓我意識到,編程不僅僅是寫代碼,更是一種解決問題的藝術。

評分

這本書的敘事方式,我覺得最獨特的地方在於它並沒有局限於“計算機”這個狹窄的範疇。在講到“貪心算法”的時候,它舉的例子竟然是“找零錢”的問題。它並沒有直接給你一個程序,而是讓你思考,在最理想的情況下,每次都選擇麵額最大的那張紙幣,是不是就能最快地找完零錢。然後,它再引申到生活中的一些決策場景,比如如何高效地安排一天的時間,或者如何在有限的資源下做齣最優選擇。讀完這部分,我並沒有立刻學會寫一個貪心算法的程序,但我對“貪心”這個概念的理解,已經超越瞭純粹的計算機科學,感覺它是一種更普適的、解決問題的哲學。這種從生活現象到抽象算法的遷移,讓我覺得這本書的編排非常有匠心,它在培養你解決問題的能力,而不僅僅是教會你寫代碼。

評分

實話講,拿到這本書的時候,我對“動態規劃”這個詞是相當畏懼的。在我過去的認知裏,這絕對是算法中的“大魔王”。然而,這本書處理“動態規劃”的方式,卻齣乎意料地溫和。它並沒有一開始就拋齣一些復雜的遞推公式,而是從一個非常簡單的“爬樓梯”問題入手。它一步一步地引導你思考,當你爬到第n層樓梯的時候,你可能從哪一層樓梯上來,然後將這個問題分解成更小的子問題,並最終找到瞭問題的規律。在這個過程中,我並沒有感覺到強烈的“燒腦”感,反而是有一種“豁然開朗”的感覺。它讓你看到,很多看起來高深莫測的算法,其實都可以通過清晰的邏輯和細緻的分解,變得觸手可及。我感覺這本書在“化繁為簡”這方麵做得非常齣色。

評分

我當時買這本書,其實是被“信息學奧賽官方指定用書”這個頭銜吸引的,想著裏麵肯定有各種各樣的競賽題目和解題思路。結果翻瞭幾頁,我發現它對於“遞歸”的講解,真的是彆齣心裁。它沒有上來就甩給你一堆函數調用棧的圖,而是用瞭一個非常有名的“漢諾塔”的故事來引入。讀著那個故事,你會很自然地理解為什麼需要重復地執行同一個操作,直到達到一個基本條件。然後,它再慢慢地引導你思考,如何將這個故事抽象成一個通用的編程模型。坦白說,我當時對遞歸的理解一直停留在“函數調用自己”這個比較錶層的概念上,但通過這本書的講解,我好像一下子打通瞭任督二脈,深刻體會到瞭遞歸的精髓在於“定義自身”和“基本情況”,以及它在解決一些看似棘手的問題時所展現齣的優雅和高效。雖然我還沒開始刷真題,但感覺對很多算法題目的理解,已經有瞭全新的視角。

評分

這本書的內容,雖然名字裏寫著“CCF中學生計算機程序設計-入門篇”,但我拿到手之後,發現它更像是一本關於算法思維啓濛的讀物,而不是一本教你具體怎麼敲代碼的教材。比如,裏麵對“分治”這個概念的闡述,我感覺它並沒有直接給齣Python、C++等語言的實現代碼,而是通過一些非常形象的比喻,比如“分而治之”的古代兵法,或者是“切蛋糕”的場景,來讓你理解這個思想。它強調的是如何將一個復雜的問題分解成更小的、更容易解決的部分,然後再將這些部分的答案組閤起來得到最終的解。讀到這裏,我並沒有覺得我學會瞭如何編寫一個排序算法,但我好像真的對“分治”這個抽象的概念有瞭一個更深刻的認識,甚至能夠在我自己的學習和生活中有意無意地運用這種思維方式去解決一些小問題。它更像是打開瞭一扇門,讓我看到瞭算法的“靈魂”,而不是直接給我一把鑰匙去開鎖。

評分

收到,好。

評分

很多。

評分

很多。

評分

很多。

評分

很好!

評分

很好!

評分

很好

評分

收到,好。

評分

不錯。。。。。。。。。。

相關圖書

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有