QQ扫一扫联系
1 #include 2 #include 3 using namespace std; 4 5 const double r = acos(0.5); 6 7 int a1, b1, c1, d1; 8 int a2, b2, c2, d2; 9 10 inline int sq(const int x) { return x * x; } 11 inline int cu(const int x) { return x * x * x; } 12 13 int main() 14 { 15 cout.flags(ios::fixed); 16 cout.precision(4); 17 18 cin >> a1 >> b1 >> c1 >> d1; 19 cin >> a2 >> b2 >> c2 >> d2; 20 21 int t = sq(a1 - a2) + sq(b1 - b2) + sq(c1 - c2); 22 23 if (t <= sq(d2 - d1)) cout << cu(min(d1, d2)) * r * 4; 24 else if (t >= sq(d2 + d1)) cout << 0; 25 else { 26 double x = d1 - (sq(d1) - sq(d2) + t) / sqrt(t) / 2; 27 double y = d2 - (sq(d2) - sq(d1) + t) / sqrt(t) / 2; 28 cout << (x * x * (3 * d1 - x) + y * y * (3 * d2 - y)) * r; 29 } 30 cout << endl; 31 return 0; 32 }
假设输入的所有数的绝对值都不超过 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.当输入为“0 0 0 1 1 0 0 1”时,输出为“1.3090”。()
单选题
5.当输入为“1 1 1 1 1 1 1 2”时,输出为()。
6.这段代码的含义为()
1.A.正确 B.错误
2.A.正确 B.错误
3.A.正确 B.错误
4.A.正确 B.错误
5.A. “3.1416” B. “6.2832” C. “4.7124” D. “4.1888”
6.A. 求圆的面积并 B. 求球的体积并 C. 求球的体积交 D. 求椭球的体积并
第一空(1.5分):__________________
第二空(1.5分):__________________
第三空(1.5分):__________________
第四空(1.5分):__________________
第五空(3分):__________________
第六空(3分):__________________