edg队员名单:C语言问题,唔明白,请指教

来源:百度文库 编辑:高考问答 时间:2024/05/05 19:08:08
#include<stdio.h>
main()
{
int a=25,b=5,c=4,d=1;
a+=b;
c*=d+5;
a%=c;
printf("%d,%d",a,c);
printf("%d",++a);
printf("%d",a++);
printf("%d",a);

}
请帮我用C++编译并算出结果,并帮我分析一下第一个printf中的a结果是怎样计算来的。谢谢。
请越详细明白越好,我会给最佳答案加20分。
(我没有C++,用的是最新的TC++3.1,而且计算的结果自己都很糊涂,看不懂。)

结果是:6,24778
因为printf没有\n结果都连在一起了。
a+=b <=> a=a+b=25+5=30
c*=d+5 <=> c=c*(d+5)=4*(1+5)=24
a%=c <=> a=a%c=30%24=6(求余,30除以24余数是6)
蛮简单的
printf("%d,%d",a,c);/*a=6,c=24*/
printf("%d",++a);/*a先自加变成7*/
printf("%d",a++);/*先求a的值,执行完printf后a才自加*/
printf("%d",a);/*上句结束后a已经变成8了*/

很简单:
a+=b就是a=a+b=25+5=30
c*=d+5就是c=c*(d+5)=4*(1+5)=24
a%=c就是a=a%c=30%24=6(%……求余运算符)
printf("%d,%d",a,c);---就是用百分制形势分别输出a.c得值,中间用“,”隔开;
printf("%d",++a);---就是用百分制的形式输出a得值,然后再a得值加1;
printf("%d",a++);---输出a+1得值;
printf("%d",a);---输出直同上一步,因为在上一部中a得值增加了一。

#include<iostream.h>
void main()
{
int a=25,b=5,c=4,d=1;
a+=b;//先是a+b然后把a+b负值给a
c*=d+5;
a%=c;
cout<<"a="<<a<<"c="<<c<<endl;
cout<<"++a="<<++a<<endl;
cout<<"a++="<<a++<<endl;
cout<<"a="<<a<<endl;
}

一定要用C++吗?我先回去试试,不过运算结果我可以分析一下,a+=b相当于a=a+b,即计算a+b后把它的值赋给a,此时a=30;c*=d+5相当于c=c*(d+5)=4*6=24;a%=c相当于a=a%c=30%24=6;第二个printf语句在调用a的值之前先使它自加1,故++a=7;第三个printf语句在调用a的值之后再加1,故a++=7,而第四个printf语句把a的值输出a=8,
所以运算结果是:6,24,7,7,8
个人见解,也许不同的编译器会有不同结果,我再用C++帮你算一下