当前位置: 首页 > 编程日记 > 正文

C/C++、嵌入式开发岗笔试集锦

图标链接

C++运算符检索(点击查看 - 转)

C++构造函数、拷贝函数等理解(点击查看 - 转)

题目

⭐⭐⭐1.(STL库)请问C++的STL库中map的底层数据结构为(),multimap的底层数据结构为(),unordered_map的底层数据结构为()?
底层数据
答案:rb_tree rb_tree hashtable

⭐⭐⭐2.(区分strlen()及sizeof())在64位操作系统下,下列程序的输出结果为()?

#include<iostream>
using namespace std;
{
const char* str = "name hello";
printf("%d %d\n", sizeof(str), strlen(str));
return 0;
}

答案:8、10

解析:sizeof(str)输出的是指针的大小,不管什么指针(无论是char**还是int**还是自定义的类型A的A*),大小都是一样的,在32位下是4位,在64位下是8位。

补充
C++中的数据类型有哪些?
1、整形:int、long
2、字符型:char、wchar_t
3、布尔型:bool
4、浮点型:float、double
5、指针
数据类型长度
重点:指针字节长度计算原理其实跟int差不多,一个指针的位数和操作系统的位数是相等的,即32位系统应该是4个字节,64位系统应该是8个字节
⭐⭐3、(数据库相关)有学生表如下:

CREATE TABLE students (s_id VARCHAR(20) PRIMARY KEY,s_name VARCHAR(20) NOT NULL DEFAULT '',s_birth VARCHAR(20) NOT NULL DEFAULT '',s_sex VARCHAR(10) NOT NULL DEFAULT ''
);

现要查询students表的第16~20条数据,正确的查询语句是

答案:select * from students limit 15,5;

解析:如果给定两个参数,第一个参数指定第一个返回记录行的偏移量第二个参数指定返回记录行的最大数目
select * from tableName limit i,n

  • tableName : 为数据表;
  • i : 为查询结果的索引值(默认从0开始);
  • n : 为查询结果返回的数量

⭐⭐⭐❔4、(静态、非静态成员函数)头文件中有
int func1();
static int func2();
class DEMO
{
public:
int func3();
static func4();
}
在这些函数中,具有隐含的this指针的是

答案:func3(),非静态成员函数都包含一个特殊的指针,指向调用该函数的对象,这个指针成为this指针非静态成员函数都包含一个特殊的指针,指向调用该函数的对象,这个指针成为this指针

解释:

  1. 非静态成员函数都包含一个特殊的指针,指向调用该函数的对象,这个指针成为this指针;
  2. this指针只能在类的成员函数中使用,静态成员函数没有this指针
    5、(二叉树、堆)请问以下序列中能构成最小堆的是
A   4, 5, 7, 7, 8, 10, 4
B   10, 9, 8, 7, 3, 2, 1
C   3, 4, 5, 5, 5, 9, 6
D   3, 14, 10, 20, 30, 9, 12

答案:C 3, 4, 5, 5, 5, 9, 6

解析:
法一

  • 如果每个节点的值都大于等于左右孩子节点的值,这样的堆叫 大顶堆;
  • 如果每个节点的值都小于等于左右孩子节点的值,这样的堆叫 小顶堆。

堆是一个完全二叉树:将序列按照从上到下,从左至右构建二叉树:第一层(3);第二层(45);第三层(5596).可以看出是小顶堆

法二
堆分为大顶堆和小顶堆,
满足a[i]>=a[2i+1]&&a[i]>=a[2i+2]称为大顶堆,
满足 a[i]<=a[2i+1]&&a[i]<=a[2i+2]称为小顶堆

⭐⭐⭐⭐5、(TCP/IP协议)TCP与UCP的区别(选择题)
解释:
在这里插入图片描述
参考文章:一看就懂系列之 超级详解TCP与UDP。

⭐⭐6.(递归函数求复杂度)求递归方程T(n)=4T(n/2)+n 的解 ( )
解释:

将规模为n的问题通过分治,得到a个规模为n/b的问题,每次递归带来的额外计算为c(n^d)T(n)=a(n/b)+c(n^d)若 a=b^d , T(n)=O(n^dlog(n))若 a<b^d , T(n)=O(n^d)若a>b^d , T(n)=O(n^logb(a))
该题 a=4,b=2,d=1,a>2   T(n)=O(n^logb(a))=O(n^2)

⭐⭐7.(队列应用)以下哪个不是队列的应用( )

A.图的广度优先搜索B.设置打印数据缓冲区C.树的层次遍历D.中缀表达式转后缀表达式

解释:
后缀表达式也叫逆波兰式。中缀转后缀是用栈实现的。

⭐⭐⭐❔8.折半查找法对带查找列表的要求为(必须采用顺序存储结构、必须按关键字大小有序排列)
解释:如上

⭐⭐⭐9.(爱奇艺C++笔试)一组N个站点共享一个30Kbps的纯ALOHA信道, 每个站点平均每100s输出一个2000bit的帧。试求出N的最大值( )
解释:
ALOHA信道的吞吐公式为S=Ge-2G
在式中,S为吞吐量,G为单位负载。
转换成一阶导数可以得到Smax= 18.4%

本题答案:

0.184×30kbps=5.52kbps
2000bit÷100s=20bps
N=5520bps÷20bps=276

⭐⭐⭐10.(Linux系统相关)在Linux系统中,某文件权限的分数是754,则以下说法错误的是( )。
解释:
754对应3种用户的权限:文件所有者同组用户其他用户

权限权限数值具体作用
r4read,读取。当前用户可以读取文件内容,当前用户可以浏览目录。
w2write,写入。当前用户可以新增或修改文件内容,当前用户可以删除、移动目录或目录内文件。
x1execute,执行。当前用户可以执行文件,当前用户可以进入目录。

因此 7=4+2+1 文件所有者对该文件的的权限为可读可写可执行;5=4+1 同组用户对该文件的权限为可读可执行;4=4所其他用户对该文件的权限为可读;综上所有用户都有读权限。

⭐⭐⭐11.(网络协议、完美世界笔试(2016))传输层协议分类

传输层协议应用层协议网络层
TCP、UDPDNS、SMTP和POP3、HTTP和HTTPS(常用端口80)、Telnet、FTP和TFTPIP

协议

⭐⭐⭐12.(加密算法、完美世界笔试(2016))对称加密算法与非对称加密算法

对称加密算法
常见的有DES3DESAESDESXBlowfishRC4RC5RC6RSADSA(数字签名用)、ECC(移动设备用)、Diffie-HellmanEl Gamal

⭐⭐⭐13.(线程状态、完美世界笔试(2016))线程的生命周期内有以下几种状态:

初始(NEW)新创建了一个线程对象,但还没有调用start()方法
运行(RUNNABLE)Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”
阻塞(BLOCKED)表示线程阻塞于锁
等待(WAITING)进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)
超时等待(TIMED_WAITING)该状态不同于WAITING,它可以在指定的时间后自行返回
终止(TERMINATED)表示该线程已经执行完毕

⭐⭐14.(管道通信、完美世界笔试(2016))管道通信概念

管道通信原因
只能单向通信,不可双向通信半双工,仅可单向
管道的容量的影响因素受磁盘影响、管道缓冲区大小也可影响
进程对管道进行读操作和写操作都可能被阻塞正确
一个管道只能有一个读进程或一个写进程对其操作错误

⭐⭐15.(复杂度、完美世界笔试(2016))数组元素基本有序的情况下

排序方式复杂度
直接选择排序复杂度都是O(n^2)
堆排序堆排序都是O(nlogn)
快速排序数组元素,基本有序,快速排序是最慢的
插入排序时间复杂度趋近于O(n)
平衡二叉搜索树Θ(logn)
排序方式平均时间复杂度
插入排序O(n^2)
冒泡排序O(n^2)

⭐16.(排错题、完美世界笔试(2016))递推式D[n]=(n-1)*(D[n-2]+D[n-1]),是标准的错排公式!

⭐⭐17.(二分法查找、完美世界笔试(2016))已知有序序列b c d e f g q r s t,则在二分查找关键字b的过程中,先后进行比较的关键字依次是多少?()
解释:
参看:算法:二分查找(详解及例题)
b c d e f g q r s t 二分查找,折半法
① low = 0,high = 9,mid = (low+ high)/2=4, ∴ 'b’比较a[4]=‘f’,<,找左边 ( b~e )
② low = 0,high = mid-1 = 3, mid = 3/2=1, ∴ 'b’比较a[1]=‘c’ , <,找左边(b~b)
③ low = 0,high = mid -1 = 0,mid = 0,∴ ‘b’ 比较a[0] = ‘b’,找到(若未找到,low=high,也停止查找)
所以比较的顺序就是f c b

⭐18.(互质偶数、完美世界笔试(2016))1000以内与105互质的偶数有多少个?
解释:
105=3*5*7,设[x]表示不大于x的最大整数,
1–1000之间有500个偶数,[500/3]=166,[500/5]=100,[500/7]=71,
[500/15]=33,[500/21]=23,[500/35]=14,[500/105]=4,
由容斥原理,1–1000之间与105互质的偶数有
500-(166+100+71)+(33+23+14)-4
=500-337+70-4=229个.
⭐19.(求0个数、完美世界笔试(2016))2015!后面有几个0?
解释:
1.每含一个5产生一个0,共有2015/5=403个,
2.此外每含一个25将会和4结合产生两个0,相当于在5的基础上又额外产生一个0,总共会额外产生2015/25=80个,
3.每含一个125会产生三个0,相当于再额外产生一个0,共有2015/125=16个,
4.每含一个625会产生4个0,相当于再额外产生一个0,共有2015/625=3个。
所以总共会产生403+80+16+3=502个0

⭐⭐⭐⭐20.(循环队列、完美世界笔试(2016))
循环队列的相关条件和公式:
队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度
1.队空条件:rear==front
2.队满条件:(rear+1) %QueueSIze==front
3.计算队列长度:(rear-front+QueueSize)%QueueSize
4.入队:(rear+1)%QueueSize
5.出队:(front+1)%QueueSize

⭐⭐⭐21.(B与B+树区别、完美世界笔试(2016))

B树B+树
用于组织文件的动态索引结构用于组织文件的动态索引结构
平衡的多分支树平衡的多分支树
只适用于随机检索适用于顺序检索和随机检索

注:顺序检索就像是有序链表一样的检索,B+树的只有叶子节点存放关键字,且所有叶子节点依次连接,就像一个有序链表,因此可以顺序检索;

⭐22.(依赖注入、完美世界笔试(2016))

A.依赖注入能够独立开发各组件,然后根据组件间关系进行组装
B.依赖注入使组件之间相互依赖,相互制约(错误)
C.依赖注入提供使用接口编程
D.依赖注入指对象在使用时动态注入

解释:
依赖注入可以降低组件之间的耦合度。而不是增加依赖程度。

⭐23.(网络 - 子网掩码、完美世界笔试(2016))
255.255.255.250(不对)
解释:
子网掩码前面全是1,后面为0,必须是连续的
224是1 1 1 0 0 0 0 0 0 可行
240是1 1 1 1 0 0 0 0 0 可行
248是1 1 1 1 1 1 0 0 0 可行
250是1 1 1 1 1 1 0 1 0 不可行
⭐⭐⭐24.(堆与栈、完美世界笔试(2016))多线程中栈与堆是公有的还是私有的()
解释:

在多线程环境下,每个线程拥有一个栈和一个程序计数器。栈和程序计数器用来保存线程的执行历史和线程的执行状态,是线程私有的资源。其他的资源(比如堆、地址空间、全局变量)是由同一个进程内的多个线程共享

⭐⭐⭐⭐⭐25.(时间复杂度 - 总结)
降序排序:最坏排序
升序排序:最优排序

⭐⭐⭐⭐26.(操作系统)三个程序a,b,c,它们使用同一个设备进行I/O操作,并按a,b,c的优先级执行(a优先级最高,c最低).这三个程序的计算和I/O时间如下图所示。假设调度的时间可忽略。则在单道程序环境和多道程序环境下(假设内存中可同时装入这三个程序,系统采用不可抢占的调度策略).运行总时间分别为()
计算 I/O 计算
a 30 40 10
b 60 30 10
c 20 40 20
在这里插入图片描述

⭐⭐27.(Linux创建文件)在Linux内核中,创建一个文件操作可以使用
在这里插入图片描述

相关文章:

Blender制作3D模型导出到UE5完整学习教程

学习如何在Blender中创建AAA游戏资产&#xff0c;然后导出到虚幻引擎5的完整指南 你会学到什么 遵循关于创建一套AAA游戏就绪的优质中世纪市场摊位的完整指南 最大化您的推荐人的潜力&#xff0c;以开发强大的游戏资产概念 使用Blender并了解其界面和快捷方式 从初级水平到世界…

[纪录]仿IOS滚轮效果(竖直滑动选择器)

今天想做一个类似这样的一个效果,可是UI的模板是参考IOS做的,于是就各种百度各种搜,最后让我找到了一个仿IOS滚轮的一个Demo,稍微研究了一下,发上来,大家一起学习,以后也方便我查看,就不用再去百度了,嘿嘿! 仿IOS滚轮效果 首先是一个类,继承了ScrollView public class WheelVie…

win7如何设置wifi热点_xp系统怎么设置无线网络热点(电脑设置wifi热点步骤)

现在手机基本都是可以开启wifi热点功能&#xff0c;但有时候因为各种原因&#xff0c;比如没有无线或者路由器有问题等情况&#xff0c;手机又需要使用网络&#xff0c;这个时候需要用电脑设置wifi热点。那么&#xff0c;怎么用电脑设置wifi热点呢&#xff1f;下面分别用win10系…

汇编语言第二课作业-实验1

Debug命令-摘自百度百科A 汇编命令 功能&#xff1a; 将指令直接汇编成机器码输入到内存中。说明&#xff1a; 用于小段程序的汇编及修改目标程序&#xff0c;所有输入的数字均采用十六进制&#xff0c; 用户装入内存的汇编语句是连续存放的&#xff0c;若没有指定地址&#xf…

C++、嵌入式软开之数据结构

总结&#xff1a; 1.二叉树搜索树是需要进行比较大小&#xff0c;满足传递性才可&#xff1b; 刷题总结&#xff1a; 1.&#xff08;二叉树遍历&#xff09;已知某二叉树的后序遍历序列是dabec&#xff0c;中序遍历序列是debac&#xff0c;它的前序遍历是&#xff08;&#xf…

3dsMax插件V-Ray渲染与合成学习课程 3ds Max: Rendering for Compositing in V-Ray Next

使用渲染元素&#xff0c;3ds Max的V-Ray Next对创建高质量合成所需的参数(如反射、阴影、遮罩等)提供了精细的控制。在本课程中&#xff0c;布莱恩布拉德利展示了如何在Photoshop和After Effects等应用程序中使用V-Ray Next为后期制作工作流专门创建渲染。探索渲染元素用户界面…

对找数程序的理解

经过几个小时的思考&#xff0c;总算是对老师出的这个程序题有了一定的了解。该C#程序是一个对数字进行查找的程序。程序清单如下&#xff1a; using System; using System.Collections.Generic; using System.Text; namespace FindTheNumber {  class Program  {    s…

win10鼠标灵敏度怎么调_和平精英最稳压枪灵敏度怎么调教程,适合所有段位以及适合国际版PUBG手游压枪...

和平精英(原刺激战场)主播最稳压枪灵敏度怎么调&#xff1f;不妨看看花了五个小时调试的最稳和平精英压枪灵敏度吧。废话不多&#xff0c;上图按照调。保证你满意&#xff0c;你离主播只差点意识此和平精英压枪灵敏度适合所有段位 也适合PUBG(和平精英国际版)-------分割线---…

C++基本知识点集锦(2022秋招)

&#xff08;1&#xff09;构造函数是一种特殊的类成员函数&#xff0c;是当创建一个类的对象时&#xff0c;它被调用来对类的数据成员进行初始化和分配内存。&#xff08;构造函数的命名必须和类名完全相同&#xff09; &#xff08;2&#xff09;C的空类&#xff0c;编译器会…

Sketchup插件Vray户外场景设计渲染教程 Vray Next For Sketchup Exterior

Sketchup户外场景设计的Vray Next 你会学到什么 渲染白天和夜晚场景 后期制作 Sketchup的Vray Next 中级sketchup用户 大小解压后&#xff1a;3.83G 1280X720 mp4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 大家好&#xff0c; 我是…

实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

贺邦原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的&#xff1a; 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用&#xff0c;理解系统调用的工作机制。 实验过程&#xff1a; 本文实验选择24号…

三菱plc232数据线驱动下载_三菱PLC与西门子PLC有什么区别?

三菱PLC与西门子PLC有什么区别&#xff1f;分别有什么优点和缺点&#xff1f;该如何选择&#xff1f;学习哪种品牌&#xff1f;首先它们的编程理念不同&#xff0c;三菱PLC是日系品牌&#xff0c;编程直观易懂&#xff0c;学习起来会比较轻松&#xff0c;西门子PLC是德国品牌&a…

Github 树形菜单插件

ajax显示gitlab的&#xff0c;很像mac的树形展示。 直接在左侧做了一个ajax的树&#xff0c;每次访问gitlab自动加载。非常方便呢&#xff0c;在国内网速这么慢的情况下更显得好用了。 下载地址&#xff1a; https://github.com/buunguyen/octotree/tree/master/dist chrome安装…

C/C++、嵌入式秋招之SQL篇

⭐⭐1.选取最大&#xff08;小&#xff09;值 SELECT * FROM employees order by hire_date desc limit 0,1解释&#xff1a; 知识点 ORDER BY 根据指定的列对结果集进行排序&#xff0c;默认按照升序&#xff0c;降序 ORDER BY DESCLIMIT(m, n) 从第 m 1 行开始取 n 条记录…

C4D样条曲线建模大师班 Cinema 4D MasterClass: Master Modelling using Splines

通过本课程&#xff0c;快速学习使用样条曲线建模的基础知识&#xff0c;并将您的技能提升到一个新的水平 你会学到什么 能够使用样条线对整个对象进行建模 三维建模和UV展开 能够找到模拟复杂形状的最佳方法 无数的提示和技巧 在项目中应用蓝图的真实尺寸 对Uv制图有更好的理…

从头到尾彻底解析Hash表算法

从头到尾彻底解析Hash表算法 发布时间: 2013-10-02 10:26 阅读: 25156 次 推荐: 14 原文链接 [收藏] 作者&#xff1a;July、wuliming、pkuoliver 说明&#xff1a;本文分为三部分内容&#xff0c; 第一部分为一道百度面试题Top K算法的详解&#xff1b;第二部分为关于H…

ftp windows无法访问此文件夹请确保输入的文件名_企业实战|企业FTP搭建

安装Vsftpd提前关闭selinux 和firewalld防火墙1.安装vsftp软件包 $ yum -y install vsftpd*2.启动vsftpd服务器 $ systemctl restart vsftpd $ systemctl enable vsftpd3.检查服务是否正常启动 $ ps -ef|grep vsftp && netstat -tunlp|grep 21至此 匿名用户的ft…

C++、嵌入式软开之指针

1.(指针数据)int* pa[5]; 描述: pa是一个具有5个元素的指针数组,每个元素是一个int类型的指针; 2.(二级指针)以下程序的输出结果是: #include <iostream> using namespace std; void func(char **m){++m;cout

3dsMax插件V-Ray建筑可视化三维渲染细节技术学习教程

通过学习可用于相机放置、建模、修整等的策略&#xff0c;生成令人印象深刻且逼真的建筑三维渲染。了解如何将您的3D渲染场景提升到一个新的水平&#xff0c;以使您的图像引人入胜、有趣且讨人喜欢。在本课程中&#xff0c;讲师Verena Tatiana首先讨论了不同的细节处理方法&…

所有表单对象_Laravel 表单方法伪造与 CSRF 攻击防护

1、表单方法伪造有时候&#xff0c;我们可能需要手动定义发送表单数据所使用的 HTTP 请求方式&#xff0c;而 HTML 表单仅支持 GET 和 POST 两种方式&#xff0c;如果要使用其他的方式&#xff0c;则需要自己来定义实现。HTTP 请求方式概述最常见的 HTTP 请求方式自然是 GET 和…

使用按钮控制HTML5背景音乐开关

<!DOCTYPE HTML> <html> <head> <meta charset"utf-8"> <meta name"viewport" content"widthdevice-width; initial-scale1.0"> <title>演示&#xff1a;使用按钮控制HTML5背景音乐开关</title></…

hibernate和struts2实现分页功能

1.DAO层接口的设计&#xff0c;定义一个PersonDAO接口&#xff0c;里面声明了两个方法&#xff1a; public interface PersonDAO {public List<Person> queryByPage(String hql, int offset, int pageSize);public int getAllRowCount(String hql); } 2.DAO层接口的实现类…

Cmake软件编译opencv报错,CMake Warning at cmake/OpenCVDownload.cmake:193 (message): FFMPEG: Download...

当执行如下操作时&#xff1a; 出现下面报错&#xff0c; 在链接ipaddress.com查询raw.githubusercontent.com地址&#xff0c;然后将ip添加至C:\Windows\System32\drivers\etc\hosts中&#xff1a; 保存后&#xff0c;重新在cmake软件中点击“Configure”等待即可。

Blender+SP+UE5游戏艺术工作流程学习

Blender到虚幻引擎5 Blender游戏艺术 Blender for Game Art 你会学到: 如何在Blender中创建三维模型 UV如何展开和布局 如何在Substance Painter中表现肌理 如何使用虚幻引擎5 如何在UE5中点亮室内环境 MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz&…

JQ 全选后获取选中的值_为什么在PBI中还需要切片器之三:Excel切片器之度量值切换...

Excel切片器之度量值切换原创 海峰没想到上篇文章一经发出&#xff0c;很快就过了10个留言&#xff0c;大喜过望&#xff0c;今天立马揭晓切片器之度量切换的应用。切片器之度量切换----参数法创建参数表&#xff0c;如下并导入数据模型创建需要的度量值&#xff0c;利润合计万…

layoutSubviews总结(转)

- (void)setNeedsDisplay- (void)drawRect但是是用initWithFrame 进行初始化时&#xff0c;当rect的值不为CGRectZero时,也会触发 You should override this method only if the autoresizing behaviors of the subviews do not offer the behavior you want. layoutSubviews, …

PHP日期格式转时间戳

PHP 提供了函数可以方便的将各种形式的日期转换为时间戳&#xff0c;该类函数主要是&#xff1a; strtotime()&#xff1a;将任何英文文本的日期时间描述解析为时间戳。mktime()&#xff1a;从日期取得时间戳。strtotime() strtotime() 函数用于将英文文本字符串表示的日期转换…

TFmini传感器使用

使用激光传感器 打开地面站&#xff0c;Mavlink控制台输入tfmini start --> tfmini status -->显示 current_distance:数字 即可得到距离&#xff1b; 将timini插到口UART&I2C B上面 需要在自启动文件中添加tfmini的自启动&#xff0c;否则出来的数据是0&#xff1b;…

3DsMax渲染插件VRay NEXT完整的视频指南

要求 基本的计算机和三维软件知识 这门课程对初学者和进阶者都有好处 我们确实经历了许多你甚至不知道存在的功能 VRay NEXT for 3Ds Max – Complete Video Guide 欢迎来到V-RAY视频手册 流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:aac&#xff0c;44100 Hz语言…

MyEclipse中运行环境jre、编译级别、tomcat运行环境区别

运行环境JRE SYSTEM LIARARY引入项目中依赖的jdk基础包&#xff0c;在java build path --》library中可以切换 编译级别是项目编译成.class时使用的编译jdk版本&#xff0c;只能向下编译 tomcat运行环境选择jdk版本&#xff0c; 以上三个配置最好一致&#xff0c;如果不一致可以…