c语言习题求解答。

#include <stdio.h>
int fun(int x,int y)
{
if(x!=y) return((x+y)/2);

else return (x);

}
main()
{
int a=4,b=5,c=6;

printf("%d\n",fun(2*a,fun(b,c)));

}
程序运行后的输出结果是()

求详细解答
还有 fun这个东西始终不懂。。

#include <stdio.h>是引入头文件 这个头文件是 stdio.h标准输入输出
第一个int fun 是一个函数 返回整数型(int) fun是函数名 当然 括号里(int x,int y)是两个整数型参数
函数体由{}括起来 if(x!=y) return((x+y)/2); else return (x);这两句是 如果x不等于y则返回(x+y)/2 的值 否则 返回 x的值
下面的main 是主函数 程序加载完头文件自动运行main函数 一个程序必须要有main函数 一般是int main()这样写比较规范 int a=4,b=5,c=6;这是定义三个整数变量 a,b,c 并赋予初值 语句结束后一定要加分号 printf是输出函数 头文件带的 printf(“%d”,整数变量);这句就是输出整数变量的值 当然 整数变量的位置也可以是一个又返回值的函数 %d代表以一个整数变量替换 不懂的请追问
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-02-18
一共两函数:main()主函数(运行从这里开始);fun(int x,int y) 函数(有人叫到时出来(运行))。
main()里a=4,b=5,c=6
然后printf("%d\n",fun(2*a,fun(b,c))); 是打印 fun(2*a,fun(b,c)) 的返回值(就是叫fun(int x,int y)童鞋出来算一下结果)
就是算 fun(2*a,fun(b,c)) 代入数值后= fun(8, fun(5,6) ) 这里里面fun(5,6) 还不知道是多少,所以先算里面的。(计算式由里而外,类似括号(),嗯我就这么理解吧)。
算fun(5,6) 就是叫 fun(int x,int y)童鞋出来算(告诉他x=5,y=6)。

而if(x!=y) return((x+y)/2); else return (x);的意义是xy不相等就返回(回答)(x+y)/2 (平均数),相等就回答x,

所以fun(5,6)=5.5=应该是5吧?,因为fun(x,y)定义前有int ,表示只回答整数。

fun(8, fun(5,6) ) =fun(8, 5 ) 同理 =int 6.5=6。
所以 显示了一个6。

菜鸟一枚突兴起,肆无忌惮众发指,待高人将来发觉时,念其诚恳勿责怪。
第2个回答  2014-02-18
fun是一个函数
它返回一个整形的变量
它接受2个参数x和y都是整形
函数里面描述了
如果x不等于y的话,就返回x+y然后除以2
如果x等于y就返回x,其实也是y,因为相等。

然后主函数调用这个函数,也就是main函数
首先定义了3 变量a b c
第一次调用是fun(b,c)
因为5不等于6,就返回5+6等于11的二分之一,应该是5.5,但是因为5.5要截取成整形,所以就是5
然后二次函数调用就是fun(2*a,5)
这样返回的就是8和5的平均数的截取6.5的截取是6
所以打印出一个6本回答被提问者采纳
第3个回答  2014-02-18
输出结果是6
fun(b,c)即fun(5,6),因为5不等于6,所以return(5+6)/2,即取整后为5

然后再带入main函数中fun(8,5),同理return(8+5)/2取整后为6

c语言的问题,求助解答。
1. (z>=y>=x)? 1:0 z>=y就是对的,所以为1 ,然后1>=x不对,所以为0,所以整个表达式为0 2. z>=y&&y>=x z>=y对为1 ,y>=x对为1,1&&1,所以答案为1,A

C语言编程作业,求解答
作业1:result(int)= c (char) * i (int) + f (float) \/ d (double) -(f + i);第一步:f+i, 一个float和int相加,按精度高的float进行计算,结果为float result = char * int + float\/double - float;第二步:char * int, 他们都是整数相加为int result =int + float\/double...

C语言 计算机题 求大神解答~
1、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是“a>=10||a<=0”。(D选项)解析:“≥”用“>=”表示,“或”用“||”表示。2、判断char型变量c是否为大写字母的表达式是“(c>='A')&&(c<='Z')”。(C选项)解析:大写字母是A~Z,加上单引号,可以直接用来判断是否符合要求...

C语言的题,都不难,帮忙解答,追加悬赏喔。麻烦把各个选项都解释解释最好...
这个union是表示,一块储存空间用short,long,char,三种类型来描述,所以c[0] 与i[0]一样的。这个程序是要打印s->c[0],printf("%x\\n", s ->c[0])这句里的%x表示打印的数字是十六进制的。由于c[0]里面放的是0x39,所以这里打印的正好是39.第三题:与第二题类似,注意这里求的是them的...

C语言入门题目,求详细易懂的解答过程。
答案为第一行:Tony。解答:for循环共循环2次,然后strcpy(a,b)比较两串字符大小,如果strcpy值大于0,则a大于b。具体的比较是看字符串的字母的ASCII码的大小,如果相同,再继续比较第二个,这个不赘述。主要看一下name[],对于一维数组来讲,它是元素,对于二维数组来讲,它不是具体的元素,而是...

C语言题目,求详细解答。
答案是:x=5,y=4,a=1;过程:当x=3,y=6时 执行while(x(3)++!=(y=5))a+=1; (a=1);if(y<x) break; (因为y=5,x=4,所以不成立,因此不执行)注意:这时x因为(x++)所以,x=4;继续执行while(x++(4)!=(y=4))(因为上面y通过想减已经为5了,再减一,等4,与x...

C语言问题,求解答
程序运行的结果是:3+1*3+1=7 b=7 选答案D 若要改变成(3+1)*(3+1)的效果,应定义为:define ABC(x) (x)*(x)

c语言求解答
赋值表达式的值等于等号右边的值,所以表达式的值为(a=b)?++c:d++ 三目运算符的值取决于第一个式子a=b的值,同上理由值为3,布尔值为1,所以 (a=b)?++c:d++的值是++C的值,即7;

C语言 求解答
【第一行】:x=1,y=1,z=1;if((x=2)&&(y=2)&&(z=2))首先,x=2是赋值,执行后x==2,并且此等式的值为2,所以if (x=2)的结果是true。其次,按照if的判断规则,遇到a&&b&&c这样的判断,当a为true后,会进行b的判断,如果b也为true,就继续进行c的判断。所以这一行会依次进行x=2...

c语言题求解答
1、因为逻辑运算是“左结合律”和“ 短路求值 ”的,另外C语言保证逻辑运算的求值顺序是从左往右的。2、第一个printf()没什么好说的,赋值如此,所以x=-1 y=-1 z=-1 3、第二个printf(),x=-1 y=0 z=0,要说明一下:++y&&++x||++z;它的运算过程先算++y它的值为0,决定了++y && ...

相似回答