求解C语言!!很急
4个回答
展开全部
#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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int fun(int a, int b ); 首先你要明白这里的a,b只是局部变量,和外面的全局变量a,b没任何关系
c= a>b?a:b 意思是,取a,b中的最大值,并返回,fun功能为返回a,b中值大的一个
“%d” , fun( fun(a,b),c); ---> 一个输出格式符%d,输出的是一个数字
fun(a,b) 返回的是3, fun(3,c) 返回的是c, c=5, 所以答应选 A
更多追问追答
追问
那就是中间的那段式子取最大值那个就在这个题里面没有意义嘛
后面也不会用到它的值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出应该是D.6吧。第一次fun(6, 3)返回6,第二次fun(6, 5)还是返回6
更多追问追答
追问
答案给的是A,还有那个fun函数就是取前面的那个吗
追答
答案应该是错的。第一次fun函数的参数分别是a = 6, b = 3,然后fun函数返回的结果是6,这个6继续作为外层fun函数的第一个参数a的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义了三个全局变量,所以a在所有时候都为2
所以fun(a,b)=fun(2,3)=3
fun(fun(a,b),c)=fun(3,5)=5
所以输出了5
所以fun(a,b)=fun(2,3)=3
fun(fun(a,b),c)=fun(3,5)=5
所以输出了5
追问
……那中间的那段式子没有用吗?还有那个下面有重新定义了a为6,也没用吗
追答
你可以去看看
【例8-14】外部变量与局部变量同名。
答案应该是D
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询