导航:首页 > 编程语言 > 面向对象程序设计练习题

面向对象程序设计练习题

发布时间:2025-08-18 11:46:10

⑴ 面向对象程序设计第2章

《面向对象程序设计》第02章在线测试

第一题、单项选穗高择题(每题1分,5道题共5分)
1、假定AB为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的( D)。
A、无参构造函数 B、带参构造函数
C、赋值重载函数 D、拷贝构造含族野函数
2、一段程序的定义如下,在函数f()中将动态对象的成员n的值改为34的语句应该为 (C ) class A { int n; public: setn(int nl) {n=nl;} A(int x) {n = x; } } int f() {A * ptr = new A(45);... }
A、A.n=34; B、ptr.setn(34);
C、ptr->setn(34); D、setn(34);
3、假定AB为一个类,则执行“AB p=new AB(1,2);”语句时共调用该类构造函数的次数为(B )。
A、0 B、1
C、2 D、3
4、假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为(C )。
A、0 B、1
C、n D、n+1
5、假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为( B)。
A、abc B、
this
C、this D、this&
第二题、多项选择题(每题2分,5道题共10分)
1、定义析构函数时,错误的说法是 (BD) 。
A、其名与类名完全相同
B、返回类型是 void 类型
C、无形参,也不可重载
D、函数体中必须有 delete 语句
2、假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的语句错误的是(ABC)。
A、x.a
B、x.a()
C、x->GetValue()
D、x.GetValue()
3、下面关于构造函数的说法正确的是(AB)
A、构造函数的函数名与类名相同
B、构造函数可以重载
C、构造函数不可以设置默认参数
D、构造函数必须指定类型说明
4、下面关于成员函数的说法错误的是(ACD)
A、类定义中只能说明函数成员的函数头,不能定义函数体
B、类中的函数成员可以在类体中定义,也可以在类体之外定义
C、类中的函数成员在类体之外定义时必须要与类声明在同一文件
D、在类体之外定义的函数成员不能操作该类的私有数据成员
5、假定AB为一个类,则执行 “AB *s=new AB(a,5);”语句的结果是(BCD)
A、动态生成对象AB赋值给变量s
B、动态生成对象s
C、如果对象AB中有公有成员a,则s->a可以访问该成员
D、动态生成对象AB,该对象的地址赋值给变量s
第三题、判断题(每题1分,5道题共5分)
1、 若Sample类中的一个成员函数说明如下: Void set(Sample &a) 其中Sample &a表示的含义是.a是类Sample的对象引用,用来作函数谈喊Set()的形参。 T
正确 错误
2、 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为x->a。 F
正确 错误
3、 静态成员函数允许访问类的数据成员。T
正确 错误
4、 建立类的对象时,先调用各个对象成员的构造函数,初始化相应的对象成员,然后才执行类的构造函数,初始化类中其他成员。T
正确 错误
5、 this是一个隐含于每一个类的成员函数的特殊指针,它是一个指向正在被某个成员函数操作的对象的指针。T
正确 错误

java面向对象,编程题,谢谢!

第一种:

publicstaticvoidmain(Stringargs[]){
Scannerscn=newScanner(System.in);
System.out.print("第一个数:");
inta=scn.nextInt();
System.out.print("操作(+,-,*,/):");
Stringoption=scn.next();
System.out.print("第二个数:");
intb=scn.nextInt();
intresult=0;
if("+".equals(option)){
result=a+b;
}
if("-".equals(option)){
result=a-b;
}
if("*".equals(option)){
result=a*b;
}
if("/".equals(option)){
result=a/b;
}
System.out.println("结果:"+result);
}

第二种:

publicstaticvoidmain(Stringargs[]){
Scannerscn=newScanner(System.in);
System.out.print("请输入第一个数:");
intoNumFirst=scn.nextInt();
System.out.print("请输入操作方式(+,-,*,/):");
Stringoption=scn.next();
System.out.print("请输入第二个数:");
intoNumSecond=scn.nextInt();
intresult=0;
switch(option){
case"+":
result=oNumFirst+oNumSecond;
break;
case"-":
result=oNumFirst-oNumSecond;
break;
case"*":
result=oNumFirst*oNumSecond;
break;
case"/":
try{
result=oNumFirst/oNumSecond;
}catch(ArithmeticExceptione){
e.printStackTrace();
System.out.println("除数不能为0");
}
break;
}
System.out.println("结果为:"+result);
}

第三种:

/**
*计算器类
*CreatedbyHDLon2016/11/30.
*/
publicclassOptioner{
privateintoNumFirst;//第一个数
privateintoNumSecond;//第二个数
publicintgetoNumFirst(){
returnoNumFirst;
}
publicvoidsetoNumFirst(intoNumFirst){
this.oNumFirst=oNumFirst;
}
publicintgetoNumSecond(){
returnoNumSecond;
}
publicvoidsetoNumSecond(intoNumSecond){
this.oNumSecond=oNumSecond;
}
publicOptioner(){
}
publicOptioner(intoNumFirst,intoNumSecond){
this.oNumFirst=oNumFirst;
this.oNumSecond=oNumSecond;
}
publicintgetReuslt(){
return0;
}
}1617181920212223242526272829
/**
*加法运算
*CreatedbyHDLon2016/11/30.
*/
{
@Override
publicintgetReuslt(){
returngetoNumFirst()+getoNumSecond();
}
}
/**
*减法运算
*CreatedbyHDLon2016/11/30.
*/
{
@Override
publicintgetReuslt(){
returngetoNumFirst()-getoNumSecond();
}
}
/**
*乘法运算
*CreatedbyHDLon2016/11/30.
*/
{
@Override
publicintgetReuslt(){
returngetoNumFirst()*getoNumSecond();
}
}
/**
*除法运算
*CreatedbyHDLon2016/11/30.
*/
{
@Override
publicintgetReuslt(){
if(getoNumSecond()==0){
System.out.println("除数不能为0");
return-1;
}else{
returngetoNumFirst()/getoNumSecond();
}
}
}

测试

publicstaticvoidmain(Stringargs[]){
Scannerscn=newScanner(System.in);
System.out.print("请输入第一个数:");
intoNumFirst=scn.nextInt();
System.out.print("请输入操作方式(+,-,*,/):");
Stringopt=scn.next();
System.out.print("请输入第二个数:");
intoNumSecond=scn.nextInt();
Optioneroptioner=null;
switch(opt){
case"+":
optioner=newAddOptioner();
break;
case"-":
optioner=newSubOptioner();
break;
case"*":
optioner=newMulOptioner();
break;
case"/":
optioner=newDivOptioner();
break;
}
optioner.setoNumFirst(oNumFirst);
optioner.setoNumSecond(oNumSecond);
System.out.println("结果为:"+optioner.getReuslt());
}

⑶ java面向对象编程题目

public class Rectangle
{
private double width;
private double height;

//无参构造器
public Rectangle()
{}
//有参构造器
public Rectangle(double width, double height)
{
this.width = width;
this.height = height;
}
//属性的get和set方法定义
public void setWidth(double width)
{
this.width = width;
}

public double getWidth()
{
return this.width;
}

public void setHeight(double height)
{
this.height = height;
}
public double getHeight()
{
return this.height;
}
//计算周长的方法
private double getPerimeter()
{
return (width+height)*2;
}
//计算面积的方法
private double getArea()
{
return width*height;
}

public static void main(String[] args)
{
Rectangle rec = new Rectangle(3.6,5.8);
System.out.println("The perimeter of Rectangle is:"+rec.getPerimeter());
System.out.println("The area of Rectangle is:"+rec.getArea());
}
}

阅读全文

与面向对象程序设计练习题相关的资料

热点内容
姑苏区五轴联动数控编程如何学 浏览:499
初学电脑编程软件哪个好用 浏览:133
dnf86版本魔道和元素 浏览:730
党的重要文件包括哪些 浏览:53
u盘ini文件不能复制 浏览:876
加工中心如何平面螺旋铣编程 浏览:323
计算机什么配置适合设计和编程 浏览:252
如何注销闲蛋app 浏览:194
js如何用trim 浏览:339
壁纸版本狄安娜 浏览:814
华为荣耀4a微信运动 浏览:307
allbackup文件夹找不到 浏览:333
哪个网站东西是正品 浏览:35
软件安装文件里图片替换 浏览:697
微信小程序选择器代码 浏览:247
信息学和数据学哪个好 浏览:847
意外替换了ps文件 浏览:551
数控加工编程软件汉语怎么读 浏览:685
直播间脱内衣的APP叫什么 浏览:623
西门子plc编程软件如何连接plc 浏览:354

友情链接