《2022年嵌入式软件工程师笔试题 4.pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式软件工程师笔试题 4.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、选择题1: 设 float a=2, b=4, c=3; ,以下 C语言表达式与代数式 (a+b)+c计算结果不一致的是A.(a+b)*c/2 B.(1/2)*(a+b)*c C.(a+b)*c*1/2 D.c/2*(a+b) 参考答案: B,因为 a,b,c三个变量都是浮点数,所以在 B答案中其结果是0,因为在计算1/2是就是 0,如果改成1/2.0就正确了。2: 为了向二进制文件尾部增加数据,打开文件的方式应采用A.abB.rb+C.wb D.wb+参考答案: D 3: 下述程序执行后的输出结果是include main() int x=f; printf(%cn,a+(x-a+1); A
2、.g B.h C.i D.j 参考答案: A 4:C 语言中,下列运算符优先级最高的是A.!B.C. D. 参考答案: A 5: 数组定义为“ int a 4 ; ” ,表达式 ( ) 是错误的。A.*a B.a 0 C.a D.a+ 参考答案: D 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 6: 执行语句“ k=71; ”后,变量 k 的当前值是A.15 B.31 C.3 D.1 参考答案: C 7: 定义函数时,缺省函
3、数的类型声明,则函数类型取缺省类型A.void B.char C.float D.int 参考答案: D 8: 若 main()函数带参数,参数个数最多是A.0 B.1 C.2 D.3 参考答案: C 只知道有定义形式main(int argc,char* argv))9: 若有宏定义: #define MOD(x ,y) x y 则执行以下语句后的输出结果是int a=13,b=94;printf( dn , MOD(b ,a+4) ;A.5 B.7 C.9 D.11 参考答案: B 10: 下列各个错误中,哪一个不属于编译错误A.改变 x 原值 3 为 5 ,写作“ x=5 ;”B.花括号
4、不配对C.复合语句中的最后一条语句后未加分号D.变量有引用、无定义参考答案: A 11: 下列程序段运行后, x 的值是 ( ) a=1;b=2;x=0; if(!( - a)x - ; if(!b)x=7;else +x; A.0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - B.3 C.6 D.7 参考答案: A 12: 设#define N 3 #define Y(n) (N+1)*n) 则表达式2*(N+Y(5+1)
5、的值是A.42 B.48 C.54 D.出错参考答案: B Y(5+1) 传递过去的应该是6,而不是简单的把5+1 给替换掉13: 若定义了char ch=abc0def ,*p=ch; 则执行 printf(%c ,*p+4);语句的输出结果是A.def B.d C.e D.0 参考答案: C 14: 下列转义字符中错误的是A.000 B.14 C.x111 D.2 参考答案: C error C2022: 273 : too big for character 15: 算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值
6、运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算参考答案: B 16: 设#define N 3 #define Y(n) (N+1)*n) 则表达式2*(N+Y(5+1) 的值是A.42 B.48 C.54 D.出错名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 参考答案: B 17: 表达式 strcmp( “ 3.14 ” , “ 3.278 ” ) 的值是一个A.非零整数B.浮点数C.0 D.字符参考
7、答案: A 18: 设 struct short a; char b; float c; cs; 则 sizeof(cs)的值是A.4 B.5 C.6 D.7 参考答案: D 字节对齐的话应该是8 19: 若变量已正确定义,表达式( j=3 , j+ )的值是A.3 B.4 C.5 D.0 参考答案: A 20:C 语言中运算对象必须是整型的运算符是A.% B./ C.! D.* 参考答案: A 简答题21: 打印一个N*N 的方阵, N 为每边字符的个数( 3 N20 ) ,要求最外层为“X” ,第二层为“ Y” ,从第三层起每层依次打印数字0, 1,2,3,. 例子:当N =5,打印出下面
8、的图形:X X X X X X Y Y Y X X Y 0 Y X X Y Y Y X X X X X X 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 22: 谈谈 COM 的线程模型。然后讨论进程内/ 外组件的差别。23: 多态类中的虚函数表是Compile-Time ,还是 Run-Time 时建立的 ? 参考答案:虚拟函数表是在编译期就建立了, 各个虚拟函数这时被组织成了一个虚拟函数的入口地址的数组 . 而对象的隐藏成
9、员- 虚拟函数表指针是在运行期- 也就是构造函数被调用时进行初始化的,这是实现多态的关键. 24:#include void main() int c; while (c=getchar()!= n ) switch(c - 2 ) case 0: case 1:putchar(c+4);break; case 2:putchar(c+4);break; case 3:putchar(c+3);break; default:putchar(c+2);break; printf( n ); 运行时输入: 2473 ,输出结果:参考答案: 6897 VC+6.0 测试过25: 用两个栈实现一个队列
10、的功能?参考答案:设 2 个栈为 A,B, 一开始均为空. 入队 : 将新元素push 入栈 A;出队 : (1) 判断栈 B是否为空;(2) 如果不为空,则将栈A中所有元素依次pop 出并 push 到栈 B;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - (3) 将栈 B的栈顶元素pop 出;这样实现的队列入队和出队的平摊复杂度都还是O(1), 26: 写一语句实现x 是否为 2 的若干次幂的判断。参考答案: !(X)&(X
11、-1) 27: 解二次方程 :a*x*x+b*x+c int Quadratic( double a,double b,double c,double& x1,double& x2); 返回值:解的个数28: 如何判别一个数是unsigned 。参考答案 ; #define issignal(x) (x=0 & x=0) ? 1:0) /为 1 是无符号为 0 有符号29: 执行下述程序的输出结果是 ABCDEFCDEFEF 。#include char b=ABCDEF; main() char *bp; for (bp=b;*bp;bp+=2) printf(%s,bp); printf(n); 30: 已知一个数组table ,用一个宏定义,求出数据的元素个数。参考答案: #define NTBL #define NTBL (sizeof(table)/sizeof(table0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -
限制150内