#4345. CSP 2020 普及组级第一轮:阅读程序第一题

CSP 2020 普及组级第一轮:阅读程序第一题

#include <cstdlib>
#include <iostream>
using namespace std;

char encoder[26] = {'C', 'S', 'P', 0};
char decoder[26];

string st;

int main() {
    int k = 0;
    for (int i = 0; i < 26; ++i)//12
        if (encoder[i] != 0) ++k;
    for (char x = 'A'; x <= 'Z'; ++x) {
        bool flag = true;
        for (int i = 0; i < 26; ++i)
            if (encoder[i] == x) {
                flag = false;
                break;
            }
        if (flag) {
            encoder[k] = x;
            ++k;
        }
    }

    for (int i = 0; i < 26; ++i)//26
        decoder[encoder[i] - 'A'] = i + 'A';
    cin >> st;
    for (int i = 0; i < st.length(); ++i)
        st[i] = decoder[st[i] - 'A'];
    cout << st;
    return 0;
}

判断题和单选题:

判断题

1、输入的字符串应当只由大写字母组成,否则在访问数组时可能越界。( )

{{ select(1) }}

  • 正确
  • 错误

2、若输入的字符串不是空串,则输入的字符串与输出的字符串一定不一样。( )

{{ select(2) }}

  • 正确
  • 错误

3、将第12行的“i < 26”改为“i < 16”,程序运行结果不会改变。( )

{{ select(3) }}

  • 正确
  • 错误

4、将第26行的“i < 26”改为“i < 16”,程序运行结果不会改变。( )

{{ select(4) }}

  • 正确
  • 错误

单选题:

5、若输出的字符串为“ABCABCABCA”,则下列说法正确的是( )。

{{ select(5) }}

  • 输入的字符串中既有 S 又有 P
  • 输入的字符串中既有 S 又有 B
  • 输入的字符串中既有 A 又有 P
  • 输入的字符串中既有 A 又有 B

6、若输出的字符串为“CSPCSPCSPCSP”,则下列说法正确的是( )。

{{ select(6) }}

  • 输入的字符串中既有 P 又有 K
  • 输入的字符串中既有 J 又有 R
  • 输入的字符串中既有 J 又有 K
  • 输入的字符串中既有 P 又有 R