东北农业大学22春《面向对象程序设计》在线作业三及答案参考22

假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为()。

a. pb=b;

b. pb=&b[0];

c. pb=b+2;

d. pb=b[5];


正确答案是:D


有如下定义语句:int a[]={1,2,3,4,5};,则对语句int*p=a;正确的描述是( )。

A.语句int*p=a;定义不正确

B.语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素

C.语句int*p=a;是把a[0]的值赋给变量p

D.语句iht*p=a;是把a[l]的值赋给变量p


正确答案:B


有如下定义语句:int a[]={1,2,3,4,5);,则对语句int *p=a;正确的描述是( )。

A.语句int *p=a;定义不正确

B.语句int *p=a;初始化变量p,使其指向数组对象a的第一个元素

C.语句int *p=a;是把a[0]的值赋给变量p

D.语句int *p=a;是把a[1]的值赋给变量p


正确答案:B


下面是类MyClass的定义,对定义中各种语句描述正确的是( )。

class MyClass { publiC: void MyClass(int a) //①

{ x=a; ) int func(int a,int b) //②

{ x=a; y=b; } int func(int a,int b,int c=0) //③

{ x=a; y=b; z=c; } static void resetValue() //④

{ x=0; } private: int X,y,Z; };

A.语句①是类MyClass的构造函数定义

B.语句②和语句③实现类成员函数的重载

C.语句④实现对类成员变量x的清零操作

D.语句①、②、③和④都不正确


正确答案:D
解析:类的构造函数没有返回类型,所以语句①是错误的;语句②和语句③将会使函数func()的调用产生歧义;成员函数resetValue()是静态成员函数,那么它不能访问类MyClass中的非静态数据成员,所以语句④也不正确。


下面是类MyClass的定义,对定义中各语句描述正确的是( )。 class MyClass { private: int x,y, z; public: void MyClass(int A) { x=a; } //① int f(int a, int B) //② { x=a; y=b; } int f(int a,

A.语句①是类MyClass 的构造函数的定义

B.语句②和③实现类成员函数的重载

C.语句④实现对类成员变量x的更新操作

D.语句①、②、③和④都不正确


正确答案:D
解析:在C++中构造函数没有返回类型,所以语句①是错误的。语句②和语句③在进行f(x,y)调用时会产生二义性。静态成员函数不能直接访问类中说明的非静态成员。所以语句④也是错误的。


东北农业大学22春面向对象程序设计在线作业三及答案参考1. 成员函数的参数可以设置默认值。( )A.对B.错参考答案:A2. 假定变量b和pb定义为“int b10,*pb=b;”,要将24赋值给b1元素中,不正确的语句是( )。A.*+pb=24B.*(pb+1)=24C.*+b=24D.*(b+1)=24参考答案:C3. 下述哪些说法是正确的( )。A.java语言中的类只能有一个构造函数B.程序员可以自己定义自己的异常C.java语言允许多继承D.socket在包中参考答案:BD4. 以下有关构造方法的说法,正确的是( )。A.一个类的构造方法可以有多个B.构造方法在类定义时被调用C.构造方法只能由对象中的其它方法调用D.构造方法可以和类同名,也可以和类名不同参考答案:A5. 虚基类的关键字是( )。A.protectedB.friendC.classD.virtual参考答案:D6. 若一个类的构造函数为Node (int a, int b) x=a; y=x*b;,则执行语句Node x(5, 6); 后,对象x的成员x和y的值分别是( )。A.6和5B.5和6C.5和30D.30和5参考答案:C7. 使用如setfill( )的操作符对数据进行格式输出时,应包含( )头文件。A.iostreamB.fstreamC.iomanipD.stdlib参考答案:C8. main方法是Java Application程序执行的入口点,下列main方法原型( )是不正确的。A.public static void main(stringargs)B.public static void main(Stringargs)C.public static void main(Stringa)D.public static void main(String args)参考答案:A9. 假定用户没有给一个名为AB的类定义析构函数,则系统自动给出的缺省析构函数定义为AB( )。( )A.正确B.错误参考答案:A10. 在对String类进行查找比较操作时,字符串的长度( )。A.不变B.变长C.变短D.不一定参考答案:A11. 由C+源程序文件编译而成的目标文件的默认扩展名为( )。A.objB.likC.exeD.cpp参考答案:A12. 继承是( )的方法。A.将特殊的类变成通用的类B.把通用的参数传送给特殊的类的对象C.将通用的类变成特殊的类D.将已有的类添加新的特性,但不重写它们参考答案:CD13. 下列关于运算符重载的描述中,( )是正确的。下列关于运算符重载的描述中,( )是正确的。A.运算符重载可以改变操作数的个数B.运算符重载可以改变优先级C.运算符重载可以改变结合性D.运算符重载不可以改变语法结构参考答案:D14. 一个类可以作为另一个类的友元类。( )A.错误B.正确参考答案:B15. 下列循环结构中,不是无限循环的是( )。A.t=1; while(t-) coutB.t=1; docoutC.for(t=1; ; t+) coutD.for(t=0; t; t+) coutt;参考答案:D16. 有关带默认参数的函数的描述正确的是( )。有关带默认参数的函数的描述正确的是( )。A.只能在函数定义时设置默认参数值B.只能在函数声明时设置默认参数值C.函数调用时,必须使用默认的参数值,不能给出新的实参值D.设置默认参数时,应该设置最右边的若干个参数的默认值参考答案:D17. 类A是类B的友元,类B是类C的友元,则( )是正确的。A.类B是类A的友元B.类C是类A的友元C.类A是类C的友元D.以上都不对参考答案:D18. C+中用户定义的标识符可以与系统关键字同名。( )C+中用户定义的标识符可以与系统关键字同名。( )A.正确B.错误参考答案:B19. 若类A和类B的定义如下:class A int i,j; public: void get( ); class B:A/默认为私有派生int k; public; void make( ); void B:make( )k=i*j; 则上述定义中,( )是非法的表达式。A.void get( )B.int kC.void make( )D.k=i*j参考答案:D20. 可以在类的构造函数中对静态数据成员进行初始化。( )可以在类的构造函数中对静态数据成员进行初始化。( )A.正确B.错误参考答案:B21. 关于函数的描述中,( )是正确的。A.派生类的虚函数与基类的虚函数具有不同的参数个数和类型B.基类中说明了虚函数后,派生类中其对应的函数一定要说明为虚函数C.虚函数是一个成员函数D.虚函数是一个static类型的成员函数参考答案:C22. 字符串“XyZ”在内存占用的字节数是( )。A.3B.4C.6D.8参考答案:B23. 有下面类的说明,有错误的语句是( )。Class XA.int a=2; B.X( ); public: C.X(int val); D.X( );A.AB.BC.CD.D参考答案:A24. 派生类的对象对它的基类成员中( )是可以访问的。A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员参考答案:A25. 下面哪些判断是正确的( )A.Abstract不能和final并列修饰同一个类B.一个方法使用final修饰,则该方法所在的类不能被继承C.abstract方法所在的类必须是abstract类D.static方法中能处理非static域参考答案:ABC26. 在类的定义中,引入友元的原因是提高效率。( )A.错误B.正确参考答案:B27. 有类定义:abstract class Apublic abstract void f( ); 下面关于该类的描述中正确的是( )。A.该类的方法不能被重载B.该类可以用new A( ); 实例化一个对象C.该类不能被继承D.以上说法都不对参考答案:D28. 选出合理的标识符( )A._sys1_lllB.2mailC.$changeD.class参考答案:AC29. Java语言中的数组元素只能是基本数据类型而不能为对象类型。( )A.正确B.错误参考答案:B30. 已知“int a=10; int &r=a; r=r+20; couta;”,则输出为( )。A.10B.20C.30D.不确定值参考答案:C31. 下列函数中,用于对文件进行写操作的是( )。A.getline( )B.put( )C.get( )D.eof( )参考答案:B32. 默认形参值应在函数定义处指定。( )A.正确B.错误参考答案:B33. char str=“hello”;int a=sizeof(str);a的值是( )。A.6B.7C.8D.9参考答案:A34. 假定X为一个类,执行X a3,*p2;语句时会自动调用该类的构造函数( )次。假定X为一个类,执行X a3,*p2;语句时会自动调用该类的构造函数( )次。A.2B.3C.4D.5参考答案:B35. 下列代码的执行结果是( )。 public class Apublic static void main(Stringargs)int a=4, b=6, c=8; String s=abc; System.out.println(a+b+s+c);A.ababccB.46abc8C.464688D.10abc8参考答案:D36. 在类的定义形式中,数据成员、成员函数和( )组成了类定义体。A.成员的访问控制信息B.公有信息C.私有信息D.保护信息参考答案:A37. 下面关于析构函数描述正确的是( )。A.系统可以提供默认的析构函数B.析构函数必须由用户定义C.析构函数没有参数D.析构函数可以设置默认参数参考答案:AC38. 常量不能作为左值使用。( )A.错误B.正确参考答案:B39. 类的常量成员函数中只能使用常量数据成员。( )A.正确B.错误参考答案:B40. 下列哪个类声明是正确的?( )A.abstract final class Hl.B.abstract private move( ).C.protected private numberD.public abstract class Car.参考答案:D41. 如下哪些是Java中有效的关键字?( )A.ConstB.NULLC.falseD.thisE.native参考答案:CDE42. 友元函数的关键字是( )。A.privateB.protectedC.publicD.friend参考答案:D43. 以下哪些是Java语言的特点?( )A.面向对象B.安全可靠C.平台无关D.多支持线程E.支持分布操作参考答案:ABCDE44. 空类的声明( )是正确的。A.class类名;B.class类名;C.class类名D.class类名参考答案:B45. 以下为重载函数的一组函数声明的是( )。A.void print(int); void print(double)B.void fun(int); int fun(int)C.int max(int,int); int min(int,int)D.void mm( ); int mm( )参考答案:A46. 下列关于for循环和while循环的说法中哪个是正确的( )A.while循环能实现的操作,for循环也都能实现B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果C.两种循环任何时候都可替换D.两种循环结构中都必须有循环体,循环体不能为空参考答案:D47. 静态数据成员初

有如下定义语句:int a[]={1,2,3,4,5};,则对语句int*p=9;正确的描述是( )。

A.语句int*p=a;定义不正确

B.语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素

C.语句int*p=a;是把a[0]的值赋给变量p

D.语句int*p=a;是把a[1]的值赋给变量p


正确答案:B


下面是类MyChss的定义,对定义中语句描述正确的是( )。class MyClass{public:void MyClass(int a){X=a;) //①int f(int a, int b) //②{X=a;Y=b;}int f(int a,int b,int c=0) //③{X=a;Y=b;Z=c;stahc void g (){X=10;) //④private:int X,Y,Z;};

A.语句①是类MyClass的构造函数定义

B.语句②和语句③实现类成员函数的重载

C.语句④实现对类成员变量X的更新操作

D.语句①②③和④都不正确


正确答案:D


有如下定义语句:int a[]={1,2,3,4,5};,则对语句int * p=a;正确的描述是( )。

A.语句int * p=a;定义不正确

B.语句int * p=a;初始化变量p,使其指向数组对象a的第一个元素

C.语句int * p=a;是把a[0]的值赋给变量p

D.语句int * p=a;是把a[1]的值赋给变量p


正确答案:B


已知一个类A,其中Fun()函数是类A的一个成员函数,A*p,a;p=&a;,则下面语句正确的是( )。

A.语句p=&a;是把对象a赋值给指针变量p

B.语句A*p,a;p=&a;调用两次类A的构造函数

C.对语句*p.fun();的调用是正确的

D.语句 p->fun();和语句 a.fun();等价


正确答案:D
解析:A是把对象的地址值赋给指针;B只会调用一次类的构造函数;C正确的调用应是(*p).fun()。


假定变量a和pa定义为“doublea[10],*pa=a;”,要将12.35赋值给数组a中的下标为5的元素,不正确的语句是()。

  • A、pa[5]=12.35
  • B、a[5]=12.35
  • C、*(pa+5)=12.35
  • D、*(a[0]+5)=12.35

正确答案:D

更多 “东北农业大学22春《面向对象程序设计》在线作业三及答案参考22” 相关考题
考题 单选题假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。A pb=b;B pb=&b[0];C pb=new int;D pb=b[5];正确答案:D解析:暂无解析

考题 单选题假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。A pb=bB pb=&b[0]C ph=newintD pb=b[5]正确答案:B解析:暂无解析

考题 单选题假定变量b和pb定义为“intb[10],*pb=b;”,要将24赋值给b[l]元素中,不正确的赋值语句是()。A *(pb+l)=24B *(b+l)=24C *++b=24D *++pb=24正确答案:B解析:暂无解析

考题 单选题假定变量b和pb定义为“intb[10],*pb=b;”,要将24赋值给b[l]元素中,不正确的赋值语句是()。A *(pb+l)=24B *(b+l)=24C *++b=24D *++pb=24正确答案:A解析:暂无解析

考题 单选题假定变量b和pb定义为“intb[10],*pb=b;”,要将24赋值给b[l]元素中,不正确的赋值语句是()。A *(pb+l)=24B *(b+l)=24C *++b=24D *++pb=24正确答案:C解析:暂无解析

考题 单选题假定变量a和pa定义为“doublea[10],*pa=a;”,要将12.35赋值给数组a中的下标为5的元素,不正确的语句是()。A pa[5]=12.35B a[5]=12.35C *(pa+5)=12.35D *(a[0]+5)=12.35正确答案:A解析:暂无解析

考题 假定变量b和pb定义为“intb[10],*pb=b;”,要将24赋值给b[l]元素中,不正确的赋值语句是()。A、*(pb+l)=24B、*(b+l)=24C、*++b=24D、*++pb=24正确答案:C

考题 假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。A、pb=bB、pb=&b[0]C、pb=newintD、pb=b[5]正确答案:D

考题 假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。A、pb=b;B、pb=&b[0];C、pb=newint;D、pb=b[5];正确答案:D

考题 假定有定义“intb[10];int*pb;”,则不正确的赋值语句为()。A、pb=bB、pb=&b[0]C、ph=newintD、pb=b[5]正确答案:D