2024-12 GESP C++ 二级试题及答案解析

2024-12 GESP C++ 二级试题及答案解析

1 单选题(每题 2 分,共 30 分)
第 1 题 2024年10月8日,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰·霍普菲尔德(John J. Hopfield)和杰弗里·辛顿(Geoffrey E. Hinton)。这两位科学家的主要研究方向是( )。
A. 天体物理
B. 流体力学
C. 人工智能
D. 量子理论
【答案】C 
第 2 题 计算机系统中存储的基本单位用B来表示,它代表的是( ),比如某个照片大小为3MB。
A. Byte
B. Block
C. Bulk
D. Bit
【答案】A 
第 3 题 C++语句 cout << (3 + 3 % 3 * 2 - 1) 执行后输出的值是( )。
A. -1
B. 4
C. 56
D. 2
【答案】D
第 4 题 下面C++代码执行后其输出是( )。

for (int i=0; i<10; i++)
    printf("%d",i);

A. 123456789
B. 0123456789
C. 12345678910
D. 012345678910
【答案】B  从0到9。
第 5 题 下面C++代码的相关说法中,正确的是( )。

int tnt;
for (int i=0; i<10; i++)
    tnt += i;
cout << tnt;

A. 上述代码执行后其输出相当于求1-10的和(包含10)
B. 上述代码执行后其输出相当于求1-10的和(不包含10)
C. 上述代码执行后其输出相当于求0-10的和(不包含10)
D. 上述代码执行后将输出不确定的值
【答案】D  for循环是将0~10(不包含10)的数字加入tnt中,由于tnt没有做初始化数据,所以代码执行后将输出不确定的值。
第 6 题 下面C++代码执行后输出是( )。

int i;
for (i=1; i<10; i++)
    if (i % 2)
        continue;
    else
        break;
cout << i;

A. 1
B. 2
C. 9
D. 10
【答案】B   i为1时就执行了continue,i为2时从循环中退出了。
第 7 题 下面C++代码执行后的输出是( )。

for (i=0; i<10; i++){
    if (i % 3)
        continue;
    printf("0#");
}
if(i>=10)
    printf("1#");

A. 0#0#0#0#0#0#0#1#
B. 0#0#0#0#0#0#1#
C. 0#0#0#0#1#
D. 0#0#0#0#
【答案】C  i为3的倍数时会输出“0#”,所以“0#”被输出了4次;当for循环结束时i时10,满足第6行的if,输出“1#”。
第 8 题 下面C++代码用于输出0-100之前(包含100)能被7整除但不能被3整除的数,横线处 填入的代码是( )。

for (i=0; i<100; i++)
    if(_____________)
        cout << i << endl;

A. i % 7 == 0 && i % 3 != 0
B. !(i % 7) && i % 3 != 0
C. i % 7 && i % 3
D. i % 7 == 0 && !(i % 3 == 0)
【答案】C   i % 7 && i % 3的含义是,不能被7整除且不能被3整除。
第 9 题 下面C++代码用于求正整数各位数字之和,横线处不应填入代码是( )。

int tnt, N;
printf("请输入正整数:");
cin >> N;
tnt = 0;
while (N != 0){
    ________________
    N /= 10;
}
cout <<tnt;

A. tnt = tnt + N % 10
B. tnt += N % 10
C. tnt = N % 10 + tnt
D. tnt = N % 10
【答案】D
第 10 题 下图的C++程序执行后的输出是( )。

for (i=0; i<5; i++)
    for (j=0; j<i; j++)
        cout <<j;

A. 0010120123
B. 01012012301234
C. 001012012301234
D. 01012012301234012345
【答案】A   i为0时j不执行,i为1时j输出"0",i为2时j输出"01",i为3时j输出"012",i为4时j输出"0123",i为5时循环结束。
第 11 题 下面C++代码用于实现图示的九九乘法表。相关说法错误的是( ) 。

/*
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/

for (int Hang=1; Hang<10; Hang++){
    for (int Lie=1; Lie<Hang+1; Lie++){
        if (Lie * Hang > 9)
            printf("%d*%d=%d ", Lie, Hang, Lie*Hang);
        else
            printf("%d*%d=%d ", Lie, Hang, Lie*Hang);
        // L2
    }
    printf("\n"); // L1
}

A. 将L1注释的 printf("\n") 移到L2注释所在行,效果相同
B. 将L1注释的 printf("\n") 修改为 print("%c", '\n') 效果相同
C. 将 Lie * Hang > 9 修改为 Lie * Hang >= 10 效果相同
D. 将 Lie * Hang > 9 修改为 Hang * Lie > 9 效果相同
【答案】A  如果将L1注释的 printf("\n") 移到L2注释所在行,一个式子占一行。
第 12 题 在数学中N!表示N的阶乘,即1到N的乘积,如 3!=1*2*3 。下面的C++用于求1-N的阶乘之和,如N为3,则是 1!+2!+3! 。下面代码段补充选项后用于实现上述功能,其中不能实现阶乘和的选项是( )。

int N;
cin >> N;
int tnt=0, nowNum = 1; //tnt保存求和之值,当前N的阶乘
for (int i=1; i < N + 1; i++){
    ______________ // 基于上一个计算出当前数的阶乘
    ______________ // 从1到i每个数阶乘之和
}
cout << tnt;

A. nowNum *= i; tnt += nowNum;
B. nowNum = nowNum * i; tnt = tnt + nowNum;
C. nowNum *= i; tnt = nowNum + tnt;
D. nowNum = nowNum + i; tnt *= nowNum;
【答案】D   D选项的功能是求1-N的阶乘之积,即1!*2!*3!...*n! 。
第 13 题 下面C++代码用于输出N和M之间(可以包括N和M)的孪生素数。孪生素数是指间隔为2的两个数均为素数,如11和13分别是素数,且间隔为2。isPrime(N)用于判断N是否为素数的函数。为完成上述功能,横线处应填上的代码是( )。

int N,M;
//本题假设N小于M
cin >> N >> M;
for (int i = N; i < __________; i++)
    if (isPrime(i) && isPrime(i + 2))
        printf("%d %d\n",i, i + 2);

A. M - 2
B. M - 1
C. M
D. M + 1
【答案】B    这里用i<=(M-2) 或者  i<(M-1)  都可以。
第 14 题 下面C++代码实现输出如下图形,横线应填入的代码是( )。

/*
高度:5
    *
   ***
  *****
 *******
*********
*/

int height;
cout << "高度: ";

//获取用户输入的高度
cin >> height;
for (i=0; i<height; i++){
    //打印每行前面的空格
    for (j = 0; j < _______________; j++)
        cout << " ";
    //打印每行的星号
    for (k = 0; k < _______________; k++)
        cout << "*";
    //输出一行后,换行
    cout << endl;
}

A.(height - i),(2 * i)
B.(height),(2 * i)
C.(height - i),(2 * i + 1)
D.(height - i - 1),(2 * i + 1)
【答案】D  
第 15 题 下面C++代码执行后的输出是30,则横线处不能填入( )。

int a=10,b=20,c=30;
cout << _____________________ << endl;
cout << endl;

A. max(max(a, b), c)
B. min(a+b, c)
C. sqrt(a+b+c)
D. (a+b+c)/2
【答案】C   sqrt(x) 这个函数的作用是开x的平方根。

 2 判断题(每题 2 分,共 20 分)
第 1 题 在Windows的资源管理器中为已有文件A建立副本的操作是Ctrl+C,然后Ctrl+V。( )
【答案】正确  Ctrl+C复制,Ctrl+V粘贴。
第 2 题 在C++代码中,假设N为正整数,则 cout << (N - N / 10 * 10) 将获得N的个位数。( )
【答案】正确
第 3 题 在C++语句 cout << (10 <= N <= 12) 中,假设N为12,则其输出为1。( )
【答案】正确    10 <= 12 结果为true,true<= 12 结果为 true, true输出为1。
第 4 题 如果C++表达式 int(sqrt(N))*int(sqrt(N)) == N 的值为True,则说明N为完全平方数,如4、9、25等。( )
【答案】正确
第 5 题 下面C++代码执行后将输出2*3=6。 ( )

int a = 2, b = 3;
printf("%%a*%%b=%d",a*b);

【答案】错误   将输出%a*%b=6。
第 6 题 以下C++代码因为循环变量为将导致错误,即不能作为变量名称,不符合C++变量命名规范。( )

for (int _ = 0; _ < 10; _++)
    continue;

【答案】错误  
第 7 题 下面C++代码执行后因为有break,将输出0。( )

int i;
for (i = 0; i < 10; i++){
    continue;
    break;
}
cout << i;

【答案】错误   每轮循环都会执行continue,break被跳过,循环结束时i为10。
第 8 题 下面的C++代码执行后将输出18行“OK”。( )

int i,j;
for (i = 8; i > 2; i-=2)
    for (j =0; j < i; j++)
        printf("OK\n");

【答案】正确   i为8时j执行8次,i为6时j执行6次,i为4时j执行4次,i为2时i循环结束。
第 9 题 将下面C++代码中的 i = 1 调整为 i = 0 的输出结果相同。( )

int i;
int cnt = 0;
for (i = 1; i < 5; i++)
    if(i%2) cnt += 1;
cout << cnt;

【答案】正确  i为0时第4行的if条件不满足,所以输出结果与原结果相同。
第 10 题 下面两段C++代码都是用于求1-10的和,其运行结果相同。通常说来,for循环都可以用while循环实现。( )

int tnt;
int i;
tnt = 0;
for (i = 1; i < 10 + 1; i++)
    tnt += i;
cout << tnt << endl;
int tnt;
int i;
tnt = 0;
i = 1;
while (i <= 10){
    tnt += i;
    i += 1;
}
cout << tnt << endl;

【答案】正确

3 编程题(每题 25 分,共 50 分)
3.1 编程题 1
试题名称:寻找数字
时间限制:1.0 s
内存限制:512.0 MB
3.1.1 题面描述
小杨有一个正整数a,小杨想知道是否存在一个正整数 b满足 a = b^4。
3.1.2 输入格式
第一行包含一个正整数t,代表测试数据组数。
对于每组测试数据,第一行包含一个正整数代表a。
3.1.3 输出格式
对于每组测试数据,如果存在满足条件的正整数b,则输出b,否则输出-1。
3.1.4 样例
输入:
3
16
81
10
输出:
2
3
-1
对于全部数据,保证有1<t<10^5,1<a<10^8。

// 3.1  样例代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	for(int i=0,x;i<n;i++)
	{
		cin>>x;
		bool sign=0;
		int j;
		for(j=1;j*j*j*j<=x;j++){
			if(j*j*j*j==x){
				sign=1;
				break;
			}
		}
		if(sign) cout<<j<<endl;
		else cout<<-1<<endl;
	}
    return 0;
}

3.2 编程题 2
试题名称:数位和
时间限制:1.0 s
内存限制:512.0 MB
3.2.1 题面描述
小杨有 n 个正整数,小杨想知道这些正整数的数位和中最大值是多少。
“数位和”指的是一个数字中所有数位的和。例如:
对于数字 12345,它的各个数位分别是 1,2,3,4,5。将这些数位相加,得到:1+2+3+ 4 + 5 = 15
因此,12345 的数位和是 15。
3.2.2输入格式
第一行包含一个正整数 n,代表正整数个数。
之后 n行,每行包含一个正整数。
3.2.3输出格式
输出这些正整数的数位和的最大值。
3.2.4样例
输入:
3
16
81
10
输出:
9
对于全部数据,保证有1<=n<=10^5,每个正整数不超过10^12。

// 3.2 样例代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n,s,ans=0;
	long long x;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>x;
		s=0;
		while(x){ // 拆位求和
			s+=x%10;
			x/=10;
		}
		ans=max(ans,s);// 保存最大各位和
	}
	cout<<ans;
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# httpclient 和 Flurl.Http 的测试

关于C#调用接口或Post,Flurl封装了httpclient, CSDN有哥们提供了一个公网的测试网站&#xff0c;可以测试Post调用&#xff0c;我写了2个函数&#xff0c;测试httpclient和Flurl使用Post: async 和 await 是成对使用的&#xff0c;为了接受web异步返回的数据&#xff0c;winfor…

ONNX转RKNN的环境搭建和部署流程

将ONNX模型转换为RKNN模型的过程记录 工具准备 rknn-toolkit:https://github.com/rockchip-linux/rknn-toolkit rknn-toolkit2:https://github.com/airockchip/rknn-toolkit2 rknn_model_zoo:https://github.com/airockchip/rknn_model_zoo ultralytics_yolov8:https://github…

道路三维数字化技术产品方案介绍(软硬件一体,适用于各等级公路)

目录 1、方案介绍2、设备系统简介3、设备系统技术指标4、数据处理软件简介5、数据管理平台简介6、成果展示 1、方案介绍 交通运输部印发《关于推进公路数字化转型加快智慧公路建设发展的意见》&#xff0c;推动公路建设、养护、运营等全流程数字化转型。提出了2027年和2035年的…

Matlab——图像保存导出成好看的.pdf格式文件

点击图像的右上角&#xff0c;点击第一个保存按钮键。

外包离职了,一周面试了20多场,竭尽全力进了字节......

外包离职之后&#xff0c;一周面试了20多场&#xff0c;最后进了字节跳动&#xff0c;分享一些面试经历&#xff0c;希望能对大家有帮助&#xff01; 我的面试感受 先说一个字 是真的 “ 累 ” 安排的太满的后果可能就是经常一天只吃一顿饭&#xff0c;一直奔波在路上 不扯这个…

【Qt之QQuickWidget】QML嵌入QWidget中

由于我项目开始使用Widgets,换公司后直接使用QML开发&#xff0c;没有了解过如何实现widget到qml过渡&#xff0c;恰逢面试时遇到一家公司希望从widget迁移到qml开发&#xff0c;询问相关实现&#xff0c;一时语塞&#xff0c;很尴尬&#xff0c;粗略研究并总结下。 对qwidget嵌…

MATLAB在投资组合优化中的应用:从基础理论到实践

引言 投资组合优化是现代金融理论中的核心问题之一&#xff0c;旨在通过合理配置资产&#xff0c;实现风险与收益的最佳平衡。MATLAB凭借其强大的数学计算能力和丰富的金融工具箱&#xff0c;成为投资组合优化的理想工具。本文将详细介绍如何使用MATLAB进行投资组合优化&#…

【报错解决】vue打开界面报错Uncaught SecurityError: Failed to construct ‘WebSocket‘

问题描述&#xff1a; vue运行时正常&#xff0c;但是打开页面后报错 Uncaught SecurityError: Failed to construct WebSocket: An insecure WebSocket connection may not be initiated from a page loaded over HTTPS. 解决方案&#xff1a; 在项目列表中的public下的ind…

2.3 变量

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 变量是用来存放某个值的数据&#xff0c;它可以表示一个数字、一个字符串、一个结构、一个类等。变量包含名称、类型和值。在代码中…

【学习笔记】Google的Lyra项目:基于神经网络的超低比特率语音编解码技术

一、引言&#xff1a;语音通信的带宽挑战与技术突破 在实时音视频通信占据全球数字化生活核心地位的今天&#xff0c;Google于2021年推出的Lyra编解码器标志着语音编码技术进入新的时代。这款基于机器学习的新型音频编解码器以3kbps的极低比特率实现接近原始音质的语音重建能力…

力扣3464. 正方形上的点之间的最大距离

力扣3464. 正方形上的点之间的最大距离 题目 题目解析及思路 题目要求在points集合中找出k个点&#xff0c;k个点之间的最小的曼哈顿距离的最大值 最大最小值的题一般直接想到二分 将正方形往右展开成一条线&#xff0c;此时曼哈顿距离为两点直线距离**(仅起点右边的点)** …

【Java】多线程和高并发编程(四):阻塞队列(上)基础概念、ArrayBlockingQueue

文章目录 四、阻塞队列1、基础概念1.1 生产者消费者概念1.2 JUC阻塞队列的存取方法 2、ArrayBlockingQueue2.1 ArrayBlockingQueue的基本使用2.2 生产者方法实现原理2.2.1 ArrayBlockingQueue的常见属性2.2.2 add方法实现2.2.3 offer方法实现2.2.4 offer(time,unit)方法2.2.5 p…

Crack SmartGit

感谢大佬提供的资源 一、正常安装SmartGit 二、下载crackSmartGit crackSmartGit 发行版 - Gitee.com 三、使用crackSmartGit 1. 打开用户目录&#xff1a;C:\Users%用户名%\AppData\Roaming\syntevo\SmartGit。将crackSmartGit.jar和license.zip拷贝至 用户目录。 2. 用户…

性能巅峰对决:Rust vs C++ —— 速度、安全与权衡的艺术

??关注&#xff0c;带你探索Java的奥秘&#xff01;?? ??超萌技术攻略&#xff0c;轻松晋级编程高手&#xff01;?? ??技术宝库已备好&#xff0c;就等你来挖掘&#xff01;?? ??订阅&#xff0c;智趣学习不孤单&#xff01;?? ??即刻启航&#xff0c;编…

面试题 - Vue 3 如何优化性能?

面试题 - Vue 3 如何优化性能&#xff1f; 最近&#xff0c;总有小伙伴来问我&#xff0c;在面试时应该如何回答关于优化方面的问题。其实&#xff0c;我们在日常的项目开发中&#xff0c;或多或少都接触过一些优化技巧&#xff0c;只是有时候自己没有特别留意&#xff0c;或者…

easyexcel和poi同时存在版本问题,使用easyexcel导出excel设置日期格式

这两天在使用easyexcel导出excel的时候日期格式全都是字符串导致导出的excel列无法筛选 后来调整了一下终于弄好了&#xff0c;看一下最终效果 这里涉及到easyexcel和poi版本冲突的问题&#xff0c;一直没搞定&#xff0c;最后狠下心来把所有的都升级到了最新版&#xff0c;然…

MTK-Android13-包安装器PackageInstaller 静默安装实现

目的 我们最终是为了搞明白安装的整个流程。一方面通过安卓系统自带的包安装器来了解PMS 安装流程&#xff1b;另一方面熟悉框架层Framework 针对Android apk 安装流程。 前两篇文章分析了PackagerInstaller 安装流程。 Android13-包安装器PackageInstaller-之apk安装跳转 An…

MacOS本地部署Deepseek,不联网也可以使用AI,保护隐私

苹果笔记本本地部署deepseek主要用到Ollama与open-webui 1. 安装Ollama “Ollama” 是一个轻量级的 AI 模型运行时环境&#xff08;runtime&#xff09;&#xff0c;旨在简化在本地部署和使用大语言模型&#xff08;LLM&#xff09;的过程。它由 Vicarious 公司开发&#xff…

Golang笔记——Interface类型

大家好&#xff0c;这里是&#xff0c;关注 公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Golang的interface数据结构类型&#xff0c;包括基本实现和使用等。 文章目录 Go 语言中的 interface 详解接口定义实现接口空接口 interface{} 示例&…

docker容器网络配置及常用操作

Linux内核实现名称空间的创建 ip netns&#xff08;网络名称空间&#xff09;命令 可以借助ip netns命令来完成对 Network Namespace 的各种操作。ip netns命令来自于iproute安装包&#xff0c;一般系统会默认安装&#xff0c;如果没有的话&#xff0c;请自行安装。 注意&am…