当前位置:文档之家› 异常处理

异常处理

2、关于结构体、共用体及类的说法正确的是()。B
A)结构体、共用体没有什么不同,都是把不同或相同类型的数据组织为一体
B)一般来说,结构体、共用体只有数据成员,没有成员函数
C)结构体、共用体与类相比,都含有数据成员的成员函数,只是前者是专为面向过程的程序设计的,后者为面向对象的程序设计的
D)类可只含数据成员或成员函数,不影响使用
}
the double value 8 was thrown
(2)
#include<iostream.h>
Class exception
{ private: char *ch;
Public:
Exception(char *m) { ch=m; }
Voidprint( ) { cerr<<ch<<endl; }
};
Void main( )
{
Try { throw exception(“this is a exception”); }
Catch( exception &t )
{ t.print( ); throw exception(“this is another exception”); }
}
this is a exception
C)try语句块之后可以紧跟多跟catch语句块
D)catch必须有参数
(9)下列关于catch的说法不正确的是()。C
A)它用来接受抛弃的数据并进行异常处理
B)它所捕获的数据类型与异常处理程序的数据类型相匹配
C)它可以通过类型相容或自动转换来接受抛弃的数据
D)为了避免派生类catch不能捕获异常,基类catch总是放在派生类catch后
Public:
Exception(char *m) { ch=m; }
Void print( ) { cerr<<ch<<endl; }
};
Void fun1( )
{ throw exception(“exception1”); }
Void fun2( )
{ try { fun1( ); }
Catch(exception2&t2) { cerr<<fun1:catch“;t2.print( ); }
(2)异常处理的目的是(异常发生时,尽可能减少破坏,妥善处理,不影响其他程序的运行)。
(3)用来定义异常的语句块是(try),定义异常处理的语句块是(catch),抛弃异常的语句块是(throw)。
(4)在try块后必须(紧跟)一个或多个catch块,catch的形参只能是(一个),它的数据类型必须与抛弃的数据类型(一个匹配,不允许数据相容或转换)。
C) char *p; p=’c’D)int i=5; j=5;
(2)下列()可以引起运行异常。B
A)数组长度不足B)硬件资源不符合要求C)数组下标溢出D)相关头文件未被引用
(3)下列说法正确的是()。C
A)当异常产生时,可中断程序从头开始
B)当异常产生时,必须恢复、继续运行程序
C)具体程序处理异常的方法可不同
A)前者创建的对象是全局对象后者创建的对象是局部性的
B)前者创建的对象的作用域是整个程序,后者创建的对象的作用域是所在的函数
C)前者创建的对象在整个程序运行期间都可被调用
D)后者创建的对象的生存期也是整个程序
14、假设person是一个类,p1是该类的一个对象,p2是一个指向p1的指针,getname()是其中的一个函数,则下面对象的使用不正确的是()。A
}
Void main( )
{ try { fun2( ); }
Catch(exception1 &t1) { cerr<<”main:catch“;t1.print( );}
}
main:catch exception1
(5)
(1)程序错误一般来说有两种,它们是(语法错误)、(运行错误),后者可以分为(逻辑错误)、(运行异常)。
D)在程序中嵌入错误处理语句就可以防止程序异常的出现
(4)下面程序的输出结果是()。A
#include<iostream.h>
Int a(int b,int c)
{ if(c==0) throw c;
Return b/c;
}
Void main( )
{
Try
{ cout<<”9/7:<<a(9,7)<<endl;
Void fun2( )
{ try { fun1( ); }
Catch(…) { cerr<<fun1:catch“; throw; }
}
Void main( )
{ try { fun2( ); }
Catch(…) { cerr<<”main:catch“; }
}
fun1:catch main:catch
6、对于类的私有成员、公有成员的正确说法是()。D
A)所有成员只对内,不对外
B)公有成员也叫接口,是与外部联系的通道
C)私有成员主要对数据成员而言,当然有些成员函数也是私有的
D)类的私有成员、公有成员只是相对而言,可以随时改变的
7、对于对象和类的关系,说法不正确的是()。C
A)同属于一类的对象,具有相同的数据成员和成员函数
(4)
#include<iostream.h>
Class exception1
{ private: char *ch;
Public:
Exception(char *m) { ch=m; }
Void print( ) { cerr<<ch<<endl; }
};
Class exception2
{ private: char *ch;
异常处理:
(1)
#include<iostream.h>
voidmain( )
{
try
{ int a=8;
doubleb=8.8;
throwa<b?a:b;
}
catch( int x ) { cout<<”the int value“<<x<<”was thrown”<<endl; }
catch( double y ) { cout<<”the double value“<<y<<”was thrown”<<endl; }
(10)当程序中没有与被抛的数据的类型相匹配的catch语句块时,则系统调用的函数是()。B
A)throw B)abort C)try D)catch
类和对象
1、关于继承和封装说法正确的是()。C
A)封装就是完全封闭,外部只能通过接口实现互连
B)继承是封装的基础
C)封装是继承的基础
D)子类可只继承父类的部分可继承行为和属性,也可全部继承,就像儿子可继承父亲的部分性格一样
B)构造函数的名字与类名相同,因此同类的不同对象的构造函数是相同的
C)构造函数的参数多少没有定制,它的返回值的类型为vois型
D)构造函数的名字与类名相同,因此一个类只有一个构造函数,即构造函数不可重载
23、关于析构函数的说法,正确的是()。A
A)析构函数用来释放构造函数为对象分配的内存空间。它可以被用户调用,也可以被系统调用
}
A) 8/5:1 B) 8/5:1 C) 8/5 D) 8/5
6/3:2 end 6/3:2 5/0:
End end end
(6)假设下列程序在执行过程中输入8 5 5 0 6 0 8 5 5 0 7 8,则其输出结果是()。B
#include<iostream.h>
Void mian( )
{ int a,b;
B)析构函数没有数据类型,其返回值为隐含型
C)析构函数可以没有参数,也可以有多个参数
D)析构函数与构造函数不一样,它可以有多个,以方便使用
30、关于成员函数的重载,说法正确的是()。C
A)就是在类中设计多个函数名相同,参数个数及类型也相同的函数
cin>>a>>b; if(b==0) throwb; cout<<a<<”/”<<b<<”:”<<a/b<<endl;
cin>>a>>b; if(b==0) throwb; cout<<a<<”/”<<b<<”:”<<a/b<<endl;
}
Catch( int ) { cout<<”end”<<endl; }
A)person.getname( ) B)p1.getname( ) C)p1.person::getname( ) D)p2->getname( )
22、关于构造函数的说法,正确的是()。B
A)构造函数用于代替类中的一个成员函数来在创建对象时给对象赋初值(通常是成员变量),它是由人工设计的,因此可以在任何时候、任何地方来调用它
12、关于内联函数的说法不正确的是()。D
A)在说明类的同时定义成员函数,则函数隐含为内联函数
B)可以在类外用inline关键字,对成员函数进行说明,则该函数也为内联函数
C)当内联函数被调用时,内联函数的代码在调用处被展开
D)当内联函数被调用时,内联函数将返回结果
13、对象的创建可以在定义类的同时创建对象,也可以在使用对象时创建,关于这两种说法正确的是()。D
相关主题