紫光展锐嵌入式软件笔试总结(已offer)

百度
紫光
大疆
爱奇艺
科大讯飞
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道

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值