內容大鋼
「GESP編程能力等級認證一本通」是專門為中小學生編寫的一套學習C++編程和演算法的圖書。本套圖書嚴格圍繞中國電腦學會(CCF)發布的《CCF編程能力等級認證標準C++ & Python》而設計。
本書對應C++四級,共15章,內容包括二維及多維數組、指針變數及應用、指針與數組的綜合應用、排序基本概念及sort函數的使用、結構體、函數進階、遞歸函數、遞推演算法基礎、遞推演算法進階、遞推與遞歸的綜合應用、簡單的排序演算法、排序綜合應用、演算法及演算法複雜度、文件輸入/輸出、異常處理機制。
本書配備了題庫、課件、課程視頻(在線)等資源,可用作中小學編程社團的教材,也可以作為青少年編程培訓機構的培訓教材,還可以作為青少年編程等級考試和編程競賽的入門參考書。
目錄
第1章 二維及多維數組
1.1 數組概述
1.2 二維數組的定義和引用
1.3 案例1:輸出楊輝三角形前n行
1.4 一維和二維字元數組
1.5 案例2:畫布裁剪(GESP真題)
1.6 案例3:黑白方塊(GESP真題)
1.7 矩陣中的特殊位置
1.8 矩陣的變換—轉置
1.9 練習1:矩陣的轉置
1.10 練習2:二階矩陣(GESP真題)
1.11 拓展:三維及多維數組
1.12 基礎知識練習(GESP真題)
第2章 指針變數及應用
2.1 指針概述
2.2 指針變數的定義與引用
2.3 字元型指針變數
2.4 指針變數作函數參數
2.5 案例1:交換兩個數(函數和指針參數實現)
2.6 案例2:Fibonacci數列(函數帶回兩個答案)
2.7 案例3:四則運算(函數和指針參數實現)
2.8 練習1:4個數輪換
2.9 練習2:平方根、立方根、平方和立方
2.10 基礎知識練習(GESP真題)
第3章 指針與數組的綜合應用
3.1 一維數組與指針變數
3.2 用數組名作函數參數
3.3 案例1:構造迴文
3.4 網格狀地圖及相鄰位置的處理
3.5 案例2:荒地開墾(GESP真題)
3.6 案例3:排兵布陣(GESP真題)
3.7 練習1:查找數
3.8 前綴和數組
3.9 練習2:平衡子矩形(GESP真題)
3.10 二維數組與指針變數
3.11 指針高級內容
3.12 基礎知識練習(GESP真題)
第4章 排序基本概念及sort函數的使用
4.1 排序基本概念
4.2 排序函數sort的使用
4.3 字典序
4.4 案例1:整數排序(中間大兩頭小)
4.5 案例2:重排數字使整數最大
4.6 案例3:做題(GESP真題)
4.7 練習1:寶箱(GESP真題)
4.8 練習2:字元排序(GESP真題)
4.9 基礎知識練習(GESP真題)
第5章 結構體
5.1 結構體概述
5.2 結構體類型的聲明
5.3 結構體變數、指針、數組的定義
5.4 結構體變數、數組的初始化
5.5 結構體變數及成員的引用
5.6 用typedef聲明一種新類型名
5.7 案例1:按身高排序
5.8 案例2:數位排序
5.9 案例3:字元串排序(按得分高低排序)
5.10 練習1:按姓名排序
5.11 練習2:病人排隊
5.12 結構體其他知識
5.13 基礎知識練習(GESP真題)
第6章 函數進階
6.1 引用及引用類型參數
6.2 值的傳遞和地址傳遞
6.3 函數的嵌套調用
6.4 函數重載及有默認值的參數
6.5 全局作用域和局部作用域
6.6 案例1:絕對素數(GESP真題)
6.7 案例2:圖像壓縮(GESP真題)
6.8 案例3:進位轉換(GESP真題)
6.9 練習1:變長編碼(GESP真題)
6.10 練習2:相似字元串(GESP真題)
6.11 函數的設計總結
6.12 基礎知識練習(GESP真題)
第7章 遞歸函數
7.1 遞歸及遞歸函數
7.2 案例1:求階乘(遞歸函數)
7.3 案例2:遞歸求Fibonacci數列第n項
7.4 將較大規模的問題降為較小規模的問題
7.5 案例3:三角形的個數(1)
7.6 練習1:三角形的個數(2)
7.7 練習2:幸運數(GESP真題)
7.8 遞歸函數設計總結
7.9 基礎知識練習(GESP真題)
第8章 遞推演算法基礎
8.1 遞推概述
8.2 遞推的四大要素
8.3 案例1:拼積木問題
8.4 案例2:放圓珠問題
8.5 二維遞推
8.6 案例3:網格路徑
8.7 練習1:新的兔子數列
8.8 練習2:過山車數
8.9 基礎知識練習(GESP真題)
第9章 遞推演算法進階
9.1 部分位置受限的遞推問題
9.2 案例1:走台階問題(部分台階是壞的)
9.3 案例2:馬攔過河卒
9.4 遞推和其他演算法的結合
9.5 案例3:猴子分桃子
9.6 練習1:Recam?n(GESP真題)
9.7 練習2:踩方格
9.8 基礎知識練習(GESP真題)
第10章 遞推與遞歸的綜合應用
10.1 遞推和遞歸總結
10.2 案例1:f(n)=Σf(j),j為n的因數且j 10.3 案例2:矩陣變幻
10.4 遞歸存在的問題及解決方法
10.5 案例3:數的計算
10.6 練習1:漢諾塔遊戲
10.7 練習2:填幻方(GESP真題)
10.8 基礎知識練習(GESP真題)
第11章 簡單的排序演算法
11.1 來自生活中的演算法思想
11.2 排序演算法性能及評價
11.3 案例1:插入法排序
11.4 案例2:冒泡法排序
11.5 案例3:簡單選擇法排序
11.6 練習1:區間排序(GESP真題)
11.7 練習2:最少交換次數(GESP真題)
11.8 基礎知識練習(GESP真題)
第12章 排序綜合應用
12.1 排序的應用
12.2 案例1:田忌賽馬(GESP真題)
12.3 案例2:最長連續段(GESP真題)
12.4 案例3:修建新的庫房
12.5 練習1:人以群分
12.6 練習2:排隊取水
12.7 基礎知識練習(GESP真題)
第13章 演算法及演算法複雜度
13.1 演算法的基本概念
13.2 評價演算法優劣的標準
13.3 案例1:勾股數組合(a,b,b+1)
13.4 案例2:買地攻略
13.5 案例3:還剩多少人
13.6 演算法效率的度量
13.7 演算法時間複雜度的漸進分析和表示
13.8 最好、最壞和平均情況
13.9 基本的演算法複雜度模型
13.10 基礎知識練習(GESP真題)
第14章 文件輸入/輸出
14.1 文件輸入/輸出概述
14.2 ASCII文件和二進位文件
14.3 文件名和文件路徑
14.4 C語言中的文件輸入/輸出
14.5 C++語言中的文件輸入/輸出
14.6 基礎知識練習(GESP真題)
第15章 異常處理機制
15.1 異常處理引入
15.2 C++語言中的異常處理機制
15.3 基礎知識練習(GESP真題)
附錄A 本書配套資源使用指南
附錄B 基礎知識練習答案
參考文獻