thank you~前两个题是一样的,第一个:以下程序运行后的输出结果是?{int=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d%d%d\n,i,j,k);}结果是2 3 3,为什么?第二个:#include main(){int a=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 19:29:17
thank you~前两个题是一样的,第一个:以下程序运行后的输出结果是?{int=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf(

thank you~前两个题是一样的,第一个:以下程序运行后的输出结果是?{int=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d%d%d\n,i,j,k);}结果是2 3 3,为什么?第二个:#include main(){int a=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b
thank you~
前两个题是一样的,
第一个:以下程序运行后的输出结果是?
{int=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d%d%d\n,i,j,k);
}
结果是2 3 3,为什么?
第二个:
#include
main()
{int a=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2||c--!=2)
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);
}
第三个:
以下程序执行后输出结果是3,为什么?
main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}

thank you~前两个题是一样的,第一个:以下程序运行后的输出结果是?{int=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d%d%d\n,i,j,k);}结果是2 3 3,为什么?第二个:#include main(){int a=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b
(1)讲下 && 运算,比如表达式:(条件1)&&(条件2);先执行判断条件 1是否成立,再执行判断条件2是否成立 ,若1 和2 都为“真”,则整个表达式的值为1; 若执行判断条件1的时候,得到条件1为 “假" 的结果,则跳过条件2的判断 ,直接返回0 .
(2)对于 || 运算,(条件1)&&(条件2);执行判断条件 1是否成立,再执行判断条件2是否成立 ,若1 和2 都为“假”,则整个表达式的值为0; 若执行判断条件1的时候,得到条件1为 “真" 的结果,则跳过条件2的判断 ,直接返回1 .
(3)顺便说下运算符的优先级由大到小的顺序为:后置++,前置++,!=,&&,||
第一题:
{
int i=1,j=2,k=3; (你这写的时候是不是掉了一个 i )
if(i++==1&&(++j==3||k++==3))
printf("%d%d%d\n,i,j,k);
}
你if 语句里面的 条件1 是 i++==1 ,先执行 i ++,i++的值为1,i自加1 变为2 ,正确,再判断(++j==3||k++==3) ,同理先判断 ++j==3 是否成立,j自加1变为3,显然++j 值为3是正确的,所以跳过 k++==3的判断,得到(++j==3||k++==3) 的值为1,因此没有执行k++,k的值不变.
第二题
{int a=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2||c--!=2)
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);
}
你 if,else语句的缩进不合理,导致你程序难以读懂,可将其改为:
if(a==1&&b++==2)
if(b!=2||c--!=2) 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);
理解清楚你的else和if的匹配,哪个if 和哪个else 匹配要搞清楚,然后按照上面讲解的 && ,++,- -,!= 运算法则自己慢慢理解
第三题,
说一下 if(a>b>c)
执行 a>b>c时,先 判断 a>b是否成立,显然成立,返回值1,再判断a>b返回的值是否大于c ,显然1 是小于c 的,最终 表达式 a>b>c 的值 为0 ; 其它部分参考 第一题和第二题 的讲解
!