程序设计第六章练习题
精品文档
2016全新精品资料-全新公文范文-全程指导写作 –独家原创 PAGE1 / NUMPAGES1
程序设计第六章练习题
一、.基本概念与基础知识自测题
6.1 填充题
6.1.1 模板是为了实现代码的,它把数据类型改为一个,称为序设计。模板包括 和 。
答案:重用
设计参数
参数化
函数模板
类模板
6.1.调用函数模板时,可以显式指定模板参数类型,也可以隐式进行,称为,这是
根据 来决定的。
答案:模板实参推演
一组实际类型或值
6.1.顺序查找可以用于线性表,而对半查找可以用于线性表。 答案:无序的
有序的
6.1.最常见的排序方式有和。如果现有一个已排好序的线
性表,在表尾添加了一个元素,采用 排序法使它重新成为有序的所需工作量最小。
答案:选择
插入
交换
交换
6.1.给出以下指针的说明方式:指向一个4元素整型数组的指针为;指向一个返
回整型数,参数为两个整型数的函数的指针 ;指向一个数组的指针,而该数组元素都是指向一个返回整型指针的无参函数 。
答案:int[4]
int
以指向6元素数组为例:int* [6]
6.2简答题
6.2.1 需要编写一个对多维数组通用的算法,怎样才能把实参多维数
组的信息全部传递到函数中去?
答:最佳方法是用函数模板,多维数组用模板类型参数传递,各维的大小作为参数传递。也可以用一维数组加各维的大小都作为参数传递。
6.2.什么叫函数模板?什么叫模板函数?什么叫类模板?什么叫模板类?
答:不受数据类型限制的通用型的函数使代码的可重用性大大提高。把数据类型改为
一个设计参数是一个可行的方案。这种程序设计类型称为参数化 程序设计。这样的软件模块由模板 构造。包括函数模板和类模板。
函数模板定义如下:
template 返回类型 函数名{
……;//函数体
}
模板参数主要是模板类型参数。模板类型参数代表一种潜在的内置或用户定义的类型,由关键字typename或class后加一个标识符构成。函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,简化重载函数的设计。
由调用函数模板 而生成的函数,称为模板函数。 类模板定义如下:
template class 类名{
……;//类声明体
};
模板参数有两种:模板类型参数和模板非类型参数。模板类型参数,它代表一种类型,由关键字 typename或class后加一个标识符。模板非类型参数由一个普通的参数声明构成。模板非类型参数表示该参数名代表了一个潜在的常量。如数组类模板,可以有一个数组长度的非类型参数。
为通用的类模板定义中的模板类型参数指定了具体类型而生成的类称为模板类。
6.2.什么叫线性表?其基本操作包括哪些?其中插入一个元素的关键在哪儿?
答:线性表是数据结构中的概念:每两个相邻元素之间都有直接前驱和直接后继的关系。这里除第一个元素外,其他元素有且仅有一个直接前驱,第一个元素没有前驱;除最后一个元素外,其他元素有且仅有一个直接后继,最后一个元素无后继。这样的特性称为线性关系。
基本操作包括:计算表长度,寻找变量或对象x在表中的位置,判断x是否在表中,删除x,将x插入列表中第i个位置,寻找x的后继,寻找x的前驱,判断表是否空,判断表是否满,取第i个元素的值等。
当需要在顺序表的指定位置i插入一个数据x时,必须为它腾出这个位置,把从该位置开始向后的所有元素数据,后移一个位置,最后才插入。关键是后移时从最后一个元素开始。否则先移的数据会冲掉未移的数据。
6.2.采用索引查找有哪些优点?它需要被查找数据有序吗?
答:索引,就象一本书的目录,找到标题,再看一下页号,立即可以翻到。索引查找不要求被查找数据有序,只要求索引有序。
6.2.简单叙述阅读理解复杂指针的方法。设Node为类,下面两个标识符fa和pa分别代
表什么?Node* ); Node* []);
答:理解和构造对象说明的方法是:先撇开标识符,按从右到左的顺序逐个解释每个说明符,如果有括号则改变解释的先后,先解释括号内再