C++ ⼀级 2023 年09 ⽉

C++ ⼀级 2023 年09 ⽉

一、单选题

1.【单选题】我们通常说的"内存"属于计算机中的( )

A输出设备

B输入设备

C存储设备

D打印设备

正确答案:C

本题属于考察计算机基础知识中的存储设备问题;内存是一种存储设备, 也可以考虑关联内存中的"存"字,选 C。

2.【单选题】以下 C++不可以作为变量的名称的是( )。

AredStar

BRedStar

Cred_star

Dred star

正确答案:D

本题属于变量命名规则问题。C++中的变量包括数字、字母和下划线。 D 选项中含有空格,因此选 D。

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

A0

B1

C2

D3

正确答案:B

本题考察运算符优先级,算数运算符包括:+,-,*,/,%,优先级大于 &&。 2-1 等于 1,2%10 等于 2,1&&2 等于 1,选 B。

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

复制代码
int a = 3, b = 4;
cout << "a+b=" << a + b;

A3+4= 7

B3+4=7

Ca+b=7

Da+b=a+b

正确答案:C

本题考察程序模拟,双引号和没有双引号。直接输出双引号里的内容, 计算 a+b 的结果,然后输出。选 C。

5.【单选题】在 C++语言中, int 类型的变量 x 、 y 、 z 的值分别为 2 、 4 、 6 , 以下表达式的值为真的是( )。

Ax > y || x > z

Bx != z - y

Cz > y + x

Dx < 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++语法是()。

Ac+=5;

Bb=c%2.5;

Ca =(b = 3,c = 4,b + c);

Da-=a=(b=6)/(c=2);

正确答案:B

本题考察C++的语法知识点。%运算符,操作数只能是整数,c%2.5不符合语法规则,因此选B。

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

复制代码
int m = 14;
int n = 12;
if (m % 2 == 0 && n % 2 == 0)
    cout << "都是偶数";
else if (m % 2 == 1 && n % 2 == 1)
    cout << "都是奇数";
else
    cout << "不都是偶数或奇数";

A都是偶数

B都是奇数

C不都是偶数或奇数

D以上说法都不正确

正确答案:A

我的答案:A

本题考察程序模拟结果,考察if分支结构。14和12都是偶数,对2取余结果都等于0,因此A选项正确。

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

复制代码
int m = 14;
int n = 12;
if (m % 2 && n % 2)
    cout << "都是偶数";
else if (m % 2 == 1 && n % 2 == 1)
    cout << "都是奇数";
else
    cout << "不都是偶数或奇数";

A都是偶数

B都是奇数

C不都是偶数或奇数

D以上说法都不正确

正确答案:C

本题考察程序模拟结果,注意是考察的输出结果,输出结果不一定与事实相符。首先14和12都是偶数,14%2的结果等于0,12%2也是一样,会进入第2个if判断,最终输出C选项。

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

复制代码
int m = 7;
if (m / 5 && m / 3)
    cout << 0;
else if (m / 3)
    cout << 1;
else if (m / 5)
    cout << 2;
else
    cout << 3;

A0

B1

C2

D3

正确答案:A

本题考察程序模拟结果,考察if语句和除法运算。整数除以整数的答案还是整数,7/51,7/32,第1个if条件成立,输出0,选A。

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

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

A1

B4

C5

D10

正确答案:C

本题考察for循环结构,循环执行了5次,cnt增加了5,答案选C。

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

复制代码
int tnt = 0;
for (int i = 1; i < 5; i += 2)
    tnt = tnt + i;
cout << tnt;

A2

B4

C9

D10

正确答案:B

本题考察for循环结构,循环执行了i=1,i=3,共2次,注意i+=2;cnt增加了1+3,答案选B。

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

复制代码
int n = 5;
int cnt = 1;
while (n >= 0) {
    cnt += 1;
    n -= 2;
}
cout << cnt;

A3

B4

C6

D7

正确答案: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。在横线处应填入代码是( )。

复制代码
int n;
cin >> n;
for (___) {
    if (n % i == 0)
        cout << i << endl;
}

Aint i = 1; i < n; i + 1

Bint i = 1; i < n + 1; i + 1

Cint i = 1; i < n; i++

Dint 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 各位数字的 平方和。

复制代码
int n = 1234, s = 0;
for (; n; n /= 10)
    s += ___; // 此处填写代码
cout << s << endl;

An / 10

B(n / 10) * (n / 10)

Cn % 10

D(n % 10) * (n % 10)

正确答案:D

本题考察 for 循环结构,求各位数字的平方和,BD 是求的平方和,D 选 项可以分别求出各位上的数字,选 D。

15.【单选题】执行以下 C++语言程序后,输出结果是( )。

复制代码
int n = 5, s = 1;
for (; n = 0; n--)
    s *= n;
cout << s << endl;

A1

B0

C120

D无法确定

正确答案:A

本题考察 for 循环结构,循环推出条件 n 赋值为 0,循环不会执行,输 出 s 原有值 1。选 A

二、判断题

16.【判断题】早期计算机内存不够大,可以将字库固化在一个包含只读存储器的扩展卡中 插入计算机主板帮助处理汉字。

A正确

B错误

正确答案:A

本题计算机基础知识,计算机存储。

17.【判断题】神威·太湖之光超级计算机是中国自主研制的超级计算机,在全球超级计算机 TOP500 排行榜中多次荣膺榜首。

A正确

B错误

正确答案:A

本题计算机发展,超级计算机。

18.【判断题】C++表达式int(3.14)的值为3。

A正确

B错误

正确答案:A

本题C++语言强制类型转换,将浮点型转换为整形,用int()格式。

19.【判断题】C++语句cout<<(2,3,"23")的输出为2,3,23。

A正确

B错误

正确答案:B

本题考察C++语言---逗号表达式,输出括号内最后一项内容。

20.【判断题】C++的循环语句 for (int i = 0; i <10; i += 2) 表示 i 从 0 开始到 10 结 束但不包含 10,间隔为 2。

A正确

B错误

正确答案:A

本题考察 C++循环知识,看 for 里面的条件,i 初始值是 0,每次增加 2, i 分别是 0,2,4,6,8,10,到 10 退出循环。

21.【判断题】C++表达式('1'+'1')的值为'2'。

A正确

B错误

正确答案:B

本题考察C++字符知识,字符相加是根据对应ASCII码值相加,值是49,'2'的ASCII值是50,输出是49+49对应的字符,不是50。

22.【判断题】在C++语言中,do-while循环不可能导致死循环,但while有可能。

A正确

B错误

正确答案:B

本题考察C++循环知识,只要条件成立,都会导致死循环。

23.【判断题】在下面的C++代码中,由于循环中的continue是无条件被执行,因此将导致死循环。

复制代码
for (int i = 1; i < 10; i++) continue;

A正确

B错误

正确答案:B

本题考察C++循环知识,循环变量会增加,等于10的时候退出循环。

24.【判断题】在C++代码中,不可以将变量命名为cout,因为cout是C++的关键字。

A正确

B错误

正确答案:B

本题考察C++知识,cout不是关键字,是一个类的对象。

25.【判断题】C++是一种高级程序设计语言

A正确

B错误

正确答案:A

本题考察C++语言知识,c++是一门高级程序设计语言。

三、编程题

26.【编程题】买文具

问题描述

开学了,小明来到文具店选购文具。签字笔 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
3.1.5 样例输出 1
plaintext 复制代码
Yes
10
3.1.6 样例输入 2
plaintext 复制代码
1
1
1
5
3.1.7 样例输出 2
plaintext 复制代码
No
5
3.1.8 参考程序
c++ 复制代码
#include<iostream> 
using namespace std;
int main()
{
	int x,y,z,q,p;
	cin>>x>>y>>z>>q;
	p=x*2+y*5+z*3;
	if(q>=p)
	{
		q-=p;
		cout<<"yes"<<endl;
		cout<<q;
	}
	else
	{
		p-=q;
		cout<<"no"<<endl;
		cout<<p;
	}

	return 0;
}

3.2 编程题 2

试题编号:2023-09-23-01-C-02
试题名称:小明的幸运数
时间限制:1.0s
内存限制:128.0MB
3.2.1 问题描述

所有个位数为 k 的正整数,以及所有 k 的倍数,都被小明称为 "k 幸运数"。小明想知道正整数 L 和 R 之间(包括 L 和 R)所有幸运数的和,你能帮帮他吗?

3.2.2 输入描述

输入 3 行。第一行包含一个正整数 k,第二行包含一个正整数 L,第三行包含一个正整数 R。约定 2 ≤ k ≤ 9,1 ≤ L ≤ R ≤ 1000。

3.2.3 输出描述

输出 1 行,符合题意的幸运数之和。

3.2.4 样例输入 1
plaintext 复制代码
7
1
10
3.2.5 样例输出 1
plaintext 复制代码
7
3.2.6 样例解释 1

1 和 10 之间共有 1 个 7 幸运数:7。因为 7 既是 7 的倍数,个位数又为 7。因此,结果为 7。

3.2.7 样例输入 2
plaintext 复制代码
7
10
20
3.2.8 样例输出 2
plaintext 复制代码
31
3.2.9 样例解释 2

10 和 20 之间共有 2 个 7 幸运数:14 和 17。14 是 7 的倍数,17 的个位数为 7。因此,结果为 31。

3.2.10 参考程序
复制代码
#include<iostream>
using namespace std;
int main()
{
	int k=0,l=0,r=0,sum=0;
	cin>>k>>l>>r;
	for(int i=l;i<=r;i++)
	{
		if(i%k==0 || i%10==k)
		{
			sum+=i;
		}	
	}
	cout<<sum;
	return 0;
}

intext

7

1

10

复制代码
##### 3.2.5 样例输出 1

```plaintext
7
3.2.6 样例解释 1

1 和 10 之间共有 1 个 7 幸运数:7。因为 7 既是 7 的倍数,个位数又为 7。因此,结果为 7。

3.2.7 样例输入 2
plaintext 复制代码
7
10
20
3.2.8 样例输出 2
plaintext 复制代码
31
3.2.9 样例解释 2

10 和 20 之间共有 2 个 7 幸运数:14 和 17。14 是 7 的倍数,17 的个位数为 7。因此,结果为 31。

3.2.10 参考程序
复制代码
#include<iostream>
using namespace std;
int main()
{
	int k=0,l=0,r=0,sum=0;
	cin>>k>>l>>r;
	for(int i=l;i<=r;i++)
	{
		if(i%k==0 || i%10==k)
		{
			sum+=i;
		}	
	}
	cout<<sum;
	return 0;
}
相关推荐
LXS_3572 小时前
Day 16 C++提高之模板
开发语言·c++·笔记·学习方法
wyw00002 小时前
鸿蒙开发-如何将C++侧接收的PixelMap转换成cv::mat格式
c++·华为·harmonyos
liulilittle2 小时前
C++ CRTP 替代虚函数
数据结构·c++·算法
buyue__2 小时前
C++实现数据结构——队列
数据结构·c++
NZT-482 小时前
C++基础笔记(二)队列deque,queue和堆priority_queue
java·c++·笔记
玉树临风ives3 小时前
atcoder ABC436 题解
c++·算法·leetcode·atcoder·信息学奥赛
fpcc3 小时前
C++23中的自定义模块开发
c++·c++23
qq_310658513 小时前
mediasoup源码走读(十二)——router
服务器·c++·音视频
落羽的落羽3 小时前
【C++】哈希扩展——位图和布隆过滤器的介绍与实现
linux·服务器·开发语言·c++·人工智能·算法·机器学习