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

C语言 42.下列程序的运行结果是( ) void fun(int *a,int *b) {int *...
答案选B.函数 fun(int* a,int* b)的两个参数类型都是int*型.也就是说,参数变量a, b本身的值不会变.当传入两个实参int* x , int* y后.尽管fun里面作了交换操作,这种交换不会影响到原来的x,y变量值.要象这样定义FUN函数,才有意义.void fun(int *a,int *b){int k;�k=*a...

以下程序的运行结果是( )。 main() { int x = 4; do { printf("%2d...
4,C正确,选C——因为输出4后!x就是!4==0,就结束循环了。

以下程序的运行结果是 。 #include <stdio.h> main(){ int i,j; for...
运行结果是 press any key to continue

以下运行程序后的输出结果是#include<stdio.h>main(){int x=1,y=1...
首先指出程序中的三处错误,第一个是int m n中间应该有逗号,第二个是swtich拼写有错误,第三个是打印输入语句printf("x=%d,y=%d",x,y)有误。修正后程序的运行结果是:x=6,y=6。代码运行结果如下图所示:程序运行过程解析:1、完成变量的赋值,其中有x=1,y=1,m=1,n=1。2、执行第一...

以下程序的运行结果是 #include<stdio.h> void main() { int s=1,t...
我们一步步来:int s=1,t=1,a=5,b=2;if (a>0)s++; \/\/此时s=2 if (a>b)t+=s;else if (a==b)t=5;else t=2*s; \/\/此时t=t+s=1+2=3,因为只执行a>b,只执行t+=s;这一句 printf("s=%d,t=%d\\n",s,t); \/\/所以最后打印出s=2,t=3 ...

下面程序段的运行结果是( )。 char *p="abcdefgh"; p+=3; printf("%d...
让p指针指向“A”的地址,如果取值的话就*P拿到A了。这个函数返回的值是目标串的地址,也就是p啦,那么p是个指针怎么算地址的长度呢,其实就是strlen("ABCD")啦,为什么,计算机知道的啦,因为p指向了“ABCD”首地址了,而c语言中默认在ABCD后加个结束符的,所以答案就是4了。

70. 以下程序的运行结果是( ). void main() { int n='e'; switch(n...
答案是C,error good。先判断n为'e'(自减为后续工作,不影响switch),然后由上到下找switch的对应选项。没有'e'选项,则default符合,所以打印了error。没有break语句,则case只作为程序代码段标号,继续执行到break为止,打印了good。这道题的输出结果与default的位置有关。如果将default放到最后,则...

C语言 以下程序的运行结果为( ) void fun(int n) { if(n) fun(n-1...
先递归,再打印,当n为0的时候结束打印,但0还是会执行后续的输出 于是是从0打印到5 选c

C语言,以下程序的运行结果是?
define sw(x,y) {x^=y;y^=x;x^=y;} 这个宏的作用就是在不借助第三变量的情况下,交换x和y的值,^是位异或运算符,x^=y相当于x=x^y,具体什么是位异或运算,可以在网上轻意找到相关教材。b=01代表8进制数的1,1在任何进制计数系统中都相等。

以下程序的运行结果是( ). #include <stdio.h> #include <conio.h>...
if(a=6)这句出了问题,你这样写就变成赋值了,应该写成 if(a==6) 这样就应该正确了

相似回答