【计算机类职业资格】二级C++-228及答案解析.doc
《【计算机类职业资格】二级C++-228及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-228及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-228 及答案解析(总分:64.00,做题时间:90 分钟)一、选择题(总题数:38,分数:64.00)1.有如下模板声明: templatetypename T1,typename T2class A; 下列声明中,与上述声明不等价的是_。(分数:2.50)A.templateclass T1,class T2class A;B.templateclass T1,typename T2class A;C.templatetypename T1,class T2class A;D.templatetypename T1,T2class A;2.下列数据结构中,属于非线性结构的是_。
2、(分数:1.00)A.循环队列B.带链队列C.二叉树D.带链栈3.有如下程序: #includeiostream using namespace std; class Base pubfic: Base()cout“BB“;f(); void f()cout“Bf“: ; class Derived:public Base public: Derived()cout“DD“;) voidf()cout“Df“: ; intmain()Derived d;retum 0; 执行上面的程序将输出(分数:1.00)A.BBBfDDB.BBDfDDDfC.DDD.DDBBBf4.有以下程序: #inc
3、ludeiostream using namespace std; class MyClass public: MyClass(); MyClass(); void SetValue(int val); private: static int i; ; int MyClass:i=0; MyClass:MyClass() i+; couti; MyClass:MyClass() i-; couti; void MyClass:SetValue(int val) i=val; int main() MyClass*my2; int k; for(k=0;k2;k+) myk=new MyClas
4、s; for(k=0;k2;k+) delete myk; return 0; 运行后的输出结果是 _ 。(分数:1.00)A.1210B.1100C.1234D.输出结果不确定5.下列关于虚基类的描述中,错误的是 _ 。(分数:2.00)A.使用虚基类可以消除由多继承产生的二义性B.构造派生类对象时,虚基类的构造函数只被调用一次C.声明“class B:virtual public A”说明类 B 为虚基类D.建立派生类对象时,首先调用虚基类的构造函数6.下列关于运算符重载的叙述中,正确的是_。(分数:2.50)A.通过运算符重载机制可以为 C+语言扩充新的运算符B.运算符重载的作用是使已有
5、的运算符作用于类的对象C.重载运算符的操作数类型可以全部为基本类型D.所有运算符都可以被重载7.有如下类和对象的定义: class Constants public: static double getPI() return 3.1416; ; Constants constants; 下列各组语句中,能输出 3.1416 的是_。(分数:1.00)A.coutconstants-getPI();和 coutConstants:getPI();B.coutconstants.getPI();和 coutConstants.getPI();C.coutconstants-getPI();和 co
6、utConstants-getPI();D.coutconstants.getPI();和 coutConstants:getPI();8.有如下模板声明: templatetypename T1,typename T2class A; 下列声明中,与上述声明不等价的是_。(分数:1.00)A.templateclass T1,class T2class A;B.templateclass T1,typename T2class A;C.templatetypename T1,class T2class A;D.templatetypename T1,T2class A;9.在下列原型所示的
7、C+函数中,按“传值”方式传递参数的是_。(分数:1.00)A.void f1(int x);B.void f2(int*x);C.void B(const int*x);D.void f4(int10.设有下列程序段: char s20=“Beijing“,*p; p=s; 则执行“p=s;”语句后,下列叙述正确的是 _ 。(分数:2.00)A.可以用*p 表示 s0B.s 数组中元素的个数和 p 所指字符串长度相等C.s 和 p 都是指针变量D.数组 s 中的内容和指针变量 p 中的内容相同11.有定义语句“char s10;”,若要从终端给 s 输入 5 个字符,错误的输入语句是_。(分
8、数:1.00)A.gets(s0);B.scanf(“%s“,s+1);C.gets(s);D.scanf(“%s“,s1);12.语句 ofstream f(“DATA.DAT“, ios _base: applios_lios_bfise: binary);的功能是建立流对象f,并试图打开文件 DATA.DAT 并与之连接,而且 _ 。(分数:2.00)A.若文件存在,将文件指针定位于文件首,若文件不存在,建立一个新文件B.若文件存在,将其截为空文件;若文件不存在,打开失败C.若文件存在,将文件指针定位于文件尾:若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件在,建立一个新文件
9、13.在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是_。(分数:2.00)A.ios_base:curB.ios_base:begC.ios_base:outD.ios_base:end14.已知类 IMS 中两个成员函数的声明为“void listen()const;”与“void speak();”,另有两个对象的定义为“IMS obj1;”与“const IMS obj2;”,则下列语句中,产生编译错误的是_。(分数:2.50)A.obj1.listen();B.obj1.speak();C.obj2.listen();D.obj2.speak();15.下列语句中,错误的
10、是_。(分数:1.00)A.const int buffer=256;B.const double*point;C.int const buffer=256;D.double*const point;16.将运算符“+”重载为非成员函数,下列原型声明中,错误的是_。(分数:2.00)A.MycloCk operator+(MyClock,long);B.MycloCk operator+(MyClock,MyClock);C.MycloCk operator+(long,long);D.MycloCk operator+(long,MyClock);17.数据库系统依赖于 _ 支持数据独立性。
11、(分数:2.00)A.具有封装机制B.定义完整性约束条件C.模式分级,各级模式之间的映射D.DDL 语言与 DML 语言互相独立18.有如下程序: #includeiostream #includeiomanip using namespace std;_ int main() coutsetw(10)serfill(“x“)setprecision(8)left; cout12.3456793_98765; return 0; 若程序的输出是 12.345679x98765xxxxx,则划线处缺失的部分是_。(分数:2.50)A.setw(10)B.setfill(“x“)C.setprec
12、ision(8)D.right19.有如下程序: #includeiostream using namespace std; class A public: A(int i):rl(i) void print()cout“E“r1“-“; void print()constcout“C“r1*r1“-“; private: int rl; ; int main() A al(2); const A a2(4); a1.print(); a2.print(); return 0; 运行时的输出结果是_。(分数:2.00)A.运行时出错B.E2-C16-C.C4-C16-D.E2-E4-20.计算
13、机软件是_ 。(分数:2.00)A.程序B.数据C.文档D.程序、数据及相关文档的完整集合21.已知一程序运行后执行的第一个输出操作是_。 coutsetw(10)setfill(“*“)1234; 则此操作的输出结果是(分数:2.00)A.1234B.*1234C.*1234D.1234*22.关于构造函数 A()的拷贝构造函数正确的是(分数:1.00)A.A(A *B) ;B.A(AB) ;C.A(A23.将前缀运算符“- -”重载为非成员函数,下列原型中能正确用于类中说明的是_。(分数:1.00)A.DecrB.Decr operator -(DecrC.friend DecrD.fri
14、end Decr operator -(Decr24.下面关于 C+流的叙述中,正确的是(分数:2.00)A.cin 是一个输入流对象B.可以用 ifstream 定义一个输出流对象C.执行语句序列 char *y=“PQMN“; couty;将输出字符串“PQMN“的地址D.执行语句序列 char x80;cin.getline(x,80);时,若键入 Happy new year 则 x 中的字符串是“Happy“25.有如下类定义: class Point private: static int how_many; ; _how_many=0; 要初始化 Point 类的静态成员 how
15、_many,下画线处应填入的内容是_。(分数:1.00)A.intB.static intC.int Point:D.static int Point:26.执行下列程序的结果是 main( ) float x=1,y; y=+x*+x; coutyendl; (分数:2.00)A.9.000000B.6.000000C.1.000000D.程序有错误27.下面程序的结果为 _ 。 #include“iostream.h“ void change (int a,int b) int temp; temp=a; a=b; b=temp: void main() int m,n; m=8; n=9
16、; change(m,n): cout m“ “ n endl; (分数:1.00)A.89B.98C.程序有错误D.9928.下列关于宏的叙述中正确的是_。(分数:2.50)A.宏名必须用大写字母表示B.宏定义必须位于源程序中所有语句之前C.宏替换没有数据类型限制D.宏调用比函数调用耗费时间29.下列关于运算符重载的叙述中,正确的是_。(分数:2.50)A.通过运算符重载机制可以为 C+语言扩充新的运算符B.运算符重载的作用是使已有的运算符作用于类的对象C.重载运算符的操作数类型可以全部为基本类型D.所有运算符都可以重载30.有如下程序: #includeiostream #includei
17、omanip using namespace std; int main() cout.fill(“*“); coutleftsetw(4)123“OK“endl; return 0; 执行这个程序的输出结果是_。(分数:2.00)A.123*OKB.123*OK*C.*123OKD.*123*OK31.下列描述正确的是(分数:1.00)A.表示 m n 为 true 或 m n 为 true 的表达式为 m nB.intC.intD.float35.下列语句中,错误的是(分数:2.00)A.const int buffei=256;B.const double*point;C.int con
18、st buffer=256;D.double*const point:;36.下列有关继承和派生的叙述中,正确的是 _ 。(分数:2.00)A.如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员B.派生类的成员函数可以访问基类的所有成员C.基类对象可以赋值给派生类对象D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类37.执行语句:coutsetfill(“*“)setw(10)setfill(“#“)left123“OK“endl;return 0;)后将输出 _ 。(分数:2.00)A.123*OKB.123#OKC.123*OK*D.123#OK#38.有如
19、下程序: #includeiostream using namespace std; class A public: A(int i) x=i; void dispa() coutx“,“; private: int x; ; class B: public A public: B(int i): A(i+10) x=i; void dispb() dispa(); coutxendl; private: int x; ; int main() B b(2); b. dispb(); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.10, 2B.12, 10C.12,2D
20、.2, 2二级 C+-228 答案解析(总分:64.00,做题时间:90 分钟)一、选择题(总题数:38,分数:64.00)1.有如下模板声明: templatetypename T1,typename T2class A; 下列声明中,与上述声明不等价的是_。(分数:2.50)A.templateclass T1,class T2class A;B.templateclass T1,typename T2class A;C.templatetypename T1,class T2class A;D.templatetypename T1,T2class A; 解析:解析 类模板定义的格式为
21、template模板形参表类声明 选项 A、B、C 是正确的定义格式,选项 D 是错误的。2.下列数据结构中,属于非线性结构的是_。(分数:1.00)A.循环队列B.带链队列C.二叉树 D.带链栈解析:解析 树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。3.有如下程序: #includeiostream using namespace std; class Base pubfic: Base()cout“BB“;f(); void f()cout“Bf“: ; class Derived:public Base public: Derived()cout“DD“;) void
22、f()cout“Df“: ; intmain()Derived d;retum 0; 执行上面的程序将输出(分数:1.00)A.BBBfDD B.BBDfDDDfC.DDD.DDBBBf解析:4.有以下程序: #includeiostream using namespace std; class MyClass public: MyClass(); MyClass(); void SetValue(int val); private: static int i; ; int MyClass:i=0; MyClass:MyClass() i+; couti; MyClass:MyClass()
23、i-; couti; void MyClass:SetValue(int val) i=val; int main() MyClass*my2; int k; for(k=0;k2;k+) myk=new MyClass; for(k=0;k2;k+) delete myk; return 0; 运行后的输出结果是 _ 。(分数:1.00)A.1210 B.1100C.1234D.输出结果不确定解析:解析 类 MyClass 中变量 i 是静态数据成员,它被 MyClass 类的所有对象共享,但它不属于任何一个对象,它的作用域是类范围。程序 i 是用来统计类 MyClass 所创建对象的个数,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C228 答案 解析 DOC
