- 相关推荐
2016年12月计算机二级C++备考试题及答案
计算机等级证书是我们找工作的敲门砖,现在越来越多人重视计算机等级考试。下面是百分网小编为大家带来的2016年12月计算机二级C++备考试题及答案,希望对大家的学习有帮助!

试题一
(1)关于友元的概念错误的是
A)友元函数没有this指针
B)调用友元函数时必须在它的实参中给出要访问的对象
C)一个类的成员函数也可以作为另一个类的友元函数
D)只能在类的公有段声明友元
(2)关于抽象类下面说法正确的是
A)抽象类就是其中有函数定义但没有实现的类
B)抽象类是可以被实例化的
C)派生类不能成为抽象类
D)抽象类的子类必须实现父类中的纯虚函数
(3)下面程序的结果是
#include
class test { private:
int num;
public:
test();
int getint(){return num;}
~test();};
test :: test()
{ num =0;}
test::~test()
{ cout<<"Destructor is active"< P>
{ test x[3];
cout<<"Exiting main"<>
Destructor is active
Destructor is active
Destructor is active
B)Exiting main
Destructor is active
Destructor is active
C)Exiting main
Destructor is active
D)Exiting main
(4)如果表达式--x+y中,--是作为成员函数重载的, +是作为成员函数重载的,则该表达式还可为
A)y.operator+(x.operator--(0))
B)y.operator+(x.operator--())
C)y.operator+(operator--(x,0))
D)operator+(x.operator--())
(5)下列语句不能够用于打开C根目录下文件test.txt的语句是
A)ifstream fin; fin.open("C:\\test.txt");
B)ifstream fin("C:\\test.txt");
C)A)和B)
D)ifstream fin; fin("C:\\test.txt");
(6)以下哪个基类中的成员函数表示纯虚函数?
A)virtual void vf (int)
B)void vf (int)=0
C)virtual void vf(=0)
D)virtual void yf(int){ }
(7)下面程序输出的结果是
#include
void main()
{ int i;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
cout << a[i][i] << " ";}
A)1 5 9
B)7 5 3
C)3 5 7
D)5 9 1
(8)派生类继承基类的方式有
A)public
B)private
C)protected
D)以上都对
(9)下列程序的运行结果为
#include
class Location {
protected:
int X, Y;
public:
void SetX(int myx){X=myx;}
void SetY(int myy){Y=myy;}
void showxy(){cout << "X=" << X << " " << "Y=" << Y <>
private:
int H, W;
public:
void SetH(int myh){H=myh;}
void SetW(int myw){W=myw;}
void show(){ cout << "X=" << X << " " << "Y=" << " " << Y << " " << "H=" << H << " " << "W=" << W << endl;}};
void main()
{ Rectangle r1;
r1.SetX (3);
r1.SetY (5);
r1.SetH (4);
r1.SetW (6);
r1.showxy();
r1.show();}
A)X=3 Y=5
X=3 Y=5 H=4 W=6
B)X=3 Y=5
X=3 Y=5 H=3 W=6
C)X=3 Y=5
X=3 Y=4 H=4 W=6
D)X=3 Y=5
X=3 Y=3 H=4 W=6
(10)有以下程序
#include
void ss(char *s,char t)
{ while(*s)
{ if(*s==t)*s=t-′a′+′A′;
s++;}}
void main()
{ char str1[100]="abcddfefdbd",c=′d′;
ss(str1,c); cout << str1;}
程序运行后的输出结果是
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA
D)Abcddfefdb
答案解析:
(1)D
解析: C++中的友元可以在一个类中的任何位置声明,不一定必须在公有段,友元没有自己的this指针,调用友元函数时必须在它的实参中给出要访问的对象,并且一个类的成员函数是可以作为另一个类的友元函数的。
(2)D
解析: C++语言中的抽象类就是类中至少有一个纯虚函数的类,抽象类不能被实例化,继承抽象类的类必须实现抽象类中的纯虚函数。
(3)A
解析: C++语言中析构函数是在程序退出不用该类的对象时进行调用。
(4)B
解析: C++语言中用成员函数重载--x为:x. operator--(),用成员函数重载x+y为:x. operator+(y)。
(5)D
解析: C++语言中打开文件有两种方式① ifstream fin("test.dat")② ifstream fin;fin.open("test.dat");。
(6)B
解析: C++中纯虚函数的定义与虚函数的关键字一样,在函数末尾要加上"=0"。
(7)A
解析: 首先,当i=0时,数组中的位置是a[0][0]=1,当然,如果用排除法的话,就不用考虑后面的循环了,因为在4个选项中,第1个数为1的选项只有A)。本题执行第2次循环时,i的值为1,则cout函数中的数组指向为a[1][1]=5,依次循环,可求出答案。
(8)D
解析: 派生类继承基类的方式有3种:public,private和protected,常用的是public.
(9)A
解析: 本题是一道简单的成员函数应用题,考生只要按着主函数中生成的类Rectangle的对象r1进行成员函数的调用即可得到答案。
(10)B
解析: 在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式相类似。C++语言使字符型数据和整型数据之间可以通用。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。
试题二
1)有以下程序
#include
void main()
{ int a=5,b=0,c=0;
if(a=b+c)cout << "***"<< ?$$$?<下列选项叙述正确的是<>
A)有语法错不能通过编译
B)可以通过编译但不能通过连接
C)输出***
D)输出$$$
(2)已知各变量的定义如下
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C++语言语法的表达式是
A)a+=a-=(b=4)*(a=3)
B)a=a*3+2
C)x%(-3)
D)y=float i
(3)以下程序中循环体总的执行次数是
int i,j;
for(i=6;i>1;i--)
for(j=0;j{……}
A)20
B)261
C)15
D)25
(4)对于下面的程序,说法正确的是
#include
void main()
{ int x=3,y=4,z=2;
if(x=y+z)cout << "x=y+z";
else cout << "x!=y+z";}
A)不能通过编译
B)输出6
C)输出x!=y+z
D)输出x=y+z
(5)下列程序的输出结果是
#include
void main()
{ int a[3],i,j,k=2;
for(i=0;i<3;i++)a[i]=i;
for(i=0;ifor(j=0;ja[j]=a[i];
cout << a[2];}
A)2
B)3
C)1
D)0
参考答案:
(1)D
解析: 解答本题时,先判断if语句,因为a=b+c为零,则执行else语句。
(2)A
解析: 选项B)中a在运算前未赋初值,在C++语言里变量在运算前必须赋初值;选项C)中的模运算符"%"两侧均应为整型数据;选项D)应改为y=(float)i。
(3)A
解析: 本题中第1个for循环执行5次后结束,第2个for循环执行5次。第2个for循环中第1次执行了6次,第2次执行了5次,第3次执行了4次,第4次执行了3次,第5次执行了2次,共20次。
(4)D
解析: 解答本题关键是要理解if后面的括号里的是赋值语句而并非关系判断,赋完值后x不等于零,C++语言里非零都作真处理,所以输出结果为"x=y+z",故答案为选项D),注意"="与"=="的区别。
(5)A
解析: 本题里有三个for循环,但要分清楚,第一个是单独的给三个元素赋值,赋完值后三个a[0]=0,a[1]=1,a[2]=2;后面的两个for是嵌套循环,对数组元素的赋值,但由于k=2,初值已定for里的条件是小于k,所以不管怎么处理都影响不到a[2],故答案为2。
【12月计算机二级C++备考试题及答案】相关文章:
12月计算机二级备考练习试题及答案10-24
计算机二级考试C++备考练习试题及答案10-16