假设有函数模板定义如下:template typename T Max(T a,T b,Tc){c=a+b;}下列选项正确的是()A、)int x,y;char z;Max(x,y,z);B、)double x,y,z;Max(x,y,z);C、)int x,y;float z;Max(x,y,z);D、)float x;double y,z;Max(x,y,z);

题目

假设有函数模板定义如下:template< typename T >Max(T a,T b,T&c){c=a+b;}下列选项正确的是()

  • A、)int x,y;char z;Max(x,y,z);
  • B、)double x,y,z;Max(x,y,z);
  • C、)int x,y;float z;Max(x,y,z);
  • D、)float x;double y,z;Max(x,y,z);
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若x,y,z均被定义为整数,则下列表达式终能正确表达代数式1/(x*y*z)的是()

A、1/x*y*z

B、1.0/(x*y*z)

C、1/(x*y*z)

D、1/x/y/(floAt)z


参考答案:B

第2题:

若输入1.5、2.5,则以下程序的运行结果为______。main(){ float a,b; int c; scanf("%f,%f,",&a,&b); c=max(a,b); printf("%d",c);}max(x,y)float x,y;{ float z; z=x>y?x:y; return(z);}

A.1.5

B.2.5

C.2

D.3


正确答案:C

第3题:

若有如下函数模板定义,则正确使用该函数模板的语句是( )。templatevoid add(type a, type b, type 和c){ c=a+b ; }

A.float x,y,z;add(x,y,z) ;

B.int x,y,z;add(x,y,和z) ;

C.float x,y ;int z;add(x,y,z) ;

D.float x,y ;int z;add(x,y,和z) ;


参考答案:A

第4题:

下列函数定义中,会出现编译错误的是

A.max(int x,int y,int *z) { *z=x>y ? x:y; }

B.int max(int x,y) { int z; z=x>y ? x:y; return z; }

C.max(int x,int y) { int z; z=x>y?x:y; return(z); }

D.int max(int x,int y) { return(x>y?x:y); }


正确答案:B
解析:定义函数时,若需要声明形式参数时,则每个形式参数都必须单独声明类型。

第5题:

有下列函数定义: int fun(double a,double b) {return a*b;} 若下列选项中所用变量都已经正确定义并赋值,错误的函数调用是( )。

A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(X,y)x,y);

D.fun(x,y);


正确答案:C
本题考查函数在函数调用时参数的传递形式,形参与实参参数个数类型要一致。

第6题:

设有如下的变量定义:

double x=4.700000;float y=2.5f;int z=7;

则执行表达式“y+z%3* (int) (x+y)%2/4”后的值是【 】。


正确答案:5
5 解析:根据算术运算的优先级规则,应先执行z%3* (int) (x+y)%2/4之后,再用其值与 y作加法运算。z%3*(int) (x+y)%2/4的执行顺序为先计算z%3,得值为1,再计算x+y并取整,其值为7,用z%3的值1.与(int) (x+y)的值7相乘得7,再计算7%2得值为1,再计算1/4,由于两个整数相除,其结果为商的整数部分,所以1/4的值为0。最后执行y+0,其结果为2.5。

第7题:

下列函数定义中,会出现编译错误的是 ______。

A.max(int x,int y,int *z) { *z=x>y? x:y;}

B.int max(int x,y) {int z; z=x>y? x;y; return z; }

C.max(int x,int y) { int z; z=x>y? x:y; return(z); }

D.int max(int x,int y) { return(x>y?x:y);}


正确答案:B
解析:本题考查函数的定义。选项B中函数形参y没有说明数据类型。

第8题:

以下选项错误的是

A.main()

{ int x,y,z;

x=0;y=x-1;

z=x+y;}

B.main()

{ int x,y,z;

x=0,y=x+1;

z=x+y;}

C.main()

{ int x;int

int y;

x=0,y=x+1;

z=x+y;}

D.main()

{ int x,y,z;

x=0;y=x+1;

z=x+y,}


正确答案:D

第9题:

已知(X,Y)服从均匀分布,联合概率密度函数为

设Z=max{X,Y}求Z的概率密度函数fz(z)


答案:X与Y都服从(0, 1)上的均匀分布,则fx与fy在(0, 1)上恒等于1。
Z = z <==> {X = z && Y <= z} + {Y = z && X < z}
因此,fz(z)dz = fx(z)dz * Integrate[fy(z)dy, (0, z)] + fy(z)dz * Integrate[fx(z)dx, (0, z)]
fz(z)dz = zdz + zdz = 2zdz
故fz(z) = 2z,z属于(0, 1).


第10题:

下列程序将x、y和z按从小到大的顺序排列,请将下面的函数模板补充完整。template void ord

下列程序将x、y和z按从小到大的顺序排列,请将下面的函数模板补充完整。

template<class T>

void order( )

{

T al

if(x>y)

{

a=x;x=y; y=a;

}

if(y>z)

{

a=y;y=Z; z=a;

}

if(x>y)

{

a=X;X=y; y=a;

}

}


正确答案:T&xT&yT&z。
T&x,T&y,T&z。 解析: 本题要填入的是函数的形参表,此函数的功能是:x、y和z按从小到大的顺序排列,那么就涉及到改变传入的实参值的情况,因此要采用引用传递的方式。所以本惠空白处应填入,T&x,T&y ,T&z。

更多相关问题