C语言选择题

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

第1题. C语言中,以下叙述正确的是()
正确选项:
解析:C语言程序必须有且仅有一个main函数,程序从main函数第一条语句开始执行。A错误,C程序可以包含多个自定义函数;C错误,程序固定从main开始,不是第一个书写的函数;D错误,C语言允许函数嵌套调用,不允许函数嵌套定义。
第2题. 执行语句 int a=5; a += a -= a * a;,变量a的值为()
正确选项:
解析:复合赋值运算符结合方向为从右向左。第一步计算a*a=25;执行a -=25,a = 5‑25 =‑20;再执行a +=‑20,a =‑20 + (-20) =‑40。
第3题. 下面属于C语言合法标识符的是()
正确选项:
解析:标识符只能由字母、数字、下划线组成,不能以数字开头,不能使用关键字。A以数字开头非法;C包含减号非法;D float是浮点类型关键字,不能用作变量名。
第4题. 若有 int x=3,y=4; printf("%d", x>y ? x++ : y++);,程序输出结果是()
正确选项:
解析:三目运算符,判断条件x>y即3>4结果为假,执行y++。后置自增是先使用变量当前值参与运算,运算结束后变量再加1。所以先输出4,y的值变为5。
第5题. C语言中 double 类型变量所占字节数是()
正确选项:
解析:short占2字节;int、float占4字节;double双精度浮点占8字节。long double的大小依赖编译器与平台。
第6题. printf("%.2f",123.456); 的输出结果是()
正确选项:
解析:%.2f表示保留小数点后2位,输出时执行四舍五入。小数点后第三位数字为6,向高位进位,输出123.46。
第7题. 执行 int a=0; while(a<5){a++;},循环结束后a的值为()
正确选项:
解析:当a等于4时,a<5条件成立,进入循环执行a++,a变成5。回到while判断条件5<5不成立,循环终止,此时a已经是5。
第8题. for(int i=0;i<3;i++){ if(i==1) continue; printf("%d",i); } 的输出结果是()
正确选项:
解析:continue作用是结束本次循环,跳过continue之后的语句,直接进入下一轮循环。i=0输出0;i=1触发continue,printf被跳过;i=2输出2,最终打印02。continue不会终止整个循环。
第9题. 下面不能作为switch括号内表达式的类型是()
正确选项:
解析:switch仅支持整型家族类型:int、short、char、unsigned int等。不支持float、double浮点类型,case后也必须是整型常量。
第10题. int a=2; switch(a){ case 1:printf("A"); case 2:printf("B"); case 3:printf("C"); break; }输出为()
正确选项:
解析:a=2匹配case2,打印B;case2没有break语句,发生case穿透,继续执行case3打印C;遇到break跳出switch,最终输出BC。break用来结束分支,缺少break会顺序向下执行后续case。