| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1222 人关注过本帖
标题:[求助]以下程序的输出结果是a=___,b=___,c=___。
只看楼主 加入收藏
lijoel73209
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-3-23
收藏
 问题点数:0 回复次数:15 
[求助]以下程序的输出结果是a=___,b=___,c=___。

以下程序的输出结果是a=___,b=___,c=___。

我算的答案是29 13 5
可标准答案是36 16 19
不知道那点出错了?谢谢各位帮忙!

#include <stdio.h>
int func(int a,int *p);

void main()
{
int a=1,b=2,c;

c=func(a,&b);
b=func(c,&a);
a=func(b,&c);

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

int func(int a,int *p)
{
a++;
*p=a+2;
return(*p+a);
}

搜索更多相关主题的帖子: int 标准答案 func 结果 
2006-03-23 10:57
偶成
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-3-4
收藏
得分:0 

首先执行完c=func(a,&b);a=1,b=4,c=6,
然后执行b=func(c,&a);  a=9,c=6,b=16,
然后执行a=func(b,&c);  c=19,a=35,b=16,

[此贴子已经被作者于2006-3-23 11:14:05编辑过]


几年前,丢失了求知欲,游荡在游戏世界中. 而今寻找回了求知欲,希望通过自学充实自己.努力中...
2006-03-23 11:12
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 

楼上的第三步有点小错
运行完,应当是
c=19,a=36,b=16(调用函数中有一个a++)


2006-03-23 12:15
baifenghan
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:258
专家分:952
注 册:2006-3-17
收藏
得分:0 

#include <stdio.h>
int func(int a,int *p);

void main()
{
int a=1,b=2,c;

c=func(a,&b); printf("c=%d\n",c);
b=func(c,&a);printf("b=%d\n",b);
a=func(b,&c);printf("a=%d\n",a);

printf("a=%d,b=%d,c=%d\n",a,b,c);
}

int func(int a,int *p)
{
a++;
*p=a+2;
return(*p+a);
}
在原程序里加了红色的几行,自己运行以下就知道答案了。

2006-03-23 12:24
维纳斯的恋人
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-3-22
收藏
得分:0 
楼主的,我试过没错

她说她都希望没有看到 可是真的发生了 不可能改变 我说我只想我们能像以前一样 真的不可以??
2006-03-23 12:48
lijoel73209
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-3-23
收藏
得分:0 
请问“首先执行完c=func(a,&b);a=1,b=4,c=6,”
b=4是怎么得来的?
2006-03-23 13:07
sunnvya
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:1094
专家分:0
注 册:2005-11-23
收藏
得分:0 

答案是对的啊!


http://www. 第二站>>>提供源码下载
2006-03-23 13:38
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
4楼可能忽视了一点。
因为int func(int a,int *p)函数中有一个地址引用,所以在后面的程序中还会修改一些变量。

2006-03-23 13:41
lijoel73209
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-3-23
收藏
得分:0 
请问“首先执行完c=func(a,&b);a=1,b=4,c=6,”
b=4是怎么得来的?
2006-03-23 14:41
偶成
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-3-4
收藏
得分:0 
以下是引用lijoel73209在2006-3-23 14:41:00的发言:
请问“首先执行完c=func(a,&b);a=1,b=4,c=6,”
b=4是怎么得来的?

调用函数func(),把b的地址传递给p啊,
int func(int a,int *p)
{
a++;
*p=a+2;
return(*p+a);
}
在函数func()里面运算a+2=4,赋值给p指向的变量,也就是b.所以b=4啊


几年前,丢失了求知欲,游荡在游戏世界中. 而今寻找回了求知欲,希望通过自学充实自己.努力中...
2006-03-23 14:48
快速回复:[求助]以下程序的输出结果是a=___,b=___,c=___。
数据加载中...
 
   



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

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