CCF-GESP 等级考试 2023年3月认证C++一级真题解析

2024年03月真题

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

第 1 题 以下不属于计算机输入设备的有( )。

  • A. 键盘
  • B. 音箱
  • C. 鼠标
  • D. 传感器

正确答案:B. 音箱

解析:

  • A. 键盘:键盘是输入设备。
  • B. 音箱:音箱是输出设备,不是输入设备。
  • C. 鼠标:鼠标是输入设备。
  • D. 传感器:传感器是输入设备。

第 2 题 计算机系统中存储的基本单位用B来表示,它代表的是( )。

  • A. Byte
  • B. Block
  • C. Bulk
  • D. Bit

正确答案:A. Byte

解析:

  • A. Byte:Byte(字节)是计算机存储的基本单位。
  • B. Block:块,不是计算机存储的基本单位。
  • C. Bulk:大宗,不是计算机存储的基本单位。
  • D. Bit:比特,是更小的存储单位,不是B表示的单位。

第 3 题 常量7.0的数据类型是( )。

  • A. double
  • B. float
  • C. void
  • D. int

正确答案:A. double

解析:

  • A. double:7.0 是一个双精度浮点数(double)。
  • B. float:7.0 是double类型,而不是float类型。
  • C. void:void表示无类型,7.0不是void类型。
  • D. int:7.0 不是整数类型。

第 4 题 下列关于C++语言的叙述,不正确的是( )。

  • A. 变量定义时可以不初始化
  • B. 变量被赋值之后的类型不变
  • C. 变量没有定义也能够使用
  • D. 变量名必须是合法的标识符

正确答案:C. 变量没有定义也能够使用

解析:

  • A. 变量定义时可以不初始化:这在C++中是正确的。
  • B. 变量被赋值之后的类型不变:这在C++中是正确的。
  • C. 变量没有定义也能够使用:这是错误的,变量必须先定义才能使用。
  • D. 变量名必须是合法的标识符:这在C++中是正确的。

第 5 题 以下不可以作为C++标识符的是( )。

  • A. x321
  • B. 0x321
  • C. x321_
  • D. _x321

正确答案:B. 0x321

解析:

  • A. x321:合法的标识符。
  • B. 0x321:标识符不能以数字开头,因此非法。
  • C. x321_:合法的标识符。
  • D. _x321:合法的标识符。

第 6 题 以下哪个不是C++语言的关键字?

  • A. int
  • B. for
  • C. do
  • D. cout

正确答案:D. cout

解析:

  • A. int:C++关键字,用于声明整数类型。
  • B. for:C++关键字,用于循环控制。
  • C. do:C++关键字,用于do-while循环。
  • D. cout:C++标准库对象,不是关键字。

第 7 题 如果a、b和c都是int类型的变量,下列哪个语句不符合C++语法?

  • A. c = a + b;
  • B. c += a + b;
  • C. c = a = b;
  • D. c = a ++ b;

正确答案:D. c = a ++ b;

解析:

  • A. c = a + b;:符合语法,表示c等于a和b的和。
  • B. c += a + b;:符合语法,表示将a和b的和加到c上。
  • C. c = a = b;:符合语法,表示将b赋值给a,然后将a赋值给c。
  • D. c = a ++ b;:不符合语法,++是后置递增运算符,不能与二元运算符直接组合使用。

第 8 题 如果用两个int类型的变量a和b分别表达长方形的长和宽,则下列哪个表达式不能用来计算长方形的周长?

  • A. a + b * 2
  • B. 2 * a + 2 * b
  • C. a + b + a + b
  • D. b + a * 2 + b

正确答案:A. a + b * 2

解析:

  • A. a + b * 2:计算的是长加上宽的两倍,不是周长。
  • B. 2 * a + 2 * b:计算的是周长。
  • C. a + b + a + b:计算的是周长。
  • D. b + a * 2 + b:计算的是周长。

第 9 题 表达式((3 == 0) + ‘A’ + 1 + 3.0)的结果类型为( )。

  • A. double
  • B. int
  • C. char
  • D. bool

正确答案:A. double

解析:

  • A. double:表达式的结果包含一个浮点数3.0,最终结果为double类型。
  • B. int:最终结果为double,而不是int。
  • C. char:最终结果为double,而不是char。
  • D. bool:最终结果为double,而不是bool。

第 10 题 如果a为int类型的变量,且a的值为6,则执行a *= 3;之后,a的值会是( )。

  • A. 3
  • B. 6
  • C. 9
  • D. 18

正确答案:D. 18

解析:

  • A. 3:错误,a的值不会变为3。
  • B. 6:错误,a的值不会保持不变。
  • C. 9:错误,a的值不会是9。
  • D. 18:正确,a *= 3等价于a = a * 3,因此a的值是18。

第 11 题 如果a和b均为int类型的变量,下列表达式不能正确判断“a等于0且b等于0”的是( )。

  • A. (a == 0) && (b == 0)
  • B. (a == b == 0)
  • C. (!a) && (!b)
  • D. (a == 0) + (b == 0) == 2

正确答案:B. (a == b == 0)

解析:

  • A. (a == 0) && (b == 0):正确判断。
  • B. (a == b == 0):错误的逻辑表达式,不能正确判断。
  • C. (!a) && (!b):正确判断。
  • D. (a == 0) + (b == 0) == 2:正确判断。

第 12 题 如果a为int类型的变量,下列哪个表达式可以正确求出满足“大于等于a 且是4的倍数”的整数中最小的?

  • A. a * 4
  • B. a / 4 * 4
  • C. (a + 3) / 4 * 4
  • D. a - a % 4 + 4

正确答案:C. (a + 3) / 4 * 4

解析:

  • A. a * 4:不正确,计算的是a的四倍。
  • B. a / 4 * 4:不正确,计算的是a四舍五入到最近的4的倍数。
  • C. (a + 3) / 4 * 4:正确,计算大于等于a且是4的倍数的最小值。
  • D. a - a % 4 + 4:不正确,计算的是下一个4的倍数,不一定大于等于a。

第 13 题 在下列代码的横线处填写( ),可以使得输出是“20 10”。

#include <iostream>
using namespace std;
int main(){
int a = 10, b = 20;
a = ______________;//在此处填入代码
b = a / 100;
a = a % 100;
cout << a << " " << b << endl;
return 0;
  • A. a + b
  • B. (a + b) * 100
  • C. b * 100 + a
  • D. a * 100 + b

正确答案:D. a * 100 + b

解析:

  • A. a + b:不正确,a + b 的值是 30,不符合题意。
  • B. (a + b) * 100:不正确,(a + b) * 100 的值是 3000,不符合题意。
  • C. b * 100 + a:不正确,b * 100 + a 的值是 2010,不符合题意。
  • D. a * 100 + b:正确,a * 100 + b 的值是 1020,当 b = a / 100 时,b 的值是 10,当 a = a % 100 时,a 的值是 20,符合题意。

第 14 题 在下列代码的横线处填写( ),可以使得输出是“1248”。

#include <iostream>
using namespace std;
int main(){
for(int i = 1; i <= 8;______)//在此处填入代码
cout << i;
return 0;
}
  • A. i++
  • B. i *= 2
  • C. i += 2
  • D. i * 2

正确答案:B. i *= 2

解析:

  • A. i++:不正确,i++的值是1到8,不符合题意。
  • *B. i = 2:正确,i *= 2的值是1, 2, 4, 8,符合题意。
  • C. i += 2:不正确,i += 2的值是1, 3, 5, 7,不符合题意。
  • D. i * 2:不正确,i * 2不是一个合法的表达式。

第 15 题 执行以下C++语言程序后,输出结果是( )。

#include <iostream>
using namespace std;
int main(){
int sum = 0;
for(int i = 1; i <= 20; i ++)
if(i % 3 == 0 || i % 5 == 0)
sum += i;
cout << sum << endl;
return 0;
}
  • A. 210
  • B. 113
  • C. 98
  • D. 15

正确答案:C. 98

解析:

  • A. 210:不正确,210是1到20之间能被3或5整除的数(3, 5, 6, 9, 10, 12, 15, 18, 20)的和,但题目中只加和20以内的数。
  • B. 113:不正确。
  • C. 98:正确,程序对能被3或5整除的数(3, 5, 6, 9, 10, 12, 15, 18)的和进行累加,结果为98。
  • D. 15:不正确,15不是正确的和。

2 判断题

第 1 题 在Windows 系统中通过键盘完成对选定文本移动的按键组合是先Ctrl+X,移动到目标位置后按Ctrl+V。( √ )

解析:

  • 这个描述是正确的。在Windows系统中,Ctrl+X用于剪切选定的文本,然后Ctrl+V用于在目标位置粘贴该文本。

第 2 题 程序员用C、C++、Python、Scratch等编写的程序能在 CPU 上直接执行。( × )

解析:

  • 程序员编写的代码需要经过编译或解释才能在CPU上执行。C和C++程序需要编译,Python和Scratch程序需要解释。

第 3 题 在C++语言中,注释不宜写得过多,否则会使得程序运行速度变慢。( × )

解析:

  • 注释在编译过程中会被忽略,不影响程序的运行速度。注释的作用是帮助程序员理解代码。

第 4 题 在C++语言中,标识符中可以有数字,但不能以数字开头。( √ )

解析:

  • 在C++中,标识符可以包含字母、数字和下划线,但不能以数字开头。

第 5 题 '3’是一个int类型常量。( × )

解析:

  • '3’是一个字符常量,其类型是char,而不是int。

第 6 题 if 语句中的条件表达式的结果必须为bool类型。( × )

解析:

  • 在C++中,if语句中的条件表达式结果不一定必须是bool类型。C++会将条件表达式的结果隐式转换为bool类型,任何非零值都被视为true,零值被视为false。

第 7 题 for 语句的循环体至少会执行一次。( × )

解析:

  • 这是错误的。for语句的循环体可能一次也不执行,这取决于初始条件是否满足。

第 8 题 如果a为int类型的变量,则赋值语句a = a + 3;是错误的,因为这条语句会导致a无意义。( × )

解析:

  • 这是错误的。赋值语句a = a + 3是合法的,表示将a的当前值增加3。

第 9 题 如果a为int类型的变量,则表达式(a / 4 == 2)和表达式(a >= 8 && a <= 11)的结果总是相同的。( √ )

解析:

  • a / 4 == 2:表示 a 除以 4 的结果等于 2,这只有当 a 为 8、9、10 或 11 时才为真。
  • a >= 8 && a <= 11:表示 a 的值在 8 到 11 之间,包括 8 和 11。
  • 因此,这两个表达式的结果总是相同的。

第 10 题 表达式(3.5 * 2)的计算结果为7.0,且结果类型为double。( √ )

解析:

  • 这个描述是正确的。3.5和2都是浮点数,相乘结果为7.0,结果类型为double。

3 编程题

3.1 编程题1

题目名称:每月天数
题面描述

小明刚刚学习了每月有多少天,以及如何判断平年和闰年,想到可以使用编程方法求出给定的月份有多少天。你能做到吗?

输入格式

输入一行,包含两个整数,分别表示一个日期的年、月。

输出格式

输出一行,包含一个整数,表示输入月份有多少天。

样例

输入

2022 1

输出

31

输入

2020 2

输出

29

参考程序:

#include <iostream> // 引入标准输入输出库
using namespace std;int main() {int y = 0, m = 0; // 定义年和月的变量并初始化cin >> y >> m; // 读取输入的年和月bool leap = false; // 定义一个布尔变量用于判断是否为闰年if (y % 400 == 0) // 判断是否为闰年,能被400整除的是闰年leap = true;if (y % 4 == 0 && y % 100 != 0) // 判断是否为闰年,能被4整除但不能被100整除的是闰年leap = true;if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) // 判断是否为大月cout << 31 << endl; // 输出大月的天数else if (m == 4 || m == 6 || m == 9 || m == 11) // 判断是否为小月cout << 30 << endl; // 输出小月的天数else if (leap) // 判断是否为闰年的2月cout << 29 << endl; // 输出闰年2月的天数else // 平年的2月cout << 28 << endl; // 输出平年2月的天数return 0; // 程序结束
}

解释:
这个程序首先读取输入的年份和月份。然后通过一系列条件判断确定该月份的天数。如果年份是闰年且月份是2月,则该月有29天;如果不是闰年的2月,则该月有28天。对于大月和小月,通过月份的判断直接输出对应的天数。

3.2 编程题2

题目名称:长方形面积
题面描述

小明刚刚学习了如何计算长方形面积。他发现,如果一个长方形的长和宽都是整数,它的面积一定也是整数。现在,小明想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?

如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是长方形的特例,即长方形的长和宽可以相等。

输入格式

输入一行,包含一个整数 ( A ),表示长方形的面积。约定 ( 2 ≤ A ≤1000 )。

输出格式

输出一行,包含一个整数 ( C ),表示有 ( C ) 种可能的长方形。

样例

输入

4

输出

2

输入

6

输出

2

参考程序:

#include <iostream> // 引入标准输入输出库
using namespace std;int main() {int area = 0, cnt = 0; // 定义面积变量和计数器变量并初始化cin >> area; // 读取输入的面积for (int w = 1; w * w <= area; w++) { // 遍历所有可能的宽度,直到宽度的平方超过面积if (area % w == 0) // 判断该宽度是否能整除面积cnt++; // 如果能整除,计数器加1}cout << cnt << endl; // 输出计数器的值return 0; // 程序结束
}

解释:
这个程序读取长方形的面积,然后通过遍历所有可能的宽度,判断是否可以整除面积来确定长方形的宽度。对于每一个可能的宽度,如果面积能被宽度整除,就增加计数器。最终输出计数器的值,即满足条件的长方形数量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/15957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第六节:带你全面理解vue3 浅层响应式API: shallowRef, shallowReactive, shallowReadonly

前言 前面两章,给大家讲解了vue3中ref, reactive,readonly创建响应式数据的API, 以及常用的计算属性computed, 侦听器watch,watchEffect的使用 其中reactive, ref, readonly创建的响应式数据都是深层响应. 而本章主要给大家讲解以上三个API 对应的创建浅层响应式数据的 API,…

Java面试题:Executor框架在Java并发编程中扮演什么角色?如何使用它?

在Java并发编程中&#xff0c;Executor框架扮演着核心角色&#xff0c;它提供了一种高级的、线程安全的机制来异步执行任务。Executor框架的主要目的是将任务的提交与任务的执行分离&#xff0c;从而简化了多线程编程的复杂性。 Executor框架的角色&#xff1a; 任务与线程分离…

持续总结中!2024年面试必问 20 道 Redis面试题(八)

上一篇地址&#xff1a;持续总结中&#xff01;2024年面试必问 20 道 Redis面试题&#xff08;七&#xff09;-CSDN博客 十五、使用过Redis做异步队列么&#xff0c;你是怎么用的&#xff1f; Redis作为一个高性能的键值存储系统&#xff0c;非常适合用来实现异步队列。异步队…

【STM32单片机】----实现LED灯闪烁实战

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

【机器学习-23】关联规则(Apriori)算法:介绍、应用与实现

在现代数据分析中&#xff0c;经常需要从大规模数据集中挖掘有用的信息。关联规则挖掘是一种强大的技术&#xff0c;可以揭示数据中的隐藏关系和规律。本文将介绍如何使用Python进行关联规则挖掘&#xff0c;以帮助您发现数据中的有趣模式。 一、引言 1. 简要介绍关联规则学习…

[处理器芯片]-5 超标量CPU实现之ALU

ALU&#xff08;Arithmetic Logic Unit&#xff0c;算术逻辑单元&#xff09;&#xff0c;是CPU执行单元中最主要的组成部分。 1 主要功能 算术运算&#xff1a;执行加法、减法、乘法和除法等算术运算。 逻辑运算&#xff1a;执行与、或、非、异或等逻辑运算。 移位运算&am…

动态路由实验—OSPF

动态路由协议实验-------OSPF 链路状态路由选择协议又被称为最短路径优先协议&#xff0c;它基SPF&#xff08;shortest path first &#xff09;算法 实验要求&#xff1a;各个PC之间能够互通 1.四台PC配置如下 PC1 PC2 PC3 PC4 2.配置各个交换机的口子的IP R1 <HUAWE…

Room注解无效原因

在Android项目中&#xff0c;如果父模块使用Kotlin&#xff0c;而子模块用Java编写&#xff0c;并且在子模块中使用了Room库&#xff0c;那么你会发现需要使用kapt而不是annotationProcessor来处理Room注解。这里有几个原因和背景知识&#xff1a; 1. 项目配置的影响 父模块的…

spiderfoot一键扫描IP信息(KALI工具系列九)

目录 1、KALI LINUX简介 2、spiderfoot工具简介 3、在KALI中使用spiderfoot 3.1 目标主机IP&#xff08;win&#xff09; 3.2 KALI的IP 4、命令示例 4.1 web访问 4.2 扫描并进行DNS解析 4.3 全面扫描 5、总结 1、KALI LINUX简介 Kali Linux 是一个功能强大、多才多…

YOLOv8+PyQt:实时检测(摄像头、视频)

1.YOLO&#xff1a;CPU实时检测&#xff08;摄像头、视频&#xff09;https://blog.csdn.net/qq_45445740/article/details/106557451 2.YOLOv8PyQt&#xff0c;实现摄像头或视频的实时检测 需要安装 PySide6 和 ultralytics pip install PySide6 pip install ultralyticsfr…

基于docxtpl的模板生成Word

docxtpl是一个用于生成Microsoft Word文档的模板引擎库。它结合了docx模块和Jinja2模板引擎&#xff0c;使用户能够使用Microsoft Word模板文件并在其中填充动态数据。这个库提供了一种方便的方式来生成个性化的Word文档&#xff0c;并支持条件语句、循环语句和变量等控制结构&…

如何在 Elasticsearch 中选择精确 kNN 搜索和近似 kNN 搜索

作者&#xff1a;来自 Elastic Carlos Delgado kNN 是什么&#xff1f; 语义搜索&#xff08;semantic search&#xff09;是相关性排名的强大工具。 它使你不仅可以使用关键字&#xff0c;还可以考虑文档和查询的实际含义。 语义搜索基于向量搜索&#xff08;vector search&…

Angular Ivy:新渲染引擎的性能提升与优化

Angular Ivy是Angular 9及更高版本中引入的默认渲染引擎&#xff0c;它取代了以前的View Engine。Ivy的目标是提高Angular的性能、减少包大小和提高开发者的生产力。 1. AOT编译的改进&#xff1a; 在Ivy中&#xff0c;Angular使用了更早的AOT&#xff08;Ahead-of-Time&…

在AnolisOS8.9系统安装docker-compose

在AnolisOS8.9系统安装docker-compose 下载docker-compose之前请先确保docker已经安装完&#xff0c;教程可以参考 在阿里Anolis OS 8.9龙蜥操作系统安装docker 下载最新版的docker-compose文件 sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0…

大数据工具之HIVE-参数调优,调度乱码(二)

一、调度乱码 在利用HUE工具,搭建WORKFLOW流程的过程中,如果直接执行hivesql数据正常,不会出现乱码现象,如果利用WORKFLOW搭建的流程,进行数据的拉取,会出现数据中文乱码现象,这些乱码主要是由于select 中的硬编码中文导致出现的现象 具体现象如下: select case when …

百度 提前批 国际化广告部 (深圳-机器学习/数据挖掘/自然语言处理工程师) 一面+二面面经

文章目录 0、面试情况1、一面1.1、简历上的项目介绍了个遍1.2、dbscan原理1.3、为什么梯度的负方向就是损失函数下降最快的方向&#xff1f;1.4、bn原理&#xff0c;为什么bn能解决过拟合&#xff0c;1.5、auc原理&#xff0c;为什么ctr或你的广告推荐里用auc指标&#xff1f;1…

TG5032CGN TCXO 超高稳定10pin端子型适用于汽车动力转向控制器

TG5032CGN TCXO / VC-TCXO是一款应用广泛的晶振&#xff0c;具有超高稳定性&#xff0c;CMOS输出和使用晶体基振的削波正弦波输出形式。且有低相位噪声优势&#xff0c;是温补晶体振荡器(TCXO)和压控晶体振荡器(VCXO)结合的产物&#xff0c;具有TCXO和VCXO的共同优点&#xff0…

后台接口返回void但是response有设置合适的相关信息,前端调用接口解析Blob数据下载excel文件

1、pom.xml文件增加依赖&#xff1a; <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId></dependency> 2、接口代码如下&#xff1a; /*** 企业列表--导出*/GetMapping(value "/downloadTenantL…

微信小程序上线必备:SSL证书申请以及安装

一、认识ssl证书 1、ssl证书是什么&#xff1f; SSL证书&#xff0c;全称Secure Socket Layer Certificate&#xff0c;是一种数字证书&#xff0c;它遵循SSL&#xff08;现在通常指TLS&#xff0c;Transport Layer Security&#xff09;协议标准&#xff0c;用于在客户端&…

SpringCloud系列(26)--OpenFeign超时控制

前言&#xff1a;在上一章节中我们简单的介绍了如何使用OprnFeign去调用微服务&#xff0c;因为消费侧和服务侧是两个不同的微服务&#xff0c;这样可能会出现超时的现象&#xff0c;例如服务侧需要3秒处理任何才能返回结果&#xff0c;但消费侧可能2秒就断开连接了&#xff0c…