|
习题1参考答案
1.1解释以下术语
(1)计算机软件:计算机软件是一系列按照特定结构组织的程序、数据(Data)和文档(Document)的集合。
(2)计算机程序:用计算机语言所编写的一系列指令的集合。 (3)数据:数据是程序加工和处理的对象。
(4)算法:算法是一组有穷的规则,它们规定了为解决某一特定问题而采取的一系列运算步骤。
(5)数据结构:数据结构是存在一种或多种特定关系的数据元素的集合,其外在表现为数据的组织形式。
(6)数据类型:数据类型是一个值的集合和定义在这个值集上的操作的总称。
(7)程序设计:程序设计是给出解决特定问题程序的方法和过程,是软件构造活动中的重要组成部分。
1.2 简答题
(1)简述内存的组织结构形式?
计算机系统把内存看作是由若干个连续的存储单元(Storage Location)组成的,每个存储单元的大小为一个字节(Byte)。为了能唯一标志每个存储单元,在计算机系统中给每个存储单元指定一个唯一的编号,该编号被称为存储单元的地址(Address),计算机在读写内存时就是按照存储单元的地址进行的。
(2)为什么计算机系统是一个通用的计算系统? 在计算机硬件相对固定不变的前提下,计算机的通用性主要表现在通过运行不同的程序来完成不同的计算任务。
(3)简述结构化程序设计的基本思想?
在程序设计过程中,如果仅仅使用顺序、选择和循环这三种基本控制结构,并且使每个代码块只有一个入口和一个出口,则这样的程序设计方法被称为结构化程序设计(Structured Programming)。 (4)简述计算机语言的发展史?
程序设计语言经历了从机器语言、汇编语言、高级语言到超高级语言的发展历程。 (5)简述利用计算机进行问题求解的过程?
1、理解问题特征 2、设想解决方案 3、优化解决方案 4、描述解决方案
5、执行并分析解决方案
(6)简述各个程序质量要素的含义?
1、正确性(Correctness):正确性是指一个计算机程序的正确程度,即程序在预定的
|
运行环境下能正确完成预期功能的程度。
2、鲁棒性(Robustness):鲁棒性也称为健壮性,是指在硬件发生故障、输入数据无效或操作错误等意外情况下,程序能做出响应的程度。
3、效率(Efficiency):效率是指为了完成预定的功能,系统需要的计算资源(主要包括计算时间和存储空间)的多少。
4、易用性(Usability):易用性又称为可用性,是指在完成预定功能时人机交互的难易程度。易用性高的程序容易被程序用户理解和掌握,使用户操作简单方便。
5、可理解性(Understandability):可理解性是指理解程序的难易程度。可理解性高的程序才容易测试和维护。如果程序难以读懂,就会给测试和维护带来巨大的困难。
6、可测试性(Testability):可测试性是一个计算机程序能够被测试的容易程度。为了提高程序的可靠性,必须通过测试尽可能多得发现并改正程序中的错误。程序的可测试性直接影响测试的质量和效率。
7、可维护性(Maintainability):诊断和改正程序错误以及功能扩充和性能提高的容易程度。程序设计是一个迭代过程,要开发出高质量的程序需要对程序进行多次修改和完善。程序的可维护性决定了上述工作的质量和效率。
8、可重用性(Reusability):可重用性是指在其它应用中该程序可以被再次使用的容易程度。如果我们在开发新程序时,能够直接或稍加修改就能利用原有的程序,则会大大提高新程序开发的质量和效率。因此,提高程序的可重用性是提高程序设计质量和效率的根本途径。
1.3计算题
(1)计算-1的8位原码、反码、补码和Excess_127码。 分别为:10000001B、11111110B、11111111B、01111110B
(2)计算机内存中相邻四个字节的值为10111110000000000000000000000000,试问该值表示的实数、有符号数和无符号数各为多少?
分别是:实数0.125、有符号数-1107296256(负数在计算机中用补码表示)无符号数3187671040
(3)字符‘A'、‘a'、‘1'的ASCII值是多少,给出将大写字母的ASCII转换成对应小写字母ASCII值得计算公式。
‘A’:41H ‘a’:61H ‘1’:31H
大写转化为小写:大写字母的ASCII值+20H=小写字母的ASCII值
1.4为下列问题求解设计算法,并分别用程序流程图、N—S盒图和PAD图加以描述。
(1)有两个调料盒S1和S2,分别盛有糖和盐,要求将它们互换(即S1盒原来盛糖,现在改盛盐;S2同理)。
算法思想:这是一个两个变量交换值的问题,可以设置一个临时变量,首先把S1的值放入临时变量中,然后将S2的值放入S1中,最后将临时变量的值放入S1中即可。
|
程序流程图:
开始输入S1、S2设置临时变量TT=S2S2=S1S1=T结束 N-S盒图:
输入S1、S2定义临时变量TT=S1S1=S2;S2=T; PAD图:
输入S1、S2定义临时变量TT=S1;S1=S2;S2=T (2)依次输入6个整数,要求输出其中最小的数。
算法思想:定义一个临时变量用来存放最小的数,首先输入第一个数赋值于临时变量,然后循环输入其余的整数,比较输入的整数和临时变量的大小,如果大于临时变量则继续输入,反之,则给临时变量赋值为次此数。最后临时变量中存放的数输入的数中的最小数,输入临时变量即可。
程序流程图:
|
开始定义变量X和T输入第一个整数并赋值于T输入下一个N-S盒图:PAD图:整数赋值于XNX>TNT=XY输入完毕Y输出T结束 定义变量X和临时变量T输入第一个数并赋值给T输入下一个整数赋值于XY NX>TT=X输出T
|
定义变量X和临时变量T输入第一个整数赋值于T输入下一个整数赋值于X X>TT=X输出T (3)输入3个整数,按从大到小的顺序输出。
算法思想:输入三个数a、b、c,首先比较a和b,如果a>b,则比较c和a,如果c>a则输出c、a、b;如果cb,输出a、c、b,否则输出a、b、c;对于a 程序流程图: 开始输入三个整数并赋值给a,b,cYa>bNYc>ac>bYNN输出c,a,bc>bY输出a,b,c输出b,a,cNc>a输出c,b,aN依次输出a,c,bY输出b,c,a结束 N-S盒图: