C语言面试题~总汇(基础题、嵌入式、微软、华为、思科……).doc
《C语言面试题~总汇(基础题、嵌入式、微软、华为、思科……).doc》由会员分享,可在线阅读,更多相关《C语言面试题~总汇(基础题、嵌入式、微软、华为、思科……).doc(119页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、|基本 C语言基础题1 . 用预处理指令#define 声明一个常数,用以表明 1 年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中 有多少秒而不是计算出实际的值,是更清晰而没有代价的。 意识到这个表达式将使一个 16 位机的整型数溢出 因此要用到长整型符号 L, 告诉编 译器这个常数是的长整型数。 如果你在你的表达式中用到 UL(表示无符号长整型),
2、那么你有了一个好的起点 。记住,第一印象很重要。 2 . 写一个“标准”宏 MIN ,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B) ( A) 6) ? puts(“ 6“) : puts(“6”。原因是当表达式中存在有符号 |类型和无符号类型时所有的操作数都自动转换为无符号类型。 因此 20 变成了一个非常大的 正整数,所以该表达式计算出的结果大于 6 。这一点对于应当频繁用到无符号数据类型的嵌 入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。 13. 评价下面的代码片断: unsigned int zero = 0; unsigned
3、 int compzero = 0xFFFF; /*1s complement of zero */ 对于一个 int 型不是 16 位的处理器为说,上面的代码是不正确的。应编写如下: unsigned int compzero = 0; 这一问题真正能揭露出应试者是否懂得处理器字长的重要性。在我的经验里,好的嵌入式程序员非常准确地明白硬件的细节和它的局限,然而 PC 机程序往往把硬件作为一个无法避免的 烦恼。 到了这个阶段,应试者或者完全垂头丧气了或者信心满满志在必得。如果显然应试者不是很 好,那么这个测试就在这里结束了。但如果显然应试者做得不错,那么我就扔出下面的追加 问题,这些问题是比较
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题 总汇 基础 嵌入式 微软 华为 思科
限制150内