执行下面程序,输出结果是( )。 int divi(int a,int b){ if(b==0) throw 0; return a/b; } int main(){ try{ cout << divi(10,0); }catch(const char* msg){ cout << "A"; }catch(int){ cout << "B";
A:A
B:B
C:程序崩溃
D:无输出
正确答案:B
答案解析
分析程序结构,识别函数divi的异常抛出条件;观察main函数中try块内的函数调用参数;确定实际传递给divi的参数值是否触发异常;判断throw 0语句执行时抛出的异常类型;根据C++异常处理机制,匹配catch块的捕获顺序与异常类型兼容性;确认是否存在能捕获int类型异常的处理块;检查是否有其他catch块可能介入处理。
试卷来源:202603 CCF-GESP编程能力等级认证C++四级真题