求解C语言!!很急

 我来答
yplq1243
2015-06-06 · TA获得超过150个赞
知道答主
回答量:84
采纳率:0%
帮助的人:44.6万
展开全部
#include <stdio.h>
int a=2,b=3,c=5;
int fun(int a, int b){
int c;
c=a>b?a:b;
return(c);
}
void main(void){
int a=6; // 这里定义了一个与全局变量同名的局部变量
printf("%d", fun(fun(a,b), c)); // 此函数中的变量a其实是上面那句定义的局部变量a,其值为6
}
局部变量会在其作用域内屏蔽全局变量,所以在main函数中a的值是6,因此最终的正确答案应该为D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bec1679
2015-06-06 · TA获得超过2185个赞
知道大有可为答主
回答量:1093
采纳率:66%
帮助的人:613万
展开全部
  1. int fun(int a, int b ); 首先你要明白这里的a,b只是局部变量,和外面的全局变量a,b没任何关系

  2. c= a>b?a:b     意思是,取a,b中的最大值,并返回,fun功能为返回a,b中值大的一个

  3.  “%d” , fun( fun(a,b),c);  --->  一个输出格式符%d,输出的是一个数字

     fun(a,b) 返回的是3, fun(3,c) 返回的是c,   c=5,    所以答应选 A

更多追问追答
追问
那就是中间的那段式子取最大值那个就在这个题里面没有意义嘛
后面也不会用到它的值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
eXistenZz
2015-06-06 · 超过14用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:23.1万
展开全部
输出应该是D.6吧。第一次fun(6, 3)返回6,第二次fun(6, 5)还是返回6
更多追问追答
追问
答案给的是A,还有那个fun函数就是取前面的那个吗
追答
答案应该是错的。第一次fun函数的参数分别是a = 6, b = 3,然后fun函数返回的结果是6,这个6继续作为外层fun函数的第一个参数a的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哦啦楼梯啊路lz
2015-06-06 · TA获得超过1570个赞
知道答主
回答量:48
采纳率:100%
帮助的人:12.2万
展开全部
定义了三个全局变量,所以a在所有时候都为2
所以fun(a,b)=fun(2,3)=3
fun(fun(a,b),c)=fun(3,5)=5
所以输出了5
追问
……那中间的那段式子没有用吗?还有那个下面有重新定义了a为6,也没用吗
追答
你可以去看看
【例8-14】外部变量与局部变量同名。
答案应该是D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式