有以下程序: main() {int a=0,b=0,c=0,d=0; if (a=1) {b=1;c=2;} else d=3; printf (%d,%d,%d,%d\n,a,b,

main() {int a=0,b=0,c=0,d=0; if (a=1) {b=1;c=2;} else d=3; printf (%d,%d,%d,%d\n,a,b,c,d);

答案应该是编译有误,因为if只能管到第一个分号的句子,而else出现在第三个分号的句子中,也就意味着这个else没有与之搭配的if,所以会出现编译有误的现象。楼主可以自行运行之。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-11
1120,if括号中已经将1赋值给a并且括号整体也为1,执行if语句,所以bc值改变而d不变依然是0
第2个回答  2020-06-22
编译有误这个下面的else和上面的if根本就配不上队啊,else就报错了本回答被网友采纳
第3个回答  2018-03-06
答案是编译有误,楼上已经说得比较对了,此时的if判断肯定是成立的,因为是a=1,而不是a==1.
第4个回答  2013-03-09
输出 0,0,0,3

有以下程序 int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; ...
原因是if(a=1)是先给a赋值,然后判断a的值,非0则执行if后紧跟的语句,若为0则执行else后跟的语句,这里给a赋值为1,非0,因此执行给b,c赋值的语句,所以结果是1,1,2,0 进一步,如果把if(a=1)改为if(a=0),程序执行流程跟刚才说的一样,但是由于a值为0,因此执行else后的语句,所以最后...

C语言if else
main(){int a=0,b=0,c=0,d=0;if(a=1) {b=1;c=2;}\/\/注意这里的a=1是赋值语句,所以是永真,因此执行b=1;c=2不执行else else d=3;printf("%d,%d,%d,%d\\n",a,b,c,d);\/\/a=1,b=1,c=2,d=0;} 或者改成 if(a=1) b=1,c=2;也可以。这里是逗号表达式。只有一个...

...<stdio.h> main() { int a=0,b=0,c=0,d=0; (a++ && b++) ? c++...
所以a=1,b=0,c=0,d=1。所以答案选D

...Main() { int a=1,b=2,c=3,d=0; if(a= =1 &&b++= =2) if(b!=2...
源程序:include <stdio.h> main(){ int a=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2 || c--!=3)printf("%d,%d,%d\\n",a,b,c);else printf("%d,%d,%d\\n",a,b,c);else printf("%d,%d,%d\\n",a,b,c);} 输出: 1,3,3 【分析】if(a==1&&b++==2) *\/...

...main() { int a=3,b=0,c=0; if(a==b+c) printf(
这题咋答?因为代码中有汉字符号,所以过不了编译,应该选A;如果没有这些错误,就应该选D。

...main() { char a='本金',b='年数',c='年利率',d='应得利息'e='实...
main() {int x ;printf(“%d\\n”,(x=4*5,x*2,x+20));}A)20B)40C)60D)809.执行以下程序后的输出结果是( )。#include "stdio.h"void main(){int i = 0, j = 0, a = 6;if ((++i0)||(++j0)) a ++;printf("i=%d, j=%d, a=%d\\n", i, j, a);}A)i=0, j=0, a=...

...main() { int a=4,b=3,c=5,t=0; if(a<b)t=a;a=b;b=t; if(a<c)t...
这是比较大小,从a,b,c,三者中选择最大的。

用c语言如何编写一个比较两个数大小的程序
代码如下:include <stdio.h> int main(){ int a=0,b=0;scanf("%d %d",&a,&b);if(a>b)printf("%d > %d\\n",a,b);else if (a<b)printf("%d < %d\\n",a,b);else printf("相等\\n");return 0;} 分析:定义两个变量,然后输入它们,用if判断它们的大小然后用输出语句输出结果...

...main() { int a = 1,b = 2; printf ("%d\\n",a=a+); }
1.a= b+ c 所以表达式值为非零,为真,执行printf ("###\\n");2.自增运算符后缀,所以先引用,后自增,m为2,m>2为假,然后m自增一值为3,执行else部分,m+2=5 7.注意是x=2 ,是=,赋值号,也就是x被赋值为2,表达式非零,为真执行y= y+2;8.i为10,所以到case 10部分i+=1;i值为11...

...main() {int a,b,c; a=1;b=3;c=5; printf(“%d,%d\\n”,(++a,b++...
结果是3,10啊。这主要是由于自增操作符++前置还是后置决定的,比如说++a,就是先自增再使用,而a++就是说先使用再自增。执行printf(“%d,%d\\n”,(++a,b++),a+b+c)这条语句的过程中,a=2(就是说已经自增了),b=3(还没自增)。等这条语句执行完之后,那么a=2 b=4~...

相似回答