以下程序输出的结果是? fun(int a,int b,int c) { c=a*b;

以下程序输出的结果是?fun(inta,intb,intc){c=a*b;}voidmain{intc;fun(2,3,c);cout<<c;}答案是无法确定,求解释... 以下程序输出的结果是?
fun(int a,int b,int c)
{ c=a*b;}
void main
{int c; fun(2,3,c);
cout<<c;
} 答案是无法确定,求解释
展开
 我来答
帐号已注销
2021-06-26 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:166万
展开全部

c没有初始化,所以c是什么不确定,fun()使用的参数是临时的,并没有改变c的值,可以将c的值先附一个值,就一直看到只会输出那个值。可以将fun()参数改为传引用或者用指针,就可以改变c的值。

fun(int a,int b,int *c)

{ *c=a*b;}

void main

{int *c; fun(2,3,c);

cout<<*c;

计算总额

Private Sub Command0_Click()

Dim a As Double

Dim b As Double

a = Text1

b = Text2

c = a * b

c = MsgBox("总额是" & a * b & "元")

End Sub

以上内容参考:百度百科-程序

小木ddd
2012-06-07 · TA获得超过109个赞
知道答主
回答量:33
采纳率:0%
帮助的人:12.8万
展开全部
从主函数开始,首先,楼主你声明了一个整型变量c,由于没有赋值,系统给它赋一个随机值。接下来进入fun函数,这时,系统在另一个地方开辟了一块内存存储a,b,c形参,(注意,这里系统是另一个地方开辟了一个c,而不是原来的那个c,这也是你的问题核心所在),然后把2的值赋予a,把3的值赋予b,把c的值赋予c(注意,是把原来main函数的那个实参c赋予fun函数的形参c),然后c=a*b是fun函数里的形参进行的计算,这时形参c=6(注意不是原来的那个c=6,因为两个c的地址是不一样的,不是同一个东西)。这时,函数完成,系统把刚才在调用函数时开辟的a,b,c给清除掉了,而你原来的c实际上并没有参与运算,还是那个随机值。要想显示c=6可以这样:
fun(int a,int b,int c)
{ c=a*b;
cout<<c;

void main
{int c; fun(2,3,c);}
或者
fun(int a,int b,int &c)
{ c=a*b;}
void main
{int c; fun(2,3,c);
cout<<c;

或者
fun(int a,int b,int *c)
{ *c=a*b;}
void main
{int *c; fun(2,3,c);
cout<<*c;


你的符号是全角,为了便于比较我没改。
给分啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvxin99
2012-06-06 · TA获得超过386个赞
知道答主
回答量:60
采纳率:0%
帮助的人:21.1万
展开全部
函数写的有问题。
应该这么写
void fun(int a,int b, int& c) //注意c
{
c = a*b;
}
为什么?
如果按照你写的函数,c的值是不会改变的,其运行过程可以理解成如下样子:
进入fun前 int c = 0;
传入fun后其实可以转义成如下函数
void fun(int a,int b,int c)
{
int _a = a; //在进入函数体之后,会隐士的创建一个新的临时变量来替代传入变量
int _b = b;
int _c = c;
_c = _a*_b;
}

而如果改成 int& c ,则传入的就是c本体,函数内部不会做隐士的转变。
如果你学了指针的话,函数也可以改成如下样子
void fun(int a,int b,int* c)
{
*c = a*b;
}
void main()
{
int c = 0;
fun(2,3,&c);
cout << c;
}
暂时理解到这个程度就成,过一阶段学东西多了,就能理解的深入了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26ad406
推荐于2018-02-27 · TA获得超过1611个赞
知道大有可为答主
回答量:1506
采纳率:100%
帮助的人:1079万
展开全部
cout输出的是fun函数的实参,虽然在fun函数中有c的计算 但是这个c是函数形参 是个局部变量 和main函数当中的c不是一样的 当fun函数返回后 局部变量c的值已经释放了 main函数中输出的c值仍然是未定义的
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友56ef6ac
2012-06-06 · TA获得超过246个赞
知道小有建树答主
回答量:352
采纳率:0%
帮助的人:456万
展开全部
因为你对变量c没有初始化,在变量c的内存空间里本来就有东西,于是就无法确定了。
还有这个程序是无法执行的呵:fun前面要加int
然后及时加了int执行了上面的函数后变量c根本没变,因为那个fun函数内没有实参,也没有return
还有那个我不太懂C++,所以程序改动如下::
#include <stdio.h>
int ccc;
int fun(int a,int b)
{
ccc=a*b;
}
void main(){
fun(2,3);
printf("%d",ccc);
}
PS:这个莫名其妙的程序从哪儿来的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式