嵌入式面试常见问题(九)—各大公司面试题

2023-05-16

3、锐捷网络笔试题

笔试时间:2020.09.24
时长:90分钟
题目:25道题,全是C语言代码题,问输出结果。
总结:时间紧,任务重,硬核。

1、

#include<stdio.h>
char *getstr1()
{
char s[]="str1"; //static char s[]="str1";
return s;
}
char *getstr2()
{
char *s="str2";
return s;
}
void getstr3(char *s)
{
s="str3";
return;
}
int main()
{
char *s1,*s2,*s3;
s1=getstr1();
s2=getstr2();
getstr3(s3);
printf("str1:%s\r\n",s1);
printf("str2:%s\r\n",s2);
printf("str3:%s\r\n",s3);
}

第一个,函数内部定义的变量在函数结束时候释放掉了,所以返回会出错,
第二个是str2,
第三个定义是void,没有返回值,打印空,内存非法访问。

str1:
str2:str2
str3:null

2、

#include<stdio.h>
#include<string.h>
int main()
{
char *str="Ruijie";
printf("str1:%d\r\n",sizeof(str));
printf("str2:%d\r\n",strlen(str));
printf("str3:%d\r\n",sizeof(*str));
}

4 6 1

3、

#include<stdio.h>
int main()
{
int x=0,y=0;`
while(x<15){
y++;
x+=++y;
}
printf("%d %d",y,x);
}

8 20

4、

#include<stdio.h>
#define N 3
#define Y(n) ((N+1)*n)
int main()
{
int z;
z=2*(N+Y(5+1));
printf("%d",z);
}

48(考察宏定义的边界效应)

5、

#include<stdio.h>
#include<string.h>
static int arr[3][3]={0};
void init(int (*ptr)[3])
{
int i=0;
for(i=0;i<3;i++){
*(ptr[i])=i;
}
return;
}
int main(int argc,char **argv)
{
init(arr);
printf("%d,%d\n",arr[0][1],arr[1][0]);
return 0;
}

0 1
ptr[0]是等于&a[0][0],所以*ptr[0]=a[0][0]
所以最后这个二维数组是 000 100 200

6、

#include<stdio.h>
#include<string.h>
int main()
{
char str[]={'o','u','l','d'};
printf("%d",strlen(str));
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
char str[]={'o','u','l','d','\0'};
printf("%d\n",strlen(str));
printf("%s\n",str);
return 0;
}

%s 遇到\0才会截止输出,遇到\0才会截止计算

7、

#include<stdio.h>
#include<string.h>
int main()
{
char a[]="ABC";
char b[]={'A','B','C'};
printf("%s\n",a);
printf("%s\n",b);
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(b));
return 0;
}

如果用%s输出,需要注意打印字符串的时候,他认为’\0‘是结束符,所以你不加’\0‘的时候,他可能会
打印其他乱七八糟的东西
ABC
ABCABC
4
3

8、

#include<stdio.h>
#include<string.h>
int main()
{
char a=0xff;
printf("%d,%u\n",a>>8,a>>8); //这里的%d 让它变成了int
return 0;
}

-1,4294967295

看下面。右移八位全部移走了,然后补了符号位,1111 1111。另外,在内存中,因为是有符号的,所
以1111 1111是个负数,负数在内存中是补码的形式存在,所以11111111-1再取反就是真实的数,就
是-1。

9、

#include<stdio.h>
#include<string.h>
int main()
{
printf("%d\n",~3&(2&(3^4))); //按位取反 异或
return 0;
}

0

10、

#include<stdio.h>
int main()
{
int a[3][4]={{10,20,30,40},{50,60,70,80},{90,91,92,93}};
int (*p)[4];
p=a+1;
printf("%d\n",p[1][-1]);
return 0;
}

80

11、

#include<stdio.h>
int main()
{
int a[2][3]={{1,3,5},{2,4,6}};
int m,*ptr;
ptr=&a[0][0];
m=(*ptr)*(*(ptr+2))*(*(ptr+2));
printf("%d\n",m);
return 0;
}

25

12、

#include<stdio.h>
#include<string.h>
int test()
{
static int m=0;
int n=0;
m++;
n++;
printf("m=%d,n=%d\n",m,n);
return 0;
}
int main()
{
test();
test();
return 0;
}

13、

#include<stdio.h>
int main()
{
int a=0,b=0,c=0;
int i;
for(i=0;i<5;i+=2){
switch(i){
case 1:
a++;
b++;
break;
case 2:
c++;
a++;
case 3:
c++;
case 4:
b++;
default:
a++;
break;
}
}
printf("%d,%d,%d\n",a,b,c);
return 0;
}

4 2 2(没有break的话会一直向下执行)

14、

#include<stdio.h>
#include<string.h>
int main()
{
char a[7]="abcdef",b[4]="ABC";
strcpy(a,b);
printf("%c\n",a[4]);
return 0;
}

e

15、

#include<stdio.h>
int main()
{
int y=3,x=3,z=1;
printf("%d,%d\n",(++x,++y),z+2);
return 0;
}

4 3(逗号运算符)

#include<stdio.h>
#include<string.h>
int main()
{
int y=3,x=3,z=1;
//printf("%d,%d\n",(++x,++y),z+2);
printf("%d,%d\n",(++x,++y),z++);
return 0;
}

4 1

16

#include<stdio.h>
#include<string.h>
int main()
{
char b='v';
printf("%C\n",b-20);
return 0;
}

b(ASCII)

17

#include<stdio.h>
#include<string.h>
int main()
{
char str[]="abcde";
char *p;
p=&str[2];
printf("%d\n",*p);
return 0;
}

99(ASCII)

18、什么情况下会编译通过,运行出错

A、gcc用-Werror选项,程序组译失败。
B、gcc使用-Werror选项,编译正常,程序运行时崩溃。
C、gcc使用-Werror选项,编译正常),程序正常运行,备份数据输出的为随机数,
D、程序正常运行,备份数据输出的为1.

19、以下哪些任务不可以放到中断的上半部执行?

A、时间敏感的任务
B、硬件相关的任务
C、进程通信的任务
D、不可被中断的任务

20、线程

25、如下所示程序,LINE C 和LINE P将会输出什么?

LINE C: value=
LINE P: value=
#indlude <stdio.h>
#indlude <pthread.h>
#include <unistd.h>
#include <sys/wait.h>
int value=0
void *runner(void *param) /* the thread */
{
value=5;
pthread_exit(0);
}
int main(void)
{
pid_t pid;
pthread_t tid;
pthread_attr_t attr;
pid=fork();
if(pid==0)
{
pthread_attr_init(&attr);
pthread_create(&tid,&attr,runner,NULL);
pthread_join(tid,NULL);
printf("LINE c: value=%d\n",value); /*LINE C*/
}
else if(pid> 0)
{
wait(NUL);
printf("LINE P: value=%d\n",value); /*LINE P*/
}
return0;

4、360公司笔试题

投递的嵌入式Linux软件开发相关岗位,给的软件综合卷A卷(许多大公司笔试给的都是软件综合)。
因为是软件综合,所以各种知识都考查,java、C++、数据结构、算法、Linux等全部考察,所以要求你
基础扎实。
笔试时间:2020.09.11,20:00——22:00
选择题40个,一共80分。
编程题2个,一共40分。
选择题:
1、Java中GUI菜单的设置规则
2、一段C++代码的运行结果
3、例图
4、E-R图的规则有哪些?
5、C类IP地址192.168.2.0/24,16台主机时的子网掩码是多少?
6、socket编程中so_pcb 结构体的定义是哪个?
7、DNS定义是什么?
8、下列不是 NP 问题的是?
9、面向对象编程中:类,对象,实例的关系?
10、贪心算法适用于解决哪些问题?
11、LP问题是什么?
12、linux中查看路径变量的命令?
回答:echo $PATH
13、linux中kill -9 什么意思?
14、linux中grub的配置文件哪里?
回答:在/boot/grub/grub.conf目录下
15、linux中mysql数据库默认的端口是?
回答:3306
mysql的默认端口是3306,可以编辑用户目录下的 .my.cnf 文件进行修改。

sqlserver 默认端口号为:1433
oracle 默认端口号为:1521
DB2 默认端口号为:5000
PostgreSQL 默认端口号为:5432

16、序列图是什么意思?
17、原始数据类型自己可以更改吗?
18、类的继承方式中,基类共有成员,保护成员,派生类有哪些不同?
19、使用游标的5个步骤?
20、下列系统调用中,不会导致进程阻塞的是?
21、多进程中临界区的概念如何解释?
22、有三个并发进程共享变量S,则与变量S相关的临界区有几个?
23、C++中,一个函数的返回值类型由什么决定?
24、由二叉树变成树的规则?
25、链栈?
26、n个顶点的有向图,所有顶点的出度之和为S,则所有顶点的入度之和为?
27、考察Java的语法?
28、举证
29、一段C++代码运行结果
30、一段C++代码运行结果
31、关系的三种类型?
32、考察分治法
33、如何用DFS遍历一个无环有向图
34、一段C++代码运行结果
35、一段C++代码运行结果
36、char数组强制转换成 int 命令是哪一个?
37、
38、一段C++代码运行结果
39、设串长为n,模式串长为m,则KMP算法所需的附加空间为?
A、O(m)
B、O(n)
C、O(m*n)
D、O(nlog2m)
KMP算法时间复杂度为O(m+n),空间复杂度为O(m)。因为KMP算法涉及到next数组的存储,且next数
组是基于模式串长度计算的。
40、关于标准形线性规划表述正确的是?
编程题:
1、企业管理:根据打开记录推算工号(具体忘了)
2、编写密码复杂性验证程序:输入几组字符串,要求有大写字母,小写字母,数字,符号,长度大于
8,则输出pass,否则提示错误

5、百度笔试题

笔试时间:2020.09.03,19:00-21:00
题型:
单选15道×3=45
不定项选择题5道×3=15
编程题3道×20=60
单选:
1、反转链表的代码补全(嵌入式笔试链表类题目必考,比如双向链表的插入删除。字符串翻转考察的也
不少)
2、二叉平衡树(AVL)树,插入30,重新平衡后,某个数的左右孩子节点是多少。
3、数据查询指令是哪一个?
4、如果IP是212.212.77.55,子网掩码是255.255.252.0,那么它在自己组的子网广播可以达到的目的地
址是哪个?
5、一段php脚本运行结果是哪一个?
6、一段代码的时间复杂度和空间复杂度是多少?
7、给出一个二叉树的遍历方式(前、中、后)。
8、一段C++代码,判断一段程序是内存泄漏、编译出错还是运行出错?
9、用户线程和内核线程的区别和联系。
10、简单逻辑题。
11、linux中让磁盘大小从小到大排列的命令是?
12、某算法的时间复杂度是多少?
13、一段java代码,让你判断while循环的时间复杂度?
14、一段伪代码的同步和互斥,以及PV操作补全代码
15、排序算法会一个即可完成(冒泡,选择,快排,二分)
不定项选择题:
1、while循环的时间复杂度判断。
2、ping、tcpdump、strace、wireshark工具分别是用来干吗的?
3、C++语言中static变量的作用域是什么?
4、C++中:类重写、纯虚函数、虚析构函数的编译错误和内存泄漏问题该如何?
5、一段C++代码的运行结果。
编程题:
最后的编程题,三道都没有看懂,好像全是动态规划,没思路。
总结:
百度考察的范围比较广,数据结构考察的比较多,C++考察的也比较多,C语言反而少一些,所以大家要
好好准备。
以上题目没有列出选项,大家主要关注百度考察的知识点,自己总结一下,把知识点归类。不同企业的
嵌入式岗考察是有技术偏向性的,大家要针对性准备。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式面试常见问题(九)—各大公司面试题 的相关文章

  • Maven项目管理工具学习笔记

    Maven项目管理工具学习笔记 由于本人在最近的项目中使用到了Maven xff0c 但是之前对Maven并没有深入地了解 xff0c 所以借此机会 xff0c 在网上查阅资料 xff0c 对Maven进行进一步的了解 xff0c 并做记录
  • PyQt4控件失去焦点和获得焦点

    QListView控件多选设置 self ui listView setSelectionMode QAbstractItemView ExtendedSelection 初始化QListView控件焦点事件 self ui listVie
  • 远程工具MobaXterm安装和使用教程

    远程登录工具MobaXterm安装和使用教程 1 MobaXterm简介 2 MobaXterm安装 3 MobaXterm使用 创建SSH session 创建串口 session 右键粘贴 4 MobaXterm安全 1 MobaXte
  • GEC6818开发板使用和配置

    GEC6818开发板使用和配置 GEC1808开发板简介极致低功耗强大 AI 运算能力面向 AIoT 应用的丰富接口易于开发主控芯片特性参数 常用接口说明电源接口调试串口CSI摄像头接口以太网接口音频输入接口LCD接口 开发板功能 常用接口
  • Linux最常用命令50条【呕心沥血呐,望用之取之】

    Linux常用命令大全 第一章 Linux基础命令 1 linux ls 2 linux alias 3 linux cd 4 linux clear 5 linux date 6 linux dpkg 7 linux echo 8 lin
  • STM32 GPIO LED和蜂鸣器实现【第四天】

    STM32 GPIO LED实现 原理图一 STM32大小说明二 STM32时钟分析三 GPIO分析1 注意点 四 寄存器地址查找1 写出GPIOF外设的所有寄存器地址 五 LED灯开发1 理解led灯原理图2 打开GPIOF组时钟4 通过
  • Linux安装qt完整版教程

    Linux安装qt完整版教程 一 获取Linux qt版本二 linux安装qt三 配置qt环境变量四 linux qt相关的显示配置 一 获取Linux qt版本 qt 版本5 12 8官网下载地址 选择国内的下载渠道 xff0c 更快
  • STM32嵌入式工程师自我修养

    STM32嵌入式工程师自我修养 一 STM32必备技能二 程序员必须熟知三 学习STM32自备资料和硬件 一 STM32必备技能 1 熟悉 C 语言编程 xff0c 熟练 STM32CUBEMX Keil 开发环境 2 熟悉基于STM32
  • Qt 按钮组(Buttons)输入组(Input Widgets) 显示控件组(Display Widgets) 间隔组(Spacers) 布局组(Layouts) 容器组Containers等

    文章目录 按钮组 xff08 Buttons xff09 输入部件组 xff08 Input Widgets xff09 显示控件组 xff08 Display Widgets xff09 空间间隔组 xff08 Spacers xff09
  • Qt 对话框(QFileDialog)、标准颜色对话框(QColorDialog)、标准字体对话框(QFontDialog)、标准输入对话框(QInputDialog)、QMessageDialog

    文章目录 标准文件对话框 QFileDialog 代码简介QFileDialog类常用静态函数 标准颜色对话框 QColorDialog 代码简介QColorDialog类常用静态函数 标准字体对话框 QFontDialog 代码简介QFo
  • qt 使用textBrowser显示文字和图片,文字居中,图片居中,已测可用

    QTextBrowser显示图文操作 直接上源码UI设计效果截图源码方法2 推荐 源码 直接上源码 这里只给出框架 xff0c 美化的事交给有缘人 UI设计 效果截图 源码 span class token macro property s
  • HTTP报文格式详解

    文章目录 HTTP报文格式请求报文请求行请求头部空行请求数据 响应报文状态行响应头部空行响应体 HTTP报文格式 HTTP报文是面向文本的 xff0c 报文中的每一个字段都是一些ASCII码串 xff0c 每个字段的长度是不确定的 HTTP
  • 从源码分析HashMap集合之属性(一)

    注 xff1a 笔者所使用的jdk为1 8 xff0c 因本人水平有限 xff0c 难免会有错误 xff0c 请批评指正 xff0c 弥补不足 xff0c 多谢 xff0c 另转载请注明出处 我们首先来看下一下HashMap类 public
  • Linux下实现苹果AirPlay音频服务器

    一 背景 背景 xff1a 在华清学习之余 xff0c 自行研究了智能家居的东西 xff0c 为了解决智能家居中背景音乐问题研究如下 xff1a 调查发现现有技术中有DLNA AirPlay Miracast三种 文章后有些项并未验证 xf
  • uCOS-III基础入门函数

    uCOS III是一个主要是运行在单片机上操作系统 xff0c 可以实现并发 xff0c 主要的功能就是任务 mutex event的创建和使用 调度器 调度器就是使用相关算法来决定当前需要执行的任务 xff0c 调度器的核心有两个 xff
  • Java接口实现

    接口是什么 xff0c 它的作用是什么 xff1f 首先 xff0c Java只能实现单继承 xff0c 而有时候实际需要要求我们实现多继承 xff0c 因此 xff0c 接口就是为了实现多继承而开发出来的 xff0c 并且接口支持程序在运
  • python爬取京东商品信息及评论

    准备 chrome浏览器 和 chromeDriver插件 xff08 其他浏览器步骤类似 xff09 python 环境python selenium模块 代码 span class token triple quoted string
  • Error while loading error while loading shared libraries 解决办法

    Error while loading error while loading shared libraries 解决办法 缺失了 xff0c 那就找到放回去 发行版 xff1a Archlinux 如标题所言 xff0c 这里以截至写文章
  • sql-创建复合主键

    一 说明 xff1a 1 数据库的每张表只能有一个主键 xff0c 不可能有多个主键 2 所谓的一张表多个主键 xff0c 我们称之为复合主键 xff08 联合主键 xff09 注 xff1a 联合主键 xff1a 就是用多个字段一起作为一
  • sql_外键

    一 外键的定义 1 外键是一种索引 xff0c 是通过一张表中的一列指向另一张表的主键 xff0c 使得这两张表产生关联 2 是某个表中的一列 xff0c 它包含在另一个表的主键中 3 一张表中可以有一个外键也可以有多个外键 二 外键的作用

随机推荐

  • 数据库事务图解

    一 基本概念 xff08 from baidu xff09 数据库事务 Database Transaction xff0c 是指作为单个逻辑工作单元执行的一系列操作 xff0c 要么完全地执行 xff0c 要么完全地不执行 事务处理可以确
  • MySQL 中判断字符串是否相等

    感谢 xff1a https blog csdn net yangfengjueqi article details 72821603 mysql 中判断两个字符串是否相等可以用 lt 61 gt 或者 61 例 但是需要注意 lt 61
  • mysql order by 多个字段及其多字段排序原则,和 order by 后跟数字

    一 order by 后跟数字 select from table order by n n 表示select里面的第n个字段 xff0c 整段sql的意义是 xff1a 查询出来的结果 xff0c 按照第N个字段排序 二 order by
  • ROS 学习1- 创建工作空间以及功能包

    一 工作空间概念 在ros中工作空间统称为workspace 是用来存放你一个工程开发需要用到的相关文件的 xff0c 在ros中它是一个带有空座空间性质的文件夹 该文件夹中通常会包含4个子文件夹 src 用来存放功能包的 build 编译
  • Linux 中echo及echo > 和echo >>

    一 Linux 中的echo指令 Shell 的 echo 指令用于字符串的输出 详见 xff1a Shell echo命令 菜鸟教程 二 echo gt 和echo gt gt echo gt 和echo gt gt 的区别详见 xff1
  • Yolov5 计算访存量MAC与计算量FLOPS

    说明 xff1a 因为yolov5函数中已经计算了 FLOPS xff0c 因此如果想要计算访存量那么只需按照flops的位置 添加访存量的计算即可 一 先记住计算量和访存量的公式 xff1a 二 找到计算FLOPS的位置 xff0c 并添
  • Yolov5 中添加Network Slimming剪枝--稀疏训练部分

    前言 xff1a Network Slimming剪枝过程让如下 1 稀疏化 2 剪枝 3 反复迭代这个过程 一 稀疏化 xff1a 通过Network Slimming 的核心思想是 添加L1正则来约束BN层系数 xff0c 从而剪掉那些
  • Pytorch children()、modules()、named_children()、named_modules()、parameters()、named_parameters()使用说明

    参考博客 xff1a Pytorch children modules named children named modules named parameters parameters 使用说明 洪流之源的博客 CSDN博客 childre
  • Gazebo执行保存世界选取文件夹时卡住不动的解决办法

    背景 xff1a 在学习ROS Gazebo仿真 xff0c gazebo中加入任意模型 xff0c 然后点击save world as然后卡死的问题一直无法解决 现象 xff1a 点save as world屏幕变暗 xff0c 无窗口弹
  • PLC的自抗扰控制(ADRC)算法

    自抗扰控制算法 网上很多文章有理论推导和讲解 大家也可以关注韩京清教授的论文和书籍 这里就不赘述了 博途PLC ADRC自抗扰控制完整源代码可以参看下面这篇文章 博途PLC 1200 1500PLC自抗扰控制 ADRC 完整SCL源代码 R
  • PLC PID优化系列之非线性参数整定(FC函数)

    nbsp nbsp 根据一般PID的响应曲线 我们可以设计更加符合响应曲线的P I D参数 这里的非线性是指参数整定方法采用非线性 并不是PID本身的算法 非线性的PID算法后面会给大家讲 包括韩京清老师提出的ADRC都属于非线性PID范畴
  • 脖子上的这个包是“夺命包”,再不重视就晚了!化解方法必看!

    生活中你有见过这样的颈椎吗 xff1f 你的亲人 xff1f 朋友 xff1f 或者是 陌生人 xff1f 这叫富贵包 xff01 这是咱老百姓起的一个吉利的名字 但是 xff0c 在中医看来 xff0c 这哪是富贵包 xff1f 这背后潜
  • ADRC自抗扰控制算法(含梯形图完整源代码和算法公式)

    ADRC自抗扰控制算法的详细解读 不是本篇博客讨论的重点 专栏有ADRC的系列学习笔记 感兴趣的同学可以自行查看 链接如下 PLC的自抗扰控制 ADRC 算法 RXXW Dor的博客 CSDN博客 adrc算法 1 自抗扰控制算法 网上很多
  • ADRC/Matlab一步步实现跟踪微分器TD(附完整PLC测试代码链接)

    TD微分器的主要作用 就是安排过渡过程 产生跟踪信号和微分信号 滤除噪声 关于Adrc的理论分析不是本篇博客的重点 主要也是能力所限 相关理论大家可以看韩京清教授的论文 专栏有简单的学习笔记 感兴趣的同学可以看看 链接如下 ADRC自抗扰的
  • SMART PLC嵌套调用级数(ADRC调用问题)

    S7 200PLC子程序和中断程序支持的最大嵌套级数分别为8级和1级 所以老款控制器中断程序调用子程序劝大家不要套娃了 只支持1级 这篇博客我们分析下ADRC算法里的调用结构问题 首先看下调用级数最深的层级 1 嵌套调用 从图中可以看出调用
  • JAVA---this关键字

    this关键字 关于java中的this关键字 this表示当前对象 this 属性 区别成员变量和局部变量 this 调用本类的某个方法 this 表示调用本类构造方法 xff0c 只能用在构造方法的第一行语句 this关键字只能出现在非
  • 嵌入式面试常见问题(一)

    为2022秋招准备 xff0c 不打无准备之仗 第一章 进程与线程 1 什么是进程 线程 xff0c 有什么区别 xff1f 进程是资源 xff08 CPU 内存等 xff09 分配的基本单位 xff0c 线程是CPU调度和分配的基本单位
  • 嵌入式面试常见问题(六)—各大公司面试题

    1 阿里面试 1 Linux系统方面 1 xff09 进程和线程的区别 xff08 不能太书面化 xff09 xff08 需要从内存角度 xff0c 或者其他角度描述 xff09 需要用自己理解的方式去回答这个问题 xff0c 如果你回答了
  • 嵌入式面试常见问题(七)—各大公司面试题

    6 深信服面试 1 简历中写了做过海思项目 xff0c 问海思项目最大的难点是什么 怎么解决的 xff08 还问了编码的原理 xff0c h264 和265的区别 xff0c 如果sensor默认是720p的 xff0c 我要怎么得到108
  • 嵌入式面试常见问题(九)—各大公司面试题

    3 锐捷网络笔试题 笔试时间 xff1a 2020 09 24 时长 xff1a 90分钟 题目 xff1a 25道题 xff0c 全是C语言代码题 xff0c 问输出结果 总结 xff1a 时间紧 xff0c 任务重 xff0c 硬核 1