问题 问答题

质量m=0.6kg的篮球从距地板H=0.80m高处由静止释放,与水平地板撞击后反弹上升的最大高度h=0.45m.从释放到弹跳至h高处经历的时间t=1.1s,忽略空气阻力,取g=10m/s2.求:

(1)篮球与地板撞击过程中损失的机械能.

(2)地板对篮球的平均作用力.

答案

(1)篮球与地板撞击过程中损失的机械能为:△E=mgH-mgh=0.6×10×(0.8-0.45)J=2.1J

  (2)设篮球从H高处下落到地板所用时间为t1,刚接触地板时的速度为v1;反弹离地时的速度为v2,上升的时间为t2,由动能定理和运动学公式

下落过程:mgH=

1
2
mv12,解得:v1=4m/s,t1=
v1
g
=0.4s

上升过程:-mgh=0-

1
2
mv22,解得:v2=3m/s,t2=
v2
g
=0.3s

 篮球与地板接触时间为△t=t-t1-t2=0.4s

设地板对篮球的平均撞击力为F,由动量定理得:

(F-mg)△t=mv2+mv1

解得:F=16.5N

根据牛顿第三定律,篮球对地板的平均撞击力 F′=F=16.5N,方向向下

答:(1)篮球与地板撞击过程中损失的机械能为2.1J.

(2)地板对篮球的平均作用力为16.5N,方向向下.

问答题

已知检查括号匹配及注释、字符串处理的C源程序如下:

#include<stdio.h>

int brace,brack,paren;

void in_quote(int c);

void in_comment(void);

void search(int c);

/*rudimentary syntax checKer for C program*/

int main()

int c;

extern int brace,brack,paren;

while((c=getchar())!=EOF)

if(c==’/’)

if((c=getchar())==’*’)

in_comment(); /*inside comment*/

else

search(C) ;

else if(c==’\"||c=="")

in_quote(c); /*inside quote*/

else

search(c);

if(brace<0) /*output errors*/

printf("Unbalanced braces\n");

brace=0;

else if(brack<0)

printf("Unbalanced brackets\n");

brack=0;

else if(paren<0)

printf("Unbalanced parentheses\n");

paren=0;

if(brace>0) /*output errors*/

printf("Unbalanced braces\n");

if(brack>0)

printf("Unbalanced brackets\n");

if(paren>0)

printf("Unbalanced parentheses\n");

return 0;

/*search:search for rudimentary syntax errors*/

void search(int c)

extern int brace,brack,paren;

if(c==’’)

++brace;

else if(c==’’)

--brace;

else if(c==’[’)

++brack;

else if(c==’]’)

--brack;

else if(c==’(’)

++paren;

else if(c==’)’)

--paren;

/*in_comment:inside of a valid comment*/

void in_comment(void)

int c,d;

c=getchar();

d=getchar(); /*curr character*/

while(c!=’*’||d!=’/’) /*search for end*/

c=d;

d=getchar();

/*in_quote:inside quote*/

void in_quote(int c)

int d;

while((d=getchar())! =c) /*search end quote*/

if(d==’\\’)

getchar(); /*ignore escape seq*/

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

单项选择题