现在嵌入式发展这么快,很多人开始踏上嵌入式学习之路,据市场统计,一般毕业或者找工作的一些人,在面试公司的时候,都会在这个地方卡壳,那就是面试题,很多人都是面试的很好,但是在做面试题的时候,手下的功夫不够深,最后被面试题而刷了下来,使得找工作变成了难题,空有一身的才华了,而且这也是对一些嵌入式面试的一些空难户而总结,可以学学哦,去公司面试一般都是会有的。
请点击更多华清远见嵌入式题库分享大全
(1)字符 constp字符常量 p const char * p上述三个有什么区别?
答案:
const char * p;//常量指针,p的值不可以修改
字符常量 p;//指向常量的指针,指向的常量值不可以改const char p;//和const char * p
const char * p是一个char型指针,指针是常量,不允许修改,即类似p=问的语句是错误的,
字符常量 p和const char p是同一种char型指针,指针指向的字符被看作是常量,不允许修改,即类似* p=问的语句是错误的。
(2) char str1 []=癮bc";charstr2 []=癮bc";const char str3 []=癮bc";const charstr4 []=癮bc";const char str5=癮bc";const char str6=癮bc";字符 str7=癮bc";字符 str8=癮bc"; cout & lt;& lt;(str1==str2) & lt;& lt;endl;cout & lt;& lt;(str3==str4) & lt;& lt;endl;cout & lt;& lt;(str5==str6) & lt;& lt;endl;cout & lt;& lt; (str7==str8) & lt;& lt;endl;
结果是:0 0 1 1 str1 str2, str3, str4是数组变量,它们有各自的内存空间;而str5, str6, str7, str8是指针,它们指向相同的常量区域。
(3)什么是预编译,何时需要预编译:
答案:
1,总是使用不经常改动的大型代码体。
2,程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。
预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。
(4)以下代码中的两个运算符用法有问题吗?
[C易]无效大写(char []) str//将str中的小写字母转换成大写字母{(size_t我=0;我
(5)嵌入式系统中经常要用到无限循环,你怎么样用C语言编写死循环呢?
这个问题用几个解决方案。我首选的方案是:
, (1)
{
}
一些程序员更喜欢如下方案:
(,)
{
}
这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出
这个作为方案,我将用这个作为一个机会去探究他们这样做的
基本原理。如果他们的基本答案是:“我被教着这样做,但从没有想到过为什么”。这会
给我留下一个坏印象。
第三个方案是用转到
循环:
…
goto循环;
应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他
是一个想进入新领域的基本/FORTRAN程序员。
常量
(6)关键字常量是什么含意?
我只要一听到被面试者说:“const意味着常数”,我就知道我正在和一个业余者打交道。
去丹年萨克斯已经在他的文章里完全概括了const的所有用法,因此ESP(译者:嵌入式
系统编程)的每一位读者应该非常熟悉const能做什么和不能做什么。如果你从
没有读到那篇文章,只要能说出const意味着“只读”就可以了。尽管这个答案不是完全的
答案,但我接受它作为一个正确的答案。(如果你想知道更详细的答案,仔细读一下萨克斯
的文章吧)。如果应试者能正确回答这个问题,我将问他一个附加的问题:下面的声明都
是什么意思?
const int;
int const;
const int *;
int *常量;
int const *常量;
前两个的作用是一样,一个是一个常整型数。第三个意味着一个是一个指向常整型数的指针(也
就是,整型数是不可修改的,但指针可以)。第四个意思一个是一个指向整型数的常指针(也
就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着一个是一
个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不
可修改的)。如果应试者能正确回答这些问题,那么他就给我留下了一个好印象。顺带提