为了帮助大家复习好2014年计算机等级考试,本次我们考吧网特为广大考生整理了计算机等级考试模拟试题,希望广大考生能够喜欢。本次主要汇编了计算机等级《二级C++》精选试题:
一、选择题(每小题1分,共40小题,共40分)
17.下面说法正确的是( )。
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外通过加关键字inline定义
18.静态成员函数没有( )。
A.返回值
B.this指针
C.指针参数
D.返回类型
19.执行下列语句后,输出结果为( )。
cout.put(’S’);
cout<<’C’<<’a’;
A.ca
B.sca
C.S
D.a
20.下面程序的执行结果是( )。
#include"iostream.h"
voidmain()
{int*P,r;
P=newint:
*P=20:
r=sizeof(*p);
cout< deleteP;}
A.程序错误
B.内存为20地址的大小
C.20
D.4
17.B。【解析】内联函数用inline修饰,用于取代C语言中的宏定义。inline是建议机制而不是强制机制,也就是说,程序员可以指定任意函数为inline函数,但是编译器会根据系统情况来决定是否将其inline处理。对于较大的函数,编译器往往会取消其inline特性。inline函数的特点之一就是执行速度快,其实质是在编译时将函数的目标代码插入到每个调用该函数的地方,从而没有出栈入栈、保护现场等开销,提高了效率。在类体内定义的成员函数,自动被编译器当做内联函数处理,在类体外定义的成员函数,如果用inline修饰,则编译器也认为是一种内联建议。
18.B。【解析】this指针是系统隐含的用于指向当前对象的指针。由于静态函数是同类中所有对象都共享的函数,在内存中只存在一份,不属于某个对象所有,所以静态函数没有this指针。
19.B。【解析】本题考查cout对象的成员函数put方法和<<操作符的使用方法。
20.D。【解析】本题考查指针和运算符sizeof的运用。sizeof可以运算出各种数据类型所占内存空间的多少。选项C中,指针P所指向的内存地址中内容是20。在用完申请后的内存应立刻释放。
21.C++语言中关于构造函数的说法正确的是( )。
A.构造函数的函数名不必和类名相同
B.构造函数只能有一个
C.每个类必定有构造函数
D.构造函数必有返回值
22.( )既可重载为一元运算符,又可重载为二元运算符。
A.“*”B.“=”
C.“=”和“*”D.“*”和“*++”
23.类MyClass的定义如下:
classMvClass
{
public:
MyClass(){value=0;}
SetVariable(inti){value=i;}
private:
intvalue;
};
则对下列语句序列正确的描述是( )。
A.语句p=&my;是把对象my赋值给指针变量P
B.语句MyClass*P,my;会调用两次类MyClass的构造函数
C.对语句*P.SetVariable(5)的调用是正确的
D.语句p->SetVariable(5)与语句my.SetVariable(5)等价
24.有如下程序:
#included
usingnamespacestd;
classTestClass
{private:
intX,y;
public:
TestClass(inti,intj)
{x=i;
y=j;}
voidprint()
{cout<<"printl"< voidprint()const
{cout<<"print2"< intmain()
{constTestClassa(1,2);
a.print();
return0;}
该程序运行后的输出结果是( )。
A.printl
B.print2
C.printlprint2
D.程序编译时出错
21.C。【解析】本题考查构造函数的概念。构造函数可以被重载,函数名必须和类名相同;构造函数可以有一个,也可以有多个;构造函数没有返回值。
22.A。【解析】本题考查的是运算符的有关概念。“*”是二元运算符,既可用于间接访问也可用于两数相乘;而“=”和“*++”都是一元运算符。
23.D。【解析】选项A,语句P=&rny;是把对象my的地址值赋值给指针变量P;选项B,语句MyClass*P,my;中由于P只是一个指向对象的指针,因此定义指针P不调用构造函数,所以此语句只调用一次构造函数:对成员函数的引用可以通过两种形式:指针一>成员函数(形参表),或者对象名.成语函数名(形参表),故选项C错误,选项D正确。
24.B。【解析】本题由主函数main入手,定义TestClass型的常对象a,然后调用对象a中的成员函数print()。因为在C++中,如果一个对象被声明为常对象,则不能调用该对象中的非eonst型的成员函数。所以,这里调用的是对象中的const型成员函数“voidprint()const”,输出为print2。
推荐阅读: