C语言习题

[复制链接]
查看11 | 回复5 | 2011-6-22 16:41:01 | 显示全部楼层 |阅读模式
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); }
        A)7 10 13
B)7
7
7
        C)7
9 11
D)7
8
9
答案好像是B 为什么哇、、、、

回复

使用道具 举报

千问 | 2011-6-22 16:41:01 | 显示全部楼层
for(i=0;i<3;i++)这个是循环3次,而这个a=2把a的值定为2。f(a) 这个是调用f( int a)函数,所以它每次执行都是一样的b++;c++; 第一次的时候b++后为1,c++,后为4所以是:return(a+b+c); 就是2+1+4=6,以后每次都是一样的。...
回复

使用道具 举报

千问 | 2011-6-22 16:41:01 | 显示全部楼层
i只起循环作用,f(a)没用到i,只用到了a,因为a=2不变,进去函数后,b,c每次又重新定义了,所以选B即2+1+4=7...
回复

使用道具 举报

千问 | 2011-6-22 16:41:01 | 显示全部楼层
循环语句循环三次,a每次都是2,b,c每次循环初始值都是0,3,自加后,b=1,c=4。a+b+c 永远都是2+1+4=7。...
回复

使用道具 举报

千问 | 2011-6-22 16:41:01 | 显示全部楼层
对啊B有什么不对的。。每次a=2传进去。。然后b=0自加等于1,c=3自加等于4。。1+4+2 = 7...
回复

使用道具 举报

千问 | 2011-6-22 16:41:01 | 显示全部楼层
楼上的好牛,2+1+4 = 6。。。。。。。b++ 等价于b =b +1..自己想去吧,这还不懂。。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行