C++ ⼀级 2024 年 03 ⽉

C++ ⼀级 2024 年 03 ⽉

一、单选题

1.【单选题】C++表达式 (3 - 2) * 3 + 5 的值是( )。

A -13

B 8

C 2

D 0

正确答案:B

数学运算符有优先级。括号第1,乘法第2,加法与减法第3。(3-2)3+5=13+5=8,答案为B

2.【单选题】C++语句 cout << "5%2=" << 5 % 2 执行后的输出是( )。

A 2 2

B 1 1

C 5%2=2

D 5%2=1

正确答案:D

本题考的是输出和算术运算。Cout后面有两个<<,第1个输出字符串5%2=,第2个输出算术运算"5%2"的结果,为1,答案为D

3.【单选题】执行C++语句 cin >> a 时如果输入5+2,下述说法正确的是( )。

A 变量a将被赋值为整数7

B 变量a将被赋值为字符串,字符串内容为5+2

C 语句执行将报错,不能输入表达式

D 依赖于变量a的类型。如果没有定义,会有编译错误

正确答案:D

语句cin>>a依赖于a的变量类型。如果a没有定义,编译时会出错,答案为D

4.【单选题】下面C++代码执行后的输出是( )。

复制代码
int a = 1;
cout << "a+1= " << a+1 << endl;

A a+1= 2

B a+1=2

C 2=2

D 2= 2

正确答案:A

a=1时,a+1=2。cout语句先输出字符串,后输出运算结果。要注意的是,字符串"a+1= "最后有一个空格,因而输出的内容是:a+1= 2,答案为A

5.【单选题】下面C++代码执行后的输出是( )。

复制代码
int a = 1;
printf("a+1=%d\n", a+1);

A a+1= 2

B a+1=2

C 2=2

D 2= 2

正确答案:B

a+1=2,根据printf语句的语法,输出为:a+1=2,答案为B

6.【单选题】下面C++代码执行时输入21后,有关描述正确的是( )

c++ 复制代码
int N; cin >> N;
if(N% 3 == 0)
cout << "能被3整除";
else if (N % 7 == 0) cout << "能被7整除";
else
cout << "不能被3和7整除";
cout << endl;

A 代码第4行被执行

B 第4和第7行代码都被执行

C 仅有代码第7行被执行

D 第8行代码将被执行,因为input()输入为字符串

正确答案:A

输入21,21%3的结果为0,进入if的分支,因而第4行代码可以被执行。执行之后,else if语句和else语句都会被跳过,执行第99行代码。答案为A

7.【单选题】下面C++代码第2行,总共被执行次数是( )。

复制代码
for(int i=-10; i<10; i++)
cout << i << " ";

A 10

B 19

C 20

D 21

正确答案:C

循环从 i = -10 开始,继续执行直到 i < 10 成立时停止。循环将为每个整数从-10到9执行一次,共计20个整数。即 cout << i << " "; 将被执行20次。答案为C

8.【单选题】下面C++代码执行后的输出是( )。

复制代码
int tnt = 0;
for(int i=0; i<10; i++)
	if(i%3 && i%7) 
		tnt +=i;
cout << tnt << endl;

A 0

B 7

C 18

D 20

正确答案:D

代码中的 for 循环遍历从0到9的整数。if 条件 i % 3 && i % 7,意味着只有当 i 同时不被3和7整除时,条件才为真。在0到9的范围内,1, 2, 4, 5, 8 不是3或7的倍数。这些数值的总和是:1 + 2 + 4 + 5 + 8 = 20。答案为D

9.【单选题】下面C++代码执行后的输出是( )。

复制代码
int N = 10; 
while(N){
    N -= 1;
    if(N%3 == 0)
   	 cout << N << "#";
}

A 9#6#3#

B 9#6#3#0#

C 8#7#5#4#2#1#

D 10#8#7#5#4#2#1#

正确答案:B

初始值 N = 10,进入 while 循环,条件是 N 不为0。在循环内部,首先 N 被减1,然后检查 N % 3 是否等于0。迭代的过程中,N 逐个递减并检查。当 N 为9, 6, 3, 0时,满足条件 N % 3 == 0,因此它们被输出并跟随一个 #。所以输出结果是 9#6#3#0#。答案为B

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 << "不是质数";

A N % i

B N % i == 0

C N / i == 0

D N / i

正确答案:B

质数定义为只能被1和自身整除的数。此代码通过判断cnt(能被N整除所有数字的个数)是否为2来判断 N 是否为质数。因而if条件中要判断的是,N是否能被i整除。答案为B

11.【单选题】下面关于整型变量int x的赋值语句不正确是( )。

A x=(3.16);

B x=3.16;

C x=int(3.16);

D x=3.16 int;

正确答案:D

选项A使用括号进行赋值,是有效的C++语句,编译系统会自动将3.16转换为整型;选项B直接赋值浮点数到整型变量也会自动转换;选项C显式地将浮点数转换为整型也是有效的。选项D中的"x=3.16 int"语法是不正确的,C++中没有这种赋值语法格式。答案为D

12.【单选题】C++语言中下面可以完成数据输入的语句是( )。

A printf语句

B scanf语句

C default语句

D cout语句

正确答案:B

选项A printf语句是一个输出语句,用于向用户显示信息。选项B scanf语句:这是标准的输入语句,在C++中用来从标准输入(通常是键盘)读取数据。选项C default语句通常用于switch语句中,不涉及输入或输出。选项D cout语句也是一个输出语句,用于向标准输出流(通常是屏幕)输出数据。答案为B

13.【单选题】在Dev C++中对一个写好的C++源文件要生成一个可执行程序需要执行下面哪个处理步骤?( )

A 创建

B 编辑

C 编译

D 调试

正确答案:C

要把C++源文件转换生成可执行程序,需要进行编译。答案为C

14.【单选题】小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是?( )

A 小程序

B 计时器

C 操作系统

D 神话人物

正确答案:C

鸿蒙OS(HarmonyOS)是华为开发的操作系统,用于多种设备,包括智能手表、手机、平板电脑等。答案为C

15.【单选题】中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是( )。

A 制造自动驾驶汽车

B 创立培训学校

C 发明汉字激光照排系统

D 成立方正公司

正确答案:C

王选先生最为著名的贡献是发明汉字激光照排技术,这项技术极大地改善了中文印刷技术,对中国的出版和印刷业有重大影响。答案为C

二、判断题

16.【判断题】在C++代码中变量n被赋值为27,则 cout << n%10 执行后输出的是7。( )

A正确

B错误

正确答案:A

% 运算符是取余运算符,n % 10 将计算 27 除以 10 的余数,结果为 7。答案为正确

【判断题】C++语句 printf("%d#%d&",2,3) 执行后输出的是2#3&。 ( )

A正确

B错误

正确答案:A

printf 是一个格式化输出函数。此处使用 %d 占位符按顺序输出整数 2 和 3,并在它们之间加入特殊字符 # 和 &。答案为正确

18.【判断题】C++函数scanf()必须含有参数,且其参数为字符串型字面量,其功能是提示输入。( )

A正确

B错误

正确答案:B

scanf() 的参数是字符串型字面量,但其功能是读取输入,而不仅仅是提示输入。答案为错误

19.【判断题】C++表达式 "10"*2 执行时将报错,因为 "10" 是字符串类型而2是整数类型,它们数据类型不同,不能在一起运算。( )

A正确

B错误

正确答案:A

在C++中,字符串字面值和整数不能直接进行算术运算,这会导致编译错误,因为没有定义如何将字符串和整数相乘。答案为正确

20.【判断题】在C++中,while可能是死循环,而for循环不可能是死循环。( )

A正确

B错误

正确答案:B

for 循环完全可以编写成死循环,例如使用 for(;😉。答案为错误

21.【判断题】在C++,break语句用于提前终止当前层次循环,适用于while循环,但不适用于for循环。( )

A正确

B错误

正确答案:B

break 语句可以用在任何类型的循环中,包括 for 和 while 循环,用于立即退出循环。答案为错误

22.【判断题】C++语言中3.0和3的值相等,所以它们占用的存储空间也相同。( )

A正确

B错误

正确答案:B

虽然数值相等,但3.0是浮点数,3是整数,它们在内存中占的存储空间不同。答案为错误

23.【判断题】在C++的程序中,cin是一个合法的变量名。( )

A正确

B错误

正确答案:A

虽然 cin 是在C++标准库中预定义的标准输入流对象,但它并不是C++的保留关键字。因此,从语法上讲,使用 cin 作为变量名是允许的。答案为正确。不过,使用 cin 或其他标准库名称作为变量名通常不被推荐,因为这会导致代码可读性和维护性的问题,可能引起混淆。

24.【判断题】小杨今年春节回奶奶家了,奶奶家的数字电视可以通过遥控器输入电视剧名称来找到想播放的电视剧,所以可以推知里面有交互式程序在运行。( )

A正确

B错误

正确答案:A

数字电视使用交互式程序来响应用户的输入(遥控器的操作),这表明其内部运行了交互式软件。答案为正确

25.【判断题】任何一个for循环都可以转化为等价的while循环( )。

A正确

B错误

正确答案:A

这是正确的。for 循环可以通过重写条件和迭代部分来改写为 while 循环,保持逻辑一致性。答案为正确

三、编程题

26.【编程题】小杨买书

题面描述

小杨同学积攒了一部分零用钱想要用来购买书籍,已知一本

书的单价是13元,请根据小杨零用钱的金额,编写程序 计算

最多可以购买多少本书,还剩多少零用钱。

输入格式

输入一个正整数 ,表示小杨拥有的零用钱数。

输出格式

输出包含两行,第一行,购买图书的本书,第二行剩余的零用钱数。

复制代码
100
7
9

3.2.7 样例输入 2

复制代码
199
15
4
c++ 复制代码
#include<iostream> 
using namespace std;
int main()
{
	//零用钱数
	int money;
	cin>>money;
	//最多购买单价为13的书数量
	float shope=money/13;
	cout<<shope<<endl;
	money-=(shope*13);
	cout<<money;
	return 0;
}

3.2 编程题 2

试题名称:找因数

3.2.1 问题描述

⼩ A 最近刚刚学习了因数的概念,具体来说,如果⼀个正整数 可以被另⼀个正整数 a 整除,那么我们就说 是 的因数。 请你帮忙写⼀个程序,从⼩到⼤输出正整数 的所有因数。

3.2.2 输入描述

输⼊⼀⾏⼀个正整数 。

3.2.3 输出描述

输出若⼲⾏,为 a的所有约数,从⼩到⼤排列。

3.2.4 特别提醒

在常规程序中,输⼊、输出时提供提⽰是好习惯。但在本场考试中,由于系统限定,请不要在输⼊、输出中附带任 何提⽰信息。

3.2.5 样例输入 1

复制代码
1

3.2.6 样例输出1

复制代码
1

3.2.7 样例输入 2

复制代码
6

3.2.8 样例输出2

复制代码
1
2
3
6
c++ 复制代码
#include<iostream> 
using namespace std;
int main()
{
	//输入正整数
	int a;
	cin>>a;
	//输出所有因数
	for(int i=1;i<=a;i++) 
	{
		if(a%i==0)
			cout<<i<<endl;
	}
	return 0;
}
相关推荐
CC.GG1 小时前
【C++】二叉搜索树
java·c++·redis
Savior`L2 小时前
二分算法及常见用法
数据结构·c++·算法
深海潜水员2 小时前
OpenGL 学习笔记 第一章:绘制一个窗口
c++·笔记·学习·图形渲染·opengl
mmz12073 小时前
前缀和问题(c++)
c++·算法·图论
ULTRA??3 小时前
初学protobuf,C++应用例子(AI辅助)
c++·python
旖旎夜光3 小时前
list实现(7)(上)
c++
不会c嘎嘎4 小时前
深入理解 C++ 异常机制:从原理到工程实践
开发语言·c++
崇山峻岭之间4 小时前
C++ Prime Plus 学习笔记026
c++·笔记·学习
赖small强5 小时前
【Linux C/C++开发】Linux 平台 Stack Protector 机制深度解析
linux·c语言·c++·stack protector·stack-protector·金丝雀机制