GESP解析|2023年12月C++二级选择题+判断题解析

2023年12月GESP C++二级题解析

GESP二级C++2023年12月选择题+判断题解析

大家好,我是莫小特。
这篇文章给大家带来 GESP C++ 二级 2023 年 12 月的选择题和判断题的解析。

先看第一部分:选择题。

一、选择题

1~5 题

1、以下不可以做为C++变量的是( )。
A. FiveStar
B. fiveStar
C. 5Star
D. Star5

答案:C
解析:
变量的命名规则:
(1)由数字、字母、下划线组成
(2)数字不能开头
(3)不能使用关键字
(4)区分大小写
很明显,C选项不符合。

2、在C++中,与 for(int i = 10; i < 20; i +=2) cout << i; 输出结果相同的是( )。
A. for(int i = 10; i < 19; i +=2) cout << i;
B. for(int i = 11; i < 19; i +=2) cout << i;
C. for(int i = 10; i < 21; i +=2) cout << i;
D. 以上均不对

答案:A
解析:
for 循环从 10 遍历到 19,每次加 2,输出的是:10、12、14、16、18。
A 选项,for 循环从 10 遍历到 18,每次加 2,输出的是:10、12、14、16、18。
B 选项,for 循环从 11 遍历到 18,每次加 2,输出的是:11、13、15、17不一致。
C 选项,for 循环从 10 遍历到 20,每次加 2,输出的是:10、12、14、16、18、20,不一致。
因此选 A。

3、以下C++代码实现从小到大的顺序输出能整除N的数(N的因子),例如N=18时输出1 2 3 6 9 18,横线处应填( )。

cin>>N;
for(__________________)
	if(N%i==0)
		cout<<i<<" ";

A. int i = 0; i < N; i++
B. int i = 1; i < N; i++
C. int i = 0; i < N+1; i++
D. int i = 1; i < N+1; i++

答案:D
解析:判断语句的内容是判断是否整除,而 N=18,要输出 N 的所有因子,遍历就需要从 1 开始到 N 结束,只有 D 选项符合!
A 选项,从 0 开始到 N-1 结束,并不正确。
B 选项,从 1 开始到 N-1 结束,也不正确。
C 选项,从 0 开始到 N 结束,除数不能为 0,不正确。

4、下面C++代码用于判断输入的整数是否为对称数,如1221、12321是对称数,但123、972不是对称数。下面对该题对应代码的说法,正确的是( )。

cin>>N;
newNum=0;
while(N){
   
   
	newNum=newNum*10+N%10;
	N=N/10;
}
if(newNum==N)
	cout<<N<<"为对称数";

A. 代码没有语法错误,如果N为对称数,第8行将能正确输出。
B. 代码没有语法错误,但如果N为负数,将导致死循环。
C. 代码存在语法错误,程序不能被执行。
D. 代码没有语法错误,但不能达到预期目标,因为循环结束N总为0。

答案:D
解析:
仔细查看代码下来,并没有语法错误,语法错误一般是少了分号,或者是if、for、while等有括号的少了括号,这段代码并没有语法错误。
如果严格说下来,这段代码是有语法错误的,因为 N、newNum 没有定义,也没有主函数,这段代码是执行不起来的,此题出的还不够严谨。
还是根据题目意思来分析,该程序的目的是判断是否为对称数。
可以将一个数据代入进去模拟程序运行,这个方法是很常用的,建议多使用。
while(N) 中 N 是不断除以 10,最后变成 0 的,而 newNum 是不断获得原始数字的反转。
在最后 N 的值变成了 0,这样是无法判断,正确的做法是新定义一个变量将 N 存储下来,用 newNum 和它进行判断。

5、下面C++代码用于判断N(大于等于2的正整数)是否为质数(素数)。下面对如下代码的说法,正确的是( )。

cin>>N;
for(i=2;i<N/2;i++)
	if(N%i==0){
   
   
		cout<<N<<""不是质数";
			break;
		}
if
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员莫小特

谢谢你~

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

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

打赏作者

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

抵扣说明:

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

余额充值