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

CCF编程能力等级认证GESP---C++1级---20251227

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

1、近日,空中客车公司表示,约6000架空客A320系列飞机需要紧急更换一种易受太阳辐射影响的飞行控制软件。空客表示,在对一起飞行事故分析后的结果显示,强烈的太阳辐射可能会损坏飞行控制系统所需的关键数据, 导致判断失误,进而引发飞行异常。那这里的飞行控制系统执行判断的部件最可能是下面的( )。

cpp 复制代码
A.辐射传感器
B.处理器
C.内存单元
D.输出设备

正确答案:B

2、下面的C++代码在某集成开发环境中编译运行时,提示有"Invalid Character"("无效字符")错误。可能的原因是( ):

cpp 复制代码
int a, b; 
a=3,b = 4; // L1 
cout << a; // L2 
cout << b; // L3 
cpp 复制代码
A. L1行代码中的逗号很可能是中文逗号,应该改为英文逗号。
B. L1行应该分为两行,分别是 a = 3 和 b = 4 。
C. 代码运行前没有保存到文件。
D. L2和L3不能分为两行,应合并为一行。

正确答案:A

3、下面有关C++变量的说法,正确的是( )。

cpp 复制代码
A.不可以用 for 作为变量名,因为 for 是C++的关键字(保留字)。
B. _tnt 不可以是变量名,因为变量名的第一个字符必须是英文字母。
C. _tnt_ 不可以是变量名,因为最后一个字符容易与减号混淆。
D.可以用 printf 作为变量名,因为 printf 是关键字,但这不是好习惯,因为 printf 有约定的功能与含义。

正确答案:A

4、X 是C++的整型变量,则 cout << (X=3, X++, ++X); 执行后的输出是( )。

cpp 复制代码
A. 3
B. 4
C. 5
D.不确定

正确答案:C

5、C++表达式 2 + 3 * 4 % 5 的值为( )。

cpp 复制代码
A. 0
B. 4
C. 14
D. 50

正确答案:B

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

cpp 复制代码
a = 3; b = a = 4; 
printf("%d %d", a, b); 
cpp 复制代码
A. 4 4
B. 3 3
C. 3 4
D. 4 3

正确答案:A

7、下面的C++代码执行时如果先输入 10 回车后输入 20 并回车,其输出是( )。

cpp 复制代码
int N,M; 
printf("第一个数:"); 
scanf("%d", &N); 
printf("第二个数:"); 
scanf("%d", &M); 
printf("%%(N+M)=%d", N+M, int(N+M)); 
cpp 复制代码
A. 30=30
B. 10+20=30
C. %(N+M)=30
D. 错误提示

正确答案:C

8、某个整数很长很长,形如:1232123212321......,其规律是从1开始逐一升高到3然后逐一降低到1,然后又逐一升高到3,一直到很长很长。假设最高位编号为1,要求判断从左边最高位开始的第N位数是几?在横线处应该填入的代码是( )。

cpp 复制代码
int N, M; 
cout << "请输入编号:"; 
cin >> N; 
M = ____; 
if (M != 0) 
	cout << M; 
else 
	cout << 2; 
cpp 复制代码
A. N % 4
B. N / 4
C. N % 3
D. N / 3

正确答案:A

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

cpp 复制代码
int i, tnt = 0; 
for (i = 0; i < 100; i++)
	tnt += 1;
cout << tnt << ' ' << i;
cpp 复制代码
A. 99 99
B. 100 99
C. 99 100
D. 100 100

正确答案:D

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

cpp 复制代码
int tnt = 0; 
for (int i = 1; i < 10; i += 2)  // L1 
	tnt += i;  // L2 
cout << tnt; 
cpp 复制代码
A. L1的 i < 10 改为 i < 11 结果相同。
B. L1的 i = 1 改为 i = 0 结果相同。
C. tnt += i 与 tnt = tnt + i 效果相同。
D. tnt += i 与 tnt = i + tnt 效果相同。

正确答案:B

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

cpp 复制代码
int i; 
for (i = 10; i < 100; i += 10){ 
	if (i % 10 == 0) 
		continue; 
	printf("%d#",i); 
} 
if(i >= 100) 
	printf("%d END",i); 
cpp 复制代码
A. 10#20#30#40#50#60#70#80#90#100 END
B. 100#100 END
C. 100 END
D. 没有输出

正确答案:C

12、两个正整数,只要不相等,就一直进行如下操作:最大数减去最小数得到一个值,该值和两个数的最小数构成新的两个正整数,重复操作,直到两个数相等,此时输出该数。下面的C++代码用于实现该操作,横线处应该填写的代码是( )。

cpp 复制代码
int N, M;
cin >> N >> M;
while (N != M){
	if (N > M)
		______________;
	else
		______________;
}
cout << N;
cpp 复制代码
A. N = N - M; 
   M = M - N
B. M = M - N; 
   N = N - M
C. N = N - M; 
   M = N - M
D. M = M - N; 
   N = M - N

正确答案:A

13、如果一个正整数能被3整除,或者某一位能被3整除,则称之为"漂亮数"。下面的C++代码用于判断正整数N是否为漂亮数,L1行的横线处应该填入的代码是( )。

cpp 复制代码
int N, Flag; 
cin >> N; 
Flag = 0; // "非漂亮数" 
if (N % 3 == 0) 
	Flag = 1; //"漂亮数" 
else 
	while (N != 0){ 
		if (________){ // L1 
			Flag = 1; 
			break; 
		} 
		N /= 10; 
	} 
cout << (Flag? "漂亮数" : "非漂亮数"); 
cpp 复制代码
A. N % 10 == 0
B. N % 3 % 10 == 0
C. N % 10 % 3
D. N % 10 % 3 == 0

正确答案:D

14、如果正整数N的所有奇因数(即能将N整除的正奇数)的和是27的倍数,则称N是27的神秘数。下面的C++代码用于判断输入的N是否为27的神秘数。如输入53,它有两个奇因数1和53,则将输出 Y 。( )。

cpp 复制代码
int i, N, cnt = 0;
cin >> N;
for (i=1; i <=N; i++){
	if (_________________)
		cnt += i;
}
if(cnt % 27 == 0)
	cout << 'Y';
cpp 复制代码
A. (N % i) && (i % 2)
B. (N % i == 0) && (i % 2 == 0)
C. (N % i == 0) && (i % 2)
D. (N % i) && (i % 2 == 0)

正确答案:C

15、执行下面C++代码可以找出千位与个位的和恰好等于中间两位的四位数,横线处应该填入( )

cpp 复制代码
int count = 0; 
int a, bc, d, tmp; 
for (int i = 1000; i <= 9999; i++) { 
	a = (tmp = i) / 1000; 
	________________________ 
	bc = tmp / 10; 
	d = tmp bc * 10; 
	if ( a + d == bc) { 
		count++; 
	} 
} 
cout << count; 
cpp 复制代码
A. tmp = i / 10;
B. tmp = i % 100;
C. tmp -= a * 1000;
D. tmp = i i%1000;

正确答案:C

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

1、鸿蒙是华为公司开发的一款操作系统,那么它能够将正确的源程序翻译成目标程序,并运行。( )

正确答案:错误

2、C++表达式 10 * 4 % 6 和 10 * 2 % 3 的结果相同。( )

正确答案:正确

3、下面C++代码执行后将输出 0 。 ( )

cpp 复制代码
int i; 
for (i = 0; i < 10; i++) 
	if (i % 3 == 0) 
		continue; 
	else 
		break; 
cout << i; 

正确答案:错误

4、下面C++代码中的 i > -10; i-改为 i < 10; i++ 执行结果相同。( )

cpp 复制代码
int tnt = 0; 
for (int i = 0; i > -10; i--){ 
	if (i < 0) 
		i = -i; 
	tnt += i; 
} 
cout << tnt; 

正确答案:错误

5、下面C++代码执行后将输出 99 ,因为 i < 100 不包括100,而是到99。( )

cpp 复制代码
int cnt = 0; 
for (int i = 0; i < 100; i++) 
	cnt += 1; 
cout << cnt; 

正确答案:错误

6、下面的C++代码能用于判断输入的正整数是否为对称数。所谓对称数是指从左到右和从右到左读该数,其值相同,121或414等是对称数,而123不是对称数。( )

cpp 复制代码
int n, new_number; 
cout << "请输入正整数:"; 
cin >> n; 
new_number = 0; 
while (n != 0){ 
	new_number = new_number * 10 + n % 10; 
	n /= 10; 
} 
if (n == new_number) 
	cout << "对称数"; 
else 
	cout << "非对称数"; 

正确答案:错误

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

cpp 复制代码
int tnt = 0;
for (int i = -100; i < 100; i++)    
	tnt += i;
cout << tnt;

正确答案:正确

8、某同学执行C++代码时 printf("%g\n", (3 + 3.1415926535)); 输出 6.14159 而不是 6.1415926535 表明该同学的计算机存在故障需要重新安装C++软件。( )

正确答案:错误

9、如果 x 是C++代码中的 double 型变量,则对 cout << ( x? 1227 : 12.27); 编译时将报错,因为 1227 和 12.12 分别是 int 和 double 类型,导致识别混乱。( )

正确答案:错误

10、在C++代码中,不可以将变量命名为 keyword ,因为它是C++语言的关键字。( )

正确答案:错误

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

小杨的爱心快递

【问题描述】

小杨是"爱心社区"的小志愿者,每周他都会帮助邻居们寄送捐赠给山区小学的文具和书籍。快递公司为了支持公益行动,制定了特殊的运费规则,鼓励大家合理包装:

假设快递的体积为V,重量为G。

按体积计算:运费按体积计算,公式是V/2元。

按重量计算:为了鼓励减轻包裹重量,规则是:当重量小于300克,即G < 300时,运费为M元;当重量达到或超过300克,即G >= 300时,运费为N元。

快递公司的叔叔说:"我们应该选择最公平合理的计费方式。"

所以,最终的运费会取按体积计算和按重量计算这两种方式中价格较低的那一个,这样对寄件人最公道。

【输入格式】

四行,每行一个一位小数的浮点数,分别代表快递的体积V,快递的重量G,第一档重量运费M,第二档重量运费N。

【输出格式】

一行一个一位小数,代表实际快递运费。

【样例输入 1】

100.4

300.2

60.6

70.5

【样例输出 1】

50.2

【样例输入 2】

99.8

200.9

60.2

70.1

【样例输出 2】

49.9

【数据范围】

对于所有测试点,保证给出的浮点数不超过1000.0。

手机电量显示

【问题描述】

小杨的手机就像一个聪明的小助手,当电量变化时,它会用不同的方式来提醒我们,假设当前的电量百分比为P:

当电量非常低(不超过10,即P <= 10),它会显示一个大写字母 R,就像在说:"快给我充电吧!(Red警告色)"

当电量有点低(超过10但不超过20,即10 < P <= 20),它会显示一个大写字母 L,意思是"电量有点Low啦!"

当电量比较充足(超过20,即P > 20),它就会直接显示具体的数字,比如直接显示99,表示还有99%的电量。

【输入格式】

第一行一个正整数T,代表数据组数。

对于每组数据,一行包含一个正整数P,代表手机电量百分比。

【输出格式】

对于每组数据,输出一行,代表当前手机显示的电量信息。

【样例输入】

5

10

1

20

99

19

【样例输出】

R

R

L

99

L

【数据范围】

对于所有测试点,保证1 <= T <= 100,0 <= P <= 100。

相关推荐
Sylus_sui2 小时前
git中如何从某次历史提交节点上创建一个新的分支
git·算法·哈希算法
nn在炼金2 小时前
大模型领域负载均衡技术
人工智能·算法·负载均衡
hashiqimiya2 小时前
java程序的并发
java·开发语言·python
微露清风2 小时前
系统性学习C++进阶-第十四讲-二叉搜索树
开发语言·c++·学习
.try-2 小时前
cssTab卡片式
java·前端·javascript
falldeep3 小时前
Pandas入门指南
数据结构·算法·leetcode·pandas
natide3 小时前
表示/嵌入差异-4-闵可夫斯基距离(Minkowski Distance-曼哈顿距离-欧氏距离-切比雪夫距离
人工智能·深度学习·算法·机器学习·自然语言处理·概率论
再睡一夏就好3 小时前
多线程并发编程核心:互斥与同步的深度解析及生产者消费者模型两种实现
linux·运维·服务器·jvm·c++·笔记
ulias2123 小时前
多态理论与实践
java·开发语言·前端·c++·算法