嵌入式软件测试题(C语言)V1.0

嵌入式软件测试题(C语言)V1.0 以下50个选择题,每题都可能存在一个或多个正确答案,请找出所有正确答案填在每题对应的括号中。多选、错选、漏选或不选,均不得分。每题2分。总计100分。为了缩短篇幅和节约大家的时间,试题中的代码可能不是完整的代码,答题时请不用考虑代码是否具有可编译和可执行性,仅分析代码本身即可。 1、定义一个数组int a[2] = {1,3},那么a的值是(   D     )A、0;  B、1;  C、3;  D、不能确定; 2、有如下代码:float a = 123.45678;if(123.45678 == a){  printf(“a = 123.45678”);}else if(123.45678 > a){  printf(“a > 123.45678”);}else if(123.45678 < a){  printf(“a < 123.45678”);}else{  printf(“不能确定”);} 请问上述代码输出的结果有可能是(   ABC     )A、a = 123.45678;  B、a > 123.45678;  C、a < 123.45678;  D、不能确定; 3、在一台32位的PC上运行下述代码,结果可能是(   C     )       int *a = NULL;       char b[8] = {0};       printf(“sizeof(a) = %d,sizeof(b) = %d”, sizeof(a),sizeof(b)); A、sizeof(a) = 2,sizeof(b) = 2;     B、sizeof(a) = 4,sizeof(b) = 4;C、sizeof(a) = 4,sizeof(b) = 8;     D、sizeof(a) = 8,sizeof(b) = 8; 4、下述代码运行后,哪些值可以是变量X的值(   AC     )       X = Y ^ 0x80;       X = X & 0xF0;A、0xF0;   B、0x0F;   C、160;     D、112 5、下述代码运行后,哪些值可以是变量R的值(   BCD     )       int a;       ……  /*此处忽略若干代码*/       R = (a+1) % 0xABCD; A、0xABCD;            B、0;         C、256;     D、1024; 6、代码“const int a[2] ={5, 2};”中const的作用是(   BD     )A、修饰a;                     B、修饰{5, 2};C、说明a是只读的;    D、说明数组a中存储的内容是只读的; 7、关键字“NULL”的含义是(   C     )A、未初始化的指针;    B、未定义的指针;C、空指针;                    D、整型的“0”; 8、下述代码可能的作用是(    C    )              int a,b;              ……  /*此处忽略若干代码*/              a = a ^ b;              b = a ^ b;              a = a ^ b; A、求a、b的和;          B、判断a、b的大小关系;C、交换a、b的值;      D、加密a、b的值; 9、如果在一个大字节序(大端)的32位系统中定义变量:“unsigned long testCpuArchitecture = 0x12345678;”,那么“*(unsigned char*)&testCpuArchitecture”的值应该是(    A    )A、0x12;   B、0x34;   C、0x56;   D、0x78 10、在一个32位的系统中有下述代码,则sizeof(A_BIT_T)和sizeof(bitMap)的值分别是(   B     )typedef unsigned char uint8;typedef struct{       uint8 bit : 1;}A_BIT_T; A_BIT_T bitMap[16] = {0}; A、1,2;   B、1,16; C、4,2;   D、4,16; 11、一个指针的定义为:“char  *ptr = NULL;”,则下列表述正确的有(    AB    )A、指针所指向的内容可以被修改;B、指针本身的值是可以被修改的;C、指针本身所在的地址可以被修改;D、指针只能指向一个存放了字符的存储位置; 12、一个函数如果没有“return”语句,那么这个函数将(    D    )A、一直无限循环运行;       B、可能在任意一句语句处退出;C、随时可能崩溃;        D、运行完成后退出; 13、宏定义的特点有(   ABD     )A、可以被多个函数调用;          B、可能存在副作用;C、运行效率比定义函数高;      D、多次调用后占用的代码存储空间比函数多; 14、在一个“while”循环中,允许使用“break”和“continue”的数量是(   D     )A、两者只能使用一个,每个只能使用一次;     B、break可以使用多次,continue只能一次;C、break只能使用一次,continue可以多次;    D、两者均不限次数; 15、以下是static关键字的作用的有(    ABC    )A、修饰局部变量,表示此变量只能在当前函数内部被访问,其存储在堆和栈之外;B、修饰函数,表示此函数只能在当前文件内部被访问;C、修饰全局变量,表示此变量只能在当前文件内部被访问;D、修饰函数的入参,表示此入参是只读的,不可被修改; 16、下列代码运行结束后,i的值是(   B     )       int i = 1;       switch(i){  case 0:         i++;         break;  case 1:         ++i;  case 3:         i++;         break;case 4:         i++;  default:         ++i;} A、2             B、3             C、4             D、5 17、在一个32位的系统中有如下定义,则sizeof(U)的值是(    C    )       union    {                     char c;                     char *p;}U;A、1             B、2             C、4             D、8 18、“野指针”是(    BD    )A、未定义的指针;                             B、没有被赋值的指针;C、指向的地址确定,但其中的内容是未知的;  D、指向的地址是不确定的指针; 19、头文件中的ifndef…define…endif的作用是(    B    )A、说明这是一个头文件;                       B、防止被重复包含;C、优化头文件,使其占用更少的存储空间;D、定义头文件的名称,以便被引用; 20、下列代码,哪几行是编译时有错误或运行时会发生异常的(   C     )1:char a;2:char *str=&a;3:strcpy(str,"hello");4:printf(str); A、第1行;             B、第2行;             C、第3行;             D、第4行; 21、为什么将结构体数据传递到函数内部时,建议函数的入参使用结构体指针而不是结构体(   BD     )A、节省堆;      B、节省栈;      C、节省代码量;     D、运行效率更高; 22、在32位的系统中有一个双向链表,每个链表成员存放三个字符信息,则一个链表成员至少需要占用几个字节的存储空间(    C    )A、3;         B、9;         C、12;              D、18 23、可用于实现循环队列的数据结构可以是(    BC    )A、平衡二叉树;     B、数组;   C、双向链表;  D、无冲突HASH表 24、在数据成员个数较多且数据内容较随机的情况下,查找一个成员的平均效率最高的数据结构是(   D     )A、平衡二叉树;     B、数组;   C、双向链表;  D、无冲突HASH表 25、最后进入栈的数据存放在栈的(    A    )A、顶部;   B、中部;   C、底部;   D、可以是任意位置; 26、假设a = 100,b = 1000,则下面两个for循环,哪个效率更高(    A    )甲:       for(i=0; i2;    D、不确定的 42、操作系统中进程“时间片轮转”的作用是(    C    )A、系统进程与应用进程轮流运行;B、高优先级进程与低优先级进程轮流运行;C、同优先级进程间轮流运行;        D、进程与中断轮流运行; 43、跨进程全局资源共享时,可以用哪些方式进行保护(    ABCD    )A、二进制信号量; B、计数制信号量;C、关闭进程调度; D、关闭所有中断; 44、创建一个进程时,必不可少的参数有(    ABC    )A、进程可用的栈深度;              B、进程优先级;C、进程入口函数;               D、进程的终止时间; 45、使用无“优先级继承”机制的内核对象(比如普通二进制信号量)对全局资源进行保护时,可能会导致(    B    ),应该使用互斥锁(mutex)。A、不能有效保护数据完整性;         B、进程优先级翻转;C、进程挂起;                       D、内核崩溃; 46、两个进程间交互信息的方式可以有(    ABC    )A、全局变量;         B、信号量;            C、队列或管道;            D、中断; 47、被挂起(suspend)的进程什么时候才能恢复运行(    B    )A、超时时间到了; B、被另一个进程或中断唤起;C、自动随时唤起; D、等到其它进程都不运行的时候; 48、一个进程的栈空间溢出后可能会导致(    A    )A、系统崩溃;  B、进程挂起;  C、进程被删除;     D、进程被重新启动; 49、如果一个高优先级的进程进入了“死循环”,始终占据CPU不释放,可能会导致(    AB    )A、CPU使用率高;        B、低优先级进程得不到运行; C、中断得不到执行;    D、进程调度器会崩溃; 50、如果一个进程频繁申请动态内存(比如使用malloc)而不释放,可能会导致(    ABD    )A、其它进程申请不到动态内存;     B、本进程申请不到动态内存;C、进程无法切换;               D、动态内存耗尽;

相关内容推荐