跳转至

练习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