【计算机类职业资格】二级C++笔试11及答案解析.doc
《【计算机类职业资格】二级C++笔试11及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试11及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试 11及答案解析(总分:90.00,做题时间:90 分钟)一、B选择题/B(总题数:30,分数:60.00)1.下列关于类和对象描述中,错误的是( )。(分数:2.00)A.对象(Objec 是现实世界中的客观事物,对象具有确定的属性B.类是具有相同属性和行为的一组对象的集合C.对象是类的抽象,类是对象的实例D.类是对象的抽象,对象是类的实例2.以下 4个程序中,不能实现两个实参值进行交换的是 ( )。(分数:2.00)A.void swap (float *p, float * float *t ,a; t = t = p; *p = *q; *q = *t; void mai
2、n () float x = 8.0;y = 9.0; swap ( coutx“, “yend1; B.void swap (float *p, float * float a; a = *p; *p = *q; *q = a; void main() float x = 8.0;y = 9.0; swap ( coutx“, “yend1; C.void swap (float *p, float * float x; x = *p; *p = *q; *q = x; void main() float a,; *a = 8.0;*b = 9.0; swap (a, ; coutx“, “
3、yend1; D.void swap (float a = p; p = q; q = a; void main() float a = 8.0,b = 9.0; swap (a,; coutx“, “yend1; 3.下列说法中,正确的是( )。(分数:2.00)A.在线性表中插入一个元素后,线性表长度不变B.在线性表中删除一个元素后,线性表长度不变C.在线性表中插入一个元素后,线性表长度加 1D.在线性表顺序存储的情况下插入一个元素的效率较高4.下列关于链式存储的叙述中,错误的是( )。(分数:2.00)A.链式存储结构的空间可以是不连续的B.数据节点的存储顺序与数据元素之间的逻辑关系可以
4、不一致C.链式存储方式只可用于线性结构D.链式存储也可用于非线性结构5.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态,其中用于是否进行了非法操作的函数名是( )。(分数:2.00)A.failB.eofC.badD.good6.若有如下程序: #include iostream using namespace std; int s=0; class sample static int n; public: sample (int i) n=i; static void add() s+=n; ; int sample: :s=0; int main () sampl
5、e a(2),b(5); sample: add (); coutsend1; return 0; 程序运行后的输出结果是( )。(分数:2.00)A.2B.5C.7D.37.软件详细设计的主要任务是( )。(分数:2.00)A.确定每个模块的算法和使用的数据结构B.确定每个模块外部的接口C.确定每个模块的功能D.编程8.有以下程序: #include iostream using namespace std; class Base public: Base() virtual void who() cout“Base Class“end1; Base() ; class Derivel :
6、public Base public: void who() cout“Derivel Class“end1; ; class Derive2 : public Base public: void who () cout“Derive2 Class“end1; ; int main () Base *p; Derivel obj1; Derive2 obj2; p= p= p-who ( ); return 0; 执行程序后的输出结果是( )。(分数:2.00)A.Base ClassB.Derivel ClassC.Derive2 ClassD.程序编译时出错9.“or(int x=0,y=
7、0;!x int main () char s=“/n123/“; coutstrlen (s) “, “sizeof (s) end1; return 0; (分数:2.00)A.赋初值的字符串有错B.6,7C.5,6D.6,611.为了使程序的输出的正确结果为: Now is 20047.10 10:10:10 那么应在下列程序划线处填入的正确语句是( )。 那么应在下列程序划线处填入的正确语句是( )。 #include iostream using namespace std; class TIME; class DATE public: DATE(int y=2004,int m=1
8、,int d=1) year=y; month=m; day=d; friend void DateTime(DATE private: int year, month, day; ; class TIME public: TIME(iht h=0, int m=0,int s=0) hour=h; minute=m; second=s; friend void DateTime(DATE private: int hour,minute, second; ; _ /函数 DateTime 的首部 cout“Now is“d.year.d.month.d.day t.hour“:“t.minu
9、te:t.second.end1; int main ( ) DATE d(2004,7,10); TIME t(10, 10, 10); DateTime(d,t); return 0; (分数:2.00)A.void DateTime(DATE class A private: int x; protected: int y; public: int z; void setx(int i) x=i; int getx () return x; ; class B : protected A public: void setvalue(int a, int b, int c) setx (a
10、); y=b; z=c; void display() coutgetx ( ) “, “y“, “z“, “end1; ; int main () B obj; obj.setvalue(5, 6, 7); obj.display ( ); return 0; 程序运行后的输出结果是( )。(分数:2.00)A.产生语法错误B.7,6,5C.5,6,7D.7,5,615.若有以下函数调用语句: f(m+n,x+y,f(m+n,z,(x,y); 在此函数调用语句中实参的个数是( )。(分数:2.00)A.6B.5C.4D.316.在结构化程序设计使用 goto语句的原则是( )。(分数:2.0
11、0)A.限制B.鼓励C.禁止D.滥用17.在数据库设计的 4个阶段中,为关系模式选择存取方法(建立存取路径)的阶段是( )。(分数:2.00)A.需求分析B.概念设计C.逻辑设计D.物理设计18.在函数声明中,下面哪项是不必要的( )。(分数:2.00)A.函数参数的类型和参数名B.函数名C.函数的类型D.函数体19.软件是一种( )。(分数:2.00)A.程序B.数据C.逻辑产品D.物理产品20.若有以下程序段: #include iostream using namespace std; int main () int a=1,4,5; int *p= for (y=0; y3; y+)
12、z= ( (* (p+y) x) ? *(p+y) :x); coutzend1; return 0; 程序运行后的输出结果是( )。(分数:2.00)A.1B.4C.5D.221.下列关于类概念的描述中,错误的是( )。(分数:2.00)A.类是抽象数据类型的实现B.类是具有共同行为的若干对象的统一描述体C.类是创建对象的模板D.类就是 C语言中的结构类型22.若有以下程序: #include iostream using namespace std; class A protected: int a; public: A() a=10; ; class A1 : public A publ
13、ic: A1() a=a+1; ; class A2 : public A public: A2 () a=a+2; ; class B : public A1,public A2 public: B() void print() coutaend1; ; int main ( ) B obj; obj.print(); return 0; 程序运行后的输出结果是( )。(分数:2.00)A.产生语法错误B.11C.12D.1023.某二叉树 T有 n个节点,设按某种顺序对 T中的每个节点进行编号,编号值为 1,2, n,且有如下性质:T 中任一节点 v,其编号等于左子树上的最小编号减 1,而
14、 v的右子树的节点中,其最小编号等于v左子树上的节点的最大编号加 1。此二叉树是按( )顺序编号的。(分数:2.00)A.前序遍历B.中序遍历C.后序遍历D.按层次遍历24.实现运行时的多态性要使用( )。(分数:2.00)A.重载函数B.析构函数C.构造函数D.虚函数25.关系表中的每一横行成为一个( )。(分数:2.00)A.元组B.字段C.属性D.码26.下面关于继承机制的描述中,不正确的是( )。(分数:2.00)A.派生类不仅可以继承基类的成员,也可以添加自己的成员B.设置 protected成员是为派生类访问基类成员之用C.采用不同的继承方式,将限制派生类对基类成员的访问D.采用私
15、有继承,派生类只能得到基类的公有成员27.下列关于队列的叙述中,不正确的是 ( )。(分数:2.00)A.在队列中能插入数据B.在队列中能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表28.下列对模板的声明中,正确的是( )。(分数:2.00)A.temvlateTB.templateclassT1,T2C.temvlateclassT1,classT2D.templateclassT1;classT229.有以下程序: #include iostream using namespace std; class B private: int a,b; public: B() B(i
16、nt i,int j); void printb(); ; class A B C; public: A() A(int i,int j); void printa(); ; A:A(int i,int j) :c(i,j) void A:printa() c.printb (); B:B(int i, int j) a=i; b=j; void B: :printb() couta“, “bend1; int main () A m(7,8); m.printa(); return 0; 该程序运行后的输出结果是( )。(分数:2.00)A.5,6B.7,8C.8,9D.9,1030.有如下
17、程序段,请指出”p 所代表的是( )。 int *p,*s,k=20; S = t = t = p; *p = *q; *q = *t; void main () float x = 8.0;y = 9.0; swap ( coutx“, “yend1; B.void swap (float *p, float * float a; a = *p; *p = *q; *q = a; void main() float x = 8.0;y = 9.0; swap ( coutx“, “yend1; C.void swap (float *p, float * float x; x = *p; *
18、p = *q; *q = x; void main() float a,; *a = 8.0;*b = 9.0; swap (a, ; coutx“, “yend1; D.void swap (float a = p; p = q; q = a; void main() float a = 8.0,b = 9.0; swap (a,; coutx“, “yend1; 解析:解析 本题考核指针和引用作为函数形参。做此类题时,应学会整体比较,要不然花费的时间不亚于一个大的编程题。 首先,这 4个程序都是调用 swap函数,而且目的都一致,交换传入的两个实参值。 分析被调函数 swap()。在选项
19、A、B 和 C中都是指针作为形参,只有在选项 D中,函数 swap()是以引用作为形参。由指针和引用作为函数形参的特点可知,只要调用了函数,就能达到交换两个实参变量的值,所以这几个被调函数没有问题。 再看主函数。在选项 C中,没有定义指针类型变量,而是直接给指针变量赋值: “floata,b;*a=8.0;*b=9.0;”,这显然是非法的。想直接开辟存储空间,交换两个常量值,是不可能的。所以只有选项 C是错误的。3.下列说法中,正确的是( )。(分数:2.00)A.在线性表中插入一个元素后,线性表长度不变B.在线性表中删除一个元素后,线性表长度不变C.在线性表中插入一个元素后,线性表长度加 1
20、 D.在线性表顺序存储的情况下插入一个元素的效率较高解析:解析 在线性表中插入一个元素后,线性表长度加 1,选项 A是错误的。在线性表中删除一个元素后,线性表长度减 1,选项 B是错误的。在线性表顺序存储的情况下插入一个元素,在平均情况下需要移动的数据元素数目为 n2,效率较低,选项 D 是错误的。4.下列关于链式存储的叙述中,错误的是( )。(分数:2.00)A.链式存储结构的空间可以是不连续的B.数据节点的存储顺序与数据元素之间的逻辑关系可以不一致C.链式存储方式只可用于线性结构 D.链式存储也可用于非线性结构解析:解析 链式存储结构不同于顺序存储结构,它的存储空间可以是不连续的,并且数据
21、节点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系是由指针域来确定的。链式存储方式可用于线性结构链式存储也可用于非线性结构,在表示复杂的非线性结构时,指针域的个数要多一些。5.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态,其中用于是否进行了非法操作的函数名是( )。(分数:2.00)A.failB.eofC.bad D.good解析:解析 C+中可以用文件流对象的下列成员函数来判别文件流的当前状态。 函数 is open 判定流对象是否与一个打开的文件相联系,若是,返回 true,否则返回 false。 函数 good 刚进行的操作成功时返回
22、true,否则返回 false。 函数 fail 与 good()相反,刚进行的操作失败时返回 true,否则返回 false。 函数 bad 如果进行了非法操作返回 true,否则返回 false。 函数 eof 进行输入操作时,若到达文件尾返回 true,否则返回 false。 其中,eof 函数只能用于输入流操作。6.若有如下程序: #include iostream using namespace std; int s=0; class sample static int n; public: sample (int i) n=i; static void add() s+=n; ;
23、int sample: :s=0; int main () sample a(2),b(5); sample: add (); coutsend1; return 0; 程序运行后的输出结果是( )。(分数:2.00)A.2B.5 C.7D.3解析:解析 本题考核静态数据成员和静态成员函数的应用。程序中定义一个类 sample,它包括一个静态数据成员 n和一个静态成员函数 add(),并在类的构造函数中给类私有静态数据成员 n赋值。在主函数中,定义对象 a(2)时,通过构造函数使静态数据成员 n的值变为 2,在定义对象 b(5)时,通过构造函数使静态数据成员 n=5(覆盖了前面的 n=2),再
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 11 答案 解析 DOC