全国计算机二级笔试C++.docx

上传人:b****4 文档编号:6698608 上传时间:2023-05-10 格式:DOCX 页数:34 大小:1.96MB
下载 相关 举报
全国计算机二级笔试C++.docx_第1页
第1页 / 共34页
全国计算机二级笔试C++.docx_第2页
第2页 / 共34页
全国计算机二级笔试C++.docx_第3页
第3页 / 共34页
全国计算机二级笔试C++.docx_第4页
第4页 / 共34页
全国计算机二级笔试C++.docx_第5页
第5页 / 共34页
全国计算机二级笔试C++.docx_第6页
第6页 / 共34页
全国计算机二级笔试C++.docx_第7页
第7页 / 共34页
全国计算机二级笔试C++.docx_第8页
第8页 / 共34页
全国计算机二级笔试C++.docx_第9页
第9页 / 共34页
全国计算机二级笔试C++.docx_第10页
第10页 / 共34页
全国计算机二级笔试C++.docx_第11页
第11页 / 共34页
全国计算机二级笔试C++.docx_第12页
第12页 / 共34页
全国计算机二级笔试C++.docx_第13页
第13页 / 共34页
全国计算机二级笔试C++.docx_第14页
第14页 / 共34页
全国计算机二级笔试C++.docx_第15页
第15页 / 共34页
全国计算机二级笔试C++.docx_第16页
第16页 / 共34页
全国计算机二级笔试C++.docx_第17页
第17页 / 共34页
全国计算机二级笔试C++.docx_第18页
第18页 / 共34页
全国计算机二级笔试C++.docx_第19页
第19页 / 共34页
全国计算机二级笔试C++.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

全国计算机二级笔试C++.docx

《全国计算机二级笔试C++.docx》由会员分享,可在线阅读,更多相关《全国计算机二级笔试C++.docx(34页珍藏版)》请在冰点文库上搜索。

全国计算机二级笔试C++.docx

全国计算机二级笔试C++

2009年9月全国计算机二级笔试C++

(11)已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则

  A)FA必须定义在FB之前

  B)FB必须定义在FA之前

  C)若FA定义在FB之后,则FA的原型必须出现在FB的定义之前

  D)若FB定义在FA之后,则FB的原型必须出现在FA的定义之前

  (12)有如下两个类定义

  classAA{};

  classBB{

     AAv1,*v2;

     BBv3;

     int*v4;

  };

  其中有一个成员变量的定义是错误的,这个变量是

  A)v1

  B)v2

  C)v3

  D)v4

  (13)有如下类定义:

  classXX{

      intxdata;

  public:

     XX(intn=0):

xdata(n){}

  };

  classYY:

publicXX{

     intydata;

  public:

     YY(intm=0,intn=0):

XX(m),ydata(n){}

  };

  YY类的对象包含的数据成员的个数是

  A)1

  B)2

  C)3

  D)4

(14)下列有关运算符函数的描述中,错误的是

  A)运算符函数的名称总是以operator为前缀

  B)运算符函数的参数可以是对象

  C)运算符函数只能定义为类的成员函数

  D)在表达式中使用重载的运算符相当于调用运算符重载函数

 (15)下列关于模板形参的描述中,错误的是

  A)模板形参表必须在关键字template之后

  B)模板形参表必须用括弧()括起来

  C)可以用class修饰模板形参

  D)可以用typename修饰模板形参

(16)在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是

  A)ios_base:

:

cur

  B)ios_base:

:

beg

  C)ios_base:

:

out

  D)ios_base:

:

end

(17)下列字符串可以用作C++标识符的是

  A)2009var

  B)goto

  C)test-2009

  D)_123

(18)下列枚举类型的定义中,包含枚举值3的是

  A)enumtest{RED,YELLOW,BLUE,BLACK};

  B)enumtest{RED,YELLOW=4,BLUE,BLACK};

  C)enumtest{RED=-1,YELLOW,BLUE,BLACK};

  D)enumtest{RED,YELLOW=6,BLUE,BLACK};

(19)有如下程序段:

  inti=1;

  while

(1){

     i++;

     if(i==10)break;

     if(i%2==0)cout<<'*';

  }

  执行这个程序段输出字符*的个数是

  A)10

  B)3

  C)4

  D)5

(20)已知数组arr的定义如下:

  intarr[5]={1,2,3,4,5};

  下列语句中输出结果不是2的是

  A)cout<<*arr+1<

  B)cout<<*(arr+1)<

  C)cout<

  D)cout<<*arr<

(21)计算斐波那契数列第n项的函数定义如下:

  Intfib(intn){

     if(n==0)return1;

     elseif(n==1)return2;

     elsereturnfib(n-1)+fib(n-2);

  }

  若执行函数调用表达式fib

(2),函数fib被调用的次数是

  A)1

  B)2

  C)3

  D)4

(22)Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是

  Samplea[2],*p=newSample;

  A)0

  B)1

  C)2

  D)3

(23)下列关于虚基类的描述中,错误的是

  A)使用虚基类可以消除由多继承产生的二义性

  B)构造派生类对象时,虚基类的构造函数只被调用一次

  C)声明“classB:

virtualpublicA”说明类B为虚基类

  D)建立派生类对象时,首先调用虚基类的构造函数

(24)将运算符重载为类成员函数时,其参数表中没有参数,说明该运算是

  A)不合法的运算符

  B)一元运算符

  C)无操作数的运算符

  D)二元运算符

(25)有如下模板声明:

  template classA;

  下列声明中,与上述声明不等价的是

  A)template classA;

  B)template classA;

  C)templateclassA;

  D)templateclassA;

(26)下列关于C++流的描述中,错误的是

  A)cout>>'A'表达式可输出字符A

  B)eof()函数可以检测是否到达文件尾

  C)对磁盘文件进行流操作时,必须包含头文件fstream

  D)以ios_base:

:

out模式打开的文件不存在时,将自动建立一个新文件

27)有如下程序:

  #include

  usingnamespacestd;

  classToy{

  public:

     Toy(char*_n){strcpy(name,_n);count++;}

     ~Toy(){count--;}

     char*GetName(){returnname;}

     staticintgetCount(){returncount;}

  private:

     charname[10];

     staticintcount;

  };

  intToy:

:

count=0;

  intmail(){

     Toyt1(“Snoopy”),t2(“Mickey”),t3(“Barbie”);

     cout<

  return0;

  }

  运行时的输出结果是

  A)1

  B)2

  C)3

  D)运行时出错

  (28)有如下程序

  #include

  usingnamespacestd;

  classA{

  public:

      A(inti):

rl(i){}

      voidprint(){cout<<'e'<

      voidprint()const{cout<<'C'<

  private:

     intrl;

  };

  intmain(){

     Aal

(2);    constAa2(4);

     al.print();   a2.print();

     return0;

  }

  运行时的输出结果是

  A)运行时出错

  B)E2-C16-

  C)C4-C16-

  D)E2-E4-

29)有如下程序:

  #include

  usingnamespacestd;

  className{

     charname[20];

  public:

     Name(){

         strcpy(name,"");    cout<<'?

';

  }

  Name(char*fname)){

     strcpy(name,fname);    cout<'?

';

  }

  };

  intmain(){

    Namenames[3]={Name(“张三”),Name(“李四”)};

  Return0;

  }

  运行此程序输出符号?

的个数是

  A)0

  B)1

  C)2

  D)3

(30)有如下程序:

#include

usingnamespacestd;

public:

AA(){cout<<'1';}

};

classBB:

publicAA{

intk;

public:

BB():

k(0){cout<<'2';}

BB(intn):

k(n){cout<<'3';}

}

intmain(){

BBb(4),c;

return0;

}

运行时的输出结果是

A)1312            D)132             C)32              D)1412

(31)有如下程序:

#include

usingnamespacestd;

classC1{

public:

~C1(){cout<<1;}

};

ClassC2:

publicc1{

public:

~c2(){cout<<2;}

};

intmain(){

C2cb2;

C1*cb1;

return0;

}

运行时的输出结果是

A)121             B)21              C)211             D)12

(32)有如下程序

#include

usingnamespacestd;

classPublication{//出版物类

charname[30];

public:

Publication(char*name="未知名称"){

strcpy(this->name,name);

}

constchar*getName()const{returnname;}

virtualconstchar*getType()const{return"未知类型";}

};

classBook:

publicPublication{//书类

public:

Book(char*name):

Publication(name){}

virtualconstchar*getType()const{return"书";}

};

voidshowPublication(Publication&p){

cout<

"<

}

intmain(){

Bookbook("精彩人生");

showPublication(book);

return0;

}

运行时的输出结果是

A)未知类型:

未知名称                  B)未知类型:

精彩人生

C)书:

未知名称                        D)书:

精彩人生

(33)下列关于运算符重载的描述中,错误的是

A):

:

运算符不能重载

B)类型转换运算符只能作为成员函数重载

C)将运算符作为非成员函数重载时必须定义为友元

D)重载[]运算符应完成“下标访问”操作

 

(34)有如下程序:

#include

#include

Usingnamespacestd;

intmain(){

ints[]={123,234};

cout<

for(inti=0;i<2;i++){cout<

return0;

}

运行时的输出结果是

A)123             B)***123          C)***123          D)***123

  234              234                  ***234          234***

(35)有如下类定义

classA{

char*a;

public:

A():

a(0){}

A(char*aa){ //把aa所指字符串拷贝到a所指向的存储空间

a=               ;

strcpy(a,aa);

strcpy(a,aa);

}

~A(){delete[]a;}

};

横线处应填写的表达式是

A)neschar[strlen(aa)+1]              B)char[strlen(aa)+1]

C)char[strlen(aa)]                    D)newchar[sizeof(aa)-1]

2009年9月全国计算机等级考试二级C++笔试参考答案

选择题  

   (11)D  (12)C  (13)B  (14)C  (15)B

 (16)A  (17)D  (18)A  (19)C  (20)D(21)B (22)D  (23)C  (24)B(25)D(26)A  (27)C  (28)B  (29)D  (30)A(31)B  (32)D  (33)C  (34)B  (35)A

2010年3月计算机等级考试二级C++笔试试题

  一、选择题(每小题2分,共70分)

(11)下列关于函数的描述中,错误的是

  A)函数可以没有返回值

  B)函数可以没有参数

  C)函数可以是一个类的成员

  D)函数不能被定义为模板

  (12)若MyClass是一个类名,且有如下语句序列

  MyClassc1,*c2;

  MyClass*c3=newMyClass;

  MyClass&c4=c1;

  上面的语句序列所定义的类对象的个数是

  A)1

  B)2

  C)3

  D)4

  (13)下列关于继承方式的描述中,错误的是

  A)如果不显式地指定继承方式,缺省的继承方式是私有(private)

  B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员

  C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员

  D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员

  (14)将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于类中说明的是

  A)Decr&operator--(int);

  B)Decroperator--(Decr&,int);

  C)friendDecr&operator--(Decr&);

  D)frlendDecroperator--(Decr&,int);

  (15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列

  MyTempp2;

  MyTempp3[2];

  编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是

  A)1

  B)2

  C)3

  D)0

  (16)在C++中,cin是个

  A)类

  B)对象

  C)模板

  D)函数

  (17)在下列字符中,不允许作为C++标识符的是

  A)b

  B)B

  C)_

  D)2

  (18)下列叙述中,错误的是

  A)false是一个逻辑型常量

  B)"b"是一个字符型常量

  C)365是一个int常量

  D)3.1415926是一个double常量

  (19)若x和y是程序中的两个整型变量,则下列if语句中正确的是

  A)if(x==0)y=1;elsey=2;

  B)if(x==0)theny=1elsey=2;

  C)if(x==0)y=1elsey=2;

  D)ifx==0y=1;elsey=2;

  (20)要定义整型数组x,使之包括初值为O的三个元素,下列语句中错误的是

  A)intx[3]={0,0,0};

  B)intx[]={0};

  C)staticintx[3]={0};

  D)intx[]={0,0,0};

(21)关于函数中的<返回类型>,下列表述中错误的是

  A)<返回类型>中有可能包含关键字int

  B)<返回类型>中有可能包含自定义标识符

  C)<返回类型>中有可能包含字符*

  D)<返回类型>中可能包含[]

  (22)要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是

  A)MyClassp=MyClass;

  B)MyClassp=newMyClass;

  C)MyClass&p=newMyClass;

  D)MyClassa,&p=a;

  (23)有如下两个类定义

  classXX{

  private:

  doublex1;

  protected:

  doublex2;

  public:

  doublex3;

  };

  classYY:

protectedXX{

  private:

  doubley1;

  protected:

  doubley2;

  public:

  doubley3;

  };

  在类YY中保护成员变量的个数是

  A)1

  B)2

  C)3

  D)4

  (24)下列关于运算符重载的描述中,错误的是

  A)可以通过运算符重载在C++中创建新的运算符

  B)赋值运算符只能重载为成员函数

  C)运算符函数重载为类的成员函数时,第一操作数是该类对象

  D)重载类型转换运算符时不需要声明返回类型

  (25)下列关于类模板的描述中,错误的是

  A)类模板的成员函数都是模板函数

  B)可以为类模板参数设置默认值

  C)类模板描述了一组类

  D)类模板中只允许有一个类型参数

  (26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是

  A)setprecision

  B)setw

  C)setfill

  D)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是

  intfun1();

  classTest{

  public:

  intfun2();

  friendintfun3();

  staticintfun4();

  };

  A)fun1

  B)fun2

  C)fun3

  D)fun4

  (28)有如下程序

  #include

  usingnamespacestd;

  classTest{

  public:

  Test(){}

  Test(constTest&t){cout<<1;}

  };

  Testfun(Test&u){Testt=u;returnt;}

  intmain(){Testx,y;x=fun(y);return0;}

  运行这个程序的输出结果是

  A)无输出

  B)1

  C)11

  D)111

  (29)有如下程序

  #include

  usingnamespacestd;

  classA{

  public:

  A(inti=0):

r1(i){}

  voidprint(){cout<<'E’<  voidprint()const{cout<<'C'<  voidprint(intx){cout<<'P'<  private:

  intr1;

  };

  intmain(){

  Aa1;

  constAa2(4);

  a1.print

(2);

  a1.print();

  return0;

  }

  运行时的输出结果是

  A)P8-E4

  B)P8-C16-

  C)P0-E4-

  D)P0-C16-

  (30)下列代码声明了3个类

  classPerson{};

  classStudent:

publicPerson{};

  classUndergraduate:

Student{};

  下列关于这些类之间关系的描述中,错误的是

  A)类Person是类Undergraduate的基类

  B)类Undergraduate从类Student公有继承

  C)类Student是类Person的派生类

  D)类Undergraduate是类Person的派生类

(31)有如下程序

  #include

  usingnamespacestd;

  ClassBase{

  public:

  Base(intx=0):

valB(x){cout<  ~Base(){cout<  private:

  intvalB;

  };

  classDerived:

publicBase{

  public:

  Derived(intx=0,inty=0):

Base(x),valD(y){cout<  ~Derived(){cout<  private:

  intvalD;

  };

  intmain(){

  Derivedobj12(2,3);

  retuen0;

  }

  运行时的输出结果是

  A)2332

  B)2323

  C)3232

  D)3223

  (32)下面是类Shape的定义:

  classShape{

  public:

  virtualvoidDraw()=0;

  };

  下列关于Shape类的描述中,正确的是

  A)类Shape是虚基类

  B)类Shape是抽象类

  C)类Shape中的Draw函数声明有误

  D)语句“Shapes;”能够建立Shape的一个对象s

  (33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是

  A)MyClockoperator+(MyClock,long);

  B)MyClockoperator+(MyClock,MyClock);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2