一、单选题
2-1
重载函数在调用时选择的依据中,错误的是(D)。
A.函数的参数
B.参数的类型
C.函数的名字
D.函数的类型
2-2
对定义重载函数的下列要求中,( C)是错误的。
A.要求参数的个数不同
B.要求参数中至少有一个类型不同
C.要求函数的返回值不同
D.要求参数个数相同时,参数类型不同
二、函数题
6-1 最大值函数重载
分数 10
作者 杨军
单位 四川师范大学
编写重载函数myMax可分别求取两个整数,三个整数,两个双精度数的最大值。
函数接口定义:
裁判测试程序样例:
/* 请在这里填写答案 */
int main(){
cout<<myMax(3,4)<<endl;
cout<<myMax(3,4,5)<<endl;
cout<<myMax(4.3,3.4)<<endl;
}
输入样例:
无
输出样例:
在这里给出相应的输出。例如:
4
5
4.3
#include<iostream>
using namespace std;
int myMax(int a,int b){
return a>b?a:b;
}
int myMax(int a, int b, int c){
return a>b?(a>c?a:c):(b>c?b:c);
}
double myMax(double a,double b){
return a>b?a:b;
}
三、编程题
7-1 计算三角形面积
分数 10
作者 张德慧
单位 西安邮电大学
从键盘输入三个数,用来表示三角形的三条边长。如果能构成三角形就输出三角形的面积,否则就输出No。
输入格式:
请在这里写输入三角形的三条边长,例如:
3.1 4.2 5.3
输出格式:
请在这里输出三角形的面积,例如:
6.50661
输入样例:
3.0 4.0 5.0
输出样例:
6
#include <iostream>
#include <cmath>
using namespace std;
int main(){
double a, b, c, p, s;
cin >> a >> b >> c;
if(a+b<=c || a+c<=b || b+c<=a){
cout << "No" << endl;
return 0;
}
p = (a+b+c)/2;
s = sqrt(p*(p-a)*(p-b)*(p-c));
cout << s << endl;
return 0;
}