【计算机类职业资格】二级C++-197及答案解析.doc
《【计算机类职业资格】二级C++-197及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-197及答案解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-197 及答案解析(总分:89.00,做题时间:90 分钟)一、选择题(总题数:35,分数:62.50)1.已知类 Array 的定义如下: class Array public: int data2; Array(int n=0) int start; if(n=1)start=n-1; else start=n; data0=start; data1=start+1; ; 且有如下程序段: Array arr(2); coutarr.data0arr.data1; 则执行这个程序段的输出是(分数:2.00)A.23B.32C.12D.212.若执行语句:coutsetfill(
2、“*“)setw(10)123“OK“endl 后将输出 _ 。(分数:2.00)A.*1230KB.123*OKC.*123*OKD.123*OK*3.下列关于运算符函数的描述中,错误的是_。(分数:1.00)A.运算符函数的名称总是以 operator 为前缀B.运算符函数的参数可以是对象C.运算符函数只能定义为类的成员函数D.在表达式中使用重载的运算符相当于调用运算符重载函数4.如果类 A 被说明成类 B 的友元,则 _ 。(分数:2.00)A.类 A 的成员即类 B 的成员B.类 B 的成员即类 A 的成员C.类 A 的成员函数不得访问类 B 的成员D.类 B 不一定是类 A 的友元5
3、.下列是重载乘法运算符的函数原型声明,其中错误的是_。(分数:2.00)A.MyClass operator*(double,double);B.MyClass operator*(double,MyClass);C.MyClass operator*(MyClass,double);D.MyClass operator*(MyClass,MyClass);6.下面关于 C+流的叙述中,正确的是_。(分数:2.00)A.cin 是一个输入流对象B.可以用 ifstream 定义一个输出流对象C.执行语句序列 char*y=“PQMN“;couty;将输出字符串”PQMN”的地址D.执行语句序列
4、 char x80;cin.getline(x,80);时,若键入 Happy new year 则 x 中的字符串是“Happy“7.在数据结构中,从逻辑上可以把数据结构分成_。(分数:2.50)A.内部结构和外部结构B.线性结构和非线性结构C.紧凑结构和非紧凑结构D.动态结构和静态结构8.下列语句中,与语句“n=(ab?(bc?1:0);0);”的功能等价的是_。(分数:1.00)A.if(a=b)n=0;B.if(ab)|(bcn=1;else n=0;C.if(ab)if(bc)n=1;else n=;else n=0;D.if(ab)n=1;else if(b=c)n=1;else
5、if(bc)n=1;else n=0;9.若已经声明了函数原型“void fun(int a,double b=0.0);”,则下列重载函数声明中正确的是_。(分数:3.00)A.void fun(int a=90,double b=0.0);B.int fun(int a,double );C.void fun(double a,int );D.bool fun(int a,double b=0.0);10.有以下程序: #includeiostream using namespace std; class sample prlvate: int x; public: sample(int
6、a) x=a; friend double square(sample s); ; double square(sample s) return s.x*s.X; int main() sample s1(20),s2(30); coutsquare(s2)endl; return 0; 执行结果是_。(分数:1.00)A.20B.30C.900D.40011.下列关于栈的描述正确的是_ 。(分数:2.00)A.在栈中只能插入元素而不能删除元素B.在栈中只能删除元素而不能插入元素C.栈是特殊的线性表,只能在一端插入或删除元素D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素12.下列
7、关于队列的叙述中正确的是(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表13.设有两个字符串 p 和 q,求 q 在 p 中首次出现位置的运算称为_。(分数:1.00)A.连接B.模式匹配C.求子串D.求串长14.下列关于赋值运算符“=”重载的叙述中,正确的是(分数:2.00)A.赋值运算符只能作为类的成员函数重载B.默认的赋值运算符实现了“深层复制”功能C.重载的赋值运算符函数有两个本类对象作为形参D.如果己经定义了复制(拷贝)构造函数,就不能重载赋值运算符15.已知语句 int m=10;则下列引用的表示中正确的是(分数
8、:2.00)A.intB.intC.intD.float16.数据库设计的 4 个阶段是:需求分析、概念设计、逻辑设计和(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计17.检查软件产品是否符合需求定义的过程称为(分数:1.00)A.确认测试B.集成测试C.验证测试D.验收测试18.下列关于函数的描述中,错误的是_。(分数:1.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板19.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:2.50)A.DB 包含 DBS 和 DBMSB.DBMS 包含
9、 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系20.有如下程序: #includeiostream using namespace std; int main() int*p; *p=9; cout“the value at p:“*p; return 0; 编译运行程序将出现的情况是_。(分数:1.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at p:9C.运行时一定输出:The value at p:*9D.运行时有可能出错21.一个类的友元函数能够访问该类的_。(分数:2.50)A.私有成员B.保护成员C.公用成员D.所
10、有成员22.下列程序的运行结果为_。 # includeiostream.h templateclass TT class FF TT a1,a2,a3; public: FF(TT b1,TT b2,TT b3)a1=b1;a2=b2;a3=b3; TT Sum()return a1+a2+a3;); void main() FFintx(int(1.1),2.3),y(int(4.2),5,6); coutx.Sum()“y.Sum()encIl;(分数:2.50)A.6.1 15.2B.6 15C.6 15.2D.6.1 1523.有以下程序: #includeiostream usin
11、g namespace std; class A private: int a; public: A(int i) a=i; void disp() couta“,“; class B private: int b; public: B(int j) b=j; void disp() coutb“,“; class C:public B,public A private: int c; public: c(int k):A(k-2),B(k+2) c=k; void disp() a:disp(); B:disp(); coutcendl; ; int main() C obj(10); ob
12、j. disp(); return 0; 程序执行后的输出结果是_。(分数:1.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,1024.有如下程序: #include using name space std;classBpublic:B(int xx):x(xx)+count;x+=10;virtual void show()constcoutcountshow();delete ptr;return 0;运行时的输出结果是 。 A.1_120 B.2_120 C.1_20 D.2_20A B C D B解析 本题考查了类的继承。继承有三种方式,public
13、公有、pnvate 私有和 protected 保护,本题都涉及到了。本题中类 D 公有继承类 B。在类 B 中又定义了虚函数,并且有保护类静态类型 count 及私有变量x。主函数中调用类 D,类 D 又继承了类 B,经过系统及调用,本题最终结果为 2120。(分数:2.00)A.1_120B.2_120C.1_20D.2_2025.将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是_。(分数:1.00)A.不合法的运算符B.一元运算符C.无操作数的运算符D.二元运算符26.下面叙述中错误的是(分数:2.00)A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位
14、”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性27.数据流程图(DFD 图)是 _ 。(分数:2.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具28.下列错误的定义语句是 _ 。(分数:2.00)A.int x3=0,1,1,2,3;B.int x43=1,2,3,1,2,3,1,2,3,1,2,3;C.int x4=1,2,3,1,2,3,1,2,3,1,2,3;D.int x3=1,2,3,4;29.下列程序的执行结果是_。 #include class Samplein
15、t x,y;public:Sample()x=y=0;Sample(int a,int b)x=a;y=b;Sample()if(x=y)cout“x=y“endl;elsecout“x!=y“endl;void disp()cout“x=“x“,y=“yendl;void main()Sample s1(2,3);s1.disp(); A.x=2,y=2 B.x=3,y=3 C.x=2,y=3 D.x=3,y=2A B C D C解析 本题考查类的构造函数和析构函数。首先,Samples1(2,3);会调用含有两个参数的构造函数Sample(int a,int b)x=a;y=b;,disp
16、()函数输出成员变量 x 和 y 的值 x=2,y=3;然后结束时调用析构函数,因为 x 和 y 值不等,故输出 x!=y。(分数:1.00)A.x=2,y=2B.x=3,y=3C.x=2,y=3D.x=3,y=230.设有表示学生选课的 3 张表,学生 S(学号、姓名、性别、年龄、身份证号)、课程 C(课号、课名)、选课 SC(学号、课号、成绩),则表 SC 的关键字(键或码)为_。(分数:2.50)A.课号、成绩B.学号、成绩C.学号、课号D.学号、姓名、成绩31.在 C+中,cin 是一个_。(分数:2.50)A类B.对象C.模板D.函数32.下列关于派生类构造函数和析构函数的说法中,错
17、误的是_。(分数:1.00)A.派生类的构造函数会隐含调用基类的构造函数B.如果基类中没有缺省构造函数,那么派生类必须定义构造函数C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数33.将下面类 TestClass 中的函数 fun()的对象成员 n 值修改为 100 的语句应该是 _ 。 class TcstClass public: TestClass(int x)n=x; void SetNum(int n1)n=n1; private: int n; int fun() TestClass * ptr
18、=new TestClass(45); _; (分数:2.00)A.TestClass(100)B.ptr-SetNum(100)C.SetNum(100)D.ptr-n=10034.若需要为 XV 类重载乘法运算符,运算结果为 XV 类型,在将其声明为类的成员函数时,下列原型声明正确的是_。(分数:2.00)A.XV operator *(XV,XV)B.XV *(XV)C.operator *(XV)D.XV operator *(XV);35.关于类和对象描述错误的是_。(分数:2.50)A.对象(Object)是现实世界中的客观事物,对象具有确定的属性B.类是具有相同属性和行为的一组对
19、象的集合C.对象是类的抽象,类是对象的实例D.类是对象的抽象,对象是类的实例二、填空题(总题数:15,分数:26.50)36.下列程序的运行结果是 1。 #inclUde(iostreamh) Class A public: Virtual void use()cout“inA/n”; class B:public A public: virtual void use()cout“inB/n”;; class C:public B public: Virtual void use()cout“in C/n”; void main() A *obj; Obj=new C; Obj-use();
20、delete obj; (分数:2.00)37.在面向对象方法中,类之间共享属性和操作的机制称为 _ 1_ 。 (分数:1.00)38.在面向对象方法中,信息隐蔽是通过对象的 _ 1_ 来实现的。 (分数:1.00)39.在有序列表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值 12,所需的关键码比较次数为 _ 1_ 。 (分数:2.00)40.静态成员函数可以直接访问类的 1 成员,不能直接访问类的 2 成员。 (分数:2.00)41.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 _ 1_ 。 (分数:2.00)42.全面支持软件开发
21、过程的软件工具集合被称为 1。 (分数:2.00)43.下面语句段的输出结果是 1。 int k=1,n=10,m=1; while(k=n) m*=2; n-; coutmendl; (分数:2.50)44.数据结构分为逻辑结构与存储结构,循环队列属于 _ 1_ 。 (分数:2.00)45.类 1 支持输入操作,类 2 支持输出操作。 (分数:1.00)46.下列程序编译错误,因为 add 函数返回值是一个引用,故对 return 返回值的要求是 1。 #includediostream.h int i+) coutsetw(3)i; coutendl; void main() print
22、(4); (分数:2.00)二级 C+-197 答案解析(总分:89.00,做题时间:90 分钟)一、选择题(总题数:35,分数:62.50)1.已知类 Array 的定义如下: class Array public: int data2; Array(int n=0) int start; if(n=1)start=n-1; else start=n; data0=start; data1=start+1; ; 且有如下程序段: Array arr(2); coutarr.data0arr.data1; 则执行这个程序段的输出是(分数:2.00)A.23 B.32C.12D.21解析:2.若
23、执行语句:coutsetfill(“*“)setw(10)123“OK“endl 后将输出 _ 。(分数:2.00)A.*1230K B.123*OKC.*123*OKD.123*OK*解析:解析 cout.fill()用于设置或返回输出的填充字符,默认是空格,fill()函数的设置一直有效,直到下一个 fill()函数改变该值为止。setw(int n)作用是设置输入输出的宽度,此设置只对一次输入或输出效,在完成一次数据的输入或输出后,宽度设置自动恢复为 0。注意:默认为输出数据在指定宽度内右对齐。3.下列关于运算符函数的描述中,错误的是_。(分数:1.00)A.运算符函数的名称总是以 op
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C197 答案 解析 DOC
