#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[负数/越界] 导致数组越界,行为未定义。