不是VIP会员,不能显示答案

题目解答

题目:
#include <iostream>

#include <cmath>

using namespace std;



const double r = acos(0.5) ;



int a1, b1, c1, d1;

int a2, b2, c2, d2;



inline int sq(const int x) {return x * x;}

inline int cu(const int x) {return x*x *x;}



int main ( )

{

cout.flags(ios::fixed) ;

cout.precision(4) ;



cin >> a1 >> b1 >> c1 >> d1;

cin >> a2 >> b2 >> c2 >> d2;



int t= sq (a1-a2) +sq (b1-b2) +sq (c1-c2) ;



if (t <= sq(d2-d1)) cout << cu(min(d1,d2))*r*4;

else if (t >=sq (d2+d1)) cout << 0;

else {

double x=d1-(sq (d1) - sq (d2) +t) / sqrt (t) / 2;

double y=d2-(sq (d2) - sq (d1) +t) / sqrt (t) /2;

cout << (x*x* (3*d1-x) +y*y* (3*d2-y)) *r;

}

cout << endl;

return 0;

}




假设输入的所有数的绝对值都不超过1000,完成下面的判断题和单选题:





判断题

1) 将第21行中t的类型声明从int改为double,不会影响程序运行的结果。( )

2) 将第26、27行中的“/sqrt(t)/2”替换为“/2/sqrt(t)”,不会影响程序运行的结果。( )

3) 将第28行中的“x*x”改成“sq(x)”、“y*y”改成“sq(y)”,不会影响程序运行的结果。( )

4) (2分)当输入为“00011001”时,输出为“1.3090”。( )


选择题

5) 当输入为“11111112”时,输出为( )。

6) (2.5分) 这段代码的含义为( )。
考点:
分析:
解答:
评论:
老师: