二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 √,错误填 ⨉ ;除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分)
一、查看程序
#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)); // 第7行 } 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; }
二、程序分析
很明显,这是求三角形面积的海伦公式:
f(a, b, c)求公式的函数,在main()函数中将强制用4位小数输出。
三、题目分析
假设输入的所有数都为不超过 10001000 的正整数,完成下面的判断题和单选题:
判断题
1. (2分)当输入为
2 2 2
时,输出为1.7321
(对)【算一下即可,取下整】2. (2分)将第7行中的
(s-b)*(s-c)
改为(s-c)*(s-b)
不会影响程序运行的结果(对)【乘法交换律】3. (2分)程序总是输出四位小数(对)【
cout.flags(ios::fixed);
cout.precision(4);】单选题
1. 当输入为
3 4 5
时,输出为(A)A. 6.0000
B. 12.0000
C. 24.0000
D. 30.0000
【(3+4+5) / 2 = 6, sqrt(6*3*2) = 6】
2. 当输入为
5 12 13
时,输出为(B)A. 24.0000
B. 30.0000
C. 60.0000
D. 120.0000
【(12+13+5) / 2 = 15, sqrt(15*3*2*10) = 30】