#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/11/28 17:06:40
#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