当前位置:文档之家› c++第2章 类和对象习题

c++第2章 类和对象习题

c++第2章 类和对象习题
c++第2章 类和对象习题

《面向对象程序设计》习题班级:学号:姓名:名单序号:成绩:

第2章类与对象

一、选择题(共26分,每题1分)

1.下列有关类的说法不正确的是()。

A.对象是类的一个实例

B.任何一个对象只能属于一个具体的类

C.一个类只能有一个对象

D.类与对象的关系和数据类型与变量的关系相似

2.下面()项是对构造函数和析构函数的正确定义。

A.void X::X(), void X::~X()

B.X::X(参数), X::~X()

C.X::X(参数), X::~X(参数)

D.void X::X(参数), void X::~X(参数)

3.()的功能是对象进行初始化。

A.析构函数 B.数据成员 C.构造函数 D.静态成员函数

4.下列表达方式正确的是()。

A.class P{ B. class P{

public:public:

intx=15;int x;

void show(){cout<

};}

C. class P{ D. class P{

int f; public:

};int a;

f=25; void Seta (int x) {a=x;}

};

5.拷贝构造函数具有的下列特点中,()是错误的。

A.如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的B.拷贝构造函数只有一个参数,并且是该类对象的引用

C.拷贝构造函数是一种成员函数

D.拷贝构造函数的名字不能用类名

6.关于静态成员的描述中,()是错误的。

A.静态成员可分为静态数据成员和静态成员函数

B.静态数据成员定义后必须在类体内进行初始化

C.静态数据成员初始化不使用其构造函数

D.静态数据成员函数中不能直接引用非静态成员

7.关于友元的描述中,()是错误的。

A.友元函数是成员函数,它被说明在类体内

B.友元函数可直接访问类中的私有成员

C.友元函数破坏封装性,使用时尽量少用

D.友元类中的所有成员函数都是友元函数

8.对类的构造函数和析构函数描述正确的是()。

A.构造函数可以重载,析构函数不能重载

B.构造函数不能重载,析构函数可以重载

C.构造函数可以重载,析构函数也可以重载

D.构造函数不能重载,析构函数也不能重载

9.类的析构函数的作用是(D)。

A.一般成员函数

B.类的初始化

C.对象初始化

D.删除对象

10.假设OneClass为一个类,则该类的拷贝初始化构造函数的声明语句为()。

A.OneClass(OneClass p);

B.OneClass& (OneClass p);

C.OneClass(OneClass& p);

D.OneClass (OneClass *p);

11.下面对于友元函数描述正确的是()。

A.友元函数的实现必须在类的内部定义

B.友元函数是类的成员

C.友元函数破坏了类的封装性和隐藏性

D.友元函数不能访问类的私有成员

12.对于结构中定义的成员,其默认的访问权限为()。

A.public

B. protected

C.private

D. static

13.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为()。

A.public

B. protected

C.private

D. static

14.下面对静态数据成员的描述中,不正确的是()。

A.静态数据成员可以在类体内进行初始化

B.静态数据成员不可以在类体内进行初始化

C.静态数据成员不能受private控制符的作用

D.静态数据成员调用前必须初始

15.下面对静态数据成员的描述中,正确的是()。

A.静态数据成员是类的所有对象共享的数据

B.类的每一个对象都有自己的静态数据成员

C.类的不同对象有不同的静态数据成员值

D.静态数据成员不能通过类的对象调用

16.下列有关类的说法不正确的是。

A.类是一种用户自定义的数据类型

B.只有类中的成员函数或类的友元函数才能存取类中的私有数据

C.在类中(用class定义),如果不作特别说明,所有的数据均为私有数据

D.在类中(用class定义),如果不作特别说明,所有的成员函数均为公有数据17.以下有关析构函数的叙述不正确的是( )

A. 在一个类只能定义一个析构函数

B. 析构函数和构造函数一样可以有形参

C. 析构函数不允许用返回值

D. 析构函数名前必须冠有符号“~”

18.以下有关类与结构体的叙述不正确的是( )

A. 结构体中只包含数据;类中封装了数据和操作

B. 结构体的成员对外界通常是开放的;类的成员可以被隐藏

C. 用struct不能声明一个类型名;而class可以声明一个类名

D. 结构体成员默认为public;类成员默认为private

19.以下叙述中不正确的是( )

A. 一个类的所有对象都有各自的数据成员,可以共享函数成员

B. 一个类中可以有多个同名的成员函数

C. 一个类中可以有多个构造函数、多个析构函数

D. 在一个类中可以声明另一个类的对象作为它的数据成员20.以下不属于构造函数特征的是( )

A. 构造函数名与类名相同

B. 构造函数可以重载

C. 构造函数可以设置默认参数

D. 构造函数必须指定函数类型21.以下有关类和对象的叙述不正确的是( )

A. 任何一个对象都归属于一个具体的类

B. 类与对象的关系和数据类型与变量的关系相似

C. 类的数据成员不允许是另一个类的对象

D. 一个类可以被实例化成多个对象

22.设有定义:

class person

{ intnum;

char name[10];

public:

void init(int n, char *m);

...

};

person std[30];

则以下叙述不正确的是( )

A. std是一个含有30个元素的对象数组

B. std数组中的每一个元素都是person类的对象

C. std数组中的每一个元素都有自己的私有变量num和name

D. std数组中的每一个元素都有各自的成员函数init

23.设有以下类的定义:

class Ex

{ int x;

public:

void setx(int t=0);

};

若在类外定义成员函数setx(),以下定义形式中正确的是( )

A. void setx(int t) { ... }

B. void Ex::setx(int t) { ... }

C. Ex::void setx(int t) { ... }

D. void Ex::setx(){ ... }

24.以下关于静态成员变量的叙述不正确的是()

A.静态成员变量为类的所有对象所公有

B.静态成员变量可以在类内任何位置上声明

C.静态成员变量的赋初值必须放在类外

D.定义静态成员变量时必须赋初值

25.定义静态成员函数的主要目的是()

A.方便调用B.有利于数据隐藏

C.处理类的静态成员变量D.便于继承

26.以下叙述不正确的是(),使用静态数据成员:

A.可以节省内存空间B.是为了解决数据共享问题

C.可以直接用类名来引用 D.可以提高序运算速度

二、填空题(共18分,每题1分)

1.设有如下程序结构:

class Box

{ … };

void main()

{Box A,B,C; }

该程序运行时调用次构造函数;调用次析构函数。

2.设A为test类的对象且赋有初值,则语句test B(A); 表示。

3.利用“对象名.成员变量”形式访问的对象成员仅限于被声明为的成员;若要访问其他成员变量,需要通过函数或函数。

4.OOP技术由、、方法、消息和继承五个基本的概念所组成。

5.类的成员函数可以在定义,也可以在定义。

6.类test的构造函数是和__________同名的函数,析构函数名是。

7.类是用户定义的类型,具有类类型的变量称作______。

8.一个类的析构函数不允许有。

9.建立对象时,为节省内存,系统只给________分配内存。

10.类中的数据和成员函数默认访问类型为。

11.当建立一个新对象时,程序自动调用________。

12.成员函数在类体外定义格式是:______________________________________。

三、改错题(共10分,每题2分)

1.下面的程序定义了一个Point类,找出程序中的错误语句并改正。

#include

class Point{

int x;

public:

void Point(int a)

{x=a;}

intGetx(){return x;}

void Show()

{cout<

} ;

void main()

{Point A(76);

cout<

}

2.根据静态成员的特点,指出下列程序的错误。

#include

#include

class Part

{ public:

Part(char *pname=”no name”)

{ strncpy(name,pname);

noofpart++;

no=noofpart;

cout<<”create the no: ”<

}

~Part()

{ noofpart--;

cout<<”destroy the no: ”<

}

static int number() { return no; }

protected:

static intnoofpart=0;

int no;

char name[40];

};

void main()

{ Part p1;

Part p2;

}

3.以下程序的功能是:利用友员函数为类的成员变量进行初始化,然后利用成员函数输出。请改正程序中的错误,使之能正确运行。

#include

class A

{ inta,b;

public:

friend void setval(inti,int j);

void showA()

{cout<

};

void setval(inti,int j)

{a=i; b=j;}

void main()

{A obj1;

setval(2,3);

obj1.showA();

}

4.分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。

#include

class one

{ int a1,a2;

public:

one(int x1=0, x2=0);

};

void main()

{one data(2,3);

cout<

cout<

}

5.分析以下程序的错误原因,给出修改方案使之能正确运行。

#include

class Amplifier{

float invol,outvol;

public:

Amplifier(float vin,floatvout)

{invol=vin;outvol=vout;}

float gain();

};

Amplifier::float gain(){ return outvol/invol;}

void main()

{ Amplifier amp(5.0,10.0);

cout<<"\n\nThe gain is =>"<

}

四、看程序写结果(共16分,每题4分)

1.#include

class test

{ public:

test();

test(int);

~test();

void display();

protected:

int n;

};

test::test() {cout<<”Constructing normally\n”;}

test::test(intnum)

{n=num;

cout<<”Constructing with a number: ”<

}

void test::display() {cout<<”Display a number: ”<

test::~test(){cout<<”Destructing”<

void main()

{ test obj1;

test obj2(59);

obj1.display();

obj2.display();

}

2.#include

class Count

{ public:

Count() { count++;}

static intgetn() {return count;}

~Count() { count--; }

private:

static int count;

};

int Count::count=100;

void main()

{ Count c1,c2,c3,c4;

cout<

}

3.#include

class myclass

{ inta,b;

public:

void init(int i, int j)

{a=i; b=j;}

friend int sum(myclass x);

};

int sum( myclass x)

{return x.a+x.b; }

void main()

{myclass y;

y.init(15,20);

cout<

}

4.#include

class point

{intx,y;

public:

point(inta,int b)

{x=a;y=b;

cout<<"calling the constructor function."<

}

point(point &p);

friend point move(point q);

~point(){cout<<"calling the destructor function.\n";}

intgetx() {return x;}

intgety() {return y;}

};

point::point(point &p)

{x=p.x; y=p.y;

cout<<"calling the copy_initialization constructor function.\n";

}

point move(point q)

{cout<<"OK!\n";

inti,j;

i=q.x+10;

j=q.y+20;

point r(i,j);

return r;

}

void main()

{ point m(15,40),p(0,0);

point n(m);

p=move(n);

cout<<"p="<

}

五、编程题(共30分,每题10分)

1.某商店经销一种货物,货物成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不一样,因此,商店需要记下目前库存货物的总量,要求把商店货物购进和卖出的情况模拟出来。

2.定义一个Car类和Truck类,用友元实现两类对象行使速度的快慢比较。

3.定义一个学生类,其中有3个数据成员:学号、姓名、年龄,以及若干成员函数。同时编写main函数使用这个类,实现对学生数据的赋值和输出。

数学必修二第二章经典测试题(含答案)

必修二第二章综合检测题 一、选择题 1.若直线a和b没有公共点,则a与b的位置关系是() A.相交B.平行C.异面D.平行或异面 2.平行六面体ABCD-A1B1C1D1中,既与AB共面也与CC1共面的棱的条数为() A.3B.4C.5D.6 3.已知平面α和直线l,则α内至少有一条直线与l() A.平行B.相交C.垂直D.异面 4.长方体ABCD-A1B1C1D1中,异面直线AB,A1D1所成的角等于() A.30°B.45°C.60°D.90° 5.对两条不相交的空间直线a与b,必存在平面α,使得() A.a?α,b?αB.a?α,b∥α C.a⊥α,b⊥αD.a?α,b⊥α 6.下面四个命题:其中真命题的个数为() ①若直线a,b异面,b,c异面,则a,c异面; ②若直线a,b相交,b,c相交,则a,c相交; ③若a∥b,则a,b与c所成的角相等; ④若a⊥b,b⊥c,则a∥c. A.4B.3C.2D.1 7.在正方体ABCD-A1B1C1D1中,E,F分别是线段A1B1,B1C1上的不与端点重合的动点,如果A1E=B1F,有下面四个结论: ①EF⊥AA1;②EF∥AC;③EF与AC异面;④EF∥平面ABCD. 其中一定正确的有() A.①②B.②③C.②④D.①④ 8.设a,b为两条不重合的直线,α,β为两个不重合的平面,下列命题中为真命题的是() A.若a,b与α所成的角相等,则a∥b B.若a∥α,b∥β,α∥β,则a∥b C.若a?α,b?β,a∥b,则α∥β D.若a⊥α,b⊥β,α⊥β,则a⊥b 9.已知平面α⊥平面β,α∩β=l,点A∈α,A?l,直线AB∥l,直线AC⊥l,直线m∥α,n∥β,则下列四种位置关系中,不一定成

C语言的类和对象

C语言的类和对象 【类实现了C++面向对象程序设计的基础,我们使用类来定义对象的属性,类是 C++封装的基本单元。】 一、----- 类 使用关键字class创建类,一个类声明定义了一个连接代码和一个数据的新类型,这个新的类型又可以用来声明该类的对象。因此,类又是逻辑逻辑抽象概念,儿对象是物理存在的,也就是说对象是类的实例。 类的声明语法上和结构相似。 [一下是完整的类的形式] class class_name { private data and functions access_specifier: data and functions access_specifiter: data and functions //…….. access_specifier:是 data and functions }object_list; 其中,object_list是任选项,如过存在,他声明类的对象。access_specifier为下面的三个关键字之一: Public private protected 默认时,在类声明的函数和数据属于该类私有,只能被该类的成员访问。如果使用,pubilc访问限定符号,函数和程序就可以被其他部分访问。Protected访问限定符,仅在涉及继承的时候才需要(十五章了解)。访问限定符已经使用,其作用就保持到遇到别的访问限定符或者达到类声明的结束处。 在类声明内可以任意改变访问说明符号,对于某些声明,可以转换位public,然后再转换成private。 [如下所述] /******************************* ··构造函数和析构函数学习··· *******************************/ //Using a constructor and destructor. /******************************* 声明C++ 程序头文件 *******************************/ #include #include #include #include /******************************* ·名字空间:组织大型的程序结构·

C++实验报告 第四章 类与对象

C++实验报告 实验4 类与对象 一、实验目的 1、掌握类的声明和使用 2、掌握类的声明和对象的声明 3、复习具有不同访问属性的成员的访问方式 4、观察构造函数和析构函数的执行过程 5、学习类的组合使用方法 6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序 二、实验任务 1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。观察构造函数好析构函数的调用顺序。 2、声明一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom 等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 3、设计一个用于人事管理的People类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号等。其中出生日期声明为一个日期类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、组合。 三、实验内容 任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。在用debug单步调试后,明白其中道理。 源程序: //Lab4_1.cpp #include using namespace std; enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7}; class CPU { //CPU类的定义 private: //私有数据成员 CPU_Rank rank; int frequency;

财务管理第二章课后补充习题及课堂例题(学生版)

财务管理第二章课后补充习题及课堂例题(学生版) 第二章财务管理的价值观念 课后补充计算题: 1、某人希望以8%的年利率,按每半年付款一次的方式,在3年内等额偿还现 有的6 000元债务,问每次应偿还多少? PV A6=6000 P/A4%,6 A=PV A6/(P/A4%,6) 一农户购置了一台新收割机,他估 2、计新机器头两年不需要维修,从第3年末开始的10年中,每年需支付200 元维修费,若折现率为3%,问10年维修费的现值为多少? A=200 P=A*(P/A3%,12-P/A3%,2) 3、某人在2000年1月1日存入银行1000元,年利率为10%。要求计算: (1)每年复利一次,2003年1月1日存款账户余额是多少? FV3=1000*(1+10%)^3=1000*F/P10%,3 (2)每季度复利一次,2003年1月1日存款账户余额是多少? 1000*(1+2.5%)^12=1000*F/P2.5%,12 (3)若1000元,分别在2000年、2001年、2002年和2003年1月1日存入250元,仍按10%利率,每年复利一次,求2003年1月1日余额?FV A4=250*F/A10%,4 (4)假定分4年存入相等金额,为了达到第一问所得到的账户余额,每期应存入多少金额?FV3/(F/A10%,4) (5)假定第三问为每季度复利一次,2003年1月1日余额是多少?250*(F/P2.5%,12+F/P2.5%,8+F/P2.5%,4+1) (6)假定第四问改为每季度复利一次,每年应存入多少金额? FV3/(F/P2.5%,12+F/P2.5%,8+F/P2.5%,4+1) 4、某人拟明年年初借款42000元,从明年年末开始,每年年末还本付息6000元, 连续10年还清,设预定最低借款利率为8%,问此人是否能按计划借到款项? A=6000 P/A8%,10 最多能借:PV A10=A*(P/A8%,10) 42000 5、有人在今后五年中每年末借给你2 500元,要求你在随后的10年中,每年末归 还2 500元于他,若年利率为5%,问你是否接受这笔借款? 2500*(P/A5%,5) 2500*(P/A5%,15-P/A5%,5) 6、某工商管理研究生计划从银行借款10 000元,利率12%,半年计息一次。这笔 借款在四年内分期等额摊还,每半年还款一次。第一次还款是从今天起的6个月后,问: (1)贷款的实际年利率是多少? (1+6%)^2-1=F/P6%,2 -1 (2)计算每半年应付的偿还额。10000/(P/A6%,8) (3)计算第二个半年所付的本金和利息。 7、某公司准备投资开发新产品,现有三个方案可供选择。根据市场预测,三种不

高中数学必修二第二章经典练习题

高一数学必修二第二章经典练习题 第I卷(选择题) 请修改第I卷的文字说明 一、单项选择 ). ①平行于同一条直线的两条直线互相平行 ②垂直于同一条直线的两条直线互相平行 ③平行于同一个平面的两条直线互相平行 ④垂直于不一个平面的两条直线互相平行 A.仅②不正确B.仅①、④正确 C.仅①正确D.四个命题都正确 2. 如果直线 a是平面α的斜线,那么在平面α内() A 不存在与a平行的直线 B 不存在与a垂直的直线 C 与a垂直的直线只有一条 D 与a平行的直线有无数条 3. 平面α内有一四边形ABCD,P为α外一点,P点到四边形ABCD各边的距离相等,则这个四边形() A 必有外接圆 B 必有内切圆 C 既有内切圆又有外接圆 D 必是正方形 4. 已知六棱锥P-ABCDEF的底面是正六边形,PA⊥平面ABC,PA=2AB,则下列结论正确的是( ) A.PB⊥AD B.平面PAB⊥平面PBC C.直线BC∥平面PAE D.直线PD与平面ABC所成的角为45° 5. 若a,b是异面直线,直线c∥a,则c与b的位置关系是()A.相交 B.异面 C.平行 D.异面或相交 6. 设四棱锥P-ABCD的底面不是平行四边形,用平面α去截此四棱锥(如图),使得截面四边形是平行四边形,则这样的平面α( )A.不存在B.只有1个 C.恰有4个D.有无数多个 7. 设P是△ABC所在平面外一点,P到△ABC各顶点的距离相等,而且P 到△ABC各边的距离也相等,那么△ABC() A 是非等腰的直角三角形 B 是等腰直角三角形 C 是等边三角形 D 不是A、B、C所述的三角形 8. 已知正四棱锥S ABCD -的侧棱长与底面边长都相等,E是SB 的中点,则AE SD ,所成的角的余弦值为( ) A. 1 3 D. 2 3 9. 正方体ABCD—A1B1C1D1中,E、F分别是AA1与CC1的中点,则直线ED 与D1F所成角的大小是 () A. 1 5 B。 1 3 C。 1 2 D 10. 已知空间两条不同的直线m,n和两个不同的平面,αβ,则下列命题中正确的是( ) A.若//,,// m n m n αα ?则 B.若,, m m n n αβα ?=⊥⊥ 则 C.若//,//,// m n m n αα则 D.若//,,,// m m n m n αβαβ ?= I则 11. 在三棱柱 111 ABC A B C -中,各棱长相等,侧掕垂直于底面,点D是 侧面 11 BB C C的中心,则AD与平面 11 BB C C所成角的大小是 ( ) A.30o B.45o C.60o D.90o 12. 已知直线l、m,平面α、β,且lα ⊥,mβ ?,则// αβ是l m ⊥ 的 A.充要条件 B.充分不必要条件

类和对象练习题

类和对象 一、选择题 1、下面对方法的作用描述不正确的是:( d ) A、使程序结构清晰 B、功能复用 C、代码简洁 D、重复代码 2、方法定义的变量:( b ) A 、一定在方法所有位置可见B、可能在方法的局部位置可见 C、在方法外可以使用 D、在方法外可见 3、方法的形参:(a) A、可以没有 B、至少有一个 C、必须定义多个形参 D、只能是简单变量 4、方法的调用:(c) A、必须是一条完整的语句 B、只能是一个表达式 C、可能是语句,也可能是表达式 D、必须提供实际参数 5、return 语句:( d) A、不能用来返回对象 B、只可以返回数值 C、方法都必须含有 D、一个方法中可以有多个return 语句 6、void 的含义:(d) A、方法体为空 B、方法体没有意义 C、定义方法时必须使用 D、方法没有返回值 7、main()方法的返回类型是:( c ) A 、boolean B、int C、void D、static 8、方法重载所涉及的方法:( a ) A、有相同的名字 B、参数个数必须不同 C、参数类型必须不同 D、返回类型必须不同 9、下面关于类和对象之间关系的描述,正确的是( c ) A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化 10、下面关于java中类的说法哪个是不正确的( c ) A、类体中只能有变量定义和成员方法的定义,不能有其他语句。 B、构造方法是类中的特殊方法。 C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义。 11、下列哪个类声明是正确的( d) A、public void H1{…} B 、public class Move(){…} C、public class void number{} D、public class Car{…} 12、下面的方法声明中,哪个是正确的(c) A、public class methodName(){} B、public void int methodName(){} C、public void methodName(){} D、public void methodName{} 13、下述哪些说法是不正确的?( b ) A、实例变量是类的成员变量 B、实例变量是用static关键字声明的 C、方法变量在方法执行时创建 D、方法变量在使用之前必须初始化 14、下面对构造方法的描述不正确是( b)。 A、系统提供默认的构造方法 B、构造方法可以有参数,所以也可以有返回值 C、构造方法可以重载 D、构造方法可以设置参数 15、定义类头时,不可能用到的关键字是( b)。 A、class B、private C、extends D、public 16、下列类头定义中,错误的是( )。 A、public x extends y {...} B、public class x extends y {...} C、class x extends y implements y1 {...} D、class x {...} 17、设A为已定义的类名,下列声明A类的对象a的语句中正确的是( ) 。 A、float A a; B、public A a=A( ); C、A a=new int( ); D、static A a=new A( ); 18、设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( a )。 A、void X(int k ){ i=k; } B、X(int k ){ i=k; } C、X(int m, int n ){ i=m; j=n; } D、X( ){i=0;j=0; } 19、有一个类A,以下为其构造方法的声明,其中正确的是

C++实验九类和对象的使用实验报告

实验九类和对象的使用实验报告 一实验目的 1、学会用构造函数对类对象进行初始化 2、掌握析构函数,并了解构造函数和析构函数的调用顺序 3、了解对象数组和对象指针的用法 4、学会共用数据的保护,了解常对象、常成员函数等的使用限制 二实验内容和要求 1.回顾课本知识,掌握重点和难点,认真分析例题熟悉本章内容。 2.完成本章课后习题2、6、7题,认真分析每一题的代码。 三实验环境 Visual C++6.0开发环境 四源程序 2、 #include using namespace std; class Date { public: Date(int,int,int); Date(int,int); Date(int); Date(); void display(); private: int month; int day; int year; }; Date::Date(intm,intd,int y):month(m),day(d),year(y) {} Date::Date(intm,int d):month(m),day(d) {year=2005;} Date::Date(int m):month(m) { day=1; year=2005; }

Date::Date() { month=1; day=1; year=2005; } void Date::display() { cout< using namespace std; class Student { public: Student(intn,float s):num(n),score(s) {}; void change(intn,float s) { num=n; score=s; } void display() { cout<

第二章补充习题

1、桌上有一只盘子,最多可容纳两个水果,每次只能放入或取出一个水果。爸爸专向盘中放苹果,妈妈放专向盘中放桔子;两个儿子专等吃盘子中的桔子,两个女儿专等吃盘子中的苹果。请用P、V操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。 答:本题中需设置4个信号量,其中empty表示还可以向盘中放几个水果,其初值为2;apple对应已放入盘中的苹果,orange对应已放入盘中的桔子,它们的初值均为0;mutex 用来实现对盘子的互斥访问(包括放和取),其初值为1。相应的进程可描述为: father(){ while(1){ P(empty); P(mutex); 向盘中放苹果; V(mutex); V(apple); } { } mother(){ while(1){ P(empty); P(mutex); 向盘中放桔子; V(mutex); V(orange); } } < son (){ /* 两个儿子对应同一段代码*/ while(1){ P(orange); P(mutex); 从盘中取桔子; V(mutex); V(empty); 吃桔子; } } ^ daughter(){ /* 两个女儿对应同一段代码*/ while(1){ P(apple); P(mutex); 从盘中取苹果; V(mutex); V(empty);

吃苹果; } } ] 2、某招待所有100个床位,住宿者住入要先登记(在登记表上填写姓名及床位号),离去时要撤消登记(在登记表上删去姓名和床位号)。请给出住宿登记及撤消登记过程的算法描述。 答:本题中,被住宿者竞争的资源主要有床位和住宿登记表两种,可分别为它们设置初值为100的信号量bed及初值为1的信号量mutex。住宿登记过程的算法描述如下:P(bed); P(mutex); 在登记表上填写姓名及床位号; v(mutex); 撤消登记过程的算法描述如下: P(mutex); 在登记表上删去姓名和床位号; V(mutex); | V(bed); 3、一阅览室,读者进入阅览室必须先在一张登记表(TB)上登记,该表为每一座位设一个表目,读者离开时要消掉其登记信息,阅览室共有100个座位。为了描述读者的动作,请用Pascal语言和P、V操作写出进程间的同步算法。 约定: (1)flag的值:0座位空闲,1座位被占用。 (2)用语句i=getflag(0)可搜索到一个空座位i,用语句=0或1可给标志位赋值。 (3)用i=getname(readername)可搜索到某读者所登记的座位号i;用=0或=readername 可给姓名字段赋值,0表示消除读者姓名。 (4)计数信号量用count,互斥信号量用mutex。 答:本题中,读者要竞争座位、登记表两种资源,故可分别为它们设置初值为100的信号量count,以及初值为1的信号量mutex。读者的动作可描述为: reader(){ while(1){ ¥ P(count); /* 申请一个座位*/ P(mutex); /* 申请登记表*/ i=getflag(0); /* 在登记表上搜索一个空座位*/ =1; /* 登记该座位已被占用*/ =readername; /* 登记读者姓名*/ V(mutex);/* 释放登记表*/ 进入阅览室,坐下并开始阅览; P(mutex); /* 申请登记表*/ i=getname(readername); /* 在登记表上搜索读者登记的座位号*/ =0; /* 撤消登记信息*/ 》 =0;

第2章 典型例题与综合练习

经济数学基础第2章导数与微分第一章典型例题与综合练习 第一节典型例题 一、极限计算 例1求极限lim n n n n n →∞ ++ -+ 2 2 1 254 解:原式= ++ -+ →∞ lim n n n n n 2 2 1 254 = ++ -+ →∞ lim n n n n n 1 11 2 54 2 2 = 1 2 例2求极限lim x x x x → - -+ 1 2 2 1 32 解:lim x→1 x x x x x x x x x x x 2 2 11 1 32 11 12 1 2 11 12 2 - -+ = -+ -- = + - = + - =- →→ lim ()() ()() lim 例3求极限lim sin x x x → -+ 11 2 解:lim x→0 11 2 -+ x x sin=)1 1( 2 sin )1 1 )( 1 1( lim 0+ + + + + - →x x x x x =lim x→0 x x sin2× lim x→0 - ++ 1 11 x= ) 2 1 ( 2 1 - ? =4 1 - 例4求极限lim() x x x →∞ + - 1 1 2 1 解:lim() x x x →∞ + -= 1 1 2 1lim() x x x →∞ - 1 1 2 lim() x x →∞ - 1 1 2 =+ - →∞ -? - lim()() x x x 1 1 2 2 1 2lim() x x →∞ - 1 1 2

经济数学基础 第2章 导数与微分 =+-? ???? ?→∞--lim()x x x 11221 2 lim() x x →∞-1121 e 21?=-e 1= 二、函数的连续性 例1讨论函数?? ???>+=<=0 2100e )(x x x a x x f x 在x =0处的连续性,并求函数的连续区间. 解:因为 a f x x x x ==+=+-→→)0(,1)21(lim ,1e lim 0 ,所以1 )(lim 0 =→x f x 当1≠a 时, ) (lim )0(0 x f f x →≠,即极限值不等于函数值,所以x =0是函数的一个 间断点,且当1≠a 时,函数的连续区间是),0()0,(+∞?-∞. 当1=a 时, ) (lim )0(0 x f f x →=,即极限值等于函数值,所以x =0是函数的一个连 续点,且当1=a 时,函数的连续区间是),(+∞-∞. 三、函数的可导性 例1设函数 f x ax b x x x ()=+>≤???002 若函数f x ()在点x =0处连续且可导,应如何选取系数a b ,? 解:因为0 )0(,)(lim ,0lim 0 20 ==+=+-→→f b b ax x x x 所以当b =0时函数f x ()在点x =0处连续. 又因为0 )(lim )0()0(lim lim )0(2 000=??=?-?+=??='---→?→?→?-x x x f x f x y f x x x '===+→→+ +f y x a x x a x x ()lim lim 000?????? 所以当a =0,b =0时函数f x ()在点x =0处可导.

C++类和对象实验报告

计算机科学与技术实验报告 实验二类和对象(1) 姓名:易XX 班级:计科二班学号:2015110121 实验目的:深入理解类和对象,学会定义类,申明私有、公有变量,学会定义对象,并调用成员函数,解决实际问题。 实验内容: (一)、题目要求: 定义一个描述角度的类CAngle,包含的内容如下: (1)私有成员变量value,表示角度,类型为double; (2)公有成员变量SetValue,实现功能是使用形参为value赋值。 声明为:viod SetValue(double); (3)公有成员函数GetCos,实现功能计算余弦值,并作为返回值返回。 声明为 double GetCos(); 编程实现如下功能:定义一个Cangle类的对象deg,调用成员函数设置deg的角度为30度,调用成员函数计算并输出deg的余弦值。 代码: #include #include using namespace std; #define PI 3.1415 //定义宏常量PI class CAngle{ double value; //定义角度 public: void Setvalue(double x){ value =x/180*PI; //把角度转化为弧度 } double Getcos(){ return ( cos(value) ); //计算cos值 } }; int main(){ CAngle deg; //定义一个Cangle类的对象deg deg.Setvalue(30); cout<

C上机实验报告实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,在成员函数中,构造函数用来初始化所有数据成员;display()中使用cout显示

实验一.类与对象实验报告

浙江理工大学信息学院 面向对象程序设计实验报告 实验名称:类的定义与使用学时安排:3 实验类别:设计性实验实验要求:1人1组姓名:邵旸珂学号:2016329621068  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的 1)掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性; 2)掌握类对象的定义; 3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数; 二、实验原理介绍 通过建立类及对象,用类的成员函数和对象访问类的成员; 利用建立类的构造函数,完成类的成员的初始化工作; 三、实验设备介绍 软件需求: windows或linux下的c++编译器 硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU

处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。 四、实验内容 编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。 要求: 1.由用户选择按上行按钮还是下行按钮,选择操作后再由用户输入要进入的楼层,进而电梯开始运行,显示所到的每一楼层层数。 2.如果是上行,则选择输入的楼层号不能比当前楼层号小,否则应给出不合法提示。 3. 如果是下行,则选择输入的楼层号不能比当前楼层号大,否则应给出不合法提示。 4.电梯一旦开始运作就会始终运行,直到窗口关闭。 5.电梯在经过不同楼层时,最好每个楼层的显示之间能有延迟,最终停靠的楼层的输出形式能更加醒目。如果可以,在电梯最初开始运行时,能在电梯由内部显示当前日期(提示:实现这些功能时,需要调用系统api,实现时间显示功能可以使用CDate类)。 五程序清单 #include #include #include using namespace std;

第二章补充习题及答案 普通化学演示教学

第二章补充习题及答案普通化学

收集于网络,如有侵权请联系管理员删除 化学反应基本原理——判断题 1、指定单质的?f G m θ 、?f H m θ 、S m θ 皆为零。 (错 :指定单质S m θ不为零,) 2、Δr S m >0的反应都能自发进行。 (错 :该条件只能判断对应温度孤立系统、标准状态下自发) 3、θ m r G ?<0的反应必能自发进行。 (错 :该条件只能判断对应温度标准状态 4、若生成物的分子数比反应物的分子数多,则该反应的Δr S m >0 (错 :主要看气体分子数) 5、CaCO 3在高温下可以发生分解反应,故该反应为吸热熵增。 (对 :) 6、根据能量最低原理,放热反应是自发进行的。 (错 :影响自发性因素还有混乱度) 7、冰在室温下自动融化成水,是熵增起了重要作用的结果。 (对 :) 8、化学反应的熵变与温度有关, 但随温度变化不明显。 (对 :温度变化没有引起状态变化的前提下) 9、对于可逆反应C(s)+H 2O(g)=CO(g)+H 2(g),0>?θ m r H ,升高温度使正ν增大,逆ν减 小,故平衡向右移动。 (错 :升高温度正逆反应速率都增大,不会减小) 10、反应活化能越大,反应速率也越大。 (错 :相同温度下,活化能越大,速率常数越小,一般讲速率也越小) 11、若反应速率方程式中浓度的指数等于反应方程式中反应物的系数,则该反应使基元反应。 (错 :例如H2(g )+I2(g)=2HI 的反应就不是基元反应) 12、反应级数取决于反应方程式中反应物的计量系数。 (错 :非基元反应必须以试验为依据) 13、根据分子碰撞理论,具有一定能量的分子在一定方位上发生有效碰撞,才可能生成产物。 (对 ) 14、根据质量作用定律,反应物浓度增大,则反应速率加快,所以反应速率常数增大。 (错 :速率常数与浓度无关) 15、反应速率常数与温度有关,而与反应物浓度无关。 (对 ) 二、选择题 1热力学函数的定义与性质 1-1下列各热力学函数中,哪一个为零: (B ) (A) ?f G m ?(I 2, g . 298 K) (B) ?f H m ?(Br 2, l . 298 K)

第二章轴对称图形知识点归纳+典型例题+提优

2.1轴对称与轴对称图形 姓名_______学号_______班级_______ 学习目标: 1.欣赏生活中的轴对称现象和轴对称图案,探索它们的共同特征,发展空间观念. 2.通过具体实例了解轴对称概念,了解轴对称图形的概念,知道轴对称与轴对称图形的区别和联系. 学习重点: 了解轴对称图形和轴对称的概念,并能简单识别、体会轴对称在现实生活中的广泛应用和它的丰富文化价值. 学习难点: 能正确地区分轴对称图形和轴对称,进一步发展空间观念. 学习过程: 一、创设情境 观察如下的图案, 它们有什么共同的特征? 二、探索活动 活动一折纸印墨迹 问题1.你发现折痕两边的墨迹形状一样吗?

问题2.两边墨迹的位置与折痕有什么关系? 概念:把一个图形沿着___________________翻折,如果它能够与另一个图形__________,那么称这两个图形____________________对称,也称这两个图形成______________. 这条直线叫做________________,两个图形中的对应点(即两个图形重合时互相重合的点)叫做对称点. 如图,△ABC和△DEF关于直线MN对称, 直线MN是对称轴,点A与点D、点B与点E、 点C与点F都是关于直线MN的对称点. 活动二切藕制作成轴对称的两个截面 联系实际,你能举出一些生活中图形成轴对称的实例吗? 活动三

把_________图形沿着某一条直线折叠,如果直线两旁的部分能够互相重合,那么称这个图形是_______________,这条直线就是_____________. 请你找出图1-5中的各图的对称轴. 联系实际,你能举出一个轴对称图形的实例吗? 活动五轴对称与轴对称图形的区别和联系 三、课堂练习 1. 分别画出下列轴对称型字母的对称轴以及两对对称点. 2.画出下列各轴对称图形的对称轴.

第二章 蛋白质补充习题及答案

第二章蛋白质 一、填空题 1. 组成蛋白质分子的碱性氨基酸有________________、________________和________________。酸性氨基酸有________________和________________。 2. 在下列空格中填入合适的氨基酸名称。(1)________________是带芳香族侧链的极性氨基酸。(2)________________和________________是带芳香族侧链的非极性氨基酸。(3)________________是含硫的极性氨基酸。(4)________________或________________是相对分子质量小且不含硫的氨基酸,在一个肽链折叠的蛋白质中它能形成内部氢键。(5)在一些酶的活性中心中起作用并含羟基的极性较小的氨基酸是________________。 3. 氨基酸的等电点(pI)是指________________。 4. 脯氨酸与茚三酮反应产生________________色的物质,而其它氨基酸与茚三酮反应产生 ________________色的物质。 5. 实验室常用的甲醛滴定是利用氨基酸的氨基与中性甲醛反应,然后用碱(NaOH)来滴定 ________________上放出的________________。 6.通常可用紫外分光光度法测定蛋白质的含量,这是因为蛋白质分子中的________________、 ________________和________________三种氨基酸的共轭双键有紫外吸收能力。 7. 在α-螺旋中C=O和N-H基之间形成的氢键最稳定,因为这三个原子以________________排列。 8. 维持蛋白质构象的化学键有________________、________________、________________、 ________________、________________和________________。 9. 常用的肽链N端分析的方法有________________法、________________法、________________法和________________法。C端分析的方法有________________法和________________法等。 二、是非题 1.[ ]天然氨基酸都具有一个不对称α-碳原子。 2.[ ]亮氨酸的疏水性比丙氨酸强。 3.[ ]蛋白质分子中所有的氨基酸(除甘氨酸外)都是左旋的。 4.[ ]只有在很高或很低pH时,氨基酸才主要以非离子化形式存在。 5.[ ]可用8mol/L尿素拆开蛋白质分子中的二硫键。 6.[ ]如果多肽链C-末端的第二个氨基酸不是脯氨酸,则羧肽酶A或B中至少有一种能切下C-末端氨基酸。 7.[ ]脯氨酸不能参与α-螺旋,它使α-螺旋弯曲(bend),在肌红蛋白和血红蛋白的多肽链中,每一个弯曲处并不一定有脯氨酸,但是每个脯氨酸却产生一个弯曲。 8.[ ]维持蛋白质三级结构最重要的作用力是氢键。 9.[ ]大多数蛋白质的主要带电基团是由它N-末端的氨基和C-末端的羧基组成。 10.[ ]溶液的pH可以影响氨基酸的等电点。 11.[ ]在生理条件下,氧和二氧化碳均与血红蛋白血红素中的二价铁结合。 12.[ ]到目前为止,自然界发现的氨基酸为20种左右。 13.[ ]疏水作用是使蛋白质空间结构稳定的一种非常重要的次级键。 14.[ ]在蛋白质和多肽分子中,连接氨基酸残基的共价键除肽键外,还有二硫键。 三、单选题 1.[ ]下列氨基酸溶液除哪个外都能使偏振光发生旋转? A.丙氨酸 B.甘氨酸 C.亮氨酸 D.丝氨酸 2.[ ]下列哪种氨基酸有米伦氏(Millon)反应? A.色氨酸 B.酪氨酸 C.苯丙氨酸 D.组氨酸

从C到ObjectiveC类和对象续修订稿

从C到O b j e c t i v e C类 和对象续 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

从 C++ 到 Objective-C(4):类和对象(续) 作者:日期: 2011 年 03 月 19 日(9) 方法 Objective-C 中的方法与 C++ 的函数在语法方面风格迥异。下面,我们就来讲述 Objective-C 的方法。 原型、调用、实例方法和类方法 以–开头的是实例方法(多数情况下都应该是实例方法); 以 + 开头的是类方法(相当于 C++ 里面的 static 函数)。 Objective-C 的方法都是 public 的; 返回值和参数的类型都需要用小括号括起来; 参数之间使用冒号:分隔; 参数可以与一个标签 label 关联起来,所谓标签,就是在 : 之前的一个名字。标签被认为是方法名字的一部分。这使得方法 比函数更易读。事实上,我们应该始终使用标签。注意,第一个 参数没有标签,通常它的标签就是指的方法名; 方法名可以与属性名相同,这使 getter 方法变得很简单。 C++ // 原型 void Array::insertObject(void*anObject, unsigned int atIndex); // shelf 是 Array 类的一个实例,book 是一个对象

shelf.insertObject(book, 2); Objective-C(不带 label,即直接从 C++ 翻译来) // 方法原型 // 方法名字是“insertObject::” // 这里的冒号:用来分隔参数,成为方法名的一部分(注意,这不同于C++ 的域指示符::) -(void) insertObject:(id)anObject:(unsigned int)index // shelf 是 Array 类的一个实例,book 是一个对象 [shelf insertObject:book:2]; Objective-C(带有 label) // 方法原型。“index” 有一个标签“atIndex” // 方法名为“insertObject:atIndex:” // 这样的话,调用语句就很容易阅读了 -(void) insertObject:(id)anObject atIndex:(unsigned int)index // shelf 是 Array 类的一个实例,book 是一个对象 [shelf insertObject:book:2]; // 错误! [shelf insertObject:book atIndex:2]; // 正确 注意,方括号语法不应该读作“调用 shelf 对象的 insertObject 方法”,而应该是“向 shelf 对象发送一个 insertObject 消息”。这是Objective-C 的实现方式。你可以向任何对象发送任何消息。如果目标对象不能处理这个消息,它就会将消息忽略(这会引发一个异常,但不

第二章补充习题及答案 普通化学

化学反应基本原理——判断题 1、指定单质的 f G m θ、 f H m θ、S m θ皆为零。 (错 :指定单质S m θ不为零,) 2、Δr S m >0的反应都能自发进行。 (错 :该条件只能判断对应温度孤立系统、标准状态下自发) 3、θ m r G ?<0的反应必能自发进行。 (错 :该条件只能判断对应温度标准状态 4、若生成物的分子数比反应物的分子数多,则该反应的Δr S m >0 (错 :主要看气体分子数) 5、CaCO 3在高温下可以发生分解反应,故该反应为吸热熵增。 (对 :) 6、根据能量最低原理,放热反应是自发进行的。 (错 :影响自发性因素还有混乱度) 7、冰在室温下自动融化成水,是熵增起了重要作用的结果。 (对 :) 8、化学反应的熵变与温度有关, 但随温度变化不明显。 (对 :温度变化没有引起状态变化的前提下) 9、对于可逆反应C(s)+H 2O(g)=CO(g)+H 2(g),0>?θ m r H ,升高温度使正ν增大,逆ν减小, 故平衡向右移动。 (错 :升高温度正逆反应速率都增大,不会减小) 10、反应活化能越大,反应速率也越大。 (错 :相同温度下,活化能越大,速率常数越小,一般讲速率也越小) 11、若反应速率方程式中浓度的指数等于反应方程式中反应物的系数,则该反应使基元反应。 (错 :例如H2(g )+I2(g)=2HI 的反应就不是基元反应) 12、反应级数取决于反应方程式中反应物的计量系数。 (错 :非基元反应必须以试验为依据) 13、根据分子碰撞理论,具有一定能量的分子在一定方位上发生有效碰撞,才可能生成产物。 (对 ) 14、根据质量作用定律,反应物浓度增大,则反应速率加快,所以反应速率常数增大。 (错 :速率常数与浓度无关) 15、反应速率常数与温度有关,而与反应物浓度无关。 (对 ) 二、选择题 1热力学函数的定义与性质 1-1下列各热力学函数中,哪一个为零: (B ) (A) f G m (I 2, g . 298 K) (B) f H m (Br 2, l . 298 K)

相关主题
文本预览
相关文档 最新文档