软件工程概论课后答案(4)

2018-11-27 19:46

第1章作业参考答案

或者 FLAG=0 (FINISH-START)>=0 && FLAG==0 I=(START+FINISH)/2 T TABLE(I)==ITEM F FLAG=1 TABLE(I)

main () {

定义10?10的二维整数数组A,长度为10的一维数组B, C;

建立10?10的二维随机整数数组A;- - - - - - -- -- - - - - - - - - - - - 1

求A中每一行的最大值?数组B;- - - - - - - - -- - - - - - - - - - - - 2

求A中每一列的最小值?数组C;- - - - - - - - -- - - - - - - - - - - - 3 求数组B中的最小值?minOfB; - - - - - - - - -- - - - - - - - - - - - 4 求数组C中的最大值?maxOfC; - - - - - - - - -- - - - - - - - - - - - 5 (minOfB-maxOfC)^2 ?result;

}

(2) 对后面加标记的部分进行细化

main () {

定义10?10的二维整数数组A,长度为10的一维数组B, C;

/*建立10?10的二维随机整数数组A*/ - - - - - -- -- - - - - - - - - - - - 1 for (i=0; i<=9; i++) for (j=0; j<=9; j++)

产生随机整数?A[i,j];

/*求A中每一行的最大值?数组B*/ - - - - - - - - -- - - - - - - - - - - - 2

for (i=0; i<=9; i++) {

求数组A第i行的最大值?B[i]; --------------------------------------2.1 }

/*求A中每一列的最小值?数组C*/ - - - - - - - - -- - - - - - - - - - - - 3 for (j=0; j<=9; j++) {

求数组A第j列的最小值?C[j]; --------------------------------------3.1 }

16

第1章作业参考答案

/*求数组B中的最小值?minOfB*/ - - - - - - - - -- - - - - - - - - - - - 4 minOfB = B[0]; for (i=1; i<=9; i++) { if (minOfB< B[i]) { minOfB = B[i]; } }

/*求数组C中的最大值?maxOfC*/ - - - - - - - - -- - - - - - - - - - - - 5 maxOfC = C[0]; for ( i=1; i<=9; i++) { if (maxOfC>C[i]) { maxOfC = C[i]; } }

(minOfB-maxOfC)^2 ?result;

}

(3) 下一步可以继续对2.1和3.1进行细化。具体略。

4.16 设计算法完成下列任务:输入一段英文后,无论输入的文字都是大写,还是小写,或大小写任意混合,都能将其整理成除每个句子开头字母是大写外,其他都是小写的文字。 假设在输入的文字中,两个单词间只允许是空格、,、.、?、!,则在输出的文字中,大写的情况有以下几种:

(1) 整段文字的第一个字母是大写; (2) “.”后的第一个字母是大写; (3) “?”后的第一个字母是大写; (4) “!”后的第一个字母是大写;

设变量a存储输入的字符串,变量b存储结果字符串,变量c存储当前处理的字符,变量e存储c之前的字符(当c为第一个字符时除外)。算法如下:

输入字符串a, n = strlen(a) 如果a的第一个字符是字母,则转成大写。 b[0]=a[0] for ( i=1; i

第5章 编码

5.1 有人说程序编好后能上机运行就可以了,为什么还要讲究风格和可读性呢?你觉得对吗?为什么?

对于学生的练习题和作业题,程序编好后能上机运行,一般认为任务就完成了。但对于实际开发的项目来说,任务并没有结束。编码人员编写完程序后,要对自己的程序进行单元测试,测试人员要进行集成测试和系统测试,提交用户使用后,还需要对软件进行持续的维护修改工作。在软件开发和维护过程中,都需要阅读程序。道理很简单,如果需要对某段程序进行修改,首先要读懂,阅读程序是软件开发和维护过程中的一个重要组成部分,而且读程序的时间比写程序的时间还要多。所以,程序的风格和可读性很重要,具有良好的程序风格和可读性的程序,有助于对程序的正确理解,可以大大减少阅读理解程序的时间,从而提高维护工作的效率。

5.2 一般情况下,程序的效率和清晰性相比哪一个更重要?

在计算机发展的早期,由于CPU效率低,内存小,程序在运行时容易出现运行时间太长或内存溢出问题。因此,人们在编写程序时,很注重程序的时间效率和空间效率,而不太注重程序的清晰性。

随着计算机硬件性能的飞速发展以及软件规模和复杂性的急剧增加,这种情况已经发生了根本的转变,程序的清晰性越来越受到重视,程序的清晰性不好会给测试、维护修改带来困难,这对于规模庞大和复杂的软件尤其明显。

软件运行的效率主要取决于软件的体系结构及算法,编码阶段虽然也有机会提高效率,但效果并不明显。对于效率没有特殊严格要求的系统来说,要将程序的清晰性放在第一位,在不影响清晰性的情况下,去改进效率。

5.6 在一行内只写一条语句,并且采取适当的移行格式,使程序的逻辑和功能变得更加明确。许多程序设计语言允许在一行内写多个语句。但这种方式会使程序可读性变差。下面是一段排序程序,请对其编码风格进行改进,以增加其可读性。

for (i=1; i<=n-1; i++) for (j=1; j<=n-i; j++) if (a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;}

改进后的代码如下: for (i=1; i<=n-1; i++) for (j=1; j<=n-i; j++) if (a[j]>a[j+1]) {

temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; }

18

第1章作业参考答案

5.7 请对下面代码的布局进行改进,使其符合规范其更容易理解。

for (i=1; i<=n-1; i++){

t=i;

for (j=i+1; j<=n; j++) if (a[j]

temp=a[t]; a[t]=a[i]; a[i]=temp } }

改进后的代码如下:

for (i=1; i<=n-1; i++) { t=i;

for (j=i+1; j<=n; j++) {

if (a[j]

}

if (t!=i)

{

temp=a[t]; a[t]=a[i]; a[i]=temp } }

5.8使用你熟悉的语言编写出习题4.15的程序,注意编码风格。

下面为使用C语言编写的习题4.15的程序:

#include \#include \#include \#include \

/* 求10?10的二维数组a的每一行的最大值存入一维数组b,每一列的最小值存入一维数组c,minOfB存储数组b的最小值,maxOfC存储数组c的最大值,result存储minOfB与maxOfC之差的平方。*/

int main() { int a[10][10], b[10],c[10];

19

第1章作业参考答案

inti,j,minOfB, maxOfC, result; /*产生随机数种子 */ srand((unsigned int)time(NULL)); /*建立10 ?10的二维随机整数数组a*/ for(i=0;i<=9;i++) for (j=0; j<=9; j++) a[i][j]=rand()0+1; //产生1-100之间的随机数 /*求a中每一行的最大值?数组b*/ for (i=0; i<=9; i++) { /*求数组a第i行的最大值?b[i] */ b[i]=a[i][0]; for (j=1; j<=9; j++) if (a[i][j]>b[i]) b[i] = a[i][j]; } /*求a中每一列的最小值?数组c*/ for (j=0; j<=9; j++) { /*求数组a第j列的最小值?c[j]; */ c[j]=a[0][j]; for (i=1; i<=9; i++) if (a[i][j] b[i]) minOfB = b[i]; /*求数组c中的最大值?maxOfC*/ maxOfC = c[0]; for (i=1; i<=9; i++) if (maxOfC

5.9使用你熟悉的语言编写出习题4.16的程序,注意编码风格。

下面为使用C语言编写的习题4.16的程序:

#include \ #include \ #include \

/*将一段英文输入变量a(假设两个单词间只允许是空格、,、.、?、!),将其整理成每个句子开头字母是大写、其他都是小写的字符串存储在变量b中。变量c存储当前处理的字符,变量e存储c之前字符。*/

void main()

{ char a[1000], b[1000], c,e;

20


软件工程概论课后答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机基础实验报告 电子表格处理资料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: