2025年6月28和29日復習和預習(C++)

學習筆記大綱?

一、預習部分:數組基礎?

(一)核心知識點?

  1. 數組的創建:掌握一維數組的聲明方式,如int arr[5];(創建一個包含 5 個整數的數組)。重點在于理解數組長度需為常量,且在聲明時確定。?
  1. 數組的初始化:學會為數組賦值,例如int arr[] = {1, 2, 3};,可省略數組長度,編譯器根據初始化值自動確定。?
  1. 數組元素的訪問:通過索引訪問數組元素,索引從 0 開始,如arr[1]表示訪問數組arr的第二個元素。?

(二)重點考點?

  1. 數組聲明時長度的正確設定。?
  1. 數組初始化的不同方式及適用場景。?
  1. 數組元素索引的正確使用。?

(三)難點易錯點?

  1. 數組索引越界問題,如訪問arr[5](數組長度為 5 時,最大索引為 4)。?
  1. 錯誤地將變量作為數組長度進行聲明,例如int n = 5; int arr[n];(C++ 中這種寫法在部分編譯器不支持)。?

(四)預習練習題?

1. 填空題?

(1) 聲明一個包含 10 個浮點數的數組,正確寫法是______。?

(2) 初始化一個數組arr,包含元素 3、5、7,寫法為______。?

(3) 若int arr[] = {1, 2, 3, 4, 5},訪問數組中第 4 個元素的表達式是______。?

2. 選擇題?

(1) 以下數組聲明正確的是( )?

A. int arr;?

B. int arr [ ];?

C. int n = 10; int arr [n];?

D. int arr [10];?

(2) 若int arr[] = {1, 2, 3},則數組arr的長度為( )?

A. 1?

B. 2?

C. 3?

D. 不確定?

(3) 訪問數組int arr[5]的最后一個元素,正確的是( )?

A. arr [5]?

B. arr [4]?

C. arr [6]?

D. arr [-1]?

3. 判斷題?

(1) 數組索引可以從 1 開始。( )?

(2) 聲明數組時,長度必須在編譯時確定。( )?

(3) 初始化數組時,必須指定數組長度。( )?

4. 編程題?

(1) 聲明并初始化一個包含 5 個整數的數組,然后輸出數組中的所有元素。?

(2) 創建一個數組,存儲 5 個學生的成績,計算并輸出這些成績的平均值。?

(3) 編寫程序,交換數組中第一個元素和最后一個元素的值,并輸出交換后的數組。?

(4) 聲明一個數組,接收用戶輸入的 10 個整數,找出其中的最大值并輸出。?

(5) 初始化一個數組,包含 10 個隨機整數,統計數組中偶數的個數并輸出。?

(6) 編寫程序,判斷數組中是否存在某個特定的整數(用戶輸入),若存在則輸出其索引,否則輸出 - 1。?

(7) 創建一個數組,存儲一周 7 天的溫度,找出溫度最高的一天并輸出是第幾天。?

(8) 聲明一個數組,將數組中的元素逆序存儲(例如原數組為 {1, 2, 3},逆序后為 {3, 2, 1}),并輸出逆序后的數組。?

(9) 初始化一個數組,包含 8 個字符,判斷這些字符組成的字符串是否為回文串(正讀和反讀都一樣),并輸出判斷結果。?

(10) 編寫程序,創建一個數組,接收用戶輸入的 8 個整數,將數組中所有奇數移到數組的前面,偶數移到數組的后面,并輸出調整后的數組。?

二、復習部分:循環與判斷語句?

(一)核心知識點?

  1. 累加器公式:?
  • 初始化累加器變量,如int sum = 0;。?
  • 在循環中執行累加操作,如sum = sum + i;(i為循環變量)。?
  • 循環結束后,sum即為累加結果。?
  1. 循環語句:?
  • for 循環:掌握其語法結構for (初始化表達式; 條件表達式; 更新表達式) { 循環體; },常用于已知循環次數的場景。重點是理解三個表達式的作用及執行順序。?
  • while 循環:語法為while (條件表達式) { 循環體; },條件為真時執行循環體。?
  1. 判斷語句:?
  • if - else if - else:用于多條件判斷,如判斷奇數和偶數。?
  • switch - case:適用于多個固定值的判斷,如根據輸入數字判斷是否上編程課。?

(二)重點考點?

  1. 累加器的正確使用及在循環中的位置。?
  1. for 循環和 while 循環的條件判斷與循環體執行邏輯。?
  1. if - else if - else 和 switch - case 語句的適用場景及語法規則。?

(三)難點易錯點?

  1. 循環條件設置不當導致死循環或循環次數錯誤。?
  1. 在 switch - case 語句中忘記使用break,導致穿透執行。?
  1. 累加器初始化位置錯誤,或在錯誤的循環中使用累加器。?

(四)復習練習題?

1. 填空題?

(1) for 循環中,若要計算 1 到 100 的和,初始化表達式為int i = 1;,條件表達式為______,更新表達式為______。?

(2) 在 if 語句中,判斷一個數num為偶數的條件表達式是______。?

(3) switch 語句中,每個 case 分支后通常需要添加______語句,以防止穿透執行。?

2. 選擇題?

(1) 以下 for 循環的循環次數是( )?

?

for (int i = 0; i < 10; i += 2) {?

// 循環體?

}?

?

A. 5?

B. 10?

C. 20?

D. 無限次?

(2) 若要判斷一個數是否在 1 到 100 之間,以下 if 語句正確的是( )?

A. if (num > 1 && num < 100) {... }?

B. if (num >= 1 || num <= 100) {... }?

C. if (num >= 1 && num <= 100) {... }?

D. if (num > 1 || num < 100) {... }?

(3) 在 switch - case 語句中,若沒有匹配的 case,執行( )?

A. 第一個 case 分支?

B. 最后一個 case 分支?

C. default 分支(如果存在)?

D. 不執行任何分支?

3. 判斷題?

(1) while 循環中,只要條件表達式為真,循環體就會一直執行。( )?

(2) 在 for 循環中,初始化表達式只能初始化一個變量。( )?

(3) if - else if - else 語句中,最多只能有一個 else if 分支。( )?

4. 編程題?

(1) 使用 for 循環計算 1 到 200 中所有能被 3 整除的數的和。?

(2) 輸入一個整數,使用 while 循環輸出 1 到該整數的所有偶數。?

(3) 編寫程序,使用 if - else if - else 語句判斷一個年份是否為閏年(閏年的條件:能被 4 整除但不能被 100 整除,或者能被 400 整除)。?

(4) 使用 switch - case 語句,根據用戶輸入的 1 - 7 的數字,輸出對應的星期幾(如輸入 1,輸出 “星期一”)。?

(5) 計算 1 到 1000 中,能被 6 和 7 整除的數的和,并輸出這些數字(用空格分開),最后輸出數字的個數。?

(6) 輸入一個整數,判斷它是正數、負數還是零,使用 if - else 語句實現,并輸出判斷結果。?

(7) 使用 for 循環輸出 1 到 100 之間所有能被 5 整除但不能被 3 整除的數。?

(8) 編寫程序,接收用戶輸入的 5 個整數,使用 switch - case 語句對這 5 個數進行排序(簡單選擇排序,通過多次比較和交換實現),并輸出排序后的結果。?

(9) 利用 while 循環,計算用戶輸入的一組數字(以 - 1 作為結束標志)的平均值,并輸出結果。?

(10) 編寫程序,判斷一個字符串(用戶輸入)中是否包含特定字符(用戶輸入),使用 for 循環遍歷字符串,若包含則輸出該字符在字符串中的位置,否則輸出 “未找到”。



1. 填空題

(1)?float arr[10];
解析:聲明數組需指定類型(float)、數組名(arr)和元素個數(10),方括號內為常量表達式。

(2)?int arr[] = {3, 5, 7};
解析:初始化時若提供全部元素值,可省略數組大小,編譯器自動推斷長度為 3,元素類型為整型(int)。

(3)?arr[3]
解析:C++ 數組下標從 0 開始,第 4 個元素對應下標 3,值為 4。

2. 選擇題

(1)?D. int arr [10];
解析:

  • A 錯誤:未指定數組大小。
  • B 錯誤:聲明數組時必須指定大小(初始化時可省略)。
  • C 錯誤:C++ 不支持用變量聲明數組大小(需為常量表達式)。

(2)?C. 3
解析:初始化列表中有 3 個元素,數組長度為 3。

(3)?B. arr [4]
解析:數組int arr[5]的下標范圍為 0~4,最后一個元素為arr[4]

3. 判斷題

(1)?×
解析:C++ 數組索引必須從 0 開始,不能從 1 開始。

(2)?
解析:靜態數組的長度需在編譯時確定(動態數組需用newvector)。

(3)?×
解析:初始化時若提供全部元素值,可省略數組長度(如int arr[] = {1,2,3};)。

4. 編程題

(1) 聲明、初始化并輸出數組

cpp

運行

#include <iostream>
using namespace std;
int main() {int arr[5] = {1, 2, 3, 4, 5};for (int i = 0; i < 5; i++) {cout << arr[i] << " ";}return 0;
}

解析:用for循環遍歷數組并輸出元素。

(2) 計算成績平均值

cpp

運行

#include <iostream>
using namespace std;
int main() {int scores[5] = {85, 90, 75, 80, 95};int sum = 0;for (int i = 0; i < 5; i++) {sum += scores[i];}double avg = (double)sum / 5;cout << "平均值:" << avg << endl;return 0;
}

解析:累加元素后除以 5,用double避免整數除法截斷。

(3) 交換首尾元素

cpp

運行

#include <iostream>
using namespace std;
int main() {int arr[5] = {10, 20, 30, 40, 50};int temp = arr[0];arr[0] = arr[4];arr[4] = temp;for (int i = 0; i < 5; i++) {cout << arr[i] << " ";}return 0;
}

解析:用臨時變量temp暫存首元素,避免直接賦值導致數據丟失。

(4) 找最大值

cpp

運行

#include <iostream>
using namespace std;
int main() {int arr[10];for (int i = 0; i < 10; i++) {cin >> arr[i];}int max_val = arr[0];for (int i = 1; i < 10; i++) {if (arr[i] > max_val) {max_val = arr[i];}}cout << "最大值:" << max_val << endl;return 0;
}

解析:先假設第一個元素為最大值,再遍歷更新max_val

(5) 統計偶數個數

cpp

運行

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {srand(time(0)); // 初始化隨機數種子int arr[10];int even_count = 0;for (int i = 0; i < 10; i++) {arr[i] = rand() % 100; // 生成0~99的隨機數if (arr[i] % 2 == 0) {even_count++;}}cout << "偶數個數:" << even_count << endl;return 0;
}

解析:用rand()%100生成隨機數,arr[i]%2==0判斷偶數。

(6) 查找特定整數

cpp

運行

#include <iostream>
using namespace std;
int main() {int arr[7] = {12, 34, 56, 78, 90, 11, 22};int target;cin >> target;int index = -1;for (int i = 0; i < 7; i++) {if (arr[i] == target) {index = i;break;}}cout << index << endl;return 0;
}

解析:遍歷數組,找到目標值后記錄下標并跳出循環。

(7) 找溫度最高的一天

cpp

運行

#include <iostream>
using namespace std;
int main() {int temp[7] = {25, 28, 26, 30, 27, 29, 28};int max_temp = temp[0];int max_day = 1;for (int i = 1; i < 7; i++) {if (temp[i] > max_temp) {max_temp = temp[i];max_day = i + 1; // 天數從1開始}}cout << "第" << max_day << "天溫度最高(" << max_temp << "℃)" << endl;return 0;
}

解析:遍歷數組時記錄最大值及其下標(轉換為天數需 + 1)。

(8) 數組逆序

cpp

運行

#include <iostream>
using namespace std;
int main() {int arr[3] = {1, 2, 3};for (int i = 0; i < 1; i++) { // 循環次數為長度/2int temp = arr[i];arr[i] = arr[2 - i];arr[2 - i] = temp;}for (int i = 0; i < 3; i++) {cout << arr[i] << " ";}return 0;
}

解析:交換首尾對稱元素,循環次數為length/2(3 個元素只需交換 1 次)。

(9) 判斷回文串

cpp

運行

#include <iostream>
using namespace std;
int main() {char str[8] = {'a', 'b', 'c', 'd', 'd', 'c', 'b', 'a'};bool is_palindrome = true;for (int i = 0; i < 4; i++) {if (str[i] != str[7 - i]) {is_palindrome = false;break;}}cout << (is_palindrome ? "是回文串" : "不是回文串") << endl;return 0;
}

解析:比較對稱位置的字符(如第 i 個與第 7-i 個),全部相等則為回文。

(10) 奇偶元素分區

cpp

運行

#include <iostream>
using namespace std;
int main() {int arr[8];for (int i = 0; i < 8; i++) {cin >> arr[i];}int temp[8], odd_idx = 0, even_idx = 0;// 先存奇數for (int i = 0; i < 8; i++) {if (arr[i] % 2 != 0) {temp[odd_idx++] = arr[i];}}// 再存偶數for (int i = 0; i < 8; i++) {if (arr[i] % 2 == 0) {temp[odd_idx++] = arr[i];}}// 復制回原數組并輸出for (int i = 0; i < 8; i++) {arr[i] = temp[i];cout << arr[i] << " ";}return 0;
}

解析:用臨時數組先存奇數,再存偶數,最后復制回原數組。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89845.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89845.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89845.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【centos8服務如何給服務器開發3306端口】

在 CentOS 8 中開放 MySQL 默認端口 3306&#xff0c;需要配置防火墻和 SELinux。以下是詳細步驟&#xff1a; 1. 開放防火墻端口&#xff08;Firewalld&#xff09; CentOS 8 默認使用 firewalld 管理防火墻&#xff0c;執行以下命令開放 3306 端口&#xff1a; # 開放 TCP 33…

python系列之:使用md5和sha256完成簽名認證,調用接口

python系列之:使用md5和sha256完成簽名認證,調用接口 MD5簽名和sha256簽名認證md5認證代碼sha256認證代碼拼接簽名生成簽名拼接url調用接口MD5簽名和sha256簽名認證 MD5簽名認證 算法特性: 生成128位(16字節)的哈希值計算速度快已被證明存在碰撞漏洞(不同輸入可能產生相同…

SpringBatch配置與入門實例

通過對SpringBatch基礎概念的了解&#xff0c;參考&#xff1a;SpringBatch使用介紹 任何技術用起來之后&#xff0c;再去探究內部細節的原理&#xff0c;才會事半功倍。下面記錄一下筆者在SpringBoot項目中集成SpringBatch&#xff0c;并且通過一個小的實例展示如何簡單使用它…

spdlog 項目介紹與二次封裝

目錄 介紹 二次封裝 介紹 spdlog 是C開源的第三方日志庫&#xff0c;整個項目在 spdlog 命名空間中。 在 spdlog 命名空間的 level 命名空間里定義了枚舉類型&#xff0c;把日志分為了 5 個等級&#xff1a;trace debug info warn err critical enum level_enum : in…

shell編程之awk命令詳解

1. awk 教程 1.1 調用 awk awk 是一種強大的文本處理工具&#xff0c;在 Linux 系統中廣泛應用于日志分析、數據處理等場景。調用 awk 主要有以下三種方式&#xff1a; 1.1.1 命令行方式 基本語法為&#xff1a; awk (-F filed-separator) commands input-files其中&#…

服務器需要備案嗎?在哪些地區需要備案?

&#x1f3af; 服務器是否需要備案&#xff1f; 是否需要備案&#xff0c;關鍵看以下兩個因素&#xff1a; 服務器所在地&#xff08;機房位置&#xff09; 網站面向的訪問群體&#xff08;境內或境外&#xff09; &#x1f3f7; 中國大陸&#xff08;境內&#xff09;服務器…

HarmonyOS學習3---ArkUI

1、組件 1.1、基礎組件 1.2、布局容器 1.3、頁面導航 1.4、其他組件 2、ArkTs/C混合開發&#xff0c;高性能編碼 3、布局能力&交互歸一 4、實時開發預覽

Java學習第十五部分——MyBatis

目錄 一.概述 二.特點 三.組件 四.Mapper 五.配置文件 六.使用步驟 七.高級功能 八.優點缺點 九.項目實戰 1.打開idea創建一個Java項目&#xff0c;構建系統選“Maven”? 2.創建完成后若依賴報錯&#xff0c;可通過下載或重新加載來解決? 3.配置pom.xml文件&…

小企業如何搭建本地私有云服務器,并設置內部網絡地址提供互聯網訪問

在數字化時代&#xff0c;很多普通公司小企業規模的&#xff0c;利用本地小型服務器或計算機搭建私有云服務器&#xff0c;不僅可以提升數據管理效率&#xff0c;還能保障業務數據的安全性和靈活性。以下是為小企業量身定制的私有云服務器搭建指南&#xff0c;及最后附無公網IP…

MySQL 八股文【持續更新ing】

MySQL 八股文【持續更新ing】 文章目錄 MySQL 八股文【持續更新ing】前言一、MySQL的存儲引擎有哪些&#xff1f;他們之間有什么區別&#xff1f;二、MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么區別&#xff1f;1.InnoDB 中的聚簇索引2.InnoDB 中的非聚簇索引 三、MySQL…

每日算法刷題Day42 7.5:leetcode前綴和3道題,用時2h

7. 3026.最大好子數組和(中等,學習) 3026. 最大好子數組和 - 力扣&#xff08;LeetCode&#xff09; 思想 1.給你一個長度為 n 的數組 nums 和一個 正 整數 k 。 如果 nums 的一個子數組中&#xff0c;第一個元素和最后一個元素 差的絕對值恰好 為 k &#xff0c;我們稱這個…

Linux操作系統之文件(四):文件系統(上)

前言&#xff1a; 我們前幾篇文章講了緩沖區與重定向的有關概念&#xff0c;這些設計是linux系統的核心機制&#xff0c;對系統性能、資源管理和用戶操作靈活性有重要意義。 不涉及一些硬件就不可能讓大家清楚地去理解文件系統&#xff0c;所以這篇文章&#xff0c;我將會從計…

java中,stream的filter和list的removeIf篩選速度比較

在 Java 里&#xff0c;Stream 的filter和 List 的removeIf篩選效率要依據具體情形來判斷。 1. 操作本質有別 Stream 的 filter&#xff1a; 它是一種中間操作&#xff0c;不會立刻執行&#xff0c;而是把篩選條件記錄下來。只有遇到終端操作時&#xff0c;才會開始處理元素。…

Python(28)Python循環語句指南:從語法糖到CPython字節碼的底層探秘

目錄 引言一、推導式家族全解析1.1 基礎語法對比1.2 性能對比測試 二、CPython實現揭秘2.1 字節碼層面的秘密2.2 臨時變量機制 三、高級特性實現3.1 嵌套推導式優化3.2 條件表達式處理 四、性能優化指南4.1 內存使用對比4.2 執行時間優化技巧 五、最佳實踐建議六、總結&#x1…

深度分析:Microsoft .NET Framework System.Random 的 C++ 復刻實現

深度分析&#xff1a;Microsoft .NET Framework Random 的 C 復刻實現 核心原理與算法結構 本實現基于 Knuth 減隨機數生成器&#xff08;Subtractive Random Number Generator&#xff09;&#xff0c;是 .NET Framework 中 System.Random 的精確復刻。其核心特點包括&#x…

[論文閱讀] 人工智能 | 在非CUDA硬件上運行幾何學習:基于Intel Gaudi-v2 HPU的PyTorch框架移植實踐

在非CUDA硬件上運行幾何學習&#xff1a;基于Intel Gaudi-v2 HPU的PyTorch框架移植實踐 論文標題&#xff1a;PyTorch-based Geometric Learning with Non-CUDA Processing Units: Experiences from Intel Gaudi-v2 HPUs arXiv:2507.01031 (cross-list from cs.LG) PyTorch-ba…

Python-多線程-threading

1 需求 2 接口 3 示例 4 參考資料 Python treading 模塊 | 菜鳥教程

2025年- H91-Lc199-- 62.不同路徑(多維動態規劃)--Java版

1.題目描述 2.思路 dp含義&#xff1a;代表到當前位置的路徑數 遞推公式&#xff1a;dp[i][j]dp[i-1][j]dp[i][j-1] dp數組初始化&#xff0c;我們要確保第一行和第一列是有值的. dp數組的遍歷順序&#xff1a;我們需要從左往右遍歷&#xff0c;從上往下遍歷。并且把第一行和第…

char 不是 Java 中的 2 字節(16 位)嗎? 為什么用 UTF-8 編碼寫入時,一個中文要占 3 個字節?

char 不是 Java 中的 2 字節&#xff08;16 位&#xff09;嗎&#xff1f; 為什么用 UTF-8 編碼寫入時&#xff0c;一個中文要占 3 個字節&#xff1f; ? 一、Java 中的 char 是什么&#xff1f; Java 的 char 是一個 固定大小的 2 字節&#xff08;16 位&#xff09;類型&am…

【Elasticsearch】檢索排序 分頁

檢索排序 & 分頁 1.測試數據準備2.排序功能2.1 簡單字段排序2.2 多字段排序2.3 日期排序 3.分頁功能3.1 基礎分頁3.2 深度分頁&#xff08;不推薦大數據量使用&#xff09;3.3 使用 search_after 進行高效分頁 4.綜合示例&#xff1a;高亮排序分頁5.實踐建議 1.測試數據準備…