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