一道C语言题目,希望高手给个详细的解答
main(){inti=6,k=6,a,b;a=(i++)+(i++)+(i++);b=(++k)+(++k)+(++k);printf("\ni=%d,k=%d",i,...
main()
{ int i=6,k=6,a,b;
a=(i++)+(i++)+(i++);
b=(++k)+(++k)+(++k);
printf("\n i=%d,k=%d",i,k);
printf("\n a=%d,b=%d",a,b);
} 展开
{ int i=6,k=6,a,b;
a=(i++)+(i++)+(i++);
b=(++k)+(++k)+(++k);
printf("\n i=%d,k=%d",i,k);
printf("\n a=%d,b=%d",a,b);
} 展开
4个回答
展开全部
i=9 k=9
a=21 b=24
a=(i++)+(i++)+(i++);就相当于a=6+7+8
b=(++k)+(++k)+(++k);就相当于b=7+8+9
无论i++还是++k,最后都需要输出+1后的值,所以i和k的值相同,但是运算过程中的先后顺序决定了a和b的值是有差别的
a=21 b=24
a=(i++)+(i++)+(i++);就相当于a=6+7+8
b=(++k)+(++k)+(++k);就相当于b=7+8+9
无论i++还是++k,最后都需要输出+1后的值,所以i和k的值相同,但是运算过程中的先后顺序决定了a和b的值是有差别的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{ int i=6,k=6,a,b;
a=(i++)+(i++)+(i++);
b=(++k)+(++k)+(++k);
printf("\n i=%d,k=%d",i,k);
printf("\n a=%d,b=%d",a,b);
}
不同的编译器运行的结果会有所不同,i++为后++,在a=(i++)+(i++)+(i++);赋值之前,i的值保持为6 ,语句运行后,再对i进行三次自加运算,所以a的值为18,i的值为9;
++k是前++,在b=(++k)+(++k)+(++k); 赋值语句运行之前就对k进行三次自加运算,K的值为9,所以b==9+9+9==27;
最后的运行结果为
i=9,k=9
a=18,b=27
{ int i=6,k=6,a,b;
a=(i++)+(i++)+(i++);
b=(++k)+(++k)+(++k);
printf("\n i=%d,k=%d",i,k);
printf("\n a=%d,b=%d",a,b);
}
不同的编译器运行的结果会有所不同,i++为后++,在a=(i++)+(i++)+(i++);赋值之前,i的值保持为6 ,语句运行后,再对i进行三次自加运算,所以a的值为18,i的值为9;
++k是前++,在b=(++k)+(++k)+(++k); 赋值语句运行之前就对k进行三次自加运算,K的值为9,所以b==9+9+9==27;
最后的运行结果为
i=9,k=9
a=18,b=27
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main()
{ int i=6,k=6,a,b;
a=(i++)+(i++)+(i++);
b=(++k)+(++k)+(++k);
printf("\n i=%d,k=%d",i,k);
printf("\n a=%d,b=%d",a,b);
}
个人认为答案为:
i=9,k=9
a=24,b=24
虽然i++和++k运算顺序不同。但(i++)和(++k)的运算顺序应该是一样的。
{ int i=6,k=6,a,b;
a=(i++)+(i++)+(i++);
b=(++k)+(++k)+(++k);
printf("\n i=%d,k=%d",i,k);
printf("\n a=%d,b=%d",a,b);
}
个人认为答案为:
i=9,k=9
a=24,b=24
虽然i++和++k运算顺序不同。但(i++)和(++k)的运算顺序应该是一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询