【笔试强训】Day_01
目录
一、选择题
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
解释:
先复习一下 for循环的用法:
for(初始化部分;条件判断部分;调整部分)
{ // 循环体}
执行次数为 x = 0、1、2、3, x = 4 跳出循环,所以选择C
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
解释:
每个字符串结尾都有一个默认的 ‘/0’,%s 打印遇到 ‘/0’ 就停止打印,所以第一 个 “computer” 会完整打印
先来解释一下通用的:%m.ns
m:输出字符串的宽度
n:左起截止目标字符串的 n个字符,并且是右对齐,左边不够补空格
- 当 字符串长度 > n ,此时 m的作用失效了,直接截取 n个字符,并且是右对齐,左边不够补空格,格式输出宽度依旧为 m
- 当 字符串长度 < n ,作用和 %s 一样,遇到 ‘\0’ 就停止,会完整打印整个字符串
题目中的 %5.3s ,字符串长度8 > 3,5 的作用失效了,直接截取前 3个字符 ‘com’,格式输出宽度依旧为 5,右对齐,左边不够补空格,所以输出结果为:' com'
所以选择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());
return 0;
}
A 、-1
B、 0
C 、1
D、 2
答案:B
解释:
进入循环的条件是 j = 0,而 j 开始的值就为 -1,不满足循环条件,所以 k 依旧为 0,所以选择B
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
解释:
上面的代码很乱,而且 if 语句还省略了缩进 {},我们看代码就容易出错
else 有最近匹配原则,所以 else会与它最近的 if 进行匹配
还有要注意一点:|| 逻辑或:任意一方为真就执行。左边表达式为真,右边的表达式就不会执行
如题 if(a == 1 && b++==2),表达式左边为真,右边的表达式就不会执行,-- 也就不会执行,所以选择D
5、
若有定义语句: int a=10 ; double b=3.14 ; 则表达式 'A'+a+b 值的类型是()
A、 char
B、 int
C 、double
D、 float
答案:C
解释:
'A’是char类型,占一个字节,范围是-128 ~ 127
a是int 类型, 占4个字节,范围是 -21亿 ~ 21亿
c是double类型,占8个字节,范围是2.310的308次方 ~ 1.710的308次方不同类型运算会自动提升(向高位提升),即小范围 -> 大范围,最后转换为double类型,所以答案选C
6、
在
int p[][4] = {{1}, {3, 2}, {4, 5, 6}, {0}};
中,p[1][2]的值是()
A 、1
B、 0
C 、6
D 、2
答案:B
解释:
p 数组的每个大括号是一行,都没有进行完全初始化,没初始化的默认为0, p[][4] 第一个参数没给,这是可以的,有几行第一个参数就为几,数组下标从 0 开始
数组补充完如下
1 0 0 0
3 2 0 0
4 5 6 0
0 0 0 0
所以 p[1][2] = 0,标红色的,所以选择B
7、
选择表达式 11|10 的结果(本题数值均为十进制)()
A 、11
B 、10
C、 8
D、 2
答案:A
解释:
写出两个数的补码(正数的原码、反码、补码相同)
假设用8个 bit 表示:
11: 0000 1011
10 :0000 1010
| 按位或的规则:只有有一个为 1,结果 位 就为 1,其余情况为 0
转换为十进制就是 11,所以选择A
8、
fun(21)运行结果是()
int fun(int a){
a^=(1<<5)-1;
return a;
}
A 、10
B、 5
C、 3
D 、8
答案:A
解释:
^ 运算符的规则为:相同为0,相异为1
a ^= b ---> a = a^b;
则 a ^= (1<<5)-1 ---> a = a ^ ((1<<5)-1)
1 << 5 就是 1 向左移动 5 个bit,0000 0001 ---> 0010 0000,十进制为32
最后 a = a ^ 31 ---> a = 21 ^ 31
最后转成十进制就是10,所以答案选A
9、
若有定义语句:int year=1009,*p=&year;以下不能使变量 year 中的值增至 1010 的语句是()
A、 *p+=1
B 、(*p)++
C、 ++(*p)
D、 *p++
答案:D
解释: 这里考察的是运算符的优先级
由图得知 * 的优先级大与 +=,
()
的优先级比 ++ 高++ 的优先级比 * 要高,没有对1009进行++,而是对指针++,所以选择D
10、
下面关于"指针"的描述不正确的是()
A、 当使用free释放掉一个指针内容后,指针变量的值被置为NULL
B 、32位系统下任何类型指针的长度都是4个字节
C 、指针的数据类型声明的是指针实际指向内容的数据类型
D、 野指针是指向未分配或者已经释放的内存地址
答案:A
解释:
free指针只是把指向的空间销毁了 ,指针的值置空是要我们手动置空
32位指针的长度都是4个字节,64位下是8字节
再说一下造成野指针的三大原因
- 定义时,没有初始化
- free掉后,没有置空
- 越界访问使用指针
所以选择A
二、编程题
1、组队竞赛
题目链接:组队竞赛
思路分析:
- 首先对数据进行排序
- 然后进行分组,前面取一个后面取两个
- 然后对中间下标进行观察,可以发现规律
解题关键:如何进行分组(主要思路是贪心算法)
代码如下(C++):
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;int main()
{int n = 0;cin >> n;vector<int> arr;arr.resize(n*3);for(int i = 0; i < arr.size(); ++i){cin >> arr[i];}sort(arr.begin(), arr.end());long long sum = 0;for(int i = 0; i < n; ++i){sum += arr[arr.size() - 2*(i+1)];}cout << sum;return 0;
}
2、删除公共字符
题目链接:删除公共字符
思路分析:
- 使用哈希思想,定义一个数组,遍历 s2,把 s2 里面有的字符映射到数组上
- 再遍历 s1,比较为0就插入 ret 中,即不重复的字符
代码如下(C++):
#include <iostream>
#include <string>
using namespace std;int main()
{string s1, s2;getline(cin, s1);getline(cin, s2);int hash[256] = {0};for(int i = 0; i < s2.size(); ++i){hash[s2[i]]++;}string ret;for(int i = 0; i < s1.size(); ++i){if(hash[s1[i]] == 0){ret += s1[i];}}cout << ret;return 0;
}
----------------我是分割线---------------
Day_01完结,下篇即将更新
相关文章:

【笔试强训】Day_01
目录 一、选择题 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 、循环次…...

字节跳动青训营--前端day9
文章目录前言PC web端一、 前端Debug的特点二、 前端Debug的方式1. 浏览器动态修改元素和样式2. Console3. Sorce Tab4. NetWork5. Application6. Performancee7. Lighthouse移动端调试IOSAndroid通过代理工具调试前言 仅以此文章记录学习。 PC web端 一、 前端Debug的特点 …...

如何把模糊的照片还原?
在我们工作和学习中,经常需要各种各样的照片,方便我们需要时可以使用。比如写文档就需要添加图片、或者上传文章、视频等都需要使用图片。由于网络上的图片质量都不一样,难免会遇到不能满足自己的需求。如果是遇到了模糊的照片,如…...

29-Golang中的切片
Golang中的切片基本介绍切片在内存中的形式切片使用的三种方式方式一:方式二:方式三:切片使用的区别切片的遍历切片注意事项和细节说明append函数切片的拷贝操作string和slice基本介绍 1.切片是数组的一个引用,因此切片是引用类型…...

闲聊一下开源
今天看了下中国开源开发者报告,感觉收货不少,针对里面的内容,我也加入一些自己的理解,写下来和大家一起闲聊一下。 AI 时至今日,我说一句AI已经在我国几乎各个行业都能找到应用,应该没人反对吧࿱…...

用这4招优雅的实现Spring Boot 异步线程间数据传递
Spring Boot 自定义线程池实现异步开发相信大家都了解,但是在实际开发中需要在父子线程之间传递一些数据,比如用户信息,链路信息等等 比如用户登录信息使用ThreadLocal存放保证线程隔离,代码如下: /*** author 公众号…...

RocketMQ源码分析之NameServer
1、RocketMQ组件概述 NameServer NameServer相当于配置中心,维护Broker集群、Broker信息、Broker存活信息、主题与队列信息等。NameServer彼此之间不通信,每个Broker与集群内所有的Nameserver保持长连接。 2、源码分析NameServer 本文不对 NameServer 与…...

如何优化认知配比
战略可以归结为三种要素的合理配比。我们对战略的一个定义是:在终局处的判断。这其实来自于一个宗教的命题——面死而生。死是终局,生是过程,当你想做一个思想实验,或者是你真的有缘能够直面死亡,你所有关于生的认知就…...

WuThreat身份安全云-TVD每日漏洞情报-2023-02-15
漏洞名称:TOTOLINK A7100RU 安全漏洞 漏洞级别:严重 漏洞编号:CVE-2023-24276,CNNVD-202302-367 相关涉及:TOTOlink A7100RU(V7.4cu.2313_B20191024)路由器 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-02977 漏洞名称:Windows NTLM 特权提…...

Unreal Engine角色涌现行为开发教程
在本文中,我将讨论如何使用虚幻引擎、强化学习和免费的机器学习插件 MindMaker 在 AI 角色中生成涌现行为。 目的是感兴趣的读者可以使用它作为在他们自己的游戏项目或具体的 AI 角色中创建涌现行为的指南。 推荐:使用 NSDT场景设计器 快速搭建 3D场景。…...

vue处理一千张图片进行分页加载
vue处理一千张图片进行分页加载 开发过程中,如果后端一次性返回你1000多条图片或数据,那我们前端应该怎么用什么思路去更好的渲染呢? 第一种:我们可以使用分页加载 第二种:我们可以进行懒加载那我们用第一种方法使用…...

(三十三)Vue之消息订阅与发布
文章目录消息订阅与发布理解使用步骤改造TodoList为消息订阅与发布上一篇:(三十二)Vue之全局事件总线 消息订阅与发布 理解 这种方式的思想与全局事件总线很相似,一种组件间通信的方式,适用于任意组件间通信。 它包…...

Http中你必须知道那点事
1, HTTP 1.1 简介 HTTP概念 HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。 数据传输的规则指的是请求数据和响应数据需要按照指定的格式进行传输。如果想知道具体的格式,可以打开浏览器…...

ViewBinding使用入门
ViewBinding 参考资料: 新技术 ViewBinding 最佳实践 & 原理击穿 更多 ViewBinding 的封装思路 1. kotlin-android-extensions(KAE) 的问题 根据Google官方的说法, KAE存在以下问题: 污染全局命名空间不能暴露可空性信息仅支持Kotlin代码 kotlin在1.4.20中 开始废弃这…...

Retrofit源码分析实践(七)【Retrofit ConvertFactory的功能实现】
Retrofit源码分析&实践系列文章目录 Retrofit源码分析&实践(一)【从使用入手分析源码】Retrofit源码分析&实践(二)【Retrofit 免费的api测试工具引入】Retrofit源码分析&实践(三)【Retrofit 代码框架搭建】Retrofit源码分析&实践(四)【Retrofit 实…...

介电常数常用测量方法综述
张扬1,徐尚志1,赵文晖2,龚增2,赵晓群1 1同济大学,上海 2上海市计量测试技术研究院,上海 在设计电路、天线、电容器等过程中经常会涉及所用材料的介电常数, 所以深入了解介电常数的相关概念对实际工作有重…...

重生之我是赏金猎人(三)-SRC漏洞挖掘-强行多次FUZZ发现某厂商SSRF到redis密码喷洒批量反弹Shell
0x00 前言 https://github.com/J0o1ey/BountyHunterInChina 欢迎大佬们点个star 最近BugBounty挖了不少,但大多数都是有手就行的漏洞,需要动脑子的实属罕见 而今天就遇到了一个非常好的案例,故作此文 0x01 对目录批量FUZZ,发…...

学会分享,学会生活,分享5款简单易用的软件。
分享是一种博爱的心境,学会分享,就学会了生活。 1.在线图片编辑工具——佐糖 佐糖是一款在线免费图片编辑工具,采用AI人工智能技术,自动识别图片,支持一键抠图,更换背景,移除水印等。另外还提…...

Redux 与 Vuex 的区别总结
Redux 工作流程 首先,用户(通过 view)发送 Action,发送方式就用到了 dispatch 方法。然后,Store 自动调用 Reducer,并传入俩个参数,当前 State 和 收到的 Action。而 Reducer 会返回新的 State。最后,Store 根据接收到的 State,判断是否发生变化。一旦发生变化,Store…...

QT(15)- QFile
1 函数 1.1 copy bool QFile::copy(const QString &newName) QFile::copy(const QString &newName) 是 Qt 中用于复制文件的函数,将 fileName() 所指向的文件复制到 newName 指定的新位置。 在复制文件之前,源文件会先被关闭。如果被复制的文…...

GaiaX开源解读 | 表达式作为逻辑动态化的基础,我们是如何设计的
GaiaX跨端模板引擎,是在阿里优酷、淘票票、大麦内广泛使用的Native动态化方案,其核心优势是性能、稳定和易用。本系列文章《GaiaX开源解读》,带大家看看过去三年GaiaX的发展过程。 前言 GaiaX【https://github.com/alibaba/GaiaX】是由优酷应…...

python中adb shell相关操作
1、python 实现adb交互,进入adb shell后,如何再发送消息 os.popen("adb -s 192.168.1.100:5555 shell \"dmesg > /data/dmesg.log\"")进入进入adb shell,在执行 dmesg > /data/dmesg.log 2、python(或BAT脚本)自…...

python 之 资源使用与控制 resource模块
一、背景 2021年做可信计算时,由于甲方给的CPU利用率不能不能超过20%; 目的:我们的程序部署甲方服务器上不能阻碍其甲方服务的正常运行 我们的程序在CPU超过20%时,可以休眠几秒后继续运行 此时需要检测控制服务器的CPU资源使用信…...

蓝库云|8项关键让你看透企业「数字转型」,零代码是惊喜
各行各业都要面对的多方竞争力及不断上涨的经营成本,以及随着时代的发展,有不少企业纷纷推动数字化转型,考虑藉着应用现代化的数据和科技工具的结合,协助企业创造新的营运模式及收入来源,以提升自动化效率、优化客户体…...

(五)、编辑页面-发布长文-富文本编辑【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
1,edit页面 1.1 新建edit页面 1.2 从本地相册选择图片或使用相机拍照。 uni.chooseImage(OBJECT) 1.3 直接上传文件到云存储。 uploadFile(Object object) 1.4 从富文本编辑器获取编辑器内容 editorContext.getContents(OBJECT) 首页富文本编辑器初始化完成时…...

你是真的“C”——【经典面试知识点】数据在内存中的大小端存储方式
你是真的“C”——【经典面试知识点】数据在内存中的大小端存储方式😎前言🙌大小端介绍🙌什么大端小端呢?:大小端存储的标准定义:大端和小端存在的意义经典的面试题目🙌总结撒花💞&a…...

从零开始的数模(二十六)单因素方差分析
目录 一、概念 1.1相关概念 1.2用途 1.3数据要求:独立性/正态性/方差齐性 1.4步骤 编辑1.5专业名词 二、基于python的单因素方差分析 2.2单因素方差分析的作用 一、概念 1.1相关概念 单因素方差分析是一种常用的统计分析方法,它用于比较一个因…...

C++变量类型
目录 一、c中的变量定义 二、c中的变量声明 三、c中的左值和右值 一、c中的变量定义 变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。 变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表,如下所示&…...

win10 安装 vs2015(社区版本)以及opencv-4.5.5
一、下载vs2015以及opencv-4.5.5从https://msdn.itellyou.cn/ 网站下载vs2015(社区版本)从https://opencv.org/releases/网站下载opencv-4.5.5二、安装vs2015和opencv-4.5.5解压后双击exe安装文件,完成安装(默认)双击下…...

867. 转置矩阵
给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:matrix [[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2&a…...