共63道题,当前是第55

Description

1   #include <iostream>
2   using namespace std;
3   char s[100];
4   int cnt[26];
5   int main() {
6       cin >> s;
7       for (int i = 0; s[i] != '\0'; i++) {
8           if (s[i] >= 'a' && s[i] <= 'z')
9               s[i] -= 'a' - 'A';
10          cnt[s[i]-'A']++;
11      }
12      for (int i = 0, j = 0; s[i] != '\0' && j < 26; i++) {
13          while (!cnt[j])
14              j++;
15          s[i] = 'a' + j;
16          cnt[j]--;
17      }
18      cout << s << endl;
19      return 0;
20  }

1. 错误。也可包含小写英文字母,因为程序中有将小写英文转成大写英文字母的实现。 
2. 正确。程序实现的功能就是将输入的字符串中的字符全部转成大写英文字母并从小到大排序后输出,所以输出的字符串长度与输入的字符串长度相同。
3. 错误。当输入为 `rUiBA`时,输出应为 `abiru`。 
4. 错误。当输入为 `niceToMeetYou`,输出应为 `ceeeimnoottuy`。
5. B。当输入的字符串是升序的且仅由小写英文字母组成时,输出的字符串与输入的字符串一样。
6. C。当输入为 `codeInRUIBA` 时对应的输出结果为 `abcdeiinoru`。 

Question

输入的字符串应当只由大写英文字母组成,否则会发生数组越界。( )

输入的字符串长度与输出的字符串长度相同。( )

当输入为 `rUiBA` 时,输出为 `abiru`。( )

当输入为 `niceToMeetYou`,输出为 `cieeemnoottyu`。( )

若输入的字符串不是空串,则( )

当输入为 `codeInRUIBA` 时,输出为( )。