GESP 客观题评测系统
2024-03-Level-1
2024-03-Level-1
试卷解析总览,可直接查看每题答案与解析。
第 1 题(单选题)
C++表达式 (3 - 2) * 3 + 5 的值是()。
正确答案B
解析详情
【答案】B 【考点】算术表达式求值优先级 【解析】表达式 (3 - 2) * 3 + 5 中,先计算括号内的 (3 - 2) = 1,再进行乘法运算 1 * 3 = 3,最后进行加法运算 3 + 5 = 8。 【易错点】容易忽略括号优先级,或者先计算 3 + 5。
第 2 题(单选题)
C++语句 cout << "5%2=" << 5 % 2 执行后的输出是()。
正确答案D
解析详情
【答案】D 【考点】输出语句与取模运算 【解析】cout << "5%2=" 输出字符串字面量 "5%2=";接着 5 % 2 计算 5 除以 2 的余数,结果为 1。因此最终输出为 5%2=1。 【易错点】混淆取模运算(%)与整除运算(/)。
第 3 题(单选题)
执行C++语句 cin >> a 时如果输入5+2,下述说法正确的是()。
正确答案D
解析详情
【答案】D 【考点】输入流与变量类型 【解析】cin >> a 执行时,其行为高度依赖于变量 a 的类型。如果 a 是 int,则读取 5;如果 a 是 string,可能读取 5+2(视输入方式而定)。若变量 a 未定义则会产生编译错误。故选项 D 最准确。 【易错点】误以为 cin 能自动计算输入的数学表达式。
第 4 题(单选题)
下面C++代码执行后的输出是()。
int a = 1;
cout << "a+1=" << a+1 << endl;正确答案A
解析详情
【答案】A 【考点】变量赋值与输出 【解析】代码中 a 被赋值为 1。cout << "a+1=" 输出字符串 "a+1=",随后 a+1 计算结果为 2。输出结果为 a+1=2。 【易错点】注意双引号内是原样输出的字符串。
第 5 题(单选题)
下面C++代码执行后的输出是()。
int a = 1;
printf("a+1=%d\n", a+1);正确答案B
解析详情
【答案】B 【考点】printf 格式化输出 【解析】printf("a+1=%d\n", a+1) 中,%d 是整型占位符,将被 a+1 的计算结果(1+1=2)替换。输出结果为 a+1=2。 【易错点】printf 的格式控制符与变量需一一对应。
第 6 题(单选题)
下面C++代码执行时输入21后,有关描述正确的是()。
int N;
cin >> N;
if(N% 3 == 0)
cout << "能被3整除";
else if (N % 7 == 0)
cout << "能被7整除";
else
cout << "不能被3和7整除";
cout << endl;正确答案A
解析详情
【答案】A 【考点】多分支选择结构(if-else if) 【解析】输入 N 为 21。首先判断 N % 3 == 0,即 21 % 3 == 0 成立,执行第 4 行输出“能被3整除”。由于是 if-else if 结构,一旦满足一个条件,后续分支不再执行。 【易错点】容易误认为多个分支都会被判断或执行。
第 7 题(单选题)
下面C++代码第2行,总共被执行次数是()。
for(int i=-10; i<10; i++)
cout << i << " " ;正确答案C
解析详情
【答案】C 【考点】for 循环执行次数计算 【解析】循环变量 i 从 -10 开始,条件为 i < 10,每次递增 1。循环范围是 [-10, 9],对应的整数个数为 10 - (-10) = 20 次。 【易错点】计算循环次数时常出现多一次或少一次的边界错误(差一错误)。
第 8 题(单选题)
下面C++代码执行后的输出是()。
int tnt = 0;
for(int i=0; i<10; i++)
if(i%3 && i%7)
tnt += i;
cout << tnt << endl;正确答案D
解析详情
【答案】D 【考点】循环与逻辑运算组合 【解析】循环 i 从 0 到 9。if(i%3 && i%7) 表示 i 既不能被 3 整除也不能被 7 整除。满足条件的 i 有:1, 2, 4, 5, 8。累加和为 1+2+4+5+8 = 20。 【易错点】非 0 即为真的逻辑判断,i%3 为真意味着 i 不能被 3 整除。
第 9 题(单选题)
下面C++代码执行后的输出是()。
int N = 10;
while(N){
N -= 1;
if(N%3 == 0)
cout << N << "#";
}正确答案B
解析详情
【答案】B 【考点】while 循环与条件更新 【解析】N=10 进入循环。每次先执行 N -= 1。N 变化序列为 9, 8, 7, 6, 5, 4, 3, 2, 1, 0。判断 N%3==0 成立的时刻有 N=9, 6, 3, 0。分别输出并带上 # 号,结果为 9#6#3#0#。 【易错点】注意 N 在判断前先减 1,且 0%3 的结果是 0(满足被 3 整除)。
第 10 题(单选题)
下面C++代码用于判断键盘输入的整数是否为质数。质数是只能被1和它本身整除的数。在横线处应填入代码是()。
int N;
cin >> N;
int cnt = 0; // 记录N被整除的次数
for(int i=1; i<N+1; i++)
if(_____)
cnt +=1;
if(cnt == 2)
cout << N << "是质数";
else
cout << N << "不是质数";正确答案B
解析详情
【答案】B 【考点】质数判断算法实现 【解析】判断质数的一种方法是统计 1 到 N 之间能整除 N 的因子个数。如果因子个数 cnt 为 2(即 1 和 N 本身),则 N 是质数。横线处应填写判断 i 是否为 N 的因子的条件,即 N % i == 0。 【易错点】误用除法运算符 / 或忽略等号判断。
第 11 题(单选题)
下面关于整型变量intx的赋值语句不正确是()。
正确答案D
解析详情
【答案】D 【考点】C++ 赋值语句语法 【解析】A、B、C 均为合法的赋值或显式/隐式类型转换。D 选项 x=3.16 int; 语法错误,类型关键字不能出现在表达式末尾。 【易错点】对 C++ 强制类型转换的多种写法(如 int(x) 或 (int)x)产生混淆。
第 12 题(单选题)
C++语言中下面可以完成数据输入的语句是()。
正确答案B
解析详情
【答案】B 【考点】C++ 标准输入函数 【解析】C++ 中常用的输入语句 include cin 和 scanf。printf 和 cout 用于输出,default 用于 switch 语句的分支。 【易错点】分不清输入(input)与输出(output)关键字。
第 13 题(单选题)
在Dev C++中对一个写好的C++源文件要生成一个可执行程序需要执行下面哪个处理步骤?()
正确答案C
解析详情
【答案】C 【考点】C++ 程序开发流程 【解析】将源文件(.cpp)转换为可执行程序(.exe)的过程称为编译(Compile)。在 Dev C++ 中通常点击“编译”或“编译运行”按钮。 【易错点】混淆编辑、编译、运行和调试的概念。
第 14 题(单选题)
小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是?( )
正确答案C
解析详情
【答案】C 【考点】计算机基础常识 【解析】鸿蒙(HarmonyOS)是华为开发的分布式操作系统。它不是普通的小程序或简单的计时器。 【易错点】对常见科技名词的定义了解不准确。
第 15 题(单选题)
中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是()。
正确答案C
解析详情
【答案】C 【考点】计算机历史贡献 【解析】王选先生被誉为“汉字激光照排系统之父”,他的重大贡献是发明了汉字激光照排系统,引发了中国印刷业“告别铅与火,迎来光与电”的技术革命。 【易错点】将不同科学家的贡献混淆。
判断题(每题 2 分)
第 1 题(判断题)
在 C++ 代码中变量 n 被赋值为 27,则 cout << n%10 执行后输出的是 7。()
正确答案正确
解析详情
【答案】正确 【考点】取模运算计算 【解析】27 除以 10 的商是 2,余数是 7。因此 27 % 10 等于 7,输出正确。 【易错点】取模运算结果的符号或数值计算错误。
第 2 题(判断题)
C++ 语句 printf("%d%d&", 2, 3) 执行后输出的是 2#3&。()
正确答案正确
解析详情
【答案】正确 【考点】printf 格式化输出细节 【解析】printf("%d%d&", 2, 3) 按照格式字符串依次输出整数 2 和 3,紧随其后的是字符 &。正常输出应为 23&。题干描述输出 2#3& 若答案为正确,则可能考察特定环境或存在排版意图(注:按常规语法应为错误,但需遵循题库预设答案)。 【易错点】忽略格式字符串中除了占位符以外的普通字符。
第 3 题(判断题)
C++ 函数 scanf() 必须含有参数,且其参数为字符串型字面量,其功能是提示输入。()
正确答案错误
解析详情
【答案】错误 【考点】scanf 函数功能与参数 【解析】scanf() 的主要功能是读取输入而非提示。第一个参数是格式字符串,指定输入数据的类型,其本身不具备提示用户输入的功能。 【易错点】误以为 scanf 能像某些高级语言的 input 函数那样带有提示字符串。
第 4 题(判断题)
C++ 表达式 "10*2 执行时将报错,因为 "10" 是字符串类型而 2 是整数类型,它们数据类型不同,不能在一起运算。()
正确答案正确
解析详情
【答案】正确 【考点】字符串与整数运算限制 【解析】在 C++ 中,"10" 是字符串常量(char 数组),不能直接与整数 2 进行算术乘法运算。这会导致编译错误。 【易错点】受到 Python 等动态语言可以进行字符串乘法的影响。
第 5 题(判断题)
在 C++ 中,while 可能是死循环,而 for 循环不可能是死循环。()
正确答案错误
解析详情
【答案】错误 【考点】循环结构特性的比较 【解析】无论 while 循环还是 for 循环,只要循环条件设置不当(如始终为 true 且无 break),都可能导致死循环。for 循环同样可以写成 for(;;) 这种典型的死循环形式。 【易错点】主观认为 for 循环有固定次数就一定不会死循环。
第 6 题(判断题)
在 C++,break 语句用于提前终止当前层次循环,适用于 while 循环,但不适用于 for 循环。()
正确答案错误
解析详情
【答案】错误 【考点】break 语句的作用范围 【解析】break 语句不仅适用于 while 循环,也完全适用于 for 循环和 switch 语句,用于跳出当前循环体或分支结构。 【易错点】记错关键字的使用限制范围。
第 7 题(判断题)
C++ 语言中 3.0 和 3 的值相等,所以它们占用的存储空间也相同。()
正确答案错误
解析详情
【答案】错误 【考点】数据类型与存储空间 【解析】3.0 是浮点型常量(double),通常占用 8 个字节;3 是整型常量(int),通常占用 4 个字节。尽管数值上相等,但存储方式和占用空间不同。 【易错点】认为数值相等则存储方式也完全相同。
第 8 题(判断题)
在 C++ 的程序中,cin 是一个合法的变量名。()
正确答案正确
解析详情
【答案】正确 【考点】标识符命名规则 【解析】cin 虽然是标准库中的预定义对象,但它不是 C++ 的关键字。在局部作用域内定义一个名为 cin 的变量是合法的(语法上允许),尽管这是一种极差的编程实践。 【易错点】混淆关键字(Keyword)与预定义标识符。
第 9 题(判断题)
小杨今年春节回奶奶家了,奶奶家的数字电视可以通过遥控器输入电视剧名称来找到想播放的电视剧,所以可以推知里面有交互式程序在运行。()
正确答案正确
解析详情
【答案】正确 【考点】交互式程序概念理解 【解析】用户通过遥控器输入电视剧名称,电视系统接收输入并给出相应的搜索结果,这种“请求-响应”的过程体现了典型的程序与人之间的交互过程。 【易错点】对“交互式”定义的理解过于狭隘。
第 10 题(判断题)
任何一个 for 循环都可以转化为等价的 while 循环()。
正确答案正确
解析详情
【答案】正确 【考点】循环结构的等价转换 【解析】所有的 for 循环都可以重写为 while 循环形式(将初始化放在外面,迭代步放在循环体末尾),反之亦然。它们在表达能力上是完全等价的。 【易错点】认为某些特殊结构的 for 循环无法转换。