CSP-S 提高级 · CSP 2021 提高级第一轮 第 18 题

阅读程序 · 答案 BAD · 考点:进制与编码、字符串(string)、字符数组与字符串处理

← 整套速查表 CSP-S 提高级 全部真题

题目

(3)

![](https://ipic.luogu.com.cn/k2oqx.png) ![](https://ipic.luogu.com.cn/uhixa.png) 假设输入总是合法的(一个整数和一个不含空白字符的字符串,用空格隔开),完成下面的判断题和单选题:

判断题

28. 程序总是先输出 一行 一个整数,再输出 一行 一个字符串。( )

29. 对于任意不含空白字符的字符串 str1,先执行程序输入0 str1,得到输出的第二行记为 str2 再执行程序输入1 str2,输出的第二行必为 str1。( )

30. 当输入为1 SGVsbG93b3JsZA==时,输出的第二行为HelloWorld。( )

单选题

31. 设输入字符串长度为 $n$,encode 函数的时间复杂度为( )。 A. $O( \sqrt{n})$ B. $O(n)$ C. $O(n\log n)$ D. $O(n^2)$

32. 输出的第一行为( )。 A. 0xff B. 255 C. 0xFF D. -1

33. (4 分) 当输入为 0 CSP2021csp 时,输出的第二行为( )。 A. Q1NQMjAyMWNzcAv= B. Q1NQMjAyMGNzcA== C. Q1NQMjAyMGNzcAv= D. Q1NQMjAyMWNzcA==

答案:BAD

考点

进制与编码字符串(string)字符数组与字符串处理 讲解 →字符数组与字符串处理 真题汇总 →

解题思维

这题核心是Base64编码解码机制。拿到题先盯住flag参数:0是编码(字符串→Base64),1是解码(Base64→字符串)。编码时每3字节变4字符,末尾补'=';解码要还原二进制再转字符。输出格式别被第一行校验值带偏,第二行才是关键。

常见错误

最容易栽跟头的地方有三处:一是把flag=0和flag=1搞反,导致编码结果当成解码去验证;二是忽略Base64末尾的填充规则,比如输入长度不是3的倍数时少补或多补'=',导致选项全错;三是大小写敏感问题,Base64字符集里A-Z和a-z完全独立,像判断题30里把'X'写成'x'或者大小写混用,直接判定错误。还有学生常盯着第一行输出,以为那是答案,其实那是校验码或错误标识,真正考的是第二行字符串。

详细解析(节选)

考察知识点

字符串处理、字符数组与字符串、进制与编码、Base64编码原理

概念定义

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断