共48道题,当前是第8

初赛真题

01 #include<bits/stdc++.h>
02 using namespace std;
03 int main() {
04     string s;
05     char s1[100];
06     int len, j = 0;
07     cin >> s;
08     len = s.size();
09     memset(s1, 0, sizeof(s1));
10     for (int i = 0; i < len; i++) {
11         if (i % 2 == 0)
12             if ((s[i] >= 'A' && s[i] < 'Z') || 
13                 (s[i] >= 'a' && s[i] < 'z')) {
14                     s1[j] = s[i] + 1;
15                     ++j;
16             }
17     }
18     cout << s1 << endl;
19     return 0;
20 }

1. A。
2. B。
3. B。
4. B。
5. B。
6. C。

这段代码所做的就是将输入的字符串中所有出现在偶数下标上的非 $Z$ 或 $z$ 的字母字符储存下来,并使其 ASCII 码加一。最终的输出就是储存下来的所有字符。要注意的是,对于判断为输出字符的条件,需要是出现在偶数下标位置上并且不是 $z$ 或 $Z$ ,还需要是字母才可以。

Question

1. 输出的字符串只能是字母组成。( )

2. 将 12,13 行的 < 改为 <= 则输出结果有可能包含数字。( )

3. 将第 9 行 memset(s1, 0, sizeof(s1)); 删除,程序运行结果不会改。( )

4. 将 11 行 if (i % 2 == 0) 删除,输出字符的长度和输入字符的长度一致。( )

5. 如输入的字符串长度为 10 ,则输出的字符串长度最长可能为多少( )

6. 如输入的字符串都是字母,则输出中哪个字母可能出现( )

陈伦制作 版权所无 粤ICP备16127491号-1