模拟卷二字符串阅读与完善程序

阅读程序,回答问题(字符串词频统计)。

阅读与完善程序 阅读1 · CSP-S 提高级 初赛 模拟试卷(二)
#include <iostream>
#include <string>
using namespace std;
int main() {
    string s = "abracadabra";
    int cnt[26] = {0};
    for (char c : s) cnt[c - 'a']++;
    cout << cnt['a' - 'a'] << " " << cnt['b' - 'a'] << endl;
    return 0;
}
  • (1) 程序运行时输出的结果是______。(4 分)
  • (2) 该程序实现的功能是______。(4 分)
  • (3) 若将字符串改为全大写字母(如 "ABC"),程序会出现什么问题?______。(5 分)
答案解析
(1)"abracadabra" 中 a 出现 5 次、b 出现 2 次,输出 5 2。(2)统计字符串中各小写字母出现次数(词频统计)。(3)大写字母 c-'a' 得到负数或 ≥26 下标,访问 cnt[负数/越界] 导致数组越界,行为未定义。

本题收录于「CSP-S 提高级 初赛 模拟试卷(二)」,共 25 道题,全部提供答案与解析。可进入在线练习系统按知识点随机组卷、自动批改并归集错题。

进入在线练习 查看完整试卷 本类全部题目