GESP 常考字符串题 10 题精讲
作者:野牛程序员:2026-01-18 08:53:11GESP阅读 2023
GESP 常考字符串题 10 题精讲
GESP 常考字符串题 10 题精讲
字符串题在 GESP 考试中几乎必出,难度不高,但非常容易因细节失分。以下 10 题,覆盖 90% 常见考法。
题目 1:判断是否为回文字符串 ⭐⭐⭐
题目描述
输入一个字符串,判断是否为回文串,是输出 YES,否则输出 NO。
核心考点
字符串长度
左右对称比较
标准解法(双指针)
for (int i = 0; i < len / 2; i++) {
if (s[i] != s[len - 1 - i]) {
flag = false;
break;
}
}📌 GESP 最爱考,必会
题目 2:反转字符串 ⭐⭐⭐
题目描述
输入一个字符串,倒序输出。
核心考点
下标计算
字符数组操作
标准写法
for (int i = len - 1; i >= 0; i--) {
cout << s[i];
}⚠️ 不需要新数组也能完成。
题目 3:统计字符串长度 ⭐⭐
题目描述
输入一个字符串,输出字符串长度。
核心考点
strlen使用结尾
\0不计入
int len = strlen(s);
📌 使用 cin.getline 时最安全。
题目 4:统计某个字符出现次数 ⭐⭐
题目描述
输入一行字符串和一个字符,统计该字符出现次数。
标准思路
遍历字符串
逐个字符比较
int cnt = 0;
for (int i = 0; i < len; i++) {
if (s[i] == ch) cnt++;
}题目 5:判断是否全为字母 ⭐⭐
题目描述
判断字符串中是否只包含英文字母。
核心考点
ASCII 范围判断
if (!((s[i] >= 'a' && s[i] <= 'z') ||
(s[i] >= 'A' && s[i] <= 'Z'))) {
flag = false;
}📌 GESP 一级常考。
题目 6:统计大写字母个数 ⭐⭐
题目描述
统计字符串中大写字母的数量。
标准判断条件
if (s[i] >= 'A' && s[i] <= 'Z') {
cnt++;
}⚠️ 不可混用 isupper(部分考场未讲)。
题目 7:字符串复制 ⭐⭐
题目描述
把一个字符串复制到另一个数组中。
标准写法
for (int i = 0; i <= len; i++) {
b[i] = a[i];
}📌 <= 是为了复制 \0。
题目 8:比较两个字符串是否相等 ⭐⭐⭐
题目描述
输入两个字符串,判断是否完全相同。
标准解法 1(推荐)
if (strcmp(a, b) == 0) cout << "YES"; else cout << "NO";
标准解法 2(手写比较)
bool same = true;
for (int i = 0; i <= len; i++) {
if (a[i] != b[i]) {
same = false;
break;
}
}题目 9:删除字符串中的某个字符 ⭐⭐⭐
题目描述
删除字符串中所有指定字符。
核心技巧
用新下标重新存放
int k = 0;
for (int i = 0; i < len; i++) {
if (s[i] != ch) {
t[k++] = s[i];
}
}
t[k] = '\0';📌 属于“进阶但常考”题型。
题目 10:统计单词个数 ⭐⭐⭐⭐
题目描述
统计一行字符串中单词的数量(单词以空格分隔)。
简化版 GESP 思路
遇到“非空格 → 空格”算一个词
int cnt = 0;
for (int i = 0; i < len; i++) {
if (s[i] != ' ' && (i == 0 || s[i - 1] == ' ')) {
cnt++;
}
}📌 GESP 二级高频题。
GESP 字符串题通用检查清单(考前必看)
✅ 是否使用 cin.getline
✅ 是否正确处理 \0
✅ 循环条件是否越界
✅ 是否存在多余输出
✅ 输出格式是否完全一致
一句话总结(送分关键)
字符串题不难
难在细节
稳定写法就是满分写法
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:回文字符串(GESP 标准写法)
- 下一篇:编写程序:实现求圆的面积和周长
