共63道题,当前是第49

Description

1	#include < cstdio>
2	#include < cstring>
3	using namespace std;
4	char s[101];
5	int n, cnt[26];
6	int main() {
7	    scanf("%s", s);
8	    n = strlen(s);
9	    for (int i = 0; i < n; i++) {
10	        if (s[i] >= 'A' && s[i] <= 'Z')
11	            cnt[s[i]-'A']++;
12	        if (s[i] >= 'a' && s[i] <= 'z')
13	            cnt[s[i]-'a']++;
14	        if (s[i] >= '0' && s[i] <= '9')
15	            cnt[s[i]-'0']++;
16	    }
17	    int p = 0;
18	    for (int i = 1; i < 26; i++)
19	        if (cnt[i] > cnt[p])
20	            p = i;
21	    printf("%d\n", p);
22	    return 0;
23	}

假设输入的字符串长度不超过 $100$,完成下面的判断题和单选题:

1. 错误。输入的字符串可包含出字母和数字字符以外的字符,只不过程序并不会处理。
2. 错误。程序运行时不会发生错误,因为 `s[n]=='\0'`,不满足任何一个 if 条件。
3. 正确。因为输入的字符串可能包含 $ASCII$ 码大于 `'z'` 的 $ASCII$ 码的字符,此时对于 $cnt$ 数组来说,可能发生数组越界。
4. 正确。因为数字字符对应的是 $cnt[0]$ 到 $cnt[9]$,所以当输入的字符串全由数字字符组成时,结果必然在 $0 \sim 9$ 范围内。
5. C。字符串 `ABCDcbaAcDbC` 中字符 `'C/c'` 出现的次数最多( $4$次),对应的下标为 $2$ 。
6. C。字符串 `a2B3233CCDC` 中字符 `'C/2'` 出现的次数最多( `'C'`出现了 $3$ 次,`'2'` 出现了 $2$ 次,共 $5$ 次),对应的下标为 $2$。

Question

输入的字符串只能由小写字母或大写字母组成。( )

将第 $9$ 行的 `i < n` 改成 `i <= n`,程序运行时可能会发生错误。( )

将第 $12$ 行的 `s[i] >= 'a' && s[i] <= 'z'` 改成 `s[i] >= 'a'`,程序运行时可能会发生错误。( )

若输入的字符串全部由数字字符组成,则输出的整数必然小于 $10$。( )

若输入为 `ABCDcbaAcDbC`,输出为( )。

若输入为 `a2B3233CCDC`,输出为( )。