C语言补充代码题,下面是图片

img


能补充一下并解释解释吗?对函数的调用还有子函数不太熟悉,不知道怎么做

根据题目的意思,三个填空题如下填写:

第1空, 返回值为double,因为参与运算的都是double类型,且用于接收函数fun返回值的变量r为double类型,故返回值为double ;

第2空,因为参数只有一个,所以这里填f1,用于返回一个数的平方 ;

第3空,因为参数有两个,所以这里填f2, 用于返回两个数的乘积 .

补充代码如下:


#include <stdio.h>

double f1(double x){ //此函数用于计算一个数的平方 
    return x*x;
} 

double f2(double x,double y){  //此函数用于计算两个double变量相乘的积 
    return x*y;
}

//根据变量i的值来决定是调用计算一个数平方的函数f1,还是调用计算两个数的乘积的函数f2 
// 第1空, 返回值为double,因为参与运算的都是double类型,且要求结果为小数,故返回值为double 
double fun(int i,double x,double y){
    
    if(i==1)  //如果i的值为1,则调用f1计算x的平方,然后返回其平方 
        return f1(x);  //第2空,因为参数只有一个,所以这里填f1,用于返回一个数的平方 
    
    
    else  //如果i为其他值,则调用f2计算两个数的乘积,然后返回 
        return f2(x,y);  //第3空,因为参数有两个,所以这里填f2, 用于返回两个数的乘积 
    
}

int main(void){
    
    double x1=5,x2=3,r;
    
    r = fun(1,x1,x2);  //使用i的值为1,然后使用x1,x2来调用fun函数,用于计算x1的平方 
    r += fun(2,x1,x2);  //使用i的值为2 ,然后使用x1,x2来调用fun函数,用于计算x1和x2的乘积
    
    //打印结果 
    printf("\nx1=%f, x2=%f, x1*x1 + x1*x2=%f\n\n",x1,x2,r);
    
    return 0;
}

img