还剩5页未读,继续阅读
文本内容:
考试地点考试日期考生姓名考生性别考生年龄证件类型证件号码嵌入式工程师考试试卷考试成绩
一、单项选择题(本大题共30小题,每小题2分,共60分)
1、完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为(B).A.编译、汇编、链接、运行B.预编译、编译、汇编、链接C.汇编、编译、链接、运行D.预编译、编译、链接、运行
2、C语言程序编译与链接时(D)A.不会修改源程序结构、所有需要资源均被链接进可执行文件B.会修改源程序结构、所有需要资源均被链接进可执行文件C.不会修改源程序结构、并非所有需要资源均被链接进可执行文件D.会修改源程序结构、并非所有需要资源均被链接进可执行文件
3、常数的书写格式决定了常数的类型和值,0x1011是(C)A.8进制整型常量B.字符常量C.16进制整型常数D.2进制整型
4、定义以下函数时,则函数返回值的类型为(C)addintalongb{floatc;c=a+b;returnc;}A.voidB.intC.floatD.long
5、执行下列程序inta
[3]
[3]={{1},{2},{3}};intb
[3]
[3]={1,2,3};main{printf″﹪d\n″,a
[1]
[0]+b
[0]
[0];}后输出的结果是(D)A.0B.1C.2D.
36、在函数内定义变量时,存储类型符可省略的是(A)A.autoB.staticC.externD.register
7、若有语句int*point,a=4;和point=a;下面均代表地址的一组选项是(D)Aa,point,*aB*a,a,*pointC*point,*point,aDa,*point,point
8、执行下列程序#defineFy15y#definePRINTaprintf(“﹪d”,a)main{PRINTF2;}后输出的结果是(A)A.3B.
3.5C.14D.
7.
59、将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是(C)A.2和2B.2和5C.5和2D.5和
510、在文件使用方式中,字符串″wb″表示(D)A.打开一个已存在的二进制文件,只能读取数据B.打开一个文本文件,只能写入数据C.打开一个已存在的文本文件,只能读取数据D.打开一个二进制文件,只能写入数据
11、设floata=2b=4c=3;,以下C语言表达式与代数式a+b+c计算结果不一致的是(B)A.a+b*c/2B.1/2*a+b*cC.a+b*c*1/2D.c/2*a+b
12、为了向二进制文件尾部增加数据,打开文件的方式应采用(A)A.″ab″B.″rb+″C.″wb″D.″wb+″
13、下述程序执行后的输出结果是()#includemain{intx=f;printf%c\na+x-a+1;}A.gB.hC.iD.j
14、C语言中,下列运算符优先级最高的是(B)A.!B.%C.D.==
15、数组定义为“inta
[4];”,表达式(D)是错误的A.*aB.a
[0]C.aD.a++
16、执行语句“k=71;”后,变量k的当前值是()A.15B.31C.3D.
117、定义函数时,缺省函数的类型声明,则函数类型取缺省类型为(D)A.voidB.charC.floatD.int
18、若main()函数带参数,参数个数最多是(C)A.0B.1C.2D.
319、若有宏定义#defineMODx,yx%y则执行以下语句后的输出结果是()inta=13,b=94;printf″%d\n″,MODb,a+4;A.5B.7C.9D.
1120、下列各个错误中,哪一个不属于编译错误()A.改变x原值3为5,写作“x==5;”B.花括号不配对C.复合语句中的最后一条语句后未加分号D.变量有引用、无定义
21、下列程序段运行后,x的值是()a=1;b=2;x=0;if!--ax--;if!bx=7;else++x;A.0B.3C.6D.
722、设#defineN3#defineYnN+1*n则表达式2*N+Y5+1的值是()A.42B.48C.54D.出错
23、若定义了charch[]={″abc\0def″},*p=ch;则执行printf″%c″*p+4;语句的输出结果是(C)A.defB.dC.eD.
024、下列转义字符中错误的是(A)A.′\000′B.′\14′C.′\x111′D.′\2′
25、算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为(B)A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算
26、设#defineN3#defineYnN+1*n则表达式2*N+Y5+1的值是(B)A.42B.48C.54D.出错
27、表达式strcmp“
3.14”,“
3.278”的值是一个(B)A.非零整数B.浮点数C.0D.字符
28、设struct{shorta;charb;floatc;}cs;则sizeofcs的值是(D)A.4B.5C.6D.
729、若变量已正确定义,表达式j=3,j++的值是(B)A.3B.4C.5D.
030、C语言中运算对象必须是整型的运算符是(A)A.%B./C.!D.**
二、填空题(本大题共3小题,每小题4分,共12分)
31、初始化值是618的无符号长整型变量a的定义形式为(unsignedlonga=618;)
32、若chara=‘a’;intb=10;floatc=
0.5;doubled=
1.25;则表达式a*b+c-d的值是什么类型(double)
33、设fork=0;k0;k++++k;则该循环共执行(无限)次
三、简答题(本大题共10小题,每小题6分,共60分)
34、static全局变量与普通全局变量有什么区别?区别static变量存储在静态存储区,而普通变量存储在动态存储区;static局部变量与普通局部变量有什么区别?区别static变量在调用结束后其值被存储,而普通局部变量在调用结束后被清除;static函数与普通函数有什么区别?static函数只能在本函数模块中使用,其他模块不可以对其调用或修改,而普通函数相反;
35、什么是指针?指针变量和指针所指向的变量的区别和联系是什么?地址就是指针;区别指针变量是存放地址的变量,而指针所指向的变量是存放数据的变量;联系通过指针变量可以找到它所指向的变量,进而找到变量中所存放的数据
36、函数和宏各自有什么优缺点?函数可以实现程序模块化,是程序结构清晰明了,但在修改变量或数据是不方便;宏可以是程序语句简单明了,在修改变量或数据是也很方便,但不能使程序结构跟清晰
37、C程序头文件中有时会有#ifndef、#define、#endif指令,其作用是什么?#ifndef表示条件满足宏定义;#define条件满足的宏定义#endif条件满足的宏定义结束
38、已知一个数组table,用一个宏定义,求出数据的元素个数sizeoftable是数组空间的长度sizeof
(0)是该数组一个存储单元的长度要求数组里面有多少空间自然是要除的.
39、如何判别一个数是unsignedinta;unsignedintb;printf%d%d\na=0~a=0b=0~b=0;
40、解二次方程:a*x*x+b*x+c#includestdio.h#includemath.hintmain{intabcm;doublex1x2n;//解为double类型printf请输入ax2+bx+c=0中的abc:\n;scanf%d%d%dabc;//输入参数m=b*b-4*a*c;ifm0printf方程无解;elsen=sqrtdoublem;//对m进行强制类型转换为double,因为接为doublex1=-b-m/2*doublea;x2=-b+m/2*doublea;printfx1=%.2lfx2=%.2lf\nx1x2;return0;}
41.用两个栈实现一个队列的功能?实现方式一,具体队列入列栈A入栈;举例将入列,从栈顶到栈底依次为DCBA;队列出列判断栈元素个数是否为1,如为真,弹出;如为假,栈A所有元素出栈POP,压入栈B;栈B栈顶元素POP;栈B所有元素压入栈A举例栈A弹栈,栈B压栈,栈B从栈顶到栈底依次为ABCD;将栈顶元素A弹栈,将剩余元素压回栈A;栈A从栈顶到栈底依次为BCD;实现方式二,具体队列入列判断栈元素个数是否为1,如为真,弹出;如为假,栈A所有元素出栈POP,压入栈B;压入新元素到栈A;栈B所有元素压栈入栈A队列出列栈A出栈;;结束,总结实现了队列的入队和出对操作
42、多态类中的虚函数表是Compile-Time,还是Run-Time时建立的使用虚函数是运行时多态,使用函数重载是编译时多态
43、写一语句实现x是否为2的若干次幂的判断#includestdio.hintmain{intx;scanf%dx;ifxx-1==0printf是2的幂;elseprintf不是2的幂;return0;}
四、单片机基础题(共3小题,每小题6分,共18分)
44、什么叫中断?中断通常可以分为哪几类?计算机采用中断有什么好处?中断就是终止处理器正在执行的任务而去做另一项工作;分类定时器中断,外部中断,软中断等;好处1计算机能跟好的利用自身资源,2实时有效地处理任务才,3有效的处理阻塞的进程
45、简述单片机内部构造一般有哪几部分组成?以你熟悉的单片机为例简述一个可以工作单片机最小系统包括哪些外围电路内部构造ALU寄存器A,B,PSW,数据总线,控制总线,地址总线等;以51为例最小系统包含晶振电路,复位电路等
46、已知某一单片机系统有3个按键组成,但需实现5项功能,设计你所能想到的解决方案,并作出详实的说明假设我做一个万年历的菜单程序,三个按键设为k1k2k3;菜单里只有两个项目温度检测和时间显示;K1确定选择是温度还是时间显示,K2K3是上下键的选择;假设现在进入时间项目,K1又是选择键光标闪烁在要修改的位置,K
2、K3分别是加、减数据的功能;设定好时间后再按K1退出设定程序。