类和对象练习题

合集下载

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)

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(); }

类与对象练习题

类与对象练习题

C++类与对象习题一.问答题1.解释public和private的作用,公有类型成员与私有类型成员有什么区别?2.Protected 关键字有何作用?3.构造函数和析构函数有什么作用?二.选择题1.不是构造函数的特征()。

A. 构造函数的函数名与类名相同。

B. 构造函数可以重载。

C.构造函数可以设置缺省参数。

D.构造函数必须指定类型说明。

2.是析构函数的特征()。

A. 析构函数名与类名不同。

B. 析构函数的定义只能在类体内。

C.析构函数可以有一个或多个参数。

D.一个类中只能定义一个析构函数。

3.关于成员函数的特征的描述中,()是错误的。

A. 成员函数一定是内联函数。

B. 成员函数可以重载。

C.成员函数可以设置缺省参数。

D.成员函数可以是静态的。

4.由于常对象不能被更新,因此_________A.通过常对象可以调用任何不改变对象值的成员函数B.通过常对象只能调用它的常成员函数C.通过常对象只能调用静态成员函数D.常对象的成员都是常成员5 .下列对函数的缺省参数的定义和描述及对函数的调用中错误的为______.A. void show(char *text, int length=-1,int color=0);B. int getcolor(int pal);void show(char *text,int length=-1,int color=getcolor(pal));C.在设置了函数的缺省参数后,调用函数的对应实参就可以省略。

D. show(“how are you!”, ,);6.下列有关静态成员的叙述中,_______是正确的。

A、静态数据成员不是所有对象所共享的B、在类中声明静态数据成员时可以进行初始化C、静态成员函数只能访问类的静态成员D、非静态成员函数不能访问类的静态成员1.7.下面对引用的描述中是错误的。

A. 引用是某个变量或对象的别名B. 建立引用时,要对它初始化C. 对引用初始化可以使用任意类型的变量D.引用与被引用的变量是同一个地址。

(完整)C++面向对象程序设计习题 类与对象

(完整)C++面向对象程序设计习题 类与对象

类和对象(一)知识点:1.类与对象的概念,及两者的关系?2.类定义的格式,对象定义的格式,访问对象的成员的格式3.类中成员访问权限有哪几种,它们的特点?4。

如何对对象进行初始化?5。

构造函数与析构函数的特点,构造函数在哪些情况下被系统自动调用,析构函数什么情况下被调用;存在虚基类的派生类构造函数调用顺序?6.缺省构造函数的特点7。

拷贝构造函数的功能与特点8。

成员函数与内联函数的区别9.静态成员的概念与作用10.静态成员函数调用格式11.什么是友元,友元的作用12.作用域运算符的功能是什么?它的使用格式如何?13.满足成员函数重载的条件作业题一、选择填空1.在下列关键字中,用以说明类中公有成员的是( )。

A . public; B.private; C.protected; D.friend。

2.下列的各类函数中,( )不是类的成员函数.A.构造函数; B.析构函数; C.友员函数; D.拷贝初始化构造函数。

3.作用域运算符的功能是( )。

A.标识作用域的级别的;B.指出作用域的范围的;C.给出作用域的大小的;D.标识某个成员是属于哪个类的。

4.( )是不可以作为该类的成员的.A.自身类对象的指针;B.自身类的对象;C.自身类对象的引用;D.另一个类的对象。

5.( )不是构造函数的特征。

A.构造函数的函数名与类名相同;B.构造函数可以重载;C.构造函数可以重载设置缺省参数;D.构造函数必须指定类型说明。

6.()是析构函数的特征。

A.一个类中能定义一个析构函数;B.析构函数名与类名不同;C.析构函数的定义只能在类体内;D.析构函数可以有一个或多个参数。

7.通常的拷贝初始化构造的参数是()。

A.某个对象名;B.某个对象的成员名;C.某个对象的引用名;D.某个对象的指针名。

8.关于成员函数特征的下述描述中,( )是错误的。

A.成员函数一定是内联函数;B.成员函数可以重载;C.成员函数可以设置参数的缺省值;(只能一次)D.成员函数可以是静态的。

C++习题第06章 类和对象

C++习题第06章 类和对象

第06章类和对象1.填空题(1)类和对象是面向对象程序设计的两个最本概念,__表示抽象的概念,而__则是__的实例化。

(2)类的成员包括__和__两类。

(3)类的数据成员__在类的定义时进行初始化。

(能/不能)(4)类成员的访问方式包括__、__和__3种,默认的访问方式是__。

(5)类的__是为类的所有对象所共有的。

(6)类中声明友元的关键是__。

(7)在类的外部定义成员函数时应在函数的前面加上__和__。

(8)访问对象的成员有__、__和__3种格式。

(9)__函数和__函数是类的两种特殊的成员函数。

__函数负责完成对象的创建和初始化工作,__函数负责完成对象消失时的内存清理工作。

(10)类的__成员和__成员需要初始化表的方式提供初值。

(11)类的静态数据成员的初始化应该写在__区域上,而且要指明__和__。

(12)常对象只能调用类中的__函数,该函数为类的__函数。

(13)类的私有成员和保护成员只能被该类的__函数和__函数访问。

(14)C++中的类的成员指针有__指针和__指针。

(15)类的每一个成员函数都有一个隐含定义的指针,称为__指针,它的类型是成员函数所属类的类型。

(16)对象之间成员级的拷贝,称为__,可以采用默认的拷贝的构造函数。

2.选择题(1)下列关于和对象的描述上,不正确的是()。

(A)一个对象只能属于一个类。

(B)对象是类的一个实例。

(C)一个类只能有一个对象。

(D)类和对象的关系与数据类型和变量的关系类似。

(2)若有如下类声明:class A{int a;}则A类的成员a是()。

(A)公有数据成员(B)公有的成员函数(C)私有数据成员(D)私有成员函数(3)下列关于成员函数的描述中,不正确的是()。

(A)成员函数可以重载。

(B)成员函数一定是内联函数(C)成员函数可以是静态的(D)成员函数可以设置参数的默认值(4)在类外定义成员函数时,需要在函数名前加上()。

(A)对象名(B)类名(C)类名和作用域运算符(D)作用域运算符(5)下列关于this指针的描述中,正确的是()。

JAVA 练习题第5章对象和类

JAVA 练习题第5章对象和类



)。 (A)内部类不能有自己的成员方法和成员变量 (B)内部类可用private或protected修饰符修饰 (C)内部类可以作为其他类的成员,而且可访问 它所在的类的成员 (D)除static内部类外,不能在类内声明static成 员
【解析】内部类也可以有自己的成员方法和变量。
答案为 A
函数。
super
2.类与对象的关系是( )。
答案为 A
(A)类是对象的抽象 (B)对象是类的抽象 (C)对象是类的子类 (D)类是对象的具体实例
3.下面哪一个是Java中不合法的标识符( )。
(A)$persons (C)_myVar
(B)twoNum (D)*pointFra bibliotek答案为 D
答案为 D
4.区分类中重载方法的依据是( A.形参列表的类型和顺序 B.不同的形参名称 C.返回值的类型不同 D.访问权限不同
)。
【解析】形参表的类型和顺序不同时区分重载方法的
唯一标志。
答案为 A
5.子类对象能否直接向其父类赋值?父类对象能否向其子类赋值?



( ) A.能,能 B.能,不能 C.不能,能 D.不能,不能 值给子类对象。
据成员。
答案为 C
4.有一个类B,下面为其构造方法的声明,正确 【解析】构造方法没有类型,且方法名与类名相同。
的是( )。 (A)void B(int x) (B)B(int x) {} (C)b(int x) {} (D)void b(int x) {}
{}
答案为 B

答案为 B
在创建对象时必须( )
A、先声明对象,然后才能使用对象 B、先声明对象,为对象分配内存空间,然后才能 使用对象 C、先声明对象,为对象分配内存空间,对对象初 始化,然后才能使用对象 D、上述说法都对

类与对象(练习题)

类与对象(练习题)

专题5 类与对象的创建和使用一、选择题1.方法内定义的变量(c )。

A.一定在方法内所有位置可见B.可能在方法的局部位置可见C.在方法外可以使用D.在方法外可见2.方法的形参(a )。

A.可以没有B.至少有一个C.必须定义多个形参D.只能是简单变量3.return语句(b)。

A.不能用来返回对象B.只可以返回数值C.方法都必须含有D.一个方法中可以有多个4.main()方法的返回值类型是(c )。

A.boolean B.intC.void D.static5.编译并运行下面的程序,运行结果是()。

public class A{public static void main(String args[]){A a=new A();a.method(8);}void method(int i){System.out.println(“int: ”+i);}void method(long i){System.out.println(“long: ”+i);}A.程序可以编译运行,输出结果为:“int: 8”B.程序可以编译运行,输出结果为:“long: 8”C.程序有编译错误,因为两个method()方法必须定义为静态(static)的D.程序可以编译运行,但是没有输出6.能作为类及其成员的修饰符是(d )。

A.interface B.classC.protected D.public7.下列方法定义中,方法头不正确的是()。

A.public static x(double a){…} B.public static int x(double y){…} C.void x(double d){…} D.public int x(){…}8.构造方法合时被调用(d )。

A.类定义时B.使用对象的变量时C.调用对象方法时D.创建对象时9.下列哪个类声明是正确的(a )。

A.public abstract class Car{…} B.abstract private move(){…} C.protected private number; D.abstract final class H1{…} 10.下列不属于面向对象程序设计的基本特征的是()。

java类与对象练习题

java类与对象练习题

java类与对象练习题一、题目描述在学习Java类与对象的过程中,通过练习题可以更好地巩固所学知识。

本文将提供一些Java类与对象的练习题,帮助读者进一步理解和应用相关概念。

二、题目一:汽车类请设计一个名为"Car"的Java类,该类具有以下属性和方法:属性:- 品牌(brand):字符串类型- 颜色(color):字符串类型- 速度(speed):整数类型方法:- 启动(start):输出"Car is starting."- 加速(accelerate):将速度增加10,并输出"Speed increase 10."- 减速(decelerate):将速度减少5,并输出"Speed decrease 5."- 停止(stop):输出"Car is stopped."请在"Car"类的构造方法中初始化品牌、颜色和速度,并编写主程序测试该类。

三、题目二:手机类请设计一个名为"Phone"的Java类,该类具有以下属性和方法:属性:- 品牌(brand):字符串类型- 型号(model):字符串类型- 价格(price):浮点数类型方法:- 打电话(call):输入一个手机号码,输出"Calling xxx."(其中xxx是输入的手机号码)- 发短信(sendMessage):输入一个手机号码和短信内容,输出"Sending message to xxx: 【短信内容】."(其中xxx是输入的手机号码,【短信内容】是输入的短信内容)- 展示信息(display):输出手机的品牌、型号和价格请在"Phone"类的构造方法中初始化品牌、型号和价格,并编写主程序测试该类。

四、题目三:学生类请设计一个名为"Student"的Java类,该类具有以下属性和方法:属性:- 姓名(name):字符串类型- 学号(studentId):字符串类型- 年龄(age):整数类型- 成绩(score):浮点数类型方法:- 自我介绍(introduce):输出"大家好,我是XXX,今年YYY岁,学号为ZZZ,平时成绩优秀,希望与大家相处愉快!"(其中XXX为姓名,YYY为年龄,ZZZ为学号)- 考试成绩(exam):输入一个考试分数,将其赋值给成绩属性,并输出"我的考试分数是:XXX."(其中XXX为输入的考试分数)- 获奖(award):输入一个奖项名称,输出"恭喜我获得了XXX奖!"(其中XXX为输入的奖项名称)请在"Student"类的构造方法中初始化姓名、学号、年龄和成绩,并编写主程序测试该类。

C++程序设计练习题及答案第五章类与对象

C++程序设计练习题及答案第五章类与对象

第5章类与对象5.1 选择题1. 在下列结构变量的定义中,不正确的是( d )。

(a) struct employee{ char name[ 20 ] ;long code ;} emp ;(b) struct{ char name[ 20 ] ;long code ;} emp ;(c) struct employee{ char name[20];long code;} ;employee emp;(d) struct{ char name[20];long code;} employee;employee emp;2.已知有职工情况结构变量emp定义为:struct employee{ char name[ 20 ] ;long code ;struct{ int year ;int month ;int day ;} birth ;} emp ;下列对 emp 的 birth 正确赋值方法是( d )。

(a) year = 1980 ; month = 5 ; day = 1 ;(b) birth.year = 1980 ; birth.month = 5 ; birth.day = 1 ;(c) emp.year = 1980 ; emp.month = 5 ; emp.day = 1 ;(d) emp.birth.year = 1980 ; emp.birth.month = 5 ; emp.birth.day= 1 ;3.假定有以下声明和定义,则下面引用形式错误的是( b )。

1struct student{ int num ;float score ;} stu[3] = {{1001,80},{1002,75},{1003,91}}, *p = stu ; (a) p->num (b) (p++).num (c) (p++)->num (d) (*p).num4.下列四个运算符中,优先级最低的是( a )。

C++程序设计与应用基础第二章 类和对象习题答案

C++程序设计与应用基础第二章 类和对象习题答案

C++程序设计与应用基础第二章类和对象习题答案1、请完成下列填空题1)在C语言中,编程的单位是___函数__:在C++语言中,编程的单位是____类__。

2)在下面程序的横线处填上适当的语句,使类型该程序执行结果为10。

#include <iostream.h>class MyClass{pub1ic:——MyClass(int a){x=a;}//为x置值——int GetNum(){return x;} //取x值private:int x;};void main(){Myclass my(10);Cout<<my.GetNum()<<end;}3)在类中定义和实现的函数称为__内联函数_______。

4)对类中的成员函数和属性的访问是通过___public___、___protected___和___private___这3个关键字来控制的。

5) ___new___运算符对指定类型对象动态分配内存并返回该类型的__指针___。

6)假定用户没有给一个名为MyClass的类定义构造函数,则系统对其定义的默认构造函数形式为___MyClass()_____。

2、编程题1)定义一个复数类imaginary。

用友元函数实现该类的加、减、乘和除运算。

答案:class Imaginary{public:Imaginary(float a,float b);friend Imaginary Add(Imaginary& img1,Imaginary& img2);friend Imaginary Sub(Imaginary& img1,Imaginary& img2);friend Imaginary Mul(Imaginary& img1,Imaginary& img2);friend Imaginary Div(Imaginary& img1,Imaginary& img2);private:float x,y;};Imaginary::Imaginary(float a,float b){x=a;y=b;}Imaginary Add(Imaginary& img1,Imaginary& img2) {float a,b;a=img1.x+img2.x;b=img1.y+img2.y;return Imaginary(a,b);}Imaginary Sub(Imaginary& img1,Imaginary& img2) {float a,b;a=img1.x-img2.x;b=img1.y-img2.y;return Imaginary(a,b);}Imaginary Mul(Imaginary& img1,Imaginary& img2) {float a,b;a=img1.x*img2.x-img1.y*img2.y;b=img1.x*img2.y+img1.y*img2.x;return Imaginary(a,b);}Imaginary Div(Imaginary& img1,Imaginary& img2) {float a,b;if((img2.x*img2.x+img2.y*img2.y)!=0){a=(img1.x*img2.x+img1.y*img2.y)/(img2.x*img2.x+img2.y*img2.y); b=(img1.y*img2.x-img1.x*img2.y)/(img2.x*img2.x+img2.y*img2.y); return Imaginary(a,b);}elsereturn Imaginary(0.0,0.0);}2)定义类Rational。

JAVA基础 第3章类与对象_练习题

JAVA基础 第3章类与对象_练习题

第3章类与对象一.选择题1.下列不属于面向对象编程的特性是(D)。

A.封装性 B. 继承性 C. 多态性 D. 编译执行2.下列类的声明中不合法的是(C)。

A. class People{…}B. class 植物{…}C. Class A{…}D. public class 共有类{…3.下列方法的声明中不合法的是(C)。

A. float area(){…}B. void area(){…}C. double area(d){…}D. int area(int r){…}4. 下列构造方法(构造器)的调用中正确的是(C)。

A. 按照一般的方法调用B. 由用户直接调用C. 只能通过new自动调用D. 被系统调用5.下列程序运行的结果是(A)。

class Book{int width;int length;}public class A{static void f(Book p){p.width=20;p.length=40;}public static void main(String args[]){Book b=new Book();b.width=10;b.length=20;f(b);System.out.print(" "+b.width);System.out.print(" "+b.length);}}A. 20 40B. 10 40C. 10 20D. 以上都不对6.下列程序运行的结果是(D)。

public class A{static void f(int y){y=y+10;}public static void main(String args[]){double x=10;f(x);System.out.println(x);}}精选文库A. 10B. 20C. 10.0D. 程序编译错误7.下列程序运行的结果是(C)。

public class A{int z=20;static void f(int y){y=z;System.out.println(y);}public static void main(String args[]){f(10);}}A. 10B. 20C. 程序编译错误D. 以上都不对8. 以下代码的输出结果为(C)。

12-4类与对象练习题面向对象 (1)

12-4类与对象练习题面向对象 (1)
13、下列关于成员函数特征的描述中,()是错误的。
A)成员函数一定是内联函数B)成员函数可以重载
C)成员函数可以设置参数的默认值D)成员函数可以是静态的
14. C++中对于结构中定义的成员,其默认的访问权限为()。
A)publicB)protectedC)privateD) static
15.为了使类中的成员不被类的对象通过成员操作符来访问,则不能把该成员的访问权限设置为()。
A、对象是类的一个实例
B、任何一个对象只能属于某个的类
C、一个类只能有一个对象
D、类与对象的关系和数据类型与变量的关系相似
3、下列关于构造函数的描述中,错误的是()。
A、构造函数可以设置默认参数
B、构造函数在定义类对象时自动执行
C、构造函数可以是内联函数
D、构造函数不可以重载
4、下列有关析构函数的说法中,()是错误的。
a.disp( );
return0;
}
该程序运行后的输出结果是()。
A)displB)disp2C)displdisp2D)程序编译时出错
24.若有以下程序:
#include<iostream.h>
classsample
{inti;
public:
voidsetvalue(intm){i=m;}
voidfun(intm){i+=m;}
staticints;
voiddis()
{
cout<<s<<endl;
}
};
intsample::s=0;
voidmain(){
samplea(2),b(5),c(a);
a.add();
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

类和对象一、选择题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)。

A、系统提供默认的构造方法B、构造方法可以有参数,所以也可以有返回值C、构造方法可以重载D、构造方法可以设置参数15、定义类头时,不可能用到的关键字是( b)。

A、classB、privateC、extendsD、public16、下列类头定义中,错误的是( )。

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的语句中正确的是( ) 。

A、float A a;B、public A a=A( );C、A a=new int( );D、static A a=new A( );18、设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( a )。

A、void X(int k ){ i=k; }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、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; }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、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、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型变量名,下列类School的构造方法中不正确的是( b )。

A、School ( int m){ ... }B、void School ( int m){ ... }C、School ( int m, int n){ ... }D、School ( int h,int m,int n){ ... }25、下列选项中,哪个是java语言所有类的父类( c )A、StringB、VectorC、ObjectD、KeyEvent26、Java中所有的类都是通过直接或间接地继承(a )类得到的。

()A、ng.ObjectB、ng.ClassC、任意类D、以上答案都不对27、对于任意一个类,用户所能定义的构造方法的个数至多为( d )。

A、0个B、1个C、2个D、任意个28、构造方法何时被调用(b )A、类定义时B、创建对象时C、调用对象方法时D、使用对象的变量时29、类Test1定义如下public class Test1{public float aMethod(float a,float b){ }( b )}将以下哪种方法插入()是不合法的。

()A、 public float aMethod(float a,float b,float c){ }B、 public float aMethod(float c,float d){ }C、 public int aMethod(int a,int b){ }D、public int aMethod(int a,int b,int c){ }30、用来导入已定义好的类或包的语句是( b )A、mainB、importC、public classD、class31、类是具有相同( a )的集合,是对对象的抽象描述。

()A、属性和方法B、变量和方法C、变量和数据D、对象和属性32、一个对象的生命周期分( c )3个阶段。

()A、使用、生成和清除B、清除、使用和生成C、生成、使用和清除D、生成、清除和使用33、以下(a )是专门用于创建对象的关键字。

()A、newB、doubleC、classD、int34、表达式(c)将返回当前的系统时间和日期()A、DataFormat.getDataTime B 、new Data C 、DataFormat.getDataTimeInstance() D、new CurrentData35、()为程序员提供了一些可完成通用任务的现有类(A)A、Java类库 B 、preExisting C、java 代码 D 、library关键字36、程序员通常会使用( C )A 、程序员定义的方法B 、现有的方法C 、程序员定义的得带以及现有的方法D 、既不是程序员定义的方法也不是现有的方法37、利用方法中的()语句可为调用方法返回一个值( A )A、return B 、back C、end D 、以上答案都不对38、(A)方法用做返回两个参数中的较大值()A 、maxB 、maximum C、larger D、greater39、(D )将被传送至一个被调用的方法()A、返回值B、返回类型C、参数表D、参数列表40、方法的参数可以是( D )A、常量B、表达式C、变量 D 、以上答案都对41、()是位于方法头中的一个以逗号分隔的声明列表( B )A、参数表B、参数列表C、值表D、变量表42、方法的定义是由()组成的( D )A、一个方法 B 、一个方法体 C 、一对花括号 D 、以上答案都对43、一个(D)对象将包括int型数据()A、IntegerObjectB、IntC、IntDataD、Integer44、在方法调用过程中。

位于方法名之后圆括号的变量被称为( B )A、变元 B 、参数 C 、语句 D 、声明45、一条return语句将给调用程序返回(D)个值()A 、0 B、 1 C、任意数量D、A和B46、方法的第一行被称为方法的( D )A 、方法体B、标题C、调用者D、方法头47、实例变量的作用域整个的( C )A、语句块 B 、方法 C 、类 D 、以上答案都不对48、在某个方法内部定义的变量被称为(B )A 、实例变量B、局部变量C、类变量D、隐藏变量49、在一个类的内部声明,但又处于该类方法外部的变量被称为( C )A、局部变量B、隐藏变量C、实例变量D、常量50、从定义局部变量语句的外部访问该局部变量,会导致()出现(A )A、逻辑出错 B 、编译错误C、运行错误 D 、以上答案都不对51、实例变量( D )A 、是在一个类的内部声明的变量B 、的作用域为整个类C 、可被同一类中的任何方法所访问D 、以上答案都对52、当方法内传递一个参数时,将该参数值的一个拷贝传递给方法的传递方式称为( B )A、调用传递B、值传递C、引用传递 D 、方法传递53、当一个变量在应用程序的整个生命周期中被使用,且整个过程中的其他值也不能被改变时,那么将他声明为一个( B )A 、局部变量B、常量C、实例变量D、以上答案都不对54、关键字()表示一个类定义的开始( C )A、declareB、newC、classD、以上答案都不对55、类的定义必须包含在一对()内( B )A、方括号B、花括号C、逗号D、圆括号56、实例变量的初始化( B )A 、是在他们声明时完成B 、将被设置为默认值C 、是在一个构造方法中完成的D 、以上答案都对57、某个方法,在保证参数值有效性的前提下设置其实例变量number,该方法的方法名最好取( C )A、number B、set C、setNumberD、setValue58、某个方法,在保证参数值有效性的前提下获取其实例变量number,该方法的方法名最好取( C )A、number B、get C、getNumber D、getValue59、通过使用关键字()创建对象( D )A、object B 、instantiate C、create D、new60、参照以下Java代码,以下四个叙述中最确切的是(C)class A{int x; static int y;void fac(String s){System. out. println("字符串:"+s);}}A、x、y和s都是成员变量B、x是实例变量、y 是类变量、s是局部变量C、x和y是实例变量、s是参数D、x、y和s都是实例变量61、下列关于变量作用域的描述中,不正确的一项是( C )A、变量属性是用来描述变量作用域的B、局部变量作用域只能是它做在的方法代码段内C、类变量能在类的方法中声明D、类变量的作用域是整个类62、下列关于变量作用域的说法中,正确的一项是( B )A、方法参数的作用域是方法外部代码段B、异常处理参数的作用域是方法外部代码段C、局部变量的作用域是整个类D、类变量的作用域是类的某个方法63、System类在哪个包中?( D )A 、java.utilB 、java.ioC 、java.awtD 、ng64、给出下面代码段1) public class Test {2) int m, n;3) public Test() {}4) public Test(int a) { m=a; }5) public static void main(String arg[]) {6) Test t1,t2;7) int j,k;8) j=0; k=0;9) t1=new Test();10) t2=new Test(j,k);11) }12) }哪行将引起一个编译时错误?( D )A 、line 3 B、line 5 C、line 6 D、line1065、对于下列代码、1) class Person {2) public void printValue(int i, int j) {//... }3) public void printValue(int i){//... }4) }5) public class Teacher extends Person {6) public void printValue() {//... }7) public void printValue(int i) {//...}8) public static void main(String args[]){9) Person t = new Teacher();10) t.printValue(10);11) }第10行语句将调用哪行语句?()A 、line 2 B、line 3 C 、line 6 D、line 766、下列关于构造方法的说话正确的是( B )A、类中的构造方法不可省B、构造方法必须与类同名,但方法不能与class同名C 、类的构造方法在一个对象被创建时自动执行D、一个类只能定义一个构造方法67、下列语句中,对构造方法的描述错误的是(D )A、构造方法的名称必须和类名相同B、构造方法没有返回值,返回类型也不能用voidC、构造方法在一个类中可以多次出现D、当重写了带参数的构造方法,系统默认的不带参数的构造方法依然存在68、下面关于java中类的说法哪个是不正确的( A )A、类体中只能有变量定义和成员方法的定义,不能有其他语句B、构造方法是类中的特殊方法C、类一定要声明为public 的,才可以执行D、一个java文件中可以有多个class定义69、下列哪个不是面向对象的三大特性之一( D )A、封装性B、继承性C、多态性D、重载70、下面哪种语言不是面向对象语言? ( C )A、javaB、C++ C 、 C D、Smalltalk71、在创建对象时必须( D )A、先声明对象,然后才能使用对象B、先声明对象,为对象分配内存空间,然后才能使用对象C、先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象D、上述说法都对72、以下叙述不正确的是( D )A、面向对象方法追求的目标是、尽可能地运用人类自然的思维方式来建立问题空间的模型,构造尽可能直观、自然的表达求解方法的软件系统。

相关文档
最新文档