算法与程序设计:概念部分习题解答(学习笔记)

算法与程序设计:概念部分习题解答(学习笔记)

1、请简述程序设计语言发展历史。

答:能够用于构造程序的指令集,被称为程序设计语言。由于最终所有的程序都必须转化成计算机能够响应的指令,这种计算机能直接响应或理解的指令集合被称为机器语言,但直接使用机器语言编写需要直接面对二进制数字系列,非常单调乏味、耗时且效率很低。为摆脱机器语言的束缚,编程方面用单词风格的符号替代二进制序列,同时用十进制、十六进制和标签代替二进制的存储器地址,这种编程语言称为汇编语言。机器语言和汇编语言都是低级语言,通常只能用于特定的计算机类型。为摆脱这一限制,拥有类人类语言的表达方式并且能在所有计算机上运行的高级语言诞生。高级语言最初都是过程化语言,按一定规则在过程设置了一个编写规范,规定过程内部包含特定结构和相应的指令,遵循这些结构规范的过程被称为结构化过程,支持这种过程的高级语言称为结构化语言。随着软件规模的增大,为提高软件工程效率,面向对象的新方法逐步普及。它把数据和对应的特定处理过程进行捆绑封装后称为对象,并设置对象间的数据传递规范。实现这些规范的语言称为面向对象语言。

2、请简述算法需具备的基本要素。

答:算法是为了完成特定任务的有限指令(步骤)集,具备以下几个要素:
(1)输入,有零个或以上的输入数据。
(2)输出,最少需要一个输出。
(3)确定性,即步骤清晰无歧义。
(4)有限性,即步骤有限。
(5)有效性,即步骤可执行。

3、请简述程序设计中变量、常量是什么?如何在程序中进行表示(可用具体的语法进行举例)?

答:在程序设计中,如果一个数据的值在程序运行中不能被改变,就是程序里的常量,否则为程序里的变量。它们在C语言程序中的表示如下:

#define N 3.14  // N是常量,之后出现的N的值为3.14
int a;          // a是变量,可通过赋值来改变a的值

4、请简述计算机的输入输出流程。

答:从输入设备读取信息时会先把读取的数据放在输入缓冲区,计算机直接从缓冲区取数据,然后把取到的数据放在输出缓冲区,输出设备接受其中的数据并进行处理。

5、请简述结构化程序设计中的三种基本结构:顺序结构、选择结构和循环结构。

答:顺序结构中的程序语句按照事先编写好的先后次序逐条被执行;选择结构由选择语句实现,会根据条件表达式(包括关系表达式和逻辑表达式)的真假值来决定选择下一步要执行的语句或语句块;循环结构由循环语句实现,用于重复执行一组语句,直至不再满足循环执行条件而结束。

6、请简述模块化设计的思想。

答:模块化设计强调将一个程序的功能分离成独立的子程序或者子模块,即在解决一个复杂问题时自顶而下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。每个模块可以按需要分成若干个子模块,如此逐层分解。

7、简单介绍联合这种构造类型。

答:C语言中允许多个变量共享一片存储空间,这些变量可以是不同的数据类型,把这些变量组合起来的构造类型称之为联合。组成联合的变量称为联合的成员或者元素。联合的大小由成员里面占空间最大的元素决定。联合的声明格式使用了关键字union,如:

union REC
{
	char key;
   	int number;
   	double salary;
}uRec;

其中,名称为uRec的联合变量包括了三个成员,其大小由最大成员double决定。联合变量可以被初始化,但这个初始值必须是联合体第一个成员的类型,且初始值需位于一对花括号里,如:

union REC first ={‘A’}

这是把first.key初始化为‘A’。如果给出的初始值是任何其他类型,会被转换(如果可能的话)成一个字符并赋值给first.key。联合成员的访问通过成员访问符“.”来进行。由于在执行期间的某个时刻只有一个成员是有效的,程序员要确保在某个时刻使用正确的成员名称来引用当前存在这个联合中的数据。

8、简述线性表、链表、栈、队列的特点。

答:它们的特点分别如下:
(1)线性表的元素之间有先后顺序,若表中有多个元素,则第一个无前驱,最后一个元素无后继,其他元素有且只有一个前驱和后继。
(2)链表中每个数据元素包含两部分的信息――存放数据元素的值的数据域和存放该元素前驱或(和)后继结点的地址(指针)的指针域,其元素在逻辑上的次序关系是通过结点的指针域来确定的。
(3)栈是一种受限定的线性表,它只允许在线性表的同一端做线性表操作,后入栈的元素先于先入栈的元素出栈,所以它是一种“后进先出”的数据结构。
(4)队列也是一种受限定的线性表,只允许在线性表的一端插入数据元素,在另一端删除元素,是一种“先进先出” 的数据结构。

如果文章内容出错或者您有更好的解决方法,欢迎到评论区指正和讨论!

猜你喜欢

转载自blog.csdn.net/weixin_40589192/article/details/106951140
今日推荐