试卷解析 · 理解每一步
2024-06-Level-1
2024-06-Level-1
试卷解析总览,可直接查看每题答案与解析。
第 1 题(单选题,2 分)
在C++中,下列不可做变量的是()。
正确答案A
解析详情
C++ 变量名只能包含字母、数字和下划线,且不能以数字开头。选项 A 中的 five-Star 包含了减号(连字符),这是不允许的。
第 2 题(单选题,2 分)
C++表达式 3 - 3 * 3 / 5 的值是()。
正确答案D
解析详情
表达式 3 - 3 * 3 / 5 的运算顺序是:先做乘除法,再做加减法。3 * 3 = 9,9 / 5(整除)= 1,最后 3 - 1 = 2。
第 3 题(单选题,2 分)
在C++中,假设N为正整数,则表达式 cout << (N % 3 + N % 7) 可能输出的最大值是( )。
正确答案B
解析详情
N % 3 的可能值是 0, 1, 2;N % 7 的可能值是 0, 1, 2, 3, 4, 5, 6。两者相加的最大值为 2 + 6 = 8。
第 4 题(单选题,2 分)
C++语句 printf("5%2={%d}\n", 5 % 2) 执行后的输出是()。
正确答案C
解析详情
printf("5%%2={%%d}\n", 5 %% 2) 中,前面的 "5%%2=" 是普通字符串,%%d 是占位符,由 5 %% 2 的结果(即 1)填充。输出结果为 5%2={1}。
第 5 题(单选题,2 分)
对整型变量 i,执行 C++ 语句 cin >> i,cout << i 时如果输入 5+2,下述说法正确的是()。
正确答案B
解析详情
执行 cin >> i 时,程序会尝试从输入流中读取一个整数。输入 5+2 时,它读取到 5 后,遇到非数字字符 '+' 停止读取,'+' 会留在输入缓冲区。因此 i 被赋值为 5。
第 6 题(单选题,2 分)
下面C++代码执行后的输出是()。
float a;
a = 101.101;
a = 101;
printf("a+1={%.0f}", a+1);正确答案C
解析详情
a 最终被赋值为 101。printf("a+1={%.0f}", a+1) 中,%.0f 表示输出浮点数且不保留小数位。101 + 1 = 102,输出为 a+1={102}。
第 7 题(单选题,2 分)
表达式 9/4 - 6% (6 - 2) * 10 的值是()。
正确答案B
解析详情
9/4(整除)= 2。6% (6 - 2) * 10 = 6 % 4 * 10 = 2 * 10 = 20。最后 2 - 20 = -18。
第 8 题(单选题,2 分)
下面C++代码执行时输入10后,正确的输出是()。
int N;
cout << "请输入正整数:";
cin >> N;
if (N % 3)
printf("第5行代码%2d", N % 3);
else
printf("第6行代码%2d", N % 3);正确答案C
解析详情
输入 10,10 % 3 = 1。if(1) 为真,执行第 5 行。printf("第5行代码%2d", 1) 中,%2d 表示占 2 个字符位且右对齐,因此 1 前面会有一个空格。输出为“第5行代码 1”。
第 9 题(单选题,2 分)
下面C++代码执行后输出是()。
int Sum = 0, i = 0;
for ( ; i < 10; )
Sum += i++;
cout << i << " " << Sum;正确答案C
解析详情
Sum = 0, i = 0。循环 10 次:Sum 累加 0, 1, ..., 9,总和为 45。每次循环 i 自增,最后一次 i=9 满足条件后自增到 10。循环结束输出 i=10 和 Sum=45。
第 10 题(单选题,2 分)
下面C++代码用于判断N是否为质数(只能被1和它本身整除的正整数)。程序执行后,下面有关描述正确的是()。
int N;
cout << "请输入整数:";
cin >> N;
bool Flag = false;
if (N >= 2){
Flag = true;
for (int i = 2; i < N; i++)
if (N % i == 0){
Flag = false;
break;
}
}
if(Flag)
cout << "是质数";
else
cout << "不是质数";正确答案C
解析详情
当输入 N 为 2 时,满足 N >= 2,Flag 设为 true。循环 for (int i = 2; i < 2; i++) 的初始条件 i < N 不满足,循环体不执行。最终 Flag 仍为 true,输出“是质数”,结果正确。
第 11 题(单选题,2 分)
下面的C++代码用于求1~N之间所有奇数之和,其中N为正整数,如果N为奇数,则求和时包括N。有关描述错误的是()。
int N;
cout << "请输入正整数:";
cin >> N;
int i = 1, Sum = 0;
while (i <= N){
if (i % 2 == 1)
Sum += i;
i += 1;
}
cout << i << " " << Sum;正确答案C
解析详情
如果将 i += 1 移到 if 语句前,那么在第一次循环时,i 会从 1 变成 2 再进入判断,从而漏掉了对初始值 1 的判断。这会导致计算结果错误。
第 12 题(单选题,2 分)
如果一个整数N能够表示为的形式,那么它就是一个完全平方数,下面C++代码用于完成判断N是否为一个完全平方数,在横线处应填入的代码是( )。
int N;
cin >> N;
for(int i = 0; i <= N; i++)
if(_____)
cout << N << "是一个完全平方数\n";正确答案D
解析详情
判断一个数 N 是否为完全平方数,最直接的方法是枚举 i,检查是否存在 i * i == N。
第 13 题(单选题,2 分)
执行下面C++代码后输出的cnt的值是()。
int cnt = 0;
for(int i = 0; i * i < 64; i += 2)
cnt++;
cout << cnt;正确答案C
解析详情
i 的取值依次为 0, 2, 4, 6。当 i=8 时,i*i=64,不满足 i*i < 64 的条件,循环终止。cnt 分别在 i=0, 2, 4, 6 时自增,共执行 4 次。
第 14 题(单选题,2 分)
小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有几种?()
正确答案C
解析详情
CCF 组织的 GESP 认证考试(1-4 级)通常提供 C++、Python 和图形化编程(Scratch)三种语言供考生选择。
第 15 题(单选题,2 分)
ENIAC 于 1946 年投入运行,是世界上第一台真正意义上的计算机,它的主要部件都是()组成的。
正确答案B
解析详情
世界上第一台通用电子计算机 ENIAC 使用的是电子管(Vacuum Tube)作为主要逻辑元件。
判断题
第 1 题(判断题,2 分)
在C++代码中变量 X 被赋值为16.44,则 cout << X / 10 执行后输出的一定是 1。()
正确答案错误
解析详情
变量 X 被赋值为 16.44。X / 10 的结果是 1.644。cout 默认会输出浮点数的所有有效位(或按默认精度),而不是只输出整数部分。
第 2 题(判断题,2 分)
C++的整型变量 N 被赋值为10,则语句 `cout << N / 4 << "->" << N % 4 << "->" << N / 4.0` 执行后输出是 2->2->2.0。()
正确答案错误
解析详情
N=10。N/4 = 2 (整除);N%4 = 2;N/4.0 = 2.5 (浮点除)。输出应为 2->2->2.5。题干给出的 2.0 是错误的。
第 3 题(判断题,2 分)
定义C++的 `float` 型变量 N,则语句 `cin >> N;` `cout << int(float(N))` 可以输入正负整数和浮点数,并将其转换为整数后输出。()
正确答案正确
解析详情
float 类型的变量 N 可以接收整数和浮点数输入。int(float(N)) 先确保其为浮点数再强制截断为整数,逻辑上是成立的。
第 4 题(判断题,2 分)
C++的整型 N 被赋值为5,语句 `printf("%d*2", N)` 执行后将输出 10。()
正确答案错误
解析详情
printf("%d*2", N) 中,%d 会被 N 的值(5)替换,但后面的 *2 是普通字符,原样输出。输出结果为 5*2,而不是计算后的 10。
第 5 题(判断题,2 分)
在C++中,`break` 语句用于终止当前层次的循环,循环可以是 for 循环,也可以是 while 循环。()
正确答案正确
解析详情
break 语句用于跳出最近的一层循环体,无论是 for 循环还是 while 循环都适用。
第 6 题(判断题,2 分)
在C++,`continue` 语句通常与 `if` 语句配合使用。()
正确答案正确
解析详情
continue 用于跳过本次循环剩余部分。为了只在特定条件下跳过,它几乎总是嵌套在 if 语句中。
第 7 题(判断题,2 分)
在C++代码中,不可以将变量命名为 `printf`,因为 `printf` 是C++语言的关键字。()
正确答案错误
解析详情
printf 是标准库中的函数名,不是 C++ 语言的保留关键字。在语法上,你可以定义一个名为 printf 的变量(虽然会遮蔽库函数导致无法调用输出),但这并不违法。
第 8 题(判断题,2 分)
在C++中有整型变量 N,则表达式 N += 8/4//2 相当于 N += 8/(4/2)。()
正确答案错误
解析详情
在 C++ 中,// 及其之后的内容被视为注释。因此 8/4//2 实际计算的是 8/4。它不等于 8/(4/2)。
第 9 题(判断题,2 分)
C++中定义变量 `int N`,则表达式 (!!N) 的值也是 N 的值。()
正确答案错误
解析详情
!!N 是一种常用的将数值归一化为布尔值(0 或 1)的技巧。如果 N 为 5,!N 为 0,!!N 为 1。1 不等于原值 5。
第 10 题(判断题,2 分)
GESP测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。()
正确答案正确
解析详情
GESP 旨在考查计算机科学素养和编程思维,其等级标准和题目逻辑在不同语言之间保持了高度的一致性。