GESP編程能力等級認證一本通 (C++ 一級)
王桂平 張 兵 王延平
相關主題
商品描述
本書圍繞中國計算機學會(CCF)發布的《CCF編程能力等級認證C++& Python認證標準》中的 C++部分而設計,主要介紹C++編程和算法學習的相關內容。
本書對標CCF編程能力等級認證(GESP)C++一級,詳細介紹了初識C++編程、變量、輸入語句、算術運算、浮點型數據和字符型數據、程序控制結構及順序結構、分支結構、關系表達式和邏輯表達式、多分支和switch 語句、循環結構及for 循環、while 循環和do-while循環、程序控制結構的嵌套、break 和 continue語句、程序控制結構綜合應用、程序測試及調試等內容。
為幫助讀者夯實編程基礎,本書特設置案例、基礎知識練習一大部分選自GESP歷年真題。另外,本書還配有課件、視頻等資源,讀者購書後,可關註“傲夢少年”微信公眾號進行領取。
本書可以作為中小學編程社團的教材,也可以作為少兒編程培訓機構的培訓教材,還可以作為少兒編程等級考試和編程競賽的入門教材。
作者簡介
王桂平,計算機科學與技術專業博士、副教授、碩導。從 2003 年開始從事大學生程
序設計競賽指導工作,帶隊參加過浙江省、重慶市、四川省、廣東省大學生程序設計大賽,以及中國大學生程序設計大賽、國際大學生程序設計大賽、中國高校計算機大賽——團體程序設計天梯賽、藍橋杯大賽等各類程序與算法設計類賽事,指導的學生獲得國家級獎項 100 余項、省級獎項 1000 余項;主持省部級教學研究項目 5 項(含重大項目 1 項),主持重慶市一流課程 1 門;以第一作者發表教學研究論文近 20 篇;以第一作者發表科學研究論文 30 余篇,其中 SCI 論文 9 篇、EI論文 10 篇,主持省部級科研項目 3 項,主研國家級科研項目 3 項。著有《圖論算法理論、實現及應用》《程序設計方法及算法導引》《C++ 趣味編程及算法入門》《C++ 編程與信息學競賽數學基礎》《信息學競賽教程》等多部圖書;多所中小學兼職信奧教練。
張兵,中國計算機學會 GESP&PTA 自由度服務中心負責人、重慶大學繼續教育學院
家校社中心主任、“傲夢少年”聯盟負責人。
在編程教育與信奧教育、青少年人工智能、青少年多元化成長路徑、醫工融合等領域均有深入研究。此外,還主導並參與了 1 項重慶市技術創新與應用示範項目、1 項重慶市科技型企業技術創新與應用發展專項項目。
王延平,中國計算機學會 GESP 編程能力等級認證組委會主席以及中國計算機學會 PTA 編程師資認證組委會創始主席。具備十余年編程與信息學教學經驗,並擁有多
年 GESP、CSP-J/S 培訓經歷。多次參與中國電子學會、中國軟件行業協會等機構組
織的等級考試、競賽的命題及閱卷工作,對GESP 有著深刻的理解和獨特的見解。
目錄大綱
第 1章 初識C++編程 001
1.1 程序及編程語言 001
1.2 認識鍵盤 002
1.3 鍵盤上的字母為什麼不按順序排列 002
1.4 如何練習打字 003
1.5 程序的編寫、編譯和運行 004
1.6 案例1:Hello World! 005
1.7 案例2:輸出大小寫字母、計算數學式子 006
1.8 案例3:輸出由加號組成的菱形 007
1.9 練習1:求兩門課程成績總分(1) 008
1.10 練習2:還剩多少錢(1) 008
1.11 練習3:輸出星號長方形 009
1.12 C和C++語言的發展及版本變遷 009
1.13 基礎知識練習(GESP真題) 010
第 2章 數據的存儲——變量 012
2.1 計算機裏的重要部件——CPU、硬盤和內存 012
2.2 變量的由來——變量就是用來存儲數據的 012
2.3 常量和變量 014
2.4 數據類型 014
2.5 案例1:求兩門課程成績總分(2) 014
2.6 案例2:求數學成績(1) 016
2.7 案例3:求兩年後的年齡 016
2.8 練習1:凈勝球(1) 017
2.9 練習2:求女生人數 018
2.10 練習3:求身高 018
2.11 計算機小知識:度量存儲空間大小的單位 019
2.12 基礎知識練習(GESP真題) 020
第3章 數據的輸入——輸入語句 022
3.1 有輸入也有輸出才更有意義 022
3.2 編程解題的步驟 022
3.3 案例1:求兩門課程成績總分(3) 023
3.4 案例2:求數學成績(2) 024
3.5 案例3:交換兩個變量的值 025
3.6 練習1:凈勝球(2) 027
3.7 練習2:有多少同學不上延時課 028
3.8 練習3:還剩多少錢(2) 029
3.9 基礎知識練習(GESP真題) 030
第4章 數據的運算——算術運算 033
4.1 加、減、乘、除之外還有取余 033
4.2 算術運算符和算術表達式 034
4.3 案例1:小楊買書(GESP真題) 034
4.4 案例2:休息時間(GESP真題) 035
4.5 案例3:小楊的考試(GESP真題) 037
4.6 練習1:小楊購物(GESP真題) 038
4.7 練習2:時間規劃(GESP真題) 039
4.8 練習3:1~n有多少個3的倍數(除法) 040
4.9 基礎知識練習(GESP真題) 041
第5章 浮點型數據和字符型數據 045
5.1 浮點型數據 045
5.2 字符型數據 045
5.3 圓的周長及圓周率 046
5.4 案例1:求圓的周長和面積 047
5.5 案例2: 3件八五折 048
5.6 案例3:輸出字符菱形 049
5.7 練習1:求陰影部分的面積 050
5.8 練習2:小寫字母變大寫字母 051
5.9 練習3:輸出後面第4個字母 051
5.10 拓展閱讀:基本的數據類型 052
5.11 自動類型轉換和強制類型轉換 053
5.12 基礎知識練習(GESP真題) 053
第6章 程序控制結構及順序結構 056
6.1 吃午餐的流程 056
6.2 算法就是求解問題的步驟 057
6.3 3種基本的程序控制結構 057
6.4 流程圖的規範表示 057
6.5 案例1:體質指數計算 058
6.6 案例2:攝氏溫度轉華氏溫度 059
6.7 案例3:分蘋果 060
6.8 練習1:順流而下和逆流而上 061
6.9 練習2:角度和弧度的轉換 062
6.10 練習3:預測孩子身高 063
6.11 計算機小知識: 3種基本的程序控制結構 064
6.12 基礎知識練習(GESP真題) 064
第7章 分支結構——if語句 065
7.1 學會比較和判斷 065
7.2 實現判斷的if語句 065
7.3 案例1:求4個分數的最高分 066
7.4 向上取整和向下取整 067
7.5 案例2:計算郵資(GESP真題) 068
7.6 案例3:買文具(GESP真題) 069
7.7 語句塊、逗號表達式 071
7.8 條件運算符與條件表達式 071
7.9 練習1:當天的第幾秒(GESP真題) 072
7.10 練習2:水仙花數(GESP真題) 073
7.11 練習3:溫度轉換(GESP真題) 074
7.12 C++語言中的關鍵字 075
7.13 基礎知識練習(GESP真題) 076
第8章 關系表達式和邏輯表達式 078
8.1 條件是怎麼形成的 078
8.2 關系運算符和關系表達式 078
8.3 邏輯運算符和邏輯表達式 079
8.4 邏輯“與”和邏輯“或”的例子 079
8.5 布爾(bool)型數據 080
8.6 案例1:大月還是小月 081
8.7 案例2:閏年的判斷 082
8.8 案例3:大小寫字母轉換 083
8.9 練習1:工作日還是周末 084
8.10 練習2:平年的判斷 085
8.11 練習3:圖書館裏的老鼠(GESP真題) 086
8.12 基礎知識練習(GESP真題) 087
第9章 多分支和switch語句 090
9.1 分支結構的嵌套——多分支結構 090
9.2 案例1:VIP顧客等級(1) 091
9.3 案例2:每月天數(GESP真題) 093
9.4 switch語句 094
9.5 案例3:VIP顧客等級(2) 095
9.6 練習1:閏年的判斷(多分支實現) 096
9.7 練習2:判斷是幾位數 098
9.8 練習3:簡單的計算器 099
9.9 基礎知識練習(GESP真題) 100
第 10章 循環結構及for循環 102
10.1 生活中的循環 102
10.2 循環結構及for循環 103
10.3 案例1:求a的n次方(for循環) 103
10.4 案例2:求1+3+5+…+(2n 1)(for循環) 105
10.5 案例3:累計相加(GESP真題) 107
10.6 取整與四舍五入 108
10.7 練習1:四舍五入到整十數(GESP真題) 108
10.8 數列及相關問題 109
10.9 在程序中實現數學上的遞推 110
10.10 練習2:輸出等差數列 110
10.11 練習3:輸出等比數列 112
10.12 基礎知識練習(GESP真題) 113
第 11章 while循環和do-while循環 118
11.1 while循環和do-while循環 118
11.2 永真循環、死循環 119
11.3 案例1:求a的n次方(while循環) 120
11.4 案例2:求1+3+5+…+(2n 1)(while循環) 121
11.5 案例3:求一個整數的位數 122
11.6 練習1:折紙 123
11.7 練習2:折半 124
11.8 練習3:求一個整數的各位和 125
11.9 基礎知識練習(GESP真題) 126
第 12章 程序控制結構的嵌套 128
12.1 生活中的嵌套 128
12.2 程序控制結構的嵌套 128
12.3 計數器和累加器 129
12.4 案例1:閏年統計(GESP真題) 129
12.5 案例2:奇數和偶數(GESP真題) 130
12.6 案例3:小明的幸運數(GESP真題) 131
12.7 練習1:閏年求和(GESP真題) 133
12.8 練習2:求奇數的和 134
12.9 練習3:求各位數字的最大值 134
12.10 基礎知識練習(GESP真題) 135
第 13章 break和continue語句 138
13.1 提前結束循環和跳過當前這一輪循環 138
13.2 提前結束循環——break語句 139
13.3 跳過當前這一輪循環——continue語句 140
13.4 案例1:質數的判定(break語句) 140
13.5 狀態變量及應用 142
13.6 案例2:小楊報數(continue語句)(GESP真題) 143
13.7 用break語句退出永真循環 144
13.8 案例3:求一組正整數的和 144
13.9 練習1:第 一個100分 145
13.10 練習2:最小質因數 146
13.11 練習3:求偶數的和 147
13.12 基礎知識練習(GESP真題) 148
第 14章 程序控制結構綜合應用 153
14.1 初識枚舉方法 153
14.2 案例1:找因數(GESP真題) 154
14.3 案例2:長方形面積(GESP真題) 155
14.4 案例3:美麗數字(GESP真題) 156
14.5 練習1:立方數(GESP真題) 157
14.6 練習2:角谷猜想 158
14.7 練習3:回文數的判定 160
14.8 基礎知識練習(GESP真題) 161
第 15章 程序編譯、測試及調試 163
15.1 編譯錯誤和邏輯錯誤 163
15.2 常見的編譯錯誤 163
15.3 常見的邏輯錯誤 165
15.4 程序測試 166
15.5 評測系統反饋的評測結果 167
15.6 程序運行結果不正確該怎麼辦 167
15.7 程序調試 168
15.8 調試步驟和方法 168
15.9 案例:質數的判定(測試和調試) 168
15.10 計算機小知識:bug和debug 171
15.11 基礎知識練習(GESP真題) 171
附錄A Dev-C++使用指南 174
附錄B C語言的輸入輸出函數 178
附錄C 運算符的優先級和結合性 184
附錄D 本書配套資源使用指南 186
附錄E 基礎知識練習答案 189
參考文獻 194