【笔试强训】Day 3

news2024/10/6 8:30:13

🌈欢迎来到笔试强训专栏


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

请添加图片描述

笔试强训解析

  • 🌈欢迎来到笔试强训专栏
    • 🌈选择题
    • 🌈编程题
      • 1️⃣字符串中找出连续最长的数字串
      • 2️⃣数组中出现次数超过一半的数字
        • 🎨排序思路:
        • 🔥`两数相消`思路(让面试官眼前一亮)
  • 📢写在最后

请添加图片描述

🌈选择题

以下程序的输出结果是(做错了

#include <stdio.h>
main() {
	char a[10] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', 0}, *p;
	int i;
	i = 8;
	p = a + i;
	printf("%s\n", p - 3);
}

A 6
B 6789
C ‘6’
D 789

题目解析:

  • a是一个数组名,也是一个指向数组首元素的指针;p=a+8:a向右偏移8个char的大小,也就是8个字节,指向‘9’
  • p - 3也就是向左偏移3个字节,然后%s打印:遇到\0才会停止打印;也就是打印6789

答案选B

以下程序的输出结果是(做错了

#include <iostream.h>
int main()
{
	int x=3,y=3;
	switch(x%2)
	{
		case 1:
		switch (y)
		{
			case 0:
			cout<<"first";
			case 1:
			cout<<"second";
			break;
			default:
			cout<<"hello";
		}
		case 2:
		cout<<"third";
	}
	return 0;
}

A second third
B hello
C first second
D hellothird

题目解析:

  • x%2 = 1,进入case1;y=3,进入default语句;把hello打印出来
  • 由于default后没有break语句跳出循环,所以还是要执行外层的case2,再打印出third,所以最后打印出来的是hellothird

答案选D

以下能对二维数组a进行正确初始化的语句是()

A int ta[2][]={{0,1,2},{3,4,5}};
B int ta[][3]={{0,1,2},{3,4,5}};
C int ta[2][4]={{0,1,2},{3,4},{5}};
D int ta[][3]={{0,2},{},{3,4,5}};

题目解析:

  • 二维数组初始化是不能省略列数的,行数可以省略,这个不用我多解释了吧
  • A中没有初始化;C中多初始化了一行;D中 必须连续的初始化,不能间隔

答案选B

能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是(做错了

A return这二个数
B 形参用数组
C 形参用二个指针
D 用二个全局变量

题目解析:

  • return不能返回两个,多了要放进数组等容器

答案选A

int *p[4] 与选择项中的() 等价

A int p[4]
B int *p
C int *(p[4])
D int (*p)[4]

题目分析:

  • int *p[4] : p先和[]结合,形成一个数组,存放4个int *类型的指针——> 指针数组
  • A是整形数组 ;B是int类型的指针;C和题目一样是指针数组;D中p先和* 结合,指向一个大小为4的数组 ——> 数组指针

答案选C

设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是(做错了

A n=0;while(ch=getchar()!=‘\n’)n++;
B n=0;while(getchar()!=‘\n’)n++;
C for(n=0;getchar()!=‘\n’;n++);
D n=0;for(ch=getchar();ch!=‘\n’;n++);

题目解析:

  • for循环的初始化部分只会执行一次,所以D中的ch=getchar()只执行一次,不能获得每个字符

答案选D

以下代码执行之后ptr指向的内容是?

char *ptr;
char myString[] = "abcdefg";
ptr = myString;
ptr += 5;

A Compiler error
B fg
C efg
D defg

题目解析:

  • ptr指向的是字符a,ptr是char类型,ptr+=5,所以向右偏移5个字节,指向的是f
  • ptr是字符指针,输出的是字符串,直到\0结尾

答案选B

下面3段程序代码的效果一样吗()

int b;
(1)const int *a = &b;
(2)int const *a = &b;
(3)int *const a = &b;

A (2)=(3)
B (1)=(3)
C (1)=(2)
D 都不一样

题目解析:

  • 还是老知识点:指针常量和常量指针的区别:const后面跟的都不能变就是了
  • (1)是常量指针;(2)是常量指针;(3)是指针常量

答案选C

32位系统中,定义**a[3][4],则变量占用内存空间为(做错了)

A 4
B 48
C 192
D 12

  • a先和[]进行结合,是一个三行四列的数组,存放的是**的指针类型,所以大小:4*12 = 48

答案选B

假设在一个 32 位 little endian(小端) 的机器上运行下面的程序,结果是多少?(做错了

#include <stdio.h>
int main(){
	long long a = 1, b = 2, c = 3;
	printf("%d %d %d\n", a, b, c);
	return 0;
}

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

在这里插入图片描述

所以输出的是1、0、2, 答案选B

🌈编程题

1️⃣字符串中找出连续最长的数字串

题目地址:传送

在这里插入图片描述

解题思路:

  1. 定义两个字符串,cur存的是遍历遇到的数字字符串,ret存结果
  2. i遍历字符串,遇到数字就放进去cur中
  3. 如果cur的size比ret的大就交换给给retcur清零

请添加图片描述

⚡注意一个细节:如果遍历到最后一个i是数字的话,就会出错

  • i走到最后,i++后就等于**\0**,也就是等于size(),不再进入循环,所以没有把cur的数字串给给ret
  • 所以i <= str.size(), \0不属于数字,所以直接进入交换

请添加图片描述

上代码:

#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string str, cur, ret;
    cin>>str;
 
    for(int i = 0; i <= str.size(); ++i)//记得加上=
    {
        if(str[i] >= '0' && str[i] <= '9')
        {
            cur += str[i];
        }
        //不是数字就进行比较
        else
        {
            if(cur.size() > ret.size())
            {
                ret = cur;
            }
            else
            {
                cur.clear();
            }
        }
    }
    cout<<ret<<endl;
    return 0;
}

2️⃣数组中出现次数超过一半的数字

题目地址:传送

在这里插入图片描述

两种解题思路:

🎨排序思路:

  • sort();找到中间的数字X
  • 再次遍历数组,看看这个数字X,出现次数是否大于数组长度的一半
class Solution {
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) {
        if(numbers.empty()) return 0;

        sort(numbers.begin(), numbers.end());
        int MidNum = numbers[numbers.size() / 2];//定义中位数X
        int count = 0;//出现次数

        for(int i = 0 ; i < numbers.size(); i++)
        {
            if(numbers[i] == MidNum)
            {
                count++;
            }
        }
        if(count > numbers.size() / 2)
        {
            return MidNum;
        }
        else
        {
            return 0;
        }
    }
};

🔥两数相消思路(让面试官眼前一亮)

如果两个数不相等,就消去这两个数,最坏情况下,每次消去一个众数和一个非众数,那么如果存在众数,最后留下的数肯定是众数!(前提是存在众数

  • 设立resulttimes 分别存放数 与 出现的次数
  • 如果后一个数和前数相等,time++,否则 time--,time为0时,result重新定义arr[i]
  • 所以最后还要验证众数是否存在

在这里插入图片描述

class Solution {
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) {
        if(numbers.empty()) return 0;

        int result =  numbers[0]; 
        int times = 1;

        for(int i = 1; i < numbers.size(); ++i)
        {
            if(times != 0)
            {
                if(numbers[i] != result)
                {
                    times--;
                }
                else
                {
                    times++;
                }
            }
            else
            {
                result = numbers[i];
                times = 1;
            }
        }
        //遍历数组,判断result中的值是否为众数
        int count = 0;
        for(int i = 0; i < numbers.size(); ++i)
        {
            if(result == numbers[i])
            {
                count++;
            }
        }
        if(count > numbers.size() / 2)
        {
            return result;
        }
        return 0;
    }
};

📢写在最后

在这里插入图片描述

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

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

相关文章

python中pytest库用法详解

Pytest 是用于测试 Python 应用的 Python 库。 官方文档&#xff1a;Full pytest documentation — pytest documentation 安装&#xff1a; pip install pytest pytest 测试发现约定规范 如果未指定任何参数&#xff0c;则在testpaths&#xff08;如果已配置&#xff09;或…

智慧水利数字孪生案例分享:数字孪生水利,助力三峡科学防洪防汛

长江是我国第一大河流&#xff0c;长江流域在我国经济发展中&#xff0c;占据举足轻重的地位。与此同时&#xff0c;长江流域频繁的洪涝、气象灾害&#xff0c;严重影响危害着流域内经济社会发展和生态环境&#xff0c;因此长江流域防汛管理被作为我国防洪体系中的关键工程。水…

阿里大咖纯手写的微服务入门笔记,从基础到进阶直接封神

前言 学习是一种基础性的能力。然而&#xff0c;“吾生也有涯&#xff0c;而知也无涯。”&#xff0c;如果学习不注意方法&#xff0c;则会“以有涯随无涯&#xff0c;殆矣”。 学习就像吃饭睡觉一样&#xff0c;是人的一种本能&#xff0c;人人都有学习的能力。我们在刚出生的…

通讯/服务器公司 测试|测试开发 面试真题|面经 汇总

浪潮 测试开发 一面 8.24 三个面试官。一个HR&#xff0c;两个技术官。 1 为什么选择测开&#xff1f;意向工作地点。 2 软件质量模型 3 测试要做哪些测试 4 集成测试和验收测试的区别&#xff1f; 5 黑盒测试和白盒测试的理解 6 知道哪些黑盒测试和白盒测试的方法 7 手工测试…

【观察】“中国算力网”向全社会开放,意味着什么?

今天&#xff0c;算力的重要性已被提升到全新的高度&#xff0c;这是因为算力作为数字经济时代新的生产力&#xff0c;对推动科技进步、行业数字化转型以及经济社会发展都发挥着至关重要的作用。根据中国信通院发布《中国算力发展指数白皮书&#xff08;2022年&#xff09;》显…

AE插件:流体渐变着色特效动画生成 Potok mac

Potok是After Effects的流体渐变插件。它会产生噪波并使用渐变对其进行着色。可以从UI Gradient Control或任何图层设置渐变。噪波可以用任何层掩盖。 Noise噪波&#xff1a;Potok 插件有一个内置的噪音发生器&#xff0c;有四种噪音类型。噪声动画可以无缝循环。此外&#xf…

ASM3142 USB 3.1控制芯片_ ASM3242 USB 3.2 2x2 控制器

一、ASM3142 USB 3.1控制芯片 ASM3142 USB 3.1控制芯片将成为通过USB进行快速数据传输的新标准。是全球最快的USB解决方案&#xff0c; 可提高性能并实现更高的功效&#xff0c;节省高达50&#xff05;的功耗。 与ASM 2142 USB控制芯片相比&#xff0c;新的ASM 3142超高速USB控…

pandas数据分析:pandas基础函数入门教程【w3school学习笔记】

系列文章目录 pandas数据分析&#xff1a;十分钟快速入门重点函数速查 文章目录系列文章目录前言一、Pandas作用二、数据结构2.1 Series2.2 DataFrame三、读取数据3.1 读取CSV文件数据3.2 读取JSON文件数据四、分析数据五、清洗数据5.1 空值5.1.1 删除包含空值的行5.1.2 填充空…

微信群发工具,纯Python编写~

前言 接到了一个需求&#xff1a;现微信有8000好友&#xff0c;需要给所有好友发送一则一样的消息。网上搜索一番后&#xff0c;发现uiautomation 可以解决该需求&#xff0c;遂有此文。这是第五篇&#xff0c;也是最后一篇。 正如上面所见&#xff0c;这是uiautomition 微信群…

web前端期末大作业——网页制作基础大二dw作业——动画漫展学习资料电影模板(6页)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

「MySQL高级篇」MySQL存储引擎

本篇速览 早在MySQL基础篇的学习中&#xff0c;我们就一直看到innodb这个存储引擎&#xff0c;但是好像对于其他的存储引擎也没有去学习和了解&#xff0c;而innodb有何种特点也不得而知&#xff0c;而本篇将从一下四点&#xff0c;带你逐一攻破Ta&#xff1a; 1️⃣首先系统地…

golang 使用 make 创建 map 是否需要指定长度

大家都知道可以使用make方法来创建map类型&#xff0c;对比创建 slice 类型&#xff0c;创建map是否也需要指定len和cap两个参数呢&#xff1f; 如果map要容纳的数据比较多&#xff0c;其实是需要指定len属性的&#xff0c;我们可以从创建map的源码中了解到&#xff08;本文都…

kubernetes(K8S)学习笔记P5:K8s核心概念2

kubernetes&#xff08;K8S&#xff09;学习笔记P4&#xff1a;K8s核心概念2-Helm、持久化存储技术5.Helm5.1Helm 引入5.2Helm 介绍5.3Helm v3 变化5.4安装与仓库配置5.4.1部署 helm 客户端5.4.2配置国内 chart 仓库&#xff08;helm换源&#xff09;5.5Helm快速部署5.5.1基本命…

前端面试题记录——vue

目录 前言 一、说一下虚拟DOM&#xff1f; 1.虚拟dom是什么&#xff1f; 2.虚拟dom是怎么产生的&#xff1f; 3.虚拟dom的优点 二、说一下vue-router?有几种模式&#xff1f; 1.vue-router是什么&#xff1f; 2.vue-router有几种模式&#xff1f;区别是什么&#xff1…

Secure Boot什么意思?BIOS中Secure Boot灰色无法更改解决方法详解

在电脑Bios设置中&#xff0c;有一项“Secure Boot”相关设置&#xff0c;很多小伙伴们不知道Secure Boot什么意思&#xff0c;也不知道如何设置。另外&#xff0c;有时候这个Secure Boot是灰色的无法更改&#xff0c;这又要如何解决呢&#xff1f;下面本文就来谈谈Secure Boot…

mybatis-plus使用generator快速生成代码,并手动添加数据库命令

mybatis-plus是mybatis的增强版&#xff0c;可以根据数据库自动生成代码&#xff0c;实现常用的增删改查功能&#xff0c;也可以按照mybatis的配置方式添加数据库命令。 参考地址&#xff1a; generator: 文档 http://baomidou.com/ 代码生成器配置新 | MyBatis-Plus 1、在p…

通过SASRec算法进行基于Transformer的商品推荐

案例简介 (1)方法概述: 本教程包含如下内容: 从原始的数据文件中加载数据,进行训练集和测试集的切分,并对测试集进行负采样。 对数据分batch, 利用用户历史点击记录进行模型训练 结果展示 (2)宏观流程图 2.准备工作 (1) 对应库的安装(以下是运行环境) tqdm==4.51.0 nump…

Java#25(常见算法: 查找算法)

目录 一.基本查找/顺序查找 从0索引开始挨个往后找 二.折半查找/二分查找 条件: 数组中的数据必须是有序的 核心逻辑: 每次排查一半的查找范围 优势: 提高查找效率 三.分块查找 分块查找的原则1: 前一块中的最大数据,小于后一块中所有的数据(块内无序,块间有序) 分块查…

1000套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作【建议收藏】

一、1000套HTML期末学生结课大作业作品(HTMLCSSJS) 这8年来做了1000多套(HTMLCSSJS)网页设计的学生期末大作业&#xff0c;都是给学生定制的都符合学校或者学生考试期末作业的水平&#xff0c;都是divcss框架原创代码写的&#xff0c;有的有js&#xff0c;有的视频音乐flash的…

谷粒学苑_第十天

第十天 视频删除 后端 相关sdk在阿里云视频点播文档的服务端SDK–>Java SDK–>媒资管理–>删除视频 复制前面的InitObject到utils里 删除的方法 DeleteMapping("{id}")public R removeAliyunVideo(PathVariable String id){try{DefaultAcsClient defau…