《2022年2022年计算机二级C++ 2.pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机二级C++ 2.pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2011 年 3 月计算机等级考试二级C+笔试:文字版一、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7 个结点,其中叶子结点只有1 个,则该二叉树的深度为(假设根结点在第1 层)A)3 B)4 C)6 D )7 (4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规
2、格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - B)GOTO 跳转C)选择(分支)结构D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD 图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)
3、数据操纵语言D)数据控制语言(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是A)1:1 联系B)1:m 联系C)m:1 联系D)m:n 联系(9)有三个关系R、S和 T 如下:则由关系 R 和 S得到关系 T 的操作是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - A )自然连接B)交C)除D)并(10)定义无符号整数类为UInt, 下面可以作为类UInt 实例化值的是A)-369 B)369
4、 C)0.369 D )整数集合 1,2,3,4,5 (11)为了提高函数调用的实际运行速度,可以将较简单的函数定义为A )内联函数B)重载函数C)递归函数D)函数模板12)若 AA 为一个类, a 为该类的非静态数据成员,在该类的一个成员函数定义中访问a 时,其书写格式为A)a B)AA.a C)a() D)AA:a() (13)当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是A)任何B)公有或保护C)保护或私有名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
5、- - - - - - - 第 3 页,共 18 页 - - - - - - - - - D)私有(14)若要对 Data 类中重载的加法运算符成员函数进行声明,下列选项中正确的是A)Data+(Data); B)Data operator+(Data); C)Data+operator(Data); D)operator+(Data,Data); (15)下列关于函数模板的描述中,正确的是A)函数模板是一个实例函数B)使用函数模板定义的函数没有返回类型C)函数模板的类型参数与函数的参数相同D)通过使用不同的类型参数,可以从函数模板得到不同的实例函数(16) C+系统预定义了4 个用于标准数据
6、流的对象,下列选项中不属于此类对象的是A)cout B)cin C)cerr D)cset (17)Windows 环境下,由C+源程序文件编译而成的目标文件的扩展名是A)cpp B)exe C)obj D)lik (18)字符串 “a+b=12 t” 的长度为A)12 B)10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - C)8 D )6 (19)有如下程序:#include using namespace std; i
7、nt main() int f,f1=0,f2=1; for(int i=3;i=6;i+) f=f1+f2; f1=f2;f2=f; coutF*p) s1=*p; if(s2*p) s2=*p; coutS1+S2 return 0; 运行时的输出结果是A)23 B)58 C)64 D)79 (21)有如下程序:#include using namespace std; void f1(int& x,int& y) int z=x; x=y; y=z; void f2(int x;int y) int z=x; x=y; y=z; int main() int x=10,y=26; f1(
8、x,y); f2(x,y); coutY 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - return 0; 运行时的输出结果是A)10 B)16 C)26 D )36 (22)有如下程序:#include using namespace std; class XA int a; public: static int b; XA(int aa):a(aa) b+; XA() int get()return a; ; int X
9、A:b=0; int main() XA d1(2),d2(3); cout return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 运行时的输出结果是A)5 B)6 C)7 D )8 (23)有如下程序:#include using namespace std; class Point int x,y; public: Point(int x1=0,int y1=0):x(x1),y(y1) int get()r
10、eturn x+y; ; class Circle Point center; int radius; public: Circle(int cx,int cy,int r):center(cx,cy),raaius(r) int get()return center.get()+radius; ; int main() Circle c(3,4,5); coutC.GET() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - -
11、return 0; 运行时的输出结果是A)5 B)7 C)9 D)12 (24)若要对类BigNumber 中重载的类型转换运算符long 进行声明,下列选项中正确的是A)operator long() const; B)operator long(BigNumber); C)long operator long() const; D)long operator long(BigNumber); (25)有如下函数模板定义:template T1 FUN(T2 n)return n*5.0;若要求以int 型数据 9 作为函数实参调用该模板,并返回一个double 型数据,则该调用应表示为A)
12、FUN(9) B)FUN C)FUN(9) D)FUN(double) (26)下列语句都是程序运行时的第1 条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是A )coutINTERNAL B)coutLEFT 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - C)coutRIGHT D)cout (27)下列关于析构函数的描述中,错误的是A)析构函数可以重载B)析构函数由系统自动调用C)每个对象的析构函数只被调用
13、一次D)每个类都有析构函数(28)下列关于构造函数的描述中,错误的是A)构造函数名与类名相同B)构造函数可以有返回值C)构造函数可以重载D)每个类都有构造函数(29)若 PAT 是一个类,则程序运行时,语句“PAT(*ad)3;”调用 PAT 的构造函数的次数是A)0 B)1 C)2 D )3 (30)下列描述中,错误的是A)公有继承时基类中的公有成员在派生类中仍是公有成员B)公有继承时基类中的保护成员在派生类中仍是保护成员C)保护继承时基类中的公有成员在派生类中仍是公有成员D)保护继承时基类中的保护成员在派生类中仍是保护成员(31)生成派生类对象时,派生类构造函数调用基类构造函数的条件是A)
14、无需任何条件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - B)基类中显式定义了构造函数C)派生类中显式定义了构造函数D)派生类构造函数明确调用了基类构造函数(32)下列关于派生类和基类的描述中,正确的是A)派生类成员函数只能访问基类的公有成员B)派生类成员函数只能访问基类的公有和保护成员C)派生类成员函数可以访问基类的所有成员D)派生类对基类的默认继承方式是公有继承(33)有如下类模板定义:template class B
15、igNumber long n; public: BigNumber(T i):n(i) BigNumber operator+(BigNumber b) return BigNumber(n+b.n); ; 己知 b1、b2 是 BigNumber 的两个对象,则下列表达式中错误的是A)bl+b2 B)b1+3 C)3+b1 D)3+3 (34)下列关于文件流的描述中,正确的是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 18 页 - - - - - - - - -
16、 A)文件流只能完成针对磁盘文件的输入输出B)建立一个文件流对象时,必须同时打开一个文件C)若输入流要打开的文件不存在,将建立一个新文件D)若输出流要打开的文件不存在,将建立一个新文件(35)有如下程序:#include using namespace std; class Pair int m,n; public: Pair(int j,int k):m(j),n(k) int get() return m; int get() const return m+n; ; int main() Pair a(3,5); const Pair b(3,5); cout+a.get()z&y=z的值
17、为【6】 。(7)有如下语句序列:int x=-10;while(+x) 运行时 while 循环体的执行次数为【7】 。(8)有如下语句序列: int arr22=9,8,7,6; int *p=arr0+1; cout*p 运行时的输出结果是【8】 。(9)函数 fun 的功能是将一个数字字符串转换为一个整数,请将函数补充完整。int fun(char *str) int num=0; while(*str) num*=10; num+= 【9】 ; str+; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
18、- - - - - - - 第 13 页,共 18 页 - - - - - - - - - return num; (10)若要将函数 “void FriFun();”声明为类 MyClass 的友元函数,则应在类MyClass 的定义中加入语句 【10】 。(11)下列程序的输出结果为012,请根据注释将横线处的缺失部分补充完整。#include using namespace std; class Test public: Test(int a) data=a; Test() void print()cout private: int data; ; int main() Test t3=
19、 【11】 ;/ 对有 3 个元素的 Test 类对象数组 t 初始化 ti.print(); for(int i=0;i3;i+) return 0; (12)请在横线处填写派生类Derived 的继承方式 ,使得程序的输出结果为Base。#include using namespace std; class Base 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 18 页 - - - - - - - - - public: void print()coutBase
20、; ; class Derived: 【12】 Base; int main() Derived d; d.print(); return 0; (13)下列程序的输出结果为1 2.3 2 4.6,请将横线处的缺失部分补充完整。#include using namespace std; class Base public: Base(int a):idata(a) void print()coutIDATA; private: int idata; ; class Derived:public Base public: Derived(int a;double b): 【13】 ,ddata(
21、b) void print()Base:print();coutDDATA; private: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 18 页 - - - - - - - - - double ddata; ; int main() Derived dl(1,2.3),d2(2,4.6); d1.print(); d2.print(); return 0; (14)下列程序的输出结果为-5/8 -3/4,请将横线处的缺失部分补充完整。#include usin
22、g namespace std; class Fraction /“分数 ” 类public: Fraction(double a,double b):num(a),den(b) Fraction() /重载取负运算符 “ -” ,返回一个分数对象,其分子是原来分子的相反数。Fraction operator-() 【14】return f; void print() coutNUM private: double num; /分子double den; /分母名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
23、 - - - - - 第 16 页,共 18 页 - - - - - - - - - ; int main() Fraction f1(5;8),f2(3,4); (-f1).print();(-f2).print(); return 0; (15)函数 Min 的功能是返回具有n 个元素的数组array 中的最小值。请将横线处的缺失部分补充完整,使得程序的输出结果为1.24。#include using namespace std; template T Min(T* array,int n) T min=array0; for(int i=1;i if(arrayi return min;
24、 int main() double arr8=5.2,48.45,41.01,42,51.2,1.24,14.12,42; cout 【15】 ; return 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 18 页 - - - - - - - - - 选择题ABDDB ACDCB CDAAA ADCAD BDBCD CDCCA BBCDB CDDCB 填空题顺序 DEBFCA 单元主键 D 3 1217 0,9 4 20,0 i-1 double avg (double a,double b) 13715 emodew 123456 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 18 页 - - - - - - - - -