问题 单项选择题

下面程序的输出结果是( )。
#include<iostream>
using namespace std;
template<class T>
T max(T x,T y)
return(x>= y x:y);
template<class T>
T max(T x,T y,T z)

T t; t=(x>=y x:y);
return(t>=z t:z);

void main() int x = 10,y=18,maxi;
float a = 1.2,b = 3.2,c = 2,max2;
max1 = max(x,(int)c);
max2 = max(a,b,(float)y);
cout<<maxi<<endl;
cout<<max2<<endl;

A.18
3.2

B.10
18

C.10
3.2

D.编译出错

答案

参考答案:B

解析: 本道题考查函数模板以及函数模板重载的使用,max1=max(x,(int)c)语句会实例化T max(T x, T y)函数模板,返回两个int数据中的最大值;max2=max(a,b,(float)y);语句会实例化T max(T x, T y, T 2)函数模板,返回3个float数据中的最大值。

单项选择题
单项选择题