当前位置:文档之家› C primer plus(第五版)课后编程练习答案(完整)

C primer plus(第五版)课后编程练习答案(完整)

C primer plus(第五版)课后编程练习答案(完整)
C primer plus(第五版)课后编程练习答案(完整)

编程练习

1.您刚刚被MacroMuscle有限公司(Software for Hard Bodies)聘用。该公司要进入欧洲市场,需要一个将英寸转换为厘米(1英寸=2.54 cm)的程序。他们希望建立的该程序可提示用户输入英寸值。您的工作是定义程序目标并设计该程序(编程过程的第1步和第2步)。

1.将英寸值转化为厘米值

2.显示“输入英寸值”->得到该值->转换为厘米值->存储->告知用户已结束

第二章 C语言概述

编程练习

1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓。输出应如下所示(当然里面要换成您的姓名):

Anton Bruckner

Anton

Bruckner

Anton Bruckner

第一个输出语句

第二个输出语句

仍然是第二个输出语句

第三个和第四个输出语句

#include

int main(void)

{

printf("He Jin\n");

printf("He\n");

printf("Jin\n");

printf("He Jin\n");

}

2.编写一个程序输出您的姓名及地址。

#include

int main(void)

{

printf("Name:He Jin\n");

printf("Address:CAUC\n");

return(0);

}

3.编写一个程序,把您的年龄转换成天数并显示二者的值。不用考虑平年( fractional year)和闰年(leapyear)的问题。

#include

int main(void)

{

int age=22;

printf("Age:%d\n",age);

printf("Day:%d\n",age*356);

return(0);

}

4.编写一个能够产生下面输出的程序:

For he's a jolly good fellow!

For he's a jolly good fellow!

For he's a jolly good fellow!

Which nobody can deny!

程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次:另一个用于把最后一行输出一次。

#include

void printf1(void);

void printf2(void);

int main(void)

{

printf1();

printf1();

printf1();

printf2();

return(0);

}

void printf1(void)

{

printf("For he's a jolly good fellow!\n");

}

void printf2(void)

{

printf("Which nobody can deny!\n");

}

5.编写一个程序,创建一个名为toes的整数变量。让程序把toes设置为10。再让程序计算两个toes的和以及toes的平方。程序应该输出所有的3个值,并分别标识它们。

#include

int main(void)

{

int toes=10;

int toes_add;

int toes_square;

toes_add=toes+toes;

toes_square=toes*toes;

printf("toes=%d\ntoes_add=%d\ntoes_square=%d\n",toes,toes_add,toes_square); return(0);

}

6.编写一个能够产生下列输出的程序:

Smile ! Smile ! Smile

Smile ! Smile !

Smile !

在程序中定义一个能显示字符串smile卜一次的函数,并在需要时使用该函数。

#include

void display(void);

int main(void)

{

display();

display();

display();

printf("\n");

display();

display();

printf("\n");

display();

printf("\n");

return(0);

}

void display(void)

{

printf("Smile!");

}

7.编写一个程序,程序中要调用名为one_three()的函数。该函数要在一行中显示单词"one",再调用two()函数,然后再在另一行中显示单词"three"。函数two()应该能在一行中显示单词"two"。main()函数应该在调用one_three()函数之前显示短语"starting now:",函数调用之后要显示"done!"o这样,最后的输出结果应如下所示:

starting now

one

two

three

done !

#include

void one_three(void);

void two(void);

int main(void)

{

printf("starting now:\n");

one_three();

printf("done!\n");

return(0);

}

void one_three(void)

{

printf("One\n");

two();

printf("Three\n");

}

void two(void)

{

printf("Two\n");

}

第三章数据和C

编程练习

1.通过试验的方法(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。

#include

int main(void)

{

unsigned int a=4294967295;

float b=3.4E38;

float c=b*10;

float d=0.1234E-2;

printf("%u+1=%u\n",a,a+1);

printf("%e*10=%e\n",b,c);

printf("%f/10=%f\n",d,d/10);

return(0);

}

2.编写一个程序,要求输入一个ASCII码值(如66),然后输出相应的字符。

#include

int main(void)

{

char a;

scanf("%d",&a);

printf("%c\n",a);

return(0);

}

3.编写一个程序,发出警报声,并打印下列文字:

Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that!"

#include

int main(void)

{

printf("\aStartled by the sudden sound,Sally shouted,\"By the Great pumpkin,what was

that!\"\n");

return(0);

}

4.编写一个程序,读入一个浮点数,并分别以小数形式和指数形式打印。输出应如同下面格式(实际显示的指数位数也许因系统而不同):

The input is 21.290000 or 2.129000e+001.

#include

int main(void)

{

float a;

scanf("%f",&a);

printf("The input is %f or %e\n",a,a);

return(0);

}

5.一年约有3.156×l07S。编写一个程序,要求输入您的年龄,然后显示该年龄合多少秒。

#include

int main(void)

{

float a;

printf("Please input your age:");

scanf("%f",&a);

printf("Your age is %e seconds\n",a*3.156E7);

return(0);

}

6.1个水分子的质量约为3.0×10^-23g,l夸脱水大约有950g。编写一个程序,要求输入水的夸脱数,

然后显示这么多水中包含多少个水分子。

#include

int main(void)

{

float a;

printf("Please input how much quarts the water is:");

scanf("%f",&a);

printf("%f quarts water has %e molecules.\n",a,a*950/3E-23);

return(0);

}

7. 1英寸等于2.54cm。编写一个程序,要求输入您的身高(以英寸为单位),然后显示该身高值等于

多少厘米。如果您愿意,也可以要求以厘米为单位输入身高,然后以英寸为单位进行显示。

#include

int main(void)

{

float a;

printf("Please input your height by inches:");

scanf("%f",&a);

printf("Your height is %fcm.\n",a*2.54);

return(0);

}

第4章字符串和格式化输入/输出

编程练习

1.编写一个程序,要求输入名字和姓氏,然后以“名字,姓氏”的格式打印。

#include

int main(void)

{

char surname[20],firstname[20];

printf("Please input your firstname and surname:");

scanf("%s",firstname);

scanf("%s",surname);

printf("You are %s,%s.\n",firstname,surname);

return(0);

}

2.编写一个程序,要求输入名字,并执行以下操作:

a.把名字引在双引号中打印出来。

b.在宽度为20个字符的字段内打印名字,并且整个字段引在引号内。

c. 在宽度为20个字符的字段的左端打印名字,并且整个字段引在引号内。

d.在比名字宽3个字符的字段内打印它。

#include

#include

int main(void)

{

char name[20];

int width;

printf("Please input your name:");

scanf("%s",name);

printf("A:\"%s\"\n",name);

printf("B:\"%20s\"\n",name);

printf("C:\"%-20s\"\n",name);

width=strlen(name)+3;

printf("D:\"%*s\"\n",width,name);//*对应width

return(0);

}

3.编写一个程序,读取一个浮点数,并且首先以小数点记数法,然后以指数记数法打印之。输出使用下列形式(在指数位置显示的数字的位数可能会随系统而不同):

a. The input is 21.3 or 2.1e+001.

b. The input is +21.290 or 2.129E+001.

#include

int main(void)

{

float a;

printf("Please input a float:");

scanf("%f",&a);

printf("a.The input is %.1f or %.1e\n",a,a);

printf("b.The input is %+.3f or %.3E\n",a,a);

return(0);

}

4.编写—个程序,要求输入身高(以英寸为单位)和名字,然后以如下形式显示:

Dabney, you are 6.208 feet tall

使用float类型,使用/作为除号。如果您愿意,可以要求以厘米为单位输入身高,并以米为单位进行显示。

#include

int main(void)

{

float height;

char name[20];

printf("Please input your height by inches:");

scanf("%f",&height);

printf("Please input your name:");

scanf("%s",name);

printf("%s,you are %f feet tall\n",name,height/12);

return(0);

}

5.编写一个程序,首先要求用户输入名字,然后要求用户输入姓氏。在一行打印输入的姓名,在下

行打印每个名字中字母的个数。把字母个数与相应名字的结尾对齐,如下所示:

Melissa Honeybee

7 8

然后打印相同的信息,但是字母个数与相应单词的开始对齐。

#include

#include

int main(void)

{

char surname[20],firstname[20];

printf("Please input your firstname and surname:");

scanf("%s",firstname);

scanf("%s",surname);

printf("%s %s.\n",firstname,surname);

printf("%*d %*d\n",strlen(firstname),strlen(firstname),strlen(surname),strlen(surname));//*对应宽度变量

printf("%s %s.\n",firstname,surname);

printf("%-*d %-*d\n",strlen(firstname),strlen(firstname),strlen(surname),strlen(surname));// *对应宽度变量

return(0);

}

6.编写一个程序,设置一个值为1.0/3.0的double类型变量和一个值为1.0/3.0的float类型变量。每个变量的值显示三次:一次在小数点右侧显示4个数字,一次在小数点右侧显示12个数字,另一次在小数点右侧显示16个数字。同时要让程序包括float.h文件,并显示FLT—DIG和DBL_DIG的值。1.0/3.0的显示值与这些值一致吗?

#include

#include

int main(void)

{

double a=1.0/3.0;

float b=1.0/3.0;

printf("double a=1.0/3.0:\n");

printf("%.4e\n",a);

printf("%.12e\n",a);

printf("%.16e\n\n",a);

printf("float b=1.0/3.0:\n");

printf("%.4f\n",b);

printf("%.12f\n",b);

printf("%.16f\n\n",b);

printf("FLT_DIG:%d\n",FLT_DIG);

printf("DBL_DIG:%d\n",DBL_DIG);

return(0);

}

7.编写一个程序,要求用户输入行驶的英里数和消耗汽油的加仑数。接着应该计算和显示消耗每加仑汽油行驶的英里数,显示方式是在小数点右侧显示一个数字。然后,根据l加仑约等于3.785升,l英里约等于1.609公里的规则,它应该把每加仑英里数转换成每100公里的升数(欧洲通用的燃料消耗表示法),并显示结果,显示方式是在小数点右侧显示一个数字(请注意,美国方案测量每单位距离消耗的燃料数,而欧洲方案测量每单位燃料的行驶距离)。用符号常量表示两个转换系数(使用const或#define)。

#include

#define GALLON 3.785 //1 gallon = 2.785 litre

#define MILE 1.609 //1 mile = 1.609 kilometer

int main(void)

{

float mile,gallon;

printf("Please input miles and gallons:");

scanf("%f %f",&mile,&gallon);

printf("Miles per gallon:%.1f\n",mile/gallon);

printf("Litres per 100 kilometre:%.1f\n",gallon*GALLON/(100*mile*MILE));

return(0);

}

第5章运算符、表达式和语句

编程练习

1.编写一个程序。将用分钟表示的时间转换成以小时和分钟表示的时间。使用#define或者const 来创建一个代表60的符号常量。使用while循环来允许用户重复键入值,并且当键入一个小于等于0的时间时终止循环。

#include

#define HOUR 60

int main(void)

{

int minutes;

printf("Please input the minutes:");

scanf("%d",&minutes);

while(minutes>0)

{

printf("%d hours and %d minutes\n",minutes/HOUR,minutes%HOUR);

printf("Please input the minutes:");

scanf("%d",&minutes);

}

return(0);

}

2.编写一个程序,此程序要求输入一整数,然后打印出从(包括)输入的值到(包括)比输入的值大10的所有整数值(也就是说,如果输入为5,那么输出就从5到15)。要求在各个输出值之间用空格、制表符或换行符分开。

#include

int main(void)

{

int num,i=0;

printf("Please input the number:");

scanf("%d",&num);

while(i++<11)

{

printf("%d ",num++);

}

return(0);

}

3.编写一个程序,该程序要求用户输入天数,然后将该值转换为周数和天数。例如,此程序将把18天转换成2周4天。用下面的格式显示结果:

使用一个while循环让用户重复输入天数;当用户输入一个非正数(如0或-20)时,程序将终止循环。

#include

#define WEEK 7

int main(void)

{

int days;

printf("Please input the days:");

scanf("%d",&days);

while(days>0)

{

printf("%d days are %d weeks,%d days.\n",days,days/WEEK,days%WEEK);

printf("Please input the days:");

scanf("%d",&days);

}

return(0);

}

4.编写一个程序让用户按厘米输入一个高度值,然后,程序按照厘米和英尺英寸显示这个高度值。允许厘米和英寸的值出现小数部分。程序允许用户继续输入,直到用户输入一个非正的数值。程序运行的示例如下面所示:

Enter a height in centimeters: 182

182.0 cm = 5 feet, 11.7 inches

Enter a height in centimeters(<=O to quit): 168

168.0 cm = 5 feet, 6.1 inches

Enter a height in centimeters(<=O to quit): 0

#include

#define INCH 2.54 // 1 inch = 2.54cm

int main(void)

{

float cm;

printf("Enter a height in centimeters:");

scanf("%f",&cm);

while(cm>0)

{

printf("%.1f cm = %d feet, %.1f inches\n",cm,int(cm/INCH/12),cm/INCH-int(cm/INCH/12)*12);

printf("Enter a height in centimeters(<=0 to quit):");

scanf("%f",&cm);

}

printf("bye\n");

return(0);

}

5.改写用来找到前20个整数之和的程序addemup.c(程序清单 5.13)(如果您愿意,可以把addemup.c程序看成是一个计算如果您第一天得到$l,第二天得到$2,第三天得到$3,以此类推,您在20天里会挣多少钱的程序)。修改该程序,目的是您能交q地告诉程序计算将进行到哪里。也就是说,用一个读入的变量来代替20。

#include

int main(void)

{

int count,sum,max;

count=0;

sum=0;

printf("Please input the max:");

scanf("%d",&max);

while(count++ < max)

sum = sum + count;

printf("sum = %d\n",sum);

return(0);

6.现在修改编程练习5中的程序,使它能够计算整数平方的和(如果您喜欢,可以这样认为:如果您第一天得到$l,第二天得到$4,第三天得到$9,以此类推您将得到多少钱。这看起来像一个很好的买卖)。C没有平方函数,但是您可以利用n的平方是n*n的事实。

#include

int main(void)

{

int count,sum,max;

count=0;

sum=0;

printf("Please input the max:");

scanf("%d",&max);

while(count++

sum = sum + count * count;

printf("sum = %d\n",sum);

return(0);

}

7.编写一个程序,该程序要求输入一个float型数并打印该数的立方值。使用您自己设计的函数来计算该值的立方并且将它的立方打印出来。main()程序把输入的值传递给该函数。

#include

float cube(float);

int main(void)

{

float number;

printf("Please input the number:");

scanf("%f",&number);

printf("The cube of %f is %f\n",number,cube(number));

return(0);

float cube(float num)

{

return(num * num * num);

}

8.编写一个程序,该程序要求用户输入一个华氏温度。程序以double类型读入温度值,并将它作为一个参数传递给用户提供的函数Temperatures()。该函数将计算相应的摄氏温度和绝对温度,并以小数点右边有两位数字的精度显示这三种温度。它应该用每个值所代表的温度刻度来标识这3个值。下面是将华氏温度转换成摄氏温度的方程:

通常用在科学上的绝对温度的刻度是0代表绝对零,是可能温度的下界。下面是将摄氏温度转换为绝对温度的方程:

Kelvin=Celsius+273.16

Temperatures()函数使用const来创建代表该转换里的3个常量的符号。main()函数将使用一个循环来允许用户重复地输入温度,当用户输入q或其他非数字值时,循环结束。

#include

void Temperatures(double);

int main(void)

{

double Fahrenheit;

printf("Please input the Fahrenheit:");

while(scanf("%lf",&Fahrenheit) == 1) //scanf的返回值代表成功输入的变量的数目,非数字不会被成功输入

{

Temperatures(Fahrenheit);

printf("Please input the Fahrenheit:");

}

printf("end\n");

return(0);

}

void Temperatures(double Fahrenheit)

{

const double a=1.8,b=32.0,c=273.16;

printf("Fahrenheit = %lf\t",Fahrenheit);

printf("Celsius = %lf\t",a * Fahrenheit + b);

printf("Kelvin = %lf\n",a * Fahrenheit + b + c);

}

第6章 C控制语句:循环

编程练习

1.编写一个程序,创建一个具有26个元素的数组,并在其中存储26个小写字母。并让该程序显示该数组的内容。

#include

int main(void)

{

char ABC[26];

int i;

for(i=0;i<26;i++)

ABC[i] = 'a' + i;

for(i=0;i<26;i++)

printf("%c",ABC[i]);

printf("\n");

return(0);

}

2.使用嵌套循环产生下列图案:

S

$$

$$$

$$$$

$$$$$

#include

int main(void)

{

int i,j;

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

{

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

printf("$");

printf("\n");

}

return(0);

}

3.使用嵌套循环产生下列图案:

F

FE

FED

FEDC

FEDCB

FEDCBA

请注意:如果您的系统不使用ASCⅡ或其他以数字顺序编码的码,您可以把一个字符数组初始化为字母表中的字母:

char lets[26]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";

然后就可以使用数组索引来选用单个的字母,例如lets[0]是'A',等等。

#include

int main(void)

{

int i,j;

for(i=0;i<6;i++)

{

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

printf("%c",'F'-j);

printf("\n");

}

return(0);

4.让程序要求用户输入一个大写字母,使用嵌套循环产生像下面这样的金字塔图案:

A

ABA

ABCBA

ABCDCDA

ABCDEDCBA

这种图案要扩展到用户输入的字符。例如,前面的图案是在输入E时需要产生的。提示:使用一个外部循环来处理行,在每一行中使用三个内部循环,一个处理空格,一个以升序打印字母,一个以降序打印字母。如果您的系统不使用ASCII或类似的以严格数字顺序表示字母的编码,请参见在编程练习3中给出的建议。

#include

int main(void)

{

int i,j,k;

char letter;

printf("Please input a capital:");

scanf("%c",&letter);

k=letter-'A'+1;

for(i=0;i

{

for(j=0;j

for(j=0;j<=i;j++) printf("%c",'A'+j);

for(j=i-1;j>=0;j--) printf("%c",'A'+j);

printf("\n");

}

return(0);

}

5.编写一个程序打印一个表,表的每一行都给出一个整数、它的平方以及它的立方。要求用户输入表的上限与下限。使用一个for循环。

#include

有机化学_第五版答案(完整版)

《有机化学》(第五版,李景宁主编)习题答案 第一章 3、指出下列各化合物所含官能团的名称。 (1) CH 3CH=CHCH 3 答:碳碳双键 (2) CH 3CH 2Cl 答:卤素(氯) (3) CH 3CHCH 3 OH 答:羟基 (4) CH 3CH 2 C=O 答:羰基 (醛基) H (5) CH 3CCH 3 答:羰基 (酮基) (6) CH 3CH 2COOH 答:羧基 (7) NH 2 答:氨基 (8) CH 3-C ≡C-CH 3 答:碳碳叁键 4、根据电负性数据,用和标明下列键或分子中带部分正电荷和负电荷的原子。 答: 6、下列各化合物哪个有偶极矩?画出其方向 (1)Br 2 (2) CH 2Cl 2 (3)HI (4) CHCl 3 (5)CH 3OH (6)CH 3OCH 3 答:以上化合物中(2)、(3)、(4)、(5)、(6)均有偶极矩 (2) H 2C Cl (3 )I (4 ) Cl 3 (5)H 3C OH (6) H 3C CH 3 7、一种化合物,在燃烧分析中发现含有84%的碳[Ar (C )=12.0]和16的氢[Ar (H )=1.0],这个化合物的分子式可能是

(1)CH 4O (2)C 6H 14O 2 (3)C 7H 16 (4)C 6H 10 (5)C 14H 22 答:根据分析结果,化合物中没有氧元素,因而不可能是化合物(1)和(2); 在化合物(3)、(4)、(5)中根据碳、氢的比例计算(计算略)可判断这个化合物的分子式可能是(3)。 第二章 习题解答 1、用系统命名法命名下列化合物 (1)2,5-二甲基-3-乙基己烷 (3)3,4,4,6-四甲基辛烷 (5)3,3,6,7-四甲基癸烷 (6)4-甲基-3,3-二乙基-5-异丙基辛烷 2、写出下列化合物的构造式和键线式,并用系统命名法命名之。 (3)仅含有伯氢和仲氢的C 5H 12 答:符合条件的构造式为CH 3CH 2CH 2CH 2CH 3; 键线式为; 命名:戊烷。 3、写出下令化合物的构造简式 (2)由一个丁基和一个异丙基组成的烷烃 (4) 相对分子质量为100,同时含有伯、叔、季碳原子的烷烃 答:该烷烃的分子式为C 7H 16。由此可以推测同时含有伯、叔、季碳原子的烷烃的构造式为(CH 3)3CCH(CH 3)2 (6) 2,2,5-trimethyl-4-propylnonane (2,2,5-三甲基-4-丙基壬烷) CH 3CH 2CH 2CH 2CHCHCH 2CCH 3 CH 3 CH 3CH 3 nC 3H 7

软件工程导论(第5版)课后习题答案

1-5 根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.72Y-1974(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048×0.72Y-1974(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。 基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算: (1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少? (2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。 (3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。 ●(1)在1985年对计算机存储容量的需求,估计是 M=4080e0.28(1985-1960)=4474263(字) ●如果字长为16位,则这个存储器的价格是 ●P=0.048*0.72 1985-1974*4474263=$5789 ●(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。 ●在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人 每月可开发出10×20条指令。 ●为了开发出4474263条指令以装满存储器,需要的工作量是: 4474263/200=22371(人月) ●程序员的月平均工资是4000美元,开发出4474263条指令的成本是 22371*4000=¥89484000 ●(3)在1995年对存储容量的需求估计为: M=4080E0。28(1995-1960)=73577679(字)=4080E9.8 ●如果字长为32位,则这个存储器的价格是: P=0.003*32*0.72(1995-1974)*73577679=$7127 ●如果一条指令为一个字长,则为使存储器装满程序共需73,577,679条指令。 ●在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开 发出可装满整个存储器的程序,需要的工作量为 73577679/600=122629(人月) ●开发上述程序的成本为: 122629*6000=$735776790 1-6 什么是软件过程?它与软件工程方法学有何关系?

c++primerplus中文版第六版源代码

C++ primer plus 中文版第六版源代码 第二章到第四章,后续继续更新……… 第二章 1:#include void main() { using namespace std; int carrots; carrots=25; cout<<"I have "; cout<

2:#include int stonetolb(int); int main() { using namespace std; int stone; cout<<"Enter the weight in stone: "; cin>>stone; int pounds=stonetolb(stone); cout< void main()

{ using namespace std; int carrots; carrots=25; cout<<"How many carrots do you have?"<>carrots; cout<<"Here are two more."; carrots=carrots+2; cout<<"Now you have "< using namespace std; void main() { cout<<"Come up and C++ me some time.";

有机化学-第五版-第十二章答案

有机化学-第五版-第十二章答案

第十二章 羧酸 1. 命名下列化合物或写 出结构式。 H C CH 2COOH 3 H 3C (1) Cl 2COOH CH 3 (2) COOH COOH (3) (4) CH 3(CH 2)4CH=CHCH 2CH=CH(CH 2)7COOH (5) 4-methylhexanoic acid (6) 2-hydroxybutanedioic acid (7) 2-chloro-4-methylbenzoic acid (8) 3,3,5-trimethyloctanoic acid 1. 解:(1)3-甲基丁酸 (2)3-对氯苯基丁酸

(3)间苯二甲酸 (4)9,12-十八二烯酸 (5) CH3CH2CHCH2CH2COOH 3 CHCOOH HO 2 COOH (6) COOH H3C (7) (8) CH3CH2CH2CHCH2CCH2COOH 33 CH3 2.试以方程式表示乙酸与下列试剂的反应。 (1)乙醇(2)三氯化磷(3)五氯化磷(4)氨 (5)碱石灰热熔 2.解:(1) CH3COOH + C2H5OH H+ CH3COOC2H5 + H2O (2)

CH 3COOH + PCl 3CH 3COCl + H 3PO 3 (3) CH 3COOH + PCl 5 CH 3COCl + POCl 3 + HCl (4) (5) △ CH 3COOH 碱石灰4 3.区别下列各组化合物。 (1) 甲酸、乙酸和乙醛; (2) 乙醇、乙醚和乙酸; (3) 乙酸、草酸、丙二酸; (4) 丙二酸、丁二酸、己二酸 3 解: CH 3COOH + NH 3 CH 3COONH 4 CH 3CONH 2 + H 2O Δ

C Primer Plus第6版编程练习答案

Chapter 2 Programming Exercises PE 2--‐1 /* Programming Exercise 2-1 */ #include <> int main(void) { printf("Gustav Mahler\n"); printf("Gustav\nMahler\n"); printf("Gustav "); printf("Mahler\n"); return 0; } PE 2--‐3 /* Programming Exercise 2-3 */ #include <> int main(void) { int ageyears; /* age in years */ int agedays; /* age in days */ /* large ages may require the long type */ ageyears = 101; agedays = 365 * ageyears; printf("An age of %d years is %d days.\n", ageyears, agedays); return 0; } PE 2--‐4 /* Programming Exercise 2-4 */ #include <> void jolly(void); void deny(void); int main(void) { jolly(); jolly(); jolly(); deny(); return 0; } void jolly(void) { printf("For he's a jolly good fellow!\n"); } void deny(void) { printf("Which nobody can deny!\n"); } PE 2--‐6 /* Programming Exercise 2-6 */ #include <> int main(void) { int toes; toes = 10; printf("toes = %d\n", toes);

计量经济学(伍德里奇第五版中文版)答案

第1章 解决问题的办法 1.1(一)理想的情况下,我们可以随机分配学生到不同尺寸的类。也就是说,每个学生被分配一个不同的类的大小,而不考虑任何学生的特点,能力和家庭背景。对于原因,我们将看到在第2章中,我们想的巨大变化,班级规模(主题,当然,伦理方面的考虑和资源约束)。 (二)呈负相关关系意味着,较大的一类大小是与较低的性能。因为班级规模较大的性能实际上伤害,我们可能会发现呈负相关。然而,随着观测数据,还有其他的原因,我们可能会发现负相关关系。例如,来自较富裕家庭的儿童可能更有可能参加班级规模较小的学校,和富裕的孩子一般在标准化考试中成绩更好。另一种可能性是,在学校,校长可能分配更好的学生,以小班授课。或者,有些家长可能会坚持他们的孩子都在较小的类,这些家长往往是更多地参与子女的教育。 (三)鉴于潜在的混杂因素- 其中一些是第(ii)上市- 寻找负相关关系不会是有力的证据,缩小班级规模,实际上带来更好的性能。在某种方式的混杂因素的控制是必要的,这是多元回归分析的主题。 1.2(一)这里是构成问题的一种方法:如果两家公司,说A和B,相同的在各方面比B公司à用品工作培训之一小时每名工人,坚定除外,多少会坚定的输出从B公司的不同? (二)公司很可能取决于工人的特点选择在职培训。一些观察到的特点是多年的教育,多年的劳动力,在一个特定的工作经验。企业甚至可能歧视根据年龄,性别或种族。也许企业选择提供培训,工人或多或少能力,其中,“能力”可能是难以量化,但其中一个经理的相对能力不同的员工有一些想法。此外,不同种类的工人可能被吸引到企业,提供更多的就业培训,平均,这可能不是很明显,向雇主。 (iii)该金额的资金和技术工人也将影响输出。所以,两家公司具有完全相同的各类员工一般都会有不同的输出,如果他们使用不同数额的资金或技术。管理者的素质也有效果。 (iv)无,除非训练量是随机分配。许多因素上市部分(二)及(iii)可有助于寻找输出和培训的正相关关系,即使不在职培训提高工人的生产力。 1.3没有任何意义,提出这个问题的因果关系。经济学家会认为学生选择的混合学习和工作(和其他活动,如上课,休闲,睡觉)的基础上的理性行为,如效用最大化的约束,在一个星期只有168小时。然后我们可以使用统计方法来衡量之间的关联学习和工作,包括回归分析,我们覆盖第2章开始。但我们不会声称一个变量“使”等。他们都选择学生的变量。 第2章 解决问题的办法

C Primer Plus (第六版)中文版 6.16编程练习

//******************6.15复习题************************** //*********** 6 ************************** #include int main(void) { int i, j; for (i = 0; i < 4; i++) //外层循环控制行内层循环控制列 { for (j = 0; j < 8; j++) { printf("$"); } printf("\n"); } return 0; } //******************6.16 编程练习 ************************** //****************** 一 ************************** #include #define SIZE 26 int main(void) { char array[SIZE]; int index = 0; array[0] = 'a'; printf("%c", array[0]); for (index = 1; index < SIZE; index++) { array[index] = 'a' + index; printf("%c", array[index]); } return 0; } //****************** 二 ************************** #include int main(void)

{ int i, j;//i控制行,j控制列计数作用 for (i = 0; i < 5; i++) { for (j = 0; j < =i ; j++) { printf("$"); } printf("\n"); } return 0; } //****************** 三 ************************** #include int main(void) { int i;//外层循环控制行 int j;//内层循环控制列 char ch = 'F'; for (i = 0; i < 6; i++) { for (j = 0; j <= i; j++) printf("%c", ch-j ); printf("\n"); } return 0; } //****************** 四 ************************** #include int main(void) { int i;//外层循环控制行 int j;//内层循环控制列 char ch = 'A'; for (i = 0; i < 6; i++) { for (j = 0; j <= i; j++) printf("%c", ch++ ); printf("\n");

伍德里奇计量经济学第六版答案Appendix-E

271 APPENDIX E SOLUTIONS TO PROBLEMS E.1 This follows directly from partitioned matrix multiplication in Appendix D. Write X = 12n ?? ? ? ? ? ???x x x , X ' = (1'x 2'x n 'x ), and y = 12n ?? ? ? ? ? ??? y y y Therefore, X 'X = 1 n t t t ='∑x x and X 'y = 1 n t t t ='∑x y . An equivalent expression for ?β is ?β = 1 11n t t t n --=??' ???∑x x 11n t t t n y -=??' ??? ∑x which, when we plug in y t = x t β + u t for each t and do some algebra, can be written as ?β= β + 1 11n t t t n --=??' ???∑x x 11n t t t n u -=??' ??? ∑x . As shown in Section E.4, this expression is the basis for the asymptotic analysis of OLS using matrices. E.2 (i) Following the hint, we have SSR(b ) = (y – Xb )'(y – Xb ) = [?u + X (?β – b )]'[ ?u + X (?β – b )] = ?u '?u + ?u 'X (?β – b ) + (?β – b )'X '?u + (?β – b )'X 'X (?β – b ). But by the first order conditions for OLS, X '?u = 0, and so (X '?u )' = ?u 'X = 0. But then SSR(b ) = ?u '?u + (?β – b )'X 'X (?β – b ), which is what we wanted to show. (ii) If X has a rank k then X 'X is positive definite, which implies that (?β – b ) 'X 'X (?β – b ) > 0 for all b ≠ ?β . The term ?u '?u does not depend on b , and so SSR(b ) – SSR(?β) = (?β– b ) 'X 'X (?β – b ) > 0 for b ≠?β. E.3 (i) We use the placeholder feature of the OLS formulas. By definition, β = (Z 'Z )-1Z 'y = [(XA )' (XA )]-1(XA )'y = [A '(X 'X )A ]-1A 'X 'y = A -1(X 'X )-1(A ')-1A 'X 'y = A -1(X 'X )-1X 'y = A -1?β . (ii) By definition of the fitted values, ?t y = ?t x β and t y = t z β. Plugging z t and β into the second equation gives t y = (x t A )(A -1?β ) = ?t x β = ?t y . (iii) The estimated variance matrix from the regression of y and Z is 2σ(Z 'Z )-1 where 2σ is the error variance estimate from this regression. From part (ii), the fitted values from the two

CPrimerPlus第6版中文版勘误表

注意:下面的勘误中,红色字体为修改后的文字,提请各位读者注意。 第 6 页,” 1.6 语言标准”中的第 3 行,将 1987 年修改为 1978 年。 第 22 页,” 2. main ()函数”中的第 1 行, int main (void ) 后面的分号( ; )删除。 第 24 页,“5. 声明”的第 10 行,也就 是一个变量、函数或其他实体的名称。 第 27 页,图 2.3 中,下划线应该只包含括号中的内容;第 2 段的第 4 行,而不是存储 在 源代码 中的指令。 第 30页,“2.5.4 打印多个值”的第 4行,双引 号后面的第 1 个变量。 第 34页,“2.7.3 程序状态”第 2段的第 4 行,要尽量忠实 于代码来模拟。 第 35页,“2.10 本章小结”第 2段的第 1句,声明 语句为变量指定变量名, 并标识该变量中存 储的数据类型;本页倒数第 2 行,即 检查程序每执行一步后所有变量的值。 第37页,“2.12编程练习”中第1题,把你的名和姓打印在一行……把你的 名和姓分别打印在 两行……把你的 名和姓打印在一行……把示例的内容换成你的 名字。 第 40 页,第 1 行,用于把英 磅常衡盎司转换为… … 第44页,“3.4 C 语言基本数据类型”的第 1句,本节将 详细介绍C 语言的基本属性类型…… 第 46页,“5. 八进制和十六进制”的第 4句,十六进制数 3的二进制数 是 0011,十六进制数 5 的二进制数 是 0101;“6. 显示八进制和十六进制”的第 1 句,既可以使用 也可以 显示不同进制 的数;将“回忆一下……程序在执行完毕后不会立即关闭执行窗口”放到一个括号里。 第 47页,“2. 使用多种整数类型的原因”第 3句,过去的一台运行 Windows 3.x 的机器上。 第 53 页,图 3.5 下面的第 4 行“上面最后一个例子( printf ( “ ” a \\ is a backslash. ” \n ” ); )” 第 56页,正文的第 2行和第 4行应该分别为 printf ( “me32 = %““d”“\n ”, me32); printf ( “me32 = %d\n ” , me32); 第 61 页,“无符号类型”的最后 1 句,相当于 unsigned int (即两者之间添加一个空格 )。 第 62 页,程序清单 3.8 中的第 1 行,将 //* typesize.c -- 打印类型大小 */ 中的第一个斜杠删 除。 第 63页,“3.6 参数和陷阱”第 2行, printf ( “ Hello,pal. ” )(即 Hello, 和 pal. 之间没有空 格)。 第 64 页,程序清单 3.10 中的第 1 行,使用 转义序列。 第 75 页,倒数第 8行, 何时使用圆括号 取决于运算对象是类型还是特定量。 第82页,第11行, . 格式字符串包含了两个待打印项 number 和pies 对应的 ..... 第83页,表4.4中的“ L”修饰符的含义介绍中,应该是示例: ” %L ”、“%10.4Le” 第 84 页,表 4.5 中的第 1 行,即,从字段的左侧开始打印该 项(即,应该只保留一个 项);在 “ 0”标记的含义中,添加一行: 示例:"%010d"和"%08.3f"。 第86页,第1段的第2行,……字段宽度是容纳 待打印数字所需的……; 倒数第4段中,根据%x 打印出1f,根据%打印出1F 第87页,“4.4.4转换说明的意义”第 2段,……读者认为原始值 被替换成转换后的值。 第89页,“参数传递”第2行,把变量n1、n2、n3和n4的值传递给程序(即,保留一个顿号)。 第 93页,第 5行的 2121.45 的字体应该与第 4行的 42 的字体保持一致;表 4.6 上面的最后一 行,对于 double 类型要使用 1 修饰符。 第 94 页,表中的第 3 行,把对应的数值存储为 unsigned short int 类型;把“ j ”转换说明的 示例 放到“ z ”转换说明中;在“ j ”转换说明的含义中添加:示例:” %jd”、” %ju”。 第95页,“3.scanf () 的返回值”上面一段的倒数第 3行,如果在格式字符串中把空格放到 %c 的前面 。 第98页,倒数第2段,strlen () 函数(声明在string.h 头文件中)可用于 ... 。 第 100 页,” 4.8 编程练习”中的第 2 题,将该题中的“名和姓”统一替换为“名字” ;并执行 以下 操作;第 3题,将 a 、 b 项中的“输入”替换为” The input is ”,将“或”替换为“ or”, 将末尾1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.

计量经济学导论 第五版 答案

APPENDIX A SOLUTIONS TO PROBLEMS A.1 (i) $566. (ii) The two middle numbers are 480 and 530; when these are averaged, we obtain 505, or $505. (iii) 5.66 and 5.05, respectively. (iv) The average increases to $586 while the median is unchanged ($505). A.3 If price = 15 and income = 200, quantity = 120 – 9.8(15) + .03(200) = –21, which is nonsense. This shows that linear demand functions generally cannot describe demand over a wide range of prices and income. A.5 The majority shareholder is referring to the percentage point increase in the stock return, while the CEO is referring to the change relative to the initial return of 15%. To be precise, the shareholder should specifically refer to a 3 percentage point increase. $45,935.80.≈ $40,134.84. When exper = 5, salary = exp[10.6 + .027(5)] ≈A.7 (i) When exper = 0, log(salary) = 10.6; therefore, salary = exp(10.6) (ii) The approximate proportionate increase is .027(5) = .135, so the approximate percentage change is 13.5%. 14.5%, so the exact percentage increase is about one percentage point higher.≈(iii) 100[(45,935.80 – 40,134.84)/40,134.84) A.9 (i) The relationship between yield and fertilizer is graphed below. (ii) Compared with a linear function, the function yield has a diminishing effect, and the slope approaches zero as fertilizer gets large. The initial pound of fertilizer has the largest effect, and each additional pound has an effect smaller than the previous pound.

C Primer Plus第6版中文版勘误表教学提纲

C P r i m e r P l u s第6版中文版勘误表

注意:下面的勘误中,红色字体为修改后的文字,提请各位读者注意。 1.第6页,” 1.6语言标准”中的第3行,将1987年修改为1978年。 2.第22页,” 2. main()函数”中的第1行,int main (void)后面的分号(;)删除。 3.第24页,“5. 声明”的第10行,也就是一个变量、函数或其他实体的名称。 4.第27页,图2.3中,下划线应该只包含括号中的内容;第2段的第4行,而不是存储在源代 码中的指令。 5.第30页,“2.5.4 打印多个值”的第4行,双引号后面的第1个变量。 6.第34页,“2. 7.3 程序状态”第2段的第4行,要尽量忠实于代码来模拟。 7.第35页,“2.10 本章小结”第2段的第1句,声明语句为变量指定变量名,并标识该变量中存 储的数据类型;本页倒数第2行,即检查程序每执行一步后所有变量的值。 8.第37页,“2.12 编程练习”中第1题,把你的名和姓打印在一行……把你的名和姓分别打印在 两行……把你的名和姓打印在一行……把示例的内容换成你的名字。 9.第40页,第1行,用于把英磅常衡盎司转换为…… 10.第44页,“3.4 C语言基本数据类型”的第1句,本节将详细介绍C语言的基本属性类型…… 11.第46页,“5. 八进制和十六进制”的第4句,十六进制数3的二进制数是0011,十六进制数5 的二进制数是0101;“6.显示八进制和十六进制”的第1句,既可以使用也可以显示不同进制的数;将“回忆一下……程序在执行完毕后不会立即关闭执行窗口”放到一个括号里。 12.第47页,“2.使用多种整数类型的原因”第3句,过去的一台运行Windows 3.x的机器上。 13.第53页,图 3.5下面的第4行“上面最后一个例子(printf(“Gramps sez, \”a \\ is a backslash.\”\n”);)” 14.第56页,正文的第2行和第4行应该分别为printf(“me32= %“ “d” “\n”, me32); printf(“me32 = %d\n”, me32); 15.第61页,“无符号类型”的最后1句,相当于unsigned int(即两者之间添加一个空格)。 16.第62页,程序清单3.8中的第1行,将//* typesize.c -- 打印类型大小*/中的第一个斜杠删除。 17.第63页,“3.6参数和陷阱”第2行,printf(“Hello,pal.”)(即Hello,和pal.之间没有空格)。 18.第64页,程序清单3.10中的第1行,使用转义序列。 19.第75页,倒数第8行,何时使用圆括号取决于运算对象是类型还是特定量。 20.第82页,第11行,……格式字符串包含了两个待打印项number和pies对应的…… 21.第83页,表4.4中的“L”修饰符的含义介绍中,应该是示例:”%L f”、“%10.4L e” 22.第84页,表4.5中的第1行,即,从字段的左侧开始打印该项(即,应该只保留一个项); 在“0”标记的含义中,添加一行:示例:"%010d"和"%08.3f"。 23.第86页,第1段的第2行,……字段宽度是容纳待打印数字所需的……;倒数第4段中,根 据%x打印出1f,根据%X打印出1F 24.第87页,“4.4.4转换说明的意义”第2段,……读者认为原始值被替换成转换后的值。 25.第89页,“参数传递”第2行,把变量n1、n2、n3和n4的值传递给程序(即,保留一个顿 号)。 26.第93页,第5行的2121.45的字体应该与第4行的42的字体保持一致;表4.6上面的最后一 行,对于double类型要使用1修饰符。 27.第94页,表中的第3行,把对应的数值存储为unsigned short int类型;把“j”转换说明的示例 放到“z”转换说明中;在“j”转换说明的含义中添加:示例:”%jd”、”%ju”。

伍德里奇 计量经济学(第4版)答案

计量经济学答案 第二章 2.4 (1)在实验的准备过程中,我们要随机安排小时数,这样小时数(hours )可以独立于其它影响SAT 成绩的因素。然后,我们收集实验中每个学生SAT 成绩的相关信息,产生一个数据集{}n i hours sat i i ,...2,1:),(=,n 是实验中学生的数量。从式(2.7)中,我们应尽量获得较多可行的i hours 变量。 (2)因素:与生俱来的能力(天赋)、家庭收入、考试当天的健康状况 ①如果我们认为天赋高的学生不需要准备SAT 考试,那天赋(ability )与小时数(hours )之间是负相关。②家庭收入与小时数之间可能是正相关,因为收入水平高的家庭更容易支付起备考课程的费用。③排除慢性健康问题,考试当天的健康问题与SAT 备考课程上的小时数(hours )大致不相关。 (3)如果备考课程有效,1β应该是正的:其他因素不变情况下,增加备考课程时间会提高SAT 成绩。 (4)0β在这个例子中有一个很有用的解释:因为E (u )=0,0β是那些在备考课程上花费小时数为0的学生的SAT 平均成绩。 2.7(1)是的。如果住房离垃圾焚化炉很近会压低房屋的价格,如果住房离垃圾焚化炉距离远则房屋的价格会高。 (2)如果城市选择将垃圾焚化炉放置在距离昂贵的街区较远的地方,那么log(dist)与房屋价格就是正相关的。也就是说方程中u 包含的因素(例如焚化炉的地理位置等)和距离(dist)相关,则E (u ︱log(dist))≠0。这就违背SLR4(零条件均值假设),而且最小二乘法估计可能有偏。 (3)房屋面积,浴室的数量,地段大小,屋龄,社区的质量(包括学校的质量)等因素,正如第(2)问所提到的,这些因素都与距离焚化炉的远近(dist,log(dist))相关 2.11(1)当cigs (孕妇每天抽烟根数)=0时,预计婴儿出生体重=110.77盎司;当cigs (孕妇每天抽烟根数)=20时,预计婴儿出生体重(bwght )=109.49盎司。 (110.77-109.49)/110.77=8.6%,抽烟数从0到20,预计儿童出生体重下降了约8.6%。 (2)并不能。还有其他因素可以影响婴儿出生体重,尤其是母亲的整体健康状况和产前保健的质量。这些因素还都可能与母亲怀孕期间的抽烟习惯有关。其它因素,比如咖啡因的摄入量也会影响婴儿出生体重,而且可能与母亲怀孕期间的抽烟习惯有关。 (3)如果预测出生体重为125盎司,则cigs=(125 – 119.77)/( –0.524) ≈–10.18 ,约为-10支,这是不可能的。当然,这只是告诉我们,对于预测婴儿出生体重这样复杂的因变量,如果只有一个解释变量,将会发生什么。预计婴儿出生体重的最大值是119.77盎司,然而样本中确有超过700个新生婴儿的体重超过了119.77盎司,这就说明模型建立不恰当 (4)85%的妇女怀孕期间不抽烟,即1388个样本中有大约1180个妇女不抽烟。因为我们只用cigs 一个变量解释婴儿出生体重,所以当cigs=0时,我们只有一个相对应的出生体重数。在cigs=0时,预计的出生体重数大致位于观测的出生体重数的中间。因此,我们可能会低估较高的出生体重数。

c++ primer plus(第六版)第二至第六章课后编程练习全部答案

第二章:开始学习C++ //ex2.1--display your name and address #include int main(void) { using namespace std; cout<<"My name is liao chunguang and I live in hunan chenzhou.\n”;} //ex2.2--convert the furlong units to yard uints-把浪单位换位码单位 #include double fur2yd(double); int main() { using namespace std; cout<<"enter the distance measured by furlong units:"; double fur; cin>>fur; cout<<"convert the furlong to yard"< void mice(); void see(); using namespace std; int main() { mice(); mice(); see(); see(); return 0; }

有机化学第五版第十一章-醛和酮-课后习题答案

第十一章 醛和酮习题答案(最新版) 1. 用系统命名法命名下列醛、酮。 O CH 3CH 2 CH(CH 3)2(1) (2) CH 3CH 22CH 3 C 2H 5 CHO H 3C H H CH 2CH 2CHO (3) C C H 3C O H CH 3H 3C (4) CHO OCH 3 (5) COCH 3 3(6) 3 (7) H COCH 3 3 Br (8) OHCCH 2CHCH 2CHO (9) O (10)

解:(1)2-甲基-3-戊酮(2)4-甲基-2-乙基己醛(3)反-4己烯醛(4)Z-3-甲基-2庚烯-5-炔-4-酮(5)3-甲氧基-4-羟基苯甲醛(6)对甲氧基苯乙酮 (7)反-2-甲基环己基甲醛(8)3R-3-溴-2-丁酮 (9)3-甲酰基戊二醛(10)螺[4.5]癸-8-酮 2. 比较下列羰基化合物与HCN加成时的平衡常数K值大小。(1)Ph2CO (2)PhCOCH3(3)Cl3CHO (4)ClCH2CHO (5)PhCHO(6)CH3CHO 解:(1)<(2)<(5)<(6)<(4)<(3) 原因: HCN对羰基加成是亲核加成,能降低羰基碳原子上电子云密度的结构因素将会使K值增大,故K值顺序是:(6)<(4)<(3),而羰基碳原子的空间位阻愈小,则K值增大,故K 值的顺序是:(1)<(2)<(5)<(6) ,综合考虑:则K值顺序是:(1)<(2)<(5)<(6)<(4)<(3)。 6. 完成下列反应式(对于有2种产物的请标明主次产物)。 CHO+H2N (1) (2) HC CH+2CH2O

《软件工程导论第五版》张海潘pdf版(第五版清华大学出版社课后答案)

第一章 z 软件工程方法学(3个要素) :通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学, 也称范型。三要素:方法、工具和过程。 z 软件生命周期模型 – 瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每 个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 – 缺点:传统的瀑布模型过于理想化,是由文档驱动的。 – 快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反 馈意见的方法,获取用户真正的需要。 – 增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用 户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。 – 螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只 是螺旋模型中另一个周期。 1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1-2 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。 1-3 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 目前使用得最广泛的软件工程方法学(2种): 1. 传统方法学:也称为生命周期方法学或结构化范型。 优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作; 促进了软件重用。 1-4 软件生命周期划分成哪些阶段 z 软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。 1. 软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析 2. 开发时期:总体设计、详细设计、编码和单元测试、综合测试。 3. 维护时期:主要任务是使软件持久地满足用户的需要。 1-5 什么是软件过程?它与软件工程方法学有何关系? z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤 z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型 1-6 传统“瀑布模型”的主要缺陷是什么?试说明改进的方法。 传统的瀑布模型过于理想化了。增加“反馈环” 第二章 z 可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 z 可行性研究的任务:1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统 实现方案4.研究每种实现方案的可行性: z 技术上的可行性 ——使用现有的技术能实现这个系统吗? z 经济上的可行性 ——这个系统的经济效益能超过它的开发成本吗? (投资与效益) z 操作可行性 ——系统的操作方式在这个用户组织内行得通吗? z 社会、政策允许的可行性 5.为每个可行的解决方案制定一个粗略的实现进度 6.对以后的行动方针提出建议 方法:1.系统流程图 2.数据流图:(DFD ) 符号 数据流 第 1 页https://www.doczj.com/doc/578371814.html,

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