练习10-异常处理
练习10-异常处理
题量: 11 满分: 100
作答时间:05-10 19:46 至_06-15 19:46_
1.(单选题) 以下不属于异常处理可以解决的问题是( )。
- A. 环境条件出现意外
- B. 出现编译错误
- C. 用户操作不当
- D. 除数为零
2.(单选题) 以下关于异常处理的说法正确的是( )。
- A. 异常的抛出和处理必须在同一个函数中完成
- B. 每个try语句只能和一个catch语句一起使用
- C. C++运行系统可以处理程序没有处理的异常
- D. 异常是不能传播的
3.(单选题) 能够处理任何类型异常的catch 语句是( )。
- A. catch() {}
- B. catch(all) {}
- C. catch(…) {}
- D. catch_all() {}
4.(单选题) 关于函数声明double fun(int a,int b) throw(),下列叙述正确的是( )。
- A. 表明函数抛出double类型异常
- B. 表明函数不抛出任何类型异常
- C. 表明函数可抛出任何类型异常
- D. 表明函数抛出int类型异常
5.(单选题) 下列叙述错误的是()。
- A. catch(…)语句可捕获所有类型的异常
- B. 一个try语句可以有多个catch语句
- C. catch(…)语句可以放在catch语句组的中间
- D. 程序中try语句与catch语句是一个整体,缺一不可
6.(单选题) 以下程序的运行结果是( )。
#include<iostream>
using namespace std;
class excption1{
public:
excption1() { cout << "1"; }
excption1(const excption1& e) { cout << "2"; }
~excption1() { cout << "3"; }
};
int divide(int a, int b){
if (b == 0)
throw excption1();
else return a / b;
}
int main(){
try { cout << divide(9, 0) << endl; }
catch (excption1 e) {}
}
- B. 1233
- C. 122333
- D. 12223333
7.(单选题) 下面这个程序的输出结果是( )。
#include<iostream>
using namespace std;
void fun(int x){
for(int i=1;i<=x;i++){
try {
if(i==2) throw i;
if(i==3) throw 'i';
}
catch(int) { cout<<"1"; }
cout<<"2";
}
}
int main(){
try { fun(2); fun(3); }
catch(char) { cout<<"3"; }
}
- B. 2123
- C. 2122123
- D. 212122123
8.(单选题) 下面这个程序的输出结果是( )。
#include<iostream>
using namespace std;
int main(){
for (int i = 1;i <= 5;i++){
try {
if (i == 3) throw '0';
if (i == 5) throw "0";
if (i == 1) throw 0;
}
catch (int) { cout << "1"; }
catch (const char *) { cout << "2"; }
catch (...) { cout << "3"; }
cout << "4";
}
}
- B. 144342
- C. 1443424
- D. 14434424
9.(单选题) 下面这个程序的输出结果是( )。
#include<iostream>
using namespace std;
class S {
public:
~S() { cout << "S"; }
};
char fun(){
S s1;
throw 'T';
return '0';
}
int main(){
try { cout << fun(); }
catch (char c) { cout << c; }
}
- B. OST
- C. OT
- D. T
10.(单选题) 下面这个程序的输出结果是( )。
#include <iostream >
using namespace std;
int a[10] = { 1,2, 3, 4, 5, 6, 7, 8, 9, 10 };
int fun(int i);
int main(){
int i, s = 0;
for (i = 0;i <= 10;i++){
try { s = s + fun(i); }
catch (int) { cout << "数组下标越界! "; }
}
cout << "s=" << s << endl;
}
int fun(int i){
if (i >= 10) throw i;
return a[i];
}
- B. 数组下标越界!
- C. 数组下标越界! s=45
- D. 数组下标越界! s=55
11.(单选题) 下面这个程序的输出结果是( )。
#include <iostream>
using namespace std;
class T{
public:
T() {cout << "1" ;
try{ throw "2"; }
catch (const char*){ cout << "3"; }
throw "4";
}
~T() { cout << "5"; }
};
void f() { T t; }
int main(){
cout << "6";
try { f(); }
catch (const char *) { cout << "7" ; }
cout << "8" ;
}
- B. 61378
- C. 61578
- D. 613578
练习10-异常处理答案
正确答案列表:
- B
- C
- C
- B
- C
- B
- C
- D
- A
- D
- B