← 查看本卷题目
组合题6 个小题
已作答 0 / 6
#include <iostream>#include <string>using namespace std; char base[64];char table[256]; void init(){    for (int i = 0; i < 26; i++) base[i] = 'A' + i;    for (int i = 0; i < 26; i++) base[26 + i] = 'a' + i;    for (int i = 0; i < 10; i++) base[52 + i] = '0' + i;    base[62] = '+', base[63] = '/';     for (int i = 0; i < 256; i++) table[i] = 0xff;    for (int i = 0; i < 64; i++) table[base[i]] = i;    table['='] = 0;} string encode(string str){    string ret;    int i;    for (i = 0; i + 3 <= str.size(); i += 3) {        ret += base[str[i] >> 2];        ret += base[(str[i] & 0x03) << 4 | str[i + 1] >> 4];        ret += base[(str[i + 1] & 0x0f) << 2 | str[i + 2] >> 6];        ret += base[str[i + 2] & 0x3f];    }    if (i < str.size()) {        ret += base[str[i] >> 2];        if (i + 1 == str.size()) {            ret += base[(str[i] & 0x03) << 4];            ret += "==";        }        else {            ret += base[(str[i] & 0x03) << 4 | str[i + 1] >> 4];            ret += base[(str[i + 1] & 0x0f) << 2];            ret += "=";        }    }    return ret;} string decode(string str){    string ret;    int i;    for (i = 0; i < str.size(); i += 4) {        ret += table[str[i]] << 2 | table[str[i + 1]] >> 4;        if (str[i + 2] != '=')            ret += (table[str[i + 1]] & 0x0f) << 4 | table[str[i + 2]] >> 2;        if (str[i + 3] != '=')            ret += table[str[i + 2]] << 6 | table[str[i + 3]];    }    return ret;} int main(){    init();    cout << int(table[0]) << endl;     int opt;    string str;    cin >> opt >> str;    cout << (opt ? decode(str) : encode(str)) << endl;    return 0;}

假设输入总是合法的(一个整数和一个不含空白字符的字符串,用空格隔开),完成下面的判断题和单选题:

第33题单选题原卷 4 分

(4 分) 当输入为 0 CSP2021csp 时,输出的第二行为( )。

填写答案