
main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf(“%d %d %d\n”,i,j,k);
2个回答
展开全部
答案:2 3 3 #include <stdio.h> void main() { int i=1,j=2,k=3; if( i++==1 &&( ++j==3 || k++==3 )) printf("%d %d %d\n",i,j,k); } if语句里面的判断为两大部分: 1、i++ == 1; 2、++j == 3 || k++ == 3; i的初始值为1,i++是先判断i==1,然后再i=i+1,所以这部分结果为true; j的初始值为2,++j是先执行j=j+1=3,然后再判断j==3,第2部分的前半部分也是true的,根据“短路”(物理电路上的名词)原则,这部分整体的结果也是为true的 两个真值相与的结果也为正,所以if条件是成立的,然后执行输出语句: i=2; j=3; k=3; //k++没有执行到
展开全部
#include <iostream> int main() { int i = 1,j = 2,k = 3; if(i++ == 1 && //先判断 i == 1 再运算 i = i + 1 (++j==3 || //先运算 j = j + 1 再判断 j == 3 k++==3)) //先判断 k == 3 再运算 k = k + 1 printf("%d %d %d\n", i, j, k); return 0; } //运算符优先级问题,请注意代码中的解释,可以查下相关资料 //你给出的代码里的符号为中文的符号如;() //中文符号编译是不会通过的,应该使用英文符号,如 ; () //最后答案输出 2 3 3
麻烦采纳,谢谢!
麻烦采纳,谢谢!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询