题库 信息学奥赛题库 题目列表 2021年CSP-S提高组初赛阅读程序题:#include &lt...
组合题

2021年CSP-S提高组初赛阅读程序题:

#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不会影响程序运行的结果。(  )

A.
正确
B.
错误
第2题 判断

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

A.
正确
B.
错误
第3题 判断

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

A.
正确
B.
错误
第4题 判断

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

A.
正确
B.
错误
第5题 单选

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

A.

3.1416” 

B.

 “6.2832

C.

 “4.7124

D.

 “4.1888

第6题 单选

这段代码的含义为(  )。

A.

求圆的面积并

B.

求球的体积并

C.

求球的体积交  

D.

求椭球的体积并

题目信息
阅读程序 2021年 初赛
-
正确率
0
评论
188
点击