第1页共3页嵌入式软件工程师笔试题姓名:专业:联系方式:一、填空题1、如下图所示,属于非门电路的是,与门电路的是,或门电路的是。cab2、int型数据0XFFF6表示成十进制为-103、已知某8位单片机P1.4端口为输出IO口,现用P1.4口做蜂鸣器开关控制,即输出高电平蜂鸣器鸣叫,输出低电平蜂鸣器关闭。P1端的输出寄存器为P1OUT请补充完成下面宏定义:#defineBUZZ_PIN4//蜂鸣器管脚定义#defineBUZZ_ON//蜂鸣器鸣叫#defineBUZZ_OFF//蜂鸣器关闭4、程序中宏定义#defineS(a,b)a*b,若定义intdata;且命令data=S(3+1,3+4)的值为105、以下程序数据结果是9,11,110intmain(void){inta,b,c,d;a=9;b=a++;c=++a;d=10*a++;printf(b,c,d:%d,%d,%d,b,c,d);return0;}6、下列程序的输出结果是26#includestdio.hintmain(void){inta[5]={2,4,6,8,10},*p;第2页共3页p=a;printf(%d,*(p));printf(%d\n,*(p+2));}二、简答题1、C语言中如何防止头文件filename.h被重复引用,请给出具体代码#ifndef_FILENAME_H_#define_FILENAME_H_//声明#endif2、当上电时单片机没有运转,请列出可能产生的原因,并给出排除方法。参考,只要可能导致系统不运行原因都可给分按照以下顺序检测1)万用表检测VCC电压是否正常。2)检测单片机复位脚电压是否正常。3)可用示波器检测晶振是否起振。4)代码是否烧录成功,重新烧录。3、说明关键字static的作用1)声明静态局部变量:在函数体内,用static声明的变量为局部静态变量。静态局部变量只有在初次运行时进行初始化,变量存在与静态变量区,静态局部变量的值整个代码运行器件都能保留不被释放。2)声明静态全局变量:针对某一源文件的以static声明的文件级变量作用域只限于文件内(只在文件内可见)。3)声明静态函数:一个被声明为静态的函数只可被这一模块内的其它函数调用。这个函数被限制在声明它的模块的本地范围内使用。第3页共3页三、程序题1、将一个长度为32bit的long型数据使用联合体方法进行大小端切换,即四字节由高到底互换位置。//函数名如下:voidChangeEndian(longindata,longoutdata)//函数输入:一个long型参数//函数输出:大小端切换后的long型数据voidChangeEndian(longindata,longoutdata){unsignedchari;unionULoHex{unsignedlonglongdata;unsignedcharhexdata[4];};unionULoHexpdata1,pdata2;pdata1.longdata=indata;for(i=0;i4;i++){pdata2.hexdata[i]=pdata1.hexdata[3-i];}outdata=pdata2.longdata;}