C++课后习题(5)

2019-08-30 23:18

博学谷——让IT教学更简单,让IT学习更有效 2、cerr 3、unsetf() 4、

cin.getline line > max

5、C 6、D 7、C 8、A 9、对 10、对 11、对 12、错

13、C++系统将输入输出分为三类:标准I/O流、文件I/O流、串I/O流。 1)、标准I/O流

内存与标准输入输出设备(键盘与显示器)之间的数据传递,即从键盘输入数据,输出到显示器屏幕,这种输入输出称为标准输入输出,简称为标准I/O。 2)、文件I/O流

以磁盘(或光盘)文件为对象进行输入和输出,例如从磁盘文件输入数据,数据输出到磁盘文件。这种以外存文件为对象的输入输出称为文件的输入输出,简称为文件I/O。 3)、串I/O流

对内存中指定的空间进行输入输出,通常指定一个字符数组为存储空间(实际上可以利用该空间存储任何信息),这种输入输出称为字符串输入输出,简称为串I/O。 14、

#include #include #include using namespace std; void main(void) { string str; fstream fs(\构建文件流对象,并打开桌面文件data.txt if (!fs) //判断文件打开是否成功 { cout << \ exit(0); } cout << \ while (1) //循环输入字符串,直到输入end,结束输入 { getline(cin, str); if (str == \ break;

博学谷——让IT教学更简单,让IT学习更有效 }

fs << str << endl; }

fs.close(); //关闭文件

fs.open(\以输入方式打开文件 while (!fs.eof()) //如果文件没有读取到结尾 { fs >> str; //将文件内容输出到str变量中 cout << str << endl; //输出str内容 }

fs.close(); system(\

15、

#include #include using namespace std; int main() { char buf[50] = \ int arr[10]; cout << \ istrstream istr(buf, sizeof(buf)); //构造输入字符串流与buf关联 for (int i = 0; i < 10; i++) istr >> arr[i]; //从字符数组buf中读入10个整数赋给整型数组arr cout << \ for (int i = 0; i < 10; i++) cout << arr[i] << \ cout << endl;

for (int i = 0; i < 9; i++) //冒泡法对数组arr进行排序 { for (int j = 0; j < 9 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } }

}

博学谷——让IT教学更简单,让IT学习更有效

}

ostrstream ostr(buf, sizeof(buf)); //构造输出字符串流与buf关联 for (int i = 0; i < 10; i++) ostr << arr[i] << \将10个整数存放入字符数组buf ostr << ends; //ends是C++的I/O操作符,插入一个'\\0' cout << \system(\return 0;

第七章题目

一、填空题

1、相比C语言简单的异常处理方式,C++异常处理机制由一下几部分构成:、、、。捕获异常

是根据抛出的表达式的 进行检测的。 2、一般来说,异常可以分为两类,一类是,一类是。在C++程序中,常见的错误有两种,和。 3、C++中引入关键字用于检测异常、关键字用于抛出异常、关键字用于实现异常处理。 4、请阅读下面的程序,请在空白处填写正确的代码,以实现除零异常的重抛。 #include #include using namespace std;

int int_div(int a, int b) //实现整数相除的函数 { if (b == 0){ ; } return a / b; }

void exception_handler(int n1, int n2) { try{ cout << \ cout << n1 << \ << int_div(n1, n2) << endl; cout << \ } catch () { cout << \ << n << \ throw n; } }

博学谷——让IT教学更简单,让IT学习更有效

int main() { int int_n1, int_n2; while (1){ cout << \ cin >> int_n1 >> int_n2; try{ ; } catch (int) { cout << \ } } return 0; }

二、选择题

5、下列关于函数声明 float fun(int a,int b)throw的叙述中,正确的是() A、表明函数抛出float类型异常 B、表明函数抛出任何类型异常 C、表明函数不抛出任何类型异常

D、表明函数实际抛出的异常

6、下列关于C++异常处理的流程的描述中,错误的是() A、对某段可能产生异常的代码或函数使用try结构进行检测

B、如果在执行try结构期间没有引起异常,则跟在try后面的catch结构不会执行

C、如果在执行try结构期间发生异常,则在异常发生的位置使用throw抛出异常,一个异常对象将被创建

D、本层try语句抛出了异常,只能由本层的catch语句处理 7、下列关于标准库异常的描述中,正确的是()

A、标准库提供了异常基类exception,程序抛出的所有异常都派生自该基类 B、异常基类exception定义在头文件exception中

C、exception类接口中的函数都有一个空的异常规范throw(),这表示exception类成员函数不会抛出任何异常

D、异常基类有一个成员函数what(),它描述抛出异常的相关信息。 8、下列关于断言的描述中,错误的是() A、断言是调试程序的一种手段

B、若断言情况发生,一般会终止程序

C、在C++中,宏assert()用来在调试阶段实现断言 D、断言在程序调试与发布版本中都可以使用断言 三、判断题

博学谷——让IT教学更简单,让IT学习更有效

9、若始终未找到与异常匹配的catch子句,即到main()函数还未实现异常匹配,则运行库函数terminate(),终止程序。

10、抛出异常,必须得在try结构中有throw语句。

11、编译错属于异常,可以抛出。

12、C++标准中提供了一组标准异常类,这些类以Exception类作为基类。 四、简答题

13、请阅读下面的程序,分析程序是否能通过编绎,如果不能,请说明原因;如果能,请写出运行结果。

#include using namespace std; void f(); class T {

public: T() { cout << \ try { throw \ } catch (char*) { cout << \ } throw \ } ~T( ) {cout<<\ };

void main() { cout<<\ try { f(); } catch (char *) { cout << \ } cout << \ system(\}

void f( )


C++课后习题(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:夏令营开营仪式学生代表发言

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: