C语言选择题

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

第141题. 若 int x=12;表达式 x >> 2的值是()
正确选项:
解析:>>右移运算符,正数右移高位补0,每右移一位等价除以2。12二进制1100,右移两位变成0011十进制3。x>>2只是表达式运算,不会改变变量x本身。
第142题. C语言中,函数return语句描述正确的是()
正确选项:
解析:执行return直接终止当前函数。void函数可以写return;不带返回值,不能return 0。return一次只能返回一个值;return可以写在函数任意位置,不一定写末尾。
第143题. 执行 char *p="program";,下面操作合法的是()
正确选项:
解析:"program"字符串字面量存只读常量段,不允许修改内容。A、B、D尝试修改只读内存运行崩溃。p是指针变量,可以修改指针本身指向,让p指向另外字符串"test"。
第144题. 下面哪一个运算符优先级最高()
正确选项:
解析:小括号()优先级最高,可以强制改变运算顺序。其次算术运算符,之后逻辑运算符,赋值运算符优先级非常低,几乎总是最后执行。复杂表达式多用括号,避免记错优先级。
第145题. 若 int a=1,b=3,c=5;,表达式(a运算结束c的值()
正确选项:
解析:||逻辑或短路,左边a
第146题. 32位编译器下,char *p; sizeof(p)结果为()
正确选项:
解析:32位环境所有类型指针统一占4字节;64位编译器指针占8字节。不管是char*、int*、struct*,指针变量本身占用字节数一样,区别是解引用后访问数据大小。
第147题. 执行 int num; num = 022; num十进制值为()
正确选项:
解析:数字0开头代表八进制。022等于2*8 + 2 = 18。注意不要当成十进制22。八进制数字只能0‑7,写028直接编译报错。
第148题. C语言,关于实参描述错误的是()
正确选项:
解析:C默认值传递,形参只是实参拷贝副本,修改形参不会影响外面实参。想要修改外部实参,需要传递变量地址(指针)。实参可以写常量,例如 func(100)。
第149题. 下面关于fgets函数说法正确的是()
正确选项:
解析:fgets是安全读取一行函数。读取成功会把回车换行'\n'一并读入缓冲区,末尾自动追加'\0'。参数限制读取最大字符数,防止缓冲区溢出,用来替代废弃的gets。
第150题. 执行 int x; for(x=0;x<5;x++); printf("%d",x);输出()
正确选项:
解析:for后面带分号,循环体为空语句。x从0到4满足条件,每次执行x++。当x=5条件x<5不成立退出循环,输出x等于5。多余分号是考试经典陷阱。