📅  最后修改于: 2023-12-03 15:42:18.547000             🧑  作者: Mango
这是一道来自 GATE-CS-2016(套装1)的面试题,题号为 29。这道题目主要考察对于编程语言中一些概念的掌握和运用能力。
题目给出了一个 C++ 程序,要求分析其输出结果,并选择对应的选项。
以下是程序代码:
#include <iostream>
using namespace std;
int main()
{
int x = 0;
cout << "Enter a number: ";
cin >> x;
try
{
if(x == 0)
throw 'x';
if(x == 1)
throw 1.0;
cout << x << endl;
}
catch(char c)
{
cout << "Caught a character: " << c << endl;
}
catch(double d)
{
cout << "Caught a double: " << d << endl;
}
catch(int i)
{
cout << "Caught an integer: " << i << endl;
}
return 0;
}
该程序采用了 try-catch
异常处理机制,其中 try
后面跟的是有可能产生异常的代码块,而 catch
后面则写明了这个异常被捕获后要执行的相应代码块。
程序中,用户需要输入一个整数,并将输入的整数赋值给变量 x
。之后进入 try
代码块,首先判断 x
是否等于 0
,如果相等,则抛出一个字符常量 'x'
;否则判断是否等于 1
,如果相等则抛出一个浮点型常量 1.0
;如果都不满足,则输出 x
的值。
在 catch
块中,分别写明了三个处理不同异常的分支。如果抛出的异常是字符型,则输出一个指定的字符串;如果是浮点型,则输出另一个指定的字符串;如果是整型,则输出一个整数。
最后程序结束。
根据程序代码可以得到如下输出结果:
Caught a character: x
Caught a double: 1
根据程序的输出结果,可以选择以下选项作为答案:
A. Caught a double: 0
B. Caught a character: 0
C. Caught an integer: 0
D. Caught a double: 1
E. Caught a character: x
正确答案为 E。