C语言选择题

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

第191题. 下面关于typedef,描述错误的是()
正确选项:
解析:typedef作用是给已经存在的数据类型设置别名,不能定义变量。只是别名,没有产生全新类型。注意区分typedef和#define,typedef是编译器处理,#define是预处理文本替换。
第192题. 表达式 5&&2||0的结果是()
正确选项:
解析:&&优先级高于||。先算5&&2,C语言非0即为真,5和2都非0,逻辑与结果1;之后计算1||0,逻辑或结果1。逻辑运算最终结果只有1(真)或者0(假)。
第193题. 执行int x=‑1; printf("%u",x);输出结果是()
正确选项:
解析:%u是无符号十进制输出。‑1在32位int下,内存全部二进制位为1。当作无符号数解读,就是2^32‑1=4294967295。有符号数用%u打印,直接解读内存二进制,不做符号处理。计算机二级经常考有符号数按无符号输出。
第194题. 下面哪一个不属于C语言的存储类别说明符()
正确选项:
解析:存储类别:auto自动变量、register寄存器变量、extern外部声明、static静态变量。const是类型限定符,用来修饰常量只读,不属于存储类别。
第195题. 有程序片段 int s=0,i; for(i=0;i<5;i++){ if(i==2) break; s+=i; }循环结束s的值()
正确选项:
解析:i=0,s=0;i=1,s=0+1=1;i=2触发break,直接跳出整个for循环,循环终止。s=0+1=1。break直接终止整个循环,和continue不一样。很多考生会把break当成continue。
第196题. C语言中,main函数的return返回值是返回给谁()
正确选项:
解析:main函数返回值交给操作系统,return 0代表程序正常退出;返回非0代表异常终止。操作系统可以捕获main返回值判断程序运行状态。普通函数return返回值给函数调用处。
第197题. 若有 int (*fp)(int);,fp是()
正确选项:
解析:int (*fp)(int); fp是函数指针。括号不可省略,代表fp是指针,指向一个接收int参数,返回int类型的函数。去掉括号int *fp(int)是函数声明,返回int*。函数指针二级常考。
第198题. 执行 printf("%d",sizeof("abc\0def"));输出结果()
正确选项:
解析:"abc\0def"字符串常量,\0只是字符串中间普通转义字符,不会截断字符串常量本身。字符依次a b c \0 d e f,最后系统自动追加字符串结束符\0,总一共8字节。注意:只有%s输出的时候遇到\0停止打印,sizeof统计全部字面量+末尾补的\0。
第199题. 下面关于数组叙述正确的是()
正确选项:
解析:C99标准支持VLA可变长数组,可以用变量指定数组大小;下标必须是整型;数组一旦定义大小固定,不能动态改变;数组名是地址常量,不能被赋值。Dev‑C++默认支持C99可变长数组,二级考试会涉及VLA概念。
第200题. 下面表达式,优先级从高到低排序正确的一组是()
正确选项:
解析:运算符优先级:算术运算(* / +‑)最高,之后关系运算符(> < >= <= == !=),再逻辑与&&,最后逻辑或||。做题遇到混合表达式,要按照优先级和结合性分步计算。