网站大量收购独家精品文档,联系QQ:2885784924

2025年嵌入式开发工程师C语言能力评估试题集.doc

2025年嵌入式开发工程师C语言能力评估试题集.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

嵌入式程序员C語言测试題

C語言测试是招聘嵌入式系统程序员过程中必须并且有效的措施。这些年,我既参与也组织了許多这种测试,在这过程中我意识到这些测试能為面试者和被面试者提供許多有用信息,此外,撇开面试的压力不談,这种测试也是相称有趣的。

从被面试者的角度来讲,你能理解許多有关出題者或监考者的状况。这个测试只是出題者為显示其对ANSI原则细节的知识而不是技术技巧而设计吗?这是个愚蠢的问題吗?如要你答出某个字符的ASCII值。这些问題着重考察你的系统调用和内存分派方略方面的能力吗?这标志着出題者也許花時间在微机上而不是在嵌入式系统上。假如上述任何问題的答案是是的话,那么我懂得我得认真考虑我与否应当去做这份工作。

从面试者的角度来讲,一种测试也許能从多方面揭示应试者的素质:最基本的,你能理解应试者C語言的水平。不管怎么样,看一下这人怎样回答他不会的问題也是满有趣。应试者是以好的直觉做出明智的选择,还是只是瞎蒙呢?当应试者在某个问題上卡住時是找借口呢,还是体現出对问題的真正的好奇心,把这当作学习的机会呢?我发現这些信息与他們的测试成绩同样有用。

有了这些想法,我决定出某些真正针对嵌入式系统的考題,但愿这些令人头痛的考題能給正在找工作的人一点协助。这些问題都是我这些年实际碰到的。其中有些題很难,但它們应当都能給你一点启迪。

这个测试适于不一样水平的应试者,大多数初级水平的应试者的成绩会很差,经验丰富的程序员应当有很好的成绩。為了让你能自已决定某些问題的偏好,每个问題没有分派分数,假如选择这些考題為你所用,請自行按你的意思分派分数。

预处理器(Preprocessor)

1.用预处理指令#define申明一种常数,用以表明1年中有多少秒(忽视闰年问題)

#defineSECONDS_PER_YEAR(60*60*24*365)UL

我在这想看到几件事情:

1)#define語法的基本知识(例如:不能以分号結束,括号的使用,等等)

2)懂得预处理器将為你计算常数体現式的值,因此,直接写出你是怎样计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。

3)意识到这个体現式将使一种16位机的整型数溢出-因此要用到長整型符号L,告诉编译器这个常数是的長整型数。

4)假如你在你的体現式中用到UL(表达无符号長整型),那么你有了一种好的起点。记住,第一印象很重要。

2.写一种原则宏MIN,这个宏输入两个参数并返回较小的一种。

#defineMIN(A,B)((A)=(B)?(A):(B))这个测试是為下面的目的而设的:

1)标识#define在宏中应用的基本知识。这是很重要的。由于在?嵌入(inline)操作符变為原则C的一部分之前,宏是以便产生嵌入代码的唯一措施,对于嵌入式系统来說,為了能到达规定的性能,嵌入代码常常是必须的措施。

2)三重条件操作符的知识。这个操作符存在C語言中的原因是它使得编译器能产生比if-then-else更优化的代码,理解这个使用方法是很重要的。

3)懂得在宏中小心地把参数用括号括起来

4)我也用这个问題开始讨论宏的副作用,例如:当你写下面的代码時会发生什么事?

least=MIN(*p++,b);

3.预处理器标识#error的目的是什么?

假如你不懂得答案,請看参照文献1。这问題对辨别一种正常的伙计和一种书呆子是很有用的。只有书呆子才会读C語言书本的附录去找出象这种问題的答案。当然假如你不是在找一种书呆子,那么应试者最佳但愿自已不要懂得答案。

死循环(Infiniteloops)

4.嵌入式系统中常常要用到无限循环,你怎么样用C编写死循环呢?

这个问題用几种处理方案。??

我首选的方案是:

while(1)

{

}

某些程序员更喜欢如下方案:

for(;;)

{

}

这个实現方式让我為难,由于这个語法没有确切体現究竟怎么回事。假如一种应试者給出这个作為方案,我将用这个作為一种机会去探究他們这样做的基本原理。假如他們的基本答案是:我被教着这样做,但从没有想到过為何。这会給我留下一种坏印象。

第三个方案是用goto

Loop:

...

gotoLoop;

应试者如給出上面的方案,这阐明或者他是一种汇编語言程序员(这也許是好事)或者他是一种想进入新领域的BASIC/FORTRAN程序员。

数据申明(Datadeclarations)

5.用变量a給出下面的定义

a)一种整型数(Aninteger)

b)一种指向整型数的指针(Apointertoaninteger)

c)一种指向指针的的指针,它指向的指针是指向一种整型数(Apo

文档评论(0)

181****8523 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档