最近的一些面试(笔试)题精选

单片机工程师常见 面试题 单片机面试。

1.写一个标准宏返回两数中较小的一个。

2.解释下列关键字:volatile,reentrant,static,const

3.执行下列程序后:(R0)=_(7EH)=_(7FH)=_MOV R0,#7EH

MOV 7EH,#0FFHMOV 7FH,#40HINC @R0 INC @R0INC @R0

4.while与do{}while;区别。

5.简述TCP/IP四层协议.

6.写个C程序判断CPU是大端(Big_endian)存储还是小端(Little_endian)存储。

7.解释下列Linux基本命令:pwd, ls, cd ,mv, mount.

8.写一个向I2C总线写1byte的函数。9.怎样实现9个按键的检测,画出示意图并写出程序思路。

10.μC/OS-II进程间是怎样通讯的。

11.现有一台主机有4路485输出,每路上面挂了16个终端(16×4),怎样知道每个终端返回的状态(0,1),画出大致流程图。

12.结构体与类的具体区别。

13.面向对象的理解以及类和对象的理解。

下面是几个口头问的问题,没有固定答案,自己发挥。1.你多我们公司了解多少。2.说说你曾经遇到的一个比较难解决的问题的处理方法。3.程序出现BUG,你应该从哪方面入手解决。4. 。。。。

参考答案:1.#define Min(A,B) ((A)<=(B)?(A):(B)) //要注意小心的加上括号。

2.volatile: 用于修饰变量,告诉编译器该变量可能被隐含的该变,因此每次使用时都必须重读。被隐含的改变可能存在于下列三种情况:1). 并行设备的硬件寄存器(如:状态寄存器)

  2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)

  3). 多线程应用中被几个任务共享的变量reentrant: 表示该函数是一个可重入函数。

“可重入函数可以被一个以上的任务调用,而不必担心数据被破坏。可重入函数任何时候都可以被中断,一段时间以后又可以运行,而相应的数据不会丢失。”在Keil C51环境下,纯粹的函数如果不加处理(如增加一个模拟栈),是无法重入的。那么如何让函数成为可重入函数呢?C51编译器采用了一个扩展关键字reentrant作为定义函数时的选项,需要将一个函数定义为可重入函数时,只要在函数后面加上关键字reentrant即可。static:在函数体内修饰变量,表明该变量是静态变量,在模块内声明函数,辨明该函数只能在本模块内调用。const:声明该变量为只读(Read Only)变量.

3.执行后结果:(R0)=7EH(7EH)=02H(7FH)=40H

MOV R0,#7EH……..//(R0)=7EHMOV 7EH,#0FFH……//(7EH)=0FFHMOV 7FH,#40H…….//(7FH)=40HINC @R0…………//(7EH)=(7EH)+1=00HINC @R0…………//(7EH)=(7EH)+1=01HINC @R0…………//(7EH)=(7EH)+1=02H

4.do { } while 型循环至少执行一次。

5.tcp/ip这个协议遵守一个四层的模型概念:应用层、传输层、互联层和网络接口层。网络接口层模型的基层是网络接口层。负责数据帧的发送和接收,帧是独立的网络信息传输单元。网络接口层将帧放在网上,或从网上把帧取下来。互联层互联协议将数据包封装成internet数据报,并运行必要的路由算法。这里有四个互联协议:网际协议ip:负责在主机和网络之间寻址和路由数据包。地址解析协议arp:获得同一物理网络中的硬件主机地址。网际控制消息协议icmp:发送消息,并报告有关数据包的传送错误。互联组管理协议igmp:被ip主机拿来向本地多路广播路由器报告主机组成员。传输层传输协议在计算机之间提供通信会话。传输协议的选择根据数据传输方式而定。两个传输协议:传输控制协议tcp:为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序。用户数据报协议udp:提供了无连接通信,且不对传送包进行可靠的保证。适合于一次传输小量数据,可靠性则由应用层来负责。应用层应用程序通过这一层访问网络。网络接口技术 ip使用网络设备接口规范ndis向网络接口层提交帧。ip支持广域网和本地网接口技术。

6.

int checkCPU( )

{

{

union w

{

int a;

char b;

} c;

c.a = 1;

return(c.b ==1);

}

}解析:采用Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。联合体union的存放顺序是所有成员都从低地址开始存放,面试者的解答利用该特性,轻松地获得了CPU对内存采用Little-endian还是Big-endian模式读写。

7.pwd:查看当前路径ls:列出当前目录下文件cd:进入目录mv:移动文件/目录mount:挂载设备

8.void writebyte(unsigned chardate){unsigned char i,temp;temp=date;for(i=0;i<8;i++){if(temp&0x80)SDA=1;elseSDA = 0;temp=temp<<1;SCL=0;SCL=1;}SCL=0;SDA=1;}

9.

矩阵检测,程序:列置低,检测行线,采用状态机的方式,主程序中定时查询。

10.信号量和邮箱11. 查询每个设备地址,若有响应则返回设备状态,若没有响应则重复发送若干次,仍没有反应则主机记录该设备错误,然后进行下一个设备的查询。12. a.若果是C:结构体不支持成员函数,若是C++则两者均支持。

b.结构体成员默认public,类成员默认private.13.a.一切皆对象,相对于面向过程编程而言提高了代码的可重用性。

面向对象的三个重要特征:封装、继承、多态,提高了系统的灵活性与健壮性

面向对象的中的属性和方法的可访问性提高了程序的安全性,数据调取的多样性.

b.类是对象的抽象,而对象则是类的特列,或者说是类的具体表现形式。

声明: 本文采用 BY-NC-SA 协议进行授权 | 议凡博客转载请注明转自《最近的一些面试(笔试)题精选》

生命不在长而在于好,只要每一次尽力的演示,都值得鼓励与喝采。

最近的一些面试(笔试)题精选

相关文章:

你感兴趣的文章:

标签云: