跳转至

练习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) {}  
}  
- A. 13
- 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"; }  
}  
- A. 212123
- 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";  
}  
}  
- A. 14432
- 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; }  
}  
- A. ST
- 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];  
}  
- A. s=55
- 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" ;  
}  
- A. 6178
- B. 61378
- C. 61578
- D. 613578


练习10-异常处理答案

正确答案列表:

  1. B
  2. C
  3. C
  4. B
  5. C
  6. B
  7. C
  8. D
  9. A
  10. D
  11. B