就业数据资源平台
当前位置:首页 > C++语言程序设计
计算机等级考试二级C++模拟试题一[4]

   14.下面关于数组的描述错误的是(     )

  A.在C++语言中数组的名字就是指向该数组第一个元素的指针


  B.长度为n的数组,下标的范围是0~n-1


  C.数组的大小必须在编译时确定


  D.数组只能通过值参数和引用参数两种方式传递给函数


  【参考答案】D


  15.下面的哪个选项不能作为函数的返回类型?(     )


  A.void        B.int        C.new        D.long


  【参考答案】C


  16.下列程序的输出结果为(     )


  #include<iostream.h>


  int func(int n)


  {if(n<1) return 1;


  else return n+func(n-1);


  return 0;}


  void main()


  {cout<<func(5)<<endl;}


  A.0        B.10        C.15        D.16


  【参考答案】D


  17.以下程序中,错误的行为(     )


  1.#include<iostream.h>


  2.class A


  3.{


  4.public:


  5.int n=2;


  6.A(int val) {cout<<val<<endl;}


  7.~A(){ }


  8.{;


  9.void main()


  10{


  11.A a(0);


  12.}


  A.5        B.6        C.7        D.11


  【参考答案】A


  18.下面程序的运行结果为(     )


  #include<iostream.h>


  class A


  {


  int num;


  public:


  A(int i){num=i;}


  A(A &a){num=a.num++;}


  void print(){cout<<num;}


  };


  void main()


  {


  A a(1),b(a);


  a.print();


  b.print();


  }


  A.11        B.12        C.21        D.22


  【参考答案】C


  19.如果类A被说明成类B的友元,则(     )


  A.类A的成员即类B的成员            B.类B的成员即类A的成员


  C.类A的成员函数不得访问类B的成员  D.类B不一定是类A的友元


  【参考答案】D


  20.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为(     )


  A.abc   B.acb   C.cab   D.cba


  【参考答案】A


  21.下面关于模板的描述,错误的是(     )


  A.函数模板和类模板的参数可以是任意的数据类型


  B.类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用


  C.函数模板不能直接使用,需要实例化为模板函数后才使用


  D.类模板的成员函数都是模板函数


  【参考答案】A


  22.下面程序的运行结果是(     )


  #include<iostream.h>


  void main()


  {


  int num=1;


  int &ref=num;


  ref=ref+2;


  cout<<num;

  num=num+3;

  cout<<ref<<endl;


  }


  A.13    B.16    C.36    D.33


  【参考答案】C


  23.下列程序的运行结果为(     )


  #include<iostream.h>


  int i=0;


  class A{


  public:


  A(){i++;}


  };


  void main()


  {A a,b[3],*c;


   c=b;


   cout<<i<<endl;}


  A.2        B.3        C.4        D.5


  【参考答案】C


   24.下列字符串中可以用C++语言标识符的是()


  A._1234         B.foo~~bar   


  C.virtua        D.34var


  【参考答案】A


  25.下列语句的输出结果(     )


  cout<<strlen(″\t\″\065\xff\n″);


  A.5        B.14        C.8        D.输出项不合法,无正常输出


  【参考答案】A


  26.若有如下语句(     )


  #include<iostream.h>


  void main()


  {int x=3;


  do{


  x=x-2;


  cout<<x;


  }while(!(--x));


  }


  则上面程序段


  A.输出的是1    B.输出的是1和-2    C.输出的是3和0    D.是死循环


  【参考答案】B


   27.以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是(     )


  #include<iostream.h>


  void main()


  { int *p,*q,a,b;


  p=&a;


  cout<<″input a:″;


  cin>>p;}


  A.*p表示的是指针变量P的地址


  B.p表示的是变量a的地址,而不是变量a的值


  C.*p表示的是指针变量p的值


  D.*p只能用来说明p是一个指针变量


  【参考答案】B


  28.有以下程序


  #include<iostream.h>


  void fun(int a,int b,int c)


  {a=456,b=567,c=678;}


  void main()


  {int x=10,y=20,z=30;


  fun(x,y,z);


  cout<<x<<′,′<<y<<′,′<<z<<endl;}


  输出结果是(     )


  A.30,20,10     B.10,20,30 


  C.456,567,678  D.678,567,456


  【参考答案】B


  29.下列定义中p指向的地址可更改,但*p不能够更改的是(     )


  A.const int *P    B.int * const p;    C.const int *const p;    D.int *p;


  【参考答案】A


  30.下面程序的结果是(     )


  #include<iostream.h>


  class A


  {


  int a;


  public:


  A():a(1){ }


  void showa(){cout<<a;}


  };


  class B


  {


  int a;


  public:


  B():a(2){ }


  void showa(){cout<<a;}


  };


  class C:public A,public B


  {int a;


  public:


  C():a(3){ }


  void showa(){cout<<a;}


  };


  void main()


  {C c;


  c.showa();}


  A.1        B.2        C.3        D.程序有错误


  【参考答案】C


  31.如果表达式x*y+z中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为(     )


  A.operator+(operator*(x,y),z) 
 
  B.x.operator+(operator*(x,y),z)


  C.y.operator*(operator+(x,y),z)


  D.x.operator+(operator*(x,y))


  【参考答案】A


  32.对于语句cout<<setfill(′*′)<<setw(10)<<1<<setfill(′*′)<<setw(2)<<2;的输出结果是(     )


  A.*********1*2    B.********12    C.*******1*2    D.12********


  【参考答案】A


  33.有如下程序


  #include<iostream.h>


  int func(int a,int b)


  {return(a+b);}


  void main()


  {int x=2,y=5,z=8,r;


  r=func(func(x,y),z);


  cout<<r;}


  该程序的输出的结果是(     )


  A.12        B.13        C.14        D.15


  【参考答案】D


  34.下列描述中,抽象类的特性是(     )


  A.可以说明虚函数     


  B.可以定义友元函数


  C.可以进行构造函数重载


  D.不能说明其对象


  【参考答案】D


  35.下列程序的运行结果是(     )


  #include<iostream.h>


  void fun(int *a,int *b)


  { int *k;


  k=a;a=b;b=k;


  }


  void main()


  { int a=3,b=6,*x=&a,*y=&b;


  fun(x,y);


  cout<<a<<″ ″<<b;


  }


  A.6 3        B.3 6        C.编译出错         D.0 0


  【参考答案】B


  二、填空题


  1.在面向对象方法中,类之间共享属性和操作的机制称为【1】。


  【参考答案】


  1.【1】继承


  2.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【2】的联系。


  【参考答案】


  2.【2】一对多(或1:N)


  3.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向【3】的设计方法。


  【参考答案】


  3.【3】数据结构


  4.软件设计模块化的目的是【4】。


  【参考答案】


  【4】降低复杂性


  5.在树结构中,树根结点没有【5】。


  【参考答案】


  【5】前件


  6.C++中封装性、继承性和【6】是面向对象思想的主要特征。


  【参考答案】


  【6】 多态性


  7.下列for语句的循环次数为【7】。


  for(int a=0,b=1;b&&a<5;a++);


  【参考答案】


  【7】5


  8.C++程序是从【8】函数开始执行的。


  【参考答案】


  【8】main


  9.派生类构造函数的执行顺序是先执行【9】的构造函数,然后执行成员对象的构造函数,最后执行【10】的构造函数。


  【参考答案】


  9.【9】基类    【10】派生类


  10.C++语言程序的注释可以出现在程序中的任何地方,一个注释以【11】作为开始和结束的标记。


  【参考答案】


  【11】/**/


  11.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。


  st=(char*)【12】;


  【参考答案】


  【12】malloc(11)或malloc(sizeof(char)*11)


  voidmain()


  {


  Catkitty;


  kitty.Meow();


  kitty.SetAge(5);


  cout<<"kittyisacatwhois";


  cout<<kitty.GetAge();


  cout<<"yearsold.\n";


  kitty.Meow();


  }


  【参考答案】


  (1)int itsAge;


  (2)return itsAge;


  (3)itsAge=age;


  (4)cout<<"meow.\n";


  【试题解析】


  本题主要考查类的定义和成员函数的定义的深刻理解。

就业数据资源平台