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

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

1、国家二级( C+)笔试模拟试卷 232及答案与解析 1 使用白盒测试法时,确定测试数据应该根据 ( )和指定的覆盖标准。 ( A)程序的内部逻辑 ( B)程序的复杂结构 ( C)使用说明书 ( D)程序的功能 2 下列有关数据库的描述,正确的是 ( A)数据库是一个 DBF文件 ( B)数据库是一个关系 ( C)数据库是一个结构化的数据集合 ( D)数据库是一组文件 3 程序设计语言的基本成分是数据成分、运算成分、控制成分和 ( A)对象成分 ( B)变量成分 ( C)语句成分 ( D)传输成分 4 5 6 有如下函数模板: template typename T, typenaine U T

2、 cast(U u)return u; 其功能是将 U类型数据转换为 T类型数据。已知 i为 int型变量,下列对模板函数 cast的调用中正确的是 ( A) cast(i); ( B) cast (i); ( C) cast char*, int (i); ( D) cast double, int (i); 7 软件详细设计的 主要任务是确定每个模块的 ( )。 ( A)算法和使用的数据结构 ( B)外部接口 ( C)功能 ( D)编程 8 已知 int a, *pa= ( B) cin.getline(str,strlen(str); ( C) cin str; ( D) cin.rea

3、d(str,strlen(str); 14 已知 :int m 10;在下列定义引用的语句中,正确的是 ( )。 ( A) int if(fin) cout “ok“; else cout “wrong“; if语句中的内容可以换为 ( A) fin. fail( ) ; ( B) fin. bad( ) ; ( C) fin. good( ) ; ( D) fin. eof( ) ; 17 有如下类的定义。横线处的语句是 ( )。 class MyClass public: MyClass(int a=0,int b=0) X=a: Y=b: void Change()const X-=10

4、: Y+=10: private: _int X, Y; ( A) static ( B) const ( C) mumble ( D)不需要填入内容 18 关于函数重载,下列叙述中错误的是 ( )。 ( A)重载函数的函数名必须相同 ( B)重载函数必须在参数个数或类型上有所不同 ( C)重载 函数的返回值类型必须相同 ( D)重载函数的函数体可以有所不同 19 下列对模板的声明中正确的是 ( )。 ( A) template T ( B) template class T1,T2 ( C) template classT1,class T2 ( D) template class T1;

5、class T2 20 关于在调用模板函数时模板实参的使用,下列表述正确的是 ( )。 ( A)对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略 ( B)对于 虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略 ( C)对于虚拟类型参数所对应的模板实参,若能够省略则必须省略 ( D)对于常规参数所对应的模板实参,任何情况下都不能省略 21 下列有关内联函数的叙述中,正确的是 ( )。 ( A)内联函数在调用时发生控制转移 ( B)内联函数必须通过关键字 inline 来定义 ( C)内联函数是通过编译器来实现的 ( D)内联函

6、数函数体的最后一条语句必须是 return 语句 22 下列程序的运行结果为 ( )。 #include iostream.h void main() int a=2; int b=a+1; cou afo endl; ( A) 0.66667 ( B) 0 ( C) 0.7 ( D) 0.66666666 23 下面叙述错误的是 ( )。 ( A)基类的 protected成员在派生类中仍然是 protected的 ( B)基类的 protected成员在 public派生类中仍然是 protected的 ( C)基类的 protected成员在 private派生类中是 private的

7、( D)一基类的 protected成员不能被派生类的对象访问 24 有如下程序 #include iostream using namespace std; class base public: virtual void f1() cout “F1Base“; virtual void f2() cout “F2Base“; ; class derive:public base void f1() cout “F1 Derive“; void f2(int x) cout “F2 Derive“; ; int main() base obj1, *p; derive obj2; p= p-

8、f1(); p- f2(); return (); ) 执行后的输出结果是 ( )。 ( A) F1Derive F2Base ( B) F1Derive F2Derive ( C) F1Base F2Base ( D) F1Base F2Derive 25 关于关键字 class 和 typename,下列表述正确的是 _ 。 ( A)程序中所有的 typename都可以替换为 class ( B)程序中所有的 class都可以替换为 typename ( C) A)和 B)都正确 ( D) A)和 B)都不正确 26 下列程序的输出结果是 #include iostream h int m

9、in(int a, int b) if(a b)return a; else return b; return 0; void main() cout min(1, min(2, 3) end1; ( A) 0 ( B) 1 ( C) 2 ( D) 3 27 有如下程序 #include iostream.h void main( ) float x=2.O,y; if(x O.0)y=0.0; else if(x 10.O)y=1.0/x; else y=1.0; cout y; 该程序的输出结果是 ( A) 0 ( B) 0.25 ( C) 0.5 ( D) 1 28 派生类的构造函数的成

10、员初始化列表中,不能包含 ( A)基类的构造函数 ( B)派生类中子对象的初始化 ( C)基类的子对象初始化 ( D)派生类中一般数据成员的初始化 29 以下选项中合法的用户标识符是 ( A) long ( B) _2Test ( C) 3Dmax ( D) A.dat 30 下面程序的功能是 ( )。 #include iostream #include string using namespace std; int main () int i=1, n=0; char s80,*p; p=s; strcpy(p,“It is a book“); for (; *p != 0 ;p+) if

11、(*p=) i=0; else if (i=0) n+; i=1; cout “n=“ n end1; return 0; ( A)统计字符串中的单词个数 ( B)统计字符串中的空格个数 ( C)统计字符串中 的字母个数 ( D)统计字符串中的全部字符个数 31 下表正确的是 在父类中的访问属性 访问修饰符 在子类中的访问属性 ( A) public private 不能直接访问 ( B) protect public public ( C) private public 不能直接访问 ( D) protect private protect 32 在类的定义中,用于为对象分配内存空间,对类的

12、数据成员进行初始化并执行其他内部管理操作的函数是 ( A)友元函数 ( B)虚函数 ( C)构造函数 ( D)析构函数 33 下列描述中正确的是 ( A)多重继承中,不同父类中不能有同名成员 ( B)多重派生中,所有父类的派生方式必须相同 ( C)多重派生的子类不能再派生子类 ( D)上述三种说法都不对 34 执行语句序列 ofstream outfile(”DATA DAT“); if()cout “OK“; elsec out “FAIL“; 后,如果文件打开成功显示 “OK”,否则就显示 “FAIL”。由此可知,上面 if语句的 处的表达式应是 ( A) outfile fail()或

13、outfile ( B) outfile good()或 !outfile ( C) outfile good()或 outfile ( D) outfile fail()或 !outfile 35 在 C+中,用于实现运行时多态性的是 ( A)内联函数 ( B)重载函数 ( C)模板函数 ( D)虚函数 36 数据的基本单位是【 】。 37 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【 】。 38 【 】是数据库设计的核心。 39 在数据库的概念结构设计中,常用的描述工具是【 】。 40 以下程序的执行结果是 _。 #include iostream.h #i

14、nclude iomanip.h voidmain() cout fill(*); cout width(10); cout setiosflags(ios: left) “123.45“ endl; cout width(8); cout “123.45“ endl: cout width(4); cout “123. 41 类 ostream的成员函数【 】用于执行无格式输出,成员函数 put用于输出单个字符。 42 如果表达式 -x中的 “”是重载的类运算符,采用运算符函数调用格式,其表达式还可以表示为 _。 43 C+中封装性、继承性和 _是面向对象思想的主要特征。 44 重载函数的函

15、数名称相同,但函数的实现和功能不同,系统是靠【 】来决定采用哪个函数。 45 在析构函数中调用虚函数时,采 用【 】联编。 46 表达式 x.operator+(y.operator+(0)还可以写成【 】。 47 以下程序的执行结果是【 】。 #include iostream.h template class T class Sample T n; public: Sample(T i)n=i;) void operator(); void disp()cout “n=“ n endl; ) ; template class T void Sample T :operator() n=1;

16、 /不能用 n;因为 double型不能用 void main() Sample char S(a); S; s.disp(); 48 以下程序的执行结果是 _。 #include iostream.h class A int a; public: void seta(int x) a=x; void showa() cout a endl; ; class B int b; public: void setb(int x) b=x; void showb() cout b endl: ; class C: public A, private B private: int c; public:

17、 voidsetc (intx, inty, intz) c=z; seta(x); setb(y); void showc()cout c endl; ; void main() Cc; C seta(1); C showa(); C setc(1, 2, 3); C showc(); 49 下面程序的打印结果是【 】。 #include iostream using namespace std; class Base public: Base(int x) a=x; void show() cout a; private: int a; ; class Derived : public B

18、ase public: Derived(int i) :Base(i+1) ,b(i) void show() cout b; private: int b; ; int main ( ) Base b(5) , *pb; Derived d(1); pb= pb- show(); return 0; 50 在创建对象时系统自动调用的函数是【 】。 国家二级( C+)笔试模拟试卷 232答案与解析 1 【正确答案】 A 【试题解析】 白盒测试是把测试对象看成一个打开的盒子,允许测试人员利用程序内部的逻辑结构及相关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试。所以,白盒测试的对象基本上

19、是源程序,以程序的内部逻辑和指定的覆盖标准测试数据。 2 【正确答案】 C 【试题解析】 数据库 (DataBase,简称 DB) 是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有 “集成 ”、 “共享 ”之特点。 3 【正确答案】 D 【试题解析】 程序设计语言是用于书写计算机程序的语言,其基本成分有以下 4种,数据成分 :用来描述程序中的数据。运算成分 :描述程序中所需的运算。控制成分 :用来构造程序的逻辑控制结构。传输成分 :定义数据传输成分,如输入 /输出语言。 4 【正确答案】 C 【试题解析】 纯虚函数是

20、在声明虚函数时被 “初始 化 ”为 0的虚函数。不定义对象而只作为一种基本类型用作继承的类,称为抽象类。凡是包含纯虚函数的类都是抽象类。抽象类的作用是作为一个类族的共同基类。 5 【正确答案】 B 6 【正确答案】 D 【试题解析】 选择 A、 B 错在没有给 T参数类型,在函数的返回值中应该为 T确定一个确切的类型。选项 C错在赋给 T 的类型和函数中返回值的类型不匹配,故答案为 D。 7 【正确答案】 A 8 【正确答案】 D 9 【正确答案】 A 【试题解析】 关系表中,每一行称为一个元组,对应表中的一条记录;每 一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最

21、小属性集称为该表的键或码。 10 【正确答案】 C 【试题解析】 栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出 ”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种 “先进先出 ”的线性表。 11 【正确答案】 A 【试题解析】 本题考核函数模板的使用。 C+中对函数模板的调用有时候只使用了函数实参,而没 有使用模板实参,模板实参都被省略了,但模板实参的省略并不是必然的,而是有条件。模板实参不能省略的情况有:从模板函数实参表获得的信息有矛盾;需要获得特定类型的返回值,而不管参数

22、的类型如何;虚拟类型参数没有出现在模板函数的形参中;函数模板含有常规形参。题中定义的函数模板中含有常规形参,常规形参的信息无法从模板函数的实参表中获得,因此在调用时必须显式地给出对应于常规参数的模板实参。注意, sum的第一个模板实参的信息可以从模板函数的实参表中获得,但由于它位于不可省略实参的前面,因此不能省略,所以只有 A选项的调用格式 是正确的。 12 【正确答案】 D 【试题解析】 此题考查的是 this 指针的使用,类的每一个成员函数都有一个隐含的常量指针,即 this指针。类的静态成员函数不能含有 this 指针,因为 this 指针是一个指向本对象的指针。 13 【正确答案】 D

23、 【试题解析】 本题考察 cin 流对象的几种成员函数 get, getline, read 及流提取符的使用规则。 14 【正确答案】 A 【试题解析】 C+的引用是一种赋值、发送和返回复杂数据结构的方法建立引用的格式为;类型 -引用名 =巳定义 的变量名。所以只有 A选项是符合要求的。 15 【正确答案】 D 【试题解析】 二维数组可以看作是一维数组的扩展。选项 D表示的是一个一维数组,里面每个元素是一个指针,而指针肯定指向某个地址,从而完成二维数组的扩展。考生要 *和 的运算优先级。 16 【正确答案】 C 【试题解析】 C语言中判断文件操作成功主要有两个函数 good( ) 和 fai

24、l( ) ,其中 if(文件流名 . good( ) ) 和 if(!文件流名 .fail( ) ),还有 if(文件流名 ) 都可以表示判断文件操作是否成 功。 17 【正确答案】 C 【试题解析】 C+中 const关键字用来表示一个常量,同时 const也用来修饰函数。这两个概念需要明确: const所修饰的函数只能是类的成员函数,因为 const所修饰的函数中,要由编译器负责保护类的成员变量不被修改。而相对的,mutable则是用来修饰类的成员变量,让该变量在 const所修饰的成员函数中可以被修改。而且 const修饰的函数只能是类的成员函数, mutable修饰的变量只能是类的成员

25、变量。 18 【正确答案】 C 【试题解析】 所谓函数重载是指 同一函数名可以对应多个函数实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。但函数的返回类型不能作为判断重载的依据。 19 【正确答案】 C 20 【正确答案】 D 21 【正确答案】 C 22 【正确答案】 B 23 【正确答案】 A 24 【正确答案】 A 25 【正确答案】 A 【试题解析】 typename的相关内容。 26 【正确答案】 D 【试题解析】 C+语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。 27 【正确答案】 C 【试题解析】 该表达式的语句是该表达式的语句是 if(表

26、达式 1) 语句 1 else if(表达式 2) 语句 2 else if(表达式 3) 语句 3 else 语句 4 由 if表达式可知,题中直接执行 if语句的第 2条 else if(x 10.0)y=1.O/x;。 注意: else总是与最近的没有匹配的 if匹配。 28 【正确答案】 C 【试题解析】 本题考核构造函数。在 C+中,构造函数不能被继承,因此, 派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对子对象初始

27、化的构造函数。但是它不负责基类中子对象的初始化。 29 【正确答案】 B 【试题解析】 有关用户标识符的考题经常在考试中出现,考生应该重视。 A) 选项中 long是 C+语言保留字,不能用于用户标识符。 C) 选项中的 3Dmax,它的第一个字符是数字 3,不是所规定字母或下划线,所 以也不是合法的用户标识符。D) 选项中的 A dat,它中间出现了符号,不符合标识符的定义规则。所以只有B) 选项中的标识符是合法的 C+标识符。 30 【正确答案】 B 【试题解析】 本题通过 for循环对字符串进行扫描,遇到 0结束扫描。程序首先将 i的值置为 1, n的值置为 0。在 for循环中,通过

28、if语句判断 *p 指向的字符是否为空格,如果是空格则将 i的值置为 0,而在 else if语句,如果 i的值为 0,则n+,然后将 i的值重新置为 1。如此反复,最后统计出字符串中的空格个数。 31 【正确 答案】 C 【试题解析】 基类的私有成员在派生类中是隐藏的,只能在基类内部访问,派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有和受保护的成员。 32 【正确答案】 C 【试题解析】 构造函数在创建对象时系统自动调用,其功能是使用给定的值将对象初始化。 33 【正确答案】 D 【试题解析】 本题考察多重继承情况下各层次类的命名和派生规则。 34 【正确答案】 C 【试题解析

29、】 本题考核 C的文件 I/O操作。函数 good()表示刚进行的操作成功时返回 true,否则返回 false,所以可以通过类 ofstream的对象 outfile调用good()函数来检测刚才文件打开是否成功。题中在建立文件流对象的同时打开文件,若打开失败则返回 fail。所以 “outfile”也可以用作判断打开文件成功与否的条件。 35 【正确答案】 D 【试题解析】 C+的多态性有两种:函数重载和虚函数。虚函数只有在运行时才能被确定,称为运行时多态。 36 【正确答案】 数据元素 【试题解析】 数据元素是数据的基本单位。 37 【正确答案】 可重用性 38 【正 确答案】 数据模型

30、 【试题解析】 数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。 39 【正确答案】 E-R图 【试题解析】 E-R图是设计概念模型的有力工具。 40 【正确答案】 123.45* 123.45* 123.45 41 【正确答案】 write 42 【正确答案】 x.operator-() 【试题解析】 运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用,即 y.operator-(z)或者 operator-(y,z);另一种是通过运算符构成表达式,即 y-z。因为 “-”运算符既可以作为前缀运算符,又可以作为后缀运算

31、符,所以重载这个运算符时,重载后缀 “-”时必须多一个虚拟参数 :int。 43 【正确答案】 多态性。 【试题解析】 面向对象系统包含了三个特征 封装性、继承性和多态性,这三个特征可以很好的实现数据抽象,进行行为共享,完成进化求解和描述一个系统的确定行为。 44 【正确答案】 参数个数或参数类型 【试题解析】 函数重载是指同一个函数名可以对应 着多个函数的实现。函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。 45 【正确答案】 静态 46 【正确答案】 x+y+或 x+(y+) 47 【正确答案】 n=b 48 【正确答案】 1 3 49 【正确答案】 2 【试题解析】 基类 Base派生出派生类 Derived,在主函数中,定义了基类对象b,基类指针 pb,以及派生类对象 d,并让基类指针 pb指向派生类对象乙在 C+中,当派 生类的对象赋值给基类对象时,只能使用派生类对象中从基类继承的成员。所以最后执行语句 “pb- show(); ”是调用基类的成员函数 show(),输出 a的值 2。 50 【正确答案】 构造函数 【试题解析】 构造函数在创建对象时系统自动调用。

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

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

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