以下程序运行后的输出结果是 #include<stdio.h> int f(int x, int y) { return((y-x)*x); } main() { int a=3, b=4, c=5, d; d=f(f(a, b), f(a, c)); printf("%d\n", d); }求详细步骤谢谢~~~~
由于f(int x,int y)函数返回的值是(y-x)*x,相当于说f(int x,int y)=(y-x)*x;
这里主要是计算嵌套函数f(f(a, b), f(a, c));
先将f(a, b)和 f(a, c)带进去,得到f((b-a)*a,(c-a)*a)=f((4-3)*3,(5-3)*3)=f(3,6)
最后计算f(3,6)=(6-3)*3=9,
所以最后的输出结果就是9,执行以上程序结果如下:
扩展资料:
C语言中函数的定义都是相互平行、相互独立的,但是在调用的时候可以互相嵌套,就是指将某函数作为另一函数的参数使用,为大家所熟知的例子就是qsort函数会将一个比较器cmp作为参数。
void __fileDECL qsort (
void *base,
size_t num,
size_t width,
int (__fileDECL *comp)(const void *, const void *)
)
f(int x,int y)这个函数返回的值是(y-x)*x
太感谢啦~一下子全部都明白了~~~
追答太客气了,能解决你的问题我也很高兴!
追问#include 〈stadio .h〉void main (){char *s=“12134211”; int v[4]={0,0,0,0},k,i; for (k=0;s[k];k++){switch(s[k]{case ‘1’:i=0;case‘2’:i=1;case‘3’:i=2;case‘4’:i=3;}v[i]++;}for(k=0;k<4;k++)printf(“%d”,v[k]);}
这道题您会吗?
追答把你写好的C文件发过来!
追问这个就是那道题。
完整的
要不给你照下来吧。试卷上的。
不太清楚您凑合着看吧
追答我知道了!你注意一下switch的用法!case:后面都没有break,所以每次i都等于3,每次都运行v[3]++
共有八个数,运行八次v[3]++,v[3]=8,v[0],v[1],v[2]都为0!
谢了啊;-)
为什么V[3]是8呢
追答加了8次1,本来V[3]是0,V[3]从0变到8!
追问#include〈stadio.h〉
main()
{ int
a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;
for (i=0;i<4;i++)
p[i]=&a[i*3];
printf(“%d\n”,p[3][2]);
}
这道题您会吗?
printf(“%d\n”,p[3][2])这句写对着吗?
本回答被提问者采纳