问题 单项选择题

下面程序的输出结果是( )。 #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数据中的最大值。

论述题
单项选择题 B型题