2023 年 GESP9 月认证 C++一级试卷解析

文章主要介绍了C++中的内存概念,变量命名规则,基本运算(如C++表达式),以及变量、输入输出、选择结构、循环结构等知识点的应用实例。最后提供了两个编程题,涉及金钱计算和幸运数求和。
摘要由CSDN通过智能技术生成
1. 我们通常说的 内存 属于计算机中的( )。
A. 输出设备
B. 设备
C. 存储设备
D. 打印设备
【答案】 C
【考纲知识点】 计算机基础知识
【解析】本题属于考察计算机基础知识中的存储设备问题;内存是一种存储设备, 也可以考虑关联内存中的“存”字,选 C
    
2. 以下 C++ 不可以作为变量的名称的是( )。
A. redStar
B. RedStar
C. red_star
D. red star
【答案】 D
【考纲知识点】 变量的定义与使用
【解析】本题属于变量命名规则问题。 C++ 中的变量包括数字、字母和下划线。
D 选项中含有空格,因此选 D
     
3. C++ 表达式 2 - 1 && 2 % 10 的值是( )。
A. 0
B. 1
C. 2
D. 3
【答案】 B
【考纲知识点】 基本运算
【解析】本题考察运算符优先级,算数运算符包括: +,-,*,/,% ,优先级大于 &&。 2-1 等于 1,2%10 等于 2 1&&2 等于 1 ,选 B
     
4. C++ 代码段执 后的输出是( )。
   int a=3,b=4;
   cout<<"a+b="<<a+b;
A. 3+4= 7
B. 3+4=7
C. a+b=7
D. a+b=a+b
【答案】 C
【考纲知识点】 变量的定义与使用、输入输出语句、基本运算
【解析】本题考察程序模拟,双引号和没有双引号。直接输出双引号里的内容, 计算 a+b 的结果,然后输出。选 C
     
5. C++ 中, int 类型的变量 x y z 的值分别为 2 4 6
以下表达式的值为真的是( )。
A. x > y || x > z
B. x != z - y
C. z > y + x
D. x < y || !x < z
【答案】 D
【考纲知识点】 基本运算
【解析】本题考察算数运算符、比较运算符和逻辑运算符。比较运算符高于逻辑 运算符,例如 A 选项,先计算 x>y x>z x>y 结果 0 x>z 结果是 0,0||0 的结果 是 0 ,因此 A 的表达式值为 0 。同理计算 BCD 选项,选 D
    
6. int 类型的变量 a b c ,下列语句不符合 C++ 语法是( )。
A. c += 5;
B. b = c % 2.5;
C. a = (b = 3, c = 4, b + c);
D. a -= a = (b = 6) / (c = 2);
【答案】 B
【考纲知识点】 基本运算
【解析】本题考察 C++ 的语法知识点。 % 运算符,操作数只能是整数, c%2.5 不 符合语法规则,因此选 B
     
7. C++ 代码执 后的输出是( )。
A. 都是偶数
B. 都是奇数
C. 不都是偶数或奇数
D. 以上说法都不正确
【答案】 A
【考纲知识点】 选择结构、基本运算
【解析】本题考察程序模拟结果,考察 if 分支结构。 14 12 都是偶数,对 2 取 余结果都等于 0 ,因此 A 选项正确。
    
8. C++ 代码执 后的输出是( )。
A. 都是偶数
B. 都是奇数
C. 不都是偶数或奇数
D. 以上说法都不正确
【答案】 C
【考纲知识点】 选择结构、基本运算
【解析】本题考察程序模拟结果,注意是考察的输出结果,输出结果不一定与事 实相符。首先 14 12 都是偶数, 14%2 的结果等于 0,12%2 也是一样,会进入第 2 if 判断,最终输出 C 选项。
     
9. C++ 代码执 后的输出是( )。
A. 0
B. 1
C. 2
D. 3
【答案】 A
【考纲知识点】 选择结构、基本运算
【解析】本题考察程序模拟结果,考察 if 语句和除法运算。整数除以整数的答案 还是整数, 7/5==1,7/3==2 ,第 1 if 条件成立,输出 0 ,选 A
  
10. C++ 代码段执 后的输出是( )。
   
A. 1
B. 4
C. 5
D. 10
【答案】 C
【考纲知识点】 循环结构
【解析】本题考察 for 循环结构,循环执行了 5 次, cnt 增加了 5 ,答案选 C
     
11. C++ 代码执 后的输出是( )。
A. 2
B. 4
C. 9
D. 10
【答案】 B
【考纲知识点】 循环结构
【解析】本题考察 for 循环结构,循环执行了 i=1,i=3, 2 次,注意 i+=2;cnt 增加 了 1+3 ,答案选 B
    
12. C++ 代码执 后的输出是( )。
A. 3
B. 4
C. 6
D. 7
【答案】 B
【考纲知识点】 循环结构、基本运算
【解析】本题考察 while 循环结构,循环执行了 n=5,n=3,n=1 3 次, cnt 增加了 3 ,最开始 cnt=1 ,答案选 B
13. C++ 代码 于求正整数的所有因数,即输出所有能整除 ⼀个正整数的数。 如,输 10 ,则输出为 1 2 5 10 ;输 12 ,则输出为 1 2 3 4 6 12
17 ,则输出为 1 17 。在横线处应填 代码是( )。
A. int i = 1; i < n; i + 1
B. int i = 1; i < n + 1; i + 1
C. int i = 1; i < n; i++
D. int i = 1; i < n + 1; i++
【答案】 D
【考纲知识点】 循环结构、选择结构
【解析】本题考察 for 循环结构,求一个正整数的所有因子, 1 n 是数字 n 的 因子,循环的终止条件 i<=n, 或者 i<n+1,B D 选项符合。 B 选项中 i+1 i 的值不 能累加,会造成死循环, D 选项正确。
    
14. 在下列代码的横线处填写( ),可以使得输出是正整数 1234 各位数字的
和。
A. n / 10
B. (n / 10) * (n / 10)
C. n % 10
D. (n % 10) * (n % 10)
【答案】 D
【考纲知识点】 循环结构、基本运算
【解析】本题考察 for 循环结构,求各位数字的平方和, BD 是求的平方和, D 选 项可以分别求出各位上的数字,选 D
    
15. 以下 C++ 程序后,输出结果是( )。
A. 1
B. 0
C. 120
D. 法确定
【答案】 A
【考纲知识点】 循环结构、基本运算
【解析】本题考察 for 循环结构,循环推出条件 n 赋值为 0,循环不会执行,输 出 s 原有值 1 。选 A
  
二、判断题(每题 2 分,共 20 分)
    
1. 早期计算机内存不够 ,可以将字库固化在 ⼀个包含只读存储器的扩展卡中 插 计算机主板帮助处理汉字。
【答案】正确
【考纲知识点】 计算机基础知识、计算机历史
【解析】本题计算机基础知识,计算机存储。 
  
2. 神威 · 太湖之光超级计算机是中国 ⾃主研制的超级计算机,在全球超级计算机 TOP500 榜中多次荣膺榜
【答案】正确
【考纲知识点】 计算机历史
【解析】本题计算机发展,超级计算机。
     
3. C++ 表达式 int(3.14) 的值为 3
【答案】正确
【考纲知识点】数据类型
【解析】本题 C++ 语言强制类型转换,将浮点型转换为整形,用 int() 格式。
     
4. C++ 语句 cout<<(2,3,"23") 的输出为 2,3,23
【答案】错误
【考纲知识点】 输入输出语句
【解析】本题考察 C++ 语言 逗号表达式,输出括号内最后一项内容。
  
5. C++ 的循环语句 for (int i = 0; i <10; i += 2) i 0 开始到 10 结 束但不包含 10 ,间隔为 2
【答案】正确
【考纲知识点】 循环结构
【解析】本题考察 C++ 循环知识,看 for 里面的条件, i 初始值是 0 ,每次增加 2, i 分别是 0,2,4,6,8,10 ,到 10 退出循环。
      
6. C++ 表达式 ('1' + '1') 的值为 '2'
【答案】错误
【考纲知识点】 基本数据类型、基本运算
【解析】本题考察 C++ 字符知识,字符相加是根据对应 ASCII 码值相加,‘1’ 的 ASCII 值是 49 ‘2’ ASCII 值是 50 ,输出是 49+49 对应的字符,不是 50
     
7. C++ 中, do-while 循环不可能导致死循环,但 while 有可能。
【答案】错误
【考纲知识点】 循环结构
【解析】本题考察 C++ 循环知识,只要条件成立,都会导致死循环。
    
8. 在下 C++ 代码中,由于循环中的 continue 条件被执 ,因此将导致
死循环。
【答案】错误
【考纲知识点】 循环结构
【解析】本题考察 C++ 循环知识,循环变量会增加,等于 10 的时候退出循环。
      
9. C++ 代码中,不可以将变量命名为 cout ,因为 cout C++ 的关键字。
【答案】错误
【考纲知识点】 变量的定义和使用
【解析】本题考察 C++ 知识, cout 不是关键字,是一个类的对象。
    
10. C++ 级程序设计语
【答案】正确
【考纲知识点】 计算机基础知识
【解析】本题考察 C++ 语言知识, c++ 是一门高级程序设计语言。
三、编程题(每题 25 分,共 50 分)
     
1 、买
问题描述
开学了, 明来到 具店选购 具。签字笔 2 ⼀⽀ ,他需要 X ;记事本 5
本,他需要 Y 本;直尺 3 把,他需要 Z 把。 ⼿⾥ Q 元钱。你通过
编程帮 明算算,他 ⼿⾥ 的钱是否够买他需要的 具。
输入描述
4
⼀⾏ 包含 个正整数 X ,是 明购买签字笔的数量。约定 1 X 10
⼆⾏ 包含 个正整数 Y ,是 明购买记事本的数量。约定 1 Y 10
第三 包含 个正整数 Z ,是 明购买直尺的数量。约定 1 Z 10
第四 包含 个正整数 Q ,是 ⼿⾥ 的钱数(单位:元)。
输出描述
输出 2 。如果 ⼿⾥ 的钱够买他需要的 具,则第 ⼀⾏ 输出 "Yes" ,第 ⼆⾏
明会剩下的钱数(单位:元); 否则,第 ⼀⾏ 输出 "No" ,第 ⼆⾏ 输出
缺少的钱数(单位:元)。
样例输入 1:
1
1
1
20
样例输出 1
Yes
10
样例输入 2
1
1
1
5
样例输出 2
No
5
【题目大意】
1. 已知买一个签字笔、记事本、直尺的价格,输入要买的数量和总钱数,问是否
能够买到需要的数量。
    
【考纲知识点】
1. 变量的定义与使用、选择结构、基本运算、输入输出语句。
【解题思路】
1. 按题目要求定义好需要的变量,并实现输入;
2. 根据单价求出购买这些数量的需要总钱数;
3. 如果有的钱数大于等于需要的钱数,输出 “Yes” 和剩余的钱数;否则输出 “No”
和缺少的钱数。
   
【参考程序】
#include<iostream>
using namespace std;
int main(){
	int x,y,z,q;
    cin>>x>>y>>z>>q;
	if(q-x*2-y*5-3*z>=0){
		cout<<"Yes"<<endl;
		cout<<q-x*2-y*5-3*z<<endl;
	}else{
		cout<<"No"<<endl;
		cout<<x*2+y*5+3*z-q<<endl; 
	}
	return 0;
}

2 明的幸运数 
   
问题描述
所有个位数为 k 的正整数,以及所有 k 的倍数,都被 明称为 “k 幸运数
想知道正整数 L R 之间(包括 L R ) 所有 k 幸运数的和,你能帮帮他吗?
   
输入描述
3 。第 ⼀⾏ 包含 个正整数 k ,第 ⼆⾏ 包含 个正整数 L ,第三 包含
正整数 R 。约定 2≤k≤9 1≤L≤R≤1000
   
输出描述
输出 1 ,符合题意的幸运数之和。
样例输入 1
7
1
10
样例输出 1
7
样例解释 1
1 10 之间共有 1 7 幸运数: 7 。因为 7 既是 7 的倍数,个位数 7 。因此,
结果为 7
样例输入 2
7
10
20
样例输出 2
31
样例解释 2
10 20 之间共有 2 7 幸运数: 14 17 14 7 的倍数, 17 的个位数为 7
因此,结果为 31
【题目大意】
1. 1-n 之间所有的数字是否是幸运数字。
【考纲知识点】
1. 变量的定义与使用、控制语句结构、逻辑运算、算术运算、输入输出语句等。
     
【解题思路】
1. 按题目要求定义好需要的变量,并实现输入;
2. 判断每个数字是否是幸运数字,各位是 7 或者是 7 的倍数;
3. 是的话就累加,最终输出汇总结果。
   
【参考程序】
#include<iostream>
using namespace std;
int main(){
	int k,l,r,s=0;
	cin>>k>>l>>r; 
	for(int i=l;i<=r;i++){
		if(i%10==k||i%k==0) s+=i;
	}
	cout<<s;
	return 0;
}

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值