C语言选择题

练习二级选择题,点击选项即可查看结果

第151题. 表达式 0x12 + 012 + 12十进制结果为()
正确选项:
解析:0x12十六进制=18;012八进制=10;12十进制=12;总和18+10+12=46。0x开头十六进制,0开头八进制,普通数字十进制,注意不同进制换算。
第152题. C语言,auto关键字描述正确的是()
正确选项:
解析:auto代表自动局部变量,函数内部普通局部变量默认auto,平时全部省略。auto变量存栈内存,不会自动初始化,初始值随机垃圾。static局部变量才存静态区。
第153题. 若 int a=‑7;表达式a%3结果为()
正确选项:
解析:C语言取模%运算,余数符号和被除数保持一致。‑7除以3商‑2,余数‑1。记住规则:被除数为负,结果余数也是负数,这点和数学上取模不一样。
第154题. 下面哪一个是合法十六进制常量()
正确选项:
解析:C语言十六进制以0x或者0X开头,后面0‑9、A‑F/a‑f。0XAB合法。12h是汇编写法;0AB是非法八进制;#AB不属于C常量格式。
第155题. 执行 int a=2,b=4; a = b>3 ? ++a : ++b;变量a最终等于()
正确选项:
解析:条件b>3成立,执行++a;a自增,2变成3,赋值给a。冒号后面++b不会执行,b保持4不变。三目运算符只会执行其中一个分支表达式。
第156题. C语言中,fopen返回值类型是()
正确选项:
解析:fopen返回FILE*文件指针。打开失败返回NULL。FILE是结构体类型,代表文件流。操作完文件需要调用fclose(fp);关闭文件,防止资源泄漏。
第157题. 下面对于指针数组描述正确的是 int *arr[5];()
正确选项:
解析:int *arr[5];[]优先级高于*,arr是数组,数组每一个元素类型int*指针。int (*arr)[5]才是数组指针,二者括号区别一定要分清,二级考试高频考点。
第158题. 执行 int s=0; for(int k=1;k<=4;k++){ if(k==2) continue; s+=k; } s结果为()
正确选项:
解析:k=1 s+=1;k=2遇到continue跳过本次循环累加;k=3 s+=3;k=4 s+=4;s=1+3+4=8。continue跳过本轮循环剩余代码,直接进入下一轮循环条件判断。
第159题. C语言预处理阶段会执行下面哪一项()
正确选项:
解析:预处理做简单文本处理:#include导入头文件,#define宏替换,#ifdef条件编译。语法检查属于编译阶段;生成汇编属于编译;链接生成可执行程序属于链接阶段。
第160题. 若 int a=9,b=2;(double)a / b运算结果是()
正确选项:
解析:(double)a强制把a转换double类型;a变成double,b自动提升double,执行浮点数除法,得到4.5。如果写成(double)(a/b),先整数除法得到4,再转double得到4.0,注意括号位置区别。