有以下程序 int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; .有以下程序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); }程序输出A)0,1,2,0 B) 0,0,0,3 C)1,1,2,0 D)编译有错请告诉我哪里有编
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/03 15:39:51
![有以下程序 int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; .有以下程序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); }程序输出A)0,1,2,0 B) 0,0,0,3 C)1,1,2,0 D)编译有错请告诉我哪里有编](/uploads/image/z/1582044-60-4.jpg?t=%E6%9C%89%E4%BB%A5%E4%B8%8B%E7%A8%8B%E5%BA%8F+int+a%3D0%2Cb%3D0%2Cc%3D0%2Cd%3D0%3B+if%28a%3D1%29+b%3D1%3Bc%3D2%3B+.%E6%9C%89%E4%BB%A5%E4%B8%8B%E7%A8%8B%E5%BA%8Fmain%28%29+%7B+int+a%3D0%2Cb%3D0%2Cc%3D0%2Cd%3D0%3B+if%28a%3D1%29+b%3D1%3Bc%3D2%3B+else+d%3D3%3B+printf%28%E2%80%9C%25d%2C%25d%2C%25d%2C%25d%5Cn%E2%80%9D%2Ca%2Cb%2Cc%2Cd%29%3B+%7D%E7%A8%8B%E5%BA%8F%E8%BE%93%E5%87%BAA%EF%BC%890%2C1%2C2%2C0+B%29+0%2C0%2C0%2C3+C%291%2C1%2C2%2C0+D%29%E7%BC%96%E8%AF%91%E6%9C%89%E9%94%99%E8%AF%B7%E5%91%8A%E8%AF%89%E6%88%91%E5%93%AA%E9%87%8C%E6%9C%89%E7%BC%96)
有以下程序 int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; .有以下程序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); }程序输出A)0,1,2,0 B) 0,0,0,3 C)1,1,2,0 D)编译有错请告诉我哪里有编
有以下程序 int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; .
有以下程序
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);
}
程序输出
A)0,1,2,0 B) 0,0,0,3 C)1,1,2,0 D)编译有错
请告诉我哪里有编译错误
有以下程序 int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; .有以下程序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); }程序输出A)0,1,2,0 B) 0,0,0,3 C)1,1,2,0 D)编译有错请告诉我哪里有编
if(a=1) b=1;c=2;
这一行有问题
if和else之间永远只能有一条语句,而b=1;c=2;是两条语句!
c语言一条语句可以写在多行,多条语句也可以写在一行,关键是就分号,一个分号到上一个分号(或者是{,左半花括号)之间的内容都被认为是一条语句
所以想在if和else之间执行多条语句的时候,必须用花括号{},使多条语句组成一条复合语句.
如果把b=1;c=2;改为b=1,c=2;就可以编译通过了,它的结果是1,1,2,0
原因是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后的语句,所以最后结果会是0,0,0,3
再进一步,如果把if(a=1)改为if(a==1),那么程序执行的时候,判断a是否等于1,若等于则给bc赋值,否则给d赋值,这里a==0,因此执行else后的语句,结果跟前一种情况一样,会是0,0,0,3