根据题目的意思,三个填空题如下填写:
第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;
}