单选题已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(  )。A Value operator+(Value v,int i);B Value operator+(Value v=value,int i);C Value operator+(Value v ,int i=0);D Value operator+(Value v=value,int i=0);

题目
单选题
已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(  )。
A

Value operator+(Value v,int i);

B

Value operator+(Value v=value,int i);

C

Value operator+(Value v ,int i=0);

D

Value operator+(Value v=value,int i=0);


相似考题
更多“单选题已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(  )。A Value operator+(Value v,int i);B Value operator+(Value v=value,int i);C Value operator+(Value v ,int i=0);D Value operator+(Value v=value,int i=0);”相关问题
  • 第1题:

    类MyClass的定如下,若要对value赋值,则下面语句正确的是( )。 class MyClass { public: MyClass(){} MyClass(int i){value=new int(i);} int*value; };

    A.MyClass my;my.value=10;

    B.MyClass my;*my.value=10;

    C.MyClass my;my.*value=10;

    D.MyClass my(10);


    正确答案:D
    解析: 因题目中定义的指针value是指向变量i的,所以直接利用语句MyClass(int i){value=new int(i);}对 value进行赋值即可。

  • 第2题:

    如下程序的输出结果是( )。 public class Test { void printValue(int m) { do { System.out.println("The value is"+m); } while( --m>10) } public static void main(String args[]) { int i=10; Test t=new Test(); t.printValue(i); } }

    A.The value is 8

    B.The value is 9

    C.The value is 10

    D.The value is 11


    正确答案:C
    解析:此题考查的是do-while循环和“--”操作符的知识。do-while最少执行一次,在执行完do中的内容后,判断while中的条件是否为true。如果为true,就再执行do中的内容,然后再进行判断。以此类推,直到while的判断为false时退出循环,执行循环后面的内容。而“--”操作符的规则是,变量右边的“--”将先进行运算,然后才使变量的值减一。而在变量左边的“--”,则先将变量的值减一再运算。本程序中I的值为10,当程序运行到do-while循环时,程序先执行一次循环后然后再做判断,因此选C。

  • 第3题:

    从切片中删除一个元素,下面的算法实现正确的是()

    A.

    func (s *Slice)Remove(value interface{}) error {for i, v := range *s { if isEqual(value, v) { if i== len(*s) - 1 { *s = (*s)[:i] }else { *s = append((*s)[:i],(*s)[i + 2:]...) } return nil }}return ERR_ELEM_NT_EXIST}

    B.

    func (s *Slice)Remove(value interface{}) error {for i, v := range *s { if isEqual(value, v) { *s = append((*s)[:i],(*s)[i + 1:]) return nil }}return ERR_ELEM_NT_EXIST}

    C.

    func (s *Slice)Remove(value interface{}) error {for i, v := range *s { if isEqual(value, v) { delete(*s, v) return nil }}return ERR_ELEM_NT_EXIST}

    D.

    func (s *Slice)Remove(value interface{}) error {for i, v := range *s { if isEqual(value, v) { *s = append((*s)[:i],(*s)[i + 1:]...) return nil }}return ERR_ELEM_NT_EXIST}


    参考答案:D

  • 第4题:

    类MyClass的定义如下,若要对value赋值,则下面语句正确的是( )。 classMyClass { public: MyClass( ){} MyClass(inti){value=newint(i);} int*value; };

    A.MyClassmy;my.value=10;

    B.MyClassmy;*my.value=10;

    C.MyClassmy;my.*value=10;

    D.MyClassmy(10);


    正确答案:D
    D。【解析】因题目中定义的指针value是指淘变量i的,所以直接利用语句MyClass(inti){value=newint(i);}对value进行赋值即可。

  • 第5题:

    有如下类定义: class Foo { public: Foo(int v) : value(v) { } // ① ~Foo() { } // ② private: Foo() { } // ③ int value = 0; // ④ }; 其中存在语法错误的行是( )。

    A.①

    B.②

    C.⑧

    D.④


    正确答案:D
    解析:此题考查的是类的定义。C++语言规定,在类体内不允许对所定义的数据成员进行初始化。

  • 第6题:

    有如下类声明: class Base{ protected: int amount; public: Base(int n=0):amount(n){} int getAmountconst{retum amount;} }; class Derived:public Base{ protected: int value; public: Derived(int m,int n):value(m),Base(n){} int getDataconst{return value+amount;} }: 已知x是一个Derived对象,则下列表达式中正确的是( )。

    A.x.value+X.getAmount

    B.x.getData一x.getAmount

    C.x.getData一x.amount

    D.x.value+X.amount


    正确答案:B
    本题考查公有继承中派生类对象对基类的访问属性。在公有继承中,派生类对象只能访问基类的公有成员,而不能}方问基类的保护成员和私有成员。题中x是派生类的对象,只能访问基类中公有的Base和getAmount成员,而不能访问保护类型的amount成员,故选项C、D错误。而类对象对类成员的访问也存在类似的情况,即类对象只能访问类的公有成员,而value是Derived的保护成员,所以A选项也错误。故答案为B。

  • 第7题:

    已知Value是一个类,Value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是( )。

    A.Value operator+(Value v,int i);

    B.Value operator+(Value v=value,int i);

    C.Value operator+(Value vint i=0);

    D.Value operator+(Value v=value,int i=0);


    正确答案:B
    解析: 本题考查的是for循环语句。执行循环语句,变量i从50递减,每次减2,所以循环会执行25次,输出 25个’*’。

  • 第8题:

    类MyClas的定义如下: class MyClas{ public: MyClas(){} MyClas(int a){ value=new.int(i); } int *value; }; 若要对类中的value赋值,则下面的语句中正确的是( )

    A.MyClas x;x.value=10;

    B.MyClas x; *x.value=10;

    C.MyClas x;x. *value=10;

    D.MyClas x(10);


    正确答案:D
    解析:选项A中,直接对地址赋值,因此选项A是错误的;c++中不能对未初始化的指针变量赋值,因此选项B是错误的;选项C有语法错误;选项D通过调用类的构造函数给value赋初值10。

  • 第9题:

    下面是重载双目运算符-的成员函数原形,其中最符合-原来含义的是( )。

    A.ValueValue::operator-(Value)

    B.ValueValue::operator-(int)

    C.Value&Value::operator-(Value)

    D.Value&Value::operator-(Value&)


    正确答案:A

  • 第10题:

    Given the following interface definition, which definitions are valid?()   interface I {   void setValue(int val);   int getValue();   }    DEFINITION a:   (a) class a extends I {  int value;   void setValue(int val) { value = val;  }   int getValue() {  return value;  }   }   DEFINITION b:   (b) interface b extends I {   void increment();   }   DEFINITION c:   (c) abstract class c implements I {   int getValue() {  return 0;  }  abstract void increment();   }   DEFINITION d:   (d) interface d implements I {  void increment();  }   DEFINITION e:   (e) class e implements I {  int value;   public void setValue(int val) { value = val; }  }  

    • A、Definition a.
    • B、Definition b.
    • C、Definition c.
    • D、Definition d.
    • E、Definition e.

    正确答案:B,C

  • 第11题:

    多选题
    Given the following interface definition, which definitions are valid?()   interface I {   void setValue(int val);   int getValue();   }    DEFINITION a:   (a) class a extends I {  int value;   void setValue(int val) { value = val;  }   int getValue() {  return value;  }   }   DEFINITION b:   (b) interface b extends I {   void increment();   }   DEFINITION c:   (c) abstract class c implements I {   int getValue() {  return 0;  }  abstract void increment();   }   DEFINITION d:   (d) interface d implements I {  void increment();  }   DEFINITION e:   (e) class e implements I {  int value;   public void setValue(int val) { value = val; }  }
    A

    Definition a.

    B

    Definition b.

    C

    Definition c.

    D

    Definition d.

    E

    Definition e.


    正确答案: A,B
    解析: 暂无解析

  • 第12题:

    单选题
    下列运算符函数中,肯定不属于类Value的成员函数的是(  )。
    A

    Value operator+(Value);

    B

    Value operator-(Value,Value);

    C

    Value operator*(int);

    D

    Value operator/(Value);


    正确答案: C
    解析:
    运算符作为非成员函数时,由于没有隐含this指针,因此所有的操作数必须出现在参数表中。B项,函数形参有两个操作数,必然是非成员函数;ACD三项都只有一个形参变量,有可能是要求两个操作数的成员函数。

  • 第13题:

    下列运算符函数中,肯定不属于类Value的成员函数的是( )。

    A.Value operator+(Value);

    B.Value operator-(Value,Value);

    C.Value operator*(int);

    D.Value operator/(Value);


    正确答案:B
    解析:此题考查的是运算符“-”的重载。“-”运算符有一元和二元两种,且均可以重载为成员函数和非成员函数。运算符重载为成员函数时,形参个数一般为运算符元素减1;重载为非成员函数时,形参个数一般和运算符元素相等。所以“-”运算符重载为成员函数时,参数可以是。个或1个;而重载为非成员函数时,参数个数可以是1个或2个。所以选项B),肯定是重载为非成员函数。

  • 第14题:

    有如下程序 include using namespace std;int i=1;class Fun {public:static int i;i

    有如下程序 #include <iostream>using namespace std;int i=1;class Fun {public:static int i;int value(){ return i-1;}int value()const{ return i+1;}};int Fun:: i=2;int main() {int i=3;Fun fun1;const Fun fun2;______________________return ();}若程序的输出结果是:123

    A.cout<<fun1.value()<<Fun:: i<<fun2.value();

    B.cout<<Fun::i<<fun1.value()<<fun2.value();

    C.cout<<fun1. value()<<fun2.value()<<Fun:: i;

    D.cout<<fun2.value()<<Fun:: i<<fun 1.value();


    正确答案:A

  • 第15题:

    有如下程序:includeusing namespace std;int i=1;class Fun{public:static int i;int

    有如下程序: #include<iostream> using namespace std; int i=1; class Fun { public: static int i; int value(){return i-1;} int value()const{return i+1;} }; int Fun::i=2; int main() { int i=3; Fun fun 1; const Fun fun2; ______ return 0; } 若程序的输出结果是: 123 则程序中横线处的语句是( )。

    A.cout<<fun1.value()<<Fun::i<<fun2.value();

    B.cout<<Fun::i<<fun1.value()<<fun2.value();

    C.count<<fun.value()<<fun2.value()<<Fun::i;

    D.cout<<fun2.value()<<Fun::i<<fun1.value();


    正确答案:A
    解析:此题因为定义的变量i是static类型的(main()函数内部的i只是一个局部变量),所以,选项A)中fun1.value()的返回值是1,Fun::i引用的是外部变量会输出2;fun2.value();会调用常成员函数int valueoconstfrerun i+1;}使得外部静态变量i的值增加为3,故输出3。

  • 第16题:

    已知Value是一个类,Value是Value的一个对象。 下列以非成员函数形式重载的运算符函数原形中,正确的是( )。

    A.Valueoperator+(Valuev,inti);

    B.Valueoperator+(Valuev=value,inti);

    C.Valueoperator+(Valuevinti=O);

    D.Valueoperator+(Valuev=value,inti=O);


    正确答案:B
    B。【解析】非成员函数的重载运算符函数的格式为operator+,是运算符+重载函数。

  • 第17题:

    已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是

    A.Value operator+(Value v, int i);

    B.Value operator+(Value v=value, int i);

    C.Value operator+(Value v, int i=0);

    D.Value operator+(Value v=value, int i=0);


    正确答案:B
    解析:类名operator+(类名String & s1,类名String & s2)。

  • 第18题:

    有如下程序: #include<iostream> using namespace std; int i=1; class Fun{ public: static int i; int value{return i—l;} int valueconst{return i+1;} }; int Fun::i=2; int main{ int i=3; Fun funl; const Fun fun2: __________________ return 0; } 若程序的输出结果是: 123 则程序中下画线处遗漏的语句是( )。

    A.cout<<funl.value<<Fun::i<<fun2.value;

    B.tout<<Fun::i<<funl.value<<fun2.value;

    C.cout<<funl.value<<fuIl2.value<<Fun::i:

    D.eout<<fun2.value<<Fun::i<<funl.value;


    正确答案:A
    本题考查构造函数、常成员函数和静态数据成员。外部同名的变量赋值,不能改变类的静态变量值,所以Fun对象里的i值为2,所以本题答案为A。

  • 第19题:

    类MyClass的定义如下: class MyClass { public: MyClass(){} MyClass(int i) { value=new int(i); } int *value; }; 若要对类中的value赋值,则下面的语句中,正确的是( )。

    A.MyClass my;my.value=10;

    B.MyClass my;*my,value=10;

    C.MyClass my;my.*value=10;

    D.MyClass my(10);


    正确答案:D

  • 第20题:

    下列程序的输出结果是( )。 public class Test { void printValue(int m) { do{ System.out.println("The value is"+m) } while(--m>10) } public static void main(String args[]) { int i=10; Test t=new Test: t.printValue(i); } }

    A. The value is 8

    B.The value is 9

    C.The value is 10

    D.The value is 11


    正确答案:C
    C。【解析】此题考查的是do-while循环和“--”操作符的知识。do-while最少执行一次,在执行完d0中的内容后,判断while中的条件是否为true。如果为true,就再执行do中的内容,然后进行判断。以此类推,直到while的判断为false时退出循环,执行循环后面的内容。而“--”操作符的规则是,变量右边的“-”将先进行运算,然后才使变量的值减一。而在变量左边的“--”,则先将变量的值减1再运算。本程序中i的值为10,当程序运行到do-while循环时,程序先执行一次循环,然后判断,因此选C。

  • 第21题:

    类aClass的定义如下:classaClass{public:aClass(){}aClass(inti){value=newint(i);}int*value;}若要对类中的value赋值,则下面的语句中,正确的是()。

    • A、aClassmy;my.value=10;
    • B、aClassmy;*my.value=10;
    • C、aClassmy;my.*value=10;
    • D、aClassmy(10);

    正确答案:D

  • 第22题:

    Given the following code:    public class Test {  void printValue(int m){  do {  System.out.println("The value is"+m);     }  while( --m > 10 )     }  public static void main(String arg[]) {     int i=10;  Test t= new Test();     t.printValue(i);     }     }  Which will be output?()    

    • A、 The value is 8
    • B、 The value is 9
    • C、 The value is 10
    • D、 The value is 11

    正确答案:C

  • 第23题:

    单选题
    类aClass的定义如下:classaClass{public:aClass(){}aClass(inti){value=newint(i);}int*value;}若要对类中的value赋值,则下面的语句中,正确的是()。
    A

    aClassmy;my.value=10;

    B

    aClassmy;*my.value=10;

    C

    aClassmy;my.*value=10;

    D

    aClassmy(10);


    正确答案: D
    解析: 暂无解析