填空题
1. 请补充main()函数,该函数的功能是:求方程kx
2+px+j=0的根(方程的系数k,p,j从键盘输入)。
例如,当k=1,p=-2,j=1时,方程的两个根分别是:x1=1.00,x2=1.00。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
float k,p,j,disc,x1,x2,m,q;
scanf("%f,%f,%f",&k,&p,&j);
disc=p*p-4*k*j;
system("CLS");
printf("****the result****\n");
if(disc>=0)
{
x1=______;
x2=(-p-sqrt(disc))/(2*k);
printf("x1=%6.2f,x2=%6.2f\n",x1,x2);
}
else
{
m=______;
q=______;
printf("x1=%6.2f+%6.2f i\n",m,q);
printf("x2=%6.2f-%6.2f i\n",m,q);
}
}
【正确答案】
1、(-p+sqrt(disc))/(2*k)
-p/(2*k)
sqrt(fabs(disc))/(2*q)
【答案解析】 按照题目中的要求,求出二次方程的根,分别为x1和x2。因此,空一处填“(-p+sqrt(disc))/(2*k)”。当方程的判别式小于0时,方程有两个虚根。因此,空二处填“-p/(2-k)”;空三处填“sqrt(fabs(disc))/(2*q)”。