面向对象程序设计-作业1

合集下载

XXX14秋学期《面向对象程序设计》在线作业答案

XXX14秋学期《面向对象程序设计》在线作业答案

XXX14秋学期《面向对象程序设计》在线作业答案面向对象程序设计14秋学期《面向对象程序设计》在线作业一,单选题1.下列关于this指针的说法,错误的是()。

A。

this指针指向当前正在操作的对象B。

this指针只存在于非静态成员函数中C.在成员函数中对非静态数据成员的访问是通过this指针完成的D.静态成员函数中可以通过this指针访问非静态成员正确答案:D2.已知“int a=10,*p;int *&r=p。

r=*p=20;cout<<a;”,则输出为()。

A。

10B。

20C.不确定值D.程序有错误正确答案:B3.有关重载函数的描述正确的是()。

A.函数名相同的函数就是重载函数B.函数名相同但返回值类型不同的函数就是重载函数C.函数名相同但参数个数或类型不同的函数就是重载函数D.函数功用相同的函数就是重载函数正确答案:C4.在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。

以下叙述中正确的选项是()。

A。

operator+有两个参数,operator*有两个参数B。

operator+有两个参数,operator*有一个参数C。

operator+有一个参数,operator*有两个参数D。

operator+有一个参数,operator*有一个参数正确谜底:C5.以成员函数方式重载运算符“>”,则obj1>obj2被C++编译器解释为()。

A。

operator>(obj1,obj2)B。

(obj1,obj2)C。

obj1.operator>(obj2)D。

obj2.operator>(obj1)正确谜底:C6.下列运算符中,()在C++中不能重载。

A。

:B。

+C。

-D。

<=正确答案:A7.运行以下程序时,如果由键盘输入6514,则输出结果是()。

#includeusingnamespace std。

int main() { int m。

吉林大学2020-2021学年第一学期期末考试《面向对象程序设计》大作业参考答案

吉林大学2020-2021学年第一学期期末考试《面向对象程序设计》大作业参考答案

2020-2021学年第一学期期末考试《面向对象程序设计》大作业一名词解释题 (共10题,总分值30分 )1. 全局变量(3 分):变量分为局部与全局,局部变量又可称之为内部变量。

由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

2. 菜单(3 分):实际是一种树型结构,为软件的大多数功能提供功能入口。

3. 图标(3 分):通常用来做广告宣传的商标或特定标志。

4. main函数(3 分):又称主函数,是程序执行的起点,main是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main之外的其他函数,迎合人们的思考方式而生成的而非必定的模式。

有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。

5. 控件(3 分):Windows设计了一些具有图形外观的程序实体,这些程序实体在鼠标或键盘的作用下会使程序出现不同的响应,这些可以接收或者产生事件的程序实体就叫做控件。

6. 继承(3 分):指一个类(即称子类)因承袭而具有另一个类(或称父类)的能力和特征的机制或关系。

7. 宏(3 分):计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。

解释器或编译器在遇到宏时会自动进行这一模式替换。

8. 用户界面(3 分):信息系统中需要用户交互的输入和输出部分。

9. 窗口(3 分):计算机图形学中的窗口是用户坐标系中需要进行观察和处理的一个坐标区域。

10. 数据成员(3 分):包含与非叶成员直接相关的值,该值独立于由该成员的后代计算得到的汇总值。

二简答题 (共5题,总分值40分 )11. While语句的形式为while(<表达式> ) <语句> ;当表达式满足什么条件时可以执行语句的内容?(8 分)答:以下是while语句的基本形式: while(表达式)语句:其中“表达式”可以是任意合法的表达式。

面向对象程序设计-作业1-参考答案

面向对象程序设计-作业1-参考答案

作业1参考答案一、选择题二、判断题三、读程序并写出运行结果四、综合编程题1、#include <iostream.h>long int fac(int a);void main( ){ long sum=0;for (int i=1;i<=10;i++)sum+=fac(i);cout<<"The sum is "<<sum<<endl;}long int fac(int a){ int temp=1;for(int j=1;j<=a;j++)temp*=j;return temp;}2、#include<fstream.h>#include<stdlib.h>double ave(int p[]); //声明求和函数int max(int p[]); //声明求极大值函数void main(){ int a[6], maxv;double avev;int i=0;while(i<6) //通过循环从键盘给数组元素赋值{ cout<<"a["<<i<<"]=";cin>>a[i];i++;}maxv=max(a); //调用求和函数avev=ave(a); //求极大值函数ofstream my_ostrm; //定义输出流my_ostrm.open("c:\\myfile.txt"); //打开指定文件if(!my_ostrm) //文件打开不成功,报错并终止运行{cout<<"open file error,abort!";abort();}for(i=0;i<6;i++) //往文件写入各数组元素的值my_ostrm<<a[i]<<endl;my_ostrm<<avev<<endl; //写入平均值my_ostrm<<maxv<<endl; //写入最大值my_ostrm.close(); //文件关闭ifstream my_istrm; //定义输入流my_istrm.open("c:\\myfile.txt"); //打开指定文件if(!my_istrm) //文件打开不成功,报错并终止运行{cout<<"open file error,abort!";abort();}for(i=0;i<6;i++) //往文件读取各数组元素的值{my_istrm>>a[i];cout<<a[i]<<endl;}my_istrm>>avev>>maxv; //读取平均值与最大值cout<<avev<<"\n"<<maxv<<endl; //输出my_istrm.close();}double ave(int p[]) /*求和函数的实现,形参用数组*/{ int s=0;for(int i=0;i<6;i++) s+=p[i];return s/6.0; }int max(int p[])/*求极大值函数的实现,形参用数组*/{ int maxv=p[0];for(int i=0;i<6;i++) if(p[i]>maxv)maxv=p[i];return maxv; }。

面向对象程序设计作业

面向对象程序设计作业

一)、简答题:1、函数模板与函数有何关系?函数模板实际上是建立一个通用函数,其涵涵素类型额形参类型不具体指定,用一个虚拟的类型来代表,这个通用函数就称为函数模板。

凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需要在模板中定义一次即可。

在调用函数时,系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能2、类模板与类有和关系?类模板是对一批仅仅成员数据类型不同的类的抽象,程序员只要为这一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类,(这类可以看作是类模板的实例),从而大大提高编程的效率。

3、什么是继承?继承,就是面向对象中类与类之间的一种关系。

继承的类称为子类、派生类,而被继承类称为父类、基类或超类。

通过继承,使得子类具有父类的属性和方法,同时子类也可以通过加入新的属性和方法或者修改父类的属性和方法建立新的类层次继承机制体现了面向对象技术中的复用性、扩展性和安全性。

为面向对象软件开发与模块化软件架构提供了最基本的技术基础4、继承方式有哪些?产生的结果是什么?包括:公有继承(public),私有继承(private),保护继承(protected)等。

继承可以使现有的代码具有可重用性和可扩展性。

public继承,父类的成员访问属性不变。

protected继承,父类中public成员变为protected属性,其它成员的访问权限不变。

private继承,使得基类所有成员在子类中的访问权限变为private。

5、什么是动态绑定?动态绑定是将一个过程调用与相应代码链接起来的行为。

是指与给定的过程调用相关联的代码,只有在运行期才可知的一种绑定,他是多态实现的具体形式。

C++中动态绑定是通过虚函数实现的。

而虚函数是通过一张虚函数表(virtual table)实现的。

这个表中记录了虚函数的地址,解决继承、覆盖的问题,保证动态绑定时能够根据对象的实际类型调用正确的函数在计算机语言中有两种主要的绑定方式,静态绑定和动态绑定。

NET面向对象程序设计第1次作业-基础知识

NET面向对象程序设计第1次作业-基础知识

.Net面向对象程序设计第1次作业一、简答题1、什么是可选参数,什么是命名参数?1:可选参数:为了定义一个参数是可选的,可以在定义方法时为该参数提供一个默认值。

默认值是使用赋值操作符来赋予的。

2:命名参数:为了将一个实参作为命名参数来传递,必须输入参数名,一个冒号,然后市传递的值,利用命名参数,实参就可以按任意顺序传递。

2、C#中类包含哪些内容?在类的主体中,包含了普通的方法和字段。

类中的变量称为字段,类中包含封装,继承,多态等原则。

3、简述C#中的异常处理机制?程序运行过程中,当违背C#语法及.NET执行环境,.NET执行引擎就会产生一个异常被零除,无效的类型转换,调用不存在的文件,存储空间耗尽。

异常处理:用合理的方式处理异常,阻止程序继续执行并将代码部分分成两个单独的部分:实现期望功能的程序部分,处理异常部分。

为了写一个异常处理的应用程序,需要做两件事情:代码要放到一个try块中,代码运行时,它会尝试执行try块内的所有语句,如果没有产生异常,这些语句会一个接一个的运行,如果产生异常,就会跳出try块,进入一个相应的catch处理程序执行,在try块后面紧接着写一个或多个catch处理程序,用他们处理发生的任何错误,try块中任何一个语句造成错误,“运行时”都会生成并抛出一个异常,然后,runtime将检查try块之后的catch处理程序,将控制权移交给一个匹配的处理程序。

4、静态方法的作用是什么?在静态方法中,不能访问类中定义的任何实例字段。

相反,只能访问static字段。

此外,只能直接调用类中的其他static 的方法;非static的方法要求先创建一个对象,然后才能在那些对象调用哪些方法。

不能明确指定属于某一特定对象的方法应该为静态。

5、什么是装箱、拆箱?装箱就是隐式的将一个值型转换为引用型对象,拆箱就是将一个引用型对象转换成任意值型。

6、值类型和引用类型的区别?值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用7、类和结构的区别?1) 结构是一个值类型,保存在栈上,而类是一个引用类型,保存在受管制的堆上。

面向对象程序设计课程作业

面向对象程序设计课程作业

面向对象程序设计课程作业一、单选题1. (5分)调用一成员函数时,使用动态联编的情况是()A. 通过对象调用一虚函数B. 通过指针或引用调用一虚函数C. 通过对象调用静态函数D. 通过指针或引用调用静态函数得分:0知识点:第6章收起解析.答案B.解析第6章6.2节..2. (5分)下列选项中,可以作为函数重载的条件之一的是():A. 不同的形参名称B. 不同的返回值C. 不同的函数名D. 不同的参数个数得分:0知识点:第2章收起解析.答案D.解析第2章2.5节..3. (5分)如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是()A. 一元运算符B. 二元运算符C. 选项A和选项B都可能D. 重载错误得分:0知识点:第3章收起解析.答案D.解析第3章3.5节..4. (5分)有以下程序main() { int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]); } 程序的执行后的输出结果是()A. 7 5 3B. 3 5 7C. 3 6 9D. 7 5 1得分:0知识点:第2章收起解析.答案B.解析第2章2.2节..5. (5分)若要求从键盘读入含有空格字符的字符串,应使用函数()A. getc()B. gets()C. getchar()D. scanf()得分:0知识点:第2章收起解析.答案B.解析第2章2.5节..6. (5分)可以用P.a的形式访问派生类对象p的基类成员a,其中a是A. 私有继承的公有成员B. 共有继承的私有成员C. 公有继承的保护成员D. 公有继承的公有成员得分:0知识点:第4章收起解析.答案D.解析第4章4.1节..7. (5分)解决二义性问题的方法有A. 只能使用作用域分辨操作符B. 使用作用域分辨操作符或赋值兼容规则C. 使用作用域分辨操作符或虚基类D. 使用虚基类或赋值兼容规则得分:0知识点:第6章收起解析.答案C.解析第6章6.2节..8. (5分)以下有关继承正确的是A. 构造函数和析构函数都能被继承B. 派生类是基类的组合C. 派生类对象除了能访问自己的成员外,不能访问基类中的所有成员D. 基类的公有成员一定能被派生类对象访问得分:0知识点:第4章收起解析.答案D.解析第4章4.2节..9. (5分)假定类B是在类A基础上扩充而得到的,那么就称A. 类A为基类或父类,类B为超类或子类B. 类A为基类、父类或超类,类B为派生类或子类C. 类A为派生类,类B为基类D. 类A为派生类或子类,类B为基类、父类或超类得分:0知识点:第3章收起解析.答案B.解析第3章3.2节..10. (5分)如果类A被说明成类B的友元,则()A. 类A的成员即类B的成员B. 类B的成员即类A的成员C. 类A的成员函数不得访问类B的成员D. 类B不一定是类A的友元得分:0知识点:第5章收起解析.答案D.解析第5章5.2节..11. (5分)下列有关继承和派生的叙述中,正确的是()A. 派生类不能访问基类的保护成员B. 作为虚基类的类不能被实例化C. 派生类应当向基类的构造函数传递参数D. 虚函数必须在派生类中重新实现得分:0知识点:第3章收起解析.答案C.解析第3章3.1节..12. (5分)下面是一个模板声明的开始部分:templute double __ 由此可知()A. 这可能是一个函数模板的声明B. 这可能是一个类模板的声明C. 这既可能是一个函数模板的声明,也可能是一个类模板的声明D. 这肯定是一个错误的模板声明得分:0知识点:第7章收起解析.答案A.解析第7章7.2节..13. (5分)以下叙述中正确的是()A. 预处理命令行必须位于C源程序的起始位置B. 在C语言中,预处理命令行都以“#”开头C. 每个C程序必须在开头包括预处理命令行:#includeD. C语言的预处理不能实现宏定义和条件编译的功能得分:0知识点:第2章收起解析.答案C.解析第2章2.4节..14. (5分)下列关于模板的说法正确的是()A. 模板的实参在任何时候都可以省略B. 类模板与模板库所指的是同一概念C. 类模板的参数必须是虚拟类型的D. 类模板中的成员函数全部都是模板函数得分:0知识点:第7章收起解析.答案D.解析第7章7.2节..15. (5分)在文件包含命令中,被包含文件的扩展名A. 必须是.hB. 不能是.hC. 可以是.h或.cppD. 必须是.cpp得分:0知识点:第1章收起解析.答案C.解析第1章1.1节..二、判断1. (5分)当函数的返回值是数组类型的,传递的是数组第一个元素的地址.得分:0知识点:第2章收起解析.答案错误.解析第2章2.5节..2. (5分)数据成员在初始化列表中的书写顺序无关紧要,但初始化列表对数据成员初始化的执行次序就是类中定义数据成员的次序。

16秋北交《面向对象的程序设计》在线作业一

16秋北交《面向对象的程序设计》在线作业一

北交《面向对象的程序设计》在线作业一一、单选题(共23 道试题,共57.5 分。

)1. 已知在一个类体中包含如下函数原型: VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是( )A. 这是运算符-的重载运算符函数B. 这个函数所重载的运算符是一个一元运算符C. 这是一个成员函数D. 这个函数不改变类的任何数据成员的值正确答案:2. 有如下函数模板定义:template T func(T x, T y) { return x*x+y*y; } 在下列对func的调用中,错误的是( )A. func(3, 5);B. func(3.0, 5.5);C. func (3, 5.5);D. func(3, 5.5);正确答案:3. 下列函数中,()是对文件进行读操作的。

A. read()B. write()C. tellg()D. seekp()正确答案:4. C++语言的跳转语句中,对于break和continue说法正确的是()A. break语句只应用于循环体中B. continue语句只应用于循环体中C. break是无条件跳转语句,continue不是D. break和continue的跳转范围不够明确,容易产生问题正确答案:5. 设x和y均为bool量,则x&&y为真的条件是()A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假正确答案:6. 下列静态数据成员的特性中,错误的是( )A. 说明静态数据成员前边加staticB. 静态数据成员要在类体外初始化C. 引用静态数据成员时,要在静态数据成员前加和作用域运算符D. 静态数据成员不是一个类所有对象共享的正确答案:7. 有如下类声明:class Foo { int bar; }; 则Foo类的成员bar是( )A. 公有数据成员B. 公有成员函数C. 私有数据成员D. 私有成员函数正确答案:8. 下面有关重载函数的说法中正确的是()A. 重载函数必须具有不同的返回值类型B. 重载函数形参个数必须不同C. 重载函数必须有不同的形参列表D. 重载函数名可以不同正确答案:9. 下列有关类的说法不正确的是()。

面向对象 第一次作业

面向对象 第一次作业

面向对象程序设计技术 作业一一、 填空题1、C++预言中的每条基本语句以__________作为结束符,每条复合语句以_________作为结束符。

2、用于输出表达式值的标准输出流对象是_________,用于从键盘上为变量输入值的标准输入流对象______。

3、当不需要函数返回值时,则应把该函数类型定义为_____。

4、执行”cout<<143<<’+’<<18<<’=’<<143+18<<endl ;”语句后得到的输出结果为 。

5、执行”coun<<”ning”<<”chen”<<38<<endl ;”语句后得到的输出结果为 。

6、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为 。

7、C++源程序文件的缺省扩展名为__ ____,由C++源程序文件编译而成的目标文件的缺省扩展名为___ ___由C++目标文件连接而成的可执行文件的缺省扩展名为_ _____。

8、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用 或 符号作为分隔符。

9、十进制数25表示成符合C++八进制和十六进制数分别为 和 。

10、在C++语言中,用转义字符序列 或操纵符 表示输出一个换行符。

11、执行”cout<<char (’b’+2)<<endl ;”语句后得到的输出结果为 。

12、执行”cout<<char (’K’-3)<<endl ;”语句后得到的输出结果为 。

13、已知’A’~’Z’的ASCII 码为65~90,当执行”int x=’H’+5;”语句后x 的值为 。

14、已知’A’~’Z’的ASCII 码为65~90,当执行”char ch=16*5+2;cout<<ch<<endl ;”语句序列后,得到的输出结果为 。

奥鹏北语14秋《面向对象程序设计》作业1满分答案

奥鹏北语14秋《面向对象程序设计》作业1满分答案
A.可维护性
B.可复用性
C.兼容性
D.正确性
?
正确答案:A
20.转义字符‘\n’表示()
A.制表符
B.退后符
C.回车换行符
D.前进符
?
正确答案:C
?
正确答案:C
13.假定变量x定义为“int x=5;”,要使rx成为x的引用(别名),rx应定义为()。
A. intrx=x
B. intrx=&x
C. int*rx=&x
D. int&rx=x
?
正确答案:D
14.关于void指针,下列说法正确的是()。
A. void指针就是未指向任何数据的指针
B. void指针就是已定义而未初始化的指针
14秋《面向对象程序设计》作业1
一,单选题
1.关于消息,下列说法中不正确的是()。
A.发送消息的对象请求服务,接受消息的对象提供服务
B.消息的发送者必须了解消息的接收者如何相应消息
C.在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用
D.每个对象只能接收某些特定格式的消息
?
正确答案:B
C.不需要
D. 0
?
正确答案:D
17. C语言正确的多行注释字符是
A.
//
B. /*和*/
C. /*
D. /***
?
正确答案:B
18.假定p指向的字符串为”string”,则cout<<p+3的输出结果为()。
A. string
B. ring
C. ing
D. i
?
正确答案:C
19.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的()。

java《面向对象程序设计》作业

java《面向对象程序设计》作业

课后作业第一章Java语言基础知识1.程序设计语言发展的历程答案:机器语言、汇编语言、高级语言、面向对象的语言2.面向对象语言的基本特征答案:抽象和封装、继承性、多态性3.Java语言的特点答案:java语言是一种卓越的程序设计语言,它具有以下特点。

1.面向对象2.简单性3.可移植性4.稳定性和安全性5.高性能6.分布性4. 为什么Java语言是跨平台的?答案:因为Java程序的最终实现需要经过编译和解释两个步骤,Java语言的编译器生成可执行的字节码,这种代码是由Java虚拟机生成的,它与任何硬件平台无关。

当生成字节码后,再使用Java解释器来执行字节码,这也就意味着只要有安装Java解释器的机器Java程序都可以运行,所以它是跨平台的面向对象的程序设计语言。

5. Java2的SDK是什么?答:Java2的SDK指Software Development Kit 软件开发工具集6. Java开发工具中的javac.exe和java.exe的功能是什么?答案:Javac.exe是Java编译器,用来将java程序编译成字节码。

Java.exe是Java解释器,执行已经转换成Bytecode的java应用程序。

7. Java集成开发环境有哪些?答案:Java集成开发环境主要有:Eclipse、netBeans、Jcreator LE、BorlandJbuilder、Microsoft Visual J++、IBM : Visual Age for Java、Sun ONE Studio 8.Java程序编译执行的过程答案:Java语言源程序的变异过程主要进行两件工作:1.通过编译程序检查Java源程序中是否有语法错误,如果发现错误,便报告已发现的错误,修改后再编译,直到未发现错误时才生成字节码文件。

2.通过编译来引入Java类库中已编好的模块,为了方便编程,Java类库中有若干个包,每个包中有若干个模块,每个模块是一个具有某种功能的类,它们都是字节码形式的程序。

吉大18秋学期《面向对象程序设计》在线作业一(满分)

吉大18秋学期《面向对象程序设计》在线作业一(满分)

(单选题) 1: 设有定义 int i=123; long j=456; 下面赋值不正确的语句是( )A: j=i;B: j=(long)i;C: i=(int)j;D: i=j;正确答案:(单选题) 2: 设有定义 int i = 6 ;,则执行以下语句后,i 的值为( )。

i += i - 1;A: 10B: 121C: 11D: 100正确答案:(单选题) 3: 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正确答案:(单选题) 4: 给出如下代码: 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正确答案:(单选题) 5: 如果类中的成员变量可以被同一包访问,则使用如下哪个约束符( )。

A: privateB: publicC: protectedD: no modifier正确答案:(单选题) 6: 所有的异常类皆继承哪一个类?( )正确答案:(单选题) 7: 设有定义 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 )(单选题) 8: 不允许作为类与类成员的访问控制符的是( )。

面向对象程序设计作业1

面向对象程序设计作业1

作业11. 程序输出有下面Account类的定义,写出(1)—(4)函数运行后的结果。

(1)写出执行下面函数后的输出结果Your answer:答案:account1 balance: $3550(2)写出执行下面函数后的输出结果答案:account1 balance: $0(3)写出执行下面函数后的输出结果答案:account1 balance: $2770adding $375 to account1 balance account1 balance: $3145(4)写出执行下面函数后的输出结果答案:account1 balance: $799adding $-114 to account1 balance account1 balance: $6852. 代码改错有下面类的定义GradeBook,修改(1)—(4)代码段中的错误(1)创建GradeBook类对象。

答案:GradeBook gradeBook( "Introduction to C++" );(2)给GradeBook对象的courseName数据赋值。

答案:gradeBook.setCourseName( "Advanced C++" );(3)用户输入课程名给变量course,并将其值赋给对象gradeBook的数据成员nourseName。

答案://第二行cin.getline()缺少参数,这里用getline(cin, inputName)更合适cout << "Please enter the course name:" << endl;//未改动getline( cin, inputName );gradeBook.setCourseName( inputName );(4)输出对象gradeBook当前的课程名答案:cout << "The grade book's course name is: " << gradeBook.getCourseName() << endl;。

面向对象程序设计作业

面向对象程序设计作业

面向对象程序设计作业1
【题目】创建一个Student类,要求:
●该类有如下私有字段:
学号(Id,int型)
姓名(name,string型)
出生日期(birthday,DateTime型)
成绩(score,int型)
●可以通过属性读取字段“姓名”和“出生日期”的值。

●可以通过属性对“成绩”字段的值进行读写,对成绩属性进行赋值时,若成绩大于100分赋
100分,若成绩低于0分赋0分。

●该类有如下重载的构造函数,用于创建对象时对不同的字段赋初值:
publicStudent()
public Student(intxh,stringxm)
public Student(intxh,string xm, DateTimebir,intcj)
●该类具有如下方法:
public string ScoreDj(intcj) 判断成绩等级,若:cj>=90,返回字符串“优秀”
若:cj>=80 and cj<90,返回字符串“良好”
若:cj>=70 and cj<80,返回字符串“中等”
若:cj>=60 and cj<70,返回字符串“及格”
若:cj<60,返回字符串“不及格”
public void Display() 输出学生的学号、姓名、年龄、成绩和成绩等级
最后,设计一个使用Student类的应用程序。

在该应用程序中,输入若干学生的数据(数据放在一个Student对象数组中),然后通过一个方法对其按总分进行降序排序,最后调用方法Display()输出排序后的学生数据。

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

一、选择题
1. 下列各高级语言中,()是面向对象的程序语言。

A) BASIC B) C C) C++ D) Pascal
2. 在32位机中,double型字宽为()字节。

A.2;B.4;C.6;D.8
3. 在int a[][3]={{1,0},{3,2},{4,5,6},{0}};中a[2][2]的值是()。

A.0; B.5; C.6; D.2
4. 对于double (*p)[10];的描述,()是正确的。

A.p是一个指向数组的指针,所指向的数组是10个double型元素;
B.p是一个指向某个数组中第10个元素的指针,该元素是double型变量;
C.p[5]表示某个数组的第10个元素的值;
D.p是一个具有10个元素的指针数组,每个元素是一个double型指针;5.
6.下述关于开关语句的描述中,()是正确的。

A.开关语句中default子句可以没有,也可以有一个;
B.开关语句中每个语句序列中必须有break语句;
C.开关语句中default子句只能放在最后;
D.开关语句中case子句后面的表达式可以是整形表达式。

7. 下列()是引用调用;
A.形参是指针,实参是地址值;B.形参和实参都是变量;
C.形参是数组名,实参是数组名;D.形参是引用,实参是变量。

8. 以下说法中正确的是( )
A)C++程序总是从第一个定义的函数开始执行
B)在C++程序中,要调用的函数必须在main()函数中定义
C)C++程序总是从main()函数开始执行
D)C++程序中的main()函数必须放在程序的开始部分
9.关于new运算符的下列描述中,( )是错的。

A.它可以用来动态创建对象和对象数组;
B.使用它创建的对象或对象数组可以使用运算符delete删除;
C.使用它创建对象时要调用构造函数;
D.使用它创建对象数组时必须指定初始值。

10.在int a=3,*p=&a;中,*p的值是( )。

A.变量a的地址值
B.无意义
C.变量p的地址值
D.变量a的值
二、判断题
1、在说明语句char a(‘A’),&b=a,*pa=&a;中,b的值的*pa的是相等的。

()
2、在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型double型。

()
3、break语句也可以用于if体内,它可退出if语句。

()
4、在一个被调用函数中,一个return语句不可返回多个值给调用函数。

()
5、在传值调用中,要求实参和形参的类型完全一致并且个数相等。

()
6、for循环中,循环变量的作用域是该循环的循环体内。

()
7、const char *p说明了p是指向字符串的常量指针。

()
三、读程序并写出程序的运行结果
1、#include <iostream.h>
void main()
{
short s=0;
double d=10.0;
cout<<sizeof ( char ) << endl;
cout<<sizeof ( short ) << endl;
cout<<sizeof ( long ) << endl;
cout<<sizeof ( double ) << endl;
cout<<sizeof ( s+d ) << endl;
}
2、#include <iostream.h>
void main()
{
int a =10 , s = 0 ;
if ( a = 4 )
while(a ! = 5) s + = a++;
else
a++ ; s++ ;
cout << "s=" << s << endl;
cout << "a=" << a << endl;
}
3、#include <iostream.h>
void main()
{
int s=0 ;
for( int a=8 ; a > 5 ; a–= 2 ) ; //注意此处的分号s + = a ; s * = 2 ;
if ( a = = 4 )
{ cout<<"s="<< s << endl;
cout<<"a="<< a << endl; }
else
{ cout<<"a="<< a << endl;
cout<<"s="<< s << endl; } }
4、#include <iostream.h>
void main()
{ int x=3,y=3;
switch(x%2)
{
case 1: switch (y)
{ case 0:cout<<"first\t";
case 1:cout<<"second\t";break;
default: cout<<"hellow\t";
}
case 2:cout<<"third\n";
}
}
5、#include<iostream.h>
void swap(int *x,int &y);
void main()
{
int a(13),b;
b=a%5;
cout<<"a="<<a<<","<<"b="<<b<<endl;
swap(&a,b);
cout<<"a="<<a<<","<<"b="<<b<<endl;
}
void swap(int *x,int &y)
{ int temp=*x;
*x=y;
y=temp;
}
四、综合编程题
1、编写程序求10!+9!+.....+3!+2!+1!的和,其中计算阶乘要用函数实现;
2、编写程序,要求:1)从键盘上输入6个整数放入数组a[6]中(用while循环实现);2)求出数组元素的最大值及数组的平均值,并将各元素、最大值及平均值输出到一文本文件中保存;3)然后打开该文件,读取其中内容并显示在屏幕上。

相关文档
最新文档