计算机二级

下列程序将x、y和z按从小到大的顺序排列,横线处应添加语句()。templatevoid fun (______)下列程序将x、y和z按从小到大的顺序排列,横线处应添加语句( )。 template<class T> void fun (______) { T a; 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; } }A.Tx,Ty,TzB.Tx;y;zC.T&x,T&y,T&zD.T&x,&y,&z

题目
下列程序将x、y和z按从小到大的顺序排列,横线处应添加语句()。templatevoid fun (______)

下列程序将x、y和z按从小到大的顺序排列,横线处应添加语句( )。 template<class T> void fun (______) { T a; 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; } }

A.Tx,Ty,Tz

B.Tx;y;z

C.T&x,T&y,T&z

D.T&x,&y,&z

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

若要以下程序的输出结果是32,则横线处应填_______. #include <stdio.h> fun(double x,double y,double z) { z=x*x+y*y;} void main() { int a=_______; fun(3,4,a); printf("%d",a); }


C 第一个if语句的判断条件中是逻辑与表达式,只有运算对象均非零结果才为真,执行第一个if判断条件,均为赋值表达式,第一个运算对象a=2非零,判断第二个表达式b=1也非零,所以条件成立执行c=2的赋值操作。执行第二个if判断条件中的逻辑或表达式,只要有一个对象非零结果就是真,本条件中c==3运算对象为假,所以需要判断第二个运算对象d=-1,结果为-1非零,所以条件成立,执行a=5,的操作,所以a值为5,b值为1,c值为2,d值为-1。

第2题:

5、设x,y和z均为int型变量,则以下语句: z=x; x=y; y=z; 的功能是()。

A.把x和y按从大到小排列

B.把x和y按从小到大排列

C.交换x和y的值

D.无确定结果


2、1、2

第3题:

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

下列程序将x、y和z按从小到大的顺序排列,请将下面的函数模板补充完整。 template<class T> void fun (______) { T a; 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; } }

A.T x,T y,T z

B.T x;y;z

C.T &x,T &y,T &z

D.T &x, &y, &z


正确答案:C
解析:函数fun的类型为void没有任何返回值,函数中变量的改变,即参数的改变应该影响实参。应该是地址传递方式,即把引用型作为函数形参。类T是类的抽象,可以利用模板建立各种数据类型的类。所以补全函数的定义为“T &x,T &y,T &z”。

第4题:

下列程序的输出结果为2,横线处应添加语句()。includeusing namespace std;{public:___

下列程序的输出结果为2,横线处应添加语句( )。 #include<iostream> using namespace std; { public: ______void fun(){cout<<1;} }; class TestClass2:public TestClass1 { public:void fun(){cout<<2;) }; int main() { TestClass1 *p=new TestClass2; p->fun(); delete p; Teturn 0; }

A.public

B.private

C.virtual

D.protected


正确答案:C
解析:由主函数main入手,定义TestClass1类的指针对象p指向派生类Testclass2。因为基类和派生类中都有fun函数,题目要求输出为2,就是基类对象访问派生类中fun函数。通过虚函数与指向基类对象的指针变量的配合使用,就能方便调用同名函数。所以这里将基类中的fun函数声明为virtual。并且当一个成员函数被声明为虚函数后,其派生类中的同名函数自动成为虚函数。

第5题:

下列程序将X、Y和Z按从小到大的顺序排列,横线处应添加语句( )。


正确答案:C

第6题:

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

下列程序将x,y和z按从小到大的顺序排列,请将下面的函数模板补充完整。 template<class T> void fun(______) { T a; 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; } }

A.T x,T y,T z

B.T x;y;z

C.T &x,T &y,T &Z

D.T &x,&y,&z


正确答案:C
解析:函数fun的类型为void没有任何返回值,函数中变量的改变,即参数的改变应该影响实参。应该是地址传递方式,即把引用型作为函数形参。类T是类的抽象,可以利用模板建立各种数据类型的类。所以补全函数的定义为“T &x,T &y,T &z”。

第7题:

在下列横线处应添加的语句是( )。 class Base{public:void fun(){cout<<"Base::fun"<<end1;}}; class: Derived: public Base { public: void fun() { ______//显示调用基类的fun函数 cout<<"Derived::fun"<<end1; } };

A.Derived::fun

B.Base::fun();

C.Pubic::fun

D.fun();


正确答案:B

第8题:

下列程序将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。

第9题:

阅读下列程序说明和c代码,将应填入(n)处的字句写在对应栏内。

[说明]

下面的程序利用递归算法计算x和y的最大公约数。

[函数2.1]

main ( )

{ int x,y,k,t;

scanf(" % d% d" , &x, &y);

if(x>y) { t=x;x=y; y=t;}

(1);

while(k! =0){

y=x;

(2);

k=y%x;

}

prinff( "% d" ,x); }

[函数2.2说明]

函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。

[函数2.2]

fun(ehar * str, char * substr)

{ int x,y,z;

(3);

for(x=0;str[ x] ! = '\O';x + + )

for(y=x,z=0;sabstr[z] = =str[y];(4),y+ +)

if((5)= ='\0') {

num + +;

break;

}

return(num);

}


正确答案:(1)k=y%x (2)x=k (3)int num=0 (4)z++ (5)substr[z+1]
(1)k=y%x (2)x=k (3)int num=0 (4)z++ (5)substr[z+1] 解析:(1)~(2)使用递归算法计算x和y的最大公约数时,不妨令yx,如果y除x余数得。则x即为所求;否则令y←x,x←余数,继续上述判断。
(3)此处应声明变量num并初始化;
(4)次循环的功能是从str的第y个位置起与substr做比较,循环过程中y和z应同时增1;
(5)若上面的循环重复执行,直到到达substr结束,则表示substr在str中出现一次。