C语言程序结果 以下程序的运行结果是: 。

main( )
{ int a=2, i ;
for(i=0;i<3;i++) printf(“%4d”,f(a) ) ; }
f( int a)
{ int b=0,c=3;
b++; c++; return(a+b+c); }
答案一定要详细哦

这个,应该是2
因为,a=1,
a++这个表达式的值也是1
执行完a++之后,a
加了1
变成2
但if
(a++>1)是不成立的,所以,不执行printf("%d\n",
a);
执行else
后边的
printf("%d\n", a--);
因为a是2,所以a--的值也是2,
执行完a--之后,a又自己减去1,变成了1
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-02-12
木有返回值, 看样子是C代码, 程序应该不能运行吧, printf需要头文件的, 函数写法也不标准, 代码格式就更别说了......
程序运行结果应该是" 7 7 7", 三个空格7, 三个空格7, 三个空格7.
不知道你哪里不明白, printf("%4d"), "%4d"是格式控制, 输出整型数据, 不够4位前面补空, 够或者超出的话直接输出, 4位限制无效. b++ 等同于 b = b + 1.
多看书, 多练习.追问

return返回值是多少

追答

函数参数a的值一直是main中调用的a的值, 注意, 两个a没有关系的, 就是赋值而已. b++ 后b为1, 同理c为4, return (2 + 1 + 4). 你程序中输出的就是函数的返回值. 还有什么不懂的, 你可以尝试下调试工具.

本回答被提问者采纳
第2个回答  2015-02-12

  结果:

   7   7   7


把你的代码的f()函数移动到main()上面,不然飚错:

#include<stdio.h>
int f( int a)
{
    int b = 0, c = 3;
    b++; c++; return (a + b + c);
}
int main()
{
    {
        int a = 2, i ;
        for (i = 0; i < 3; i++) printf("%4d", f(a) ) ;
    }
}

本回答被网友采纳
第3个回答  2015-02-12
i = 0时,a = 2,f(a)返回6,代码输出 7
i = 1时,同上
i = 2时,同上
故输出结果是
7 7 7
相似回答