【笔试强训】Day1

news2024/10/7 17:25:33

🌈欢迎来到笔试强训专栏


  • (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort
  • 目前状态:大三非科班啃C++中
  • 🌍博客主页:张小姐的猫~江湖背景
  • 快上车🚘,握好方向盘跟我有一起打天下嘞!
  • 送给自己的一句鸡汤🤔:
  • 🔥真正的大师永远怀着一颗学徒的心
  • 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏
  • 🎉🎉欢迎持续关注!
    在这里插入图片描述

请添加图片描述

笔试强训解析

  • 🌈欢迎来到笔试强训专栏
    • 🌈选择题
    • 🌈编程题
      • 1️⃣组队竞赛
      • 2️⃣删除公共字符
  • 📢写在最后

请添加图片描述

🌈选择题

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

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

A.是无限循环

B.循环次数不定

C.4次

D.3次

复习一下for循环(初始化部分;条件判断部分;调整部分){}
注意注意!! y=123是赋值 为真的(看清楚)后面就是剩下x = 0、1、2、3 总共四次进入循环
所以答案选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

说实话做题才能查漏补缺,我们知道%s遇到\0就停止打印。是这个%5.3s 我没见过,下面来科普一下

% m.ns:
m : 输出字符串的宽度
n :左起截止目标字符串的n个字符,而且是右对齐,左边不够补空格
当字符串 > n > m :此时m的作用失效了,直接截取n
当n > 字符串 :作用和%s一样,遇到\0就停止

所以%5.3s 输出的是 com(com前面两个空格),答案选C

下列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

本题考察的本质还是for循环执行了多少次?
有了上面一题的基础再判断,应该不难

这里的条件判断部分j = 0恒为假,不会进入循环所以K不会++,K等于0,答案选B

下面程序输出是什么?

#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);
   return 0;
}

A.1,2,3

B.1,3,2

C.3,2,1

D.1,3,3

吐槽一下,上面的代码很乱,且省略了{},像极了我刚开始的样子
但是else有就近匹配原则 : 匹配最近的if
|| 逻辑或:任意一方为真,挡路原则: 左边表达式为真,右边表达式就不会执行

在这里插入图片描述

第一个if就判断为假,直接到最后一个printf 打印,答案是 : D

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

A.char

B.int

C.double

D.float

知识复习:
'A’是char类型,占一个字节,范围是-128 ~ 127
a是int 类型, 占4个字节,范围是 -21亿 ~ 21亿
c是double类型,占8个字节,范围是2.310的308次方 ~ 1.710的308次方

不同类型运算会自动提升,小范围-> 大范围 最后转换为double类型,答案选C

下面,p[1][2]的值是()

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

A.1

B.0

C.6

D.2
每个大括号是一行,都没有进行完全初始化,没初始化的默认为0

在这里插入图片描述

数组坐标从0开始,看图 所以答案是B

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

A.11

B.10

C.8

D.2

简单的逻辑运算
在这里插入图片描述

所以答案选A

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

fun(21)运行结果是()

A.10

B.5

C.3

D.8

此处要注意:1<<5 后等于32 ,再-1 等于31, 最后是a^31 也就是21^31
^ : 相等为0 ,相异为1
在这里插入图片描述

答案是A

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

A.*p+=1;

B.(*p)++;

C.++(*p)

D.*p++

考察的是运算符优先级的问题,忘了要多复习复习
在这里插入图片描述
得知 *的优先级大于 +=()的优先级比++高,唯独++的优先级比*要高,没有对1009进行++,而是对指针++.

毫无疑问 ,答案选D

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

A.当使用free释放掉一个指针内容后,指针变量的值被置为NULL

B.32位系统下任何类型指针的长度都是4个字节

C.指针的数据类型声明的是指针实际指向内容的数据类型

D.野指针是指向未分配或者已经释放的内存地址

解析:
A:free指针只是把指向的空间销毁了 ,指针的值置空是要我们手动置空

ps:造成野指针的三大原因

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

答案选A

🌈编程题

1️⃣组队竞赛

题目链接:组队竞赛

在这里插入图片描述在这里插入图片描述

思路讲解:

在这里插入图片描述

  • 首先对数据进行排序
  • 推导出下标满足的公式 arr.len - 2*(i+1),满足最大水平和
  • 算法的头文件记不住 algorithm algorithm algorithm

代码如下

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;
int main()
{
    long long sum = 0;
    int n;
    cin>>n;
    vector<int> a;
    a.resize(3*n);
    
    for(int i=0; i< 3*n; ++i)
    {
        cin >> a[i];
    }
    
    std::sort(a.begin(), a.end());
    
    for(int i = 0; i < n ;i++)
    {
        sum += a[a.size()- 2*(i+1)];
    }
    cout << sum << endl;
    
    return 0;
}

2️⃣删除公共字符

题目地址:添加链接描述

在这里插入图片描述

讲解两种思路:哈希 & 暴力

首先是哈希

  1. 遍历这个str2字符串,把对应的字符放到hash[ ]中
  2. 遍历str1,找到hash中等于 0 的(也就是没有重复的 )

在这里插入图片描述

暴力法:

  • 去str1里面找str2的值,find找到相同的就erase
//哈希
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str1, str2;
    //cin>>str1;//cin遇到空格就停止
    getline(cin, str1);
    getline(cin, str2);

    int hash[256] = {0};
    for(int i = 0; i < str2.size(); i++)
    {
        hash[str2[i]]++;
    }

    string end ="";
    for(int i = 0; i < str1.size(); i++)
    {
        if(hash[str1[i]] == 0)//==0的就是不相同的
        {
            end += str1[i];
        }
    }
    
    cout<<end<<endl;
    return 0;
}
#include <iostream>
#include <string>
using namespace std;

//暴力
int main()
{
    string s1,s2;
    getline(cin,s1);
    getline(cin,s2);
    for(int i = 0;i < s2.size(); i++)
    {
        while(s1.find(s2[i]) != -1)//find找不到就返回npos(-1) !=也就是找到了
        {
            s1.erase(s1.find(s2[i]),1);
        }
    }
    cout<<s1<<endl;
    return 0;
}

📢写在最后

最近刷屏的卡塔尔励志小哥

在这里插入图片描述

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

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

相关文章

阿里云云数据库Redis的核心概念以及正确购买姿势(十五)

文章目录1.云数据库Redis基本介绍1.1.什么是云数据库Redis1.2.Redis标准版单副本架构1.3.Redis标准版双副本架构1.4.Redis集群版单副本架构1.5.Redis集群双副本架构1.6.Redis集群的直连架构1.7.Redis集群读写分离架构2.购买云数据库Redis2.1.创建Redis实例2.2.配置商品类型及可…

WPF 控件专题 TreeView控件详解

1、TreeView介绍 命名空间&#xff1a;System.Windows.Controls TreeView 表示一个控件&#xff0c;该控件在树结构&#xff08;其中的项可以展开和折叠&#xff09;中显示分层数据。 TreeView 是一个 ItemsControl&#xff0c;这意味着它可以包含任何类型的对象的集合 (&a…

进程的通信 - WM_COPYDATA

在Windows程序中&#xff0c;各个进程之间常常需要交换数据&#xff0c;进行数据通讯。其中使用SendMessage向另一进程发送WM_COPYDATA消息是一种比较经济实惠的方法。 WM_COPYDATA通信需要将传递的消息封装在COPYDATASTRUCT结构体中&#xff0c;在SendMessage消息传递函数时作…

[附源码]java毕业设计校园超市进销存管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

基于PETALINUX的以太网调试

1、建立工程 2、编译工程&#xff0c;导出xsa文件 3、建立petalinux工程 4、生成boot和image.ub文件&#xff0c;将文件复制到系统为fat32的sd卡中。 5、插上串口&#xff0c;插上网线 6、vm中需要桥接网络&#xff0c;有正确的IP地址 7、通过串口&#xff0c;配置板卡的以太…

前端面试题(JS部分)

目录一&#xff0c; 数据类型1&#xff0c;什么是引用类型&#xff0c;值类型&#xff1f;2&#xff0c;哪些值类型3&#xff0c;哪些引用类型4&#xff0c;判断数据类型5&#xff0c;typeof判断6&#xff0c;instanceof7&#xff0c;construtor二&#xff0c;浅拷贝 / 深拷贝1…

好物推荐:文字转语音朗读软件哪个好?

不知道大家有没有像我一样的&#xff0c;对“语音播放”、“语音朗读”是又爱又恨的。有时工作繁忙&#xff0c;而同事或客户发来语音资料需要整理时&#xff0c;就会很烦躁&#xff0c;因为语音的整理起来比文字的繁琐一些。而像有时在家休息&#xff0c;还得看一些资料时&…

亚马逊鲲鹏系统之亚马逊买家号养号时需要注意哪些?

经常做亚马逊测评的朋友应该都清楚&#xff0c;亚马逊买家号养号是很有必要的&#xff0c;如果一个新买家号没有养过号就进行刷单测评&#xff0c;那么是很容易就死号了的。但是想要养好号也不是那么容易的&#xff0c;需要注意好多问题。 第一&#xff1a;养号的重点是号&…

Linux 软连接与硬链接

文件链接概念介绍&#xff1a; 软连接文件&#xff1a; 概念介绍&#xff1a;用于存放指向源文件的路径信息&#xff08;文件快捷方式&#xff09; 应用场景&#xff1a;对于要操作文件数据提供方便 硬链接介绍 硬链接不能跨分区创建 补充&#xff1a; 1.目录硬链接数代…

k8s-List机制及resourceVersion语义

kube-apiserver 核心职责 提供Restful API&#xff1b;代理集群组件&#xff0c;如dashboard、流式日志、kubectl exec 会话&#xff1b;缓存全量的etcd 数据且无状态服务可水平扩展。 kube-List操作 绝大部分情况下&#xff0c;kube-apiserver 都会直接从本地缓存提供服务&…

MybatisX插件 逆向工程

MybatisX插件 逆向工程 目录MybatisX插件 逆向工程安装插件使用插件安装插件 File->Settings->Plugins 使用插件 点击DataSource->点击“” 点击DataSource->点击MySQL 驱动选择MySQL for 5.1 输入主机IP、端口号、数据库的用户名和密码->点击Test Connec…

浅谈系统架构设计-从架构设计原理、架构设计原则、架构设计方法展开

我们工作中一直强调要做架构设计、系分&#xff0c;最近前端同学在追求前端质量提升的时候&#xff0c;也在进行架构设计、前端系分的推广&#xff0c;那到底什么是架构设计和系分&#xff1f;该怎么做架构设计和系分&#xff1f;本文尝试对架构设计进行全面的介绍和分享&#…

【机器学习】SVM入门-硬间隔模型

本站原创文章&#xff0c;转载请说明来自《老饼讲解-机器学习》ml.bbbdata.com 目录 一. SVM的目标和思想 1.1 SVM硬间隔模型的原始目的 1.2 SVM的直接目标 1.3 什么是支持向量 二. SVM的支持平面的表示方式 2.1 支持面表示方式的初步思路 2.2 初步思路的缺陷与改进 2…

基于Vue+ElementUI+MySQL+Express的学生管理系统(2)

2.搭建Express Web服务器 1.在E:\vue\shiyan9路径下创建score-server的文件夹放置Express Web服务器的相关文件。 图3 初始化package.json的信息 2.用Vscode打开score-server。并创建如图4所示的项目结构图。 以下目录中的文件依次为&#xff1a; 考试信息增删改查的接口。…

【BP回归预测】改进的鲸鱼算法优化BP神经网络回归预测(多输入单输出)【含Matlab源码 2184期】

⛄一、鲸鱼算法优化BP神经网络简介 1 鲸鱼优化算法&#xff08;Whale Optimization Algorithm&#xff0c;WOA&#xff09;简介 鲸鱼优化算法(WOA)&#xff0c;该算法模拟了座头鲸的社会行为&#xff0c;并引入了气泡网狩猎策略。 1.1 灵感 鲸鱼被认为是世界上最大的哺乳动物…

DBCO-mPEG,5 kDa,二苯并环辛炔-MPEG, 5 KDA白色结晶状

●外观以及性质&#xff1a; DBCO-mPEG,5 kDa白色结晶状&#xff0c;其的分子量有多种&#xff0c;10kDa&#xff0c;20kDa&#xff0c;30kDa等一系列的。DBCO活化的聚乙二醇化试剂通过无铜“点击化学”反应与叠氮化物反应&#xff0c;形成稳定的三唑&#xff0c;不需要铜催化剂…

evpp mingw64编译过程

evpp是奇虎360的基于libevent的网络通讯库&#xff0c;源代码不错&#xff1a; https://github.com/Qihoo360/evpp/blob/master/readme_cn.md 它提供vs的编译结构&#xff0c;我用的是mingw64cmake&#xff0c;使用gnu12&#xff0c;把修改过程分享给大家。 步骤1. 修改CMake…

软考中级系统集成项目管理工程师自学好不好过?

可以试试&#xff0c;中级系统集成算是比较好考的一科目&#xff0c;每天的通过率都有30%的&#xff01;是软考中通过率比较高的。 至于是否自学&#xff0c;有时间有精力就可以自学&#xff0c;在校生一般学习时间多&#xff0c;可以各个渠道搜集信息资料&#xff0c;可以自学…

高分子PEG点击试剂DBCO-PEG20K-OMe,二苯并环辛炔-PEG20K-甲基

DBCO-PEG20K-OMe​产品描述&#xff1a; DBCO-PEG20K-OMe属于高分子PEG点击试剂&#xff0c;DBCO 试剂是一类点击化学标记试剂&#xff0c;含有非常活泼的 DBCO&#xff08;&#xff08;二苯并环辛炔&#xff09;基团&#xff0c;​DBCO 试剂可以通过无铜点击化学与叠氮化物标…

vscode连接远程服务器进行cmake调试

一、cmake安装 cmake cmake-3.17.4.tar.gz : https://cmake.org/files/v3.17/cmake-3.17.4.tar.gz sudo apt-get install libssl-dev tar xvf cmake-3.17.4.tar.gz cd cmake-3.17.4 ./configure --prefix/usr make -j18 && sudo make install测试 二、配置 准备两…