CSP-J 2023 入门级 第一轮 阅读程序(1)

2023-09-21 18:23:06

【题目】

CSP-J 2023 入门级 第一轮 阅读程序(1)

#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的正整数,完成下面的判断题和单选题:
判断题:
16. 当输入为"2 2 2"时,输出为"1.7321"( )
17. 将第7行中的"(s-b)*(s-c)“改为”(s-c)*(s-b)"不会影响程序运行的结果( )
18. 程序总是输出四位小数( )
单选题
19. 当输入为"3 4 5"时,输出为( )
A. “6.0000” B. “12.0000” C. “24.0000” D. “30.0000”
20. 当输入为"5 12 13"时,输出为( )
A. “24.0000” B. “30.0000” C. “60.0000” D. “120.0000”

【题目考点】

1. 数学
  • 海伦公式
    三角形三条边边长分别为:a, b, c
    三角形半周长: p = ( a + b + c ) / 2 p = (a+b+c)/2 p=(a+b+c)/2
    三角形面积: S = p ( p − a ) ( p − b ) ( p − c ) S = \sqrt{p(p-a)(p-b)(p-c)} S=p(pa)(pb)(pc)
  • 勾股数
    满足 a 2 + b 2 = c 2 a^2+b^2=c^2 a2+b2=c2的三个数字
    常见的勾股数有:3 4 5, 6 8 10, 5 12 13…

【解题思路】

先看f函数

double f(double a, double b, double c) {
    double s = (a + b + c) / 2;
    return sqrt(s * (s - a) * (s - b) * (s - c));
}

很明显,a,b,c是三角形的三条边,s是半周长,f函数为使用海伦公式求三角形的面积。

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;
}

主函数中前两句是用于设定浮点数输出格式,输出时固定保留4位小数,最后一位四舍五入,不足4位则补0。
而后输入三角形三条边长,输出三角形面积。
注意:虽然本题使用了海伦公式求三角形面积,但具体在做题时,我们可以通过自己熟悉的或更方便的方法求三角形面积。

判断题
16. 当输入为"2 2 2"时,输出为"1.7321"( )

答:T
边长为2的等边三角形,高为 2 2 − 1 2 = 3 \sqrt{2^2-1^2}=\sqrt{3} 2212 =3 ,面积为 S = 2 ∗ 3 / 2 = 3 S=2*\sqrt{3}/2=\sqrt{3} S=23 /2=3 3 \sqrt{3} 3 保留4位小数就是1.7321。
如果忘了 3 \sqrt{3} 3 的值了,针对这个问题,可以求一下 1.7321 0 2 ≈ 3.0002 > 3 1.73210^2 \approx 3.0002> 3 1.7321023.0002>3 1.7320 5 2 ≈ 2.999997 < 3 1.73205^2\approx 2.999997 < 3 1.7320522.999997<3,所以 1.73205 < 3 < 1.73210 1.73205 < \sqrt{3} < 1.73210 1.73205<3 <1.73210,四舍五入到小数点后第四位,得到 3 ≈ 1.7321 \sqrt{3}\approx 1.7321 3 1.7321

  1. 将第7行中的"(s-b)*(s-c)“改为”(s-c)*(s-b)"不会影响程序运行的结果( )

答:T
乘法交换律,两个数字相乘,交换顺序结果不变。

  1. 程序总是输出四位小数( )

答:T
cout.flags(ios::fixed);cout.precision(4);运行这两句后,设置了输出浮点数的格式为保留4位小数输出。

单选题
19. 当输入为"3 4 5"时,输出为( )
A. “6.0000” B. “12.0000” C. “24.0000” D. “30.0000”

答:A
3 4 5是勾股数,边长为3 4 5的三角形是直角三角形,直角边为3 4,面积为: S = 3 ∗ 4 / 2 = 6 S=3*4/2=6 S=34/2=6

  1. 当输入为"5 12 13"时,输出为( )
    A. “24.0000” B. “30.0000” C. “60.0000” D. “120.0000”

答:B
5 12 13是勾股数,边长为5 12 13的三角形是直角三角形,直角边为5 12,面积为: S = 5 ∗ 12 / 2 = 30 S=5*12/2=30 S=512/2=30

【答案】

  1. T
  2. T
  3. T
  4. A
  5. B
更多推荐

【实战项目之个人博客】

目录项目背景项目技术栈项目介绍项目亮点项目启动1.创建SSM(省略)2.配置项目信息3.将前端页面加入到项目中4.初始化数据库5.创建标准分层的目录6.创建和编写项目中的公共代码以及常用配置7.创建和编写业务的Entity、Mapper、Service、Controller等基础代码8.按照页面,从前端或者后端开始实现

数学建模——统计回归模型

一、基本知识1、基本统计量总体:研究对象的某个感兴趣的指标。样本:从总体中随机抽取的独立个体X1,X2,…,Xn,一般称(X1,…,Xn)为一个样本,可以看成一个n维随机向量,它的每一取组值(x1,…,xn)称为样本的观测值。统计量:样本是总体的代表,抽取后不直接利用样本的观测值进行推断,而是把样本所包含的有关信息集中

Stable Diffusion - 采样器 DPM++ 3M SDE Karras 与 SDXL Refiner 测试

欢迎关注我的CSDN:https://spike.blog.csdn.net/本文地址:https://spike.blog.csdn.net/article/details/132978866Paper:DPM-Solver++:FastSolverforGuidedSamplingofDiffusionProbab

网络安全(黑客)自学

前言我是去年8月22日才正式学习网络安全的,因为在国营单位工作了4年,在广东一个月工资只有5000块,而且看不到任何晋升的希望,如果想要往上走,那背后就一定要有关系才行。而且国营单位的气氛是你干的多了,领导觉得你有野心,你干的不多,领导却觉得你这个人不错。我才24周岁,实在的受不了这种工作氛围,情绪已经压制了很多久,一

SSM - Springboot - MyBatis-Plus 全栈体系(十二)

第二章SpringFramework六、Spring声明式事务1.声明式事务概念1.编程式事务编程式事务是指手动编写程序来管理事务,即通过编写代码的方式直接控制事务的提交和回滚。在Java中,通常使用事务管理器(如Spring中的PlatformTransactionManager)来实现编程式事务。编程式事务的主要优

IM6ULL学习第18章Linux 系统对中断的处理

栈什么是栈栈是一段内存空间。ARM处理器程序的运行过程ARM芯片属于精简指令集(RISC:ReducedInstructionSetComputing)特点:1、对内存只有读和写两种指令,2、所有的数据运算都是在CPU内部完成的。举例实现a=a+b;CPU先在内存中读取a,b的值放入到CPU的寄存器(这里的寄存器不是指

openGauss学习笔记-76 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT简介

文章目录openGauss学习笔记-76openGauss数据库管理-内存优化表MOT管理-内存表特性-MOT简介76MOT简介openGauss学习笔记-76openGauss数据库管理-内存优化表MOT管理-内存表特性-MOT简介本节介绍了openGauss内存优化表(Memory-OptimizedTable,M

error:03000086:digital envelope routines::initialization error问题解决

目录问题描述:error:03000086:digitalenveloperoutines::initializationerror问题原因:nodejsV17版本发布了OpenSSL3.0对算法和秘钥大小增加了更为严格的限制,nodeJsv17之前版本没影响,但V17和之后版本会出现这个错误。解决方案:方法一:Vsc

Golang开发--defer关键字

defer是Go语言中的一个关键字,用于延迟执行函数或方法的调用。defer语句会将其后面的函数或方法调用推迟到当前函数返回之前执行,无论函数是正常返回还是发生异常。funcmain(){deferfmt.Println("defer1")deferfmt.Println("defer2")fmt.Println("H

Hadoop-Hbase

1.Hbase安装1.1安装zookeeper、hbase解压至/opt/soft,并分别改名配置环境变量并source生效#ZKexportZOOKEEPER_HOME=/opt/soft/zk345exportPATH=$ZOOKEEPER_HOME/bin:$PATH#HBASE_HOMEexportHBASE_

【Java毕设项目】基于SpringBoot+Vue科研管理系统的设计与实现

博主主页:一季春秋博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容:毕业设计(Java项目、小程序等)、简历模板、学习资料、面试题库、技术咨询。🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻不然下次找不到哟Sp

热文推荐