南开大学

关于下面程序段说法正确的是()。class X { private: int n; public: X(X&); }; X::X(X&x) {n=x.n} X obj1,obj2(obj1);A.语句obj2(obj1);的功能是用对象obj2初始化具有相同类类型的对象obj1B.语句obj2(obj1);的功能是用对象obj1初始化具有相同类类型的对象obj2C.X(X&x)函数中不能访问对象的私有成员D.X(X&x)中的&符号可以删除

题目
关于下面程序段说法正确的是()。class X { private: int n; public: X(X&); }; X::X(X&x) {n=x.n} X obj1,obj2(obj1);

A.语句obj2(obj1);的功能是用对象obj2初始化具有相同类类型的对象obj1

B.语句obj2(obj1);的功能是用对象obj1初始化具有相同类类型的对象obj2

C.X(X&x)函数中不能访问对象的私有成员

D.X(X&x)中的&符号可以删除

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

第1题:

下列程序段执行结果是___________。 x = 1 print(type(x)) x = 1.0 print(type(x)) x = '1.0' print(type(x)

A.<class 'int'> <class 'float'> <class 'str'>

B.<class 'float'> <class 'int'> <class 'str'>

C.<class 'str'> <class 'float'> <class 'int'>

D.<class 'str'> <class 'int'> <class 'float'>


C.循环执行1次

第2题:

00330038003000301585067361821下列程序段执行结果是___________。 x = 1 print(type(x)) x = 1.0 print(type(x)) x = '1.0' print(type(x)

A.<class 'int'> <class 'float'> <class 'str'>

B.<class 'float'> <class 'int'> <class 'str'>

C.<class 'str'> <class 'float'> <class 'int'>

D.<class 'str'> <class 'int'> <class 'float'>


A

第3题:

2、关于下面程序段说法正确的是() class X { private: int n; public: X(X&); }; X::X(X&x) {n=x.n} X obj1,obj2(obj1);

A.语句obj2(obj1);的功能是用对象obj1初始化具有相同类类型的对象obj2

B.语句obj2(obj1);的功能是用对象obj2初始化具有相同类类型的对象obj1

C.X(X&x)中的&符号可以删除

D.X(X&x)函数中不能访问对象的私有成员


该类不能被继承

第4题:

关于下面程序段说法正确的是() class X { private: int n; public: X(X&); }; X::X(X&x) {n=x.n} X obj1,obj2(obj1);

A.语句obj2(obj1);的功能是用对象obj1初始化具有相同类类型的对象obj2

B.语句obj2(obj1);的功能是用对象obj2初始化具有相同类类型的对象obj1

C.X(X&x)中的&符号可以删除

D.X(X&x)函数中不能访问对象的私有成员


程序设计语言的发展大致经历了机器语言、汇编语言、高级语言阶段

第5题:

阅读以下说明和Java程序,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。
【说明】
以下Java代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分接口、类及其关系如图5-1所示。




【Java代码】
interface?DrawCircle?{? //绘制圆形 public(1) ;}class?RedCircle?implements?DrawCircle?{? ?//绘制红色圆形???????public?void?drawCircle(int?radius,intx,?int?y)??{????????????System.out.println("Drawing?Circle[red,radius:"?+?radius?+",x:"?+?x?+?",y:"?+y+?"]");???????}}class?GreenCircle?implements?DrawCircle?{????//绘制绿色圆形??????public?void?drawCircle(int?radius,?int?x,int?y)?{???????????System.out.println("Drawing?Circle[green,radius:"?+radius+",x:?"?+x+?",y:?"?+y+?"]");??????}}abstract?class?Shape?{????//形状? protected? ? (2)???;? ? public?Shape(DrawCircle?drawCircle)?{? ?this.drawCircle=?drawCircle;? ? ? public?abstract?void?draw();}class?Circle?extends?Shape?{? //圆形? ?private?int?x,y,radius;? public?Circle(int?x,int?y,intradius,DrawCircle?drawCircle)?{? ?(3)???;? this.x?=?x;? ? ? this.y?=?y;? ?this.radius?=radius;? }? ? ?public?void?draw()?{? ? drawCircle.? ?(4)? ?;? ? ? }}public?class?DrawCircleMain?{? public?static?void?main(String[]?args)?{? Shape?redCircle=new?Circle(?100,100,10,? (5) );//绘制红色圆形? Shape?greenCircle=new?Circle(200,200,10,(6) );//绘制绿色圆形? ?redCircle.draw(); greenCircle.draw();? ?}}


答案:
解析:
(1)void drawCircle (int radius,int x,int y)
(2)DrawCircle drawCircle
(3)super.drawcircle=drawcircle
(4)drawCircle(radius,x,y)
(5)new RedCircle()
(6)new GreenCircle()【解析】
第一空是填接口里面的方法,在接口的实现里面找,可以发现应该填void drawCircle (int radius,int x,int y)。
第二空可以根据后面this drawCircle=drawCircle判断,这里应该有一个drawCircle属性,因此应该填)DrawCircle drawCircle。
第三空这里用super,用super. drawcircle来引用父类的成员。
第四空调用drawCircle(radius,x,y)方法。
第五、六空分别创建一个红色圆形对象和一个绿色圆形对象作为Circle里面的实参。

第6题:

若x是int型变量,且有下面的程序段: for(x=3;x<6;x++) printf((x%2)?("**%d"):("##%d\n"),x); 此程序段的输出结果是( )。

A.**3 ##4 **5

B.##3 **4 ##5

C.##3 **4##5

D.** 3##4 **5


正确答案:D
解析:本题考查条件运算符。如果x%2非0,输出**和循环变量的值;如果x%2为0,输出##和循环变量的值。当循环变量为3和5时,分别输出**3和**5,当循环变量为4时,输出##4后换行。

第7题:

有如下程序:

#include<iostream>

using namespace std;

class AA{

int k:

protected:

int n;

void setK(int k){mis->k=k;}.

public:

void setN(int n){tllis->n=n;}

};

class BB:public AA{/*类体略*/};

int main(){

BB X;

x.n=l: //1

x.setN(2); //2

x.k=3: ///3

X.setK(4); //4

return 0;

}

在标注号码的4条语句中正确的是

A.1

B.2

C.3

D.4


正确答案:B
解析:类BB是公有继承基类AA的,因此在AA类中的保护成员,在BB类中是私有成员,因此1和4是错误的。AA类中的私有成员BB类不能调用,因此3是错误的,只有2是正确的。故本题答案为B)。

第8题:

下面程序的运行结果是( )。include main(){int a=25; fun(&A); }fun(int *x){ print

下面程序的运行结果是( )。

include<stdio.h>

main()

{int a=25;

fun(&A);

}

fun(int *x)

{ printf("%d\n",++*x);

}


正确答案:26
26 解析:在主函数中只调用了fun函数,调用时把变量a的地址传递给形参。fun函数的形参x是一个指针,其基类型与主函数中a的类型一致,因此在调用时得到的是a的地址,输出项是++*x,*x代表的就是主函数中变量a的存储单元,++*x就是使主函数中a的值加1,输出26。

第9题:

下列程序段中,A_class的成员函数Variance()可求出两数的平方差,请改写该程序段,把Variance()函数从A_class类中分离出来,用友元函数来实现该函数的功能。

class A_class {

 private:

   intx,y,t;

 public:

   A_class(int i,int j):x(i),y(j) {

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

   }

 intVariance(){return x*x-y*y;}

 //其它函数从略

};

void main() {

 A_classA_obj(3,5);

 cout<<"Result:"<<A_obj.Variance()<<endl;

}


答案:

class A_class {

  private:

    intx,y,t;

  public:

   A_class(int i,int j):x(i),y(j) {

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

    }

    friend?int?Variance();?

   //其它函数从略

};

  int Variance(){

    return x*x-y*y;

}

void main() {

  A_classA_obj(3,5);

 cout<<"Result:"<<A_obj.Variance()<<endl;

}