2022年程序员面试宝典第二部分 .pdf
《2022年程序员面试宝典第二部分 .pdf》由会员分享,可在线阅读,更多相关《2022年程序员面试宝典第二部分 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1. 关于 printf 答案: printf 函数中不会对参数做强制类型转换2. unsigned short int unsigned short int a=0; couta-1;/ 65535 NOTE: short int 16 位 , 2 的 16 次方为 65536 3. 中断服务子程序ISR 解析:存在的问题如下1)ISR不能有返回值;2)ISR不能传递参数;3)ISR应该是短而高效的,在ISR中做浮点运算是不明智的;4)ISR中不应该有重入和性能上的问题,因此不应该使用pintf() 函数。裸奔的系统: 硬件中断响应程序的运行插入时机是随机的,程序中不存在这样的调用语句:“v
2、alue=interrupter( )”, 所以,即使有返回值也不知返回给谁。同理,如果中断函数有形参,但因没有调名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 用者,也就没有实参对形参赋值。所以,不可能有参数传递。裸奔系统中,中断程序由硬件触发执行。这意味着中断函数没有具体的调用者,所以,中断函数无法将值返回给任何对象非裸奔系统: 操作系统需要进行各种调度安排,所以接管了中断的入、出口;另外,还增加了许多软件中断。这些中断函数
3、的运行插入时机已经不再是随机了。一个中断申请发生后, 其运行时机取决于操作系统的确定安排和调用。也就是说,有了调用者,所以可以有返回值和参数传递。4. volatile问题嵌入式程序员:硬件中断RTOS 5. 大端小端n little-endian systems, what is the result of following C program? 1.typedefstruct bitstruct 2.int b1:5; 3.int :2; 4.int b2:2; 5.bitstruct; 6.void main() 7.bitstruct b; 8.memcpy(&b, ” EMC EX
4、AMINATION”, sizeof(b); 9.printf(“ %d,%dn”, b.b1, b.b2); 10. 解析:1. b 的大小只有 4 字节,且 b 只用了里面的9 个 bit。memcpy 实际拷贝了 EMC (带空格)四个char 进入b。只有前 9 个 bit 有用,即 EM 两个 char 有用。2. 为 b1 分配 5 位,这里优先分配的应该是低5 位,也就是第一个字节的低5 位。继而分配 b2 的 2 个字节,也就是第1 个字节中紧接着的2 位。最后分配 b3 的 3 位,按照规则 1、2,b3 还是紧接着存放的,b3 的最低位是第一个字节的最高位,高两位为第 2
5、个字节的低两位。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 在一个字节中:高位低位(将 b3 想象成一个环) 3. b.b1 转换为 00101 且因其为 int,以最高位扩展,为000000000000101 ,即值显示为5b.b2 将转换为 10,以最高位符号位扩展为11111111111111110,即-2 的补码,显示为 -2;6. 数据溢出问题解析:注意一点char 的范围为 -128127,(unsigned c
6、har 范围为 0255),题目中会引起char 溢出, 0-127 再加一就会溢出变为-128,就会引起无限循环问题名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 7. Struct位域问题 sizeof #include usingnamespace std ; 1) 如果相邻位域字段的类型相同,且其位宽之和小于类型的sizeof 大小,则后面的字段将紧邻前一个字段存储,直到不容纳为止;2) 如果相邻位域字段的类型相同,但其
7、位宽之和大于类型的sizeof 大小,则后面的字段将从新的存储单元开始,其偏移量为其类型大小的整数倍;注意:这里的位宽之和与类型的比较中,类型的大小指的是位数,比如 int 为32, char 为8, short int为16 struct chara1:2; chara2:4; chara3:2; A; /1 struct chara1:6; chara2:4; chara3:2; B ; /2 struct inta1:2; inta2:4; inta3:2; C ; /4 3) 如果相邻的位域字段的类型不同,则各编译器的具体实现有差异, VC6采取不压缩方式,Dev-C+采取压缩方式;s
8、truct chara1:6; inta2:4; chara3:2; D ; /12 4) 如果位域字段之间穿插着非位域字段,则不进行压缩;struct chara1:6; inta2; chara3:2; E ; /12 5) 整个结构体的总大小为最宽基本类型成员大小的整数倍。struct chara1:6; doublea2; chara3:2; F ; /24 voidmain( void ) cout sizeof ( A) ; cout sizeof ( B) ; cout sizeof ( C) ; cout sizeof ( D) ; cout sizeof ( E) ; cou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年程序员面试宝典第二部分 2022 程序员 面试 宝典 第二 部分
限制150内