万卷网 > 题目详情
题型:组合题

01 #include <iostream>

02 #include <string>

03 using namespace std;

04 

05 char base[64];

06 char table[256];

07 

08 void init()

09 {

10 for (int i = 0; i < 26; i++) base[i] = 'A' + i;

11 for (int i = 0; i < 26; i++) base[26 + i] = 'a' + i;

12 for (int i = 0; i < 10; i++) base[52 + i] = '0' + i;

13 base[62] = '+', base[63] = '/';

14 

15 for (int i = 0; i < 256; i++) table[i] = 0xff;

16 for (int i = 0; i < 64; i++) table[base[i]] = i;

17 table['='] = 0;

18 }

19 

20 string decode(string str)

21 {

22 string ret;

23 int i;

24 for (i = 0; i < str.size(); i += 4) {

25 ret += table[str[i]] << 2 | table[str[i + 1]] >> 4;

26 if (str[i + 2] != '=')

27 ret += (table[str[i + 1]] & 0x0f) << 4 | table[str[i + 

2]] >> 2;

28 if (str[i + 3] != '=')

29 ret += table[str[i + 2]] << 6 | table[str[i + 3]];

30 }

31 return ret;

32 }

33 

34 int main()

35 {

36 init();

37 cout << int(table[0]) << endl;

38 

39 string str;

40 cin >> str;

41 cout << decode(str) << endl;

42 return 0;

43 }

(1).

设输入字符串长度为 n,decode 函数的时间复杂度为( )。

A.

B.

Θ(n)

C.

Θ(n log n)

D.

Θ(n2)

(2).

可能存在输入不同,但输出的第二行相同的情形。( )

A.正确 B.错误
(3).

当输入为“Y3Nx”时,输出的第二行为( )。

A.

“csp”

B.

“csq”

C.

“CSP”

D.

“Csp”

(4).

输出的第一行为“-1”。( )

A.正确 B.错误
(5).

输出的第二行一定是由小写字母、大写字母、数字和“+”、“/”、“=”构成的字符串。( )

A.正确 B.错误
(6).

当输入为“Y2NmIDIwMjE=”时,输出的第二行为( )。

A.

“ccf2021”

B.

“ccf2022”

C.

“ccf 2021”

D.

“ccf 2022”

更新时间:2022-11-24 17:54:42 |
【知识点】 CCF非专业级别软件能力认证CSP-J/入门级

相似题推荐

简答题

T4多边形


2026-04-17
简答题

T3异或和


2026-04-17
简答题

T2座位


2026-04-16
简答题

T1拼数

2026-04-16
单选题

假设a、b、c都是布尔变量,逻辑表达式(a &&b)IⅡ(!c &&a)的值与下列哪个表达式不始终相等?()

A.

a &&(bⅡ!c)

B.

(al|!c)&&(bⅡ !c)&&(all a)

C.

a &&(!b II c)

D.

!(!a|!b)II(a &&!c)

2025-10-16
公众号
客服 反馈
顶部