《全国计算机等级考试二级C笔试试题.doc》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C笔试试题.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、优质文本2016年3月 二级C+真题及参考答案一、选择题每题2分,共70分11对C+编译器区分重载(zhn zi)函数无任何意义的信息是 A参数类型 B参数个数 C返回值类型 D常成员函数关键字coast 12有如下类定义和变量定义: class A publie: Adata=0; A int GetData coast return data; void SetDataint n data=n; private: int data; ; ccnst A a; A b; 以下函数调用中错误的选项是 Aa .GetData; Ba .SetData10; Cb .GetData; Db .Se
2、tData10; 13有如下类定义和变量定义: class Parents public: int publicuata; private: int privateData; ; class ChildA:public Parents/*类体略*/; class ChildB:private Parents/*类体略*/; ChildA a; ChildBb; 以下语句中正确的选项是 Acouta.publicData endl ; Bcouta.privateData endl ; Ccoutb.publicData endl ; Dcoutb.privateData open“; 17以下
3、描述中,不属于面向对象思想主要特征的是 A封装性 B跨平台性 C继承性 D多态性 18有如下程序段: Tnt i=4;int j=l; int main int i=8,j=i; coutijendl; 运行时的输出结果是 A44 B41 C88 D81 19有如下程序段: int i=5; whileint i=0cout?*;i-; 运行时输出“*的个数是 A0 B1 C5 D无穷 20己知有数组定义(dngy) char a34; 以下表达式中错误的选项是 Aa2=“WIN Bstrcpya2,“WIN Ca 23=W Da01=a01 21函数fun的原型为 int funint,in
4、t,int; 以下重载函数原型中错误的选项是 Achar funint,int; Bdouble funint,int,double; Cint funint,char*; Dfloat fun int, int, int; 22建立一个类对象时,系统自动调用 A析构函数 B构造函数 C静态函数 D友元函数 23通过派生类的对象可直接访问其 A公有继承基类的公有成员 B公有继承基类的私有成员 C私有继承基类的公有成员 D私有继承基类的私有成员 24己知表达式+a中的“+是作为成员函数重载的运算符,那么与十+a等效的运算符函数调用形式为 Aa .orerator+1 Boperator+a Co
5、perator+a,l Da.operator+ 25在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是 A B C D 26当使用ifstream流类定义一个流对象并翻开一个磁盘文件时,文件的默认翻开方式为 Aios_base:in Bios_base:in|ios_base:out Cios_base:out Dios_base:in&ios_base:out 27有如下程序: #include #include using namespace std; class XCD char* a; int b; public: XCDchar* aa, int bb a=new
6、charstrlenaa+1; strcptya,aa; b=bb; Char* Geta return a; int Getb return b; ; int main char *pl=“abcd,*p2=“weirong; int dl=6, d2=8; XCD xpl,dl,Yp2,d2; coutstrien x .Geta+y. Getb+endl; return 0; 运行时的输出结果是 A12 B16 C14 D11 28有如下程序: #include #include using namespace std; class XCF int a; public: XCFint a
7、a=0:a aacout“1; XCFXCF& xa=x .a; cout“2; XCFcouta; int Getareturn a; ; int main XCF dl5,d7 dl; XCF *pd=new XCF8; coutGeta; delete pd; return 0; 运行时的输出结果是 A121SS88 B12188SS C12185 D128512 29类MyClass声明(shngmng)如下: class MyClass int n; public; MyClassint k:nk int getValueconstreturn n; ; 在以下数组定义中正确的选项是
8、 AMyClass x12; BMyClass x22=new MyClass1,new MyClass2; CMyClass *x32; DMyClass *x42=MyClass1,MyClass2; 30有如下程序: #include using namespace std; class AA lilt k; protected: int n; void setKint k this-k=k; public: void setNint n this-n=n; ; class BB: public /*类体略*/; int main BB x_ ; /1 x .n=1; /2 x.setN
9、 2; /3 x.k=3; /4 x .setK4; return 0; 在标注号码的四条语句中正确的选项是 A1 B2 C3 D4 31有如下类定义: class XX int xx; public: XX:xx0cout A; XXint n:xx ntout B; ; Class YY:public XX Int yy; public: YY:yy 0cout+yy; YYint n:XXn+1,yyncoutyy; YY int m, int n:XX m,yyncoutyy; ; 以下选项中,输出结果为A0的语句是 AYY y10,0; BYY y21; CYY y30; DYY y
10、4; 32有如下程序: #include Using namespace std; class A public: virtual void fcout+1; void gcout2; ; class B:public A public: virtual void fcout3; void gecut4; ; void showA &aa.f;a.g ; int main B b; showb; return 0; 运行时的输出结果是 A12 B34 C14 D32 33有如下(rxi)程序: #include using namespace std; class Pair int m; in
11、t n; public: Pairint i,int j:mi,nj boot operator pair pconst; /须在类体外给出定义 ; int main Pair Al3,4,p24,3;p34,5; Coutp2P1p3p2; return 0; 运算符函数。operator的功能是比拟两个Pair对象的大小,当左边对象大时,返回true,否那么返回false。比拟规那么是首先比拟两对象的m成员,m大者为大;当m相等时比拟n,n大者为大。程序输出0101,以下对运算符重载函数的正确定义是 Abool Pair:operatorPair pconst if m!=p.m retu
12、rn mp.m; return np.n; Bbool Pair:;operatorPair p if m!=p.m return mp.m; return np.n; Cbool Pair:operatorPair pconst if mp.m return true; return np.n; Dbool Pair:;operatorPair p if mp.m return true; return np.n; 34假定以下语句都是程序运行后首次执行的输出语句,其中输出结果与另外三条语句不同的语句是 Acoutsetfill*123setw9321; Bcoutsetfill*setw6
13、left123setw6right321; Ccout123setfill*setw6321; Dcoutsetfill*SetW9left123321; 35有如下程序: #include using namespace std; class ONE int c; public: ONE:c0cout1; ONEint n:c ncout2; ; class TWO ONE onel; ONE one2; public: TWOint m:one2mcout3; ; int maint TWO t4 return 0 运行时的输出结果是 A3 B23 C123 D213 二、填空题每空2分,
14、共30分 6有如下程序段: int x=1,Y=2,z=3; x=xz; y=yz; z=xy; coutxyz; 执行这个程序段的输出是【6】。 7有如下(rxi)程序段: ferint i=1; i=50;i+ ifi%3 != 0 continue; else ifi%5!=0 continue; touti“,; 执行这个程序段的输出是【7】。 8有如下程序段: Char c 20=“examination; c4=0; coutcendl; 执行这个程序段的输出是【8】。 9下面的函数利用递归实现了求1+2+3+n的功能: int sumint n ifn=0 return 0; e
15、lse return n+sumn-1; 在执行sum10的过程中,递归调用sum函数的次数是【9】。 10非成员函数应该声明为类【10】函数才能访问该类的私有成员。11有如下程序: #include using namespace std; class Monitor public: Monitorchar t:type t void print const cout“The type of monitor istypeendl; private: char type; ; class Computer public: Computerint i,char c: 【11】 void Prin
16、tconst cout“The computer isidendl;mon.Print; private: int id; Monitor mon; ; const Computer myComputer101,B; myComputer .Print; return 0; 请将程序补充完整,使程序在运行时输出: The computer is 101 The type of monitor i.s 8 12有如下程序: #include using namespace std class Animal public: virtual char* getTypeconst return “An
17、imal; virtual char* getVoiceconst return “Voice; ; Class Dog : public Animal public: char* getType const return “Dog; char* getVoice const return “Woof ; void typeAnimal& a couta.getType; void speakAnimal a couta.getVoice; int main Dog d; type d;cout“ speak;speakd;coutendi; return 0; 运行时的输出结果是【12】。
18、13补充完整下面(xi mian)的类定义: const double PI=3 .14; class Circle /圆形物体的抽象基类 protected: double r; /半径 public: Circledouble radius=0:rradius 【13】;/计算圆形物体外表积的纯虚函数声明 ; class Cylinder:public Circle /圆柱体类 double h; /高度 public: Cylindrdouble radius=0, doubli height=0: Circleradius,h height Virtual double Area /计
19、算圆柱体的外表积 return 2*PI*r*r+h; ; 14补充完整下面的类定义: class XCH char* a; public: XCHchar* as /构造函数 a=new charstrlenaa+1; strcpya,aa; XCH& operator=const XCH& x /重载赋值函数 Delele a; A=new charstrlenx.a+l; strcpya, x .a 【14】; XCH delete a; ; 15补充完整下面的模板定义: template /Type为类型参数 class Xtwo /由两个Type类型的数据成员构成的模板类 Type
20、a; Type b; public: XtweType aa=0, Type bb=0:aaa,bbb int Ccmpare /比拟a和b的大小 if abreturm 1; else ifa=b return 0; else return -1; Type Snm return a+b; /返回a和b之和 Type Mult; /函数声明,返回a和b之乘积 ; Template 【15】:Multreturn a*b; /Mult 函数的类外定义 参考 答案 一、选择题:11D 12B 13A 14B 15B16A 17B 18C 19) A 20D21D 22B 23A 24B 25C
21、26B 27A 28B 29C 30B31D 32D 33C 34C 35B 二、填空题6213 715,30,458examination91010友元11idi,momc 12Dog speak Woof 13Virtual doubleAreareturn PI *r*r 14return *a 15Xwo15 / 15优质文本2016年9月二级C+笔试试卷11函数(hnsh)FA调用FB,假设要把这两个函数定义在同一个文件中,那么 。 AFA必须定义在FB之前 BFB必须定义在FA之前 C假设FA定义在FB之后,那么FA的原型必须出现在FB的定义之前 D假设FB定义在FA之后,那么FB
22、的原型必须出现在FA的定义之前 12有如下两个类定义: class AA; class BB AA v1,*v2; BB v3; int *v4; ; 其中有一个成员变量的定义是错误的,这个变量是 。 Av1 Bv2 Cv3 Dv4 13有如下类定义: class XX int xdata; public: XX(int n=0) : xdata(n) ; class YY : public XX int ydata; public: YY(int m=0, int n=0) : XX(m), ydata(n) ; YY类的对象包含的数据成员的个数是 。 A1 B2 C3 D4 14以下关于运
23、算符函数的描述中,错误的选项是 。 A运算符函数的名称总是以operator为前缀 B运算符函数的参数可以是对象 C运算符函数只能定义为类的成员函数 D在表达式中使用重载的运算符相当于调用运算符重载函数 15以下关于模板形参的描述中,错误的选项是 。 A模板形参表必须在关键字template之后 B模板形参表必须用括弧()括起来 C)可以用class修饰模板形参 D可以用typename修饰模板形参 16在以下枚举符号中,用来表示“相对于当前位置文件定位方式的是 。 Aios_base:cur Bios_base:beg Cios_base:out Dios_base:end 17以下字符串中
24、可以用作C+标识符的是 。 A2016var Bgoto Ctest-2016 D_123 18以下枚举类型的定义中,包含枚举值3的是 。 Aenum test RED, YELLOW, BLUE, BLACK; Benum test RED, YELLOW=4, BLUE, BLACK; Cenum test RED=-1,YELLOW, BLUE, BLACK; Denum test RED, YELLOW=6, BLUE, BLACK; 19有如下(rxi)程序段: int i=1; while(1) i+; if(i=10) break; if(i%2=0) cout*; 执行这个程序
25、段输出字符*的个数是 。 A10 B3 C4 D5 20数组arr的定义如下: int arr5=1,2,3,4,5; 以下语句中输出结果不是2的是 。 Acout *arr+1 endl; Bcout * (arr+1) endl; Ccout arr1 endl; Dcout *art endl; 21计算斐波那契数列第n项的函数定义如下: int fib(int n) if(n=0) return 1; else if(n=1) return 2; else return fib(n-1)+fib(n-2); 假设执行函数调用表达式fib(2),函数fib被调用的次数是 。 A1 B2
26、C3 D4 22Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是 。 Sample a2, *P = new Sample; A0 B1 C2 D3 23以下关于虚基类的描述中,错误的选项是 。 A使用虚基类可以消除由多继承产生的二义性 B构造派生类对象时,虚基类的构造函数只被调用一次 C声明“class B : virtual public A说明类B为虚基类 D建立派生类对象时,首先调用虚基类的构造函数 24将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是 。 A不合法的运算符 B一元运算符 C无操作数的运算符 D二元运算符 25有如下模板声明: t
27、emplate class A; 以下声明中,与上述声明不等价的是 。 Atemplate class A; Btemplate class A; Ctemplate class A; Dtemplate class A; 26以下(yxi)关于C+流的描述中,错误的选项是 。 AcoutA表达式可输出字符A Beof()函数可以检测是否到达文件尾 C对磁盘文件进行流操作时,必须包含头文件fstream D以ios_base:out模式翻开的文件不存在时,将自动建立一个新文件 27有如下程序: # include using namespace std; class Toy public: T
28、oy(char* _n) strcpy(name, _n); count+; Toy() count-; char* GetName() return name; static int getCount() return count; private: char name10; static int count; ; int Toy:count=0; int main() Toy t1(Snoopy), t2(Mickey), t3(Barbie); coutt1.getCount()endl; return 0; 运行时的输出结果是 。 A1 B2 C3 D运行时出错 28有如下程序: #
29、include using namespace std; class A public: A(int i) : r1(i) void print() coutEr1-; void print() const coutCr1*r1-; pivate: int r1; ; int main() 日 A a1(2); const A a2(4); a1.print(); a2.print(); return 0; 运行(ynxng)时的输出结果是 。 A运行时出错 BE2-C16- CC4-C16- DE2-E4- 29有如下程序: # include using namespace std; cl
30、ass Name char name20; public: Name() strcpy(name, ); cout?; Name(char *fname) strcpy(name,fname); cout?; ; int main() Name names3=Name(张三), Name(李四); return 0; 运行此程序输出符号?的个数是 。 A0 B1 C2 D3 30有如下程序: # include using namespace std; class AA public: AA() cout1; ; class BB: public AA int k; public: BB()
31、: k(0) cout2; BB(int n) : k(n) cout3; ; int main() BB b(4), c; return 0; 运行时的输出结果是 。 A1312 B132 C32 D1412 31有如下程序: # include using namespace std; class C1 public: C1() cout1; ; class C2: public C1 public: C2() cout2; ; int main() C2 cb2; C1 *cb1; return 0; 运行(ynxng)时的输出结果是 。 A121 B21 C211 D12 32有如下程
32、序: # include using namespace std; class Publication /出版物类 char name30; public: Publication(char *name=未知名称) strcpy(this-name,name); const char * getName()const return name; virtual const char * getType()const return 未知类型; ; class Book: public Publication /书类 public: Book(char *name): Publication(name) virtual const char * getType()const return 书; ; void showPublication( Publication &p) coutp.getType(): p.getName()endl; int main() Book book(精彩人生); showPublication(book); return 0;