当前位置: 首页 > news >正文

48天C++笔试强训 001

作者:@小萌新
专栏:@笔试强训
作者简介:大二学生 希望能和大家一起进步!
本篇博客简介:讲解48天笔试强训第一天的题目

笔试强训 day1

  • 选择题
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 编程题
    • 1
    • 2

选择题

1

以下for循环的执行次数是()

for(int x = 0, y = 0; (y = 123) && (x < 4); x++);

A. 是无限循环
B. 循环次数不定
C. 4次
D. 3次

答案: C

知识点:本题考查的知识点主要有两个 1. c语言中for循环的概念 2. 逻辑操作符

关于for循环的考点主要是第一个分号前表示初始条件

第二个分号前表示终止条件

第三个分号前表示增量表达式

具体的知识点可以参考我这篇博客中关于for循环的知识

for循环相关知识

关于逻辑操作符的考点主要是与操作符

与操作符必须全部为真才为真 只要有假就为假

所以说如果我们表达式前面部分为真后面的判断条件就必须要执行

当然如果前面表达式部分为假后面的判断条件就不需要执行了

具体的知识点可以参考我这篇博客中关于操作符的讲解

c语言操作符详解

解析:本题中初始条件为 x=0 y=0 终止条件为 (y =123)&& (x < 4)为假 增量表达式为x++

首先我们的(y = 123)是一个赋值语句 最后我们其实判断的是y是否为真 y被赋值123之后是非0 所以为真 继续判断&&后面的条件判断语句

x = 0 1 2 3 时为真 x = 4时为假 所以说最终for循环的执行次数为4次

2

以下程序的运行结果是()

#include <stdio.h>
int main(void) 
{printf("%s , %5.3s\n", "computer", "computer");return 0;
}

A. computer , puter
B. computer , com
C. computer , computer
D. computer , compu.ter

答案:B

知识点:本题考查的知识点主要是printf函数相关知识

具体内容可以参考我的这篇博客

printf输出格式

解析:本题中输出字符串格式有一个 %5.3s\n

其中5表示输出的宽度为5

.3s则表示输出字符串的前三个字符所以说输出后的结果应该是这样子 两个空格+字符串前三个字符

所以说本题答案选择B (由于markdown格式的自动对齐功能 可能看上去B选项前面没有两个空格 不是答案错了 这一点需要大家注意一下

3

下列main()函数执行后的结果为()

int func()
{int i, j, k = 0;for(i = 0, j = -1;j = 0;i++, j++){k++;}return k;
}int main()
{cout << (func(21));return 0;
}

A. -1
B. 0
C. 1
D. 2

答案: B

知识点:本题考查的主要知识点有1.c语言中for循环的概念 2. 函数调用操作符

关于for循环的相关知识大家参考第一题即可 博客链接也在第一题中给出了

关于函数调用操作符的知识大家可以参考我的这篇博客

函数调用操作符

解析:由于它的判断条件是 j = 0 这是一个赋值操作 判断的是j j为0 恒为假

所以说根本不会进行for循环

最终输出的结果是 (0)

这里不管有没有进行bool类型转换最终的结果都是0

4

下面的程序输出的是什么?

#include <stdio.h>
int main()
{int a=1,b=2,c=3,d=0;if(a == 1 && b++==2)if(b!=2||c--!=3)printf("%d,%d,%d\n" ,a,b,c);elseprintf("%d,%d,%d\n" ,a,b,c);elseprintf("%d,%d,%d\n" ,a,b,c);return 0;
}

A. 1,2,3
B. 1,3,2
C. 3,2,1
D. 1,3,3

答案: D

知识点: 本题主要考查的知识点有1. 代码的规范性 2. 逻辑操作符

关于代码的规范性 我们写出的else语句会往上找出一个离他最近且没有被匹配的if进行匹配

一些刚刚接触代码的同学可能会不注重代码的规范性 从而写出像题目这种可读性很差的代码

对于题目代码的正确规范书写如下

#include <stdio.h>
int main()
{int a = 1 ,b = 2, c = 3, d = 0;if (a == 1 && b++==2){if (b != 2 || c--!=3){printf("%d,%d,%d\n" , a ,b , c);}else{printf("%d,%d,%d\n" , a ,b , c)}}else{printf("%d,%d,%d\n" , a ,b ,c);}
}

关于逻辑操作符 我们在第一题中讲解了与操作符 这里出现了一个新的或操作符

它的意思是只要有真就为真

如果前面的逻辑判断有假的就一直往后判断下去

如果前面的逻辑判断有真的就停止判断

解析:首先 a b c的值分别为 1 2 3

由于b++是后置++ 所以说b++ == 2 为真

经过第一个if判断之后 a b c的值变为 1 3 3

在进入if判断里面后我们继续执行语句 b != 2为真 所以说后面的语句不用执行了

输出结果为 1 3 3

5

若有定义语句: int a=10 ; double b=3.14 ; 则表达式 ‘A’+a+b 值的类型是()

A. char
B. int
C. double
D. float

答案:C

知识点:本题考查的知识点主要是整型提升

关于整型提升大家可以参考我的这篇博客

整型提升

解析:一般来说整型提升会提升至占用空间更多那种数据类型 而本题中double占用的空间最多

6

p[1][2]的值是()

int p[][4] = {{1}, {3, 2}, {4, 5, 6}, {0}};

A. 1
B. 0
C. 6
D. 2

答案:B

知识点:本题的知识点主要是二维数组的初始化

具体内容可以参考我的这篇博客

二维数组的初始化

解析:

二维数组存储时候行可以省略 列不可以省略

其中每个大括号表示的是每行的数据 如果不足则以0补充

所以说它在内存中的分布应该是这样子的

1 0 0 0
3 2 0 0
4 5 6 0
0 0 0 0

第二行第三个数字是0

7

选择表达式 11|10 的结果(本题数值均为十进制)()

A 11
B 10
C 8
D 2

答案:A

知识点:本题考查的知识点是二进制和位操作符的使用

具体的位操作符相关知识可以参考我的这篇博客

位操作符相关

解析:11 的二进制可以表示为 1 0 1 1

10的二进制可以表示为 1 0 1 0

位操作如下图
在这里插入图片描述
所以说我们最终得到的结果是11

8

func(21)的运行结果是

int fun(int a){a^=(1<<5)-1;return a;
}

A 10
B 5
C 3
D 8

答案:A

知识点: 本题考查的知识点主要是位置操作

具体的知识可以参考第七题的博客

解析:我们首先计算括号内的内容 1 << n 的意思就是原来的数字向左移动n位

同样的-1操作也可以在二进制中使用 具体使用效果如下图所示

在这里插入图片描述
而21的二进制是 0 0 0 1 0 1 0 1

之后我们只需要异或一下就能得出答案

在这里插入图片描述
转化为十进制之后 答案很显然为10

9

若有定义语句:int year=1009,*p=&year;以下不能使变量 year 中的值增至 1010 的语句是()

A *p+=1;
B (*p)++;
C ++(*p)
D *p++

答案: D

知识点: 单目运算符的运算顺序和优先级

知识点很简单 单目操作符是从右往左进行计算的

解析: D选项中根据弹幕操作符的运算顺序 先对于p地址++ 然后解引用 并不能造成任何数值上的改变 还有可能造成野指针问题

10

下面关于"指针"的描述不正确的是()

A 当使用free释放掉一个指针内容后,指针变量的值被置为NULL
B 32位系统下任何类型指针的长度都是4个字节
C 指针的数据类型声明的是指针实际指向内容的数据类型
D 野指针是指向未分配或者已经释放的内存地址

答案:A

知识点:主要知识点是关于指针的相关概念

具体知识可以参考我的下面几篇博客

熟悉指针

指针进阶

解析:

A选项明显错误 当我们free释放掉一个指针内容之后 指针的地址仍未改变

所以说我们要手动置空来防止野指针问题

B选项正确 因为指针实际上就是地址 32位系统下的指针有32个bit位 所以大小是4个字节

C选项正确 这是指针的基本概念

D选项正确 这是野指针的基本概念

编程题

1

组队竞赛

下面我们都将会有题目的截图来代替文字描述 如果大家想要查看题目的文字描述的话可以点击题目超链接进入

在这里插入图片描述

知识点:优先级队列的使用

具体的知识点可以参考我的这篇博客

优先级队列

我们使用优先级队列可以很轻松的解决topk问题

解析:本题其实并没有涉及什么算法 更多的难点是思维上的

题目要求我们要将每个队伍中的第二水平高的人相加起来最大

所以说数值最大的人是永远不可能被选上的 因为他肯定不是水平第二高的(第一第二水平相同例外)

那么我们要发挥他的最大用处 就可以让他带一个水平第二高的和一个水平最低的人参赛

那么这就是第一个队伍

第二个队伍以此类推

那么我们很简单就能推出第二个队员的最大水平值 就是水平第二高的

第二个队员的第二大水平值就是水平第四高的

… …以此类推

反应到我们的优先级队列上就是先pop一个最大的 接下来的值就是我们想要的

代码解决方案如下

#include <iostream>
using namespace std;
#include <queue>
int main() 
{int k = 0;cin >> k;priority_queue<int> pq1;int m = 0;while(cin >> m){pq1.push(m);}long long sum = 0;vector<int> v;while(k--){pq1.pop();v.push_back(pq1.top());pq1.pop();}for (auto x : v){sum += x;}cout << sum;return 0;}

2

删除公共字符串

在这里插入图片描述
知识点:哈希表的使用

具体的知识点可以参考我的这篇博客

unorder_map/set的使用

其实一般遇到这种删除的题目我们第一时间就应该想到使用哈希表来简化查找(因为哈希表的查找效率是O(1))

解析:这个题目中我们只需要知道key值存不存在就好了 并不需要知道其他信息所以说使用set就好了

之后我们只需要遍历需要删除的字符串 查找该字符是否要删除 如果不要就加入到新字符串中

思路很简单

代码中还有一个需要注意的点 我们如果使用cin接受字符串的话 遇到空格就会终止

所以说这里我们不能使用cin 必须要使用getline函数接受一句话

参考博客如下

getline

代码表示如下

#include <iostream>
#include <unordered_map>
using namespace std;
#include <string>
#include <unordered_set>int main() 
{string s1;string tok;getline(cin,s1); // 因为有空格 所以说必须要用getlinecin >> tok ;unordered_set<char> set;for (auto x : tok){set.insert(x);}string ans;for (auto x : s1){if (set.find(x) == set.end()){ans += x;}}cout << ans;return 0;
}

相关文章:

48天C++笔试强训 001

作者&#xff1a;小萌新 专栏&#xff1a;笔试强训 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;讲解48天笔试强训第一天的题目 笔试强训 day1选择题12345678910编程题12选择题 1 以下for循环的执行次数是&#xff08;&#xff…...

Android 11新增系统服务

1.编写.aidl文件存放位置&#xff1a;frameworks/base/core/java/android/ospackage android.os;interface ISystemVoiceServer {void setHeightVoice(int flag);void setBassVoice(int flag);void setReverbVoice(int flag);}2.将.aidl文件添加到frameworks/base/Android.bp f…...

“你要多弄弄算法”

开始瞎掰 ▽ 2月的第一天&#xff0c;猎头Luna给我推荐了字节的机会&#xff0c;菜鸡我呀&#xff0c;还是有自知之明的&#xff0c;赶忙婉拒&#xff1a;能力有限&#xff0c;抱歉抱歉。 根据我为数不多的和猎头交流的经验&#xff0c;一般猎头都会稍微客套一下&#xff1a…...

【数据结构】千字深入浅出讲解队列(附原码 | 超详解)

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;C语言实现数据结构 &#x1f4ac;总结&#xff1a;希望你看完…...

vue面试题(day04)

vue面试题vue插槽&#xff1f;vue3中如何获取refs&#xff0c;dom对象的方式&#xff1f;vue3中生命周期的和vue2中的区别&#xff1f;说说vue中的diff算法&#xff1f;说说 Vue 中 CSS scoped 的原理&#xff1f;vue3中怎么设置全局变量&#xff1f;Vue中给对象添加新属性时&a…...

自动标注工具 Autolabelimg

原理简介~~ 对于数据量较大的数据集&#xff0c;先对其中一部分图片打标签&#xff0c;Autolabelimg利用已标注好的图片进行训练&#xff0c;并利用训练得到的权重对其余数据进行自动标注&#xff0c;然后保存为xml文件。 一、下载yolov5v6.1 https://github.com/ultralytic…...

2023-03-20干活

transformer复现 from torch.utils.data import Dataset,DataLoader import numpy as np import torch import torch.nn as nn import os import time import math from tqdm import tqdmdef get_data(path,numNone):all_text []all_label []with open(path,"r",e…...

Java 注解(详细学习笔记)

注解 注解英文为Annotation Annotation是JDK5引入的新的技术 Annotation的作用&#xff1a; 不是程序本身&#xff0c;可以对程序做出解释可以被其他程序&#xff08;比如编译器&#xff09;读取。 Annotation的格式&#xff1a; 注解是以注解名在代码中存在的&#xff0c;还…...

LeetCode:35. 搜索插入位置

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340;算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 一、&#x1f331;35. 搜索插入位置 题目描述&#xff1a;给定一个排序数组和一个目标值&…...

菜鸟刷题Day2

菜鸟刷题Day2 一.判定是否为字符重排&#xff1a;字符重排 描述 给定两个由小写字母组成的字符串 s1 和 s2&#xff0c;请编写一个程序&#xff0c;确定其中一个字符串的字符重新排列后&#xff0c;能否变成另一个字符串。 解题思路&#xff1a; 这题思路与昨天最后两道类似&…...

Selenium基础篇之不打开浏览器运行

文章目录前言一、场景二、设计1.引入库2.引入浏览器配置3.设置无头模式4.启动浏览器实例&#xff0c;添加配置信息5.访问质量分地址6.隐式等待5秒7.定位到输入框8.输入博文地址9.定位到查询按钮10.点击查询按钮11.定位到查询结果模块div12.打印结果13.结束webdriver进程三、结果…...

【数据结构初阶】栈与队列笔试题

前言在我们学习了栈和队列之后&#xff0c;今天来通过几道练习题来巩固一下我们的知识。题目一 用栈实现队列题目链接&#xff1a;232. 用栈实现队列 - 力扣&#xff08;Leetcode&#xff09;这道题难度不是很大&#xff0c;重要的是我们对结构认识的考察&#xff0c;由于这篇文…...

【Linux入门篇】操作系统安装、网络配置

目录 &#x1f341;Linux详解 &#x1f342;1.操作系统 &#x1f342;2.操作系统组成 &#x1f342;3.操作系统历史 &#x1f342;4.常见的Linux系统 &#x1f342;5.centos7下载 &#x1f342;6.安装centos7 &#x1f341;linux初始化配置 &#x1f343;1.虚拟机系统安装后操作…...

Selenium:找不到对应的网页元素?常见的一些坑

目录 1. 用Xpath查找数据时无法直接获取节点属性 2. 使用了WebDriverWait以后仍然无法找到元素 2.1. 分辨率原因 2.2. 需要滚动页面 2.3. 由于其他元素的遮挡 1. 用Xpath查找数据时无法直接获取节点属性 通常在我们使用xpath时&#xff0c;可以使用class的方式直接获取节…...

flex布局优化(两端对齐,从左至右)

文章目录前言方式一 nth-child方式二 gap属性方式三 设置margin左右两边为负值总结前言 flex布局是前端常用的布局方式之一&#xff0c;但在使用过程中&#xff0c;我们总是感觉不太方便&#xff0c;因为日常开发中&#xff0c;大多数时候&#xff0c;我们想要的效果是这样的 …...

【Django 网页Web开发】03. 初识Django(保姆级图文)

目录1. 命令行创建与pycharm创建的区别2. 项目结构信息2.1 项目结构2.2 项目app结构2.3 快速查看项目结构树3. 创建并注册app3.1 创建app3.2 注册app4. 编写URL与视图的对应关系5. 编写视图文件6. 启动项目7. 写多个页面8. templates模板的使用8.1 编写html文件8.3 导入html文件…...

KubeSphere All in one安装配置手册

KubeSphere All in one安装配置手册 1. 初始化 1.1 配置apt源 # vi /etc/apt/sources.list deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb…...

Spring Boot 核心配置文件

Spring Boot 核心配置文件1、application.properties2、application.yml使用建议3、常用配置项服务器配置数据库配置日志配置其他配置4、配置文件的加载顺序5、配置文件的占位符6、配置文件的动态刷新7、配置文件的属性分组定义属性分组绑定属性分组使用属性分组总结Spring Boo…...

个人小站折腾后记

个人小站折腾后记 &#x1f3e0;个人主页&#xff1a;shark-Gao &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是shark-Gao&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f389;目前状况&#xff1a;23届毕业生&#xff0c;目前在某…...

WebService简单入门

1. JAX-WS发布WebService 创建web工程 创建simple包&#xff0c;和server、client两个子包。正常情况下server和client应该是两个项目&#xff0c;这里我们只是演示效果&#xff0c;所以简化写到一个项目中&#xff1a; 1.1 创建服务类Server package simple.server;import ja…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...