天大18春《面向对象程序设计》在线作业一满分答案
大学C++面向对象程序设计 2018试题及参考答案

…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线……………………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线……………………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线……………………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………重点大学考试试题答案(A卷)2018 ~2019 学年1 学期面向对象程序设计课程一、单选题(每小题2分,共20分)CCDCB AAABA二、改错题(共3小题,每小题6分,共18分)1. main()函数第3句出错,因为类Complex无类类型转换函数,将Complex对象转换成float。
改正:在Complex中类增加:operator float(){ return real; }2. main()函数第2句出错,因为常对象obj不能调用非常成员函数,改正:在CTest类中:将CTest(int x)换成fCTest(int x) const。
或者将main()中const CTest obj(5);换成CTest obj(5);3. 当程序执行对象p2的析构函数时,对象p1的数据成员ptr出现了所谓的“指针悬挂问题”,这说明C++中提供给对象的默认的赋值运算符并不是万能的,解决的办法就是重载赋值运算符“=”,使对象不但能浅拷贝,还能实现深层拷贝。
STRING& STRING::operator=(const STRING&s){if(this==&s)return *this;delete ptr;ptr=new char[strlen(s.ptr)+1];strcpy(ptr,s.ptr);return *this;}三、读程序,给出程序的输出结果。
(每小题6分,共24分)【1】Constructor of PersonConstructor of StudentConstructor of PersonConstructor of TeacherDestructor of TeacherDestructor of PersonDestructor of StudentDestructor of Person【2】12,2【3】56789【4】1123444四、编程题(共38分=12分+12分+14分)1. 解答:#include<iostream.h>class Test ……………………………4分{ int x,y;public:void init(int,int);void print();};void Test::init(int i,int j) ……………………………4分{ x=i;y=j;}void Test::print() ……………………………4分{ cout<<"测试结果:"<<x<<"-"<<y<<"="<<x-y<<endl;}2.解答:①fraction operator +(fraction & f1,fraction & f2) { ……………………………4分int nfz = f1.fz*f2.fm+f1.fm*f2.fz;int nfm = f1.fm*f2.fm;return fraction(nfz,nfm);}②fraction & fraction::operator =(fraction & f) { ……………………………4分fz=f.fz;fm=f.fm;return *this;}③istream & operator >>(istream & is,fraction & f) { ……………………………4分is>>f.fz>>f.fm;return is;}3.解答:#include<iostream>using namespace std;class employee{ ……………………………4分protected:char name[20];int empNo;float salary;public:employee(char *cp="李强",int no=1001);employee(employee&);void setname(char *cp);void setempNo(int no);void setsalary(float sa);char*getname();int getempNo();float getsalary();void display();employee compsalary(employee *emp);};employee::employee(char *cp,int no){ int i=0;while(*cp){ name[i]=*cp;i++;cp++;}name[i]='\0';empNo=no;}employee::employee(employee &em){ int i=0;while([i]){ name[i]=[i];i++;}name[i]='\0';empNo=em.empNo;salary=em.salary;}void employee::setname(char *cp){ int i=0;while(*cp){ name[i]=*cp;i++;cp++;}name[i]='\0';}void employee::setempNo(int no){ empNo=no;}void employee::setsalary(float sa){ salary=sa;}char*employee::getname(){ return name;}int employee::getempNo(){ return empNo;}float employee::getsalary(){ return salary;}void employee::display(){ cout<<"工号为"<<empNo<<"的雇员"<<name<<"的月薪为"<<salary<<endl; }employee employee::compsalary(employee *emp){if(this->salary>=emp->salary)return *this;elsereturn *emp;}class worker : public employee ……………………………4分{public:worker(char*,int,int);void setproductNum(int n){ productNum=n;}int getproductNum(){ return productNum;}void pay();private:int productNum;static float proper; //每件产品的利润};float worker::proper=20; //假设每件产品的利润为20元worker::worker(char *name,int no,int pronum):employee(name,no){productNum=pronum;}void worker::pay(){salary=productNum*proper*0.2;}class technician : public employee ……………………………4分{public:technician(char*,int,float);void sethours(float h){ workHours=h;}float gethours(){ return workHours;}void pay();private:float workHours;static float payperhour; //科研人员每小时工作的酬金};float technician::payperhour=40; //假设科研人员每小时工作的酬金为40元technician::technician(char *name,int no,float hours):employee(name,no){ workHours=hours;}void technician::pay(){ salary=workHours*payperhour;}class salesman : public employee{public:salesman(char*,int,float);void setmonthlysales(int num){ monthlysales=num;}int getmonthlysales(){ return monthlysales;}void pay();private:float monthlysales;static float percent; //销售人员的销售提成};float salesman::percent=0.5; //假设销售人员的销售提成为50% salesman::salesman(char *name,int n,float sn):employee(name,n){monthlysales=sn;}void salesman::pay(){salary=monthlysales*percent;}void main() ……………………………2分{worker w1("张三",1001,1000);technician t1("李四",1002,200);salesman s1("王五",1003,10000);w1.pay();t1.pay();s1.pay();cout<<"工人"<<w1.getname()<<"的月薪为"<<w1.getsalary()<<"元\n";cout<<"科研人员"<<t1.getname()<<"的月薪为"<<t1.getsalary()<<"元\n";cout<<"销售人员"<<s1.getname()<<"的月薪为"<<s1.getsalary()<<"元\n"; }。
天津大学《面向对象程序设计》在线作业一100分答案

天津大学《面向对象程序设计》在线作业一100分答案《面向对象程序设计》在线作业一-0001试卷总分:100得分:100
一、单选题(共20题,总分100分)
1.设有定义:inta=0,b=5,c;执行语句c=(a=b)||++a&&b++后,a、b、c的值分别是()。
a.5,5,1b.4,6,1c.1,6,1d.1,5,0正确答案:a
2.当类a的成员函数被描述为虚函数时,该函数位于类a()的所有派生类中。
a、都是虚拟功能
b.被重新定义后才是虚函数
c、虚拟函数只是在用虚拟函数重新解释后的虚拟函数。
D.它们不能被重新定义。
正确答案:a
3.c++中函数原型不能标识()。
a..函数的返回类型b..函数的功能;c..函数参数的个数d.函数参数的类型正确答案:b
4.类MClass的复制初始化构造函数是()。
a、麦克拉斯()
b.mclass(mclass)
c.mclass(mclass*)
d.mclass(mclass&)正确答案:d
5.无法直接访问非静态数据成员的成员函数为()。
a、构造函数B.析构函数C.复制构造函数D.静态成员函数正确答案:D
6.设函数原型为:voidtest(inta,intb=7,char*s=”*”);以下函数调用中,不合法的是。
南开18春学期《面向对象程序设计》在线作业答案

【奥鹏】[南开大学]18春学期《面向对象程序设计》在线作业试卷总分:100 得分:100第1题,面向对象程序设计方法以()为中心进行分析和设计。
A、结构B、模块C、对象D、类正确答案:C第2题,已知函数原型:void f(int a, int b=3,char c='*'); 则下面的函数调用中,不合法的调用是()。
A、f(5)B、f(5,8)C、f(6, , '#')D、f(0,0, '#')正确答案:C第3题,有关带默认参数的函数的描述正确的是()。
A、只能在函数定义时设置默认参数值B、只能在函数声明时设置默认参数值C、函数调用时,必须使用默认的参数值,不能给出新的实参值D、设置默认参数时,应该设置最右边的若干个参数的默认值正确答案:D第4题,下列关于虚函数的说明中,正确的是()。
A、从虚基类继承的函数都是虚函数B、虚函数不得是静态成员函数C、只能通过指针或引用调用虚函数D、抽象类中的成员函数都是虚函数正确答案:B第5题,下列运算符中,()在C++中不能重载。
A、?:B、+C、-D、=正确答案:A第6题,下面关于私有继承方式的论述中错误的是()。
A、基类中的私有成员对其对象不可见B、基类中的私有成员对其派生类不可见C、基类中的公有成员对其派生类可见D、基类中的保护成员对其派生类不可见正确答案:D第7题,如果一个类至少有一个纯虚函数,那么就称该类是()。
A、抽象类B、虚基类C、派生类D、以上都不对正确答案:A第8题,类的默认的无参构造函数()。
A、在任何情况下都存在B、仅当未定义无参构造函数时存在C、仅当未定义有参构造函数时存在D、仅当未定义任何构造函数时存在正确答案:D第9题,对A、B两个类进行多重继承得到派生类C,则创建派生类C的对象时,从基类B 中继承过来的成员变量由()类的构造函数进行初始化。
A、AB、BC、CD、都可以正确答案:B第10题,静态数据成员初始化在()进行,而且前面不加static,以免与一般静态变量或对象相混淆。
北语18秋《面向对象程序设计》作业1234满分答案

D.BOOK*x=book
正确答案:A
以下标识符中不全是保留字的是()。
A.caseforint
B.defaultthenwhile
C.boolclasslong
D.gotoreturnchar
正确答案:B
以下叙述中正确的是( )。
A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
A.cout<<*p
B.cout<<p
C.cout<<&p
D.cout<<(void*)p
正确答案:D
当处理特定问题时的循环次数已知时,通常采用()来解决。
A.for循环
B.while循环
C.do循环
D.switch语句
正确答案:A
在下面循环语句中循环体执行的次数为()。for(int i=0; in; i++)if(in/2) break;
A.deletep
B.delete*p
C.delete&p
D.delete[]p
正确答案:A
假定有“struct BOOK{char title[40]; float price;}; BOOK *book;”,则不正确的语句为()。
A.BOOK*x=newbook
B.BOOKx={"C++Programming",27.0}
D.n-1
正确答案:B
C++程序的基本模块为()。
A.表达式
B.标识符
C.语句
吉林大学《面向对象程序设计》在线作业一答卷

吉大18春学期《面向对象程序设计》在线作业一-0004试卷总分:100 得分:100一、单选题 (共 15 道试题,共 60 分)1. 设有定义 int i=123; long j=456; 下面赋值不正确的语句是( )A. j=i;B. j=(long)i;C. i=(int)j;D. i=j;答案:D2.设有定义 int i = 6 ;,则执行以下语句后,i 的值为( )。
i += i - 1;A. 10B. 121C. 11D. 100答案:C3.int 型 public 成员变量 MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( )A. public int MAX_LENGTH=100B. final int MAX_LENGTH=100C. public const int MAX_LENGTH=100D. public final int MAX_LENGTH=100答案:D4.给出如下代码: class test{ private int m; public static void fun() { // some code... } } 如何使成员变量m 被函数fun()直接访问( )。
A. 将private int m 改为protected int mB. 将private int m 改为 public int mC. 将private int m 改为 static int mD. 将private int m 改为 int m答案:C5.如果类中的成员变量可以被同一包访问,则使用如下哪个约束符( )。
A. privateB. publicC. protectedD. no modifier答案:D6.所有的异常类皆继承哪一个类?( )A. java.io.ExceptionB. ng.ThrowableC. ng.ExceptionD. ng.Error答案:C7.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( )A. x > y || x > zB. x != yC. z > ( y + xD. x < y & ! ( x < z )答案:B8.不允许作为类及类成员的访问控制符的是( )。
浙江大学远程教育2018面向对象程序设计在线作业答案

B a[1][1]
C a[2][0]
D a[2][1]
正确答案:A
单选题
11.【第2章】关于new运算符的下列描述中,( )是错误的。
A 它可以用来动态创建对象和对象数组
B 使用它创建的对象或对象数组可以使用运算符delete删除
C 使用它创建对象时要调用构造函数
D 使用它创建对象数组时必须指定初始值
单选题
25.【第2章】表达式:36.5-(12+7%4)/2.0的运算结果是( )类型。
A double
B int
C float
D char
正确答案:A
单选题
26.【第2章】下列描述中,( )是错误的。
A 内联函数主要解决程序的运行效率问题
B 内联函数的定义必须出现在内联函数第一次被调用之前
C 内联函数中可以包括各种语句
A printf("%s",*words[3]+1)
B printf("%s",*words[4]+1)
C printf("%s",*(words+3)+1)
D printf("%s",(*words+4)+1)
正确答案:C
单选题
23.【第2章】下列属于合法的C语言赋值语句的是( )。
A a=b=58
D 一个类中能定义多个析构函数。
正确答案:C
单选题
46.【第3章】类的友元允许访问该类的( )。
A 只能是数据成员
B 私有成员
C 只能是成员函数
D 只能是公有成员
正确答案:B
单选题
吉大《面向对象程序设计》在线作业一答案
18.选出合理的标识符( )
A._sys1_lll
B.2mail
C.$change
D.class
答案:AC
19.定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为( )。
A.private class MyClass extends Object
A.abstract final class Hl{…}
B.abstract private move(){…}
C.protected private number
D.public abstract class Car{…}
答案:D
二、多选题(共5道试题,共20分)
16.下述哪些说法是正确的( )。
吉大18春学期《面向对象程序设计》在线作业一-0002
试卷总分:100得分:100
一、单选题(共15道试题,共60分)
1.下列运算符中,优先级最高的是( )。
A.&&
B.++
C.+
D.*
答案:B
2.数组的大小在创建以后( )。
A.可以改变
B.不能改变
C.使用new方法可以改变
D.有些可以改变
答案:B
A.将构造一个Student对象;
B.表达式是合法的;
C.表达式是错误的;
D.编译时正确,但运行时错误。
答案:C
10.在Java中,用package语句说明一个包时,该包的层次结构必须是( )
A.与文件的结构相同
B.与文件目录的层次相同
C.与文件类型相同
D.与文件大小相同
面向对象的程序设计第1阶段练习题江大考试题库及答案一科共有三个阶段,这是其中一个阶段。答案在最后一页
面向对象的程序设计第1阶段练习题江大考试题库及答案一科共有三个阶段,这是其中一个阶段。
答案在最后一页B.静态成员可以在类的外部初始化C.静态成员可以被继承D.静态成员可以被声明为const类型12.下面关于继承的说法,正确的是()。
(1分)A.子类可以访问父类的私有成员B.子类可以继承父类的构造函数C.子类可以继承父类的析构函数D.子类可以继承父类的友元函数13.下面哪个关键字可以在子类中引用父类的构造函数()。
(1分)A.XXX.base三判断题(共3题,总分值3分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)14.当函数调用时,参数按值传递,函数内对参数的修改不会影响到实参。
(1分)A.√B.×15.友元函数是类的成员函数,可以访问类的私有成员。
(1分)A.×B.√16.多态是指同一个函数名可以有多种不同的实现方式。
(1分)A.√B.×XXX网络教育第一阶段练题考试科目:《面向对象的程序设计》第1章至第4章(总分100分)研究中心(教学点)批次:______ 层次:______ 专业:______ 学号:______ 身份证号:______ 姓名:______ 得分:______一、单选题(共9题,总分值9分,每题1分)1.下列关于成员函数的说法中,不正确的是()。
A.成员函数可以无返回值B.成员函数可以重载C.成员函数一定是内联函数D.成员函数可以设定参数的默认值2.函数没有返回值的时候,应该选择()的函数类型。
A.voidB.intC.不确定D.float3.假定A是一个类,那么执行语句“A a。
b(3)。
*p;”调用了()次构造函数。
A.1B.2C.3D.44.在类的定义中,引入友元的原因是()。
A.提高效率B.深化使用类的封装性C.提高程序的可读性D.提高数据的隐蔽性5.对重载的函数来说,下面叙述不正确的是()。
A.参数的类型不同B.参数的顺序不同C.参数的个数不同D.参数的个数、类型、顺序都相同,但函数的返回值类型不同6.下面对友元的错误描述是()。
18春学期《面向对象程序设计》在线作业1 (3)
B.正确
正确答案:A
9.抽象类不能定义对象,但可以声明抽象类的指针或引用。
A.错误
B.正确
正确答案:B
10.a为MyClass类对象,“static void SetRate(double r){...}”是MyClass类的静态成员函数,则执行语句“a.SetRate(0.05);”时,SetRate成员函数中的this指针指向对象a的地址。
A.错误
B.正确
正确答案:A
11.在C++中,允许从一个类派生出任意多个类,但不允许某个类同时从多个类派生。
A.错误
B.正确
正确答案:A
12.在一个类中声明了某个静态数据成员,并在类外给出其定义和初始化后,若未定义该类的对象,该静态数据成员则不存在。
A.错误
B.正确
正确答案:A
A.友元函数
B.虚函数
C.构造函数
D.析构函数
正确答案:D
31.下列关于运算符重载正确的是()。
A.运算符重载可以改变运算符的操作数个数
B.运算符重载可以改变运算符的优先级
C.运算符重载可以改变运算符的结合性
D.运算符重载不可以改变语法结构
正确答案:D
32.下面叙述中错误的是()。
D.派生类对其继承的基类的成员访问权限保持不变
正确答案:D
34.假定MyClass为一类,执行MyClass a,b(2),*p[2];语句时会自动调用该类构造函数()次。
A.2
B.3
C.4
D.5
正确答案:A
35.程序在调用重载函数时,根据()区分到底要调用哪个函数。
吉大18春学期《面向对象程序设计》在线作业一-0003
吉大18春学期《面向对象程序设计》在线作业一-0003异常包含下列那些内容( )。
A:程序中的语法错误B:程序的编译错误C:程序执行过程中遇到的事先没有预料到的情况D:程序事先定义好的可能出现的意外情况答案:CString?s=""This?is?the?"";String?t=s.concat(""String."");?t的内容是( ) A:This?is?th?StringB:This?is?theC:String答案:A下面语句执行后,i 的值是( )。
for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A:4B:5C:6D:7答案:B以下语句有语法错误的是( )A:int?x=1;y=2;z=3B:for?(int?x=10,y=0;x>0;x++);C:while?(x>5);D:for(;?;);答案:A关于Java中数据类型叙述正确的是( )A:整型数据在不同平台下长度不同B:boolean类型数据只有2个值,true和falseC:数组属于简单数据类型D:Java中的指针类型和C语言的一样答案:B给出如下代码: class test{ private int m; public static void fun() { // some code... } } 如何使成员变量m 被函数fun()直接访问( )。
A:将private int m 改为protected int mB:将private int m 改为 public int mC:将private int m 改为 static int mD:将private int m 改为 int m答案:C已知如下代码:boolean m = true;if ( m = false ) System.out.println("False");else System.out.println("True");执行结果是( )A:FalseB:TrueC:NoneD:出错答案:B下面的代码段中,执行之后i 和j 的值是( )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》在线作业一-0001
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 100 分)
1.设有定义:int a=0,b=5,c; 执行语句c=(a=b)||++a&&b++后,a、b、c的值分别是()。
A.5,5,1
B.4,6,1
C.1,6,1
D.1,5,0
正确答案:A
2.当A类的某个成员函数被说明为virtual时,该函数在A类的所有派生类中()。
A.都是虚函数
B.被重新定义后才是虚函数
C.只有被用virtual重新说明后才是虚函数
D.不能被重新定义
正确答案:A
3.C++中函数原型不能标识()。
A..函数的返回类型
B..函数的功能;
C..函数参数的个数
D.函数参数的类型
正确答案:B
4.类Mclass的拷贝初始化构造函数是()。
A.Mclass( )
B.Mclass(Mclass)
C.Mclass(Mclass *)
D.Mclass(Mclass&)
正确答案:D
5.不能直接访问非静态数据成员的成员函数是()。
A.构造函数
B.析构函数
C.拷贝构造函数
D.静态成员函数
正确答案:D
6.设函数原型为:void test(int a,intb=7,char *s=”*”); 以下函数调用中,不合法的是。