C语言int y=3 x=3 z=1;printf(“%d %d\n”,(++x,y++),z+2); 最后输出结果为3 3 后面个3我懂了但是后面

作者&投稿:鄘宙 (若有异议请与网页底部的电邮联系)
C语言 main() {int x,y; x=11/3;y=5; printf("%%d,%%%d\n",x,y); } 这个结果为什么是 %d,%3????~

%% 代表 %,所以"%%d"输出的是 字符"%d”
而"%%%d"相当于 先输出一个% 然后把 输出变量x的值。y没有输出。
如果你想输出%3, %5 可以这么写
#include
main()
{int x,y;
x=11/3;
y=5;
printf("%%%d,%%%d
",x,y);
}

一步步解析
int x,y,z; x=3;y=2;z=0; 略过
x+=y+=z由于赋值计算方向是由右向左,故先算y+=z;再算x+=y

故y=2;x=5 printf("%d
",x<y);输出的就是0

前面那个3就是(++x,y++)的值,这是个逗号表达式,逗号表达式的值就是最后一个表达式的值,也就是(++x,y++)的值就是y++的值,y++的值就是y的当前值,是3,输出以后,y=y+1,y变成了4

哪有三个三啊,结果就两个三而已。
(++x,y++),是逗号运算符,结果取最后一个算式的结果就是y++的结果
(F1,F2,F3.....Fn)结果是Fn


永定区13719332417: C语言int y=3 x=3 z=1;printf(“%d %d\n”,(++x,y++),z+2); 最后输出结果为3 3 后面个3我懂了但是后面 -
营许玄宁: 前面那个3就是(++x,y++)的值,这是个逗号表达式,逗号表达式的值就是最后一个表达式的值,也就是(++x,y++)的值就是y++的值,y++的值就是y的当前值,是3,输出以后,y=y+1,y变成了4

永定区13719332417: void main() { int y=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2); } 输出的结果为什么?求详细解及思路 -
营许玄宁: 33 printf("%d%d\n",(++x,y++),z+2); 第一个%d输出时,是(++x,y++)的值,里面有个逗号,逗号是输出最右边的,所以应该是输出y++;y++时,先取再加,就是先输出y,再自增1,所以第一个输出3 第二个就容易了,就是输出z+2,也就是3

永定区13719332417: 1.有如下程序,运行该程序的输出结果是 main() { int y=3,x=3,z -
营许玄宁: 1. 3 3 2. D 3. B 4.A5.D 6.D7.B 8.B 9.对某些C语言编译器,C和D都是对的,如果只有一个正确答案那应该是D

永定区13719332417: 问个C语言的题为啥 -
营许玄宁: 正确答案应该是1,原因如下:在“逗号表达式”中,整个表达式的结果,是最后的“逗号”后面的值.比如,在这个表达式中:++x,y++,z++;整个表达式的值,结果是z++,也就是1.因为z的值是1,然后“++”在z的后面,所以z++的值是1,...

永定区13719332417: 设先有定义: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

永定区13719332417: int y=3,x=3,z=1;printf( "%d%5d\n",(++x,y++),z+2) -
营许玄宁: printf( "%d%5d\n",(++x,y++),z+2)%d对应(++x,y++),这是个逗号表达式,运算顺序从左到右,结果为最后一个数的结果,即y++,为3%5d对应z+2,值为3 关于逗号表达式:int i = (3,5,6); printf("i=%d\n", i); 输出i=6

永定区13719332417: 有段C语言程序、求输出结果:main()int y=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);求运行结果,多谢 -
营许玄宁: ++x是x先自加1再输x的值,输出为4,y++是先输出y当前的值,再y自加1,输出为3,y的值变为4,z+2是一个表达式,输出z+2的结果,即输出3,z不会改变.

永定区13719332417: #include<stdio.h> main() {int y=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2);} printf语句是怎么运行的 -
营许玄宁: printf运行结果为 3 ,3 第二个%d 是z+2 为3 第一个%d 是 (++x ,y++)表示 先运行 ++x , x变为4 ,然后输出 y 的值为3 ,在运行 y++ ,y 为4;

永定区13719332417: 有如下程序 main0{int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);} 答案为什是3 3
营许玄宁: 这是逗号表达式的用法,在逗号表达式中,总体的值是逗号后面那个式子值,比如a=(5,6),a的值应该是6; 上面式子中(++x,y++)相当于y++,那个 printf语句其实跟printf(“%d %d\n”,y++,z+2)效果是一样的.后面那个3就是1+2=3

永定区13719332417: C语言中 z=x==y 这个式子怎样理解 -
营许玄宁: 这个式子的意思是这样z=(x==y); 由于x是3,y也是3,所以x==y是成立的,所以一般情况下,编译器会将一个非0值传递给z,而1是多数的情况,所以z应该是1

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网