1、国家二级 C+机试(选择题)-试卷 4 及答案解析(总分:80.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列程序的运行结果为( )。 #include void print(double a) cout=C.:D.13.当使用 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。(分数:2.00)A.ios:inB.los:outC.ios:in | ios:outD.以上都不对14.下列程序的运行结果是( )。 #include class A int a; public: A()a=0; A(int aa) a=aa: c
2、out0;i-=3)n+; n 的值是( )。(分数:2.00)A.23B.24C.25D.7138.下列关于函数的叙述中,正确的是( )。(分数:2.00)A.C+不允许函数嵌套定义B.C+中所有函数都有返回值C.函数的形参列表一定不能为空D.调用函数时一定会执行完函数体的最后一条语句39.下列关于运算符重载的叙述中,正确的是( )。(分数:2.00)A.不能改变重载运算符的优先级B.运算符只能重载为类的成员函数C.C+中已有的任何运算符都可以重载D.可以为重载运算符函数的参数设置默认值40.下列运算符中,可以重载为类的友元函数的运算符是( )。(分数:2.00)A.=B.()C.=C.:
3、D.解析:解析:不能被重载的运算符还包括:“”、“*”、“一*”和“?:”。13.当使用 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。(分数:2.00)A.ios:inB.los:outC.ios:in | ios:outD.以上都不对 解析:解析:使用 fstream 类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。14.下列程序的运行结果是( )。 #include class A int a; public: A()a=0; A(int aa) a=aa: cout0;i-=3)n+; n 的值是( )。(分数:2.00)A.2
4、3B.24 C.25D.71解析:解析:for 循环中,i 初值为 70,每次循环 i 自减 3,n 自增 1,循环终止条件为 i0 不成立;由703=23,可知循环最少执行 23 次,之后 i 取值为 1,仍然满足循环条件,所以循环总共执行 24 次,n自增 24 次,答案为 B。38.下列关于函数的叙述中,正确的是( )。(分数:2.00)A.C+不允许函数嵌套定义 B.C+中所有函数都有返回值C.函数的形参列表一定不能为空D.调用函数时一定会执行完函数体的最后一条语句解析:解析:C+中函数可以不返回任何值,不返回任何值指定返回类型为 void 类型;函数形参表可以为空,但不能省略;函数调
5、用过程中,可能会由于 return 语句或者异常终止执行,不一定会执行完最后一条语句;B、C、D 错误;函数不允许嵌套定义,答案为 A。39.下列关于运算符重载的叙述中,正确的是( )。(分数:2.00)A.不能改变重载运算符的优先级 B.运算符只能重载为类的成员函数C.C+中已有的任何运算符都可以重载D.可以为重载运算符函数的参数设置默认值解析:解析:操作符“”不能重载为成员函数,选项 B 错误;成员访问操作符“”、成员指针访问操作符“:c”、域操作符“:”、sizeof 和条件操作符“?:”是不能重载的,选项 C 错误;除了函数调用操作符“()”外,重载操作符时使用默认参数是非法的,选项 D 错误;重载操作符不能改变操作符的优先级别,选项 A 正确;答案为 A。40.下列运算符中,可以重载为类的友元函数的运算符是( )。(分数:2.00)A.=B.()C.”必须重载为成员函数,这些操作符定义为非成员函数将在编译时标记为错误,友元函数是非成员函数,上面四种操作符不能重载为类的友元函数,另外成员访问操作符“”不能重载,答案为 D。