百度
紫光
大疆
爱奇艺
科大讯飞
cvte
蔚来
大华
乐鑫
联发科
相关文章:
紫光展锐嵌入式软件面试总结(已offer)
机试+测评 2个小时,写不到1个小时就交卷 感觉内容还是比较不错
机试
单选 30道
多选 10道
填空 5道
(1)栈结构特点是FIFO?还是FILO?还是其他 FILO或者LIFO
(2)内存管理struct page描述的对象是
系统中每个物理页面有一个相关联的page结构,用于记录该页面的状态。注意虽然当该页面是
一个缓存页时,rmap结构能告诉我们谁正在映射它,但我们并没有一般的方法来跟踪哪个进程正在使用该页面
(3)int a,k=4,m=6,*p=&k;a=k;printf(“%d\n”,a);这样写对吗,输出结果是什么?
没有问题也是正常执行,结果是4
(4)下面不属于JAVA关键字的是sizeof?finally?instanceof?
注意:sizeof是关键字,又是运算符
(5)下面三条ARM指令重量级最高,屏障能力最强的是:
ISB?DSB?DMB?
指令名 功能描述
DMB 数据存储器隔离。DMB 指令保证: 仅当所有在它前面的存储器访问操作
都执行完毕后,才提交(commit)在它后面的存储器访问操作。
DSB 数据同步隔离。比 DMB 严格: 仅当所有在它前面的存储器访问操作
都执行完毕后,才执行在它后面的指令(亦即任何指令都要等待存储器访 问操作——译者注)
ISB 指令同步隔离。最严格:它会清洗流水线,以保证所有它前面的指令都执
行完毕之后,才执行它后面的指令。
(6)ARMv7处理器,r0=0x1000,r1=0x80000000,请问执行str r0,[r4],#4语句后r0为
(7)局部变量声明static的生命周期?作用域?
1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。
2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后,尽管该变量还继续存在,但不能使用它。
3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋以0值。
4)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。根据静态局部变量的特点,可以看出它是一种生存期为整个源程序的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。
#include "stdafx.h"
#include <Windows.h>
#include<iostream>
using namespace std;
void test()
{
static int count = 0;
}
int main()
{
//发现编译报错,说明局部静态变量的作用域只在初始化的那个函数
cout << count << endl;
system("pause");
return 0;
}
测试代码:
#include "stdafx.h"
#include <Windows.h>
#include<iostream>
using namespace std;
int Count = 4;
int test()
{
static int Count = 0;
Count++;
return Count;
}
int main()
{
for (; Count <= 9; Count++)
test();
printf("%d\n", test());
system("pause");
return 0;
}
(8)形参可以使用的存储类说明符和局部变量完全一样?
(9)提供虚拟存储技术是? 请求段式存储管理
(10)数组名和指针变量形参,函数调用实参传给形参的是?
(11)r0=0x01,r1=0x03;ADD r0,r0,r1 LSL#1后r0的值
(12)arm架构cpu执行wifi指令后cpu会进入哪个状态?run mode?droumnt mode?还是其他
(13)a[x]和下面哪个等价?
*(a+x)
a+x
*a+x
(14)同时有静态局部变量和全局变量同名,程序执行时怎么区分或者情况是怎么样的
(15)以下哪条赋值程序编译器会被优化掉
理论上”p=1”这条语句会被优化掉,但是暂时看不出来
int p;
volitale p1;
p=1;
p=2;
p1=1;
p1=2;
/*
VS下的测试代码:更改编译器优化等级在左边资源管理器的项目点击右键->属性->C/C++->优化调节,
不过优化是需要配合release使用,debug调不了。
在VS中编译优化结果比较奇怪
*/
#include "stdafx.h"
#include <Windows.h>
#include<iostream>
using namespace std;
int main()
{
int p;
volatile int p1;
p = 1;
p = 2;
p1 = 1;
p1 = 2;
cout << "p=" << p << endl;
cout << "p1=" << p1 << endl;
system("pause");
return 0;
}
(16)int arr[]={21,22,23,24,…}
int *ptr =arr;
*(ptr++)+=100;
(*ptr)=?
(*ptr++)=?
(17)互斥量属于进程间通信方式吗
互斥量就是互斥锁,感觉是不属于的,互斥锁只是一个同步机制用在共享内存等通信方式。
(18)引用是不是一定需要被初始化 需要
(19)stop:b stop语句对吗?
(20)栈和堆都存储在计算机RAM中?RAM范围定义,外存属于RAM吗
是的。
随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。
RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。
外存既不属于RAM又不属于ROM,外存就是外部存储器
(21)栈上数据可以直接访问?空间分配比堆慢?
理论上可以不用操作push和pop,直接用栈指针访问,但是这样操作也不太好
尽管实际上堆栈分配在性能上通常比堆分配要好,但这并不意味着堆栈分配总是可以代替堆分配。
(22)BSS在栈里面还是区分开的? 分开的
(23)下端系统下面输出为:
typedef union{
char byte[2];
}to;
to s1=0xabcd;
printf(“0x%x,0x%x\n”,byte[0],byte[1]);
性格测评178道