QQ扫一扫联系
#include <stdio.h> #include <string.h> char base[64]; char table[256]; char str[256]; char ans[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; } void decode(char *str) { char *ret = ans; int i, len = strlen(str); for (i = 0; i < len; 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]]; } } int main() { init(); printf("%d\n", (int)table[0]); scanf("%s", str); decode(str); printf("%s\n", ans); return 0; }
判断题
1)输出的第二行一定是由小写字母、大写字母、数字和”+”、”/”、”=”构成的字符
串。()
2.)可能存在输入不同,但输出的第二行相同的情形。()
3)输出的第一行为”-1”。()
单选题
4)设输入字符串长度为n,decode函数的时间复杂度为()
5)当输入为”Y3Nx”时,输出的第二行为()
6)当输入为”Y2NmIDIwMjE=”时,输出的第二行为()
1.
A.正确
B.错误
2.
A.正确
B.错误
3.
A.正确
B.错误
4.
A.O(√n)
B.O(n)
C.O(n log n)
D.O(n^2)
5.
A.”csp”
B.“csq”
C.”CSP”
D.“Csp”
6.
A.”ccf2021”
B.”ccf2022”
C.”ccf 2021”
D.”ccf 2022”
第一空(1.5分):___________________________
第二空(1.5分):___________________________
第三空(1.5分):___________________________
第四空(3分):___________________________
第五空(3分):___________________________
第六空(3.5分):___________________________