人口密度居全世界第三:C语言老鸟请进

来源:百度文库 编辑:高校问答 时间:2024/05/05 11:47:05
老鸟们帮帮我看下下面这几个题目是怎样算出来!
问题1:
main()
{ int a=-10,b=-3;
printf("%d,",-a%d);
printf("%d,",(a-b,a+b));
printf("%d\n",a-b?a-b:a+b);}
程序结果是:1,-13,-7
为什么程序结果是这样的?
问题2:
main()
{ int x=2,y,z;
x*=3+2;
printf("%d\n",x);
x*=y=z=4;
printf("%d\n",x);
x=y=1;
z=x++-1;
printf("%d,%d\n",x,z);}
请帮我算出程序结果,再说下为什么?
问题3:
main()
{ int i,j,k,a=3,b=2;
i=(--a==b++)?--a:++b;
j=a++;
k=b;
printf("i=%d,j=%d,k=%d\n",i,j,k);}
请帮我算出程序结果,再说下为什么?

好了,大家帮帮我,拜托拉!

main()
{ int x=2,y,z;
x*=3+2; //x=x*(3+2)=2*5=10
printf("%d\n",x);
x*=y=z=4; //z=4,y=4,x=x*4=40
printf("%d\n",x);
x=y=1; //y=1,x=1
z=x++-1; //x++即先运行后x自加,所以z=1-1=0,运行之后x自加,x=2
printf("%d,%d\n",x,z);}
结果为10
40
2,0

main()
{ int i,j,k,a=3,b=2;
i=(--a==b++)?--a:++b; //a先减1再运行,b先运行再加1,所以--a=b++(此时a=2),i=--a时a又减1(此时a=1),所以i=1,b=3
j=a++; //a先运行再加1,j=1
k=b; //k=3
printf("i=%d,j=%d,k=%d\n",i,j,k);}