c语言函数题目,为什么选D

为什么是无法确定下列程序的输出结果是(D)。fun(inta,intb,intc){c=a*b;}voidmain(){intc;fun(2,3,c);printf(”%... 为什么是无法确定
下列程序的输出结果是(
D
)。

fun(int a, int b, int c)

{ c =a*b; }
void main( )
{ int c;
fun(2,3,c);
printf(”%dn”,c);

}

A

0 B

1 C

6 D
、无法确定
展开
 我来答
White_MouseYBZ
2013-08-24 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6369万
展开全部
因为c还没有赋值!fun中给c的赋值是局部的,函数退出时就消失了,不会带回到函数调用处的。
dongwenonline
2013-08-24
知道答主
回答量:9
采纳率:0%
帮助的人:6.3万
展开全部
因为main函数里面虽然使用了fun子函数,但其根本没有返回值,所以执行完fun(2,3,c)后其对main函数中c的值无任何影响;
在main函数中,没有对c进行初始化操作(赋值),所以c的值是不确定的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神璐
2013-08-24 · 超过16用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:35万
展开全部
fun(int a, int b, int c)函数定义的a,b,c都是局部变量,当函数的运行完了,里面的局部变量就会被释放空间。函数外面的c,没有被赋值,就传进函数fun,在fun里面的c=a*b=6;但fun运行完了c也就被释放了,也没有对外面的c进行任何的操作,他们是属于不同的一个空间,是两个不同的变量。所以外面的c并没有任何值,故答案是无法确定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2c0046c
2013-08-24 · TA获得超过2213个赞
知道大有可为答主
回答量:2314
采纳率:50%
帮助的人:1100万
展开全部
c=2*3;只是在函数中,函数调用完,地址就释放了,而这题是在函数中打印c值,相当于c=2*3就没用上,因为释放了,所以c等于原来的值,而c值只局部定义了int c;没有赋值c是个不确定的数.如果定义int c=0;那么选A.对应的如果定义int c=1;选B.如果打印c值printf("%d\n",c);在函数里,选C
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
好李董
2013-08-24
知道答主
回答量:19
采纳率:0%
帮助的人:13.1万
展开全部
这就是函数调用时形参与实参的关系,函数调用时,实参的值传给形参,但是形参的值不会改变实参的值,所以函数fun中的c变成6了,但是main函数中的c还是原来的值,又因为c没有初始化,所以它的值是不确定的。。。
追问
如果加个return c呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流浪黑猫儿
2013-08-24
知道答主
回答量:12
采纳率:0%
帮助的人:9.1万
展开全部
简单来说就是输出函数
printf("%d\n",c);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式