国家二级(C++)机试模拟试卷294
选择题
1.下列符号中,正确的C++标识符是( )。(D)
A. enum
B. 2b
C. foo-9
D. 32
解析:本题考查C++标识符的命名规则,规定如下:①所有标识符可以由字母、数字和下画线组成,且必须以字母或下画线开头;②C++的关键字不能作为标识符;③大、小写字母表示不同意义,即代表不同的标识符,如mun和Mun。A选项是C++的关键字,B选项不能以数字开头,C选项“-”不能用于组成标识符。
2.分析下面程序,该程序的运行结果是( )。
#include
class TestClass
{
public:
static int m:
TestClass()
{
m++;
}
TestClass(int n)
{
m=n;
}
static void test()
{
m++:
}
};
int TestClass::m=0;
void main()
{
TestClass A;
TestClass B(3);
A.test();
TestClass::test();
cout<<”m=”<<B.m<<end1}:
}(C)
A. m=3
B. m=4
C. m=5
D. m=6
解析:由主函数main入手,首先定义TestClass对象A,B:对象B构造函数值为3,构造函数中m++,所以这时m=4。主函数中调用A.test(),因为“static int m:”,m被定义为类TestClass静态成员变量,当它的值改变后,则在各对象中这个数据成员的值都同时改变了。所以这里执行“A.test();”中的m为前面进行加1操作后的4,即m现在的值为5。
3.下列哪项不是面向对象程序设计的主要特征( )。(D )
A. 封装
B. 继承
C. 多态
D. 结构
解析:面向对象程序设计的特点:标识惟一性,分类性,多态性,封装性,模块独立性好。
4.以下程序的输出结果是( )。
main()
{int a=4,b=5,c=0,d;
d=!a&&!b‖!C;
cout<<d<<<end1;
)(A)
A. 1
B. 0
C. 非0的数
D. ﹣1
解析:本题考查逻辑运算,只要考生掌握了逻辑运算的优先级就可以正确得到答案为选项A。或运算的优先级最高,&&和!!的优九级相同,按照从左到右的顺序计算。
5.有如下函数模板:
template
T east(U u){return U;}
其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数east的调用中正确的是( )。(D)
A. cast(i);
B. east(i);
C. east(i);
D. cast(i);
解析:本题考查函数模板的基本运用,属于基础知识。函数模板实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型代表,这个通用函数就是函数模板。函数模板可以设定默认参数,这样在调用模板函数时就可以省略实参,函数模板的实例就是一个函数的定义。所以本题答案为D。
6.关于运算符重载,下列表述中正确的是( )。(C)
A. C++已有的任何运算符都可以重载
B. 运算符函数的返回类型不能声明为基本数据类型
C. 在类型转换符函数的定义中不需要声明返回类型
D. 可以通过运算符重载来创建C++中原来没有的运算符
解析:重载运算符的规则如下:①C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是C++的标准类型。故本题答案为C。
7.有如下程序:
#include
using namespace std;
class test{
private:
int a;
public:
test(){tout<<\\(D)
A. 3
B. constructor
destructor
C. copy constructor
destructor
D. 3
destructor
解析:本题考查默认构造函数和带参数的构造函数以及析构函数,本题中定义了一个对象A(3),对象带着参数,所以执行带参数的构造函数,输出3,然后执行析构函数,输出destructor。所以本题答案为D。
8.以下程序的正确运行结果是( )。
#include
int fun(int);
voidmain()
{
hat a=2,i;
for(i=0;i<3;i++)
cout<<fun(a)<<endl;
cout<<endl;
}
intfun(int a)
{
int b=0;
static int c=3:
b++;c++;
remrn(a+b+c);
(C )
A. 4,5,6
B. 6,7,9
C. 7,8,9
D. 7,7,7
解析:主函数中在for循环中依次调用fun函数。其中c为静态变量,到程序结束有效。第一次循环中2+1+4=7,第二次循环20+1+5=8,第三次循环2+1+6=9。即答案为7 8 9。
9.为了提高函数调用的实际运行速度,可以将较简单的函数定义为( )。(A)
A. 内联函数
B. 重载函数
C. 递归函数
D. 函数模板
解析:一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换,一般只将规模很小而使用频繁的函数声明为内联函数,可以避免函数调用时间开销,从而提高运行速度。
10.下列有关类继承的叙述中,错误的是( )。(D)
A. 继承可以实现软件复用
本文档预览:3600字符,共17575字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载