c语言选择题一条

来源:百度知道 编辑:UC知道 时间:2024/07/07 00:49:04
4.以下选项中,正确的if-else语句是()

A)if(x!=0)
printf("%d",x)
else
printf("%d",-x);

B)if(x!=0)
{x=x+y;printf("%d",x); }
else
printf("%d",-x);

C)if(x!=0)
x=x+y;printf("%d",x);
else
printf("%d",-x);

D)if(x!=0)
{x=x+y;printf("%d",x)};
else
printf("%d",-x);
为什么是B?

A)if(x!=0)
printf("%d",x)
else
printf("%d",-x); 第一个输出语句后面没有分号;
C)if(x!=0)
x=x+y;printf("%d",x);
else
printf("%d",-x); x=x+y;printf("%d",x); 这一语句应该用{}括起来;
D)if(x!=0)
{x=x+y;printf("%d",x)};
else
printf("%d",-x); {x=x+y;printf("%d",x)};分号应该在 } 前面;

第一个 if下面的printf("%d",x) 最后没有分号。
当if后面有多条语句时要用大括号把它括起来。
而D{x=x+y;printf("%d",x)};多了一个分号

其实c也不能算是错,我就是不让printf("%d",x)在循环体内,怎么了?难道你就能算我是错吗?
B是对的,这点可能没啥争议

选择B

A)if(x!=0)
printf("%d",x) //这里缺少了最后的分号,所以错误
else
printf("%d",-x);

C)if(x!=0)
x=x+y;printf("%d",x); //这里应该用{}将"x=x+y;printf("%d",x);"都括起来,否则if语句的作用范围只是"x=x+y;"这一句
else
printf("%d",-x);

D)if(x!=0)
{x=x+y;printf("%d",x)}; //这一句的最后的}和;