博学谷——让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
博学谷——让IT教学更简单,让IT学习更有效 }
fs << str << endl; }
fs.close(); //关闭文件
fs.open(\以输入方式打开文件 while (!fs.eof()) //如果文件没有读取到结尾 { fs >> str; //将文件内容输出到str变量中 cout << str << endl; //输出str内容 }
fs.close(); system(\
15、
#include
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
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
public: T() { cout << \ try { throw \ } catch (char*) { cout << \ } throw \ } ~T( ) {cout<<\ };
void main() { cout<<\ try { f(); } catch (char *) { cout << \ } cout << \ system(\}
void f( )