66问答网
所有问题
有段C语言程序、求输出结果:main()int y=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);求运行结果,多谢
我主要想知道括号里面怎么处理
举报该问题
推荐答案 2012-06-11
答案是:3 3
输出的值y++和z+2两个数的值
其中(++x,y++)只能输出一个值作为%d输出,(++x,y++)中包含“,”运算符,它的运算规律是从左至右执行,所以输出的值只能为y(值为3),然后再进行y++运算
下一个%d的值为z+2(值为3)
运行结果为:3 3
楼主可以在编译环境中试一下下面的程序,就知道答案的正确性了:
#include<stdio.h>
void main()
{
int y=3,x=3,z=1;
printf("%d\n%d\n",(++x,y++),z+2);
}
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/Dp2nnipxs.html
其他回答
第1个回答 2012-06-11
33
printf("%d%d\n",(++x,y++),z+2);
第一个%d输出时,是(++x,y++)的值,里面有个逗号,逗号是输出最右边的,所以应该是输出y++;y++时,先取再加,就是先输出y,再自增1,所以第一个输出3
第二个就容易了,就是输出z+2,也就是3
相似回答
void
main()
{ int
y=3,x=3,z=1; printf(
"
%d%d
\n",(++x,y++),z+2...
答:
printf("%d%d\n",(++x,y++),z+2);第一个%d
输出
时,是(++x,y++)的值,里面有个逗号,逗号是输出最右边的,所以应该是输出y++;y++时,先取再加,就是先输出y,再自增1,所以第一个输出3 第二个就容易了,就是输出z+2,也就是3
void
main()
{int
y=3,x=3,z=1; printf(%d %d
\
n,
(++x
答:
这里++放在了y的后面,所以是先
输出
y,再进行y=y+1运算,所以最后是输出3 3
...
main()
{int
y=3,x=3,z=1; printf(
"
%d%d
\n",(++x,y++),z+2);}...
答:
printf运行
结果
为 3 ,3 第二个%d 是z+2 为3 第一个%d 是 (++x ,y++)表示 先运行 ++x , x变为4 ,然后
输出
y 的值为3 ,在运行 y++ ,y 为4;
...
main( )
{ int
y=3,x=3,z=1; printf(%d %d
\
n,
(++x , y++),z+2...
答:
逗号符,表示对这两个表达式执行逗号运算…
(x,y)
这个表达式的值为y的值
...
main()
{ int
y=3,x=3,z=1; printf(
"
%d%d
\n",(++x,y++),z+2) }...
答:
我来给你详细说说:(++
x,y
++),这是逗号表达式,先执行++x,然后执行y++
;结果
取逗号后面表达式的值,也就是y++的值。y++的值为3,因为这是后加表达式,如果是前加++y的话,值就是4;z+2的值是1+2
=3;
所以
结果输出
是3 3
...int
y=3,x=3,z=1;
则语句
:printf(
“
%d %d
\n"
,(
++x,y++
),
z+2
);
的...
答:
(++
x,y
++)的值为
3;逗号
表达式的值为后一个表达式的值,y++表示先运用y的值再进行自增 z+2的值也为3 所以
输出3
3
大家正在搜
相关问题
有如下程序 main( ) { int y=3,x=3,z=...
void main() { int y=3,x=3,z=1;...
有如下程序 main() {int y=3,x=3,z=1;...
当int x=2,y=4,z=3时,执行以下程序段后z=__...
main( ) { int y=3,x=3,z=1; pr...
有如下程序 main( ) { int y=3,x=...
有以下程序main(){intx=3,y=3,z=3;pri...