3《面向对象程序设计》模拟试卷2

Person person1; person1=new Person(); output=person1.PrintPerson()+"\n"; ="张飞"; person1.Age=20; output += person1.PrintPerson() + "\n";
MessageBox.Show(output,"输出结果"); } } 答: ,0 岁 张飞,20 岁
C、float a=12.5;
D、 string a=12.ToString();
19、若要使文本框不可编辑,要对( D
)属性进行设置。
A、Enabled B、 Visible C、 BackColor D、 Text
20、float f=-123.567F; int i=(int)f; i的值现在是( A
是私有的, protected 是受
保护的。
10、声明接口的关键字是 interface

四、程序阅读题。(共 10 分,每题 5 分) 1、写出以下程序的运行结果。
sing System; using System.Windows.Forms; class Person {
private string myName; private int myAge=0; public string Name
get { return xb; } } public string Zy { set { zy = value; }
get { return zy; } } public string Xh { set { xh = value; }
get { return xh; } } public void print() { string output = "";
public string Print() {
return String.Format("{0}{1}{2}{3}", Regno, Captain, Producers, Year); } } class Rowboat : Boat { private string material; private string paddletype ; public string Material {
A、^
B、~
C、 $
D、 %
15、下列说法中,正确的是( A )。 A、派生类对象可以强制转换为基类对象 B、在任何情况下,基类对象都不能转换为派生类对象 C、 接口不可以实例化,也不可以引用实现该接口的类的对象 D、基类对象可以访问派生类的成员
16、继承具有( B ),即当基类本身也是某一类的派生类时,派生类会自动继承间接
姓名 性别 专业{0}{1} {2} {3}
s1.Xm = "张三";
s1.Xb = "男";
s1.Zy = "计算机网络技术专业";
s1.Xh = "201209112";
s1.print();
}
}
答:
学号
姓名 性别
专业
201209112 张三

计算机网络技术专业
五、简答题。(共 25 分,每题 5 分) 1、 简述重载、重写、隐藏的比较。
2、 简述类的成员声明中三种访问权限的区别。
权限有公有、私有、继承这三种 私有继承时,基类中的公有和保护成员成为派生类的私有成员; 保护继承时,基类中的公有和保护成员成为派生类的保护成员;基类中的私有成 员派生类中不可访问。 公有继承时,基类中的公有和保护成员成为派生类的公有成员;
相同点:无论哪种继承方式,派生类都能够访问基类的公有和保护成员,而不能访问基类 的私有成员。
5、在类作用域中能够通过直接使用该类的( D )成员名进行访问。
A、私有
B、公用
C、保护
D、任何
6、 decimal 类型和 float 都可以表示小数,正确说法:( C )
A、 两者没有任何区别
B、 decimal 类型比 float 类型取值范围大
C、 decimal 类型比 float 类型精度高 D、decimal 类型比 float 类型精度低
重载的成员用于提供属性或方法的不同版本,这些版本具有相同名称但是接受不同数量的参 数或者接受不同数据类型的参数。
重写的属性和方法用于替换在派生类中不适合的继承的属性或方法。重写的成员必须接受同 一数据类型和参数数量。派生类继承重写的成员
隐藏的成员用于局部替换具有更广范围的成员。任何类型都可隐藏任何其他类型。例如,可 声明隐藏同名继承方法的属性。无法继承隐藏的成员
五、 4、类中的静态成员可以用 this 关键字引用。( メ )
六、 5、类静态构造函数在给定的应用程序域中至多执行一次。( √ )
七、 6、字段是有自己的存储空间的。( √ ) 八、 7、类中的静态构造函数不重载实例构造函数,而且不能进行自身重载。( √ )
九、 8、类中的静态成员可以访问实例成员。( メ )
2、写出以下程序的运行结果。 using System.Windows.Forms; class Student {
private string xm, xb, zy; static private string xh; public string Xm { set { xm = value; }
get { return xm; } } public string Xb { set { xb = value; }
{ get{return myName;} set{myName=value;}
} public int Age { get{return myAge;}
set{myAge=value;} } public string PrintPerson()
{ return string.Format("{0},{1}岁",Name,Age); } public static void Main() { string output;
D、 /
10、先判断条件的当循环语句是( B )。
A、do...while
B、while
C、while...do
D、do ...loop
11、 以下正确的描述是( C
)。
A、 函数的定义可以嵌套,函数的调用不可以嵌套
B、 函数的定义和函数的调用均可以嵌套
C、 函数的定义不可以嵌套,函数的调用可以嵌套
D、 函数定义和函数的调用均不可以嵌套
12、 在 C#中定义接口时,使用的关键字是( A
A.interface
B.:
C.class
D.override
)。
13、属于 C#语言的关键字( A
)。
A. abstract
B. camel
C. Salary
D. Employ
14、析构函数的函数名第一个字符必须是( B )。
7、 在类的成员中,用于存储属性值的是( D
A.、属性
B、方法
C、 事件
)。 D、成员变量(字段)
8、 将变量从字符串类型转换为数值类型可以使用的整型转换方法是( A
A、Str()
B、Cchar
C、CStr()
D、int.Parse();
)。
9、字符串连接运算符包括&和( A
)。
A、+
B、 -
C、*
基类的成员。
A、 规律性
B、传递性
C、重复性
D、多样性
17、在 C#类中,关于属性的说法不正确的是(
D )。
A、 属性可以是只读的
B、 属性可以是可读可写的
C、 属性可以是只写的
D、 属性不能只是可写的
18、在 C#中,下列ቤተ መጻሕፍቲ ባይዱ量定义与赋值不正确的是 (
B)
A、int a=12;
B、 double a=12d;
3、 简述封装的概念。 就是将数据或函数等集合在一个个的单元类中 4、 简述构造函数。 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与 new 运算符一起使 用在创建对象的语句中 。 5、 简述接口与抽象类的比较。 接口是抽象的集合,接口主要是定义行为。抽象类中是可以存在实现,抽象类中的实现在非 抽象的子类中是可以直接调用的。
output = string.Format("学号 {4}", "\n", xh, xm, xb, zy);
MessageBox.Show(output); } } class TestStudent { static void Main() { Student s1 = new Student();
)
A、 -123
B、-124
C、-122
D、以上都有可能
三、填空题。(共 10 分,每题 1 分)
1、C#是一种面向 对象
的语言。
2、定义静态成员的关键字是 static

3、虽然抽象方法同时隐含为虚拟方法,但是它不能有 virtual
修饰符。
4、面向对象程序的语言具有:封装性、继承性和 多态性

5、类中声明的属性往往具有 set()和 get() 两个访问器。
2、关于继承的说法正确的是:( C )
A、子类将继承父类所有的成员 B、子类只继承父类中除构造函数和析构函数以外的成员 C、子类只继承父类 public 成员 D、子类只继承父类的方法,而不继承属性
3、C#源代码文件的扩展名为:( C
A、.txt
B、class C、cs
)。 D、csproj
4、 下列说法哪个正确?( B ) A、许一个子类有多个父类 B、 某个类是一个类的子类,它仍有可能成为另一个类的父 类 C、一个父类只能有一个子类 D、继承关系最多不能超过 5 层
合集下载

《面向对象程序设计》模拟试题及答案(2)

《面向对象程序设计》模拟试题及答案(2)

面向对象程序设计》模拟试题及答案( 2)一、单项选择题(每小题 2 分,共1.字符串 ”a+b=12\n ”的长度为(A. 6B. 7C. 8D. 9若使 p 指向包含 30 个整型元素的动态数组空间,则使用的定义语句为( B. int *p=new int (30); D. *p=new int[30];2. 假定一个二维数组的定义语句为 的值为( A. 0 B. 4 C. 8 D. 6 inta[3][4]={{3,4},{2,8,6}};”,则元素 a[2][1]3.A.B. C. D.)。

以下正确的描述是( )。

函数的定义可以嵌套,函数的调用不可以嵌套 函数的定义不可以嵌套,函数的调用可以嵌套 函数的定义和函数的调用均可以嵌套 函数的定义和函数的调用均不可以嵌套 设有定义“ double array[10]; 4.果为 array 数组的 ( ) 。

A. C.”,则表达式 sizeof(array)/sizeof(array[0]) 的结首地址 B. 每个元素所占的字节数元素个数 D. 总字节数20 分))。

5.A. int *p=new int[30];C. int *p=new [30]; )。

6. A.软件产品与其他软件产品组合成一个整体的难易程度叫做软件的可维护性 B. 可复用性 C. 兼容性 D.正确性)。

7. A. 在多文件结构的程序中,通常把类的声明单独存放于( 主文件 B. 实现文件 C. 库文件 D.)中。

头文件8.长度为 在一个用数组实现的队列类中,假定数组长度为length ,则队首的后一个位置为 ( )。

A. first+1B. (first+1)%MSC. (first-1)%MSD. (first+length )%MSMS 队首元素位置为 first ,队列9.语句后, A. 1 假定一个类的构造函数为 “ A(int aa=1, int bb=0) {a=aa; b=bb;} ”,则执行“ A x(4); ”x.a 和 x.b 的值分别为 ( )。

面向对象程序方案模拟历年考试二

面向对象程序方案模拟历年考试二

面向对象程序设计模拟试卷二一、单项选择题.从下列各题四个备选答案选出一个正确答案,并将其代号填在题干前地括号内.答案选错或未作选择者,该题不得分.每小题1分,共10 分.1.以下有关析构函数地叙述,选择正确地填入括号内()A. 可以进行重载可以定义为虚函数B. 不能进行重载可以定义为虚函数C. 可以进行重载不能定义为虚函数D. 不能进行重载不能定义为虚函数2.以下有关函数缺省参数地出现位置,选择正确地叙述填入括号内()A. 必须全部出现在函数参数表地左部B. 必须全部出现在函数参数表地右部C. 必须全部出现在函数参数表地中间D. 都不对3.关于两个同名函数重载地叙述,选择最为正确地填入括号内()A. 两个函数地参数个数不同B. 两个函数对应地参数类型不同C. 两个函数地参数个数不同或对应地参数类型不同D. 都不对4.关于inline 保留字地用途,选择正确地叙述填入括号内()A. 只能用于定义成员函数B. 只能用于定义非成员函数C. 可以定义成员函数及非成员函数D. 都不对5.关于类地构造函数地定义位置,将最为正确地叙述填入括号内()A. 只能在private 下定义B. 只能在protected 下定义C. 只能在public 下定义D. 定义位置没有限制6.如下修饰类体中函数地返回类型,将正确地用法填入括号内()A. 同时使用static 和friendB. 同时使用static 和virtualC. 同时使用friend 和virtualD. 不同时使用上述三个保留字中地任意两个7.在如下关于继承地叙述中,选择正确地填入括号内()A. 私有继承用于实现类之间地ISA 关系B. 保护继承用于实现类之间地ISA 关系C. 公有继承用于实现类之间地ISA 关系D. 都不对8.对于用union 定义地类A,选择正确地叙述填入括号内()A. 类A 可以作为某个类地基类B. 类A 可以作为某个类地派生类C. 类A 既不能作基类又不能作派生类D. 类A 既可以作基类又可以作派生类9.有关在类中声明友元函数地叙述,将正确地答案填入括号内()A. 只能在private 下声明B. 只能在protected 下声明C. 只能在public 下声明D. 声明位置没有限制10.在构造派生类A 地对象时,选择正确地叙述填入括号内()A. 最先构造派生类A 地基类B. 最先构造派生类A 地虚基类C. 最先构造派生类A 地数据成员对象D. 都不对二、多项选择题.从下列各题四个备选答案选出二至四个正确答案,并将其代号填在题干前地括号内.答案选错或未选全者,该题不得分.每小题2 分,共10 分.11.将符号为分隔符地编号填入括号内()A. mB. +C. {D. =12. 将用于定义类地保留字地编号填入括号内()A. classB. structC. intD. union13. 将用于释放p=new int[8]地内存地编号填入括号内()A. free (p)B. delete pC. delete []pD. sizeof p14. 将派生类成员函数可访问地基类成员编号填入括号内()A. privateB. protectedC. publicD. 所有成员15.将不能重载地运算符函数地编号填入括号内()A. ? :B. ::C. %D. <<三、填空题.阅读以下程序并填空.每题1 分,共10 分.16.对于main ,对象a 地私有成员为___________________________.17.对于main ,对象a 地保护成员为___________________________.18.对于main ,对象a 地公有成员为___________________________.19.对于main ,对象b 地私有成员为___________________________.20.对于main ,对象b 地保护成员为___________________________.21.对于main ,对象c 地保护成员为___________________________.22.对于main ,对象c 地公有成员为___________________________.23.对于main ,对象d 地保护成员为___________________________.24.对于main ,对象d 地公有成员为___________________________.25.main 应使用语句x=__________取对象d 地基类C 地成员c 地值.四、名词解释.每小题3 分,共15 分.26.标识符:27.重载:28.异常:29.类型强制:30.抽象类:class A{ int a; protected: int b; public: int c; }a; class B: protected A{ int d; protected: int e; public: A::c; int f; }b; class C: A{ int g; protected: int h; public: int c; }c; class D: B, C{ int j; protected: B::b; }d; void main( ){ int x; }五、判断改错题.阅读以下程序并判断各题是否正确,对正确地就在其题号前打√,错误地在其题号前打×,并在题干后地括号内更正.每小题3 分,共15 分.#include <iostream.h>struct A{A( ){ cout<<'A';}};struct B{B( ){ cout<<'B';}};struct C: A{C( ){ cout<<'C';}};struct D: virtual B, C{D( ){ cout<<'D';}};struct E: A {C c;E( ): c( ){ cout<<'E';}};struct F: virtual B, C, D, E{F( ){ cout<<'F';}};void main( ){ /*……*/ }( ) 31. 如main 定义A a,则输出为A()( ) 32. 如main 定义C c, 则输出为BAC()()33. 如main 定义D d, 则输出为BACD()( )34. 如main 定义E e, 则输出为AACE()( )35.如main 定义F f,则输出为BCDEF()六、计算题.阅读如下程序并计算执行结果. 共20 分.int x=2, y=x+30;struct A{static int x;int y;public:operator int( ){ return x+y; }A operator ++(int){ return A(x++, y++); }A(int x=::x+2, int y=::y+3){ A::x=x; A::y=y; }int &h(int &x);};int &A::h(int &x){for(int y=1; y!=1 || x<201; x+=11, y++)if(x>200) { x-=21; y-=2;}return x-=10;}int A::x=23;void main( ){A a(54, 3), b(65), c;int i, &z=i, A::*p=&A::y;i=b.x; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯①z=a.x; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯②i=c.*p; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯③i=a++; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯④i=::x+c.y; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⑤i=a+b; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⑥b.h(i)=7; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⑦}36.语句①执行结束后i=()2 分?37.语句②执行结束后i=()3 分?38.语句③执行结束后i=()3 分?39.语句④执行结束后i=()3 分?40.语句⑤执行结束后i=()3 分?41.语句⑥执行结束后i=()3 分?42.语句⑦执行结束后i=()3 分?七、设计题.20 分.43.如下复数类说明了五个成员函数,请详细定义这五个函数地函数体.每个定义4 分. class COMPLEX{ //real, imag 分别为复数地实部和虚部double real, imag; //若x=3+5i,则x.real=3,x.imag=5public:COMPLEX(double r=0, double i=0);COMPLEX& operator += (const COMPLEX &c);COMPLEX& operator ++ ( ); //复数地实部和虚部加1COMPLEX operator – ( ) const; //将实部和虚部地符号求反COMPLEX operator + (const COMPLEX &c) const;};版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.p1Ean。

《面向对象程序设计》模拟试题及答案

《面向对象程序设计》模拟试题及答案

《面向对象程序设计》模拟试题及答案一、单项选择题(每小题2分,共20分)1. 程序中主函数的名字为()。

A. mainB. MAINC. MainD. 任意标识符2. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。

A. 内联函数B.重载函数C.递归函数D.函数模板3. 将两个字符串连接起来组成一个字符串时,选用()函数。

A. strlen()B. strcap()C. strcat()D. strcmp()4. 用new运算符创建一维整型数组的正确语句是__________。

A. int *p=new a[10];B.int *p=new float[10];C. int *p=new int[10];D.int *p=new int[5]={1,2,3,4,5}5. 假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为()。

A. pb=b;B. pb=&b[0];C. pb=new int;D. pb=b[5];6. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为()。

A. x(a)B. x[a]C. x->aD. x.a7. 假定AB为一个类,则执行“AB x(a,5);”语句时将自动调用该类的( )。

A. 带参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数8. 对于任一个类,用户所能定义的析构函数的个数至多为( )。

A. 0B. 1C. 2D. 任意个9. 对类中引用成员的初始化是通过构造函数中给出的( )实现的。

A. 函数体B. 参数表C. 初始化表D. 初始化表或函数体10. 如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为()。

A. a.operator==(b)B. b.operator==(a)C. operator==(a,b)D. operator==(b,a)二、填空题(每小题2分,共20分)1. 常数-4.205和6.7E-9分别具有__________和__________位有效数字。

带答案的《面向对象程序设计》模拟试卷

带答案的《面向对象程序设计》模拟试卷

一、程序分析题(每小题5分,共10分,请将程序运行结果填入到对应的文本框内。

重要提示:1、务必在第Ⅰ卷时间内完成程序分析题,之后无法再修改;2、程序分析题完成后,不要急于提交试卷,否则后果自负。

)1.#include <iostream>#include <string>using namespace std;class Person{public:Person(const string& stuName):szName(stuName){perCount++;cout<< "构造:" << szName << ", " << perCount << endl;}Person(const Person& stu):szName(stu.szName){perCount++;cout<< "拷贝构造:" << szName << ", " << perCount << endl;}~Person(){cout<<"析构:" << szName << ", " << perCount <<endl;perCount--;}const string& GetName() const{return szName;}private:string szName;static unsigned int perCount;};unsigned int Person::perCount = 0;int main(int argc, char** argv){Person *p1 = new Person("Liu");Person p2("Li");Person *p3 = new Person(p2);delete p1;delete p3;}2./*STL中链表类list的部分成员函数注释如下:The sort() function is used to sort lists into ascending order. Ordering is done via the < operator, unless p is specified, in which case it is used to determine if an element is less than another.The function merge() merges the list with lst, producing a combined list that is ordered with respect to the < operator. If compfunction is specified, then it is used as the comparison function for the lists instead of <.The function unique() removes all consecutive duplicate elements from the list. Note that only consecutive duplicates are removed, which may require that you sort() the list first. Equality is tested using the == operator, unless pr is specified as a replacement. The ordering of the elements in a list should not change after a call to unique().*/#include <iostream>#include <string>#include <list>using namespace std;struct StuNode{string name;int ID;StuNode(string _name="", int _ID=0) : name(_name), ID(_ID) {}friend bool operator == (const StuNode &l, const StuNode &r){return (l.ID==r.ID);}friend bool operator <(const StuNode &l, const StuNode &r){return (l.ID < r.ID);}};void Read(StuNode stu[], int size, list <StuNode> &buff) {for(int i=0; i<size; i++)buff.push_back(stu[i]);}void Print(const list <StuNode> &buff){list <StuNode>::const_iterator it;for (it=buff.begin(); it!=buff.end(); it++)cout << it->ID <<"\t" << it->name << endl;}int main(){StuNode s1[5] = {StuNode("David",10002),StuNode("James", 10002),StuNode("John", 10003),StuNode("Smith", 10008),StuNode("Jones", 10002)};StuNode s2[3] = {StuNode("Michael",10006),StuNode("Jane", 10007),StuNode("Jane", 10007)};list <StuNode> first, second;Read(s1, 5, first);Read(s2, 3, second);first.sort();second.sort();first.merge(second);first.unique();Print(first);return 0;}二、填空题(每小题1分,共10分。

面向对象程序设计-模拟测试

面向对象程序设计-模拟测试

《面向对象程序设计》课程模拟测试一、选择题1、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()A.面向过程B.面向对象C.安全性D.复用性2、关于虚函数的描述中,正确的是()A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型3、下列关于构造函数的描述中,错误的是()A.构造函数可以设置默认参数;B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数;D.构造函数不可以重载4、在以下关于C++语言的注释的叙述中,不正确的是()A.C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会影响所生成的可执行文件的长度5、C++语言的跳转语句中,对于break和continue说法正确的是()A.break语句只应用于循环体中B.continue语句只应用于循环体中C.break是无条件跳转语句,continue不是D.break和continue的跳转范围不够明确,容易产生问题6、下列关于C++函数的说明中,正确的是()A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是return语句C.标准C++要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式7、在下面的一维数组定义中,哪一个有语法错误。

()A.int a[ ]={1,2,3} B.int a[10]={0}C.int a[ ] D.int a[5]8、面向对象系统不具有()特性A. 继承性B. 封装性C. 过程性D. 多态性9、下列静态数据成员的特性中,错误的是()A.说明静态数据成员前边加staticB.静态数据成员要在类体外初始化C.引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符D.静态数据成员不是一个类所有对象共享的10、若用数组名作为函数调用时的实参,则实际上传递给形参的是()A.数组首地址B.数组的第一个元素值C.数组中全部元素的值D.数组元素的个数二、填空题1、C++语言中的每条基本语句以作为结束符,每条复合语句以作为结束符。

面向对象程序设计期末综合练习2(填空题)

面向对象程序设计期末综合练习2(填空题)

面向对象程序设计期末综合练习二(填空题)填空题1.以面向对象方法构造的系统,其基本单位是____对象_____。

2.每个对象都是所属类的一个____实例______。

3.对象将其大部分实现细节隐藏起来,这种机制称为___封装_______。

4.基类和派生类的关系称为____继承______。

5.复杂对象可以由简单对象构成,这种现象称为_______聚合___。

6.对象是对问题域中客观事物的_抽象_,它是一组属性和在这些属性上操作的_封装体______。

7.特殊类的对象拥有其一般类的全部属性与操作,称特殊类____继承____了一般类。

8.如果一个派生类的基类不止一个,则这种继承称为_____多继承_______。

9.如果一个派生类只有一个唯一的基类,则这样的继承关系称为____单继承______。

10.C++支持两种多态性:____编译_____时的多态性和_____运行_____时的多态性。

11.在C++中,编译时的多态性是通过_____重载_____实现的,而运行时的多态性则是通过______虚函数____实现的。

12.面向对象软件开发的生命周期分为三个阶段,即分析、____设计__和___实现____。

13.面向对象的分析包括_____问题域_____分析和____应用__分析两步。

14.类定义中,既包含数据成员,也包含____函数____成员。

15.类中的数据成员的访问属性通常被指明为___private_____。

16.类中的供外部调用定义的函数成员,其访问属性通常被定义为_____public___。

17.对于类中定义的任何成员,其隐含访问权限为____ private_____。

18.对于结构中定义的任何成员,其隐含访问权限为_____ public____。

19.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为___ private______。

20.若在类的定义体中给出了一个成员函数的完整定义,则该函数属于___内联_____函数。

面向对象程序设计模拟试题(3)

面向对象程序设计模拟试题(3)一、单选题:12分,每题02分1、循环语句“for(int i=0; i<n; i++) cout<<i*i<<’’;”中循环体执行的次数为( )。

A: 1B: n-1C: nD: n+12、在下面循环语句中循环体执行的次数为()。

int i=0; do i++; while(i*i<10);A: 4B: 3C: 5D: 23、软件产品准确执行软件需求规格说明书中所规定的任务的能力叫做软件的()。

A: 可维护性B: 可复用性C: 兼容性D: 正确性4、假定AB为一个类,则执行“AB r1=r2;”语句时将自动调用该类的( )。

A: 无参构造函数B: 带参构造函数C: 赋值重载函数D: 拷贝构造函数5、当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B 的()。

A: 只能是公有成员B: 只能是保护成员C: 只能是除私有成员之外的任何成员D: 具有任何权限的成员6、一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明()。

A: 需加上类域的限定B: 不需加上类域的限定C: 类域的限定可加可不加D: 不需要任何限定二、编程综合题:32分,每题08分7、#include<iostream.h>void main(){int a=2,b=5,c=0;if(a+b>10) c=a*b; else c=3*a+b;if(c<=20) cout<<c*c; else cout<<4+c-5;cout<<endl;a=a+b; b=a+b;c+=a+b;cout<<"a,b,c="<<a<<','<<b<<','<<c<<endl;}参考答案:121 //3分a,b,c=7,12,30 //3分8、#include<iostream.h>#include<string.h>class CD {char* a;int b;public:void Init(char* aa, int bb){a=new char[strlen(aa)+1];strcpy(a,aa);b=bb;}char* Geta() {return a;}int Getb() {return b;}void Output() {cout<<a<<' '<<b<<endl;} } dx;void main(){CD dy;dx.Init("abcdef",30);dy.Init("shenyafen",3*dx.Getb()+5);dx.Output();dy.Output();}参考答案:abcdef 30 //3分shenyafen 95 //3分9、#include<iostream.h>class Franction { //定义分数类int nume; //定义分子int deno; //定义分母public://把*this化简为最简分数,具体定义在另外文件中实现void FranSimp();//返回两个分数*this和x之和,具体定义在另外文件中实现Franction FranAdd(const Franction& x);//置分数的分子和分母分别0和1void InitFranction() {nume=0; deno=1;}//置分数的分子和分母分别n和dvoid InitFranction(int n, int d) {nume=n; deno=d;}//输出一个分数void FranOutput() {cout<<nume<<'/'<<deno<<endl;}};void main(){Franction a,b,c,d;a.InitFranction(6,15);b.InitFranction(3,10);c.InitFranction();c=a.FranAdd(b);d=c.FranAdd(a);cout<<"a: "; a.FranOutput();cout<<"b: "; b.FranOutput();cout<<"c: "; c.FranOutput();cout<<"d: "; d.FranOutput();}参考答案:a: 6/15b: 3/10c: 7/10d: 11/1010、#include<iostream.h>class A {int a,b;public:A(int aa, int bb) {a=aa; b=bb;}float Multip(char op) {switch(op) {case '+': return a+b;case '-': return a-b;case '*': return a*b;case '/': if(b!=0)return float(a)/b;else {cout<<"除数为0!"<<endl; return 0;} default: cout<<'\n'<<op<<"非法运算符!"<<endl;return 0;}}};void main() {A x(10,4);char a[6]="+-*/@";int i=0;while(a[i]) {float k=x.Multip(a[i]);if(k!=0) cout<<k<<' ';i++;}cout<<endl;}参考答案:14 6 40 2.5 //5分,每个数据占1分@非法运算符! //1分三、简答题:32分,每题08分11、指出程序或函数的功能#include<iostream.h>void main(){int i,p=1,s=0;int N;cout<<"输入一个正整数:";cin>>N;for(i=1;i<=N;i++) {p*=i;s+=p;}cout<<s<<endl;}参考答案:计算并输出的值,其中N值由键盘输入。

C++面向对象程序设计模拟试题2

}
int main(void)
{
CGoods oGood1(6);
oGood1.Print();
CGoods oGood2(oGood1);
oGood2.Print();
cout << CGoods::GetTotalWeight();
cout << endl;
{
m_iWeight = iWeight;
m_iTotalWeight = m_iTotalWeight + iWeight;
}
CGoods(const CGoods &oGood)
{
m_iWeight = oGood.m_iWeight;
m_iTotalWeight = m_iTotalWeight + m_iWeight;
return 0;
}
上面程序的输出结果为:
2.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
template <class Type>
class CTest
{
public:
CTest(Type m_tArray[], int iSize):m_pArray(m_tArray)
{
public:
CPosition(int iPositionX = 0, int iPositionY = 0):m_iPositionX(iPositionX)
{
m_iPositionY = iPositionY;
}
int GetPositionX() const

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)一、单选题(共50题,每题1分,共50分)1、下列关于JDK和JRE的说法中,错误的是()A、JDK是java开发核心组件,是用来编译解释java程序的核心组件B、JDK包括Java编译器、Java文档生成工具、Java打包工具等C、JRE是个单独的软件,所以安装JDK后,还需要单独安装JRED、JRE是java运行环境,用来支持java程序的运行正确答案:C2、下列File类的构造方法格式,错误的是()A、File(File parent)B、File(String pathname)C、File(String parent,String child)D、File(URI url)正确答案:A答案解析:A选项,正确的应该是File(File parent, String child)3、下列关于静态变量的描述中,错误的是()A、静态变量指的是被static修饰的变量B、静态变量是随着类的加载而加载C、静态变量可以被所有的实例对象共享D、静态变量同成员变量一样,都需要通过实例对象来调用正确答案:D答案解析:静态变量是通过“类名.变量名”“方式调用的。

4、下列对于Runtime的描述中,正确的是()A、每一个Java应用程序运行时都产生一个Runtime类实例B、Runtime实例可以将应用程序和运行环境相结合C、Runtime类有构造函数D、Runtime实例需要被创建后才可以通过getRuntime()方法获取正确答案:A答案解析:Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。

每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,可以通过getRuntime()方法获得一个Runtime实例。

5、下列关于LinkedList类的方法,不是从List接口中继承而来的是()A、toArray()B、pop()C、remove()D、isEmpty()正确答案:B答案解析:pop()方法表示移除并返回此列表的第一个元素,是LinkedList特有的方法。

面向对象程序设计与开发模拟试卷2

面向对象程序设计与开发模拟试卷2一、选择题(每空1分,共20分)1.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()。

A. 类B. 对象C. 函数体D. 数据块2.一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()。

A.递归函数B.重载函数C.内联函数D.嵌套函数3.在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的()。

A.公有成员B. 私有成员C.保护成员D.保护成员或私有成员4.假设ClassY:publicX,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为()。

A. X,Y;Y,XB. X,Y;X,YC. Y,X;X,YD. Y,X;Y,X 5.假定AA为一个类,a()为该类公有的函数成员,x 为该类的一个对象,则访问x对象中函数成员a()的格式为()。

A. x.aB. x.a()C. x->aD. (*x).a()6.静态成员函数没有()。

A. 返回值B. this指针C. 指针参数D. 返回类型7.有关多态性说法不正确的是()。

A. C++语言的多态性分为编译时的多态性和运行时的多态性B. 编译时的多态性可通过函数重载实现C. 运行时的多态性可通过模板和虚函数实现D. 实现运行时多态性的机制称为动态多态性8.假定一个类的构造函数为“A(int i=4, int j=0) {a=i;b=j;}”, 则执行“A x (1);”语句后,x.a和x.b的值分别为()。

A. 4和1B. 1和4C. 4和0D. 1和09.类MyA的拷贝初始化构造函数是()。

A. MyA()B. MyA(MyA*)C. MyA(MyA&)D. MyA(MyA)10.友元关系不能()。

A. 提高程序的运行效率B. 是类与类的关系C. 是一个类的成员函数与另一个类的关系D. 继承11.下列不是描述类的成员函数的是()。

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