c++四级考级例题
时间: 2025-06-06 08:18:55 AIGC 浏览: 25
### C++ 四级考试例题与练习题
C++ 四级考试通常涉及较复杂的编程逻辑和算法设计,以下是一些典型的例题和练习题供参考。
#### 例题 1:小杨同学的做题计划
问题描述如下:小杨同学为了提高自己的实力制定了做题计划,在第 k 天时,他必须完成 k 道题,否则他就会偷懒。给定 n 套题单,每套题单包含一定数量的题目,每套题单只能使用一次,且每天只能使用一套题单中的题目。对于每套题单,不必完成所有题目。求小杨同学最多能坚持多少天不偷懒[^3]。
**输入格式**
第一行包含一个整数 n(1 <= n <= 10^6),表示题单的数量。
第二行包含 n 个整数 a1, a2, ..., an(1 <= ai <= 10^9),分别表示每套题单包含的题目数量。
**输出格式**
输出一行,表示小杨同学偷懒前最多做题的天数。
**样例输入**
```
4
3 1 4 1
```
**样例输出**
```
3
```
**解题思路**
可以通过排序将题单按题目数量从小到大排列,然后依次分配给每一天。如果某一天无法满足需求,则停止计算。此问题的核心在于贪心算法的应用[^3]。
```python
def max_days(n, arr):
arr.sort()
days = 0
for i in range(n):
if arr[i] >= i + 1:
days += 1
else:
break
return days
# 示例代码运行
n = 4
arr = [3, 1, 4, 1]
print(max_days(n, arr)) # 输出 3
```
---
#### 例题 2:字符串匹配
给定两个字符串 s 和 t,判断 t 是否为 s 的子序列。如果是,返回 "Yes";否则返回 "No"。子序列是指通过删除某些字符而不改变其余字符相对顺序得到的字符串。
**输入格式**
第一行为字符串 s,长度不超过 10^5。
第二行为字符串 t,长度不超过 10^5。
**输出格式**
输出 "Yes" 或 "No"。
**样例输入**
```
abcde
ace
```
**样例输出**
```
Yes
```
**解题思路**
可以使用双指针法解决该问题,时间复杂度为 O(n)。通过逐一比较两个字符串中的字符,判断是否能够完整匹配 t[^1]。
```python
def is_subsequence(s, t):
i, j = 0, 0
while i < len(s) and j < len(t):
if s[i] == t[j]:
j += 1
i += 1
return "Yes" if j == len(t) else "No"
# 示例代码运行
s = "abcde"
t = "ace"
print(is_subsequence(s, t)) # 输出 Yes
```
---
#### 练习题推荐
以下是几道适合 C++ 四级考试的练习题,涵盖数组、字符串、动态规划等内容:
1. **最大子数组和**
给定一个整数数组,找到其中和最大的连续子数组,并返回其和。例如,输入 [-2, 1, -3, 4, -1, 2, 1, -5, 4],输出为 6(子数组 [4, -1, 2, 1])。
2. **最长公共子序列**
给定两个字符串,求它们的最长公共子序列长度。例如,输入 "abcde" 和 "ace",输出为 3。
3. **最小路径和**
给定一个 m x n 的网格,从左上角到右下角,每次只能向右或向下移动,求路径上的最小数字和。
---
####
阅读全文
相关推荐


















