#include"stdio.h"void 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);}程序运行后的输出结果是()A.1,2,3 B.1,3,2 C.1,3,3 D.3,2,1课本
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 19:42:30
![#include](/uploads/image/z/8356789-37-9.jpg?t=%23include%22stdio.h%22void+main%28%29%7Bint+a%3D1%2Cb%3D2%2Cc%3D3%2Cd%3D0%3Bif%28a%3D%3D1%26%26b%2B%2B%3D%3D2%29if%28b%21%3D2%7C%7Cc--%21%3D3%29printf%28%22%25d%2C%25d%2C%25d%5Cn%22%2Ca%2Cb%2Cc%29%3Belse+printf%28%22%25d%2C%25d%2C%25d%5Cn%22%2Ca%2Cb%2Cc%29%3Belse+printf%28%22%25d%2C%25d%2C%25d%5Cn%22%2Ca%2Cb%2Cc%29%3B%7D%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E5%90%8E%E7%9A%84%E8%BE%93%E5%87%BA%E7%BB%93%E6%9E%9C%E6%98%AF%EF%BC%88%EF%BC%89A.1%2C2%2C3+B.1%2C3%2C2+C.1%2C3%2C3+D.3%2C2%2C1%E8%AF%BE%E6%9C%AC)
#include"stdio.h"void 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);}程序运行后的输出结果是()A.1,2,3 B.1,3,2 C.1,3,3 D.3,2,1课本
#include"stdio.h"
void 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);
}
程序运行后的输出结果是()
A.1,2,3 B.1,3,2 C.1,3,3 D.3,2,1
课本上说算术运算符的优先级>关系运算符,++是算术运算符,==是关系运算符.那么if(a==1&&b++==2)中的b++==2应该是先执行b++,再判断是否==2.但是答案说先判断b++==2,它成立,之后b=b+1...
#include"stdio.h"void 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);}程序运行后的输出结果是()A.1,2,3 B.1,3,2 C.1,3,3 D.3,2,1课本
你说的运算符的优先级关系是正确的
但是你对++运算符的理解是错误的
b++是先使用b的值,使用完成后再让b的值加1
按照优先级顺序
if(a==1&&b++==2)等同于if(a==1&&(b++)==2)
按照++运算符的定义,(b++)==2等价于if(b==2)b=b+1;这两个语句
执行b++==2 先执行b++ 就是先取b现在的值,题中是2,判断b是否等于2
题中成立,之后就使b=b+1