c语言函数计算结果 c语言中的计算公式

c语言中计算结果怎么存储

所有C函数,只要其有返回值,都是由寄存器Ax(对于32位而言为EAX,如果AX不足以容纳,则由DX保存超过AX容量的部分)保存的(也可能是值,也可能是某一地址,视返回类型而定)。

创新互联是一家专业提供永吉企业网站建设,专注与成都网站建设、网站制作、html5、小程序制作等业务。10年已为永吉众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

上面这个C函数程序,计算(xy?x:y);后,该值就存在AX(EAX)中,当你在其他函数中调用该函数

后,比如

a=max(m,n);后,其实就是进入max()完成后,函数返时将计算结果存放在AX中,执行这个语句后,即就将AX的值传给了a.

其实,这也很容易验证:

在调用

a=max(m,n);

紧接着输入以下语句(注意:这中间绝对不能有其他任何函数调用和语句):

b=_AX;

printf("a=%d,b=%d",a,b);

你就可能发现,a=和b=一定是同一个值。

C语言写一个求阶乘函数输出结果

1 设计阶乘函数。

按照数学定义,对于n的阶乘,如果n为0,则返回1.

否则返回1*2*3*...*n的值。用循环实现。

2 在主函数中输入要求阶乘的值。

3 调用函数计算阶乘。

4 输出结果。

代码:

int fac(int n)

{

int r = 1;

int i;

for(i = 2; i =n; i ++)

r*=i;

return r;

}

int main()

{

int n,r;

scanf("%d",n);

r = fac(n);

printf("%d!=%d\n",n,r);

}

c语言,函数输出结果

不用说执行fun()函数的结果是3,2,

先是x = 2, y = 3;

x = x + y = 2 + 3 = 5;此时 x= 5, y = 3;

y = x - y = 5 - 3 = 2;此时 x = 5, y = 2;

x = x - y = 5 - 2 = 3;此时x = 3, y = 2;

然后看main()函数中的printf;

注意x = 2, y = 3;是main()函数中的局部变量,当main()函数的}执行完才跳出失效;而fun(x,y);中的

x = 3, y = 2;是fun()函数中的局部变量,在fun()函数执行到}结束的时候就已经不具有意义。所以printf打印的是2,3。所以结果是3,2,2,3

本题考的是你对局部变量的理解。

c语言函数问题,求结果

答案是22

调用函数fun时,先计算fun(--x,--y); 再计算fun(x++,y++)

前缀 -- (或++):是先减(加)1后再将其结果代入运算

后缀 ++ (或--):是先代入数据后在对其进行加(减)1运算

故而

第一步:计算fun(--x,--y)时实际上代入的值为 fun(5,6) == 11; 即先将x和y减1后再代入

此时 x == 5, y == 6

第二步:计算fun(x++,y++)时,代入的值为fun(5,6) == 11; 即先将x和y代入运算然后再加1

此次调用后x == 6,y==7

第三步:计算fun(fun(x++,y++),fun(--x,--y)) ,此时实际上代入的值为 fun(11,11) == 22;

因此函数运行后 z 的值为 22; x 的值为6,y 的值为7

另外就是楼主最后一条打印语句出错了,应该是笔误吧:改为 printf("%d\n",z);


本文标题:c语言函数计算结果 c语言中的计算公式
当前链接:http://myzitong.com/article/doedjod.html