面向对象程序设计第12章在线测试

合集下载

面向对象程序设计课后答案(完整版)

面向对象程序设计课后答案(完整版)

面向对象程序设计课后答案(完整版)第二章2-4#includeusing namespace std;Add(int a,int b);int main(){int x,y,sum;cout>x>>y;sum = add(x,y);cout >*p;p++;}p = p-20;for( i=0;i0) countp++;if(*p>age ;try{checkagescore(name,age);}catch( string){cout<<"exception :name is exit"<<endl;continue;}catch(int){cout<<"exception :age is not proper"<<endl;continue;}cout<<"name:"<<name<<" age :"< }return 0;}第三章3-1(1)A (2)C (3)B (4)C (5)C(6)B (7)B (8)C (9)C3-7(1)main()函数中p1.age = 30;语句是错误的。

age 是类的私有成员(2)构造函数应当给常数据成员和引用成员初始化,将构造函数改为:A(int a1,int b1):a(a1),b(b1){}或A(int a1 ):a(a1),b(a){}再将main中的A a(1,2); 改为A a(1);(3)(1)在Test 类中添加语句:void print();void Print(){cout<<x<<"-"<<y<<"="<<x-y<<endl;}改为void Test::Print(){cout<<x<<"-"<<y<<"="<<x-y<<endl;}main函数中Init(38,15);改为:A.Init(38,15);Print();改为:A.Print();3-8(1)Constructing AConstructing BDestructing BDestructing A(2)double a,double bpoint & pp.x3-9class box{int len1,len2,len3;public:box(int l1,int l2,int l3){len1 = l1;len2 = l2; len3 = l3;} long volumn(){return len1*len2*len3;}};3-10class Test{int m1,m2;public:void Init(int a,int b){m1 = a;m2 = b;}void Pring(){cout<<m1<<" "<<m2<<endl;}};3-11略3-12}第四章4-6(1)D (2)D (3)D (4)D (5)B(6)D4-7(1)static int count = 0;这样初始化静态成员值是不对的将其改为static int count;在类外,main函数前加int Sample::count = 0;(2)#include//#includeusing namespace std;class Ctest{private:int x; const int y1;public:const int y2;Ctest(int i1,int i2):y1(i1),y2(i2) {y1 =10;//y1 为常量不能赋值x = y1;}int readme() const;};int Ctest::readme ()const{int i;i = x;x++; //常函数内不能改变成员值return x;}int main(){Ctest c(2,8);int i = c.y2;c.y2 = i;//y2为常量,不能改值i = c.y1;//y1私有,类外不能访问return 0;}将出错语句全部注释4-8(1)题中印刷错误,将class C构造函数改为: C(){cout<<"constructor C:";}运行结果为:constructor Aconstructor Bconstructor C(2)40(3)3434-9#include#includeclass Date{int year;int month;int day;public:Date(int y,int m,int d){year=y;month=m;day=d;}void disp(){cout<<year<<" "<<month<<" "<<day<<endl;}friend int count_day(Date &d,int k);friend int l(int year);friend int h(Date &d1,Date &d2);};int count_day(Date &d,int k){static int day_tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,3 1},{31,29,31,30,31,30,31,31,30,31,30,31}};// 使用二维数组存放各月天数,第一行对应非闰年,第二行对应闰年int j,i,s;if(l(d.year))j=1;//闰年,取1else j=0;//非闰年,取0if(k)//K非0时{s=d.day;for(i=1;i<d.month;i++)//d.month为输入的月份s+=day_tab[j][i-1];}else//K为0时{s=day_tab[j][d.month]-d.day;for(i=d.month+1; i<=12; i++)s+=day_tab[j][i-1];}return s;//S为相差的天数}int l(int year){if(year%4==0&&year%100!=0||year%400==0) // 是闰年return 1;else // 不是闰年return 0;}int h(Date &d1,Date &d2){int days,day1,day2,y;if(d1.year<d2.year)//第一个日期年份小于第二个日期年份{days=count_day(d1,0);for(y=d1.year+1;y<d2.year;y++)if(l(y))//闰年。

12级面向对象程序设计复习题

12级面向对象程序设计复习题

《面向对象程序设计》复习题一、单项选择题。

1.在switch语句中,为了结束分支,一般应在每个分支的结尾处加上语句()。

①continue ②goto ③break ④default2.说明友元函数的关键字是()。

①inline ②virtual ③static ④friend3.下面对指向常量的指针描述正确的是()。

①只能指向常量②指向的数据可以被修改③可以指向普通变量④必须进行初始化4.友元函数没有()。

①this指针②返回类型③函数名④参数5.关于重载,()不正确。

①类名可以重载②函数名可以重载③运算符可以重载④缺省参数是重载的一种方式6.用new分配n维数组空间,首地址赋予指针p,则p应为指向()维数组的指针。

①0 ② 1 ③n-1 ④n7.为类X重载前缀自增运算,则函数返回类型应为()。

①X ②X* ③X& ④int8.以下()未调用构造函数(X为类名)。

①X*p; ②X obj; ③X obj(1); ④X obj=2;9.若在类外有函数调用X::func();则函数func是类X的()函数。

①私有静态成员函数②公有非静态成员函数③公有静态成员函数④友元函数10.若引用作参数,则对应的实参应为()。

①指针②地址③常量④变量或对象本身11.在C++中,一个实型常数如果没有任何说明,表示()类型。

① float ② double ③ long double ④ void12.静态数据是保存在程序所分配内存的()。

①全局数据区②代码区③堆区④栈区13.在C++中类似于C中的有参宏定义的语法概念是()。

①重载函数②默认参数的函数③构造函数④内联函数14.具有函数作用域的标识符是()。

①变量②标号③函数名④对象名15.在头文件中,最好不应有()。

①内联函数定义②常量定义③数据定义④宏定义16.下面对指针的基类型描述正确的是()。

①可是任何类型②不能是void类型③不能是函数④不能是指针17.下面对引用描述正确的是()。

面向对象程序设计智慧树知到期末考试章节课后题库2024年山东建筑大学

面向对象程序设计智慧树知到期末考试章节课后题库2024年山东建筑大学

面向对象程序设计智慧树知到期末考试答案章节题库2024年山东建筑大学1.以下泛型类的定义是正确的。

()public class Generic { private T t =new T(); public void setT(T t) { this.t = t; } public TgetT() { return t; }}答案:错2.以下代码是正确的。

()package test;import java.util.ArrayList;importjava.util.Date;import java.util.List;public class GenericTest1 { publicstatic void main(String[] args) { List list2 = newArrayList<>(); list2.add(new Date()); list2.add(newString("abc")); String str = list2.get(0); }}答案:错3.数组的元素个数是可以变化的。

()答案:错4.限制泛型上界时,如下代码是正确的。

()Generic<? extends List> f =null;f = new Generic();答案:错5.定义一个外部类时,不能使用private和protected来修饰()答案:对6.已知TestClass.java的定义如下:public class TestClass{ public static voidmain(String[] args){ int a; System.out.println("a="+a); }}以上代码是正确的()。

答案:错7.如下代码创建泛型类Generic的对象后,Generic gt5 = newGeneric<>();Genericgt4 = new Generic<>();下面的这行代码是正确的。

2022年面向对象程序设计第章在线测试

2022年面向对象程序设计第章在线测试

《面向对象程序设计》第11章在线测试剩余时间:59:52答题须知:1、本卷满分20分。

2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。

3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。

第一题、单项选择题(每题1分,5道题共5分)1、STL中能够保存其他类型的对象的类是()A、容器B、迭代器C、算法D、数组2、双队列(deque)属于()A、顺序容器B、关联容器C、前向容器D、双向容器3、集合(set)属于( )A、顺序容器B、关联容器C、前向容器D、双向容器4、多重集(multiset)属于( )A、顺序容器B、关联容器C、前向容器D、双向容器5、映射(map)属于( )A、顺序容器B、关联容器C、前向容器D、双向容器第二题、多项选择题(每题2分,5道题共10分)1、下面属于适配器容器的是( )A、优先队列B、堆栈C、集合D、映射2、下面属于容器的头文件是()A、vectorB、listC、queneD、set3、下面的说法正确的是()题太坑对的也显示错误!A、容器用于存放数据对象B、算法用于操作容器中的数据对象C、迭代器是容器的代替D、迭代器用于链接容器和算法4、下面关于string类型的说法正确的是()A、使用string类型前,程序必须包含头文件stringB、string类型是C++的一部分C、string类型与char* 类型的作用一样D、string相当于一个保存字符的序列容器5、下面属于顺序容器的是()A、向量B、双队列C、堆栈D、列表第三题、判断题(每题1分,5道题共5分)1、容器是能够保存其它类型的对象的类。

正确错误2、算法就是一个按照一组定义明确的步骤来解决某个问题的处理过程。

正确错误3、向量(vector)、双队列(deque)、列表(list)都是顺序容器正确错误4、前向容器是指一种长度可变的容器,直接继承于顺序容器正确错误5、顺序容器是指一种长度可变的容器,它支持高效的数据查询和数据操作。

(完整版)《面向对象程序设计》答案

(完整版)《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境一、实验目的1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。

2、掌握如何编辑、编译、连接和运行一个C++程序。

3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。

二、实验要求1、分析下列程序运行的结果。

程序一:#include <iostream.h>int add(int x,int y=8);void main(){ int x=4;cout<<add(x)<<",";cout<<add(x,add(add(x,add(x))))<<endl;}int add(int x,int y){ return x+y;}//12,28程序二:#include <iostream.h>void main(){ int *p,i;i=5;p=&i;i=*p+10;cout<<"i="<<i<<endl;}//i=15程序三:#include <iostream.h>void main(void){ int i=10;int &r=i;r++;cout<<"i="<<i<<", r="<<r<<'\n';i=88;cout<<"i="<<i<<", r="<<r<<'\n';}//i=11,r=11i=88,r=88程序四:#include <iostream.h>int f(int i){ static int k=1;for(;i>0;i--)k +=i;return k;}void main(){ int i;for(i=0;i<5;i++)cout<<f(i)<<" ";}// 1 2 5 11 21程序五:#include <iostream.h>void func();int n=1;void main(){ static int a;int b= -9;cout <<"a:"<<a<<" b:"<<b<<" n:" <<n<<endl;b+=4;func();cout <<"a:"<<a<<" b:"<<b<<" n:"<<n<<endl;n+=10;func();}void func(){ static int a=2; int b=5;a+=2;n+=12;b+=5;cout <<"a:" <<a<<" b:" <<b<<" n:" <<n <<endl;}// a:0 b:-9 n:1a:4 b:10 n:13a:0 b:-5 n:13a:6 b:10 n:35实验二C++对C的扩充一、实验目的1、了解在面向对象程序设计过程中C++对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。

java面向对象程序设计 习题答案

java面向对象程序设计 习题答案

java面向对象程序设计习题答案Java面向对象程序设计习题答案Java是一种广泛应用于软件开发的编程语言,而面向对象程序设计(Object-Oriented Programming,简称OOP)则是一种常用的编程范式。

在学习Java的过程中,习题是非常重要的一部分,通过解答习题可以帮助我们巩固所学的知识,并提升编程能力。

本文将为大家提供一些Java面向对象程序设计习题的答案,希望能对大家的学习有所帮助。

1. 编写一个Java类,实现一个简单的计算器功能。

该计算器应该具有加、减、乘、除四种基本运算功能,并能够接受用户输入的两个操作数和运算符。

在计算结果后,将结果输出给用户。

```javaimport java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个操作数:");double num1 = scanner.nextDouble();System.out.print("请输入第二个操作数:");double num2 = scanner.nextDouble();System.out.print("请输入运算符(+、-、*、/):"); String operator = scanner.next();double result = 0;switch (operator) {case "+":result = num1 + num2;break;case "-":result = num1 - num2;break;case "*":result = num1 * num2;break;case "/":result = num1 / num2;break;default:System.out.println("无效的运算符!");return;}System.out.println("计算结果为:" + result);}}```2. 编写一个Java类,实现一个简单的学生管理系统。

c 面向对象程序设计教程习题答案

c 面向对象程序设计教程习题答案

c 面向对象程序设计教程习题答案C面向对象程序设计教程习题答案在学习C面向对象程序设计的过程中,习题答案是非常重要的一部分。

通过练习习题,可以加深对知识点的理解,提高编程能力。

下面我们就来看一些常见的C面向对象程序设计习题及其答案。

1. 什么是面向对象程序设计?面向对象程序设计是一种程序设计范式,它以对象为中心,通过封装、继承和多态等特性来组织和管理代码。

面向对象程序设计可以提高代码的可维护性和可重用性,是现代软件开发中非常重要的一部分。

2. 什么是类和对象?类是一种抽象的数据类型,它描述了一类对象的共同特征和行为。

对象是类的实例,它具体描述了一个具体的实体。

在C面向对象程序设计中,类和对象是非常重要的概念。

3. 请编写一个简单的类和对象的例子。

```c#include <stdio.h>// 定义一个简单的类class Person {public:int age;char name[20];void display() {printf("Name: %s, Age: %d\n", name, age);}};int main() {// 创建一个对象Person p;p.age = 25;strcpy(, "Alice");p.display();return 0;}```4. 什么是封装?封装是面向对象程序设计中的一种重要特性,它将数据和行为封装在一个类中,对外部隐藏了内部的实现细节。

封装可以保护数据的安全性,同时提供了简单的接口供外部访问。

5. 请编写一个简单的封装例子。

```c#include <stdio.h>// 定义一个简单的类class Circle {private:double radius;public:void setRadius(double r) {radius = r;}double getArea() {return 3.14 * radius * radius;}};int main() {// 创建一个对象Circle c;c.setRadius(5.0);printf("Area: %f\n", c.getArea());return 0;}```以上就是一些常见的C面向对象程序设计习题及其答案。

面向对象程序设计第10章在线测试

面向对象程序设计第10章在线测试

《面向对象程序设计》第10章在线测试(共3页)-本页仅作为预览文档封面,使用时请删除本页-《面向对象程序设计》第10章在线测试剩余时间:59:51答题须知:1、本卷满分20分。

2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。

3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。

第一题、单项选择题(每题1分,5道题共5分)1、throw后面的表达式不可以是()A、常量B、变量C、对象D、数组2、关于异常的说法,正确的是()A、异常就是错误B、有了异常处理机制,出现错误也没有关系C、异常在C++中以消息的形式传递D、程序中出现的错误都可以用catch块来捕捉处理3、关于catch(。

)的说法错误的是()A、catch(。

)可以捕捉所有类型的异常B、catch(。

)必须放在所有catch块的后面C、catch(。

)可以避免出现没有被捕捉的异D、catch(。

)不能单独使用常4、C++中异常处理的默认模式是()A、终止模式B、恢复模式C、挂起模式D、暂停模式5、关于重新抛出错误的说法是()A、重新抛出是指抛出原来的异常B、用throw语句再次抛出原来的异常C、只能在catch块中抛出D、重新抛出时不能改变异常信号的值第二题、多项选择题(每题2分,5道题共10分)1、关于异常处理的说法正确的是()A、将异常的检测与处理分离B、异常就是错误C、异常由函数调用引起D、在上层调用函数中使用try检测函数调用是否引发异常2、try子句的作用是()A、代码的保护段B、如果预料某段程序代码可能发生异常,就将该段代码放在try子句之后C、try子句产生异常D、try子句中的throw表达式产生异常3、catch子句的说法正确的是()A、catch子句后的复合语句是异常处理程序B、catch子句捕获throw表达式抛出的异常C、catch子句的异常类型说明只能是类型,不能是数值D、catch子句的异常类型不能是自定义类4、异常处理的执行过程是()A、程序执行try语句块内的保护段,如果发现异常则退出B、如果在try语句内的程序段抛出异常,程序控制转入try块后的catch块C、throw抛出的异常对象如果与catch子句异常类型的值一致,则执行对应的异常处理程序D、如果没有匹配的catch子句,自动调用terminate终止程序5、关于catch(…)语句的说法正确的是()A、catch(…)语句可以捕获任何异常B、catch(…)语句可以放在catch子句的任何位置C、catch(…)语句必须放在catch子句的最后D、catch(…)语句捕获空的异常第三题、判断题(每题1分,5道题共5分)1、异常(Exception)是程序运行过程中,由于环境变化、用户操作失误以及其它方面的原因而产生的运行时不正常的情况.正确错误2、抛出异常的模块只是报告某个地方存在错误,这个报告可以帮助异常处理器解决这个错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》第12章在线测试剩余时间:59:56
答题须知:1、本卷满分20分。

2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。

3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。

第一题、单项选择题(每题1分,5道题共5分)
1、面向对象的程序设计语言必须具备的关键要素是( )
A、抽象和封装
B、抽象和多态性
C、抽象、封装、继承和多态性
D、抽象、封装和继承性
2、封装性应具有的条件是()
A、有一个清晰的边界
B、有确定的接口
C、受保护的内部实现
D、以上所有
3、OOD的作用是()
A、提取需求
B、逻辑建模
C、求解域建模
D、分析用例
4、按钮与电梯按钮的关系是()
A、部分与整体
B、一般与特殊
C、实例连接
D、消息连接
5、面向对象模型不包括()
A、静态模型
B、对象模型
C、功能模型
D、动态模型
第二题、多项选择题(每题2分,5道题共10分)
1、部分与整体的关系有()方式
A、组合
B、联合
C、聚合
D、整合
2、对象之间存在的关系包括()
A、部分与整体
B、一般与特殊
C、实例连接
D、消息连接
3、关于多态的说法正确的是()
A、不同类型的对象接收相同的消息产生不同的行为
B、多态的成员函数需要定义为虚函数
C、在C++中通过基类指针调用虚函数实现多态
D、多态是指对象的多种表现形式
4、关于软件生命周期的说法正确的是()
A、开发程序就是直接编码
B、在程序设计之前需要先进行软件设计
C、软件投入使用后软件生命周期结束
D、软件维护也是软件生命周期的一个阶段
5、下面关于面向对象的特征说法正确的是()
A、每一个对象都具有唯一的标识
B、任何类的划分都是客观的,程序员必须遵守其规定
C、继承性是子类自动共享父类数据结构和方法的机制
D、多态是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的
结果
第三题、判断题(每题1分,5道题共5分)
1、面向对象开发技术分三个阶段:面向对象分析,面向对象设计和面向对象实现。

正确错误
2、面向对象的要素包括抽象、封装。

正确错误
3、面向对象的共享性是指在同一个应用中的共享。

正确错误
4、窗口类与标题栏、菜单条的关系是共享聚集。

正确错误
5、类的关联关系通常采用函数设计方式。

正确错误
恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第12章在线测试的得分为20分(满分20分),本次成绩已入库。

若对成绩不满意,可重新再测,取最高分。

测试结果如下:
• 1.1 [单选] [对] 面向对象的程序设计语言必须具备的关键要素是( )
• 1.2 [单选] [对] 封装性应具有的条件是()
• 1.3 [单选] [对] OOD的作用是()
• 1.4 [单选] [对] 按钮与电梯按钮的关系是()
• 1.5 [单选] [对] 面向对象模型不包括()
• 2.1 [多选] [对] 部分与整体的关系有()方式
• 2.2 [多选] [对] 对象之间存在的关系包括()
• 2.3 [多选] [对] 关于多态的说法正确的是()
• 2.4 [多选] [对] 关于软件生命周期的说法正确的是()
• 2.5 [多选] [对] 下面关于面向对象的特征说法正确的是()
• 3.1 [判断] [对] 面向对象开发技术分三个阶段:面向对象分析,面向对象设计和面向对象实现。

• 3.2 [判断] [对] 面向对象的要素包括抽象、封装。

• 3.3 [判断] [对] 面向对象的共享性是指在同一个应用中的共享。

• 3.4 [判断] [对] 窗口类与标题栏、菜单条的关系是共享聚集。

• 3.5 [判断] [对] 类的关联关系通常采用函数设计方式。

相关文档
最新文档