CCF編程能力等級認證GESP—C++7級—20250628

CCF編程能力等級認證GESP—C++7級—20250628

  • 單選題(每題 2 分,共 30 分)
  • 判斷題(每題 2 分,共 20 分)
  • 編程題 (每題 25 分,共 50 分)
    • 線圖
    • 調味平衡

單選題(每題 2 分,共 30 分)

1、 已知小寫字母 b 的ASCII碼為98,下列C++代碼的輸出結果是( )。

#include <iostream>
using namespace std;
int main() {char a = 'b' ^ 4;cout << a;return 0;
}
A. b
B. bbbb
C. f
D. 102

正確答案:C

2、 已知 a 為 int 類型變量, p 為 int * 類型變量,下列賦值語句不符合語法的是( )。

A. *(p + a) = *p;
B. *(p - a) = a;
C. p + a = p;
D. p = p + a;

正確答案:C

3、下列關于C++類的說法,錯誤的是( )。

A. 如需要使用基類的指針釋放派生類對象,基類的析構函數應聲明為虛析構函數。
B. 構造派生類對象時,只調用派生類的構造函數,不會調用基類的構造函數。
C. 基類和派生類分別實現了同一個虛函數,派生類對象仍能夠調用基類的該方法。
D. 如果函數形參為基類指針,調用時可以傳入派生類指針作為實參。

正確答案:B

4、下列C++代碼的輸出是( )。

#include <iostream>
using namespace std;
int main() {int arr[5] = {2, 4, 6, 8, 10};int * p = arr + 2;cout << p[3] << endl;return 0;
}
A. 6
B. 8
C. 編譯出錯,無法運行。
D. 不確定,可能發生運行時異常。

正確答案:D

5、假定只有一個根節點的樹的深度為1,則一棵有N個節點的完全二叉樹,則樹的深度為( )。

A. ?log2(N)?+1\lfloor log_2(N) \rfloor + 1?log2?(N)?+1
B. ?log2(N)?\lfloor log_2(N) \rfloor?log2?(N)?
C. ?log2(N)?\lceil log_2(N) \rceil?log2?(N)?
D. 不能確定

正確答案:A

6、對于如下圖的二叉樹,說法正確的是( )。
在這里插入圖片描述

A. 先序遍歷是 ABDEC 。
B. 中序遍歷是 BDACE 。
C. 后序遍歷是 DBCEA 。
D. 廣度優先遍歷是 ABCDE 。

正確答案:D

7、圖的存儲和遍歷算法,下面說法錯誤的是( )。

A. 圖的深度優先遍歷須要借助隊列來完成。
B. 圖的深度優先遍歷和廣度優先遍歷對有向圖和無向圖都適用。
C. 使用鄰接矩陣存儲一個包含 個頂點的有向圖,統計其邊數的時間復雜度為 。
D. 同一個圖分別使用出邊鄰接表和入邊鄰接表存儲,其邊結點個數相同。

正確答案:A

8、一個連通的簡單有向圖,共有28條邊,則該圖至少有( )個頂點。

A. 5
B. 6
C. 7
D. 8

正確答案:B

9、以下哪個方案不能合理解決或緩解哈希表沖突( )。

A. 在每個哈希表項處,使用不同的哈希函數再建立一個哈希表,管理該表項的沖突元素。
B. 在每個哈希表項處,建立二叉排序樹,管理該表項的沖突元素。
C. 使用不同的哈希函數建立額外的哈希表,用來管理所有發生沖突的元素。
D. 覆蓋發生沖突的舊元素。

正確答案:D

10、 以下關于動態規劃的說法中,錯誤的是( )。

A. 動態規劃方法通常能夠列出遞推公式。
B. 動態規劃方法的時間復雜度通常為狀態的個數。
C. 動態規劃方法有遞推和遞歸兩種實現形式。
D. 對很多問題,遞推實現和遞歸實現動態規劃方法的時間復雜度相當。

正確答案:B

11、下面程序的輸出為( )。

#include <iostream>
using namespace std;
int rec_fib[100];
int fib(int n) {if (n <= 1)return n;if (rec_fib[n] == 0)rec_fib[n] = fib(n - 1) + fib(n - 2);return rec_fib[n];
}
int main() {cout << fib(6) << endl;return 0;
}
A. 8
B. 13
C. 64
D. 結果是隨機的。

正確答案:A

12、下面程序的時間復雜度為( )。

int rec_fib[MAX_N];
int fib(int n) {if (n <= 1)return n;if (rec_fib[n] == 0)rec_fib[n] = fib(n - 1) + fib(n - 2);return rec_fib[n];
}

A.O(2n)O(2^n)O(2n)
B.O(?n),?=5?12O(\phi^n),\phi=\frac{\sqrt{5} - 1}{2}O(?n),?=25??1?
C.O(n2)O(n^2)O(n2)
D.O(n)O(n)O(n)

正確答案:D

13、下面 search 函數的平均時間復雜度為( )。

int search(int n, int * p, int target) {int low = 0, high = n;while (low < high) {int middle = (low + high) / 2;if (target == p[middle]) {return middle;} else if (target > p[middle]) {low = middle + 1;} else {high = middle;}}return -1;
}

A.O(nlog(n))O(nlog(n))O(nlog(n))
B.O(n)O(n)O(n)
C.O(log(n))O(log(n))O(log(n))
D.O(1)O(1)O(1)

正確答案:C

14、下面程序的時間復雜度為( )。

int primes[MAXP], num = 0;
bool isPrime[MAXN] = {false};
void sieve() {for (int n = 2; n <= MAXN; n++) {if (!isPrime[n])primes[num++] = n;for (int i = 0; i < num && n * primes[i] <= MAXN; i++) {isPrime[n * primes[i]] = true;if (n % primes[i] == 0)break;}}
}

A.O(n)O(n)O(n)
B.O(nlogn)O(nlogn)O(nlogn)
C.O(nloglogn)O(nloglogn)O(nloglogn)
D.O(n2)O(n^2)O(n2)

正確答案:A

15、下列選項中,哪個不可能是下圖的廣度優先遍歷序列( )。
在這里插入圖片描述

A. 1, 2, 4, 5, 3, 7, 6, 8, 9
B. 1, 2, 5, 4, 3, 7, 8, 6, 9
C. 1, 4, 5, 2, 7, 3, 8, 6, 9
D. 1, 5, 4, 2, 7, 3, 8, 6, 9

正確答案:B

判斷題(每題 2 分,共 20 分)

1、C++語言中,表達式 9 & 12 的結果類型為 int 、值為 8 。

正確答案:正確

2、C++語言中,指針變量指向的內存地址不一定都能夠合法訪問。

正確答案:正確

3、對n個元素的數組進行快速排序,最差情況的時間復雜度為O(nlogn)。

正確答案:錯誤

4、題 一般情況下, long long 類型占用的字節數比 float 類型多。

正確答案:正確

5、 使用 math.h 或 cmath 頭文件中的函數,表達式 pow(10, 3) 的結果的值為 1000 、類型為 int 。

正確答案:錯誤

6、二叉排序樹的中序遍歷序列一定是有序的。

正確答案:正確

7、無論哈希表采用何種方式解決沖突,只要管理的元素足夠多,都無法避免沖突。

正確答案:正確

8、在C++語言中,類的構造函數和析構函數均可以聲明為虛函數。

正確答案:錯誤

9、 動態規劃方法將原問題分解為一個或多個相似的子問題,因此必須使用遞歸實現。

正確答案:錯誤

10、如果將城市視作頂點,公路視作邊,將城際公路網絡抽象為簡單圖,可以滿足城市間的車道級導航需求。

正確答案:錯誤

編程題 (每題 25 分,共 50 分)

線圖

【問題描述】
給定由n個結點與m條邊構成的簡單無向圖G,結點依次以1,2,…,n編號。簡單無向圖意味著G中不包含重邊與自環。G的線圖L(G)通過以下方式構建:
·

  • 初始時線圖L(G)為空。
  • 對于無向圖G中的一條邊,在線圖L(G)中加入與之對應的一個結點。
  • 對于無向圖G中兩條不同的邊(u1,v1),(u2,v2)(u_1,v_1),(u_2,v_2)(u1?,v1?),(u2?,v2?),若存在G中的結點同時連接這兩條邊(即u1,v1u_1,v_1u1?,v1?之一與u2,v2u_2,v_2u2?,v2?之一相同),則在線圖L(G)中加入一條無向邊,連接(u1,v1),(u2,v2)(u_1,v_1),(u_2,v_2)(u1?,v1?),(u2?,v2?)在線圖中對應的結點。
    ·
    請你求出線圖L(G)中所包含的無向邊的數量。

【輸入格式】
第一行,兩個正整數n,m,分別表示無向圖G中的結點數與邊數。
接下來m行,每行兩個正整數ui,viu_i,v_iui?,vi?,表示G中連接ui,viu_i,v_iui?,vi?的一條無向邊。

【輸出格式】
輸出共一行,一個整數,表示線圖L(G)中所包含的無向邊的數量。

【樣例輸入 1】
5 4
1 2
2 3
3 1
4 5
【樣例輸出 1】
3
【樣例輸入 2】
5 10
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5
【樣例輸出 2】
30
【樣例解釋1】
在這里插入圖片描述

【數據范圍】
對于60%的測試點,保證1≤n≤500,1≤m≤5001≤n≤500,1≤m≤5001n500,1m500
對于所有測試點,保證1≤n≤105,1≤m≤1051≤n≤10^5,1≤m≤10^51n105,1m105

調味平衡

【問題描述】
小A準備了n種食材用來制作料理,這些食材依次以1,2,…,n編號,第i種食材的酸度為aia_iai?,甜度為bib_ibi?。對于每種食材,小A可以選擇將其放入料理,或者不放入料理。料理的酸度A為放入食材的酸度之和,甜度B為放入食材的甜度之和。如果料理的酸度與甜度相等,那么料理的調味是平衡的。
過于清淡的料理并不好吃,因此小A想在滿足料理調味平衡的前提下,合理選擇食材,最大化料理的酸度與甜度之和。你能幫他求出在調味平衡的前提下,料理酸度與甜度之和的最大值嗎?

【輸入格式】
第一行,一個正整數n,表示食材種類數量。

接下來n行,每行兩個正整數ai,bia_i,b_iai?,bi?,表示食材的酸度與甜度。

【輸出格式】
輸出共一行,一個整數,表示在調味平衡的前提下,料理酸度與甜度之和的最大值。
【樣例輸入 1】
3
1 2
2 4
3 2
【樣例輸出 1】
8
【樣例輸入 2】
5
1 1
2 3
6 1
8 2
5 7
【樣例輸出 2】
2
【數據范圍】
對于40%的測試點,保證1≤n≤10,1≤ai,bi≤101≤n≤10,1≤a_i,b_i≤101n10,1ai?,bi?10
對于另外20%的測試點,保證1≤n≤50,1≤ai,bi≤101≤n≤50,1≤a_i,b_i≤101n50,1ai?,bi?10
對于所有測試點,保證1≤n≤100,1≤ai,bi≤5001≤n≤100,1≤a_i,b_i≤5001n100,1ai?,bi?500

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

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

相關文章

《Python 類設計模式:屬性分類(類屬性 VS 實例屬性)與方法類型(實例 / 類 / 靜態)詳解》

Python 類和對象&#xff1a;從 "圖紙" 到 "實物" 的編程思維面向對象編程&#xff08;Object-Oriented Programming&#xff0c;簡稱OOP &#xff09;是一種通過組織對象來編程的方法。1.初識類和對象&#xff1a;用生活例子看透核心概念1.1類-class物與類…

Eureka服務端啟動

目錄 1、相關文章 2、創建eureka-server子工程 3、父工程build.gradle引入版本依賴管理 4、子工程build.gradle引入依賴 5、將main重命名為EurekaApplication并修改代碼 6、添加application.yml文件 7、啟動工程并訪問 8、訪問界面如下 9、 完整目錄結構 1、相關文章 …

AWS Partner: Sales Accreditation (Business)

AWS Partner: Sales Accreditation &#xff08;Business&#xff09;云概念和AWS云計算什么是云計算&#xff1f;計算的演變趨勢云計算部署模型AWS 客戶采用的模式為什么客戶選擇AWSAWS競爭優勢高可用的全球基礎設施AWS服務服務廣度和深度AWS產品和服務服務類別AWS解決方案庫A…

深入理解設計模式之中介者模式:解耦對象交互的利器

為什么需要中介者&#xff1f;在軟件開發中&#xff0c;我們經常會遇到對象之間需要相互通信的場景。當系統規模較小時&#xff0c;對象直接相互引用并通信可能不會帶來太大問題。但隨著系統復雜度增加&#xff0c;對象間的交互關系會變得錯綜復雜&#xff0c;形成一個復雜的網…

從 0 安裝 Label Studio:搭建可后臺運行的數據標注平臺(systemd 實踐

本文將介紹如何使用 pip 安裝 Label Studio&#xff0c;并通過 systemd 實現開機自啟與后臺運行&#xff0c;適用搭建個人項目的數據標注平臺。 一、Label Studio 簡介 Label Studio 是一個開源、跨模態的數據標注工具&#xff0c;支持文本、圖像、音頻、視頻、HTML等多種類型…

【數據結構】鏈表(linked list)

目錄 一、鏈表的介紹 二、單鏈表 1. 單鏈表的初始化 2. 單鏈表的插入 &#xff08;1&#xff09;動態申請一個節點 &#xff08;2&#xff09;頭插法 &#xff08;3&#xff09;尾插法 &#xff08;4&#xff09;按照位置來插入 &#xff08;5&#xff09;在地址之前插…

反序列化漏洞1-PHP序列化基礎概念(0基礎超詳細)

一.PHP序列化基礎概念首先當我們看到反序列化漏洞這個概念&#xff0c;我們的第一個問題是什么是反序列化&#xff1f;那么我們要知道什么是反序列化就要知道什么是序列化。序列化就是可以將一個對象壓縮并格式化成字符串&#xff0c;可以將該對象保存下來&#xff0c;以便存儲…

【微服務】Ocelot微服務網關

目錄 一、目的 二、Ocelot介紹 三、.Net中使用Ocelot搭建網關服務 3.1 搭建網關Ocelot步驟 3.1.1、創建Net7 WebApi服務 3.1.2、Nuget引入-Ocelot程序包&#xff08;版本&#xff1a;19.0.2&#xff09; 3.1.3、配置中間件和IOC注冊 3.1.4 配置文件編輯Ocelot網關配置信…

零基礎入門:用按鍵精靈實現視頻自動操作(附完整腳本)

摘要&#xff1a;本文手把手教你編寫視頻平臺的自動化腳本&#xff0c;涵蓋點擊、循環、防檢測等核心技巧&#xff0c;無需編程基礎&#xff0c;輕松實現自動播放/點贊/跳過廣告。&#xff08;使用按鍵精靈2024版演示&#xff09; 一、應用場景 自動化操作&#xff1a;自動跳過…

AI(學習筆記第六課) 使用langchain進行AI開發 load documents(csv和文件夾)

文章目錄AI(學習筆記第六課) 使用langchain進行AI開發 load documents(csv和文件夾)學習內容&#xff1a;1.load documents&#xff08;csv&#xff09;1.1 學習url1.2 load csv文件1.2.1 默認load1.2.2 csv文件內容1.2.2 執行csv文件的load1.3 Customizing the CSV parsing an…

企業運維實戰:Jenkins 依賴 JDK21 與應用需 JDK1.8 共存方案(含流水線配置)

前言&#xff1a;在企業運維中&#xff0c;“工具升級”與“業務兼容”的平衡始終是核心挑戰。近期我們遇到一個典型場景&#xff1a;Jenkins 升級到 2.450 版本后&#xff0c;強制要求 JDK21 運行環境&#xff1b;但開發團隊的應用程序因框架依賴&#xff0c;必須使用 JDK1.8 …

爬蟲小知識三:selenium庫

前言 selenium 庫是一種用于 Web 應用程序測試的工具&#xff0c;它可以驅動瀏覽器執行特定操作&#xff0c;自動按照腳本代碼做出單擊、輸入、打開、驗證等操作&#xff0c;支持的瀏覽器包括 IE、Firefox、Safari、Chrome、Opera 等。 與 requests 庫不同的是&#xff0c;se…

Jmeter使用 -1

1 接口測試1.1 為什么要進行接口測試接口測試能夠繞過前端校驗&#xff0c;對后端的接口處理邏輯進行測試&#xff08;數據的邊界/格式/類型&#xff09;在一些需要重復測試的需求中&#xff0c;接口自動化的效率比手工執行效率高1.2 接口測試流程熟悉API接口文檔&#xff08;接…

GitHub 趨勢日報 (2025年07月16日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖2415markitdown570claude-code434ART330erpnext150MusicFree146rustdesk129vanna80…

Python+Tkinter制作音頻格式轉換器

我們將使用Python的Tkinter庫來構建一個音頻格式轉換器界面。由于音頻轉換需要實際的處理&#xff0c;我們將使用pydub庫&#xff08;需要安裝&#xff09;來進行音頻格式轉換。同時&#xff0c;我們會使用ffmpeg作為后端&#xff0c;因此請確保系統中已安裝ffmpeg并添加到環境…

Haproxy算法精簡化理解及企業級高功能實戰

文章目錄4. Haproxy的算法4.1 靜態算法4.1.1 static-rr&#xff1a;基于權重的輪詢調度1. 示例&#xff1a;4.1.2 first1. 示例2. 測試效果&#xff1a;4.2 動態算法4.2.1 roundrobin1. 示例2. 動態調整權重4.2.2 leastconn1. 示例4.3 其他算法4.3.1 source1. 示例2. 測試4.3.2…

git fork的項目遠端標準協作流程 倉庫設置[設置成upstream]

這是一個在開源協作中非常常見的配置。 簡單來說&#xff0c;upstream 在這里指的是你 Fork 來的那個原始的、官方的倉庫。 下面我們來詳細解釋一下這個 git remote -v 輸出的含義&#xff1a; 1. 兩條“遙控器” (Remotes) 你的 git 配置了兩個遠程倉庫的地址&#xff0c;就像…

[FFmpeg] 輸入輸出訪問 | 管道系統 | AVIOContext 與 URLProtocol | 門面模式

鏈接&#xff1a;https://trac.ffmpeg.org/ docs&#xff1a;FFmpeg FFmpeg 是一個強大的多媒體框架&#xff0c;旨在處理媒體處理的各個階段。 它就像一個數字媒體工廠&#xff0c;包含以下部門&#xff1a;打包/解包&#xff08;容器處理&#xff09;、 轉譯/壓縮&#xff…

微服務的編程測評系統2

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄前言工程創建創建ck-oj創建oj-modules創建具體微服務oj-system推送碼云管理員登錄邏輯分析docker安裝mysqldocker客戶端docker desktop安裝安裝mysqlmysql-plus和數據…

AR智能巡檢:電力運維的數字化變革

在電力行業快速發展的當下&#xff0c;傳統運維方式已難以滿足現代電網對高效、安全的需求。近年來&#xff0c;增強現實&#xff08;AR www.teamhelper.cn &#xff09;技術的興起為電力巡檢帶來了全新的解決方案。通過實時數據可視化、遠程協作和智能分析&#xff0c;AR技術…