正在载入在线练习界面,本页内容可直接阅读…

AK CSP › CSP-J 2023 第一轮真题 › 第 19 题

CSP-J 2023 第一轮 第 19 题:程序(一):输入3 4 5时的输出

阅读程序 · 初等数学与数学库函数 · 难度 较难 · 答案 A

题目

#include<iostream>
#include<cmath>
using namespace std;

double f(double a,double b,double c){
    double s=(a+b+c)/2;
    return sqrt(s*(s-a)*(s-b)*(s-c));
}
int main(){
   cout.flags(ios::fixed);
   cout.precision(4);

   int a,b,c;
   cin>>a>>b>>c;
   cout<<f(a,b,c)<<endl;
   return 0;
}

假设输入的所有数都为不超过 $1000$ 的正整数,完成下面的判断题和单选题:
CSP-J 2023 第一轮 第 19 题 原题
原题扫描(页面加载后可直接在线作答)

本小题

当输入为 3 4 5 时,输出为( )

选项

  • A. 6.0000
  • B. 12.0000
  • C. 24.0000
  • D. 30.0000

答案

A

题解

选 A. 6.0000。

把 \(a=3,\ b=4,\ c=5\) 代入函数:

  1. 计算半周长:

\[ s=\frac{3+4+5}{2}=6 \]

  1. 计算返回值(sqrt 表示开平方):

\[ \sqrt{s(s-a)(s-b)(s-c)} =\sqrt{6\times3\times2\times1} =\sqrt{36}=6 \]

ios::fixed 配合 cout.precision(4) 表示固定保留小数点后 4 位,所以输出为:

``text 6.0000 ``

这个函数使用的就是根据三角形三边求面积的海伦公式。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号