几个很简单的C程序问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:44:14
#include <stdio.h>
void main()
{
float x=1,y;
y=++x*++x;
printf("%f",y);
}
运行结果:9

#include <stdio.h>
void main()
{
int i=5;
i+=++i;
printf("%d",i);
}
运行结果:12
请详细分析以上两个程序的运算过程给出变量值的变化过程及原因

#include <stdio.h>
void main()
{
int a=-10,b=-3;
printf("%d\n",%ab);
printf("%d\n",-a%b);
}
请给出运行结果并将运算过程以数学形式加以说明

scanf("%d%d%d",&x,&y,&z);与scanf("%d,%d,%d",&x,&y,&z);具体区别何在,如果输入25,13,10<CR>前者和后者将分别做如何处理?

#include <stdio.h>
void main()
{
int i=1,j;char c='A';
j=!c&&i++;
printf("i=%d,j=%d\n",i,j);
}
运行结果:i=1,j=0
为何变量i被调用过1次之后i还是1?

恳请明白人指点一二,我在这里先谢谢了
首先谢谢2楼的回答,我实验过第一个程序运行之后确实是9,不是6,所以很不解

至于第二个程序,谢谢你的解答,懂了

程序3的

1、首先要明白i++和++i的区别
i++是在语句执行之后再让i自增1
而++i是先让i自增1之后在执行语句……明白?
所以++x*++x其实就是(++x)*(++x)
系统不会说先给X加1乘的时候再加一!!
系统是先将两个++执行
即x的值变为三!!所以结果是9
2、i+=++i
即i=i+(++i)从第一题知道i先加1
所以i的值已经是六了!!
6+6自然等于12
3、二楼说得对
你这句%ab语法不对!我想应该是a%b吧?这样才合理!
a%b=-1
在数学里a除以b商几余几,那么余数就是a%b的结果!明白?-a%b的解释一样
我就不讲了,你自己试试……
4、scanf("%d%d%d",&x,&y,&z);与scanf("%d,%d,%d",&x,&y,&z);
前者%d%d%d中间无间隔输入数的时候应该是
(1)、这样输入25空格13空格10然后回车就可以
(2)、这样也行25回车键13回车键10回车键
(3)、这样也可以25Tab键13Tab捡10回车
而后者中间有逗号!!所以输入的时候一定要出入25,13,10回车
还有如果scanf("x=%,y=d%d,z=%d",&x,&y,&z);这个语句
你在输入的时候就要输入x=25,y=13,z=10回车其他的你类推……明白?
5、j=!c&&i++;
你对这句没有把握好!
先算!c因为c不等于0,所以!c就等于0,j=0也就没有疑问,但是
在这个句子中有&&这个东西,计算机也是很懒的!!
例如a&&b这个式子,当a已经确定值为0的时候,不论&&后面的是什么结果都是0,
所以计算机将不去执行&&后面的语句!!
所以i的值还是1
明白?
就是这样……

程序5 变量i并没有自增运算
逻辑表达式!c的结果为假,值为0,后面的是与运算,碰见为0的就终止了
J的结果也就为0了 i++也就没有机会运行了