以下程序运行后的输出结果是 #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])这句写对着吗?
本回答被提问者采纳以下程序运行后的输出结果是 #include<stdio.h> int f(int x, int
最后计算f(3,6)=(6-3)*3=9,所以最后的输出结果就是9,执行以上程序结果如下:
以下程序段的输出结果是 #include <stdio.h> int fun(int x,int y){...
:8
以下运行程序后的输出结果是#include<stdio.h>main(){int x=1,y=1...
首先指出程序中的三处错误,第一个是int m n中间应该有逗号,第二个是swtich拼写有错误,第三个是打印输入语句printf("x=%d,y=%d",x,y)有误。修正后程序的运行结果是:x=6,y=6。代码运行结果如下图所示:程序运行过程解析:1、完成变量的赋值,其中有x=1,y=1,m=1,n=1。2、执行第一...
运行以下程序后的输出是()#include<stdio.h> int main(void) {
选C吧。这刚开始x=3.然后进入循环这是x=x-3输出0然后因为x=0所以!x为真所以继续执行循环这时x=-3输出因为x=-3所以!x为0(非真即为假).所以这时候退出循环程序结束
以下程序的输出结果为 #include stdio.h fun(int x) { static int a=...
include "stdafx.h"int fun(int x) { static int a=3; a+=x; return(a); } int main(int argc, char* argv[]){ printf("Hello World!\\n");int k=2,m=1,n;n=fun(k);n=fun(m);printf("%d",n);return 0;}
请问以下程序运行后的输出结果是 #include<stdio.h> main() {int x=...
x=011 八进制 转成10进制 1*8+1=9 开始 x=9 ++x=10 所以结果就是10
(33)有以下程序 #include int fun (int x,int y) { if (x!=y) retu...
include<stdio.h> int main(){ int fun(int x,int y);int a=4,b=5,c=6;printf("%d\\n",fun(2*a,fun(b,c)));return 0;} int fun(int x,int y){ if(x!=y) return((x+y)\/2);else return(x);} 若我没错的话,运行结果应该是:6。即答案:B吧。 给我个最佳评价啦。
下面程序运行后的输出结果是( ) #include <stdio.h> main( )
IDE:VS2019, Language: C++17),更正后代码如下:include <stdio.h> int main(){ int a = 3, b = 4;printf("%d %d %d ", a = a + 1, b + a, b + 1);printf("%d %d %d", a = a + 1, b + a, b + 1);return 0;} 输出结果为:4 8 5 5 9 5 ...
10、以下程序程序运行后的输出结果是( )。int f(int n){ static int...
int f (int n)int f(int n){ static int a=1;n+=a++; return n;} 函数里的a是静态变量,函数返回时不内存不回收,所以第一次进入函数时a为1,第二次为2 n+=a++相当于n=n+a++,a++表示先使用a,再自加1。所以第二次进来时a=2;然后选c很清楚了吧 ...
...程序,程序执行后输出结果是 #include <stdio.h> main() {int i...
此时i = 3, n = 3 接着执行for循环i++,i = 4时:进入dowhile循环,if(i%3)为真,跳出ifcontinue循环,不执行n++;判断while(!i)为假,跳出dowhile循环;执行循环外n++,此时i=4, n=4 接着执行for循环i++,n=5,5<5,因此判断forprintf循环不成立,跳出循环,最终输出n = 4;...