万卷网 > 题目详情
题型:组合题

#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).

(2 分)当输入为“0 0 0 1 1 0 0 1”时,输出为“1.3090”。( )

A.正确 B.错误
(2).

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

A.正确 B.错误
(3).

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

A.正确 B.错误
(4).

(2.5 分)这段代码的含义为( )。

A.

 求圆的面积并 

B.

 求球的体积并

C.

求球的体积交 

D.

求椭球的体积并

(5).

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

A.正确 B.错误
(6).

当输入为“1 1 1 1 1 1 1 2”时,输出为( )。

A.

“3.1416”

B.

“6.2832”

C.

“4.7124”

D.

“4.1888”

更新时间:2022-12-06 14:55:43 |
【知识点】 CCF非专业级别软件能力认证CSP-S/提高级

相似题推荐

简答题

T4员工招聘

2026-04-17
简答题

T1社团招新

2026-04-17
简答题

T2道路修复

2026-04-17
简答题

T3谐音替换

2026-04-16
单选题

对一个大小为16(下标0-15)的数组构建满线段树,查询区间[3,11]时,最少需要访问多少个树结点(包括路径上的父结点和完全包含在查询区间内的结点)?

A.

7

B.

8

C.

9

D.

10

2025-10-17
公众号
客服 反馈
顶部