问题 解答题

抛物线y2=2px的焦点弦AB的中点为M,A、B、M在准线上的

影依次为C、D、N.求证:

(1)A、O、D三点共线,B、O、C三点共线;

(2)FN⊥AB(F为抛物线的焦点)

答案

(1)设A(x1,y1)、B(x2,y2)、中点M(x0,y0),焦点F的坐标是(,0).

得ky2-2py-kp2=0.

∴A、B、M在准线上的射影依次为C、D、N,

∴C(-,y1)、D(-,y2)、N(-,y0).

由ky2-2py-kp2=0

得y1y2=-p2

∴kOA=kOD,∴A、O、D三点共线.同理可证B、O、C三点共线.

(2)kFN,当x1=x2时,显然FN⊥AB;当x1≠x2时,

kAB

,∴kFN·kAB=-1.∴FN⊥AB.综上所述知FN⊥AB成立.

同答案

问答题

以下是某C程序段及其功能描述,请仔细阅读程序并完成要求。
企业发放的奖金根据利润提成,发放规则如下:
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成。从键盘输入当月利润I,输入应发放奖金总数。
#include<stdio.h>
#include<stdlib.h>
int main()

long int gain;
int prize1,prize2,prize4,prize6,prize10,prize=0;
puts("************************************"):
puts("*The program will solve *");
puts (" *the problem of prize distribution*");
puts("************************************"):
puts("please input the nUN of gain:");
scanf("%ld",&gain);
prize1=100000*0.1;
prize2=prize1+100000*0.075:
prize4=prize2+200000*0.05:
prize6=prize4+200000*0.03:
prize10=prize6+400000*0.015:
if(gain<=100000)
prize=gain*0.1;
else if(gain<=200000)
prize=prize1+(gain-100000)*0.075;
else if(gain<=400000)
prize=prize2+(gain-200000)*0.05:
else if(gain<=600000)
prize=prize4+(gain-400000)*0.03:
else if(gain<=1000000)
prize=prize6+(gain-600000)*0.015;
else
prize=prize10+r gain-1000000)*0.01:
printfCThe prize is:%d\n",prize);
getch();
return 0;

设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%,需说明为什么。

判断题