当前位置:文档之家› 面向对象程序设计教程第版陈维兴林小茶课后习题答案

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

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

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

什么是面向对象程序设计

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

程序=对象+消息

面向对象程序的基本元素是对象。

主要结构特点是:

第一,程序一般由类的定义和类的使用两部分组成;

第二,程序中的一切操作都是通过向对象发送消息来实现的。

什么是对象什么是类对象与类之间的关系是什么

对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。

类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。

类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。

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

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

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

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

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

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

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

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

一个对象向另一个对象发出的请求成为“消息”。

消息具有以下3个性质:

1) 同一个对象可以接收不同形式的多个消息,做出不同的相应;

2) 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的;

3) 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。

什么是抽象和封装请举例说明。

抽象是将有关事物的共性归纳、集中的过程。

例如:把所有具有大学生学籍的人归为一类,成为“大学生”,这就是一个抽象。

封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。

例如:每一台洗衣机都有出厂日期、机器编号等属性,也有启动、暂停、选择等操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。

什么是继承请举例说明。

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

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

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

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

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

2) 类间具有差别或新增部分(包括非共享的数据和操作代码);

3) 类具有层次结构。

什么是单继承、多继承请举例说明。

单继承是指每个派生类只直接继承了一个基类的特征。例如狗继承自哺乳动物。

多继承是指多个基类派生出一个派生类的继承关系。比如玩具车同时继承自玩具和车。

什么是多态请举例说明。

多态是指不同的对象收到相同的消息时执行不同的操作。

例如,有一个窗口类对象,还有一个棋子类对象。当我们发出“移动”消息时,两个对象的行为不同。

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

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

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

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

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

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

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

简述C++的主要特点。

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

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

3) 程序质量高。

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

#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;

}

有效

没有函数声明;

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

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

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

ACBDC

DC

101

10 10

10

20

举例说明可以使用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,则可以输出想要的结果。

用动态分配空间的方法,计算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;

}

重载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;

}

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

#include

using namespace std;

int main()

{

int num = 0; Default constructor called.

Default constructor called.

Construcotor:a=1,b=2

Construcotor:a=3,b=4

Construcotor:a=5,b=6

Con.

Copy con.

default.

Copy con.

A=5

B=14

A=9

B=14

5,7

Constructing Constructing A=5

B=15

A=10

B=15

Destructing

Destructing

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

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

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

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

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

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

class counter

{

public:

counter(int number);

void increment(); ult() << "";

}

}

修改,通过对象指针访问对象数组,使程序以相反的顺序显示每个对象数组元素的

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;

}

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

#include

using namespace std;

class Stock

{

private:

char stockcode[25];

int quan;

double price;

public:

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

Stock(char na[]);

void print();

};

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

{

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, ;

Stock stock2("600002");

();

();

return0;

}

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

#include

using namespace std;

class student

{

private:

char name[25], studentNo[10];

int score;

static int sum;

static int totalScore;

public:

student(char na[], char stuNo[], int sc);

void show();

static void showTotal();

};

student::student(char na[], char stuNo[], int sc)

{

strcpy(name, na);

strcpy(studentNo, stuNo);

score = sc;

++sum;

totalScore += sc;

}

void student::show()

{

cout << "姓名: " << name <

cout << "学号: " << studentNo << endl;

cout << "成绩: " << score << endl;

}

void student::showTotal()

{

cout << "总人数: " << sum << endl;

cout << "平均成绩: " << (double)totalScore/sum <

}

int student::sum = 0;

int student::totalScore = 0;

int main()

{

student s1("张无忌", "111254", 75);

student s2("李莫愁", "254114", 60);

student s3("小龙女", "112587", 88);

();

();

();

student::showTotal();

return0;

}

有哪几种继承方式每种方式的派生类对基类成员的继承性如何

公有继承,私有继承和保护继承。

基类的私有成员,无论哪种继承方式都不能访问。

公有继承不改变基类的公有和保护成员的访问限制。

私有继承将基类的公有和保护成员都变成私有。

保护继承将基类的公有和保护成员都变成保护。

派生类能否直接访问基类的私有成员若否,应如何实现

不能。可以在基类里添加一个公有成员函数来访问私有成员,派生类就能继承这个公有成员函数,实现对基类私有成员的访问。

保护成员有哪些特性保护成员以公有方式或私有方式继承后的访问特性如何

保护成员只能被本类或本类的派生类所访问,在类或派生类外是不能被访问的。

后面一问见第一题的答案。

派生类构造函数和析构函数的执行顺序是怎样的

构造函数是先执行父类的构造函数,再执行类中其他类对象的构造函数,再执行本类的构造函数。如果同级有多个构造函数,则按声明顺序执行。

析构函数与构造函数的执行顺序刚好相反。

派生类构造函数和析构函数的构造规则是怎样的

派生类名(参数总表):基类名(参数总表)

{

派生类新增数据成员的初始化语句

}

派生类中的析构函数与基类无关。

什么是多继承多继承时,构造函数与析构函数的执行顺序是怎样的

多继承是指一个类同时继承自多个不同的基类。

执行顺序同

在类的派生中为何要引入虚基类虚基类构造函数的调用顺序是如何规定的

如果一个类有多个直接基类,而这些直接基类又有一个共同的基类,则在最底层的派生类中会保留这个简介的共同基类数据成员的多份同名成员。在访问这些同名成员的时候,会产生二义性。为了解决二义性,引入了虚基类。

1) 如果虚基类中定义有带形参的构造函数,并且没有定义默认形式的构造函数,则整个继承结构中,所有直接或间接的派生类都必须在构造函数的成员初始化表中列出对虚基类构造函数的调用,以初始化在虚基类中定义的数据成员。

2) 建立一个对象时,如果这个对象中含有从虚基类继承来的成员,则虚基类的成员是由最远派生类的构造函数通过调用虚基类的构造函数进行初始化的。该派生类的其他基类对虚基类构造函数的调用都自动被忽略。

3) 若同一层次中同时包含虚基类和非虚基类,应先调用虚基类的构造函数,再调用非虚基类的构造函数,最后调用派生类的构造函数。

ACCB

Constructor B1.

Constructor B2.

Constructor A.

3

2

1

主食=bread

副食=steak

0,0,0

0,1,0

3,6,9

Constructor B1.

Constructor B2.

Constructor B3.

Constructor A.

1

2

4,3

4

(1,2)

5,6

(6,9)

class base1

class base2

class level2

class base2

class level1

class toplevel

#include

using namespace std;

#include

class table

{

public:

table(int p, int q)

{

i = p;

j = q;

}

void ascii(void);

protected:

int i, j;

};

void table::ascii()

{

int k = 1;

for(; i <= j; i++)

{

cout << setw(4) << i << "" << (char)i;

if((k)%12 == 0)

{

cout << "\n";

}

k++;

}

cout << "\n";

}

class der_table:public table

{

public:

der_table(int p, int q, char *m):table(p,q) {

c = m;

}

void print();

protected:

char *c;

};

void der_table::print()

{

cout << c <<"\n";

table::ascii();

}

int main()

{

der_table ob('a', 'z', "ASCII value---char"); ();

return0;

}

#include

using namespace std;

#include

class area_c1

{

protected:

double height;

double width;

public:

area_c1(double r, double s)

{

height = r;

width = s;

}

virtual double area() = 0;

};

class rectangle : public area_c1

{

public:

rectangle(double r, double s):area_c1(r, s){} virtual double area();

};

double rectangle::area()

{

return height * width;

}

class isosceles : public area_c1

{

public:

isosceles(double r, double s):area_c1(r, s){} virtual double area();

};

double isosceles::area()

{

return (height * width)/2;

}

int main()

{

rectangle r(10, 5);

isosceles i(4, 6);

area_c1 *a;

a = &r;

cout<< "矩形的面积是:" << a->area() << endl;

a = &i;

cout << "三角形的面积是:" << a->area() <

return0;

}

#include

using namespace std;

#include

class Time

{

public:

Time(int h, int m, int s)

{

hours = h;

minutes = m;

seconds = s;

}

void display()

{

cout << "出生时间:"<< hours << "时"<< minutes << "分"<< seconds << "秒" << endl;

}

protected:

int hours, minutes, seconds;

};

class Date

{

public:

Date(int m, int d, int y)

{

month = m;

day = d;

year = y;

}

void display()

{

cout << "出生年月:" << year << "年" << month << "月" << day << "日" << endl;

}

protected:

int month, day, year;

};

class Birthtime : public Time, public Date

{

public:

Birthtime(char name[], int m, int d, int y, int h, int mi, int s): Time(h, mi, s), Date(m, d, y)

{

strcpy(Childname, name);

}

void showName()

{

cout << "我的名字是: " << Childname << endl;

}

private:

char Childname[25];

《数据结构》课后习题答案

第1章绪论 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。 答案: 数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。 数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。在有些情况下,数据元素也称为元素、结点、记录等。数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。 数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。例如,学生基本信息表中的学号、姓名、性别等都是数据项。 数据对象:是性质相同的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={0,±1,±2,…},字母字符数据对象是集合C={‘A’,‘B’,…,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。 逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。 存储结构:数据对象在计算机中的存储表示,也称为物理结构。 抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。 2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 答案: 例如有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前趋和直接后继。学生记录之间的这种关系就确定了学生表的逻辑结构,即线性结构。 这些学生记录在计算机中的存储表示就是存储结构。如果用连续的存储单元(如用数组表示)来存放这些记录,则称为顺序存储结构;如果存储单元不连续,而是随机存放各个记录,然后用指针进行链接,则称为链式存储结构。 即相同的逻辑结构,可以对应不同的存储结构。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 答案: (1)集合结构 数据元素之间除了“属于同一集合”的关系外,别无其他关系。例如,确定一名学生是否为班级成员,只需将班级看做一个集合结构。 (2)线性结构 数据元素之间存在一对一的关系。例如,将学生信息数据按照其入学报到的时间先后顺序进行排列,将组成一个线性结构。 (3)树结构

机械设计基础课后习题答案全

7-1解:(1)先求解该图功的比例尺。 (2 )求最大盈亏功。根据图7.5做能量指示图。将和曲线的交点标注, ,,,,,,,。将各区间所围的面积分为盈功和亏功,并标注“+”号或“-” 号,然后根据各自区间盈亏功的数值大小按比例作出能量指示图(图7.6)如下:首先自向上做 ,表示区间的盈功;其次作向下表示区间的亏功;依次类推,直到画完最后一个封闭 矢量。由图知该机械系统在区间出现最大盈亏功,其绝对值为: (3 )求飞轮的转动惯量 曲轴的平均角速度:; 系统的运转不均匀系数:; 则飞轮的转动惯量:

图7.5图7.6 7-2 图7.7 图7.8 解:(1)驱动力矩。因为给定为常数,因此为一水平直线。在一个运动循环中,驱

动力矩所作的功为,它相当于一个运动循环所作的功,即: 因此求得: (2)求最大盈亏功。根据图7.7做能量指示图。将和曲线的交点标注, ,,。将各区间所围的面积分为盈功和亏功,并标注“+”号或“-”号,然后根据各自区间盈亏 功的数值大小按比例作出能量指示图(图7.8)如下:首先自向上做,表示区间的盈功; 其次作向下表示区间的亏功;然后作向上表示区间的盈功,至此应形成一个封闭区间。 由图知该机械系统在区间出现最大盈亏功。 欲求,先求图7.7中的长度。如图将图中线1和线2延长交于点,那么在中, 相当于该三角形的中位线,可知。又在中,,因此有: ,则

根据所求数据作出能量指示图,见图7.8,可知最大盈亏功出现在段,则 。 (3)求飞轮的转动惯量和质量。 7-3解:原来安装飞轮的轴的转速为,现在电动机的转速为,则若将飞轮 安装在电动机轴上,飞轮的转动惯量为: 7-4解:(1)求安装在主轴上飞轮的转动惯量。先求最大盈亏功。因为是最大动能与最小 动能之差,依题意,在通过轧辊前系统动能达到最大,通过轧辊后系统动能达到最小,因此: 则飞轮的转动惯量: (2)求飞轮的最大转速和最小转速。

数据结构实用教程第二版答案_徐孝凯

第一章绪习题一 1.有下列几种用二元组表示的数据结构,试画出它们分别对应的图形表示(当出现多个关系时, 对每个关系画出相应的结构图),并指出它们分别属于何种结构。 ⑴ A=(K,R)其中 K={a1,a2,a3...,an} R={} ⑵ B=(K,R)其中 K={a,b,c,d,e,f,g,h} R={r} r={,,,,,,} ⑶ C=(K,R)其中 K={a,b,c,d,f,g,h} R={r} r={,,,,,,} ⑷ D=(K,R)其中 K={1,2,3,4,5,6} R={r} r={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)} ⑸ E=(K,R)其中 K={48,25,64,57,82,36,75,43} R={r1,r2,r3} r1={<48,25>,<25,64>,<64,57>,<57,82>,<82,36>,<36,75>,<75,43>} r2={<48,25>,<48,64>,<64,57>,<64,82>,<25,36>,<82,75>,<36,43>} r3={<25,36>,<36,43>,<43,48>,<48,57>,<57,64>,<64,75>,<75,82>} 解:⑴是集合结构;⑵是线性结构;⑶⑷是树型结构;⑸散列结构。只作为参考。 2.设计二次多项式ax2+bx+c的一种抽象数据类型,假定起名为QIAdratic, 该类型的数据部分分为三个系数项a、b和c,操作部分为:(请写出下面每一个操作的具体实现)。 ⑴初始化数据成员ab和c(假定用记录类型Quadratie定义成员),每个数据成员的默认值为0。 Quadratic InitQuadratic(float aa=0,float bb=0,float cc=0); 解: Quadratic InitQuadratic(float aa,float bb,float cc) { Quadratic q; q.a=aa; q.b=bb; q.c=cc; return q; }

机械设计基础课后习题答案

精品 机械设计基础课后习题解答参考 1-2题 ,7,5===h l P P n 107253=-?-?=F 机构有1个主动构件,所以机构有确定运动。 1-3题 1,11, 8===h l P P n 1111283=-?-?=F 机构有1个主动构件,所以机构有确定运动。 1-4题 0,11, 8===h l P P n 2011283=-?-?=F 机构有2个主动构件,所以机构有确定运动。 1-5题 1,8, 6===h l P P n 118263=-?-?=F 机构有1个主动构件,所以机构有确定运动。 2-1题 (a )双曲柄机构; (b )曲柄摇杆机构; (c )双摇杆机构; (d )双摇杆机构。 2-2题 0≠e 时,曲柄条件:e l l BC AB -<; 0=e 时, 曲柄条件:BC AB l l <。 2-4题

精品 极位夹角 ?=+-??=+-?=3636.161 2.11 2.118011180K K θ

精品 2-7题 极位夹角?=+-??=+-? =361 5.11 5.118011180K K θ 3-2题

精品 4-1题 m z m h z d a a )2()2(* +=+= 所以 25.2100 225 2== +=z d m a mm 主要几何尺寸计算(略)。 4-2题略 4-3题 分锥角 "43'25684287.6817 43arctan arctan 122?=?===z z δ "17'34215713.2190221?=?=-?=-∑=δδδ 分度圆 5117311=?==mz d mm ; 12943322=?==mz d mm 齿顶圆 580.565713.21cos 3251cos 2111=???+=+=δm d d a mm 206.1314287.68cos 32129cos 2222=???+=+=δm d d a mm 齿根圆 304 .445713.21cos 34.251cos 4.2111=???-=-=δm d d f mm 353.1264287.68cos 34.2129cos 4.2222=???-=-=δm d d f mm 锥距 358.6943172 32222 221=+?=+= z z m R mm 齿顶角 "44'4237122.3358.693 arctan arctan ?=?===R h a a θ 齿根角 " 7'2744519.4358 .696 .3arctan arctan ?=?===R h f f θ

机械设计课后习题答案及解析

3-1某材料的对称循环弯曲疲劳极限MPa 1801=-σ,取循环基数6 0105?=N ,9=m ,试求循环次数N 分别为7 000、25 000、620 000次时的有限寿命弯曲疲劳极限。 [解] MPa 6.37310 710518093 6 9 10111=???==--N N σσN MPa 3.324105.210 51809469 20112=???==--N N σσN MPa 0.227102.610 518095 69 30113=???==--N N σσN 3-2已知材料的力学性能为MPa 260=s σ,MPa 1701=-σ,2.0=σΦ,试绘制此材料的简化的等寿命寿命曲线。 [解] )170,0(' A )0,260(C 0 12σσσΦσ-= -Θ σ Φσσ+= ∴-121 MPa 33.2832 .01170 21210=+?=+= ∴-σΦσσ 得)2 33.283,233.283(D ' ,即)67.141,67.141(D ' 根据点)170,0('A ,)0,260(C ,)67.141,67.141(D ' 按比例绘制该材料的极限应力图如下图所示

3-4 圆轴轴肩处的尺寸为:D =72mm ,d =62mm ,r =3mm 。如用题3-2中的材料,设其强度极限σB =420MPa ,精车,弯曲,βq =1,试绘制此零件的简化等寿命疲劳曲线。 [解] 因 2.14554 ==d D ,067.045 3==d r ,查附表3-2,插值得88.1=ασ,查附图3-1得78.0≈σq ,将所查值代入公式,即 ()()69.1188.178.0111k =-?+=-α+=σσσq 查附图3-2,得75.0=σε;按精车加工工艺,查附图3-4,得91.0=σβ,已知1=q β,则 35.21 1191.0175.069.1111k =???? ??-+=? ??? ??-+=q σσσσββεK ( )()()35.267.141,67.141,0,260,35 .2170 ,0D C A ∴ 根据()()()29.60,67.141,0,260,34.72,0D C A 按比例绘出该零件的极限应力线图如下图 3-5 如题3-4中危险截面上的平均应力MPa 20m =σ,应力幅MPa 20a =σ,试分别按①C r =② C σ=m ,求出该截面的计算安全系数ca S 。 [解] 由题3-4可知35.2,2.0MPa,260MPa,170s 1-====σσK Φσσ (1)C r = 工作应力点在疲劳强度区,根据变应力的循环特性不变公式,其计算安全系数 28.220 2.03035.2170 m a 1-=?+?=+= σΦσK σS σσca (2)C σ=m 工作应力点在疲劳强度区,根据变应力的平均应力不变公式,其计算安全系数 ()()()() 81 .1203035.220 2.035.2170m a m 1-=+??-+=+-+= σσσσca σσK σΦK σS

严蔚敏版数据结构课后习题答案-完整版

第1章绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据

类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。 1.3 设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 解: ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C)

数据结构(第二版)课后习题答案(王红梅主编)

第 1 章绪论 课后习题讲解 1. 填空 ⑴()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 【解答】数据元素 ⑵()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。 【解答】数据项,数据元素 【分析】数据结构指的是数据元素以及数据元素之间的关系。 ⑶从逻辑关系上讲,数据结构主要分为()、()、()和()。【解答】集合,线性结构,树结构,图结构 ⑷数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:() 和()。 【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的

关系 ⑸算法具有五个特性,分别是()、()、()、()、()。 【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性 ⑹算法的描述方法通常有()、()、()和()四种,其中,()被称为算法语言。 【解答】自然语言,程序设计语言,流程图,伪代码,伪代码 ⑺在一般情况下,一个算法的时间复杂度是()的函数。 【解答】问题规模 ⑻设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若 为n*log25n,则表示成数量级的形式为()。 【解答】Ο(1),Ο(nlog2n) 【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。 2. 选择题

⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关 系是由()表示的。 A 线性结构 B 非线性结构 C 存储位置 D 指针 【解答】C,D 【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数 组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中 的指针表示。 ⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不 能相互继承。则表示该遗产继承关系的最合适的数据结构应该是()。 A 树 B 图 C 线性表 D 集合

(完整word版)数据结构课后习题及答案

填空题(10 * 1 '= 10') 一、概念题 22当对一个线性表经常进行的是插入和删除操作时,采用链式存储结构为宜。 23当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,最好采用顺序存储结构。 2.6. 带头结点的单链表L中只有一个元素结点的条件是L->Next->Next==Null。 36循环队列的引入,目的是为了克服假溢出。 4.2. 长度为0的字符串称为空串。 4.5. 组成串的数据元素只能是字符。 4.8. 设T和P是两个给定的串,在T中寻找等于P的子串的过程称为模式匹配,又称P为模式。 7.2. 为了实现图的广度优先搜索,除一个标志数组标志已访问的图的结点外,还需要队列存放被访问的结点实现遍历。 5.7. 广义表的深度是广义表中括号的重数 7.8. 有向图G可拓扑排序的判别条件是有无回路。 7.9. 若要求一个稠密图的最小生成树,最好用Prim算法求解。 8.8. 直接定址法法构造的哈希函数肯定不会发生冲突。 9.2. 排序算法所花费的时间,通常用在数据的比较和交换两大操作。 1.1. 通常从正确性、可读性、健壮性、时空效率等几个方面评价算法的(包括程序)的质量。 1.2. 对于给定的n元素,可以构造出的逻辑结构有集合关系、线性关系树形关系、图状关系四种。 1.3. 存储结构主要有顺序存储、链式存储、索引存储、散列存储四种。 1.4. 抽象数据类型的定义仅取决于它的一组逻辑特性,而与存储结构无关,即不论其内部结构如何变化,只要它的数学特性不 变,都不影响其外部使用。 1.5. 一个算法具有五大特性:有穷性、确定性、可行性,有零个或多个输入、有一个或多个输入。 2.8. 在双向链表结构中,若要求在p指针所指的结点之前插入指针为s所指的结点,则需执行下列语句: s_>prior= p_>prior; s->next= p; p_>prior- next= s; p_>prior= s;。 2.9. 在单链表中设置头结点的作用是不管单链表是否为空表,头结点的指针均不空,并使得对单链表的操作 (如插入和删除)在各种情况下统一。 3.1. 队列是限制在表的一端进行插入和在另一端进行删除的线性表,其运算遵循先进先出原则。 3.2 .栈是限定尽在表位进行插入或删除操作的线性表。 3.5. 在链式队列中,判定只有一个结点的条件是(Q->rear==Q->fro nt)&&(Q->rear!=NULL) 。 3.7. 已知链队列的头尾指针分别是f和r,则将x入队的操作序列是node *p=(node *)malloc(node); p->next=x;] p_>next=NULL; if(r) {r->next=p; r=p;} else {r=p; f=p;}。 3.8. 循环队列的满与空的条件是(rear+1)%MAXSIZE==fornt 和(fron t=-1 &&rear+ ^=MAXSIZE) 。 4.3. 串是一种特殊的线性表,其特殊性表现在数据元素都是由字符组成。 4.7. 字符串存储密度是串值所占存储位和实际分配位的比值,在字符串的链式存储结构中其结点大小是可变的。 5.3. 所谓稀疏矩阵指的是矩阵中非零元素远远小于元素总数,则称该矩阵为矩阵中非零元素远远小于元素总数,则称该矩阵为稀 疏矩阵。 5.4. —维数组的逻辑结构是线性结构,存储结构是顺序存储结构;对二维或多维数组,分别按行优先和列优先两种?不同的存储 方式。 7.4. 在有向图的邻接矩阵表示中,计算第i个顶点入度的方法是求邻接矩阵中第?i列非10元素的个数。 7.10. AOV网中,结点表示活动,边表示活动之间的优先关系,AOE网中,结点表示事件,边表示活动。 9.1. 按排序过程中依据不同原则对内部排序方法进行分类,主要有选择排序、交换排序、插入排序归并排序等4类。 9.3 .在堆排序、快速排序和归并排序中若只从排序结果的稳定性考虑,则应选择归并排序方法;若只从平均情况下 排序最快考虑,则应选择快速排序方法;若只从最坏情况下排序最快且要节省类存考虑,则应选择堆排序方法。 9.4. 直接插入排序用监视哨的作用是存当前要的插入记录,可又省去查找插入位置时对是否出界的判断。 9.6. 设表中元素的初始状态是按键值递增的,则直接插入排序最省时间,快速排序最费时间。 4.9. 下列程序判断字符串s是否对称,对称则返回1,否则返回0;如?(abba”返回1, ? (”abab”)返回0. Int f (char*s) { Int i=0,j=0;

数据结构课程 课后习题答案

《数据结构简明教程》练习题及参考答案 练习题1 1. 单项选择题 (1)线性结构中数据元素之间是()关系。 A.一对多 B.多对多 C.多对一 D.一对一 答:D (2)数据结构中与所使用的计算机无关的是数据的()结构。 A.存储 B.物理 C.逻辑 D.物理和存储 答:C (3)算法分析的目的是()。 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 答:C (4)算法分析的两个主要方面是()。 A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 答:A (5)计算机算法指的是()。 A.计算方法 B. 排序方法 C.求解问题的有限运算序列 D.调度方法 答:C (6)计算机算法必须具备输入、输出和()等5个特性。 A.可行性、可移植性和可扩充性 B.可行性、确定性和有穷性 C.确定性、有穷性和稳定性 D.易读性、稳定性和安全性 答:B 2. 填空题 (1)数据结构包括数据的①、数据的②和数据的③这三个方面的内容。 答:①逻辑结构②存储结构③运算 (2)数据结构按逻辑结构可分为两大类,它们分别是①和②。 答:①线性结构②非线性结构 (3)数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。

答:①数据元素 ②关系 (4)在线性结构中,第一个结点 ① 前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点 ② 后继结点,其余每个结点有且只有1个后继结点。 答:①没有 ②没有 (5)在树形结构中,树根结点没有 ① 结点,其余每个结点有且只有 ② 个前驱结点;叶子结点没有 ③ 结点,其余每个结点的后继结点数可以是 ④ 。 答:①前驱 ②1 ③后继 ④任意多个 (6)在图形结构中,每个结点的前驱结点数和后继结点数可以是( )。 答:任意多个 (7)数据的存储结构主要有四种,它们分别是 ① 、 ② 、 ③ 和 ④ 存储结构。 答:①顺序 ②链式 ③索引 ④哈希 (8)一个算法的效率可分为 ① 效率和 ② 效率。 答:①时间 ②空间 3. 简答题 (1)数据结构和数据类型两个概念之间有区别吗? 答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素的集合。数据类型不仅定义了一组数据元素,而且还在其上定义了一组操作。 (2)简述线性结构、树形结构和图形结构的不同点。 答:线性结构反映结点间的逻辑关系是一对一的,树形线性结构反映结点间的逻辑关系是一对多的,图在结构反映结点间的逻辑关系是多对多的。 (3)设有采用二元组表示的数据逻辑结构S=(D,R),其中D={a ,b ,…,i },R={(a ,b ),(a ,c ),(c ,d ),(c ,f ),(f ,h ),(d ,e ),(f ,g ),(h ,i )},问相对于关系R ,哪些结点是开始结点,哪些结点是终端结点? 答:该逻辑结构为树形结构,其中a 结点没有前驱结点,称为根结点,b 、e 、g 、i 结点没有后继结点,是终端结点,也称为叶子结点。 (4)以下各函数是算法中语句的执行频度,n 为问题规模,给出对应的时间复杂度: T 1(n )=n log 2n -1000log 2n T 2(n )=3log 2n -1000log 2n T 3(n )=n 2 -1000log 2n T 4(n )=2n log 2n -1000log 2n 答:T 1(n )=O(n log 2n ),T 2(n )=O( ),T 3(n )=O(n 2 ),T 4(n )=O(n log 2n )。 (5)分析下面程序段中循环语句的执行次数。 int j=0,s=0,n=100; do { j=j+1; s=s+10*j; } while (j

新版《机械设计基础》课后习题参考答案

机械设计基础习题参考答案 机械设计基础课程组编 武汉科技大学机械自动化学院

第2章 平面机构的自由度和速度分析 2-1画运动简图。 2-2 图2-38所示为一简易冲床的初拟设计方案。设计者的思路是:动力由齿轮1输入,使轴A 连续回转;而固装在轴A 上的凸轮2与杠杆3组成的凸轮机构将使冲头4上下运动以达到冲压的目的。 4 3 5 1 2 解答:原机构自由度F=3?3- 2 ?4-1 = 0,不合理 ,

2-3 试计算图2-42所示凸轮—连杆组合机构的自由度。 b) a) A E M D F E L K J I F B C C D B A 解答:a) n=7; P l=9; P h=2,F=3?7-2 ?9-2 =1 L处存在局部自由度,D处存在虚约束 b) n=5; P l=6; P h=2,F=3?5-2 ?6-2 =1 E、B处存在局部自由度,F、C处存在虚约束2-4 试计算图2-43所示齿轮—连杆组合机构的自由度。 B D C A (a) C D B A (b) 解答:a) n=4; P l=5; P h=1,F=3?4-2 ?5-1=1 A处存在复合铰链 b) n=6; P l=7; P h=3,F=3?6-2 ?7-3=1 B、C、D处存在复合铰链 2-5 先计算如图所示平面机构的自由度。并指出图中的复合铰链、局部自由度和虚约束。

A B C D E 解答: a) n=7; P l =10; P h =0,F=3?7-2 ?10 = 1 C 处存在复合铰链。 b) n=7; P l =10; P h =0,F=3?7-2 ?10 = 1 B D E C A c) n=3; P l =3; P h =2,F=3?3 -2 ?3-2 = 1 D 处存在局部自由度。 d) n=4; P l =5; P h =1,F=3?4 -2 ?5-1 = 1 A B C D E F G G' H A B D C E F G H I J e) n=6; P l =8; P h =1,F=3?6 -2 ?8-1 = 1 B 处存在局部自由度,G 、G'处存在虚约束。 f) n=9; P l =12; P h =2,F=3?9 -2 ?12-2 = 1 C 处存在局部自由度,I 处存在复合铰链。

最全数据结构课后习题答案耿国华版

绪论第1章 √(2)×(3)2.(1)×C )C(3(1)A(2)3. 的语句频度5.计算下列程序中x=x+1for(i=1;i<=n;i++) for(j=1;j<=i;j++) for(k=1;k<=j;k++) x=x+1; 的语句频度为:【解答】x=x+1=n(n+1)(n+2)/6 )+……+(1+2+……+n)T(n)=1+(1+2)+(1+2+3 并确定算法中每一),p(xx+ax+a+…….+ax的值6.编写算法,求一元多项式p(x)=a n20nn20n1规定算法中不能使用要求时间复杂度尽可能小,语句的执行次数和整个算法的时间复杂度,算法的输入和输出)。n,输出为P(x求幂函数。注意:本题中的输入为a(i=0,1,…n)、x和0in采用下列方法1)通过参数表中的参数显式传递()通过全局变量隐式传递。讨论两种方法的优缺点,并在算法中以你认为较好的一种实(2 现输入输出。【解答】1)通过参数表中的参数显式传递(优点:当没有调用函数时,不占用存,调用结束后形参被释放,实参维持,函数通用 性强,移置性强。缺点:形参须与实参对应,且返回值数量有限。 )通过全局变量隐式传递(2 优点:减少实参与形参的个数,从而减少存空间以及传递数据时的时间消耗 缺点:函数通用性降低,移植性差 算法如下:通过全局变量隐式传递参数PolyValue() { int i,n; float x,a[],p; nn=”);printf(“\ scanf(“%f”,&n); nx=”);printf(“\ scanf(“%f”,&x); for(i=0;i

机械设计复习题-标准答案

2012年机械设计自学考试备考试题 第二章 一、选择填空: 1.如果危险截面上的应力超过零件的强度极限,则发生的失效形式为 。C A . 表面破坏 B. 残余变形 C . 整体断裂 D. 功能失效 2.零件设计时,限制零件中的应力不超过允许的限度的设计准则称为 。A A. 强度准则 B. 刚度准则 C . 寿命准则 D. 振动稳定性准则 3.按照机器的组成原理,变速箱是汽车的 。B A . 原动机 B. 传动部分 C. 执行部分 D. 控制系统 4.为了防止零件发生破坏,应采用的设计准则是 。D A.刚度准则 B.寿命准则 C.振动稳定性准则 D. 强度准则 二、填空题: 1.传动件包括带传动、链传动、摩擦轮传动、蜗杆传动和_________。齿轮传动 2.驱动机器完成预定功能的部分称为________。原动机 3.金属材料尤其是钢铁使用最广;在机械产品中钢铁材料占_____。90%以上 4. 描述材料的疲劳特性可用最大应力、应力循环次数和______。应力比(或循环特性) 5.机械零件制造中使用最广的金属材料是_________。钢铁 6.机器的基本组成部分为原动机部分、传动部分和 。执行部分 7.按照机器的组成原理,发动机是汽车的 。原动机部分 8.如果作用于零件上的应力超过材料的屈服极限,则零件将发生 。塑性变形 9. 一部机器的质量基本上取决于________________。设计阶段 10.机器的设计阶段是决定机器质量的________________。关键 第三章 一、选择填空: 1.零件表面经淬火、渗氮、喷丸、滚子碾压等处理后,其疲劳强度______。B A.降低 B .提高 C. 不变 D. 提高或降低视处理方法而定 2.应力的循环特性(应力比)常用“r ”表示,其值为________。D B .a m σσ?C ? 3.变应力的应力幅值a σ为________。 A A. 2min max σσ- B. 2min max σσ+ C . 2max σ?D.min max σσ- 4.对称循环应力,其循环特性“r ”值是________。 D A.1? B.0.5 C. 0 D .-1 5.下列四种叙述中正确的是______。D A.变应力只能由变载荷产生 B.静载荷不能产生变应力

机械设计基础课后习题与答案

机械设计基础 1-5至1-12 指出(题1-5图~1-12图)机构运动简图中的复合铰链、局部自由度和虚约束,计算各机构的自由度,并判断是否具有确定的运动。

1-5 解 F =H L P P n --23=18263-?-?=1 1-6 解F =H L P P n --23=111283-?-?=1 1-7 解F =H L P P n --23=011283-?-?=2 1-8 解F =H L P P n --23=18263-?-?=1 1-9 解F =H L P P n --23=24243-?-?=2 1-10 解F =H L P P n --23=212293-?-?=1 1-11 解F =H L P P n --23=24243-?-?=2 1-12 解F =H L P P n --23=03233-?-?=3 2-1 试根据题2-1图所标注的尺寸判断下列铰链四杆机构是曲柄摇杆机构、双曲柄机构还是双摇杆机构。 题2-1图

答 : a )160907015011040=+<=+,且最短杆为机架,因此是双曲柄机构。 b )1707010016512045=+<=+,且最短杆的邻边为机架,因此是曲柄摇杆机构。 c )132627016010060=+>=+,不满足杆长条件,因此是双摇杆机构。 d )1909010015010050=+<=+,且最短杆的对边为机架,因此是双摇杆机构。 2-3 画出题2-3图所示个机构的传动角和压力角。图中标注箭头的构件为原动件。 题2-3图 解: 2-5 设计一脚踏轧棉机的曲柄摇杆机构,如题2-5图所示,要求踏板CD 在水平位置上下各摆10度,且500CD l mm =,1000AD l mm =。(1)试用图解法求曲柄AB 和连杆BC 的长度;(2)用式(2-6)和式(2-6)’计算此机构的最小传动角。

数据结构课后习题答案清华大学出版社殷人昆

1-1什么是数据? 它与信息是什么关系? 【解答】 什么是信息?广义地讲,信息就是消息。宇宙三要素(物质、能量、信息)之一。它是现实世界各种事物在人们头脑中的反映。此外,人们通过科学仪器能够认识到的也是信息。信息的特征为:可识别、可存储、可变换、可处理、可传递、可再生、可压缩、可利用、可共享。 什么是数据?因为信息的表现形式十分广泛,许多信息在计算机中不方便存储和处理,例如,一个大楼中4部电梯在软件控制下调度和运行的状态、一个商店中商品的在库明细表等,必须将它们转换成数据才能很方便地在计算机中存储、处理、变换。因此,数据(data)是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。在计算机中,信息必须以数据的形式出现。 1-2什么是数据结构? 有关数据结构的讨论涉及哪三个方面? 【解答】 数据结构是指数据以及相互之间的关系。记为:数据结构= { D, R }。其中,D是某一数据对象,R是该对象中所有数据成员之间的关系的有限集合。 有关数据结构的讨论一般涉及以下三方面的内容: ①数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构; ②数据成员极其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构; ③施加于该数据结构上的操作。 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储不是一码事,是与计算机存储无关的。因此,数据的逻辑结构可以看作是从具体问题中抽象出来的数据模型,是数据的应用视图。数据的存储结构是逻辑数据结构在计算机存储器中的实现(亦称为映像),它是依赖于计算机的,是数据的物理视图。数据的操作是定义于数据逻辑结构上的一组运算,每种数据结构都有一个运算的集合。例如搜索、插入、删除、更新、排序等。 1-3数据的逻辑结构分为线性结构和非线性结构两大类。线性结构包括数组、链表、栈、 队列、优先级队列等; 非线性结构包括树、图等、这两类结构各自的特点是什么? 【解答】 线性结构的特点是:在结构中所有数据成员都处于一个序列中,有且仅有一个开始成员和一个终端成员,并且所有数据成员都最多有一个直接前驱和一个直接后继。例如,一维数组、线性表等就是典型的线性结构 非线性结构的特点是:一个数据成员可能有零个、一个或多个直接前驱和直接后继。例如,树、图或网络等都是典型的非线性结构。 1-4.什么是抽象数据类型?试用C++的类声明定义“复数”的抽象数据类型。要求 (1) 在复数内部用浮点数定义它的实部和虚部。 (2) 实现3个构造函数:缺省的构造函数没有参数;第二个构造函数将双精度浮点数赋给复数的实部,虚部置为0;第三个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。 (3) 定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。

机械设计课后习题答案 徐锦康 top

机械设计答案 第1章机械设计概论 1-2 设计机器时应满足哪些基本要求? 答:1、功能要求 满足机器预定的工作要求,如机器工作部分的运动形式、速度、运动精度和平稳性、需要传递的功率,以及某些使用上的特殊要求(如高温、防潮等)。 2、安全可靠性要求 (1)使整个技术系统和零件在规定的外载荷和规定的工作时间内,能正常工作而不发生断裂、过度变形、过度磨损、不丧失稳定性。 (2)能实现对操作人员的防护,保证人身安全和身体健康。 (3)对于技术系统的周围环境和人不致造成危害和污染,同时要保证机器对环境的适应性。 3、经济性 在产品整个设计周期中,必须把产品设计、销售及制造三方面作为一个系统工程来考虑,用价值工程理论指导产品设计,正确使用材料,采用合理的结构尺寸和工艺,以降低产品的成本。设计机械系统和零部件时,应尽可能标准化、通用化、系列化,以提高设计质量、降低制造成本。 4、其他要求 机械系统外形美观,便于操作和维修。此外还必须考虑有些机械由于工作环境和要求不同,而对设计提出某些特殊要求,如食品卫生条件、耐腐蚀、高精度要求等。 1-4 机械零件的计算准则与失效形式有什么关系?常用的设计准则有哪些?它们各针对什么失效形式? 答:在设计中,应保证所设计的机械零件在正常工作中不发生任何失效。为此对于每种失效形式都制定了防止这种失效应满足的条件,这样的条件就是所谓的工作能力计算准则。它是设计机械零件的理论依据。 常用的设计准则有: 1、强度准则:确保零件不发生断裂破坏或过大的塑性变形,是最基本的设计准则。 2、刚度准则:确保零件不发生过大的弹性变形。 3、寿命准则:通常与零件的疲劳、磨损、腐蚀相关。 4、振动稳定性准则:高速运转机械的设计应注重此项准则。 5、可靠性准则:当计及随机因素影响时,仍应确保上述各项准则。 1-7 机械零件设计的一般步骤有哪些?其中哪个步骤对零件尺寸的确定起决定性的作用?

数据结构课后习题及答案

填空题(10 * 1’ = 10’) 一、概念题 .当对一个线性表经常进行的是插入和删除操作时,采用链式存储结构为宜。 .当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,最好采用顺序存储结构。 .带头结点的单链表L中只有一个元素结点的条件是L->Next->Next==Null。 .循环队列的引入,目的是为了克服假溢出。 .长度为0的字符串称为空串。 .组成串的数据元素只能是字符。 .设T和P是两个给定的串,在T中寻找等于P的子串的过程称为模式匹配,又称P为模式。 .为了实现图的广度优先搜索,除一个标志数组标志已访问的图的结点外,还需要队列存放被访问的结点实现遍历。 .广义表的深度是广义表中括号的重数 .有向图G可拓扑排序的判别条件是有无回路。 .若要求一个稠密图的最小生成树,最好用Prim算法求解。 . 直接定址法法构造的哈希函数肯定不会发生冲突。 .排序算法所花费的时间,通常用在数据的比较和交换两大操作。 .通常从正确性﹑可读性﹑健壮性﹑时空效率等几个方面评价算法的(包括程序)的质量。 .对于给定的n元素,可以构造出的逻辑结构有集合关系﹑线性关系树形关系﹑图状关系四种。 .存储结构主要有顺序存储﹑链式存储﹑索引存储﹑散列存储四种。 .抽象数据类型的定义仅取决于它的一组逻辑特性,而与存储结构无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。 .一个算法具有五大特性:有穷性﹑确定性﹑可行性,有零个或多个输入﹑有一个或多个输入。 .在双向链表结构中,若要求在p指针所指的结点之前插入指针为s所指的结点,则需执行下列语句:s->prior= p->prior; s->next= p; p->prior- next= s; p->prior= s;。 .在单链表中设置头结点的作用是不管单链表是否为空表,头结点的指针均不空,并使得对单链表的操作(如插入和删除)在各种情况下统一。 .队列是限制在表的一端进行插入和在另一端进行删除的线性表,其运算遵循先进先出原则。 .栈是限定尽在表位进行插入或删除操作的线性表。 .在链式队列中,判定只有一个结点的条件是(Q->rear==Q->front)&&(Q->rear!=NULL)。 .已知链队列的头尾指针分别是f和r,则将x入队的操作序列是node *p=(node *)malloc(node); p->next=x; p->next=NULL; if(r) {r->next=p; r=p;} else {r=p; f=p;}。 .循环队列的满与空的条件是(rear+1)%MAXSIZE==fornt和(front=-1&&rear+1==MAXSIZE)。 .串是一种特殊的线性表,其特殊性表现在数据元素都是由字符组成。 .字符串存储密度是串值所占存储位和实际分配位的比值,在字符串的链式存储结构中其结点大小是可变的。 .所谓稀疏矩阵指的是矩阵中非零元素远远小于元素总数,则称该矩阵为矩阵中非零元素远远小于元素总数,则称该矩阵为稀疏矩阵。 .一维数组的逻辑结构是线性结构,存储结构是顺序存储结构;对二维或多维数组,分别按行优先和列优先两种不同的存储方式。 .在有向图的邻接矩阵表示中,计算第i个顶点入度的方法是求邻接矩阵中第i列非0元素的个数。 网中,结点表示活动,边表示活动之间的优先关系,AOE网中,结点表示事件,边表示活动。 .按排序过程中依据不同原则对内部排序方法进行分类,主要有选择排序﹑交换排序﹑插入排序归并排序等4类。 .在堆排序、快速排序和归并排序中若只从排序结果的稳定性考虑,则应选择归并排序方法;若只从平均情况下排序最快考虑,则应选择快速排序方法;若只从最坏情况下排序最快且要节省类存考虑,则应选择堆排序方法。 .直接插入排序用监视哨的作用是存当前要的插入记录,可又省去查找插入位置时对是否出界的判断。 .设表中元素的初始状态是按键值递增的,则直接插入排序最省时间,快速排序最费时间。 .下列程序判断字符串s是否对称,对称则返回1,否则返回0;如?(“abba”)返回1,?(”abab”)返回0. Int f (char*s) { Int i=0,j=0; 求串长*/

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