1、国家二级( C+)笔试模拟试卷 18及答案与解析 1 链表不具有的特点是 ( )。 ( A)不必事先估计存储空间 ( B)可随机访问任一元素 ( C)插入删除不需要移动元素 ( D)所需空间与线性表长度成正比 2 算法分析的目的是 ( )。 ( A)找出数据结构的合理性 ( B)找出算法中输入和输出之间的关系 ( C)分析算法的易懂性和可靠性 ( D)分析算法的效率以求改进 3 下列对于软件工程的基本原则描述中错误的是 ( )。 ( A)选取适宜的开发模型 ( B)采用合适的开发方法 ( C)提供高质量的工程支持 ( D)开发过程无需进行管理工作 4 在深度为 7的满二叉树中,非叶子结点的个数
2、为 ( )。 ( A) 32 ( B) 31 ( C) 64 ( D) 63 5 以下数据结构中不属于线性数据结构的是 ( )。 ( A)队列 ( B)线性表 ( C)二叉树 ( D)栈 6 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 ( )。 ( A)编码设计 ( B)测试阶段 ( C)运行阶段 ( D)物理设计 7 模块独立性是软件模块化所提出的要求,衡量模块独立性 的度量标准则是模块的( )。 ( A)抽象和信息隐蔽 ( B)局部化和封装化 ( C)内聚性和耦合性 ( D)激活机制和控制方法 8 在软件生产过程中,给出需求信息的是 ( )。 ( A)程序员 ( B)项目管理者
3、 ( C)软件分析设计人员 ( D)软件用户 9 由两个栈共享一个存储空间的好处是 ( )。 ( A)减少存取时间,降低下溢发生的几率 ( B)节省存储空间,降低上溢发生的几率 ( C)减少存取时间,降低上溢发生的几率 ( D)节省存储空间,降低下溢发生的几率 10 能将 高级语言编写的源程序转换为目标程序的是 ( )。 ( A)链接程序 ( B)解释程序 ( C)编译程序 ( D)编辑程序 11 下面关于 C+ 语言变量的叙述错误的是 ( )。 ( A) C+语言中变量分为 auto, static, extern和 register 四种存储类型 ( B)自动变量和外部变量的作用域为整个程
4、序 ( C)内部静态变量的作用域是定义它的函数 ( D)外部静态变量的作用域是定义它的文件 12 下列关于运算符重载不正确的是 ( )。 ( A)运算符重载不能改变运算符的 操作数个数 ( B)运算符重载不能改变运算符的优先级 ( C)运算符重载不能改变运算符的结合性 ( D)运算符重载能改变对预定义类型数据的操作方式 13 下列关于虚函数的说明中,正确的是 ( )。 ( A)从虚基类继承的函数都是虚函数 ( B)虚函数不得是静态成员函数 ( C)只能通过指针或引用调用虚函数 ( D)抽象类中的成员函数都是虚函数 14 模板函数的真正代码是在 ( )时候产生。 ( A)源程序中声明函数时 (
5、B)源程序中定义函数时 ( C)源程序中调用函数时 ( D)运行执行函 数时 15 若已知 char str 20;,且有语句 cin str;,此时输入为 “This is a program“,则所得的结果是 str=( )。 ( A) This is a program ( B) This ( C) This is ( D) This is a 16 下面程序的结果是 ( )。 #include iostream.h void main()char *str;str=“test!“;cout str5; ( A)程序错误 ( B) ! ( C) 0 ( D)为空字符 17 磁盘文件操作中
6、,打开磁盘文件的访问模式常量时, ( )是以追加方式打开文件的。 ( A) in ( B) out ( C) app ( D) ate 18 语句 cout setfill(“) setw(4) setfill(i) setw(7) m end1;的输出结果为 ( )。 ( A) iiiimmmmnmm ( B) iiiimmmmmm ( C) iiiimmm ( D) iiiiimm 19 有如下程序段: int x=3,do x-=2;cout x;while(!(-x);执行这个程序段的输出结果是 ( )。 ( A) 1 ( B) 30 ( C) 1-2 ( D)死循环 20 设有以下程
7、序段: int a5=0), *p, *q; p=a; q=a;则下列选项中,合法的运算是 ( )。 ( A) p+q ( B) p-q ( C) p*q ( D) p%q 21 如果有语句 int a=3,*p=static int val;int CStatic:val=0;void main()CStatic cs1;cout cs1.val “;CStatic cs2;CStatic cs3, cs4;cout cs val end1; ( A) 14 ( B) 24 ( C) 34 ( D) 54 23 下列的各类函数中, ( )不是类的成员函数。 ( A)构 造函数 ( B)析构函
8、数 ( C)发元函数 ( D)拷贝初始化构造函数 24 语句 ofstream f(“DATA. DAT“, ios _base: applios_ lios_ base: binary);的功能是建立流对象 f,并试图打开文件 DATA. DAT 并与之连接,而且 ( )。 ( A)若文件存在,将文件指针定位于文件首,若文件不存在,建立一个新文件 ( B)若文件存在,将其截为空文件;若文件不存在,打开失败 ( C)若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 ( D)若文件存在,打开失败;若文件在,建立一个新文件 25 下面是重载为非成员函数的运算符函数原型,其中错误的是
9、 ( )。 ( A) Fraction operator+ (Fraction, Fraction); ( B) Fraction opemtor-(Fraction); ( C) Fraction / ; 其中存在语法错误的行是 ( ) ( A) ( B) ( C) ( D) 32 有以下程序: #include iostream using namespace std;class sample private: int n;public: sample() sample(int m) n=m; sample add(sample s1,sample s2) this- n=s1. n+s2
10、.n; return (*this); void disp() cout “n=“ n end1; ;int main() sample s1(10),s2(5),s3; s3.add(s1,s2); s3.disp(); return 0, ( A) n=10 ( B) n=5 ( C) n=20 ( D) n=15 33 关于语句 #include iostream using namespace std;void main()cout100.8989663 ;com fixed 100.8989663 ;cout scientific100.8989663 ;的输出结果为 ( ) ( A
11、) 100.899 100.898966 1.008990e+002 ( B) 100.8989663 100.898966 1.008990e+002 ( C) 100.899 100.898966 1.008989e+002 ( D) 100.899 100.8989663 1.008989e+002 34 以下程序中函数 scmp功能是返回形参指针 s1和 s2所指字符串中较小字符串的首地址 。 #includ string. h char *scmp(char *s1,char *s2) if(strcmp(s1,s2) 0) return(s1); else return(s2);m
12、ain() int i;char string20,str320; for(i=0;i 3;i+) gets(stri); strcpy(string,scmp(str0,str1); /库函数 strcpy 对字符串 进行复制 strcpy(string,scmp(stfing,str2); puts(string); 若运行时依次输入 : abed、 abba 和abc三个字符串 ,则输出结果为 ( )。 ( A) abed ( B) abba ( C) abc ( D) abca 35 有如下程序 :#nclude iostream using namespace std;class B
13、ase public:void fun1() cout “Basen“; virtual void fun2() cout “Basen“; ;class Derived: public Base public:void fun1() cout “Derivedn“; void fun2() cout “Derivedn“; void f(Base B. fun2(); int main()Derived obj;f(obj);return 0; ( A) Base Base ( B) Base Derived ( C) Derived Base ( D) Derived Derived 36
14、 软件危机出现于 20世纪 60年代末,为了解决软件危机,人们提出用【 】的原理来设计软件,这就是软件工程诞生的基础。 37 数据结构包括数据的逻辑结构、数据的【 】以及对数据的操作运算。 38 在有序列表 (3, 6, 8, 10, 12, 15, 16, 18, 21, 25, 30)中,用二分法查找关键码值 12,所需的关键码比较次数为【 】。 39 在关系运算中,【 】运算是对两个具有公共属性的关系所进行 的运算。 40 数据库技术的主要特点为数据的集成性数据的高【 】和低冗余性、数据独立性和数据统一管理与控制。 41 表达式 x=operator-(y, z)可以表示为【 】。 42
15、 假定用户没有给一个名为 MyClass的类定义析构函数,则系统为其定义的默认析构函数首部形式为【 】。 43 在 C+中,若需要在程序文件中进行标准输入输出操作,则必须在开始处加入预处理命令 #include iostream.h,若使用到数学库中的函数时,要在源程序的开始处加入预处理命令【 】。 44 重载的关系运算符和逻辑运算符的返回类型应当是【 】。 45 指针变量所保存的不是一般的数据值,而是程序中另一个对象的【 】。 46 假设血 int a=1,b=2;,则表达式 (+a/b)*b-的值为【 】。 47 下列程序的输出结果为 2,请将程序补充完整。 using namespace
16、 std; class Base public: 【 】 void fun() cout 1; ; class Derived:public Base public: void fun() cout 2; int main() Base*p=new Derived; p- fun(); delete p; return 0; 48 在 MyClass类的定义中,对赋值运算符:进行重载。请将画线处缺失的部分补充完整。 【 】 MyClass:operator=(const MyClass value = rhs.value; return *this; 49 阅读下面程序: #include i
17、ostream.h void f(int n) int x(5); static int y(10); if(n 0) +x; +y; cout x “,“ y endl; void main() int m(1); f(m), 则该程序的输出结果是【 】 50 下列程序运行后的输出结果是 【 】。 #include iostream.h void fun(int,int,int *); void main() int x,y,z; fun(5,6, fun(7,x, fun(x,y, cout x “,“ y “,“ z endl; void fun(int a,int b,int *c)
18、b+=a; *c=b-a; 国家二级( C+)笔试模拟试卷 18答案与解析 1 【正确答案】 B 2 【正确答案】 D 3 【正确答案】 D 4 【正确答案】 D 5 【正确答案】 C 6 【正确答案】 D 7 【正确答案】 C 8 【正确答案】 D 9 【正确答案】 B 10 【正确答案】 C 11 【正确答案】 B 12 【正确答案】 D 13 【正确答案】 B 14 【正确答案】 C 15 【正 确答案】 B 16 【正确答案】 D 17 【正确答案】 C 18 【正确答案】 A 19 【正确答案】 C 20 【正确答案】 B 21 【正确答案】 D 22 【正确答案】 A 23 【正确
19、答案】 C 24 【正确答案】 C 25 【正确答案】 C 26 【正确答案】 C 27 【正确答案】 D 28 【正确答案】 A 29 【正确答案】 D 30 【正确答案】 A 31 【正确答案】 D 32 【正确答案】 D 33 【正确答案】 A 34 【正确答案】 B 35 【正确答案】 B 36 【正确答案】 软件工程学 37 【正确答案】 存储结构 38 【正确答案】 4 39 【正确答案】 自然连接 40 【正确答案】 共享性 41 【正确答案】 x=y-2 42 【正确答案】 MyClass() 43 【正确答案】 #include 44 【正确答案】 bool 45 【正确答案】 内存地址 46 【正确答案】 2 47 【正确答案】 virtual 48 【正确答案】 MyClass& 49 【正确答案】 6, 11 50 【正确答案】 6, 6, 6