已知:a=b=c=1且a,b,c均为int型变量,执行以下语句:++a||++b&&++c;则变量a的值是多少,b的是多
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/08/14 08:37:44
已知:a=b=c=1且a,b,c均为int型变量,执行以下语句:++a||++b&&++c;则变量a的值是多少,b的是多少,
已知:a=b=c=1且a,b,c均为int型变量,执行以下语句:++a||++b&&++c;则变量a的值是多少,b的是多少
已知:a=b=c=1且a,b,c均为int型变量,执行以下语句:++a||++b&&++c;则变量a的值是多少,b的是多少
![已知:a=b=c=1且a,b,c均为int型变量,执行以下语句:++a||++b&&++c;则变量a的值是多少,b的是多](/uploads/image/z/1086864-24-4.jpg?t=%E5%B7%B2%E7%9F%A5%EF%BC%9Aa%3Db%3Dc%3D1%E4%B8%94a%2Cb%2Cc%E5%9D%87%E4%B8%BAint%E5%9E%8B%E5%8F%98%E9%87%8F%2C%E6%89%A7%E8%A1%8C%E4%BB%A5%E4%B8%8B%E8%AF%AD%E5%8F%A5%EF%BC%9A%2B%2Ba%7C%7C%2B%2Bb%26%26%2B%2Bc%EF%BC%9B%E5%88%99%E5%8F%98%E9%87%8Fa%E7%9A%84%E5%80%BC%E6%98%AF%E5%A4%9A%E5%B0%91%2Cb%E7%9A%84%E6%98%AF%E5%A4%9A)
1).首先我们来看运算的优先级:a:在这三个运算符中优先级的顺序是++第一,
为单目运算符,结合方式是从右向左;
b:第二个就是区分&&和||了,他们都是双目运算符,
结合方式是从左向右,但是&&的
优先级要高于||;
2).虽然这三个运算符是有优先级的,但是在特殊情况下还不是按其优先级来算的,比如你提问的这题就是典型的例子,会出现短路现象.
3).++a||++b&&++c;中先划分为两个部分++a一部分,++b&&++c为 一部分,即可看成是(++a)||(++b&&++c)先算左边++a,a从1加到2 ;左边逻辑值就是1了,就不需要往下运算了,那么b,c的值就会不变仍然为1.这就是我提到的短路现象.
4).所以最后的结果就是a=2,b=1,c=1;
5)代码如下
#include
main()
{int a,b,c;
a=b=c=1;
if(++a||++b&&++c)
printf("%d,%d,%d\n",a,b,c);
}
6).你可以结合我所说的,在TC或者VC下调试一下;可惜我等级不够,要不然把结果图片也放上去,就这样吧.
为单目运算符,结合方式是从右向左;
b:第二个就是区分&&和||了,他们都是双目运算符,
结合方式是从左向右,但是&&的
优先级要高于||;
2).虽然这三个运算符是有优先级的,但是在特殊情况下还不是按其优先级来算的,比如你提问的这题就是典型的例子,会出现短路现象.
3).++a||++b&&++c;中先划分为两个部分++a一部分,++b&&++c为 一部分,即可看成是(++a)||(++b&&++c)先算左边++a,a从1加到2 ;左边逻辑值就是1了,就不需要往下运算了,那么b,c的值就会不变仍然为1.这就是我提到的短路现象.
4).所以最后的结果就是a=2,b=1,c=1;
5)代码如下
#include
main()
{int a,b,c;
a=b=c=1;
if(++a||++b&&++c)
printf("%d,%d,%d\n",a,b,c);
}
6).你可以结合我所说的,在TC或者VC下调试一下;可惜我等级不够,要不然把结果图片也放上去,就这样吧.
已知:a=b=c=1且a,b,c均为int型变量,执行以下语句:++a||++b&&++c;则变量a的值是多少,b的是多
已知有声明“int a=3,b=4,c;”,则执行语句“c=1/2*(a+b);”后,变量c的值为_______.
c语句 int a=5,b;b=a>3&&0,a++;执行后变量b的值为?
已知int a,b,c;,则执行语句a=5+(b=6,c=4);后,变量a的值是
char a='i' b='a' int c; c=a+b; a=c; 执行后变量a b c的值是多少
已知int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量 i 的值是( ) A 6 B 12 C 3
已知int a,b,c;则执行语句a=5+(b=6,c=4); 变量a的值为多少?
有输入语句:int a,b,c; scanf("a=%d,b=%d,c=%d",&a,&b,&c); 为使变量a的值为1
8、设a、b、c都是整型变量,如果a的值为1,b的值为2,则执行c=a++||b++;语句后,变量b的值是( ).
执行语句a=b=c=1;++a&&--b||--c;后,变量a、b、c的值依次是()?
假定a和b为int型变量,则执行以下语句后b的值是:a=1;b=10; do{b-=a;a++;}while(b--
已知"int a=4,b=5,c;";则执行表达式"c=a=a>b"后变量a的值0吗?