这些经典面试题一定可以帮到你快看进来吧!
接着上次分享的嵌入式笔试题,这些是我在拓盛电子面试的时候做的,都是比较经典的,可以收集看看,看看自己会不会,为面试做准备。
-
写出函数执行的结果:
void join(int x) //递归运算
{
x++;
if(x>=7)return;
join(x);
printf("%d",x); //注意别漏掉这个打印信息!
}
int mian()
{
int x = 3,y = 0;
join(x);
printf(“OK\n”);
while(–x)
{
for(y = 0;y<4;y++)
{
printf(“x = %d,y = %d\n”,x,y);
if(y>=1)break;
else continue;
}
}
printf(“over!”);
} -
分析电路 根据输入波形画出输出波形,并解释
-
写出嵌入式中经常使用的死循环有几种
-
volatile 的含义,写出3中使用方式
-
给定一整型变量a写两段代码:第一个设置a的bit3,第二个清除a的bit3
#define BIT3 (0x1<<3)
static int a;
void set_bit3(void)
{
a |= BIT3;
}
void clear_bit3(void)
{
a &= ~BIT3;
} -
某工程中要设置一个绝对地址为0x67a9整形变量值为0xaa66,编译器是纯ANSI编译器。
-
使用__interrupt定义一个ISR,评论代码有什么不妥
__interrupt double compute_area (double radius)
{
double area = PI * radius * radius;
printf(" Area = %f", area);
return area;
}
1). ISR 不能返回一个值。如果你不懂这个,那么你不会被雇用的。
2). ISR 不能传递参数。如果你没有看到这一点,你被雇用的机会等同第一项。
3). 在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。
4). 与第三点一脉相承,printf()经常有重入和性能上的问题。如果你丢掉了第三和第四点,我不会太为难你的。不用说,如果你能得到后两点,那么你的被雇用前景越来越光明了。
不能传参数 不能有返回值 不能有打印语句 不应该使用浮点运算 -
利用heap动态使用内存的过程,碎片如何形成?
-
信号量最常用的两个功能
-
ulinux 和linux的区别
-
NorFlash和NandFlash 的基本区别
-
Linux移植ARM的基本步骤和完成的任务
-
Linux图形系统有哪些?
-
Linux驱动的基本结构