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

【笔试强训】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字节

再说一下造成野指针的三大原因

  1. 定义时,没有初始化
  2. free掉后,没有置空
  3. 越界访问使用指针

所以选择A 

二、编程题

1、组队竞赛

题目链接:组队竞赛

思路分析:

  1. 首先对数据进行排序
  2. 然后进行分组,前面取一个后面取两个
  3. 然后对中间下标进行观察,可以发现规律

解题关键:如何进行分组(主要思路是贪心算法)

代码如下(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、删除公共字符

题目链接:删除公共字符

思路分析:

  1. 使用哈希思想,定义一个数组,遍历 s2,把 s2 里面有的字符映射到数组上
  2.   再遍历 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循环的执行次数是&#xff08;&#xff09; 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的特点 …...

如何把模糊的照片还原?

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

29-Golang中的切片

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

闲聊一下开源

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

用这4招优雅的实现Spring Boot 异步线程间数据传递

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

RocketMQ源码分析之NameServer

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

如何优化认知配比

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

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角色涌现行为开发教程

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

vue处理一千张图片进行分页加载

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

(三十三)Vue之消息订阅与发布

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

Http中你必须知道那点事

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

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

重生之我是赏金猎人(三)-SRC漏洞挖掘-强行多次FUZZ发现某厂商SSRF到redis密码喷洒批量反弹Shell

0x00 前言 https://github.com/J0o1ey/BountyHunterInChina 欢迎大佬们点个star 最近BugBounty挖了不少&#xff0c;但大多数都是有手就行的漏洞&#xff0c;需要动脑子的实属罕见 而今天就遇到了一个非常好的案例&#xff0c;故作此文 0x01 对目录批量FUZZ&#xff0c;发…...

学会分享,学会生活,分享5款简单易用的软件。

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

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 中用于复制文件的函数&#xff0c;将 fileName() 所指向的文件复制到 newName 指定的新位置。 在复制文件之前&#xff0c;源文件会先被关闭。如果被复制的文…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...

向量几何的二元性:叉乘模长与内积投影的深层联系

在数学与物理的空间世界中&#xff0c;向量运算构成了理解几何结构的基石。叉乘&#xff08;外积&#xff09;与点积&#xff08;内积&#xff09;作为向量代数的两大支柱&#xff0c;表面上呈现出截然不同的几何意义与代数形式&#xff0c;却在深层次上揭示了向量间相互作用的…...