| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 987 人关注过本帖
标题:帮小女子看看C++程序运行结果,急
只看楼主 加入收藏
avator123
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2010-12-3
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:9 
帮小女子看看C++程序运行结果,急
程序代码:
#include "stdio.h"
int f(int i, const int *j,int& k)
{

 if(i%3 == 0 )
     if (*j >= 6 ) k*= i ;
        k+=i;
        k-=i;
     return *j+k ;
}

int main()
{

 int i , j=1, k=2 , m;

 for (i=0;i<10;i++,j*=2) {
   m=f(i,&j,k);
   printf("i=%2d,  j=%2d  ,k=%2d  ,m=%2d.\n",i,j,k,m);
}

return 0 ;

}

//程序运行结果 : i=0, j=1, k=2, m=3  疑问,当i=0时,j为什么不是2 ?(根据j*=2)
搜索更多相关主题的帖子: 小女子 
2011-12-31 17:56
avator123
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2010-12-3
收藏
得分:0 
怎么没有人回复啊?在线等呢!
2011-12-31 21:32
黄昏的王座
Rank: 2
来 自:安徽亳州
等 级:论坛游民
帖 子:38
专家分:65
注 册:2011-10-5
收藏
得分:2 
c程序里面没有引用吧。  头文件里加上#include <iostream>   using namespace std;   就行了
2011-12-31 22:18
avator123
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2010-12-3
收藏
得分:0 
还没有回答我的问题呢!
2011-12-31 22:22
fdasfea
Rank: 2
等 级:论坛游民
帖 子:6
专家分:25
注 册:2011-12-13
收藏
得分:2 
j*=2在第一个循环结束后才执行
2012-01-01 07:01
kuangdang178
Rank: 2
等 级:论坛游民
帖 子:12
专家分:32
注 册:2011-11-4
收藏
得分:2 
当i=0时只执行前面两个语句即初值和判断语句,j*=2要i=1时才执行
2012-01-01 10:28
chanbo
Rank: 2
来 自:陕西咸阳
等 级:论坛游民
帖 子:38
专家分:74
注 册:2011-11-26
收藏
得分:2 
在for语句中,for(设初始值; 循环终止条件; 更改循环中的变量值)

其中第二个分号之后的“更改循环变量值”的语句是在每次循环结束时被执行的。

所以第一次循环时,i=0,j=1,k=2。循环中m应该被赋值为3(是函数f的返回值)。

在函数f第一次被执行时,i=0它必定不是3的整数倍,j=1它必定是小于6的,所以函数f中的两个if语句都不被执行,故而其返回值是j+k=3。所以m被赋值为3。
2012-01-01 11:45
笨拙的学鸠
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2011-8-29
收藏
得分:2 
人妖啊
2012-01-01 14:15
chanbo
Rank: 2
来 自:陕西咸阳
等 级:论坛游民
帖 子:38
专家分:74
注 册:2011-11-26
收藏
得分:0 
回复 8楼 笨拙的学鸠
大家都懂,何必声张呢?
2012-01-01 14:47
nemokina
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-11
收藏
得分:0 
回复 9楼 chanbo
2012-01-04 21:26
快速回复:帮小女子看看C++程序运行结果,急
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018214 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved