试题

12月计算机二级C++练习题及答案

时间:2025-04-27 03:30:39 试题 我要投稿

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)有以下程序

  #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++练习题及答案】相关文章:

2017年12月计算机二级C++考前练习题及答案07-20

2016年9月计算机二级《C++》练习题及答案03-06

2017年3月计算机二级C++练习题及答案04-27

2015年9月计算机二级C++练习题及答案07-27

2016年12月计算机二级C++备考题及答案03-28

2016年12月计算机二级C++备考习题及答案03-30

2016年12月计算机二级C++备考习题及答案02-10

12月计算机二级Java练习题及答案06-26

2017年3月计算机二级《C++》单选练习题及答案07-24