【每日一题】简述结构化程序设计的基本思想(一)

《基于C语言的程序设计基础(第2版)参考答案分析.doc》由会员共享,可在线阅读。更多关于《基于C语言的程序设计基础(第2版)》课后习题集参考答案分析.doc(48页珍藏版)》请搜索快库。

1、习题1 参考答案1.1 解释下列术语(1)计算机软件:计算机软件是一系列程序、数据和文档以特定结构组织起来的)集合.(2)计算机程序:用计算机语言编写的一组指令。(3)数据:数据是程序处理和处理的对象。(4)算法:算法是一种一组有限的规则,规定了解决特定问题要采取的一系列操作步骤。(5)数据结构:数据结构是具有一个或多个特定关系的数据元素的集合。表现形式是数据的组织。(6)数据类型:数据类型是值的集合,是定义在这个值集上的操作的总称。(7)程序设计:程序设计)是给出程序解决具体问题的方法和过程,是软件建设活动的重要组成部分。1.2简答题ns (

2、1) 简述内存的组织结构?计算机系统将内存视为由若干个连续的存储单元(Storage Location)组成,每个存储单元的大小为一个字节。为了唯一标识每个存储单元,为计算机系统中的每个存储单元分配一个唯一编号。这个数字称为存储单元的地址。计算机读写内存时,是根据存储单元的地址。的。 (2)为什么计算机系统是通用计算系统?在计算机硬件相对固定的前提下,计算机的通用性主要表现在通过运行不同的程序来完成不同的计算任务。(3)简述结构化编程的基本思想?在编程的过程中,如果只使用序列、选择和循环三种基本控制结构,每个代码块只有一个

3、一进一出,这样的编程方式叫做结构化编程。 (4)简述计算机语言的发展史?编程语言经历了从机器语言、汇编语言、高级语言到超高级语言的发展历程。(5)简述描述使用计算机解决问题的过程?1、了解问题的特点2、想象解决方案3、优化解决方案4、描述解决方案5、执行并分析解决方案(6)简要描述每个程序质量要素的含义?1、正确性:正确性是指计算机程序的正确程度,即程序能够2、鲁棒性:鲁棒性,又称鲁棒性,是指硬件故障、输入数据无效或操作错误等意外情况

程序在 4、 条件下可以响应的程度。 3、效率:效率是指系统完成预定功能所需的计算资源量(主要包括计算时间和存储空间)。 4、可用性:可用性,也称为可用性,是指完成预定功能时人机交互的难易程度。可用性高的程序易于程序用户理解和掌握,使用户操作简单方便。 5、可理解性:可理解性是指理解程序的难易程度。易于理解的程序更容易测试和维护。如果程序难以阅读计算机程序设计语言的翻译程序有,会给测试和维护带来巨大的困难。 6、可测试性:可测试性是测试计算机程序的难易程度。为了提高程序的可靠性,需要通过尽可能多的测试

5、识别并纠正程序中的错误。程序的可测试性直接影响测试的质量和效率。 7、可维护性:诊断和纠正程序错误的难易程度,以及功能扩展和性能改进。编程是一个迭代的过程,要开发一个高质量的程序需要对程序进行多次修改和改进。程序的可维护性决定了上述工作的质量和效率。 8、可重用性:可重用性是指程序在其他应用程序中重用的难易程度。如果我们在开发新程序时可以直接使用原程序或稍加修改,将大大提高新程序开发的质量和效率。因此,提高程序的可复用性是提高程序设计质量和效率的根本途径。 1.3道计算题(1)计算-1的8位原码、反码、补码和Excess_12

6、7 码。它们是:10000001B、11111110B、11111111B、011111110B(2)计算机内存中相邻四个字节的值是1011111000000000000000000000,这个值的实数、符号和非符号分别是什么?:实数0.125、有符号数-1107296256(负数在计算机中用补码表示) 无符号数3187671040(3)字符A、a、1的ASCII值是多少,给出计算公式为将大写字母的ASCII值转换为对应的小写字母 A: 41H a: 61H 1: 31H 大写转换为小写:大写字母的ASCII值+20H=小写字母的ASCII值1.4 求解的设计算法以下问题,

7、分别用程序流程图、NS盒图和PAD图来描述。 (1)调味盒S1和S2有两个计算机程序设计语言的翻译程序有,分别装糖和盐,需要调换(就是S1原来装的是糖,现在装的是盐;同理对于S2).算法思路:这是一个两个变量之间交换值的问题,可以设置一个临时变量,先将S1的值放入临时变量,再将S2的值放入S1,最后将临时变量的值放入S1 流程图:N-S 箱形图:PAD 图:(2) 依次输入6个整数,要求输出最小的数。算法思路:定义一个临时变量来存放最小的number,先在临时变量中输入第一个要赋值的数字,然后循环输入剩余的整数,比较输入整数和临时变量的大小,如果大于临时变量,继续输入,否则,将值分配给临时变量。最后,numbe r 存储在临时变量中是输入

8、输入数字的最小个数,输入一个临时变量即可。程序流程图:N-S箱形图:PAD图:(3)输入3个整数,降序输出。算法思路:输入三个数a、b、c,先比较a和b,如果是ab,比较c而a,如果是ca,则输出c,a,b;如果是cb,则输出a,c,b,否则输出a,b,c;对于ab的情况同样可以得到。程序流程图:N-S箱形图: PAD图:(4)求1*2*3*10。算法思路:定义一个变量来存储最终值,赋初值为1,做十个循环,每次循环乘以值循环变量在原变量(即1-10)的基础上,最后输出这个变量。程序流程图:N-S箱形图:PAD图:(5)输入两个整数,查找其最大公约数。算法思路:取两个数中较小的一个作为起始值

9、,将两个数除以这个值,如果能整除,这个数就是最终结果,如果不能整除,把起始值减一,然后用原来的两个数配对就可以了除法运算,直到除法被除,得到的起始值的最终值就是结果。程序流程图:N-S箱形图:PAD图:1.5道算法思考题(1)纸币换硬币:将一美元纸币兑换成一美分、二美分、五美分硬币(至少各有一种),有哪些兑换方式?分析:1元相当于100美分,5美分、2美分、1美分的硬币数量设置为X、Y、Z,交换的方法是找到这样一个组合,使得 5*X+2*Y+Z = 100,所以每当你找到一个组合,记录数字,你就可以知道有多少种方式,算法描述为如下: Count = 0; / 用​​于记录数字,初始为0for(X=1;X=20;X+) for

10、(Y=1;Y=50;Y+) for(Z=1;Z=100;Z+) if(5*X + 2*Y + Z = 100) / 可兑换 Count +; 输出 Count(2) 一百块钱买一百只鸡:一只公鸡值一元,一只母鸡值一元,一只小鸡值一元,现在你需要一只一百元买一百只鸡,计划是什么?分析:从题意来看,如果公鸡、母鸡、小鸡分别有X、Y、Z,那么X、Y、Z满足:X +Y+Z=100,钱一定要满足,数量有限:5*X+3*Y+1/3*Z=100,由于3只小鸡1元,所以小鸡数量必须是整数3的倍数,即Z是3的整数倍,通过限制条件可以筛选出满足条件的X、Y、Z,当然X、Y、Z也满足以下条件: 5*X = 100;3*Y = 100;Z

11、 = 100。这里是算法描述: for(X=0;X=100;X+) for(Y=0;Y=100;Y+) for(Z=0;Z= 100;Z+) if(5*X=100 and 3 *Y=100 and z%3=0) if(X+Y+Z=100 and 5*X+3*Y+Z/3 = 10 0) output X, Y, Z;( 3)斐波那契兔子问题:有人在围栏里养了一对兔子,如果他们每个月生一对兔子,新生的兔子也给第二个月后每个月生一对兔子 兔子,问一年后围栏里有几对兔子。分析:第一对兔子在第一个月生了一对兔子,有围栏里有两对兔子。第二个月还是原来的那对兔子。下一对兔子,一共3对兔子。到了第三个月,除了这对兔子之外,还会生出一对新的兔子。原来的兔子。

12、另外,正月出生的兔子也开始生兔子,所以一共有5对兔子。继续推,第12个月终于有377对兔子了。从分析上看,每个月的兔子是上个月的兔子和新出生的兔子的总和,而上个月出生的兔子要到下个月才会有兔子,所以新出生的兔子都是上个月的兔子。两个月。兔子出生。设每月的兔子数量为F(n),可以列出如下公式:F(0) = F(1) = 1F(n) = F(n-1)@ > + F(n-2)很明显这个问题可以递归解决。算法流程图如下:练习2参考答案(1)请简述C语言的发展历程。答案:C语言是世界上流行和广泛使用的高级编程语言。它是在B语言的基础上发展起来的。1972年到1973年间,贝尔实验室设计了C语言。1983年,美国

13、中国标准化协会制定了C语言标准,称为ANSI C。(2)略。(3)C语言的主要特点是什么?)答:C语言的主要特点如下。C程序由函数组成。函数由函数头和函数体组成。C程序总是从主函数开始执行。必须有一个” ;” 在每个语句和数据声明的末尾。C语言没有自己的输入/输出语句,它的输入/输出由库函数printf和scanf完成。可以添加注释。C语言程序中的变量必须声明(4)如何使用Visual C+ 6.0开发控制台程序?使用VC6开发控制台程序的方法如下: 答:在Miscrosoft Visual C+ <在@k69@ >0环境,先创建一个空工程,然后创建一个C源程序文件,然后

14、在此文件中输入源代码。使用Bulid 命令或快捷键F7 进行编译链接。如果没有错误,选择Execute命令或者快捷键Ctrl+F5执行。练习 3 的答案:3.1 多项选择1.B 2.D 3.D 4.A 5.A 6.A < @7.C 8.C 9.C 10.B3.2 写出下面程序的输出 1200 310 c82.a=100,b =2003.97,141,61,a4.5.aabb c abc4,36.6,6,6,73.3 编程题1#include void main()int a=500;printf(%d,%o,%xn,a,a,a);输出结果:500, 764, 1f42.#include void main()float x;scanf(%f,&x);printf(a=%.3f,a=%.3en,x,x);输入: 66 输出结果:a=66.000,a=6.60000e +0013.#include void main()char ch1=a,ch2=ch1;printf(%c, %d,%o,%xn,ch1,ch1,ch1,ch1);printf (%c,%d,%o,%xn,ch2,ch2,ch2,ch2);输出结果:

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论