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

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

1、国家二级( C+)笔试模拟试卷 147及答案与解析 1 最简单的交换排序方法是 ( A)快速排序 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 2 设有两个串 p和 q,求 q在 p中首次出现位置的运算称作 ( A)连接 ( B)模式匹配 ( C)求子串 ( D)求串长 3 下列叙述中,错误的是 ( A)数据的存储结构与数据处理的效率密切相关 ( B)数据的存储结构与数据处理的效率无关 ( C)数据的存储结构在计算机中所占的空间不一定是连续的 ( D)一种数据的逻辑结构可以有多种存储结构 4 完 全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是 ( A)黑箱测

2、试法 ( B)白箱测试法 ( C)错误推测法 ( D)安装测试法 5 软件开发的结构生命周期法的基本假定是认为软件需求能做到 ( A)严格定义 ( B)初步定义 ( C)早期冻结 ( D)动态改变 6 详细设计的结果基本决定了程序最终的 ( A)代码的规模 ( B)运行速度 ( C)代码质量 ( D)可维护性 7 一个关系中属性个数为 1时,称此关系为 ( A)对应关系 ( B)单一关系 ( C)一元关系 ( D)二元关系 8 下列说法中不正确的是 ( A)数据库减少了数据冗余 ( B)数据库中的数据可以共享 ( C)数据库避免了一切数据的重复 ( D)数据库具有较高的数据独立性 9 下列关系

3、运算的叙述中,正确的是 ( A)投影、选择、连接是从二维表行的方向进行的运算 ( B)并、交、差是从二维表的列的方向来进行运算 ( C)投影、选择、连接是从二维表列的方向进行的运算 ( D)以上 3种说法都不对 10 需求分析阶段的任务是确定 ( A)软件开发方法 ( B)软件开发工具 ( C)软件开发费用 ( D)软件系统功能 11 一个 C+程序由函数 A( ), B( ), C( )和函数 P( )构成,在函数 A( )中分别调用了函数 B( )和函数 C ( ),在函数 B( )中调用了函数 A( ),且在函数 P( )中也调用了函数 A( ),则可以说 ( A)函数 B( )中调用的

4、函数 A( )是函数 A( )的间接递归调用 ( B)函数 A( )被函数 B( )调用是直接递归调用 ( C)函数 P( )直接递归调用了函数 A( ) ( D)函数 P( )中调用的函数 A( )是函数 P( )的嵌套 12 下面不正确的描述为 ( A) 调用函数时,实参可以是表达式 ( B)调用函数时,实参与形参可以共用内存单元 ( C)调用函数时,将为形参分配内存单元 ( D)调用函数时,实参与形参的类型必须一致 13 存取指针所指的值时,采用的运算符是 ( A) # ( B) ( B) int ( C) int ( D) float 15 下面程序段的正确输出是 int w=4,x=

5、3,y=2,z=1; cout (w x? w:z y? z:x) end1; ( A) 0 ( B) 1 ( C) 2 ( D) 3 16 在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态,其中只能用于检测输入操作的函数的函数名是 ( A) fail ( B) eof ( C) bad ( D) good 17 若执行以下程序时从键盘上输入 9,则输出结果是 main( ) int n; cin n; if(n+ 10)cout n end1; else cout n - - end1; ( A) 11 ( B) 10 ( C) 9 ( D) 8 18 以下程序的输出

6、结果是 main( ) int a=4,b=5,e=0,d; d=! a cout d end1; ( A) 1 ( B) 0 ( C)非 0的数 ( D) -1 19 以下程序中, while循环的循环次数是 main( ) int i=0; while(i 10) if(i 1)continue; if(i= =5)break; i+;) ( A) 1 ( B) 10 ( C) 6 ( D)死循环,不能确定次数 20 下程序的输出结果是 main( ) int a=0,i; for(i=1;i 5;i+) switch(i) case 0: case 3:a+=2; case 1: cas

7、e 2:a+=3; default:a+=5; cout a end1; ( A) 31 ( B) 13 ( C) 10 ( D) 20 21 下列程序执行后的输出结果是 #included string.h main( ) char arr24; strcpy(arr,“you“);strepy(arr1,“me“); arr03= cout arr endl; ( A) you void func2(int i); char st=“hello,friend!“; void fund(int i) cout sti; if(i 3)i+=2;func2(i); void func2(int

8、 i) cout sti; if(i 3)i+=2;funcl(i); main( ) int i=0;fund(i);cout endl; ( A) hello ( B) hel ( C) hlo ( D) hlm 23 考虑以下的函数原型: vold A(int a,int b=5,char Z=*) 下面的函数调用中,不正确的是 ( A) A(7) ( B) A(3,4) ( C) 16, # ( D) A(0,2,*) 24 若类 A和类 B的定义如下 class A int i,j; public: int geti( ) return i; ; class B:public A i

9、nt k: public: void make( ) k=i*j; ; 则上述定义中非法的语句是 ( A) k=i*j ( B) int k; ( C) return i; ( D) void make() 25 有以下程序 main( ) int i=10,j=1; cout - - “,“ +j endl; 执行后输出结果是 ( A) 9,2 ( B) 10,2 ( C) 9,1 ( D) 10,1 26 有以下程序 main( ) char a,b,c,*d; a=;b=xbc; c=0xab;d=“0127“; cout a b c *d endl; 编译时出现错误,以下叙述中正确的是

10、 ( A)程序中只有 a=;语句不正确 ( B) b=xbc;语句不正确 ( C) d=“0127“;语句不正确 ( D) a=;和 c=0xab;语句都不正确 27 设有以下 类和对象的定义: class A public: int m; ; A k1, k2,*p1,*p2; 则下面针对成员变量 m的引用,错误的是 ( A) k1.m=1 ( B) k2- m=2 ( C) p1- m=3 ( D) (*p2).m=4 28 设有基类定义: class Cbase private:int a; protected:int b; public:int c; ; 派生类采用何种继承方式可以使成

11、员变量 b成为自己的私有成员 ( A)私有继承 ( B)保护继承 ( C)公有继承 ( D)私有、保护、公有均可 29 有以下程序: class Date public: Date(int y,int m,int d); year=y; month=m day=d; Date(int y=2000) year=y; month=10; day=1; Date(Date month=d.month; day=d.day; void print( ) cout year “.“ month “.“ day endl; private: int year,month,day; ; Date fun(

12、Date d) Date temp; temp=d; return temp; int main( ) Date datel(2000,1,1),date2(0,0,0); Date date3(datel); date2=fun(date3); return 0; 程序执行时, Date类的拷贝构造函数被调用的次数是 ( A) 2 ( B) 3 ( C) 4 ( D) 5 30 以下有关成员函数特征的叙述不正确的 是 ( A)成员函数一定是内联函数 ( B)成员函数可以重载 ( C)成员函数可以设置缺省参数值 ( D)成员函数可以是静态的 31 定义静态成员函数的主要目的是 ( A)方便调用

13、 ( B)有利于数据隐蔽 ( C)处理类的静态成员变量 ( D)便于继承 32 有关构造函数的说法中错误的是 ( A)构造函数名字和类的名字一样 ( B)构造函数在说明类变量时自动执行 ( C)构造函数无任何函数类型 ( D)构造函数有且只有一个 33 关于友元的描述中错误的是 ( A)友元函数可以访问该类的私有数据成 员 ( B)一个类的友元类中的成员函数都是这个类的友元函数 ( C)友元可以提高程序的运行效率 ( D)类和类之间的友元关系可以继承 34 阅读以下程序 #include iostream.h void main( ) char line10; cin line; cout l

14、ine endl; 如运行时输入 This is example. CR,则程序的输出结果是 ( A) This ( B) This is ( C) This is a ( D) This is an example. 35 下列程序执行结果是 #include iostream.h class A public: int a; A( ):a(10)tout a endl; ; void main( ) A obj1; A obj2(obj1); cout “ “ obj2.a endl; ( A) 10 10 ( B)编译错误缺少拷贝构 造函数 ( C) 10 随机数 ( D)随机数随机数

15、36 排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、_和选择排序等。 37 对有 n个记录的表 r1n 进行直接选择排序,所需要进行的关键字间的比较次数为 _。 38 在关系数据库中,用来表示实体之间联系的是 _。 39 在测试时,完全不考虑程序的内部结构和内部特征的测试方法称为 _测试方法。 40 一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集 “项目主管 ”与实体集 “项目 ”的联系属于 _的联系。 41 在任何类中都有三种访问权限的数据成员,这三种权限是 public、 private和_。 42 下列程序的输出结果是 _。 #include iostr

16、eam.h void main( ) char a=“abcdabcabfgacd“; int i1=0,i2=0,i=0; while(ai) if(ai=“a“)i1+; if(ai=“b“)i2+; i+; cout i1 “ i2 endl; 43 如下程序编译时发生错误,错误的原因是 show函数实现语句错误,则正确的语句应该为 _。 #include iostream.h class test private: int hum; public: test(int); void show( ); ; test:test(int n)num=n; test:show( )cout nu

17、m endl; void main( ) test T(10): T.show( ); 44 下列程序的运行结果是 _。 #include iomanip.h int Func(int*a,int n) int s=1: for(int i=0;i n;i+) s*=*a+; return s; void main( ) int a=l,2,3,4,5,6,7,8; int b=Func(a,6)+Func( cout “b=“ b endl; 45 下列程序的输出结果为 _。 #include iostream.h int) void main( ) int n=3,m=12; max(m,

18、n)+; cout “m=“ m “,n= n endl; 46 下面程序编译时发现 ma3=9错误,其原因是 _。 #include iostream.h class FunArray int*pa; /指向一个数组空问 int size; /数组元素个数 public: FunArray(int a,int thesize):pa(a),size(thesize) int Size( )return size; ; void main( ) int s=3,7,2,1,5,4; FunArray ma(s,sizeof(s)/sizeof(int); ma3=9; cout ma3 end

19、l; 47 下列程序的执行结果是 _。 #include iostream.h class Student public: Student(int xx)x=xx; virtual float calcTuition( ); protected: int x; ; float Studertt:calcTuition( ) return float(x*x); class GraduateStudent:public Student public: GraduateStudent(int xx):Student(xx) float calcTuition( ); ; float Graduat

20、estudent:calcTuition( ) return float(x*2); void main( ) Student s(20); GraduateStudent gs(30); cout s.calcTuition( ) “ “ gs.calcTuition( ) endl; /计算学生 s和研究生 gs的学费 48 下列程序中需要清理动态分配的数组,划线处应有的语句是 _。 #include iostream.h class person int age,tall; public: person( )age=0;tall=40;cout “A baby is born.“ end

21、l; person(int i)age=i;tall=40;cout “A old person.“ endl; person(int i,int j)age=i;tall=j;cout “a old person with tall.“ endl;) person( )cout “person dead.“ endl; void show( ) cout “age=“ age “,tall=“ tall endl; ; void main( ) person*ptr; ptr=new person3; ptr0=person( ); ptr1=person(18); ptr2=person(

22、20,120); for(int i=0;i 3;i+) ptri.show( ); _ 49 下列程序完成从文件读取文件显示的同时写入第二个文件,则在程序中划线部分应该出现的语句是 _。 #include iostream.h #include fstream.h void main( ) fstream filel,file2; char fn110,fn210,ch; cout “输入源文件名 “; cin fn1; cout “输入目标文件名 “; cin fn2; filel.open(fn1,ios:in); while(ch=filel.get( )!=EOF) cout ch;

23、 file2.put(oh); filel.close( ); file2.close( ); 50 下列程序的输出结果是 _。 #include iostream.h class base int x,y; public: base(int i,int j)x=i;y=j; virtual int add( )return x+y; ; class three:public base int z; public: three(int i,int j,int k):base(i,j)z=k;) int add( )return(base:add( )+z); ; void main( ) th

24、ree*q=new three(10,20,30); cout q- add( ) endl; 国家二级( C+)笔试模拟试卷 147答案与解析 1 【正确答案】 D 【试题解析】 冒泡排序是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序表。交换排序方法有冒泡排序和快速排序,显然选项 B和选项 C错误,冒泡排序比较简单,其算法也容易理解,但快速排序本身较为 复杂,且采用了递归调用,其算法理解也较难。 2 【正确答案】 B 【试题解析】 子串的定位操作通常称作串的模式匹配,是各种串处理系统中最重要的操作之一,算法的基本思想是:从主串的开始字符起和模式的第一个字符比较,

25、若相等则继续比较后续字符,否则从主串的下一个字符起再重新和模式的字符比较,依次类推,直至模式中的每一个字符依次和主串中的一个连续的字符序列相等,称匹配成功,否则称匹配不成功。 3 【正确答案】 B 【试题解析】 一般来说,一种数据结构根据需要可以表示成多种存储结构。常用的存储结构 有顺序、链接、索引等,而采用不同的存储结构,其数据处理的效率是不同的;一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系是有可能不同的。 4 【正确答案】 A 【试题解析】 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据功能导出测试用例。白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,

26、白箱测试也称为逻辑覆盖测试,故选项 B不正确;错误推测法只是黑箱测试所使用的一种具体的方法,故选项 C不正确;安装测试是测试层次中的一种,它属于高级测试,故选项 D不正确。 5 【正确答 案】 C 【试题解析】 软件需求经过分析阶段后,通过软件需求说明书表示出来,后面的开发工作以此为基础进行,故结构生命周期法中需假定软件需求确定后一般不再改变,即 “早期冻结 ”。 6 【正确答案】 C 【试题解析】 详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,但详细设计阶段的任务还不是具体的编写程序,而是要设计出程序的 “蓝图“,以后程序员将根据这个蓝图写出实际的程序代码,因此,详细设计阶段的

27、结果基本上就决定了最终的程序代码的质量。 7 【正确答案】 C 【试题解析】 在 关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性。一个具有 N个属性的关系称为 N元关系。 8 【正确答案】 C 【试题解析】 数据库系统具有以下几个特点:数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。 9 【正确答案】 C 【试题解析】 在关系模型的数据语言中,一般除了运用常规的集合运算 (并、交、差、笛卡尔积等 ),还定义了一些专门的关系运算,如投影、选择、连接等。前者是将关系 (即二维表 )看成是元组的集合,这些运算主要是从二维表的行的方向来 进行的。后者

28、是从二维表的列的方向来进行运算的。 10 【正确答案】 D 【试题解析】 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象 (组织、部门、企业等 ),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。 11 【正确答案】 A 【试题解析】 本题考察递归调用。递归调用分为直接递归和间接递归。 A()属于间接递归。 12 【正确答案】 B 【试题解析】 函数调用时用实参替换形参,如果实参为表达式,将为表达式的值创建 一个临时对象,然后将该实参替换形参。替换的实质是变量间的拷贝,当然这种拷贝需要为形参分配内存。需要注意的是:形参在编译时不

29、分配内存,在运行时才分配内存。 13 【正确答案】 D 【试题解析】 对指针所指向的地址取值时,采用的存取运算符为 *。 。 18 【正确答案】 A 【试题解析】 本题考查逻辑运算符 !逻辑 “非 ”, 【试题解析】 show成员函数的声明和实现不一致,即实现部分应有 void修饰符,这样才能编译通过。 44 【正确答案】 b=762 【试题解析】 本题考查了 *a+的用法, *a+作为表达式时,先计算 *a作为表达式的值,然后使指针变量 a本身增 1,在本题中, s*=*a+等同于 s=s*a, a+, S后面第一个 *是乘号。 45 【正确答案】 m=13, n=3 【试题解析】 本题考察

30、引用作为形参进行参数传递的知识。 max函数的功能是返回较大的那个数,而 max(m, n)+的作用是将较 大值再进行增一运算。 46 【正确答案】 没有重载 运算符 【试题解析】 ma不是一般的数组,而是一个新定义的类,尽管该类封装了一个数组,但新类并没有提供 操作符的具体实现,因此是错误的。 47 【正确答案】 400 60 48 【正确答案】 deleteptr; 【试题解析】 本题考察对象数组的销毁方法,注意删除对象数组时, 内不要指定大小。 49 【正确答案】 file2.open(fn2,ios:out); 【试题解析】 fstrream没有默认的打开模式 ,因此在打开文件时必须在 ios_base:out. ios_base:in、 ios_base:in/ios_base:out这三个打开模式中指定一个。 50 【正确答案】 60 【试题解析】 本题考察继承中子类对父类的继承方式,注意子类的 add成员函数,它直接使用了父类的成员函数进行运算。

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

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

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