[计算机类试卷]国家二级(C++)笔试模拟试卷86及答案与解析.doc

上传人:花仙子 文档编号:502794 上传时间:2018-11-29 格式:DOC 页数:13 大小:44.50KB
下载 相关 举报
[计算机类试卷]国家二级(C++)笔试模拟试卷86及答案与解析.doc_第1页
第1页 / 共13页
[计算机类试卷]国家二级(C++)笔试模拟试卷86及答案与解析.doc_第2页
第2页 / 共13页
[计算机类试卷]国家二级(C++)笔试模拟试卷86及答案与解析.doc_第3页
第3页 / 共13页
[计算机类试卷]国家二级(C++)笔试模拟试卷86及答案与解析.doc_第4页
第4页 / 共13页
[计算机类试卷]国家二级(C++)笔试模拟试卷86及答案与解析.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、国家二级( C+)笔试模拟试卷 86及答案与解析 1 类 MyClass的定义如下: class MyClass public: MyClass() MyClass(int i)value=new int(i); int*value; ; 若要对 value赋值,则下面语句正确的是 ( )。 ( A) MyClass my; my.value=10; ( B) MyClass my; *my.value=10; ( C) MyClass my; my.*value=10; ( D) MyClass my(10); 2 对以下说明语句的正确理解是 ( )。 int a10=6, 7, 8, 9,

2、 10; ( A)将 5个初值依次赋给 a1至 a5 ( B)将 5个初值依次赋给 a0至 a4 ( C)将 5个初值依次赋给 a6至 a10 ( D)因为数组长度与初值的个数不相同,所以此语句不正确 3 下列对类的构造函数和析构函数的描述中,正确的是 ( )。 ( A)构造函数可以重载, 析构函数不能重载 ( B)构造函数不能重载,析构函数可以重载 ( C)构造函数可以重载,析构函数也可以重载 ( D)构造函数不能重载,析构函数也不能重载 4 有关类和对象的说法不正确的是 ( )。 ( A)对象是类的一个实例 ( B)任何一个对象只能属于一个具体的类 ( C)一个类只能有一个对象 ( D)类

3、与对象的关系和数据类型和变量的关系相似 5 列对派生类的描述中,错误的是 ( )。 ( A)一个派生类可以作为另一个派生类的基类 ( B)派生类至少有一个基类 ( C)派生类的缺省继承方式 是 private ( D)派生类只继承了基类的公有成员和保护成员 6 以下程序的输出结果是 ( )。 #include iostream.h void main() int i,j,x=0; fof(i=0; i 2;i+= x+; for(j=0: j 3; j+= if(j%2)continue; x+; x+; cout “x=“ X; = ( A) x=4 ( B) x=8 ( C) x=6 (

4、D) x=12 7 下面的叙述中,不符合赋值兼容规则的是 ( )。 ( A)派生类的对象可以赋值给基类的对象 ( B)基类的对象可以赋值给派生类的对象 ( C)派生类的对象可以初始化基类的引用 ( D)派生类的对象的地址可以赋值给指向基类的指针 8 ( )不是构造函数的特征。 ( A)构造函数的函数名与类名相同 ( B)构造函数可以重载 ( C)构造函数可以设置默认参数 ( D)构造函数必须指定类型说明 9 下列程序中,划线处正确 的语句是 ( )。 #include iostream.h Class Base Public: Void fun()cout “Base:fun“endl; ;

5、Class Derived:public Base void fun() _ /显示调用基类的函数 fun() Cout “Derived:fun“endl; ; ( A) fun() ( B) Base.fun() ( C) Base:fun() ( D) Base- fun(); 10 while和 do-while循环的主要区别是 ( )。 ( A) do-while的循环体至少无条件执行一次 ( B) while的循环控制条件比 do-while的循环控制条件更严格 ( C) do-while允许从外部转到循环体内 ( D) do-while的循环体不能是复合语句 11 对虚函数的调用

6、 ( )。 ( A)一定使用动态联编 ( B)必须使用动态联编 ( C)一定使用静态联编 ( D)不一定使用动态联编 12 编译时的多态性可以通过使用 ( )获得。 ( A)虚函数和指针 ( B)重载函数和析构函数 ( C)虚函数和对象 ( D)虚函数和引用 13 以下程序的结果是 ( )。 #include iostream.h void main() char*p=“abcdefgh“, *r; long*q; q=(1ong*)P; q+; r=(char*)q; cout r endl; = ( A) defg ( B) cdef ( C) ghab ( D) efgh 14 假定 M

7、yClass为一个类,则该类的拷贝构造函数的声明语句为 ( )。 ( A) MyClass&(MyClass x); ( B) MyClass(MyClass x) ( C) MyClass(MyClass& x); ( D) MyClass(MyClass *x) 15 在 C+中,打开一 个文件就是将这个文件与一个 ( )建立关联;关闭一个文件就取消这种关联。 ( A)类 ( B)流 ( C)对象 ( D)结构 16 在派生类中重新定义虚函数时,除了 ( )方面,其他方面都必须与基类中相应的虚函数保持一致。 ( A)参数个数 ( B)参数类型 ( C)函数名称 ( D)函数体 17 下列关

8、于 C+语言类的描述中错误的是 ( )。 ( A)类用于描述事物的属性和对事物的操作 ( B)类与类之间通过封装而具有明确的独立性 ( C)类与类之间必须是平等的关系,而不能组成层次结构 ( D)类与类之间可以通过一些方法进行通信和联络 18 关于纯虚函数,下列表述正确的是 ( )。 ( A)纯虚函数是没有给出实现版本 (即无函数体定义 )的虚函数 ( B)纯虚函数的声明总是以 “=0”结束 ( C)派生类必须实现基类的纯虚函数 ( D)含有纯虚函数的类不可能是派生类 19 ( )是给对象取一个别名,它引入了对象的同义词。 ( A)指针 ( B)引用 ( C)故举 ( D)结构 20 一个 (

9、 )允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取 任意类型。 ( A)函数模板 ( B)模板函数 ( C)类模板 ( D)模板类 21 如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是 ( ) ( A)一元运算符 ( B)二元运算符 ( C)选项 A和选项 B都可能 ( D)重载错误 22 以下不属于运算符重载应注意的问题是 ( )。 ( A)重载的运算号应保持其原有的基本 ( B)重载的运算符应尽可能保持其原有的特性 ( C)运算符的重载尽量不配套 ( D)使用引用参数还是非引用函数 23 友元运算符 obj1 obj2被 C+编译器解释为

10、( )。 ( A) operator (obj1, obj2) ( B) (obj1, obj2) ( C) obj2.operator (obj1) ( D) obj1.operator (obj2) 24 下面是关于 ios类的叙述,正确的是 ( )。 ( A)它是 istream类和 ostream类的虚基类 ( B)它只是 istream类的虚基类 ( C)它只是 ostream类的虚基类 ( D)它是 iostream类的虚基类 25 对于模板定 义关键字 class和 typename说法不正确的是 ( )。 ( A)程序中的 class并不能都替换为 typename ( B)

11、class和 typename都可互相替换 ( C)程序中的 typename都能替换为 class ( D)程序中的部分 class可以替换为 typename 26 C+程序由类和函数组成,模板也可分为 ( )和 ( )。 ( A)类模板 函数模板 ( B)模板类 模板函数 ( C)类 函数 ( D)对象 函数 27 进行文件操作时需要包含 ( )文件。 ( A) lostream.h ( B) fstream.h ( C) stdio.h ( D) stidliB.h 28 下列函数中, ( )是对文件进行写操作的。 ( A) get ( B) read ( C) seekg ( D)

12、put 29 下面的语句中错误的是 ( )。 ( A) int a=5: int xa; ( B) const int a=5; int xa; ( C) int n=5; int*p=new int a; ( D) const int n=5: int*p=new inta; 30 进行文件操作需包含的头文件是 ( )。 ( A) fstream.h ( B) ostream.h ( C) stdio.h ( D) stdiB.h 31 已知 p是一个指向类 Sample数据成员 m的指针, s是类 Sample的一个对象。如果要给 m赋值为 5, ( )是正确的。 ( A) s.p=5 (

13、 B) s- p=5 ( C) s.*p=5 ( D) *s.p=5 32 对于下面定义的类 MyClass,在函数 f()中将对象成员 n的值修改为 50的语句应该是 ( )。 class MyClass public: MyClass(int X)n=x; void SetNum(int nl)n=nl private: int n; int f() MyClass*ptr=new MyClass(45); _ ( A) MyClass(50) ( B) SetNum(50) ( C) ptr- SetNum(50) ( D) ptr- n=50 33 数据库、数据库系统和数据库管理系统之

14、间的关系是 ( )。 ( A)数据库包括数据库系统和数据库管理系统 ( B)数据库系统包括数据库和数据库管理系统 ( C)数据库管理系统包括数据库和数据库系统 ( D) 3者没有明显的包含关系 34 下列程序执行后的输出结果是 ( )。 void funcl(int i); void func2(int i); char st=“hello,friend!”; void funcl(int i) printf(“%c“, sti); if(i 3)i+=2; func2(i); void func2(int i) printf(“%c“, sti); if(i 3)i+=2; funcl(i)

15、; main() int i=0; funcl(i); printf(“n“); ( A) hello ( B) hel ( C) hol ( D) hlm 35 C+中用 3个保留字实现异常处理,除了 try和 catch外,还有 ( )。 ( A) if ( B) class ( C) throw ( D) return 36 在算法正确的前提下,评价一个算法的两个标准是【 】。 37 将代数式 转换成程序设计中的表达式为【 】。 38 软件危机出现于 60 年代末,为了解决软件危机,入们提出了【 】的原理来设计软件,这就是软件工程诞生的基础。 39 【 】是数据库设 计的核心。 40 在

16、关系模型中,把数据看成一个二维表,每一个二维表称为一个【 】。 41 在 C+语言的面向对象程序设计框架中,【 】是程序的基本组成单元。 42 C+语言程序的注释可以出现在程序中的任何地方,一个注释以【 】作为开始和结束的标记。 43 以下程序的输出结果是【 】。 #include iostream.h void fun( ) static int a=0; a+ =2; cout a “ “; void main( ) int cc; for(cc=1; cc 4; cc+) fun( ); cout end1; 44 用以下语句调用库函数 malloc,使字符指针 st指向具有 11 个字节的动态存储空间,请填空。 st=(char*) 【 】; 45 以下程序的输出结果是【 】。 #include iostream.h unsigned fun (unsigned num) unsigned k=1; dok*=num%10; num/=10; while(num); return k; void main( ) unsigned n=26; cout fun(n) end1; 46 将 x+y*z中的 “+”用成员函数重载, “*”用友元函数重载应写为【 】。 国家二级( C+)笔试模拟试卷 86答案与解析

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1