【笔试】CVTE视源2019秋招补录嵌入式岗位面经
文章目录
- 01 - 笔试内容
- 02 - 总结
返回导页:导页
01 - 笔试内容
编程题小白选择用纯C语言编程,所以什么都得自己做,除了基础库,没有引用其它库,数值转换要注意边界问题,也就是最大最少值也要转换成功,链表题注意指针指向问题
不定项选择题,答案可能有多个,谨慎选择
1.一个32位数据类型的数0x1234567,以小端模式,存储到0x2001~0x2004地址中,在地址Ox2002上存储的数值是
- 0x45
- 0x23
- 0x34
- 0x56
2.使用GCC编评器,在32位平台中,有如下定义的结构体:
struct Astruct{
char a;
char b;
int c;
}attribute_((packed));
请问sizeof(struct Astruct)为多少
- 7
- 8
- 6
- 5
3.关键词virtual不能用干修饰
- 构造函数
- 成员函数
- 析构函数
- 类
4.c++的虚函数表有多少个?
- 所有类的对象实例共用一个
- 每个类有一个
- 每个对象实例有一个
- 整个程序共用一个
5.C语言中,malloc函数申请到的空间存储在哪个位置
- bss段
- 栈区
- 堆区
- data段
6.预防死锁的编程原则正确的有
- 在持有锁的临界区调用用户提供的代码
- 使用固定顺序加锁
- 使用层次锁
- 避免嵌套锁
7.一个频率为2000Hz的方波,占空比为40%,一个周期内低电平的宽度为
- 200us
- 800ms
- 300us
- 200ms
8.声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是
- int((int*)[10])*p
- 其他所有选项都不正确
- (int *p[10])(int*)
- int (*(*p)[10])(*int*)
- int [10]*p(int*)
9.指针和引用的说法,以下正确的是
- 引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用,而指针在任何时候都可以改变为指向另一个对象
- 引用的创建不会调用类的烤贝构造函数
- 引用在创建的同时必须初始化,而指针在定义的时候不必初始化
- 不存在NULL引用,而指针则可以是NULL
10.下列哪些STL容器通常是由红黑树实现的?
- deque
- unordered_map
- map
- set
11.使用gcc test.c -o test命令生成的文件是
- 编译后的汇编代码文件
- 编译后的目标文件
- 可执行程序
- 预处理后的C源代码文件
12.在单循环的嵌入式系统中,使用一个全局恋量在中断函数和main函数之间传递数据,为了避免数据错误,可以采用如下做法()
- 可可用const修饰此全局变景
- 可以用volatile修饰此全局变最
- 可以用static修饰此全局恋量
- 可以用static const修饰此全局变量
13.关于单例模式和全局变量的描述,正确的是
- 单例类的构造函效必须为私有
- 如果单例类从未使用过,那么就不会创建它的对象
- 单例类的析构函数必须为私有
- 单例类必须提供一个静态方法以供全局访问
14.以下嵌入式中断,描述正确的是
- CPU使用率高,不用循环等待
- 响应速度快
- 可以强行打断原有程序的执行,从而实现CPU的抢占式调度
- 中断函数可以添加500ms延时的操作
15.以下语句有赋值作用的是
- a+1
- ++a
- a*=b
- a++
16.哪个命令用来卸载一个内核模块?
- rmmod
- unmod
- modprobe
- delmod
17.若要使用进程名来结束进程,应使用()命令
- ps-d
- profree
- psfree
- kill
18.char str[20]="0123456789”;
int a=strlen(str);
int b=sizeof(str);
a,b的值分别是
- 10,20
- 10,4
- 4,20
- 4,4
19.对所有用户的变量设置,应当放哪个文件下?
- /etc/profile
- /etc/skel/.bashrc
- ~/bash_profile
- /etc/bashrc
20.下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?
- cmd1 || cmd2
- cmd1 | cmd2
- cmd1 & cmd2
- cmd1 && cmd2
编程题,纯编辑器,没有测试环境
21.要求实现下面的函数,自行实现字符串转整数,给定一个字符串表示的10进制整数(大小在int类型的范围内),转换成n进制的整数(2<=N<=36),如果转换失败,函数返回“Error"。
char* radixConvert(const char *num,const int n);
示例输入:“10”,2,调用radixConvert(“10”,2),返回:“1010"
char* radixConvert(const char*num, const int n)
{//开辟int flag = 1;int data = 0;int i = 0;int t,k;char c;char *ret = (char*)malloc(sizeof(char)*33);memset(ret,0,sizeof(char)*33);strcpy(ret,"Error");//入口判断if(NULL == num || n<2 || n>36)return ret;//正负判断if('-' == num[0]){flag = -1;++i;}//转为整数while(num[i]){//合法字符if(num[i] >= '0' && num[i] <= '9'){data = data*10 + (num[i] - '0');++i;}//非法字符elsereturn ret;}//如果是0,特殊处理,直接返回if(0 == data){ret[0] = '0';ret[1] = '\0';return ret;}//如果不为0,计算进制i = 0;while(data){t = data % n;if(t < 10){//正负判断,用于处理最小值if(t >= 0)ret[i++] = t + '0';elseret[i++] = -t + '0';}else{ret[i++] = t + 'A' - 10;}data /= n;}if(-1 == flag){ret[i++] = '-';}//添加结束标志ret[i] = '\0';//反转k = 0;--i;while(k<i){c = ret[k];ret[k] = ret[i];ret[i] = c;++k;--i;}return ret;
}
22.电视机提供了喜爱节目功能用于收喜欢观看的节目。在喜爱节目功能中,为了更好的满足用户习惯,我们根据用户播放节目的次数,动态修改喜爱节目的排列顺序。
规则为:
(1)节目每被选播一次加1权重分;
(2)喜爱目列表按权重分由高到低排序;
(3)选播节目时,系统均会调用一次动态排序函数UpdateFavChannel,进行权重分更新和节目重新排序功能。
数据结构如下:
typedef struct_Favchannel
{
int ChannelNo;//节目编号
unsigned int FavPoints;//权重分
struct Favchannel *next;
}FavChannel;
函数名:void UpdateFavChannel(FavChannel*pFavHead,int ChannelNo);pFavHead为指向喜爱节目列表头指针(单向链表,里边的节目已经按从大到小排好序,表头无数据),ChannelNo表示选播的节目编号。
void UpdateFavChannel(FavChannel *pFavHead, int ChannelNo)
{if(NULL == pFavHead)return ;FavChannel* prev = pFavHead;FavChannel* curr = pFavHead->next;FavChannel* target = pFavHead->next->next;int t;unsigned int k;//寻找targetwhile((NULL != target) && (target->ChannelNo != ChannelNo))target = target->next;//没有则返回if(NULL == target)return;else{//加权重target->FavPoints += 1;//如果本来就在列头,特殊处理,不需要排序if(target == pFavHead->next)return ;else{//开始排序,寻找插入目标while((NULL != curr) && (curr->FavPoints >= target->FavPoints)){prev = curr;curr = curr->next;}//如果找到,而且不是target指针,就交换位置//交换两个项的值,无需移动指针if(NULL != curr && prev != target){t = curr->ChannelNo;curr->ChannelNo = target->ChannelNo;target->ChannelNo = t;k = curr->FavPoints;curr->FavPoints = target->FavPoints;target->FavPoints = k;}}}
}
02 - 总结
- 基础知识涉及C、C++、Linux、嵌入式相关、操作系统以及数据结构,需要好好复习
- 纯编辑器写代码一定要自己用笔纸试验整个过程,没有测试环境,太容易出错
返回导页:导页
【笔试】CVTE视源2019秋招补录嵌入式岗位面经相关推荐
- 百度秋招补录前端一面面试
百度秋招补录前端一面面试 项目遇到的问题以及解决方案 大数据除了用.bigint还有其他方案吗? vue的双向绑定原理 vue2.0 和 vue3.0 的数据劫持 vue3.0的改变有哪些 keepa ...
- 度小满前端开发秋招补录面经
度小满前端开发秋招补录面经 2021/1/15 时长:42分钟 vue的computed 和 watch vue的组件传参 $nextTick用过没,什么作用 常见状态码,分别说说其含义 说说Prom ...
- 信大捷安校招过程以及java岗位笔试+面试题(2019秋招回忆)
前言 依稀记得去年纠结了好久,还是逃课跑去参加了信大捷安的郑大校招现场(2018.10.10),在此之前去郑大校招面试了两次都无果而终,加上路途遥远,一来一回四五个小时,一笔一面两个来回,一起去的同学 ...
- 招银网络科技秋招补录前端面经
笔试 前面选择题都比较杂,后面专门的前端是两道编程题(感觉就leetcode简单题吧) + 一道html,css的情景应用 一面(11.17) ① 自我介绍(由于提到最近看红宝书,因此提问相关知识点, ...
- 百度秋招补录测开一面
1.自我介绍 2.讲项目---巴拉巴拉一大堆,不知道面试官有没有听懂,他也没有问我 3.线上写代码,开始叫我写非递归方式的二叉树中序遍历,我说不会 4.继续叫我写快排,可是我对快排不是很熟悉,于是写冒 ...
- 寒武纪2019秋招嵌入式软件开发笔试-牛客网刷题
寒武纪2019秋招嵌入式软件开发岗笔试 1.单片机IO口开漏输出和推挽输出有什么区别? 我答的:单片机的IO口可以配置为开漏输出和推挽输出两种模式,它们的主要区别在于输出方式和驱动能力不同. 开漏输出 ...
- 腾讯2019秋招笔试真题
1.小Q爬塔 描述:小Q正在攀登一座宝塔,这座塔很特别,塔总共有n曾层,但是没两层之间的净高却不相同,所以造成了小Q爬过每层的时间也不同.如果某一层的高度为x,那么爬过这一层锁需的还是件也是x.小Q孩 ...
- 数据分析真题日刷 | 招商银行信用卡中心2019秋招IT笔试(数据挖掘方向第二批)
进入「数据分析真题日刷」系列第10篇 ⬇️ 今日真题 招商银行信用卡中心2019秋招IT笔试(数据挖掘方向第二批) (来源:牛客网) 题型 客观题:单选30道 主观题:问答4道 完成时间 120分钟 ...
- 华为2019秋招面试问答题!(附带笔试参考题)
前言: 采菊东篱下,悠然见南山",菊花厂的名气就不多介绍了! 今天为大家带来的内容是华为2019秋招面试问答题!(附带笔试参考题)具有不错的参考意义,希望能够帮助到大家! 内容如下: 总共分 ...
最新文章
- mqttjar包_GitHub - a-voyager/MqttLib: Mqtt 通信封装库.
- 数据结构与算法 第二次实验报告堆栈队列
- 原生js实现Object.assign和Object.create
- c# 学习笔记 (3) 窗体单例模式
- 导出SAP表结构到EXCEl
- Python学习笔记:异步IO(1)
- BZOJ4698: Sdoi2008 Sandy的卡片
- jupyter 显示全部数据
- explain 之key rows extra
- java的制造商,国内某通信设备制造商JavaEE开发岗面试题
- [原创]BizTalk动手实验系列目录
- Unity3D切换场景之后光源失效(物体变暗)问题
- BZOJ1485: [HNOI2009]有趣的数列(卡特兰数+快速幂)
- KMP算法 next数组 nextval数组
- idea中html导入背景图片,Intellij IDEA代码框使用自定义背景图片
- 升级Ubuntu18.04的linux kernel(修复小米游戏本的触摸板驱动问题)
- 单片机 switch c语言,单片机入门-C51语言switch-case语句电路应用实例
- 2010Execl冻结多行
- Pygame - Python游戏编程入门(3)
- c语言静态变量instance,C语言之单例模式