发布时间 : 星期二 文章C++课后习题更新完毕开始阅读
博学谷——让IT教学更简单,让IT学习更有效
9、若始终未找到与异常匹配的catch子句,即到main()函数还未实现异常匹配,则运行库函数terminate(),终止程序。
10、抛出异常,必须得在try结构中有throw语句。
11、编译错属于异常,可以抛出。
12、C++标准中提供了一组标准异常类,这些类以Exception类作为基类。 四、简答题
13、请阅读下面的程序,分析程序是否能通过编绎,如果不能,请说明原因;如果能,请写出运行结果。
#include
public: T() { cout << \ try { throw \ } catch (char*) { cout << \ } throw \ } ~T( ) {cout<<\ };
void main() { cout<<\ try { f(); } catch (char *) { cout << \ } cout << \ system(\}
void f( )
博学谷——让IT教学更简单,让IT学习更有效 { T t; }
14、请按照下列要求编写程序:
1)定义一个异常类Cexception,有成员函数reason(),用来显示异常的类型。
2)定义一个函数fun1()触发异常,在主函数try模块中调用fun1(),在catch模块中捕获异
常,观察程序执行流程。 15、请按照下列要求编写程序:
1)定义一个函数my_memcpy(),实现字符串的复制; 2)并用断言检测代码是否有误。
第七章答案
1、抛出异常 捕捉异常 处理异常 标准库中的异常类 类型 2、语法错误 运行错误 可预见异常 不可预见异常 3、try throw catch 4、 throw 0 int
exception_handler(int_n1, int_n2) 5、C 6、D 7、ABCD 8、D 9、对 10、错 11、错 12、对 13、
能通过过编绎; 结果:
main function constructor exception exception2 main function 14、
#define _CRT_SECURE_NO_WARNINGS #include
enum{EXCEPTION_1 = 1, EXCEPTION_2, EXCEPTION_3 }; class CException
博学谷——让IT教学更简单,让IT学习更有效
{
public: CException(int nReason) { m_nReason = nReason; } ~CException() {} void Reason() { cout << \ private: int m_nReason; };
void fn1(){ throw new CException(EXCEPTION_1); } int main() {
try{ fn1(); } catch (CException* e) { e->Reason(); } system(\ return 0; } 15、
#include
void *my_memcpy(void *dest, const void *src, int len)//编写memcpy函数 { int i; char *dest_cp; const char *src_cp;
//内存数据拷贝时,要求目标地址和原始数据所在地址都不为nullptr //若某个地址为nullptr则断言失败 assert(dest && src); dest_cp = (char *)dest; src_cp = (const char *)(src); for (i = 0; i < len; i++) //按字节完成数据拷贝 *dest_cp++ = *src_cp++; return dest_cp; }
int main() { char *dest = nullptr; //设置dest的初值为nullptr
博学谷——让IT教学更简单,让IT学习更有效 //调用my_memcpy()函数,首参数为nullptr my_memcpy(dest, \ return 0; }
第八章题目
一、填空题
1、STL的内容从广义上讲分为三个主要部分:、和。在STL的实现中,数据由管理,操作则由定义,在两者之间充当粘合剂。 2、序列式容器有两种存储方式:和。
3、list列表容器一般实现为链表,而且是链表。vector向量容器一般实现为一个。vector空间所能存储的最多元素的大小叫作向量容器的, 实际存储元素的个数叫做向量容器的。 4、STL中的算法大致分为、、和四类。 二、选择题
5、下列关于序列式容器的描述中,错误的是()
A、序列式容器是各元素之间有顺序关系的线性表,是一种线性结构的有序群集 B、序列式容器中元素都是可序的,但未必是有序的 C、序列式容器有连续存储和链式存储两种方式
D、序列式容器中的元素位置是固定的,无法进行更改 6、下列关于vector向量的描述中,错误的是() A、向量容器一般实现为一个动态分配的数组
B、向量容器中插入元素时,插入位置之后的元素都要被顺序的向后移动 C、将已有元素从微量容器中删除时,多出的闲置空间就会被释放
D、vector向量容器是一种支持高效的随机访问和高效向尾部插入新元素的容器 7、下列选项,哪一个函数无法访问deque队列中的元素() A、push_front() B、at C、front
D、[ ]
8、下列关于pair<>类模板的描述中,错误的是() A、pair<>类模板定义头文件utility中
B、pair<>类模板作用是将两个数据组成一个数据,两个数据可以是同一个类型也可以是不同的类型
C、创建pair<>对象只能调用其构造函数
D、pair<>类模拟提供了两个成员函数first与second来访问这的两个数据 三、判断题
9、STL现在是C++的一部分,被内置于C++编译器中。
10、STL中的容器一经定义大小就是固定的,无法自行进行扩展。
11、vector容器中除了可以使用下标运算符访问元素,还可以使用at(int idx)函数完成相同操
作。
12、STL标准库中提供了四种关联型容器:set(集合)、multiset(多重集合)、map(映射)、multimap(多重映射)。关联型容器都是有序的。