第9章 数组和集合
- 格式:ppt
- 大小:164.00 KB
- 文档页数:37
习题九一、用适当内容填空1.计算机系统运行和操作的最小功能单位是指令,一台计算机中全部指令的集合称为指令系统。
2.计算机能够直接识别的程序设计语言是机器语言,其直接使用机器指令或二进制格式编写程序。
3.汇编语言是一种低级语言,它是面向过程的语言。
高级语言书写的源程序可以通过解释或编译方式来执行。
4.字符型是一种基本数据类型,一般程序设计语言中都采用8位二进制位来表示,其对应值的范围是0-255。
5.在程序中要处理200名学生一门课的成绩信息,应该定义数组类型变量;要处理200名学生的档案资料应该定义记录或结构类型变量。
6.在程序运行过程中值不可改变的量称为常量,可改变的量称为变量。
7.结构化程序设计的3种基本逻辑结构为顺序、分支或选择和重复或循环,合理使用这3种控制结构可以表现任何复杂的控制关系。
8.过程是功能独立或需要多次调用的程序段,它也可以称为函数或子程序。
9.一段程序代码需要多次反复执行,需要使用重复或循环结构来表达;根据判断条件结果决定是否执行一段程序,应该使用分支或选择结构表示。
10.循环也称为重复,其对应两种类型,分别为当型结构和直到型结构。
11.面向过程程序设计的核心是算法和数据结构;面向对象程序设计的核心是类和对象。
12.结构化程序设计应遵循自顶向下、逐步求精、模块化和限制使用goto语句原则。
13.采用结构化程序设计方法能够使程序易读、易理解、易维护和结构良好。
虽然这种方法具有许多优点,但它仍是一种面向过程的程序设计方法。
14.VB是一个可视化操作界面、面向对象的程序设计语言;在VB中可以直接创建Access 数据库。
15.在VB窗口中添加的对象都具有若干属性,在窗口设计阶段改变对象属性可以在①属性窗口中操作,在程序运行时改变属性应该在相关对象事件代码中操作。
16.类是一组数据及该组数据能够实现操作的封装体。
在类与对象的关系中,类是对对象的抽象,而对象是类的实例。
17.在面向对象方法中,信息隐藏是通过对象的封装性来实现的;同样的消息被不同的对象接收时可导致不同的行为,这是对象的多态性。
Pascal基本教程第一至十一章(优选.)Pascal基本教程2008-04-19 18:18来自Pascal语言中文网的一份pascal入门教程,适合Pascal初学者阅读。
第一章Pascal语言概述与预备知识第二章Pascal语言基础知识第三章顺序结构程序设计第四章选择结构程序设计第五章循环结构程序设计第六章枚举型和子界型第七章数组第八章函数和过程第九章集合与记录第十章指针第十一章文件Pascal基本教程第一章2008-04-19 18:20第一章Pascal语言概述与预备知识1 关于Turbo PascalPascal是一种计算机通用的高级程序设计语言。
它由瑞士Niklaus Wirth教授于六十年代末设计并创立。
以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。
正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。
尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。
IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一,noi(全国奥林匹克信息学竞赛)把pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。
在Pascal问世以来的三十余年间,先后产生了适合于不同机型的各种各样版本。
其中影响最大的莫过于Turbo pascal系列软件。
它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。
该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本,其版本不断更新,而功能更趋完善。
下面列出Turbo Pascal编年史出版年代版本名称主要特色1983Turbo Pascal 1.0Turbo Pascal 2.0Turbo-87 Pascal提高实数运算速度并扩大值域1985Turbo Pascal 3.0增加图形功能Turbo BCD Pascal特别适合应用于商业1987Turbo Pascal 4.0提供集成开发环境(IDE),引入单元概念1988Turbo Pascal 5.0增加调试功能1989Turbo Pascal 5.5支持面向对象的程序设计(OPP)1990Turbo Pascal 6.0提供面向对象的应用框架和库(Turbo Vision)1992Turbo Pascal 7.0面向对象的应用系统、更完善的IDETurbo Vision 2.01993Borland Pascal 7.0开发Object Windows库、(For Windows)提供对OLE多媒体应用开发的支持1995DelphiVisual PascalTurbo Pascal语言是编译型程序语言,它提供了一个集成环境的工作系统,集编辑、编译、运行、调试等多功能于一体。
基本概念:数组 :一组具有相同名字、不同下标、个数固定的同类型变量的集合数组元素 :数组中的一个变量数组的类型 :数组元素的类型(基本类型包括:整型(int )浮点型(float )双精度浮点型(double )字符型(char )无值型(void ))数组的维数 :确定数组中各元素之间相对位置的下标个数(1.下标必须是正数常数或整形表达式 2.下标的取值从0开始,最大下标值为数组元素个数减一 3.下标不要越界)例如:int a[6];int 是类型,a[6]是一维数组说明符 为a 开辟a[0] a[1]a[2]a[3]a[4]a[5] 六个连续的存储单元。
一维数组的初始化:1.数组不初始化,其元素值为随机值 2.所赋初值少于定义个数系统为后面元素自动补零 3.当全部数组元素赋初值时,可不指定数组长度例如:int a[5]={1,2,3,4,5} 等价于a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;应用:例如:定义一个数组,使a[0]到a[7]的值为0~7,然后输出。
#include <stdio.h>main(){int i,a[8]; /*一维数组的定义*/for(i=0;i<=7;i++)a[i]=i; /*一维数组的初始化*/for(i=0;i<=7;i++)printf("%d ",a[i]); /*一维数组的引用*/}例如:读十个正数存入数组,找到其中最大值和最小值。
思路:1.用for 循环出入10个正数 2.处理:(a)先令max=x[0] (b)依次用x[i]和max 比较(循环)若max<x[i],令max=x[i] 3.输出:max#include <stdio.h>#define SIZE 10main(){ int x[SIZE],i,max;printf("Enter 10 integers:\n");for(i=0;i<SIZE;i++) scanf("%d",&x[i]);max=x[0];for(i=1;i<SIZE;i++)if(max<x[i])max=x[i];}二维数组的定义方式:数据类型 数组名[常量表达式][常量表达式] (按行序先)例如:int a[3][4]用for 出入10个正数(有一个m*n 的二维数组a ,其中i 行j 列元素a[i][j]在数组中的位置计算公式是:i*n+j+1)可把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组例如:把 a[3][4] 看作是一个一维数组,有3个组元素:a[0]、a[1]、a[2],每个组元素中又包含 4 个元素的一维数组。
第九章集合一、选择题1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。
A. (n-1)/2 B. n/2 C. (n+1)/2 D. n2. 对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( )A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/23.顺序查找法适用于查找顺序存储或链式存储的线性表,平均比较次数为((1)),二分法查找只适用于查找顺序存储的有序表,平均比较次数为((2))。
在此假定N为线性表中结点数,且每次查找都是成功的。
A.N+1B.2log2NC.logND.N/2E.Nlog2NF.N24. 下面关于二分查找的叙述正确的是 ( )A. 表必须有序,表可以顺序方式存储,也可以链表方式存储 C. 表必须有序,而且只能从小到大排列B. 表必须有序且表中数据必须是整型,实型或字符型 D. 表必须有序,且表只能以顺序方式存储5. 对线性表进行二分查找时,要求线性表必须()A.以顺序方式存储B.以顺序方式存储,且数据元素有序C.以链接方式存储D.以链接方式存储,且数据元素有序6.适用于折半查找的表的存储方式及元素排列要求为( )A.链接方式存储,元素无序 B.链接方式存储,元素有序C.顺序方式存储,元素无序 D.顺序方式存储,元素有序7. 用二分(对半)查找表的元素的速度比用顺序法( )A必然快 B. 必然慢 C. 相等 D. 不能确定8.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( )A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减9. 具有12个关键字的有序表,折半查找的平均查找长度()A. 3.1B. 4C. 2.5D. 510. 折半查找的时间复杂性为()A. O(n2)B. O(n)C. O(nlog n)D. O(log n)11.当采用分快查找时,数据的组织方式为 ( )A.数据分成若干块,每块内数据有序B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D. 数据分成若干块,每块(除最后一块外)中数据个数需相同12. 二叉查找树的查找效率与二叉树的( (1))有关, 在 ((2))时其查找效率最低(1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置(2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。
第九章 习题及解答9-5 设文件A 按连续文件构造,并由四个逻辑记录组成 (每个逻辑记录的大小与磁盘块大小相等,均为512B) 。
若第一个逻辑记录存放在第100号磁盘块上,试画出此连续文件的结构。
答:连续文件的结构如下图:9-6 设文件B 按串联文件构造,并由四个逻辑记录组成 (其大小与磁盘块大小相等,均为512B)。
这四个逻辑记录分别存放在第100、157、66、67号磁盘块上,回答如下问题。
(1) 画出此串联文件文件的结构,(2) 若要读文件B 第1560字节处的信息,问要访问哪一个磁盘块? 为什么? (3) 读文件B 第1560字节处的信息需要进行多少次I/O 操作? 为什么? (1) 答:此串联文件结构如下图所示。
(2) 答:1560/512=3余24,因此文件第1560逻辑字节在r 3逻辑块上,该逻辑块被分配在67号磁盘块上。
(3) 答:要访问67号磁盘块,需要先找到文件目录,然后依次访问100、157和66号磁盘块,最后读取67号磁盘块。
因此若文件已打开 (文件目录信息已在内存中) 需要4次I/O 操作,文件未打开需要5次I/O 操作。
文件目录文件目录 r 1磁盘块号9-16什么是“重名”问题? 二级文件目录结构如何解决这一问题?答:重名是指不同用户对不同文件起了相同的名字。
在二级文件目录结构中,每个用户建立用户文件目录,系统建立主目录,登记所有用户目录的信息,用目录名加文件名唯一标识每个文件解决重名问题。
9-18 假设两个用户共享一个文件系统,用户甲要用到文件a、b、c、e,用户乙要用到文件a、d、e、f。
已知:用户甲的文件a与用户乙的文件a实际上不是同一文件;用户甲的文件c与用户乙的文件f实际上是同一文件;甲、乙两用户的文件e是同一文件。
试拟定一个文件组织方案,使得甲、乙两用户能共享该文件系统而不致造成混乱。
答:如下图所示。
用户甲的主目录名为jia,有四个文件,文件名为a、b、c、e。
c语言程序设计(第3版)的习题答案c语言程序设计(第3版)的习题答案本文为《c语言程序设计(第3版)》中的习题答案汇总,旨在帮助读者更好地理解和掌握该教材。
以下是各章节习题的详细解答:第1章:计算机概述习题1:答案:计算机是一种能够接受输入数据、对其进行逻辑和算术运算,并产生输出结果的电子设备。
习题2:答案:计算机主要由中央处理器(CPU)、主存储器、输入设备和输出设备四个主要部分组成。
......第2章:c语言概述习题1:答案:C语言是一种通用的高级编程语言,由贝尔实验室的Dennis Ritchie于1972年开发。
习题2:答案:C语言的特点包括高效性、可移植性、灵活性和丰富的操作符与控制语句。
......第3章:数据类型、运算符和表达式习题1:答案:C语言中的基本数据类型包括int、float、double、char等。
习题2:答案:C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。
......第4章:程序控制结构习题1:答案:C语言中的程序控制结构主要包括顺序结构、选择结构和循环结构。
习题2:答案:顺序结构是指程序按照语句的顺序依次执行,没有分支和循环。
......第5章:函数习题1:答案:C语言中的函数由函数头和函数体组成。
习题2:答案:函数的定义包括函数名、返回类型、参数列表和函数体。
......第6章:数组和字符串习题1:答案:数组是一组相同类型的数据元素的集合。
习题2:答案:C语言中的字符串是以空字符'\0'结尾的字符数组。
......第7章:指针习题1:答案:指针是用来存储另一个变量的地址的变量。
习题2:答案:指针变量可以通过取地址运算符(&)获取普通变量的地址。
......第8章:结构和共用体习题1:答案:结构是由不同数据类型的成员组成的复合类型。
习题2:答案:共用体(union)是一种特殊的数据类型,它可以存储不同类型的数据,但在同一时间只能存储其中的一种。