类和对象练习题

合集下载

C++基础习题(选择,循环,类与对象)

C++基础习题(选择,循环,类与对象)

1.11.C++概述例题5:C++的合法注释是()。

A./*This is a C program/* B.// This is a C programC.“This is a C program”D.//This is a C program//答案:B分析:单行注释常采用“//”,多行注释采用“/*”和“*/”。

单行注释也可采用“/*”和“*/”,但答案A书写格式错误,不能选答案A。

注释和字符串的区别,双引号内的字符为字符串。

不能选答案C。

单行注释不需要结束符“//”,如果有,只能作为注释的一部分存在。

也不能选答案D。

例题6:下面标识符中正确的是()。

A._abc B.3ab C.int D.+ab答案:A分析:C++的标识符由字母、下划线和数字组成,而且第一个字符不能为数字。

答案B第一个字符为数字不能选B。

标识符不能为关键字,不能选答案C。

答案D第一个字符不是字母或下划线,也不能选。

例题7:分析下列该程序的错误。

输入数据格式为:2,5(回车)。

main(){ int sum=0;int a,b;cout<<"input a,b:";cin>>a>>b;sum=a+b;cout<<sum<<endl;}本程序把输入的两个数据进行累加并输出结果。

输入数据格式为:2 5。

正确程序:#include <iostream> // 编译预处理命令,以“#”开头。

把系统已经定义好的输入//输出功能包含到本程序中。

using namespace std; //使用std 名字空间int main() // 程序的主函数{ // 主函数开始int sum=0; // 定义一个变量sum存放累加结果,并且赋初值为0int a,b; // 定义两个变量,保存输入值cout<<"input a,b:"; // 提示输入cin>>a>>b; // 使用基本输入设备cin输入两个变量值sum=a+b; // 进行累加,结果保存到sum变量cout<<sum<<endl; // 使用基本输出设备cout输出累加结果sum}分析:(1)没有使用编译预处理命令:#include。

《类与对象》课后习题(含答案)

《类与对象》课后习题(含答案)

问题一:程序执行结果是
问题二:本程序中,y、z 是 class Test{ public: static int Data; }; int Test::Data=100; //A void main(void) { Test t1,t2; t1.Data=200; t2.Data=300; //B //C
2、写出程序的输出结果。 #include <iostream> #include <cstring> using namespace std; class SomeClass { int One , Two; public: SomeClass(int a = 1, int b = 1) { One = a; Two = b; cout << "Structor" << endl; } SomeClass(SomeClass &obj) { { cout<<NumA<<'\t'<<"is Destructor."<<endl; } }; int main() { MyTestClass Myclass1(5), Myclass2.Print(); return 0; } 程序的运行结果为: Myclass2(Myclass1);
,第二行是
A.show( ); } 15 10 三、程序填空题
B.show( );
1、完成如下的类,在横线中填写合适的内容。 #include <iostream> #include <cstring> using namespace std; enum Esex{mid , man , woman};//枚举请自学 2.7 class Person { int Num; //编号 char Name[12]; //姓名 Esex Sex; //性别 float Weight; //体重 public: Person(int , char * , Esex , float); Person(); ~Person() {} void PrintInfo(); int Workdays(); }; Person::Person( { Num = id; int id ,char *name , Esex s , float w)

类和对象练习题

类和对象练习题

类和对象一、选择题1、下面对方法的作用描述不正确的是:( d )A、使程序结构清晰B、功能复用C、代码简洁D、重复代码2、方法内定义的变量:( b )A 、一定在方法内所有位置可见B、可能在方法内的局部位置可见C、在方法外可以使用D、在方法外可见3、方法的形参:(a)A、可以没有B、至少有一个C、必须定义多个形参D、只能是简单变量4、方法的调用:(c)A、必须是一条完整的语句B、只能是一个表达式C、可能是语句,也可能是表达式D、必须提供实际参数5、return 语句:( d)A、不能用来返回对象B、只可以返回数值C、方法都必须含有D、一个方法中可以有多个return 语句6、void 的含义:(d)A、方法体为空B、方法体没有意义C、定义方法时必须使用D、方法没有返回值7、main()方法的返回类型是:( c )A 、boolean B、int C、void D、static8、方法重载所涉及的方法:( a )A、有相同的名字B、参数个数必须不同C、参数类型必须不同D、返回类型必须不同9、下面关于类和对象之间关系的描述,正确的是( c )A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化10、下面关于java中类的说法哪个是不正确的( c )A、类体中只能有变量定义和成员方法的定义,不能有其他语句。

B、构造方法是类中的特殊方法。

C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。

11、下列哪个类声明是正确的( d)A、public void H1{…} B 、public class Move(){…}C、public class void number{}D、public class Car{…}12、下面的方法声明中,哪个是正确的(c)A、public class methodName(){}B、public void int methodName(){}C、public void methodName(){}D、public void methodName{}13、下述哪些说法是不正确的?( b )A、实例变量是类的成员变量B、实例变量是用static关键字声明的C、方法变量在方法执行时创建D、方法变量在使用之前必须初始化14、下面对构造方法的描述不正确是( b)。

C++_II_练习题(2)

C++_II_练习题(2)

C++ II 练习题(2)一.单项选择题(每题2分,共20分)1.在C++中,有关类和对象正确说法是( A )。

A.对象是类的一个实例 B.对象是类的存储空间C.一个类只能有一个对象 D.类是程序包,对象是存储空间2.在类定义中,称为接口的成员是( C )。

A. 所有类成员B. private或protected的类成员C. public的类成员D. public或private的类成员3. 一个类的友员函数能够通过( D )访问该类的所有成员。

A.静态数据 B.析构造函数 C.this指针 D.类对象参数4. 下面描述错误的是( B )。

A.自定义构造函数应该是公有成员函数 B.构造函数可以是虚函数C.构造函数在建立对象时自动调用执行 D.构造函数可以重载5. 在类的继承关系中,基类的(B)成员在派生类中可见。

A. 所有B. public和protectedC. 只有publicD. 只有protected6.设B类是A类的派生类,有说明语句A a, *ap;B b, *bp;则以下正确语句是(C)。

A. a=b;B. b=a;C. ap=&b;D. bp=&a;7.C++中,以下( D )语法形式不属于运行时的多态。

A. 根据if语句的求值决定程序流程B. 根据基类指针指向对象调用成员函数C. 根据switch语句的求值决定程序流程D. 根据参数个数、类型调用重载函数8. 假设对A类定义一个重载“+”号运算符的成员函数,以便实现两个A类对象的加法,并返回相加结果,则该成员函数的函数原型为( B )。

A.A operator +( const A &A1, const A &A2 ); B.A A:: operator +( const A &A2 );C.A::operator +( A &A2 ); D.A A::operator +( );9. 一个类模板定义了静态数据成员,则( A )。

C++程序设计练习题

C++程序设计练习题

C++程序设计练习题C++程序设计实验(下)练习题⼀、类与对象1.定义⼀个名为Rectangle的矩形类:(1)数据成员为矩形的长Len和宽Wid;(2)定义有参构造函数;(3)两个成员函数Area()和Length(),分别计算并输出矩形的⾯积和周长。

(4)定义主函数,创建⼀个Rectangle类对象:长为5,宽为2。

通过调⽤成员函数输出该矩形的⾯积和周长。

2.⽇期类。

定义⼀个⽇期类Cdate属性:⼀个包括年(year)、⽉(month)和⽇(day)三个整型私有数据成员。

⽅法:定义成员函数Setdate()设置⽇期、成员函数Isleapyear()判断是否为闰年、成员函数Print()输出⽇期。

定义主函数,对上述成员函数进⾏测试。

void main(){Cdate d1; //定义对象d1.Setdate(1999,12,30); //通过对象访问成员if (d1. Isleapyear())cout<<“闰年”;elsecout<<“⾮闰年!”;d1.Print();}3.员⼯问题1.定义⼀个⽇期类Date(1)私有数据成员包括:年(int year)、⽉(int month)、⽇(int day);(2)定义构造函数:Date(int _year, int _month, int _day),对数据成员进⾏初始化;(3)定义成员函数void print() const,打印⽇期信息(打印格式:年/⽉/⽇)。

2.定义⼀个员⼯类Employee(1)私有数据成员包括:姓名(char *name)、出⽣⽇期(Date birth)、⽉⼯资(double salary);(2)定义构造函数:Employee(char *_name, int year, int month, int day, double _salary),对数据成员进⾏初始化;(3)定义析构函数:~Employee(),释放堆空间;(4)定义成员函数double computSalary(double bonus) const,计算员⼯年薪(计算公式:12×⽉⼯资+年终奖),其中参数bonus为年终奖;(5)定义成员函数void print() const,打印员⼯信息,打印格式如下图所⽰。

JAVA类与对象及数组习题及答案

JAVA类与对象及数组习题及答案

JAVA 类和对象及数组习题一、选择题(1)下列构造方法的调用方式中,正确的是(D )——原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。

A.按照一般方法调用B。

由用户直接调用ﻫC.只能通过new 自动调用D。

被系统调用(2)在Java 中,能实现多重继承效果的方式是( C )——原因:一个类可以同时实现多个接口。

Java 接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。

◻A。

内部类B.适配器 C.接口D.同步(3)int 型public 成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java 中定义常量用关键字final 来定义.A.public int MAX_LENGTH=100 B。

finalintMAX_LENGTH=100 ﻫC.public const int MAX_LENGTH=100D.p ublic final int MAX_LENGTH=100(4)下列叙述中,正确的是( A)—原因:Java 严格区分大小写,所以变量number 与Number 不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*---——--*/"和文档注释/**-—---- */。

Java 源文件中的public 类只能有一个。

◻A.声明变量时必须指定一个类型ﻫ B. Java认为变量number 与Number 相同ﻫC. Java中唯一的注释方式是"//"ﻫD。

源文件中public类可以有0 或多个(5)下列叙述中,错误的是(D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。

所以可以认为子类是父类的扩展。

◻A。

父类不能替代子类B.子类能够替代父类ﻫC。

子类继承父类D.父类包含子类(6)下列代码中,将引起编译错误的行是(B)—原因:定义float 型变量并对其初始化时,其值后面要加一个f。

java类和对象练习题

java类和对象练习题

1.在如下所示的JAVA代码中,this关键字是指(B)。

public class Person{private String name;public void setName(String name){=name;}}(选择一项)(选择一项)A) Person类B) Person类自身对象的引用C) setName()方法的参数nameD) setName()方法2.以下对于JAVA中构造方法说法正确的是(C).(选择一项)A) 构造方法的名字可以与类名不一致B) 构造方法不能被重载C) 一个类必须包含至少一个构造方法D) 构造方法可以有返回值类型3.以下关于JAVA中的构造方法表述错误的是(B)。

(选择一项)A) 构造方法的名字和类名相同B) 构造方法不能被重载C) 构造方法的作用主要是在创建对象时执行一些初始化操作D) 构造方法没有返回值类型4.以下关于java中的方法重载说法错误的是(D)。

(选择一项)A) 重载的方法其方法名必须相同B) 重载的方法其参数个数或参数类型不同C) 构造方法可以被重载D) 成员方法不可以被重载5.在如下所示的Sample类中,共有( C)个构造方法public class Sample{private int x;private Sample(){x=1;}public void Sample(double f){this.x=(int)f;}public Sample(String s){}(选择一项)A) 4B) 3C) 2D) 16.构造方法重载的要素不包括(B)(选择一项)A) 方法名与类名相同B) 返回值类型不同C) 参数列表不同D) 在同一个类中7.给定如下JAVA代码,编译运行,结果将是(B)public class Sample{public double result(double d1,double d2){return d1<d2 ? d1 : d2;}public double result(int d1,double d2){return d1<d2 ? d1 : d2;}public double result(int d1,int d2){return d1-d2;}private int result(int i){return i;}public static void main(String [] args){Sample s=new Sample();System.out.print(s.result(2,3.0)+",");System.out.print(s.result(4.0,4.5)+",");System.out.print(s.result(10,9));}}(选择一项)A) 3.0 , 4.0, 1B) 2.0, 4.0, 1C) 3.0, 4.5, 1D) -1, 4.0, 18.给定如下Java代码,下列()方法可以加入到Sample类中,并且能够编译正确。

c++第6章-类和对象1-习题

c++第6章-类和对象1-习题
创建对象时系统自动调用相应的构造函数为对象初始化没有相应的构造函数时系统会自动生成
c++第6章-类和对象1
-习题课
胡凤珠
6.1 判断题 × 1.使用class定义的类,其默认的访问权限是公有的,使用struct定义 的类,其默认的访问权限是私有的。 × 2.类中的成员函数都是公有的,数据成员都是私有的。 × 3.定义在类体内的成员函数是内联函数,定义在类体外的成员函数不 能是内联函数。 √ 4.类定义后,它的成员个数及名称就不会再被改变了。 × 5.定义或说明对象时,系统会自动调用构造函数为创建的对象初始化。 如果类中没有定义任何构造函数时,就无法给定义的对象初始化。 √ 6.定义一个对象时,系统只为该对象的数据成员开辟内存空间,而成 员函数是同类对象共享的。 √ 7.对象成员的表示方法与结构变量成员的表示方法相同。 √ 8.创建对象时系统自动调用相应的构造函数为对象初始化,没有相应 的构造函数时,系统会自动生成。 √ 9.构造函数是一个其名与类名相同的特殊的成员函数。 × 10.析构函数是一个函数体为空的成员函数。
#include <iostream.h> class Rectangle { public: Rectangle(int a,int b)//2个参数的构造函数Rectangle { width=a; length=b; }//负责对对象的宽和长数据成员初始化 int Area()//求矩形的面积 { return width*length; } int Periment()//求矩形的周长 { return 2*(width+length); } void Changesize(int a,int b)//改变矩形的宽和长 { width=a; length=b; } void Print();//负责打印求的的面积和周长 private: int width,length; }; void Rectangle::Print() { cout<<"AREA="<<Area()<<endl; cout<<"PERIMENT="<<Periment()<<endl; } void main() { Rectangle r(5,8);//定义对象r 初始化 r.Print(); r.Changesize(3,9);//调用对象r的成员函数Changesize改变宽和长 r.Print(); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

D、X(double
k ){ i=k; }
22、设 ClassA 为已定义的类名,下列声明 Class A 类的对象 ca 的语句中正确的是( a )。
A、public ClassA ca=new ClassA( ); B、 public ClassA
ca=ClassA( );
C、 ClassA ca=new class( );
D、 int x(int
a,int b) { return 1.2*(a+b); } 21、设 i , j 为类 X 中定义的 double 型变量名,下列 X 类的
构造方法中不正确的是( a )。
A 、 double X(double k ){ i=k; return i; }
B、
X( ){i=6;j=8; } C、 X(double m, double n ){ i=m; j=n; }
中正确的是 ( d ) 。 A、 float A a; C、 A a=new int( );
B、 public A a=A( ); D、static A a=new
A( ); 18、设 i , j 为类 X 中定义的 int 型变量名,下列 X 类的构造
方法中不正确的是 ( a )。 A、 void X(int k ){ i=k; }
类和对象
一、选择题
1、下面对方法的作用描述不正确的是:( d d )
A、 使程序结构清晰
B、 功能复用
C、 代
码简洁
D、 重复代码
2、方法定义的变量:( b b )
A 、一定在方法所有位置可见
B、 可能在方法的局部
位置可见
C、 在方法外可以使用
D、 在方法外可见
3、方法的形参:( a)
A、可以没有
B、至少有一个 C、必须定义多个
D、一个 java 文件中可以有多个 class 定义。 11、下列哪个类声明是正确的( d)
A、 public void H1{…} {…}
B 、public class Move()
C、 public class void number{}
D、 public class
Car{…}
12、下面的方法声明中,哪个是正确的( c c)
A、方法体为空
B、方法体没有意义
C、定义方法ain()方法的返回类型是:( c c )
A 、boolean
B、 int
C、 void
D、 static
8、方法重载所涉及的方法:( a )
A、有相同的名字
B、参数个数必须不同 C、参数
类型必须不同 D、返回类型必须不同
D、static A(int
x){...} 20、下列方法定义中,不正确的是( c )。 A、 float x( int a,int b ) { return (a-b); } B、 int x( int
a,int b) { return a-b; } C、 int x( int a,int b ); { return a*b; }
9、下面关于类和对象之间关系的描述,正确的是( c c )
A、联接关系 B、包含关系 C、具体与抽象的关系
D、类是对象的具体化
10、下面关于 java 中类的说法哪个是不正确的( c )
A、类体中只能有变量定义和成员方法的定义,不能有
其他语句。
B、构造方法是类中的特殊方法。
C、类一定要声明为 public 的,才可以执行。
B、 X(int k ){ i=k; }
C、X(int m, int n ){ i=m; j=n; }
D、X( ){i=0;j=0; }
19、有一个类 A,以下为其构造方法的声明,其中正确的是
( b )。 A、void A(int x){...}
B、 public A(int
x){...} C、public a(int x){...}
D、 ca ClassA;
23、设 m , n 为类 A 中定义的 int 型变量名,下列 A 类的构
造方法中不正确的是( a )。
A、void A(int k ){ m=k; }
B、A(int k ){ m=k; }
C 、 A(int m, int n ){m=i; n=j; }
D、
A( ){m=0;n=0; } 24、设 i、j、k 为类 School 中定义的 int 型变量名,下列类
A、 public class methodName(){}
B、 public void
int methodName(){}
C、 public void methodName(){}
D、public void
methodName{}
13、下述哪些说法是不正确的?( b A、 实例变量是类的成员变量 用 static 关键字声明的 C、 方法变量在方法执行时创建 使用之前必须初始化
D、
public 16、下列类头定义中,错误的是( a )。
A、public x extends y {...}
B、public class
x extends y {...}
C、class x extends y implements y1 {...}
D、class x {...}
17、设 A 为已定义的类名,下列声明 A 类的对象 a 的语句
) B、 实例变量是
D、方法变量在
14、下面对构造方法的描述不正确是( b b )。 A、 系统提供默认的构造方法 B、 构造方法可以有参
数,所以也可以有返回值
C、 构造方法可以重载
D、 构造方法可以设置参

15、定义类头时,不可能用到的关键字是( bb b)。
A、 class
B、private
C、extends
形参
D、只能是简单变量
4、方法的调用:( c)
A、必须是一条完整的语句
B、只能是一
个表达式
C、可能是语句,也可能是表达式
D、必须提供
实际参数
5、return 语句:( d d)
A、不能用来返回对象
B、只可以返回数值
C、方法都必须含有
D、一个方法中可以有
多个 return 语句
6、void 的含义:( d d)
School 的构造方法中不正确的是( b )。
A、 School ( int m){ ... }
B、 void School ( int
m){ ... } C、School ( int m, int n){ ... }
D、School ( int h,int
相关文档
最新文档