【计算机类职业资格】二级C++-189及答案解析.doc
《【计算机类职业资格】二级C++-189及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-189及答案解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-189 及答案解析(总分:96.50,做题时间:90 分钟)一、选择题(总题数:35,分数:66.00)1.能正确表示逻辑关系:“a10 或 a0”的 C语言表达式是(分数:2.00)A.a10 or a0B.a0 | a10C.a10 ”,则 strlen(s)的值是_。(分数:2.50)A.7B.8C.9D.104.下列关于二叉树的叙述中,正确的是_。(分数:2.50)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍5.下列代码段声明了 3 个类: class
2、 Person; class Student:public Person; class Undergraduate:Student; 下列关于这些类之间关系的描述中,错误的是 _ 。(分数:2.00)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类 Student 公有继承C.类 Student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类6.下列语句中,错误的是_。(分数:1.00)A.const int buffer=256;B.const int temp;C.const double
3、*point;D.const double *rt=new double(5.5);7.以下正确的描述为(分数:2.00)A.每个 C+语言程序必须在开头用预处理命令:B.预处理命令必须位于 C+源程序的首部C.在 C+语言中预处理命令都以“#”开头D.C+语言的预处理命令只能实现宏定义和条件编译的功能8.支持子程序调用的数据结构是_。(分数:1.00)A栈B树C.队列D.二叉树9.下列选项中正确的语句是_。(分数:1.00)A.char s;s=“BOOK!“;B.chsr *s;s=“BOOK!“;C.char s10;s=“BOOK!“;D.char *s;s=“BOOK!“;10.以下
4、有关析构函数的叙述不正确的是(分数:2.00)A.一个类只能定义一个析构函数B.析构函数和构造函数一样可以有形参C.析构函数不允许有返回值D.析构函数名前必须冠有符号“”11.有如下程序: #includeiostream #includestring using namespace std; class MyBag public: MyBag(string br, string cr):brand(br), color(cr)+count; static int GetCount()return count; private: string brand, color; static int
5、count; ; int MyBag:count=0; int main() MyBag one(“CityLife“, “Gray“); coutone.GetCount(); MyBag*ptr=new MyBag(“Coach“, “Black“); coutMyBag:GetCount(); return 0; 运行时的输出结果是_。(分数:1.00)A.12B.21C.22D.1112.下列语句分别是不同程序中的第一个输入输出语句。若去掉其中的“left”,输出效果将发生变化的是(分数:2.00)A.coutleftsetfill(“*“)357;B.coutleftsetw(5)3
6、57;C.coutleftsetw(5)“ABCDE“;D.coutleft“ABCDE“;13.设有说明语句: char a=“ab/123cd/0“,*p1=a; int b10=1,2,3,4,*p2=b; 以下选项中,正确的是_。(分数:2.00)A.sizeof(a)的值等于 strlen(p1)的值B.sizeof(b)的值是 4,strlen(b)的值是 4C.sizeof(*p1)的值与 sizeof(*p2)的值相等D.strlen(a)的值与 strlen(p1)的值是相等14.以下程序的输出的结果是 _ 。 #includeiostream.h void main() i
7、nt i,k,a10,p3; k=5; for(i=0;i9;i+)ai=i; for(i=0;i3;i+)pi=ai*(i+1); for(i=0;i3;i+)k+=pi*2; coutk; (分数:2.00)A.20B.21C.22D.2315.有如下程序: #include iostream using namespace std; class AA int n; public: AA(int k):n(k) int get()return n; int get()constreturn n+1; int main() AA a(5); const AA b(6); couta.get(
8、)b.get(); return 0; 执行后的输出结果是 _ 。(分数:2.00)A.55B.57C.75D.7716.某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度为(假设根结点在第 1 层) _ 。(分数:2.00)A.3B.4C.6D.717.已知 n 是一个 int 型变量,下列语句中错误的是 _ 。(分数:2.00)A.long*p=new longn;B.long pn;C.long*p=new longn;D.long p10;18.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是 _ 。(分数:2.00)A.DB 包含 DBS 和
9、 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系19.若在表达式“y/x”中,“/”是作为成员函数重载的运算符,则该表达式还可以表示为_。(分数:2.00)A.Operator/(y)B.operator/(x,y)C.operator/(x)D.operator/(y,x)20.下列程序执行结果是 #includeiostream.h class A public: int a; A( ):a(10)toutaendl; ; void main( ) A obj1; A obj2(obj1); cout“ “obj2.aendl; (分数:2
10、.00)A.10 10B.编译错误缺少拷贝构造函数C.10 随机数D.随机数随机数21.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:2.50)A.123456ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA22.有如下程序: #includeiostream using namespace std; class Music public: void setTitle(char*str) strcpy(title, str); protected: char type10; pr
11、ivate: char title20; ; class Jazz: public Music public: void set(char*str) strcpy(type, “Jazz“);/ strcpy(title, str);/ ; 下列叙述中正确的是_。(分数:1.00)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出错D.程序编译时语句和都出错23.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是 _ 。(分数:1.00)A.showbase()和 eof()B.showpoint()和 eof()C.showpoint()和 bad()D.showpoint
12、()和 good()24.两个或两个以上模块之间联系的紧密程度称为_。(分数:1.00)A.耦合性B.内聚性C.复杂性D.数据传输特性25.以下非法的赋值表达式是(分数:2.00)A.n(i2,+i);B.j+;C.+(i+1);D.xj0;26.下列数据结构中具有记忆作用的是(分数:2.00)A栈B.队列C.有序表D.二叉树27.有如下类定义: class Animal public: virtual void Name()=0; ; class Koala:public Animal public: void Name()/*函数体略*/ ; 关于上述类定义,下列描述中错误的是_。(分数:
13、2.50)A.类 Koala 是类 Animal 的派生类B.类 Koala 中的 Name 函数是一个虚函数C.类 Animal 中的 Name 函数是一个纯虚函数D.语句“Animal a;”能够建立类 Animal 的一个对象 a28.下列叙述中,不属于设计准则的是_。(分数:2.50)A.提高模块独立性B.使模块的作用域在该模块的控制域中C.设计成多入口、多出口模块D.设计功能可预测的模块29.下面是类 MyClass 的定义,对定义中各语句描述正确的是_。 class MyClass public: void MyClass(int a) X=a; / int f(int a,int
14、 b) / X=a; Y=b; int f(int a,int b, int c=0) / X=a; Y=b; Z=c; static void g() X=10; / private: int X, Y, Z; ;(分数:2.50)A.语句是类 MyClass 的构造函数定义B.语句和语句实现类成员函数的重载C.语句实现对类成员变量 X 的更新操作D.语句、和都不正确30.通过运算符重载,只能改变运算符原有的_。(分数:1.00)A.优先级B.操作数个数C.操作数类型D.结合性31.当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是_。(分
15、数:2.50)A.任何B.公有或保护C.保护或私有D.私有32.有如下程序: #includeiostream using namespace std; class Name char name20; public: Name() strcpy(name,“); cout“?“; Name(char*fname) strcpy(name,fname); cout“?“; ; int main() Name names3=Name(“张三“),Name(“李四“); return 0; 运行此程序输出符号?的个数是_。(分数:3.00)A.0B.1C.2D.333.有如下程序: #include
16、iostream using namespace std; class Point public: static int number; public: Pointonumber+; Point()number-;) ; int Point:number-0; void mainO Point*ptr; PointA,B; Point*ptr_point=new Point3; ptx=ptr_point; Point C; Gout+Point:number+endl; deleteptr; 运行时输出的结果是_。(分数:2.00)A.3B.4C.6D.734.有以下程序: #include
17、 iostream using namespace std; int main() int num23,*p; int t,i,j,k=10; p=num0; for(i=0;i2;i+) for(j=0;j3;j+) k+; *p=k; for(t=2;t*p;t+) if(!(*pt) j-; *p-; break; *p+; cout*(p-1)end1; return 0; 程序运行后的输出结果是 _ 。(分数:1.00)A.19B.11C.29D.2335.下列关于运算符重载的叙述中,正确的是_。(分数:2.50)A.通过运算符重载机制可以为 C+语言扩充新的运算符B.运算符重载的作
18、用是使已有的运算符作用于类的对象C.重载运算符的操作数类型可以全部为基本类型D.所有运算符都可以重载二、填空题(总题数:15,分数:30.50)36.下列程序的输出结果为 _ 1_ 。 #include iostream. h void main() char a=“abcdabcabfgacd“; int i1=0,i2=0,i=0; while (ai) if (ai=“a“) i1+; if (ai=“q“) i2+; i+; couti1“i2end1; (分数:2.00)37.与公式 (分数:2.50)38.当派生类中有和基类相同名字的成员时,派生类的同名成员会 _ 1_ 基类的成员
19、。 (分数:2.00)39.表达式 x.operator+(y.operator+(0)还可以写成 1。 (分数:2.00)40.在 C+中,运行时的多态性是通过 1 体现的。 (分数:2.00)41.常用的黑箱测试有等价分类法、 1 、因果图法和错误推测法 4 种。 (分数:1.00)42.下列程序的运行结果是 1。 #includeiostream.h) class test private: int num; public: test(); int TEST()return num+100; test(); ; test:test()num0; test:test()cout“Destr
20、uctor is active“endl; void main() test x3; coutx1.TEST()end1; (分数:2.00)43.有如下的程序: #include fstream using namespace std; int main () ofstream outf(“D: /temp“ ,ios_base:trunc); outf“World Wide Web“; outf.close (); ifstream inf(“D: /temp“); char s20; infs; inf.close(); couts; return0; 执行上面的程序将输出 1。 (分数
21、:3.50)44.有以下程序: #includeiostream using namespace std; int main() int i=1,sum=0; Loop:if(i=20) sum+=i; i+; goto Loop; coutsumend1; return 0; 该程序运行后的输出结果是 _ 1_ 。 (分数:1.00)45.执行语句 coutsetw(6)setfill(“*“)12endl; 结果是 _ 1_ 。 (分数:2.00)46.执行语句序列 int x=10, coutx“-“rendl; 输出结果为 1。 (分数:2.00)47.写出执行完下列代码段之后指定变量
22、的值: bool x=true, y=false, z=false; x=x y=x|y z=!(x!=y)|(y=z); 则 x= 1,y= 2,z= 3。 (分数:2.50)48.虚函数必须是类的 _ 1_ 。 (分数:2.00)49.设一棵二叉树的中序遍历结果为 ABCDEFG,前序遍历结果为 DBACFEG,则后序遍历结果为 1。 (分数:2.00)50.将一个函数声明为一个类的友元函数必须使用关键字 _ 1_ 。 (分数:2.00)二级 C+-189 答案解析(总分:96.50,做题时间:90 分钟)一、选择题(总题数:35,分数:66.00)1.能正确表示逻辑关系:“a10 或 a
23、0”的 C语言表达式是(分数:2.00)A.a10 or a0B.a0 | a10C.a10 ”,则 strlen(s)的值是_。(分数:2.50)A.7 B.8C.9D.10解析:解析 C 语言中 strlen()函数的功能是返回字符串的长度,其中“/0“是一个转义字符,它占存储空间,但不计入字符串的长度。所以选项 A 正确。4.下列关于二叉树的叙述中,正确的是_。(分数:2.50)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个 C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍解析:解析 由二叉树的性质可以知道在二叉树
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C189 答案 解析 DOC
