2024年12月 GESP C++ 3级认证考试真题(含编程操作题部分)
选 单选题(共 15 题,每题 2 分)
下列二进制表示的十进制数值分别是( )
[10000011]原=( )
[10000011]补=( )
关于计算机中的编码,下列说法中错误的是()
16 进制数 B2025 转换成 8 进制数是( )
$625.625$ 变成二进制是( )。
下面逻辑运算中,正确的是( )
补码 1111 1101 进行运算 1111 1101 >> 1 以后得到的结果是( )
下列代码输出的是
string s="1234@@chenadai";
string str="12345";
s.replace(1,5,str);
cout<<s<<endl;
a | 10($a$ 与 $10$ 都是十进制,且二进制表示最高位为 $1$)运算的结果是( )。
下列程序输出的是( )
string ch="hello";
if(ch[5]==NULL)
{
cout<<"right"<<endl;
}
else if (ch[5]=='\0')
{
cout<<"wrong"<<endl;
}
else
{
cout<<"hello"<<endl;
}
下列程序中,假设一个字符占用的内存空间是 $1$ ,下列程序中,ch 占用的内存空间是( )
char ch[] = "hello world";
size_t ret = strlen(ch);
cout << ret << endl;
下列程序最后输出的是()
int a=65;
cout<<tolower(a)<<endl;
想要计算从数字 $n$ 到数字 $m$ 之间(包含 $n$ 和 $m$)有多少个数字 $d$ 出现,下列程序哪个能够实现( )。
兔子五元一只,鸡三元一只,小鸭子一元三只,现在你有一百元要买一百只,兔子、鸡、鸭子,问兔子、鸡、鸭子各买多少只,每种必须至少一只,下列哪个程序能实现。( )。
求小于等于 $N$ 的素数的方法中,有一种方法是将所有从 $2$ 到它本身减 $1$ 的数都除一遍,如果不能整除,就是素数。下列哪个程序,体现了这种方法()
工人工作一天,会得到一个金环作为工资报酬,某个工作需要 $15$ 天完成,一条 $15$ 个环的金环项链,为了严格执行每天工作结束时,完成对工人工资的结算,最少需要将金环项链剪裁成几段,每段几个金环( )
判 判断题(共 10 题,每题 2 分)
为了简化计算机基本运算电路,使加减法都只需要通过加法电路实现,也就是让减去一个正数或加上一个负数这样的运算可以用加上一个正数来代替。于是改变负数存储的形式,存储成一种可以直接当成正数来相加的形式,这种形式就是补码。
使用原码进行的计算,$2 + (-1)$ 的结果是 $-3$
反码计算加减法:加法与减法结果都是正确的,只是解决不了 $-0$ 的问题
进制数 63,在转换成二进制的计算过程中,产生了如下的式⼦:
63/2=31 余 1
31/2=15 余 1
15/2=7 余 1
7/2=3 余 1
3/2=1 余 1
1/2=0 余 1
按照从前往后的顺序,获得 $63$ 的二进制值是 $111111$
下列程序输出的是 $A$
char x=65;
x=x&00001111;
cout<<x<<endl;
下列可执行程序段中,最后 $pos$ 的值是 $4$
string str="chenADai";
int pos = str.find('D');
--pos&11;
string ch="chen";
cout<<ch[4]<<endl;
该段程序将不能正确执行
char a='A';
a=a+32;
cout<<(int)a<<endl;
将输出 $97$
自然界中,最小的素数是 $2$
CCF(十六进制) = 12363(七进制)
编 编程操作题(共 2 题,共 50 分)
试题名称:数字替换
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
小杨有一个包含 $n$ 个数字的序列 $A$,即 $A=[a_1,a_2,\ldots,a_n]$,他想将其中大于 $k$ 的数字都替换为序列的最大值,将其中小于 $k$ 的数字都替换为序列的最小值,请你帮他计算出替换后的序列。
输入格式
第一行包含两个正整数 $n,k$,含义如题面所示。
第二行包含 $n$ 个数字,代表序列 $A$。
输出格式
输出 $n$ 个整数,代表替换后的结果。
样例输入 #1
5 0
-2 -1 0 1 2
样例输出 #1
-2 -2 0 2 2
说明/提示
对于全部数据,保证有 $1\le n\le 10^5$,$|k|,|a_i|\le 10^5$。
试题名称:打印数字
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
小杨为数字 $0,1,2$ 和 $3$ 设计了一款表示形式,每个数字占用了 $5\times 5$ 的网格。数字 $0,1,2$ 和 $3$ 的表示形式如下:
..... ****. ..... .....
.***. ****. ****. ****.
.***. ****. ..... .....
.***. ****. .**** ****.
..... ****. ..... .....
小杨想请你将给定的数字 $n$ 转换为对应的表示形式。
输入格式
第一行包含一个非负整数代表 $n$。
输出格式
输出对应的表示形式。
样例输入 #1
12230
样例输出 #1
****.....................
****.****.****.****..***.
****.................***.
****..****.********..***.
****.....................
说明/提示
对于全部数据,保证有 $0\le n\le 10^6$,且 $n$ 仅由数字 $0,1,2,3$ 组成。