通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"CSP考试" 试卷中 CSP-S1提高级初赛试卷[2021] 中有题目如下:
第1题
#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; }
假设输入总是合法的(一个整数和一个不含空白字符的字符串,用空格隔开),程序总是先输出一行一个整数,再输出一行一个字符串。
正确
错误
所属试卷:CSP-S1提高级初赛试卷[2021]
设二叉树的中序序列为 BCDA,前序序列为 ABCD,
下列叙述中正确的是( )。
通常软件测试实施的步骤是( )。
下面程序用STL的条件计数算法和自定义的函数对象对一个
已知x=[1,2,3,2,3],执行语句x.remov
表达式 3<5>2 的值为__________。
已知x={1:2,2:3},那么表达式x.get(2,
以下程序的功能是判断输入的某个年份是否是闰年,请填空。
当a=1,b=2,c=3时,执行以下程序段后a=___
由N个有序整数组成的数列已放在一堆数组中,给定程序MO
什么是链接?符号链接与硬链接的区别是什么?答:链接是指
结束后台进程的命令是( )。
Linux为用户提供的接口有____ 、____、__
通过将______动态链入块设备控制结构blk_dev
数据库设计的步骤主要包括需求分析、概念结构设计、
包含在某些候选码中的属性,称为 。
栈和队列是特殊的线性表,其特殊性体现在插入和删除位置受
由一棵二叉树的前序序列和后序序列可以唯一确定它。
使用快速排序算法对数据进行升序排序,若经过一次划分后得
在屏幕上正确的输出形式是( )。
while循环的循环体至少执行一次,而不论while表
引用数组元素时,下标可以是整型表达式或整型常量。
int a[10];合法的数组元素的最小下标值为( )
假设输入总是合法的(一个整数和一个不含空白字符的字符串
假设输入的 n 和 d[i] 都是不超过 10000的
本题t是s的子序列的意思是:从s中删去若干个字符,可以
目前个人电脑的( )市场占有率最靠前的厂商包括Inte
输入: NOIP 3输出: ______
已知大写字母A的ASCII编码为65(10进制),则大
(选排列)下面程序的功能是利用递归方法生成从 1 到
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2