C++面向对象程序设计教程第版—陈维兴林小茶课后习题答案

C++面向对象程序设计教程第版—陈维兴林小茶课后习题答案
C++面向对象程序设计教程第版—陈维兴林小茶课后习题答案

C++面向对象程序设计教程课后题答案

1.1 什么是面向对象程序设计?

面向对象程序设计是一种新的程序设计范型.这种范型的主要特征是:

1.3 现实世界中的对象有哪些特征?请举例说明。

现实世界中的对象具有以下特征:

1) 每一个对象必须有一个名字以区别于其他对象;

2) 用属性来描述对象的某些特征;

3) 有一组操作,每组操作决定对象的一种行为;

4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。

例如一个教师是一个对象。每个教师对象有自己的名字来和别的教师区别。教师具有编号,姓名,年龄,职称,专业等属性。教师拥有走路,吃饭,授课等行为操作。走路,吃饭是作用于自身的行为,授课是作用于其他对象的行为。

1.4 什么是消息?消息具有什么性质?

操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。

1.6 什么是继承?请举例说明。

继承就是允许派生类使用基类的数据和操作,同时,派生类还可以增加新的操作和数据。

例如:哺乳动物是一种热血、有毛发、用奶哺育幼崽的动物;狗是有犬牙、食肉、特定的骨骼结构、群居的哺乳动物。狗就继承了哺乳动物。

1.7 若类之间具有继承关系,则他们之间具有什么特征?

若类之间具有继承关系,则他们之间具有下列几个特征:

1) 类间具有共享特征(包括数据和操作代码的共享);

1.10 面向对象程序设计的主要优点是什么?

1.可提高程序的重用性;

2.可控制程序的复杂性;

3.可改善程序的可维护性;

4.能够更好地支持大型程序设计;

5.增强了计算机处理信息的范围;

能够很好地适应新的硬件环境。

2.1 简述C++的主要特点。

1) C++是C的超集,保持与C的兼容。

2) 保持了C的简洁、高效和接近汇编语言等特点,并对C的功能作了不少扩充。用C++编写的程序比C更安全,可读性更好,代码结构更为合理。

3) 程序质量高。

4) 增加了面向对象机制。

2.2

#include

using namespace std;

int main()

{

int a, b, d, min;

cout << "Enter two numbers:";

cin >> a >> b;

min = a > b ? b : a;

for(d = 2; d < min; d++)

{

if(((a % d) == 0) && ((b % d ) == 0)) break;

}

if (d == min)

{

cout << "No common denominators" << endl;

return0;

}

cout << "The lowest common denominator is" << d << endl;

return0;

}

2.3 有效

2.4 没有函数声明;

函数定义没有写返回值类型。

2.5 (1)等价,函数声明可以省略参数的名字。

(2)不等价,第二个的函数定义不能省略参数的名字。

2.6-2.10 CDAAB

2.11-2.15 ACBDC

2.16-2.17 DC

2.18

101

2.19

10 10

2.20

10

20

2.21 举例说明可以使用const替代#define以消除#define的不安全性。

#include

using namespace std;

int main()

{

int a = 1;

#define T1 a+a

#define T2 T1-T1

cout << "T2 is " << T2 <

return0;

}

上面这个程序,初看应该输出 T2 is 0

但是实际上,得出T2 is 2

如果把#define换成const,则可以输出想要的结果。

2.22 用动态分配空间的方法,计算Fibonacci数列的前20项,并存储到动态分配的空间中。

#include

using namespace std;

int main()

{

int *pi = new int[20];

*pi = 1;

pi[1] = 1;

for(int i = 2; i < 20; i++)

{

pi[i] = pi[i - 2] + pi[i - 1];

}

return0;

}

2.23 重载sroot函数,输出一个数的二次方根。

#include

using namespace std;

double sroot(int num)

{

return (double)sqrt((double)num);

}

double sroot(long num)

{

return (double)sqrt((double)num);

}

double sroot (double num)

{

return (double)sqrt(num);

}

int main()

{

return0;

}

2.24 解决百钱问题。将一元人民币换成1、2、5分的硬币,有多少种换法?

#include

using namespace std;

int main()

{

int num = 0; //总共换法的总数。初始化为0。

for(int i = 0; i <= 100; i++)

{

for(int j = 0; j <= 50; j++)

{

if((i + 2*j) > 100)

{

break;

}

for(int k = 0; k <= 20; k++)

{

if((i + 2*j + 5*k) == 100)

{

num++;

cout << "1分" << i << "个;" << "2分" << j << "个;" << "5分" << k << "个;" << endl;

}

if ((i + 2*j + 5*k) > 100)

{

break;

}

}

}

}

cout << num << endl;

return0;

}

2.25 输入两个整数,按由小到大的顺序输出。要求使用变量的引用。

#include

using namespace std;

void swap(int &a, int &b)

{

a = a + b;

b = a - b;

a = a - b;

}

int main()

{

int a, b;

cin >> a >>b;

if(a > b)

{

swap(a, b);

}

cout << a << "," << b << endl;

return0;

}

2.26 用二分法求解f(x)=0的根。

#include

using namespace std;

double Fun(double x)

{

return35*x +25; //假设f(x)=35x+25

}

int main()

{

double a, b;

cin >> a;

if(Fun(a) == 0)

{

cout << "x = " << a << endl;

return0;

}

do

{

cin >> b;

}

while ((Fun(a) * Fun(b)) >= 0);

if(Fun(b) == 0)

{

cout << "x = " << b << endl;

return0;

}

if(a > b)

{

a = a + b;

b = a - b;

a = a - b;

}

while(1)

{

if(Fun((a + b)/2) == 0)

{

cout << "x = " << (a + b)/2 << endl;

return0;

}

if(Fun(a) * Fun((a + b)/2) < 0)

{

b = (a + b)/2;

}

if(Fun(b) * Fun((a + b)/2) < 0)

{

a = (a + b)/2;

}

}

return0;

}

3.1 类声明的一般格式是什么?

class类名

{

[private:]

私有数据成员和成员函数

public:

公有数据成员和成员函数

}

3.2 构造函数和析构函数的主要作用是什么?它们各自有什么特性?

构造函数是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化。

构造函数的名字必须与类名相同,而不能由用户任意命名。它可以有任意类型的参数,但不能具有返回值类型。

析构函数通常用于执行一些清理任务,如释放分配给对象的内存空间等。

析构函数名与类名相同,但它前面必须加一个波浪号。不能有返回值,也不能有参数。

3.3 什么是对象数组?

所谓对象数组,是指每一个数组元素都是对象的数组。

3.4 什么是this指针?它的主要作用是什么?

C++为成员函数提供了一个名为this的指针,这个指针称为自引用指针。每当创建一个对象时,系统就把this指针初始化为指向该对象。

一个类的所有对象合用一份成员函数,this指针可以帮助对象辨别出当前调用的是自己的那个对象的数据成员和函数。

3.11-3.15 BAABA

3.16-3.17 BB

3.18

10,20

30,48

50,68

70,80

90,16

3.21

Counting at0

Counting at9 3.22

Default constructor called.

Default constructor called.

Default constructor called.

Construcotor:a=1,b=2

Construcotor:a=3,b=4

Construcotor:a=5,b=6

3.25

5,7

22.25

3.26

Constructing

Constructing

A=5

B=15

A=10

B=15

Destructing

Destructing

3.27

void pintStu();函数只有声明,没有定义。

age是私有成员,不能用对象直接调用。

3.28

void printStu() 和 void setSno(int s) 没有加限定符Student::

void setAge(int a)在类中没有声明

3.29

构造函数不能定义为私有。否则无法创建对象。

3.30 下面是一个计算器类的定义,请完成该类成员函数的实现。

class counter

{

public:

counter(int number);

void increment(); //给原始值加1 void decrement(); //给原始值减1 int getvalue(); //取的计数器值int print(); //显示计数private:

int value;

};

counter::counter(int number)

{

value = number;

}

void counter::increment()

{

++value;

}

void counter::decrement()

{

--value;

}

int counter::getvalue()

{

return value;

}

int counter::print()

{

cout << value <

return value;

}

3.31 根据注释语句提示,实现类Date的成员函数

#include

using namespace std;

class Date

{

public:

void printDate();

void setDay(int d);

void setMonth(int m);

void setYear(int y);

private:

int day, month, year;

};

void Date::printDate()

{

cout << "今天是" << year << "年" << month << "月" << day << "日" << endl;

}

void Date::setDay(int d)

{

day = d;

}

void Date::setMonth(int m)

{

month = m;

}

void Date::setYear(int y)

{

year = y;

}

int main()

{

Date testDay;

testDay.setDay(5);

testDay.setMonth(10);

testDay.setYear(2003);

testDay.printDate();

return0;

}

3.32 建立类cylinder, cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度。用类cylinder计算圆柱体的体积,并存储在一个double变量中。在类cylinder中包含一个成员函数vol,用来显示每个cylinder对象的体积。

const int PI = 3.14;

class cylinder

{

private:

double radius, height, volume;

public:

cylinder(int rad, int hei);

double getVolume();

void vol();

};

cylinder::cylinder(int rad, int hei)

{

radius = rad;

height = hei;

}

double cylinder::getVolume()

{

volume = PI * radius * radius *height;

return volume;

}

void cylinder::vol()

{

cout << "圆柱体的体积是: " << volume <

}

3.33 构建一个类book,其中包含有两个私有数据成员qu和price,将qu初始化为1~5,将price初始化为qu的10倍,建立一个有5个元素的数组对象。显示每个对象数组元素的qu*price值。

class book

{

private:

int qu, price;

public:

book(int qu);

int mult();

};

book::book(int q)

{

if(q < 1 || q > 5)

qu = 1;

}

else

{

qu = q;

}

price = 10 * qu;

}

int book::mult()

{

return qu * price;

}

int main()

{

book books[5] = {1,2,3,4,5};

for(int i = 0; i < 5; i++)

{

cout << books[i].mult() << "";

}

}

3.34 修改3.33,通过对象指针访问对象数组,使程序以相反的顺序显示每个对象数组元素的qu*price值。

class book

{

private:

int qu, price;

public:

book(int qu);

int mult();

};

book::book(int q)

{

if(q < 1 || q > 5)

{

qu = 1;

else

{

qu = q;

}

price = 10 * qu;

}

int book::mult()

{

return qu * price;

}

int main()

{

book books[5] = {1,2,3,4,5};

book *p = books;

p += 4;

for(int i = 0; i < 5; i++)

{

cout << p->mult() << "";

--p;

}

return0;

}

3.35 构建一个类Stock,含字符数组stockcode[]及整型数组成员quan、双精度型数据成员price。构造函数含3个参数:字符数组na[]及q、p。当定义Stock的类对象时,将对象的第一个字符串参数赋给数据成员stockcode,第2和第3个参数分别赋给quan、price。未设置第2和第3个参数时,quan的值为1000,price的值为8.98.成员函数print没有形参,需使用this指针,显示对象数据成员的内容。编写程序显示对象数据成员的值。

#include

using namespace std;

class Stock

{

private:

char stockcode[25];

int quan;

double price;

Stock(char na[], int q = 1000, double p = 8.98);

Stock(char na[]);

void print();

};

Stock::Stock(char na[], int q = 1000, double p = 8.98)

{

strcpy(stockcode, na);

quan = q;

price = p;

}

void Stock::print()

{

cout << "stockcode: " << this->stockcode << " quan: " << this->quan << " price: " << this->price << endl;

}

int main()

{

Stock stock1("600001", 3000, 5.67);

Stock stock2("600002");

stock1.print();

stock2.print();

return0;

}

3.36 编写一个程序,已有若干学生的数据,包括学号、姓名、成绩,要求输出这些学生的数据并计算出学生人数和平均成绩(要求将学生人数和总成绩用静态数据成员表示)。

#include

using namespace std;

class student

{

private:

char name[25], studentNo[10];

int score;

static int sum;

static int totalScore;

《面向对象程序设计C 》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10; 下列表示引用的方法中,()是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0 B.1 C.2 D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型

c面向对象程序设计试题和答案(经典题目)

一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

(A)指针(B)引用(C)枚举(D)结构 3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。 (A)share (B)public (C)private (D)protected 4、关于构造函数,下列说法不正确的是()。 (A)构造函数名字和类名相同 (B)构造函数在创建对象时自动执行 (C)构造函数无任何函数返回类型 (D)构造函数有且只有一个 5、派生类可以访问其基类的()。 (A)公有成员(B)保护成员 (C)私有派生(D)公有和保护成员 6、下列关于运算符重载的描述中,错误的是()。 (A)运算符重载不可以改变操作数的个数 (B)运算符重载不可以改变运算符的功能 (C)运算符重载不可以改变结合方向 (D)运算符重载不可以改变运算优先级 7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() (A)面向过程(B)面向对象(C)安全性(D)复用性 8、对于类中定义的成员,其隐含访问权限为()。 A.public B.protected C.private D.static 9、下面有关重载函数的说法中正确的是() (A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同; (C)重载函数必须有不同的形参列表(D)重载函数名可以不同; 10、有如下的对类“CSample”的说明,其中()是错误的。 class CSample { A.int a=23; B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类()构造函数。 (A)只能有一个(B)只可有公有的

人教部编语文四年级下册教材课后答案

部编语文四年级下册教材课后答案 第 1 课古诗词三首 2.读下面的诗句 , 说说你眼前浮现出了怎样的情景。 〔答案大家找〕“儿童急走追黄蝶 , 飞入菜花无处寻。”描绘了 儿童捕蝶的欢快场景。 “日长篱落无人过 , 惟有蜻蜓蛱蝶飞。”让我们看到农民早出晚 归的场景 , 蛱蝶飞又让我们感受到静中有动的情景。 “大儿锄豆溪东 , 中儿正织鸡笼。最喜小儿亡赖 , 溪头卧剥莲蓬。”大儿子在溪东豆地里锄草 , 二儿子在家里编织鸡笼 , 三儿子只知任意地调皮玩耍 , 躺卧在溪边剥莲蓬吃。 第 2课乡下人家 1.朗读课文 , 想象画面。如果给课文配画 , 你觉得可以画几幅 ?试 着给每幅画取个名字。 〔答案大家找〕 7 幅 , 屋前搭瓜架、门前种鲜花、屋后春笋冒、 院里鸡觅食、河中鸭嬉戏、门前吃晚饭、夜静催眠曲。 2.你对课文描写的哪一处景致最感兴趣 ?和同学交流。 〔答案大家找〕描写门前五颜六色的花和雨后春笋的景致我最 感兴趣 , 本来是朴素的乡下 , 可是门前这些五彩缤纷的花朵、雨后的春 笋又给本来朴素的乡下带来了勃勃生机, 读完以后让我也向往乡下这 样恬静安逸的生活。

3. 读句子 , 再从课文中找出像这样写得生动形象的句子, 抄写下来。 〔答案大家找〕他们的屋后倘若有一条小河 , 那么在石桥旁边 , 在绿树荫下 , 会见到一群鸭子游戏水中 , 不时地把头扎到水下去觅食。天边的红霞 , 向晚的微风 , 头上飞过的归巢的鸟儿 , 都是他们的好友 , 它们和乡下人家一起 , 绘成了一幅自然、和谐的田园风景画。秋天到 了, 纺织娘寄住在他们屋前的瓜架上。月明人静的夜里, 它们便唱起歌来: “织 , 织, 织, 织啊 ! 织, 织, 织, 织啊 ! ”那歌声真好听 , 赛过催眠曲 ,让那些辛苦一天的人们, 甜甜蜜蜜地进入梦乡。 选做 你眼里的乡村景致是怎样的?用一段话写下来。 〔答案大家找〕大树也绿 , 小草也茂盛 , 花朵也艳丽 , 田园的风光真是美。近处 , 一棵棵大杨树挺直身板, 抬起头 , 密密麻麻的绿叶里闪过一丝丝日影。远远地看去, 这些杨树就像一名名威武的保卫者。小 草又嫩又绿 , 茂密的草地就像一大块碧绿的地毯, 躺在软软的绿地上 ,比躺在沙发上还要舒服。那的野花不是一般的香, 在千里之外都可以闻到。每一朵花都神气十足地仰起头。每个人家的门前都有一块可爱的菜地 , 种有茄子、黄瓜、辣子、豇豆、草莓等蔬菜水果。从高处往 下看 , 那些蔬菜水果就像一个个精英士兵, 你就像那位大将军 , 准备率领十万精英去攻打敌人的城池。晚上 , 无数颗星星眨着眼睛 , 等我们睡着, 星星才肯离开

(教材)课后习题解答

第1.2章建筑的传热与传湿 (7)试求出用同一种材料构成的5层厚度为20mm封闭空气间层的热阻值与1层厚度为100mm的封闭空气间层的热阻值各为多少?

(15)已知20i t C =o ;50%i ?=。问:若采用如[例1.2-2]中图1.2-20所示墙体,在保证内表面不结露的 情况下,室外气温不得低于多少?若增加保温层使其传热系数不超过1.0W/(㎡·K ),此时的室外气温又不得低于多少? 解:由20i t C =o ,50%i ?=,查表可得出室内露点温度9.d t C =o 5 要保证内表面不结露,内表面最低温度不得低于露点温度。 平壁的总传热阻: 01233 1 2 123 2()( )0.020.20.02 0.11( )0.040.81 1.740.93 0.312/i e i e i e R R R R R R R R R d d d R R m K W λλλ=++=++++=++++=++++=? 根据公式1.2-20,取1m =得到 10 ()i i i e d R t t t t R θ=- -≥ 这里,1θ表示维护结构内层表面的温度,i R 表示内表面换热阻,将数值代入得室外气温不超过: 00.312()=20(209.)9.790.11 e i i d i R t t t t C R ≥- ---=-o 5 若增加一保温层使其传热系数不超过1.0W/(㎡·K ),则增加保温层后的总热阻为 20 1()/R m K W '≥? 这时外界气温不得低于01()=20(209.)75.450.11 e i i d i R t t t t C R '≥----=-o 5

面向对象程序设计C自学考试课程复习题

(07837)《面向对象程序设计C++》复习题 一、单选题 1.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( D ) A. 公有类型 B. 私有类型 C. 保护类型 D. 友元类型 2.下列关于多态性的描述,错误的是( C ) A. C++语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现 D. 实现运行时多态性的机制称为动态绑定 3.在C++语言中,数据封装要解决的问题是( D ) A. 数据的规范化 B. 便于数据转换 C. 避免数据丢失 D. 防止不同模块之间数据的非法访问 4.使用private修饰的成员变量,以下说法正确的是( A ) A. 只能由本类中的函数使用,不能被外面的程序所访问。 B. 可以由本类中的函数使用,也可以被外面的程序所访问。 C. 只能由本类和派生类中的函数使用。 D. 可以在主函数中使用。 5.对类的构造函数和析构函数描述正确的是( A ) A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 C. 构造函数可以重载,析构函数也可以重载 D. 构造函数不能重载,析构函数也不能重载 6.下面对静态数据成员的描述中,正确的是( A ) A. 静态数据成员是类的所有对象共享的数据 B. 类的每个对象都有自己的静态数据成员 C. 类的不同对象有不同的静态数据成员值 D. 静态数据成员不能通过类的对象调用 7.在VC++语言类体系中,不能被派生类继承的有( B ) A. 转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数 8.下面关于句柄正确的说法是( A ) A. 句柄是一个标识Windows资源和设备等对象的变量。 B. 句柄是用户程序自定义的数据类型。 C. 用户程序使用句柄时不需要定义。 D. 句柄仅仅是一个抽象的概念,程序中不能使用句柄。 9.下面关于动态链接库正确的说法是( B ) A. 动态链接库提供的函数,在编译阶段能够连接到应用程序中。 B. 动态链接库提供的函数,在运行阶段能够连接到应用程序中。 C. 动态链接库本身不能单独设计、编译和调试。 D. 动态链接库的使用使得程序缺乏灵活性。 10.下面关于MFC应用程序中InitInstance函数正确的说法是( D ) A. 该函数由用户定义。

各大学教材课后习题答案网址

各大学教材课后习题答案网址 《线性代数》(同济第四版)课后习题答案(完整版) 高等数学(同济第五版)课后答案(PDF格式,共527页) 中国近现代史纲要课后题答案 曼昆《经济学原理》课后习题解答 21世纪大学英语读写教程(第三册)参考答案 谢希仁《计算机网络教程》(第五版)习题参考答案(共48页) 《概率论与数理统计》习题答案 http:// 《模拟电子技术基础》详细习题答案(童诗白,华成英版,高教版) 《机械设计》课后习题答案(高教版,第八版,西北工业大学) 《大学物理》完整习题答案 .com/viewthread.php?tid=217&fromuid=164951 《管理学》课后答案(周三多) 机械设计基础(第五版)习题答案[杨可桢等主编] 程守洙、江之永主编《普通物理学》(第五版)详细解答及辅导 .php?tid=3&fromuid=164951 新视野大学英语课本详解(四册全) 21世纪大学英语读写教程(第四册)课后答案 新视野大学英语读写教程3册的课后习题答案 1

新视野大学英语第四册答案(第二版) 《中国近现代史》选择题全集(共含250道题目和答案) 《电工学》课后习题答案(第六版,上册,秦曾煌主编) 完整的英文原版曼昆宏观、微观经济学答案 《数字电子技术基础》习题答案(阎石,第五版) 《电路》习题答案上(邱关源,第五版) 《电工学》习题答案(第六版,秦曾煌) https://www.360docs.net/doc/0d16539924.html,/viewthread.php?tid=112&fromuid=164951 21世纪大学英语读写教程(第三册)课文翻译 《生物化学》复习资料大全(3套试卷及答案+各章习题集) 《模拟电子技术基础》课后习题答案(共10章)ewthread.php?tid=21&fromuid=164951 《概率论与数理统计及其应用》课后答案(浙江大学盛骤谢式千编著)《理论力学》课后习题答案(赫桐生,高教版) 《全新版大学英语综合教程》(第四册)练习答案及课文译文viewthread.php?tid=78&fromuid=164951 《化工原理答案》课后习题答案(高教出版社,王志魁主编,第三版)《国际贸易》课后习题答案(海闻P.林德特王新奎) 大学英语综合教程1-4册练习答案 read.php?tid=1282&fromuid=164951 《流体力学》习题答案 《传热学》课后习题答案(第四版) 高等数学习题答案及提示

《C面向对象程序设计》谭浩强版复习总结

第一章C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

c+面向对象程序设计试题和答案题目

系名___ ___ ___ ___ 班级___ ___ ___ ___姓名___ ___ ___ ___学号___ ___ ___ ___ 密 封 线 内 不 答 题 一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

《C语言程序设计实践教程》答案-完整版

4.2练习题 一、选择题 1.D 2.B 3.A 4.B和D 5.C 6.A 7.B 二、填空题 1.//或/* */ 2.主或main 3.函数首部和函数体4.编译和连接 5.分号 5.2练习题 一、选择题 1.A 2.D 3.B 4.B 5.C 6.C 7.D 8.A 9.B 10.B 11.D 12.B 13.A或B 14.C 15.B

17.D 18.D 19.C 20.D 21.B 22.A 23.D 24.C 25.C 26.B 27.C 28.D 29.A 30.B 二、填空题 1.102,10 2.#define 宏名字符串 3.1 4.n=1 5.-4 6.a=1,b= ,c=2 7.c=A 8.n1=%d\nn2=%d 9.a+b>c&&a+c>b&&b+c>a 10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.7 12.0 13.11110000 14.8,4 6.2练习题 一、选择题 1.A 2.C 3.D 4.C 5.A

7.A 8.D 9.B 10.C 11.A 12.A 13.C 14.B 15.正确答案为:12345678 二、填空题 1.10 2.y=1 x%i==0 3.屏幕中间输出一个由星号组成的菱形4.1 5.13 6.(cx=getchar())!=-1 front=cx; 7.m%n 8.4 9.*p px=&x py=&y 三、读程序,写结果 1.-1 2.3,1,-1, 3.a=16,y=60 4.x=12,y=4 5.59 7.2练习题 一、选择题 1.B 2.C 3.C 4.A 5.D

linux课后习题答案教材课后习题参考答案

第 1 章Linux 概况 一、选择题 1、下列哪个选项不是Linux 支持的? A. 多用户 B. 超进程 C. 可移植 D. 多进程 2、Linux 是所谓的“Free Software”,这个“Free”的含义是什么? A. Linux 不需要付费 B. Linux 发行商不能向用户收费 C. Linux 可自由修改和发布 D.只有Linux 的作者才能向用户收费 3、以下关于Linux 内核版本的说法,错误的是? A. 依次表示为主版本号.次版本号.修正次数的形式 B. 1.2.2 表示稳定的发行版 C. 2.2.6 表示对内核2.2 的第6 次修正 D. 1.3.2 表示稳定的发行版 4、以下哪个软件不是Linux 发行版本? A. 红旗 Server 4 B. Solaris 10 C. RedHat 9 D. Fedora 8 5、与Windows 相比Linux 在哪个方面相对应用得较少? A. 桌面 B. 嵌入式系统 C. 服务器 D. 集群 A6、Linux 系统各组成部分中哪一项是基础? A.内核 B. X Window C. Shell D. Gnome B7、Linux 内核管理不包括的子系统是哪个? A. 进程管理系统 B. 内存管理系统 C. 文件管理系统 D. 硬件管理系统 A8、下面关于Shell 的说法,不正确的是哪个? A. 操作系统的外壳 B. 用户与Linux 内核之间的接口 C. 一种和C 类似的高级程序设计语言 D. 一个命令语言解释器 B9、以下哪种Shell 类型在Linux 环境下不能使用? A.B Shell B.K Shel C.R Shell D.Bash 10、在Linux 中把声卡当作何种设备? A. 字符设备 B. 输出设备 C. 块设备 D. 网络设备 二、填空题 1、Linux 采用 LRU 算法(最近最少使用)算法,淘汰最近没有访问的

C面向对象程序设计教程第版陈维兴林小茶课后习题答案及解析

C++面向对象程序设计教程课后题答案 1.1 什么是面向对象程序设计? 面向对象程序设计是一种新的程序设计范型.这种范型的主要特征是: 程序=对象+消息 面向对象程序的基本元素是对象。 主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成; 第二,程序中的一切操作都是通过向对象发送消息来实现的。 1.2 什么是对象?什么是类?对象与类之间的关系是什么? 对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。 类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。 类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。 1.3 现实世界中的对象有哪些特征?请举例说明。 现实世界中的对象具有以下特征: 1) 每一个对象必须有一个名字以区别于其他对象; 2) 用属性来描述对象的某些特征; 3) 有一组操作,每组操作决定对象的一种行为;

4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。 例如一个教师是一个对象。每个教师对象有自己的名字来和别的教师区别。教师具有编号,姓名,年龄,职称,专业等属性。教师拥有走路,吃饭,授课等行为操作。走路,吃饭是作用于自身的行为,授课是作用于其他对象的行为。 1.4 什么是消息?消息具有什么性质? 一个对象向另一个对象发出的请求成为“消息”。 消息具有以下3个性质: 1) 同一个对象可以接收不同形式的多个消息,做出不同的相应; 2) 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的; 3) 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。 1.5 什么是抽象和封装?请举例说明。 抽象是将有关事物的共性归纳、集中的过程。 例如:把所有具有大学生学籍的人归为一类,成为“大学生”,这就是一个抽象。 封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。 例如:每一台洗衣机都有出厂日期、机器编号等属性,也有启动、暂停、选择等操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。 1.6 什么是继承?请举例说明。 继承就是允许派生类使用基类的数据和操作,同时,派生类还可以增加新的操作和数据。

c程序设计教程与实验__吉顺如__实验一到七

实验1熟悉Visual C++环境及运行C程序 一、实验目的 1.掌握在Visual C++环境下C程序的建立、编辑、编译和执行过程。 2.掌握C程序的最基本框架结构,完成简单程序的编制与运行和调试。 3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。 二、实验内容 1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。输入该C程序,编译并运行之,记下屏幕的输出结果,以文件名保存。 #include <> main() { int a,b,sum; /*定义整型变量a、b、sum */ printf("Please Input a,b \n "); /*输出提示信息*/ scanf("%d%d",&a,&b); /*从键盘输入两个整数分别赋予a和b*/ sum=a*a+b*b; /*赋值语句,把a2+b2的结果赋给变量sum*/ printf("%d*%d+ %d*%d=%d\n",a,a,b,b,sum); /*输出语句*/ }

改错题 (1计算x*y 的值并将结果输出。试纠正程序中存在的错误,以实现其功能。程序以文件名保存。 #include <> main main () { int x=2;y=3;a int x=2,y=3,a ; A=x*y a =x*y ; print ('a=%d",A); print f ("a=%d",a ); printf("\n"); } (2)下程序的功能为:求两数中的较大数据并输出。纠正程序中存在的错误,以实现其功能。程序以文件名保存。 #include <> viod main() void main() { int a ,b , max; Scanf(“%d,%d ”,&a,&b); s canf(“%d,%d ”,&a,&b); Max=a; m ax=a; If (max

《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C++》期末考试试卷 一、选择题(每小题3分,共48分。) 01、下列关于C++函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 02、下列关于类和对象的叙述中,错误的是( A )。 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系 03、在C++中,用于实现运行时多态性的是( D )。 A)内联函数 B)重载函数 C)模板函数D)虚函数 04、下列关于运算符重载的叙述中,正确的是( B )。 A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参 05、对于语句 cout<

C面向对象程序设计课程设计报告

《C++面向对象程序设计》课程设计报告题目:分数计算器设置 班级: K0312415 专业:计算机科学与技术 学号: 姓名:周林 指导教师: 小组成员:周林,张齐满 二O一三年 10 月 15 日

一、课程设计问题描述 分数计算器设计是高等学校教务管理的重要组成部分,其内容较多,为了简化计论, 要求设计的管理系统能够完成以下功能: (1)定义整数类和分数类。其中,包括构造函数、析构函数、显示函数等。 (2)输入/输出:对流提取和流插入运算符进行重载。 (3)计算功能:可进行分数的加、减、乘和除法运算。 (4)化简功能:将分数化简为最简分数。 (5)异常处理功能:分数中分母不能为零。 (6)菜单功能:每种功能的操作都是在菜单中进行相应选择。 二、课程设计目的和要求: 经过一个学期的《C++面向对象程序设计》课程的学习,已经有了一定地程序设计基础,但是要学好C++面向对象程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。 三、系统设计(算法分析) 1、系统由5功能,可分别执分数的.加法运算,减法运算,.乘法运算和除法运算,还可以将分数化简。 1.加法运算可计算两个分数相加。 2.减法运算可计算两个分数相减。 3.乘法运算可计算两个分数相乘。 4.除法运算可计算两个分数相除。 5.化简运算可计算一个分数化简。 2、流程图

3、分数计算器设置各函数的功能和实现的相关功能由对应的函数来实现。 (1)函数jia() (2)函数jian() (3)函数cheng()实现分数乘法运算。 (4)函数chu()实现分数除法运算。 (5)函数shuchu()实现分数的输出和化简。 四、程序源代码 pp : Defines the entry point for the console application.

教材课后习题参考答案新版_学生版(1-4)章_

《Visual Basic程序设计基础》教材 习题 第1章 Visual Basic 6.0程序设计概述 习题 一、判断题 参考答案: 1.√2.√3.√4.×5.√6.×7.√8.×9.√10.√11.×12.√13.×14.√15.√ 二、选择题 参考答案: 1. C 2. B 3.D 4.C 5.B 6.A 7.D 8.A 9.B 10.D 三、填空题 参考答案: 1.对象、事件2.属性、方法、事件3.控件、屏幕(Screen) 4.Left 5. Top 6.属性、<对象名>.<属性名>=<表达式> 7.网格8.F o rm1 9.Load或Initialize或Resize或Activate(自动执行的先后顺序也按此排列) 10.Activate、Deactivate 四、程序设计题 参考代码: 程序1.界面设计参看表1。 表1 各控件的主要属性设置

过程设计如下: Private Sub Command1_Click() Label2.Visible = False ‘使控件Label2看不见 Label1.Caption = Text1.Text + ": 欢迎使用" + Label1.Caption Text1.Visible = False ‘使控件Text1看不见Command1.Enabled = False ‘使控件Command1不能用Command2.Enabled = True ‘使控件Command2能用End Sub Private Sub Command2_Click() End ‘结束程序运行 End Sub 程序2.界面设计, 过程设计如下: Private Sub Command1_Click() '字体变大 Form1.FontSize = Form1.FontSize + 3 Form1.Cls: Print "欢迎使用VB" End Sub Private Sub Command2_Click() '字体变小 Form1.FontSize = Form1.FontSize - 3 Form1.Cls Print "欢迎使用VB" End Sub Private Sub Command3_Click() '字体加粗 Form1.FontBold = True

C面向对象程序设计知识点汇集

C#面向对象程序设计知识点汇集 第一章:C#入门 1.namespace关键字 namespace即命名空间,是定义命名空间的关键字,命名空间包含类,是类的组织方式。namespace 命名空间名 { …//类的定义 } 2.using关键字 using关键字用于导入命名空间 using命名空间名; 3.class关键字 class即类,是定义类的关键字。C#中必须用类来组织程序的变量和方法。 4.Main()方法 C#程序必须且只能包含一个Main()方法,它是程序的入口点。 static void Main(string[] args){} static void Main(){} static int Main(string[] args){} static int Main(){} 5.行输出方法 语句“Console.WriteLine("Hello .NET!");”的功能是向显示屏输出双引号之间的字符串。语句“Console.ReadLine();”的功能是输入一个字符串 6.C#程序结构 C#程序的组成要素如下: 1) 命名空间:命名空间包含一个或多个类。 2) 类。 3) 方法:方法必须包含在某一个类中,作为类的一个成员,每个程序有且仅有一个Main()方法。 4) 语句:语句是C#应用程序中执行操作的命令。C#中的语句必须用分号“;”结束。 5) 关键字:关键字也叫保留字,是对C#有特定意义的字符串。 6) 大括号:在C#中,括号“{”和“}”是一种范围标志,表示代码层次的一种方式。7.C#程序书写格式 1)缩进 2) 字母大小写 C#是大小写敏感的语言,它把同一字母的大小写当作两个不同的字符对待。 3) 程序注释 (1) 单行注释,以双斜线“//”开始,一直到本行尾部,均为注释内容。 (2) 多行注释,以“/*”开始,以“*/”结束,可以注释多行,也可以注释一行代码中间的一部分,比较灵活。 (3) 文档注释,使用“///”,若有多行文档注释,每一行都用“///”开头。 8.Console类 Console类是System命名空间中预定义的一个类,用于实现控制台的基本输入输出。

《面向对象程序设计C 》期末试卷及标准答案(A)

一、选择题(每小题2分,共40分) 1、C++是()。 A. 面向对象的程序设计语言 B. 面向过程的程序设计语言 C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D. 非结构化的程序设计语言 2、面向对象程序设计思想的主要特征中不包括()。 A. 封装性 B. 多态性 C. 继承性 D. 功能分解,逐步求精 3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入: Microsoft Visual Studio 6.0! 所得的结果是str=()。 A. Microsoft Visual Studio 6.0! B. Microsoft C. Microsoft Visual D. Microsoft Visual Studio 6.0 4、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A. testDefaulParam(5); B. testDefaulParam(5,8); C. testDefaulParam(5,'#'); D. testDefaulParam(0,0,'*'); 5、下列语句中,将函数int sum(int x, int y)正确重载的是()。 A. float sum(int x, int y); B. int sum(int a, int b); C. float sum(float x, float y); D. double sum(int y, int x); 6、下列表示引用的方法中,()是正确的。 已知:int a=1000; A. int &x=a; B. char &y; C. int &z=1000; D. float &t=&a; 7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。 A. 内联函数 B. 重载函数 C. 递归调用 D. 嵌套调用 8、下列有关C++类的说法中,不正确的是()。 A. 类是一种用户自定义的数据类型 B. 只有类中的成员函数或类的友元函数才能存取类中的私有成员 C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的 D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的 9、已知X类,则当程序执行到语句:X array[3];时,调用了()次构造函数。 A. 0 B. 1 C. 2 D. 3 10、下面说法中,正确的是() A. 一个类只能定义一个构造函数,但可以定义多个析构函数 B. 一个类只能定义一个析构函数,但可以定义多个构造函数 C. 构造函数与析构函数同名,只要名字前加了一个求反符号(~) D. 构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以 11、已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。

C语言程序设计项目教程习题答案资料

C语言程序设计项目教程— 习题答案 说明:本文档在“文档结构图”视图方式下应用比较方便。 第1章第2章第3章第4章第5章第6章第7章第8章第9章 第1章 1. 什么是软件?软件有哪些特点? 答:软件是程序、数据及其相关文档的完整集合。 软件具有以下特点: ①软件是一种逻辑产品,它以程序和文档的形式出现,保存在计算机的存储器中(磁盘或光盘),通过计算机的运行才能体现它的功能和作用。 ②软件产品的生产主要是研制。 ③软件产品不会用坏,不存在磨损、消耗的问题,但是软件在使用过程中,往往需要根据用户需求变化或软硬件环境的变化对软件进行修改,这种修改被称为软件维护。 ④软件产品的生产主要是脑力劳动。 ⑤软件的费用是不断增加的,软件成本相当昂贵。 2. 什么是软件工程? 答:软件工程是一门用工程化方法,指导计算机软件开发和维护的学科,它采用工程的概念、原理、技术和方法来开发、维护以及管理软件。 3. 什么是软件生命周期?软件生命周期包括哪些阶段? 答:软件生命周期是指从开发软件概念的提出起,直到该软件的使用、失去使用价值而被废弃的整个过程,也可以称作软件生存周期。 软件生命周期包括可行性研究与计划制订、需求分析、软件设计、软件实现、软件测试、运行与维护。

4. 什么是软件开发模型? 答:软件开发模型是软件开发全部过程、活动和任务的结构框架。 5. 写出数据结构的概念。 答:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,是计算机存储、组织数据的方式。数据结构主要研究和讨论数据的逻辑结构、存储结构和数据的运算。 6. 填空: ⑴数据结构包括逻辑结构、存储结构和数据的运算三个方面。 ⑵据结构的逻辑结构包括线性结构和非线性结构两大类。 ⑶据结构的存储结构包括顺序存储结构、链式存储结构、索引存储结构和散列存 储结构四类。 ⑷表是一种采用链式存储结构的线性表。 7. 什么是算法?算法有哪些特性? 答:算法是解决问题所采取的步骤和方法。算法具有以下特性:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 8. 什么是算法的时间复杂度?什么是算法的空间复杂度? 答:时间复杂度是指执行算法所耗费的时间。空间复杂度是指算法在计算机内执行时所占用的内存开销规模。 9~12. DCDA 13. 分别用流程图、N-S图描述以下问题的算法。 (1)输入一个年份,判断是否为闰年。 提示:闰年的判断条件为:①能被4整除,但不能被100整除;②能被400整除。满足两个条件之一,即为闰年。

c程序设计教程钱能课后答案.doc

c 程序设计教程钱能课后答案【篇 一:c 语言程序设计教程课后习题参考答案】 t>课后习题参考答案 习题1 1. (1)编译、链接.exe (2)函数主函数(或main 函数) (3)编辑编译链接 2. (1)-(5):ddbbc (6)-(10):abbbc 3. (1)答:c 语言简洁、紧凑,使用方便、灵活; c 语言是高级语言,同时具备了低级语言的特征; c 语言是结构化程序设计语言,具有结 构化的程序控制语句; c 语言有各种各样的数据类型; c 语言可移植性好;生成目标代码质量高,程序执行效率高。 (2)编辑、编译、链接、执行 (3)一个 c 程序由一或多个函数组成,一函数若干条语句构成,每 条语句的末尾必须以分号结束。 (4)标识符,关键字,运算符,分隔符,常量,注释符等 4. 从键盘输入一个双精度小数,打印出它的余弦值。 #include stdio.h #include math.h main( ) { double x; scanf( “%lf ”, x); printf( “%n l f”, cos(x) ); } 第2 章 1. (1)bde 、acfg (2)d (3) c (4) c 2. (1)错(2)错(3)错(4)对(5)错3. (1)a=3,b=-27

(2)a=11,b=6,c=6 (3)3 (4)1 0 1 0 1 1 0 (5)-9 9 8 (6)1)20 2 )8 3 )70 4 )0 5 )0 6 )0 4. (1) #include stdio.h main( ) { double r, h ,v; r = 2.5; h = 3.5; v = 3.14*r*r*h; printf( “v=%nl f”, v); } (2) #include stdio.h main( ) { char ch; ch = getchar( ); printf( “%n c”, ch + 32); } (3) #include stdio.h main( ) { printf( “n*”); printf( “*n**”); printf( “***n**”); printf( “******n*”); } (4) #include stdio.h main( ) { double x; scanf( “%lf ”, x); printf( “%d , %l n f”, (int)x, x (int)–x );

相关文档
最新文档