CCF编程能力等级认证GESP—C++1级—20250322

单选题(每题 2 分,共 30 分)

1、2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是贺岁片《哪吒2》票房惊人,入了全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是( )。

A. 《哪吒2》是一款新型操作系统
B. DeepSeek是深海钻探软件
C. 《哪吒2》可以生成新的软件
D. DeepSeek可以根据《哪吒2》的场景生成剧情脚本

正确答案:D
1.DeepSeek 是一个国产人工智能大模型,专注于自然语言处理、图像识别和数据分析等任务。它可以生成文本内容,因此可以根据《哪吒2》的场景生成剧情脚本。
2.《哪吒2》 是一部动画电影,与操作系统或软件生成无关。

2、在某集成开发环境中编辑一个源代码文件时不可以执行下面( )操作。

A. 修改变量定义
B. 保存代码修改
C. 撤销代码修改
D. 插入执行截图

正确答案:D
选项 A:在集成开发环境中编辑源代码文件时,修改变量定义是非常常见的操作。开发者可以根据需求对变量的类型、名称、初始值等进行修改,以满足程序的逻辑和功能要求。所以在集成开发环境中可以执行修改变量定义的操作。
选项 B:保存代码修改是集成开发环境的基本功能之一。当开发者对源代码文件进行了修改后,需要将这些修改保存到磁盘上,以便后续继续使用或进行版本控制。集成开发环境通常会提供保存文件的快捷键或菜单选项,方便开发者保存代码。所以在集成开发环境中可以执行保存代码修改的操作。
选项 C:撤销代码修改也是集成开发环境中常用的功能。在编辑代码的过程中,开发者可能会不小心进行了错误的修改,或者想要回到之前的某个状态。此时,集成开发环境提供的撤销功能可以帮助开发者撤销上一步或多步的操作,恢复到之前的代码状态。所以在集成开发环境中可以执行撤销代码修改的操作。
选项 D:集成开发环境主要用于编写、编辑、调试和编译源代码文件,其核心功能围绕代码的处理展开。虽然有些集成开发环境可能具备一定的文档编辑或注释功能,但通常不会直接支持在源代码文件中插入执行截图。执行截图更多地用于文档记录、问题反馈等场景,而不是直接插入到源代码文件中。所以在集成开发环境中编辑源代码文件时不可以执行插入执行截图的操作。

3、在C++中,下列可以做变量的是( )。

A. Var-1
B. $1
C. %%1
D. _Var_1

正确答案:D
在 C++ 中,变量命名需要遵循以下规则:

  1. 变量名只能由字母(大写或小写)、数字和下划线(_)组成。
  2. 变量名的第一个字符不能是数字。
  3. 变量名不能是 C++ 的关键字。

选项 A:在该选项中,变量名包含了连字符(-),根据 C++ 变量命名规则,变量名只能由字母、数字和下划线组成,所以Var-1不符合变量命名规则,不能作为变量。
选项 B:该选项中,变量名的第一个字符是美元符号($),且美元符号并不在 C++ 允许的变量名组成字符范围内,所以$1不符合变量命名规则,不能作为变量。
选项 C:此选项里,变量名包含了百分号(%),而百分号不在 C++ 允许的变量名组成字符范围内,所以%%1不符合变量命名规则,不能作为变量。
选项 D:该选项的变量名由下划线、字母和数字组成,且第一个字符是下划线,符合 C++ 变量命名规则,可以作为变量。

4、以下哪个是C++语言的关键字?( )

A. abs
B. cin
C. do
D. endl

正确答案:C
C++ 关键字是指在 C++ 语言中有特定含义,被编译器预先定义好的单词,用户不能将其作为变量名、函数名等标识符使用。
选项 A:abs 是 C++ 标准库<cstdlib> 中提供的一个函数,用于计算整数的绝对值。它不是 C++ 语言的关键字,而是一个库函数名。
选项 B:cin 是 C++ 标准输入流对象,在<iostream> 头文件中定义,用于从标准输入设备(通常是键盘)读取数据。它不是 C++ 语言的关键字,而是标准库中的一个对象。
选项 C:do 是 C++ 语言的关键字,用于构成 do-while 循环语句。do-while 循环会先执行一次循环体,然后再判断循环条件是否成立,若成立则继续循环,不成立则退出循环。
选项 D:endl 是 C++ 标准库 <iostream> 中定义的一个操纵符,用于在输出流中插入一个换行符,并刷新输出缓冲区。它不是 C++ 语言的关键字,而是标准库中的一个操纵符。

5、下面的框架在L1和L2标记的两行处分别填写选项中的代码,哪组不能通过编译( )。

int main() {
	int i = 0;
	______________ // L1
	break;
	______________ // L2
	return 0;
}
A.
do {
} while (i != 0);
B.
for (; i < 10; i++) {
}
C.
if (i == 0) {
}
D.
switch (i) {
}

正确答案:C
break语句的主要作用是跳出循环语句(for、while、do-while)或者switch语句。如果break语句不在这些结构内部,就会导致编译错误。
选项 A:在L1处填入do {,L2处填入} while (i != 0);,这样break语句处于do - while循环内部。break语句在do - while循环中是合法的,它会使程序跳出当前的do - while循环,所以该代码可以通过编译。
选项 B:在L1处填入for (; i < 10; i++) {,L2处填入},此时break语句处于for循环内部。break语句在for循环中是合法的,它会使程序跳出当前的for循环,所以该代码可以通过编译。
选项 C:在L1处填入if (i == 0) {,L2处填入},break语句处于if语句内部。但if语句不是break语句适用的结构,break只能用于循环语句(for、while、do - while)和switch语句中,所以该代码不能通过编译。
选项 D:在L1处填入switch (i) {,L2处填入},break语句处于switch语句内部。break语句在switch语句中是合法的,它会使程序跳出当前的switch语句,所以该代码可以通过编译。

6、下面C++语句( )执行后的输出是__0322$$

A. printf("__%2d%02d$$", 3, 22)
B. printf("__%02d%2d$$", 3, 22)
C. printf("__%02d%02d$$$$", 3, 22)
D. printf("__%02d%02d$$$$", 3, 22)

正确答案:B
printf函数是 C 和 C++ 中用于格式化输出的函数,其格式化字符串中可以包含普通字符和格式说明符。
%02d:对于整数 3,由于其位数小于 2,按照 %02d 的格式,在左边补 0,输出为 03。
%2d:对于整数 22,其位数为 2,满足宽度要求,直接输出 22。

7、有关下列C++代码的说法,错误的是( )。

printf("我爱码代码!");
A. 配对双引号内的汉字改为英文 Hello ,C++代码能正确执行
B. 配对双引号内的汉字改为 Hello代码! ,C++代码能正确执行
C. 代码中的每个双引号,都可以改为两个单引号
D. 代码中的每个双引号,都可以改为三个双引号

正确答案:C
选项A:C++支持在字符串中使用英文字符,编译器没有问题,所以A正确。
选项B:这里涉及到中文字符的处理。在C++中,如果源文件的编码是UTF-8,并且编译器支持,那么直接写中文是没问题的。因此,B选项是正确的。
选项C:这在C++中是错误的,因为单引号用于字符常量,而两个单引号会被编译器认为是空字符,导致语法错误。所以C是错误的。
选项D:C++中允许使用三个双引号来表示双引号本身。

8、C++表达式 16 / 4 % 2 的值是( )。

A. 8
B. 4
C. 2
D. 0

正确答案:D
在 C++ 中,算术运算符的优先级规则为:先进行乘除运算(*、/),再进行取模运算(%),且相同优先级的运算符按照从左到右的顺序依次计算。
步骤一:计算16 / 4
根据除法运算规则,16 / 4的结果为4,此时原表达式16 / 4 % 2变为4 % 2。
步骤二:计算4 % 2
取模运算(%)的作用是计算两个数相除的余数。4除以2的商为2,余数为0,即4 % 2的结果为0。
因此,表达式16 / 4 % 2的值是0,答案选 D。

9、N是C++的正整数,值为12,则 cout << (N % 3 + N / 5) 的输出是( )。

A. 6.4
B. 2.4
C. 6
D. 2

正确答案:D
步骤一:明确运算符优先级
在 C++ 中,取模运算符 % 和除法运算符 / 具有相同的优先级,且它们的优先级高于加法运算符 +。当运算符优先级相同时,按照从左到右的顺序进行计算。
步骤二:计算 N % 3 的值
已知 N 的值为 12,取模运算符 % 用于计算两个数相除的余数。所以 N % 3 即 12 % 3,因为 12 能被 3 整除,余数为 0,即 12 % 3 = 0。
步骤三:计算 N / 5 的值
在 C++ 中,当两个整数进行除法运算时,结果会向下取整为整数。所以 N / 5 即 12 / 5,12 除以 5 的商为 2.4,向下取整后结果为 2,即 12 / 5 = 2。
步骤四:计算 N % 3 + N / 5 的值
将前面计算得到的 N % 3 = 0 和 N / 5 = 2 代入表达式 N % 3 + N / 5 中,可得 0 + 2 = 2。
步骤五:确定输出结果
由于计算结果为整数 2,所以 cout << (N % 3 + N / 5) 的输出是 2。
综上,答案选 D。

10、下面C++代码执行后的输出是( )。

int N = 10;
printf("{N}*{N}={%d*%d}", N, N, N * N);
A. 10*10={10*10}
B. 100=10
C. N*N=100
D. {N}*{N}={10*10}

正确答案:D
在这个代码中,格式化字符串是"{N}*{N}={%d*%d}",后续有三个参数N、N和N * N,其值分别为10、10和100。
对于格式化字符串中的普通字符(非占位符部分),printf函数会原样输出。所以{N}*{N}={会被原样输出。
格式化字符串中有两个%d占位符,%d用于输出整数。printf函数会按照顺序用后续的参数替换这些占位符。第一个%d会被替换为N的值10,第二个%d会被替换为N的值10。
而格式化字符串中没有第三个%d来对应参数N * N(值为100),所以这个参数不会影响输出。

11、执行下面的C++代码,在键盘上先后输入100和200,输出是( )。

int first,second;
cout << "请输入第1个正整数:";
cin >> first;
cout << "请输入第2个正整数:";
cin >> second;
cout << (first / second * second) << endl;
A. 200
B. 100
C. 1
D. 0

正确答案:D
步骤一:分析输入过程
代码中首先定义了两个整型变量 first 和 second,然后提示用户输入第 1 个正整数,将用户输入的值存储到 first 中,接着提示用户输入第 2 个正整数,将用户输入的值存储到 second 中。已知先后输入的是 100 和 200,即 first 的值为 100,second 的值为 200。
步骤二:分析表达式 first / second * second 的运算过程
在 C++ 中,当两个整数进行除法运算时,结果会向下取整为整数。所以对于表达式 first / second,即 100 / 200,由于 100 除以 200 的商为 0.5,向下取整后结果为 0。
然后再计算 0 * second,即 0 * 200,结果为 0。
步骤三:确定输出结果
最后,代码使用 cout 输出表达式 first / second * second 的结果,即 0,并换行。
综上,答案选 D。

12、下面C++代码执行后,将输出能被2整除且除以7余数为2的数。下列选项不能实现的是( )。

for (int i = 0; i < 100; i++)
	if ____
		cout << i << " ";
A. ((i % 2 == 0) && (i % 7 == 2))
B. ((!(i % 2)) && (i % 7 == 2))
C. ((!(i % 2)) && (!(i % 7)))
D. ((i % 2 != 1) && (i % 7 == 2))

正确答案:C
选项 A:i % 2 == 0 表示 i 能被 2 整除,i % 7 == 2 表示 i 除以 7 余数为 2,两者通过逻辑与运算符 && 连接,只有当两个条件都满足时,整个表达式才为真,符合题目要求。
选项 B:!(i % 2) 等价于 i % 2 == 0,因为当 i 能被 2 整除时,i % 2 的结果为 0,对 0 取非得到 1(真);当 i 不能被 2 整除时,i % 2 的结果为 1,对 1 取非得到 0(假)。i % 7 == 2 表示 i 除以 7 余数为 2,两者通过逻辑与运算符 && 连接,符合题目要求。
选项 C:!(i % 2) 表示 i 能被 2 整除,而 !(i % 7) 表示 i 能被 7 整除(因为当 i 能被 7 整除时,i % 7 的结果为 0,对 0 取非得到 1(真)),这与题目要求的除以 7 余数为 2 不符,所以该选项不能实现题目要求。
选项 D:i % 2 != 1 等价于 i % 2 == 0,即 i 能被 2 整除,i % 7 == 2 表示 i 除以 7 余数为 2,两者通过逻辑与运算符 && 连接,符合题目要求。
综上,答案选 C。

13、下面C++代码执行后输出是( )。

int tnt = 0;
for (int i =-1000; i < 1000; i++)
	tnt += i;
cout << tnt << endl;
A. -1000
B. 0
C. 999
D. 1000

正确答案:A
从-1000到999,每个正数和负数配对,比如-999和999,-998和998,等等,这样每一对的和是0。总共有999对,另外还有两个需要单独计算的-1000和0,所以总和是-1000。

14、下面C++代码执行后输出的是( )。

int i;
for (i = 1; i < 100; i += 5)
	continue;
cout << i << endl;
A. 101
B. 100
C. 99
D. 96

正确答案:A
步骤一:分析for循环和continue语句的工作原理
for循环:for循环的一般形式为for(初始化表达式; 条件表达式; 循环后操作表达式)。在本题中,for (i = 1; i < 100; i += 5) 初始化i的值为1,每次循环检查i < 100是否成立,如果成立则执行循环体,执行完循环体后执行i += 5。
continue语句:continue语句的作用是跳过本次循环体中剩余的语句,直接进入下一次循环的条件判断。
步骤二:分析循环执行过程
在本题的代码中,for循环的循环体只有一条语句continue;,这意味着每次进入循环体后,程序会立即跳过剩余的语句,直接执行i += 5,然后再次判断i < 100是否成立。
初始时,i = 1,满足i < 100,执行continue,i变为1 + 5 = 6。
此时i = 6,满足i < 100,执行continue,i变为6 + 5 = 11。
以此类推,不断重复这个过程,直到i的值变为101。
当i = 101时,不满足i < 100的条件,循环结束。
步骤三:确定输出结果
循环结束后,执行cout << i << endl;,输出i的值,即101。
综上,答案选 A。

15、下面C++代码执行后输出的是( )。

int tnt = 0;
for (int i = 5; i < 100; i += 5){
	if (i % 2 == 0)
		continue;
	tnt += 1;
	if (i % 3 == 0 && i % 7 == 0)
		break;
}
cout << tnt << endl;
A. 500
B. 450
C. 10
D. 1

正确答案:C
分析循环和条件判断的整体逻辑
代码使用 for 循环从 i = 5 开始,每次递增 5,直到 i >= 100 时停止循环。
在循环体中,首先判断 i 是否能被 2 整除,如果能,则执行 continue 语句,跳过本次循环的剩余部分,直接进入下一次循环。
如果 i 不能被 2 整除,则将 tnt 的值加 1。
接着判断 i 是否同时能被 3 和 7 整除,如果能,则执行 break 语句,跳出整个循环。

判断题(每题 2 分,共 20 分)

1、C++、Python都是高级编程语言,它们的每条语句最终都要通过机器指令来完成。( )

正确答案:正确
C++ 和 Python 都属于高级编程语言。高级编程语言编写的代码不能直接被计算机硬件理解和执行,需要通过编译(如 C++)或者解释(如 Python)的方式将其转换为机器指令,计算机硬件才能依据这些机器指令完成相应的操作。

2、在C++中表达式 N * 2 % N 中如果 N 的值为正整数,则其值为2。( )

正确答案:错误
在 C++ 里,表达式 N * 2 % N 运用了乘法和取模运算。根据运算符优先级,先进行乘法运算,再进行取模运算。假设 N 是正整数,N * 2 % N 等同于 (N * 2) % N。因为 N * 2 是 N 的两倍,所以 N * 2 除以 N 的余数必然是 0,并非 2。

3、执行如下C++代码如果在键盘上输入10,执行后将输出20。 ( )

char N;
printf("请输入正整数:");
cin >> N;
printf("%d\n", N * 2);

正确答案:错误
首先,N 被定义为 char 类型。当使用 cin >> N 输入 10 时,实际存储到 N 中的是字符 ‘1’(因为 char 类型只能存储一个字符),而不是整数 10。接着,N * 2 是字符 ‘1’ 对应的 ASCII 码值乘以 2,并非输入的 10 乘以 2。

4、删除下面C++代码中的continue不影响程序的执行效果。( )

for (int i = 0; i < 100; i++){
	if (i % 2 == 0){
		printf("偶数");
		continue;
	}else
		printf("奇数");
}

正确答案:正确
continue 语句的作用是跳过本次循环体中剩余的语句,直接进入下一次循环。在这个代码里,当 i 是偶数时,会输出 “偶数”,然后执行 continue 语句,跳过 else 分支;当 i 是奇数时,会输出 “奇数”。若删除 continue 语句,当 i 是偶数时,输出 “偶数” 后会正常结束本次循环,不会执行 else 分支,程序的执行效果和有 continue 语句时是一样的。

5、下面C++代码执行时将报错,因为所在位置应该是变量名,而不可以做变量名。( )

for(int _ = 0; _ < 100; _++)
	cout << "*" << endl;

正确答案:错误
在 C++ 中,变量名的命名规则是:变量名只能由字母(大写或小写)、数字和下划线(_)组成,并且第一个字符不能是数字。代码 for(int _ = 0; _ < 100; _++) cout << “*” << endl; 里,变量名 _ 仅由下划线构成,符合 C++ 变量名的命名规则,能够作为变量名使用。

6、下面C++代码被执行后,将先后输出3和5。( )

for (int i = 3; i < 5; i += 2)
	printf("%d ", i);

正确答案:错误
for 循环初始时 i 为 3,满足 i < 5 的条件,输出 3,接着 i 变为 3 + 2 = 5,此时不满足 i < 5 的条件,循环结束。所以只会输出 3,不会输出 5。

7、下面的C++代码执行后将先后输出7个 true 。( )

for (int i = 0; i < 10; i++)
	cout << (i * 2 < i * i) << " ";

正确答案:错误
需要分析 i * 2 < i * i 这个条件表达式在 i 从 0 到 9 时的结果:
当 i = 0 时,0 * 2 < 0 * 0 为 false。
当 i = 1 时,1 * 2 < 1 * 1 为 false。
当 i = 2 时,2 * 2 < 2 * 2 为 false。
当 i > 2 时,i * 2 < i * i 为 true。
所以,输出 0 0 0 1 1 1 1 1 1 1,并非 7 个 true。

8、在C++代码中, user_Name 、_userName 、 user-Name 、 userName_都是合法的变量名。( )

正确答案:错误
在 C++ 中,变量名只能由字母(大写或小写)、数字和下划线()组成,并且第一个字符不能是数字。
user_Name 和 _userName 以及 userName
都符合变量名的命名规则。
而 user-Name 包含了连字符 -,不符合变量名的命名规则。

9、C++语言中 continue 语句可以来提前结束循环。( )

正确答案:错误
在 C++ 里,continue 语句的作用是跳过本次循环体中剩余的语句,直接进入下一次循环,它并不会提前结束整个循环。而 break 语句才可以提前结束整个循环。

10、C++中定义整型变量N,执行语句 scanf(“%d”, &N); cout << N / 3 * 5; 时输入 3.6 ,则输出是6。( )

正确答案:错误
scanf(“%d”, &N); 要求输入一个整数,当输入 3.6 时,scanf 会读取整数部分 3 并存储到 N 中。接着计算 N / 3 * 5,因为 N 是 3,3 / 3 * 5 = 1 * 5 = 5,并非 6。

编程题 (每题 25 分,共 50 分)

图书馆里的老鼠

【问题描述】
图书馆里有n本书,不幸的是,还混入了一只老鼠,老鼠每x小时能啃光一本书,假设老鼠在啃光一本书之前,不会啃另一本。请问y小时后图书馆里还剩下多少本完整的书。
【输入格式】
三行,第一行一个正整数n,表示图书馆里书的数量;
第二行,一个正整数x,表示老鼠啃光一本书需要的时间;
第三行,一个正整数y,表示经过的总时间;
输入数据保证y小时后至少会剩下一本完整的书。
【输出格式】
一行,一个整数,表示y小时后图书馆里还剩下多少本完整的书。
【样例输入 1】
10 2 3
【样例输出 1】
8
【样例输入 2】
5 2 4
【样例输出 2】
3
【数据范围】
对于所有测试点, 保证 1 ≤ n , x , y ≤ 1000 1 \le n, x, y \le 1000 1n,x,y1000, 保证y小时后至少会剩下一本完整的书

#include <bits/stdc++.h>
using namespace std;
int main() {
	int n, x, y, ans;
	cin >> n >> x >> y;
	// 使用 assert 函数进行数据范围检查,确保输入的 n、x 和 y 都在 1 到 1000 之间。如果条件不满足,程序会终止并输出错误信息。
	assert(1 <= n && n <= 1000 && 1 <= x && x <= 1000 && 1 <= y && y <= 1000);
	ans = n - y / x - 1 + (y % x == 0);
	// 再次使用 assert 函数检查计算结果,确保剩余的完整书的数量至少为 1。
	assert(ans >= 1);
	cout << ans << '\n';
	return 0;
}

四舍五入

【问题描述】
四舍五入是一种常见的近似计算方法。现在,给定n个整数,你需要将每个整数四舍五入到最接近的整十数。例如,43四舍五入后为40,58四舍五入后为60。
【输入格式】
共n+1行,第一行,一个整数n,表示接下来输入的整数个数。
接下来n行,每行一个整数 a 1 , ⋅ ⋅ ⋅ , a n a_1, ···, a_n a1,⋅⋅⋅,an,表示需要四舍五入的整数。
【输出格式】
n行,每行一个整数,表示每个整数四舍五入后的结果。
【样例输入 1】
5
43 58 25 67 90
【样例输出 1】
40
60
30
70
90
【数据范围】
对于所有测试点, 保证 1 ≤ n ≤ 100 , 1 ≤ a i ≤ 10000 1 \le n \le 100, 1 \le a_i \le 10000 1n100,1ai10000

#include <bits/stdc++.h>
using namespace std;
int main() {
	int n; 
	cin >> n; 
	assert(1 <= n && n <= 100);
	for (int i = 1, x; i <= n; i ++) {
		cin >> x; 
		assert(1 <= x && x <= 10000);
		cout << (x + 5) / 10 * 10 << '\n';
	}
	return 0;
}
### 关于CCF GESP C++ 5编程能力等级认证模拟题解析 #### 模拟题目:多态机制的理解与应用 当定义基类指针指向派生类对象并调用虚函数时,实际会调用派生类中的版本。因此,在给定的代码片段中创建了个`base`类型的指针`b`以及个`derived`实例`d`,接着让`b`指向`d`,最后通过`b->show()`来触发成员方法调用。由于存在继承关系且`show`被声明为虚拟函数,所以最终输出将是“derived class”[^1]。 ```cpp #include <iostream> using namespace std; class base { public: virtual void show() { cout << "base class" << endl; } }; class derived : public base { public: void show() override { cout << "derived class" << endl; } }; int main() { base* b; derived d; b = &d; b->show(); return 0; } ``` #### 模拟题目二:数组越界访问风险分析 对于第二个例子而言,程序试图打印字符数组`geSP`中位于索引位置等于整型数组`x`大小处的那个元素。考虑到`sizeof(x)`返回的是整个数组占用字节数而非元素数量,并且假设每个整形占四个字节,则该表达式的计算结果应为16(即4 * sizeof(int)),这显然超出了字符串的实际长度范围。这种情况下可能会导致未定义行为的发生,具体表现为可能显示随机内存内容或引发异常终止等问题[^2]。 ```cpp int main() { int x[] = {2, 0, 2, 4}; char geSP[] = "Grade Examination of SP"; cout << geSP[sizeof(x)] << endl; cout << endl; return 0; } ``` #### 模拟题目三:不常见调试技巧的选择 面对复杂逻辑错误或者难以定位的问题时,通常建议采用多种方式相结合来进行排查工作。选项A至C均属于较为常规有效的做法;然而D项涉及到了汇编层面的操作,除非开发者具备深厚底层知识背景并且确实有必要深入探究指令集细节外,般不会作为首选方案考虑。故而最不可能成为常用解决办法的就是跟踪汇编码[^3]。 #### 模拟题目四:位运算符特性考察 针对给出的选择题,可以逐验证各个选项: - `2>>1=1`, `1>>1=0`: 不相同; - `(2>>2)=0`, `(1>>1)=0`: 相同; - `(11^00)=(11)_bin=(3)_dec`, `(1^0)=1`: 不相同; - `~0=-1`(补码表示法下),不是正数1。 综上所述,只有B选项描述成立[(2>>2)和(1>>1)的结果相等][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青岛少儿编程-王老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值