[计算机类试卷]国家二级(C++)笔试模拟试卷146及答案与解析.doc
《[计算机类试卷]国家二级(C++)笔试模拟试卷146及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)笔试模拟试卷146及答案与解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)笔试模拟试卷 146及答案与解析 1 下列关于线性表、栈和队列的叙述,错误的是 ( A)线性表是给定的 n(n必须大于零 )个元素组成的序列 ( B)线性表允许在表的任何位置进行插入和删除操作 ( C)栈只允许在一端进行插入和删除操作 ( D)队列允许在一端进行插入在另一端进行删除 2 串的长度是 ( A)串中不同字符的个数 ( B)串中不同字母的个数 ( C)串中所含字符的个数且字符个数大于零 ( D)串中所含字符的个数 3 用数组表示线性表的优点是 ( A)便于插入和删除操作 ( B)便于随机存取 ( C)可以动态地分配存储空间 ( D)不需要占用一片相邻的存储空间 4
2、软件工程的理论和技术性研究的内容主要包括软件开发技术和 ( A)消除软件危机 ( B)软件工程管理 ( C)程序设计自动化 ( D)实现软件可重用 5 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作 ( A)软件投机 ( B)软件危机 ( C)软件工程 ( D)软件产生 6 软件开发的结构化生命周期方法将软件生命周期划分成 ( A)定义、开发、运行维护 ( B)设计阶段、编程阶段、测试 阶段 ( C)总体设计、详细设计、编程调试 ( D)需求分析、功能定义、系统设计 7 数据处理的最小单位是 ( A)数据 ( B)数据元素 ( C)数据项 ( D)数据结构 8 下列 SQL语
3、句中,用于修改表结构的是 ( A) ALTER ( B) CREATE ( C) UPDATE ( D) INSERT 9 面向对象的程序设计主要考虑的是提高软件的 ( A)可靠性 ( B)可重用性 ( C)可移植性 ( D)可修改性 10 数据库系统的核心是 ( A)数据库 ( B)数据库管理系统 ( C)模拟 模型 ( D)软件工程 11 关于常成员函数,下列说法中错误的是 ( A)常成员函数无法更新对象的数据成员,但可以访问其他类的公用数据成员或全局变量 ( B)常成员函数无法更新对象的数据成员,但是可以更新该对象的常数据成员 ( C)常成员函数既可以被常对象调用,也可以被一般对象调用
4、( D)常成员函数不仅要在声明中用到 const修饰符,在定义时也必须使用 const修饰符 12 解决类继承中产生的二义性的方法不包括 ( A)使用作用域运算符限定访问的成员函数 ( B)在派生类中定义同名函数,且参数表必 须和基类的保持一致 ( C)在派生类中定义同名函数,且参数表可以和基类的不同 ( D)采用虚基类解决多重继承中的共同基类产生的二义性 13 一个类的友元函数能够访问该类的 ( A)私有成员 ( B)保护成员 ( C)公用成员 ( D)所有成员 14 执行下列语句后,输出结果为 steven的是 char*str=“steven“; eout.write(str, ); (
5、 A) strlen(str) ( B) sizeof(str) ( C) strlen(str+1) ( D) sizeof(str-1) 15 对于拷贝构造函数和赋值操作的关系,正确的是 ( A)拷贝构造函数和赋值操作是完全一样的操作 ( B)进行赋值操作时,会调用类的构造函数 ( C)当调用拷贝构造函数时,类的对象正在被建立并被初始化 ( D)拷贝构造函数和赋值操作不能在同一个类中被同时定义 16 下面描述中体现了抽象类特性的语句是 ( A)可以说明虚函数 ( B)可以进行构造函数重载 ( C)可以定义友元函数 ( D)不能定义对象 17 下面说法正确的是 ( A)内联函数在运行时是将该
6、函数的目标代码 插入每个调用该函数的地方 ( B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 ( C)类的内联函数必须在类体内定义 ( D)类的内联函数必须在类体外通过加关键字 inline定义 18 已知一个运行正常的程序中有下面两个语句: int*p1,p2 p1=b; 由此可知,变量 a和 b的类型分别是 ( A) int和 int ( B) int*和 int ( C) int和 int* ( D) int*和 int* 19 以下说法中错误的是 ( A) strcpy(A,B)函数是将 A字符串的内容复制到 B字符串中 ( B) strlen(cha*s)返回字符串
7、 S的长度,未尾的字符不计算在内 ( C) char a20=“string“;中字符串长度为 6 ( D) strstr(S1,S2)函数在字符串 S1中从左边开始查找字符串 S2,若查找成功则返回 S2在 S1中首次出现的位置,否则返回 NULL,如果 S2为 “,则返回 S1。 20 下列关于虚函数与函数重载区别的叙述中不正确的是 ( A)函数说明形式上不同 ( B)函数重载允许是非成员函数,虚函数只能是成员函数 ( C)函数重载的调用依据参 数和类型的差别,虚函数则依据对象 ( D)函数重载的本体可以在类外定义,虚函数不可以 21 请阅读以下程序 main( ) int x=1,y=0
8、,a=0,b=0; switch(x) case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2: a+;b+;break; cout “a=“ a “b=“ b endl; 上面程序的输出结果是 ( A) a=2,b=1 ( B) a=1,b=1 ( C) a=1,b=0 ( D) a=2,b=2 22 以下程序的输出结果是 main( ) int i=0,a=0; while(i 20) for(;) if(i%10)=0)break; else i - -; i+=11;a+=i; cout a endl; ( A) 21 (
9、B) 32 ( C) 33 ( D) 11 23 以下程序的功能是按顺序读入 10名学生 4门课程的成绩,计算出每位学生的平均分并输出: main( ) int n,k; float score,sum,ave; sum=0.0; for(n=1;n =10;n+) for(k=1;k =4;k+) cin score; sum+=score; ave=sum/4.0; cout “NO“ n “:“ ave endl; 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是 ( A) sum=0.0 ( B) sum+=score ( C) ave=sun/4.0
10、 ( D) cout “N0“ n “:“ ave endl; 24 执行语句序列 ofstream outfile(“DATE.DAT”); if()cout “OK“; else cout “FAIL“后,如果文件打开成功,显示 “OK”,否则显示 “FAIL“。由此可知,上面 if语句 处的表达式是: ( A) outfile.fail( )或 outfile ( B) outfile.good( )或 outfile ( C) outfile.good( )或 !outfile ( D) outfile.fail( )或 !out file 25 有如下程序 main( ) int n
11、5=0,0,0,i,k=2; for(i=0;i k;i+)ni=ni+1; cout nk endl; 该程序的输出结果是 ( A)不定值 ( B) 2 ( C) 1 ( D) 0 26 下列关于虚基类的描述中错误的是 ( A)虚基类子对象的初始化由最派生类完成 ( B)虚基类子对象的初始化次数与虚基类下面的派生类个数有关 ( C)设置虚基 类的目的是消除二义性 ( D)带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用 27 在某类的公共部分有声明 string operator+( );和 string operator+(int);则说明 ( A) strin
12、g operator+( );是前置自增运算符声明 ( B) string( )perator+( );是后置自增运算符声明 ( C) string operator+(int);是前置自增运算符声明 ( D)两条语句无区别 28 已知类 X成功地重载 了 - -、 +、 =、 这几个运算符。则其中肯定属于成员函数的运算符是: ( A)前置 - -和 ( B) =和 ( C) 和后置 - - ( D) +和 = 29 设有 char str80;以下不能将输入数据 firstnsecondn CR读取到数组 str中的语句是 ( A) cin.get(str,strlen(str); ( B)
13、 cin.getline(str,strlen(str); ( C) cin str; ( D) cin.read(str,strlen(str); 30 下列能对对象进行初始化的是 ( A)构造函数 ( B)析构函数 ( C)友元函数 ( D)静态成员函数 31 控制格式输入 /输出的操作子中,设置域宽的函数是 ( A) ws ( B) oct ( C) setfill(int) ( D) setw(int) 32 下列不能作为类的成员的是 ( A)自身类对象的指针 ( B)自身类对象 ( C)数组 ( D)另一个类的对象 33 设置虚基类的目的是 ( A)简化程序 ( B)消除二义性 (
14、C)提高程序运行效率 ( D)减少目标代码 34 下列描 述中正确的是 ( A)类中可以定义与类名相同的数据成员 ( B)直接子类中可以定义与父类名相同的数据成员 ( C)孙子类中可以定义与爷爷类名相同的数据成员。 ( D)类的所有子孙中都不可以定义与该类同名的数据成员。 35 要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用 ( A)重载函数 ( B)内联函数 ( C)静态函数 ( D)虚函数 36 设一棵二叉树的中序遍历结果为 ABCDEFG,前序遍历结果为 DBACFEG,则后序遍历结果为 _。 37 在面向对象方法中,属性 与操作相似的一组对象称为 _。 38 在结构
15、化设计方法中,数据流图表达了问题中的数据流与加工之间的关系,并且,每一个 _实际上对应一个处理模块。 39 软件概要设计的成果是 _。 40 在数据库的外模式、模式和内模式 3级模式的体系结构中,存在两级映射:外模式到模式的映射定义了外模式与模式之间的对应关系;模式到内模式的映射定义了数据库的逻辑结构与 _之间的对应关系。 41 为了表明一个函数不带返回值,应在定义函数时指定该函数类型为 _。 42 下列程 序如果去掉 for循环外围的大括号对,则会出现编译错误。错误原因是_。 #include iostream.h int a=5; void main( ) int a=10,b=20; c
16、out a “,“ b endl; int a=0,b=0; for(int i=1;i 8;i+) a+=i; b+=a; cout a “,“ b “,“ :a endl; cout a “,“ b endl; 43 有以下程序 #include iostream using namespace std; long fib(int n) if(n 2) return(fib(n-1)+fib(n-2); else return 2; int main( ) cout fib(3) endl; return 0; 则该程序的输出结果应该是 _。 44 下列程序不能通过编译,应该在划线部分填写
17、的语句是 _。 #include iostream.h #include stdlib.h double Func(int a,int b,char ch) double x; switch(ch) case+: x=double(a)+b; break; case -: x=double(a)-b; break; case *: x=double(a)*b; break; case/: if(B)x=double(a)/b; else exit(1); break; default: exit(1); _ void main( ) cout Func(32,6,-) “,“; cout Fu
18、nc(32,6, *) “,“; cout Func(32,6,/) endl; 45 根据下面的主程序,完成类的一种构造函数的最简单形式。 #include iostream.h class base private: int num; public: _; ; void main( ) base try(6); 46 下列程序的执行结果为 _。 #include iostream.h int f(int i) return+i; int g(int void main( ) int a,b; a=b=0; a+=f(g(a); b+=f(f(b); cout “a=“ a “,b=“ b
19、endl; 47 下列程序的运行结果是 _。 #include iostream.h class A public: virtual void use( ) cout “in An“; ; class B:public A public: virtual void use( ) cout “in Bn“; ; class C:public B public: virtual void use( )cout“in Cn“; ; void main( ) A*obj; obj=new C; obj- use( ); delete obj; 48 完成下列类的构造函数,初始化语句为 _。 #incl
20、ude iostream.h class Test private: int x,y; public: void Test(int initx,int inity) _ void printx( )cout x “-“ y “=“ x-y; ; void main( ) Test x(300,200); x.printx( ); 49 根据下列程序的执行结果,可以断定划线部分的修饰符应为 _。执行结果: i9a football is created. a football is created. i=10 a football is destroyed. a football is crea
21、ted. i=20 a football is destroyed. a football is destroyed. 源程序: #include iostream.h class Football public: Football( )cout “a football is created.“ endl; Football( )tout “a football is destroyed.“ endl; ; void func(int i) _Football f1; Football f2; cout “i=“ i endl; void main( ) func(10); func(20);
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 笔试 模拟 146 答案 解析 DOC
