1、国家二级( C+)笔试模拟试卷 9及答案与解析 1 在软件测试设计中,软件测试的主要目的是 ( )。 ( A)实验性运行软件 ( B)证明软件正确 ( C)演示软件的正确功能 ( D)发现软件错误而执行程序 2 根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分成( )。 ( 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 数据库的故障恢复,一般是由 ( )。 ( A)数据流图完成 ( B)数据字典完成 ( C) DBA完成 ( D) PAD图完成 8 最常用的
3、一种基本数据模型是关系数据模型,它的表示应采用 ( )。 ( A)树 ( B)网络 ( C)图 ( D)二维表 9 下列叙述中,正确的是 ( )。 ( A)软件就是程序清单 ( B)软件就是存放在计算,机中的文件 ( C)软件应包括程序清单及运行结果 ( D)软件包括程序、 文档和数据 10 链表不具有的特点是 ( )。 ( A)不必事先估计存储空间 ( B)可随机访问任一元素 ( C)插入删除不需要移动元素 ( D)所需空间与线性表长度成正比 11 C+程序设计语言是 ( )。 ( A)完全的面向对象的程序设计语言 ( B)低级语言 ( C)既是面向对象的程序设计语言,又是结构化程序设计语言
4、 ( D)结构化程序设计语言 12 关于逻辑运算符的说法,正确的是 ( )。 ( A)它们都是双目运算符,优先级相同 ( B)语句 “int a = 0, i = l, b; b = a”执行后 , i的值为 2 ( C)语句 “int a = 1, i = l, b; b = a|+;”执行后 ,i的值为 2 ( D)语句 “int a = 1, i = l, b; b = a”执行后 , i的值为 2 13 对应于 “int a, b; float c; scanf (“a=% d, b=% f c= % d“, ”的输入是 ( )。 ( A) 452146 ( B) 45,67,89 (
5、 C) s=45;b=67 c=89 ( D) a=45,b=67,c=89 14 对于 while、 dowhile 循环结构,正确的说法是 ( )。 ( A)只是表达形式不同 ( B) dowhile 结构中的语句至少执行一次 ( C) while 结构中的语句至少执行一次 ( D)条件成立时,它们有可能一次也不执行 15 下列关于 i的输出值,正确的是 ( )。 ( A) #include iostream using namespace std; void main() for(int i=0;i =3;i+) i+; cout i; 则输出值为 5。 ( B) A程序的输出值为 6
6、( C) #include iostream using namespace std; void main() for(int i=0;i =3;i+) i+; cout i; 则输出值为 13。 ( D) C程序的输出值为 5 16 关于函数的调用,下面不正确的是 ( )。 ( A)由于程序总是从主函数开始,所以函数的调用总是在主函数和其他函数之间进行 ( B)函数的调用可以在任意函数之间进行,只要有需要 ( C)一个函数可以自己调用自己 ( D)函数返回时可以不必带回值,这时函数在定义时其类型应用 void标示 17 有如下程序: #include iostream using names
7、pace std; int fun(int a, int b) return(+a*b+); void main() int x=3,y=4,z=5,r; r=fun (fun (x,y),z); cout r endl; cout x endl; cout y endl; 该程序的输出的结果是 ( )。 ( A) 85 3 4 ( B) 60 3 4 ( C) 126 4 5 ( D) 85 4 5 18 下列程序写法不正确的是 ( )。 ( A) func1()func2() ( B) func1()func2() ( C) func2();func1()func2();func2() (
8、 D) func1()func1(); 19 下列一维数组定义正确的是 ( )。 ( A) x=5;int numx; ( B) const iht x=5;float numx; ( C) const float x=5;int numx; ( D) const int x;x=5;intnumx; 20 下列说法正确的是 ( )。 ( A)字符型数组与整型数组可通用 ( B)字符型数组与字符串其实没有什么区别 ( C)当字符串放在字符数组中时,要求字符数组长度比字符串长 1个单元,要放字符串终结符 0 ( D)字符串的输出可以用它所存储的数组来输出,也可以字符串的形式整体输出,结果没区别
9、21 下面程序的输出结果是 ( )。 #include iostream using namespace std; void swap(int x2) int t; t=x0; x0=x1; x1=t; void main() int a2=4,8; swap(a); cout a0 “ “ a1; ( A) 4 8 ( B) 8 4 ( C) 4 4 ( D) 8 8 22 对于类的私有成员、公有成员,不正确的 是 ( )。 ( A)私有成员只对类的内部,不对外部 ( B)公有成员也叫接口,是与外部联系的通道 ( C)私有成员主要对数据成员而言,当然有些成员函数也是私有的 ( D)类的私有成
10、员、公有成员只是相对而言,可以随时改变 23 对于下面程序,选项正确的是 ( )。 #include iostream using namespace std; class point public: void setpoint(unsigned, unsigned); void getpoint(void); private: unsigned x; unsigned y; ; void point:setpoint(unsigned x, unsigned y) point:x=x; point:y=y; void point:getpoint(void) cout “x:“ x “ “
11、“y:“ y endl; void main(void) point p1,*p2;p2= p2- getpoint(); ( A)该程序编译正确,能输出正确结果 ( B)该程序中 setpoint() 形式参数不应为 x、 y,这样与程序体中的 x、 y其实是一个 变量了 ( C)该程序中的 setpoint() 程序体中的 “point:x、 point:y”应该改为 x、 y ( D)错误在于主函数中的 “p2=”上,应该改为 p2=p1; 24 关于成员函数的重载,说法正确的是 ( )。 ( A)就是在类中设计多个函数名相同,参数个数及参数类型也相同的函数 ( B)析构函数可以重载 (
12、 C)函数重载,要求函数名相同,但参数个数不同,或参数相同,但其类型不同 ( D)构造函数不可重载 25 关于继承的目的和作用,说法不正确的是 ( )。 ( A)继 承是为了重复利用父类的可用代码,避免重复劳动 ( B)继承可以增加自己的父类不能实现的功能的代码,使子类的功能更完美,提高程序设计效率 ( C)子类可以继承父类的函数和数据,以便重复使用 ( D)子类为了改造父类 26 在基类中有定义的纯虚函数,它要求在派生类中定义,而且基类不能用以说明对象,则该类为 ( )。 ( A)虚基类 ( B)抽象类 ( C)虚函数类 ( D)模板类 27 下面程序的运行结果是 ( )。 #include
13、 iostream using namespace std; class A public: virtual A() cout “call A: A()“ endl; ; class B:public A char * p; public: B(int i) p=new chari; B() delete(p); cout “call B: B()“; ; void main() A * a=new B(8); delete a; ( A) call B: B()call A: A() ( B) call B: B() ( C) call A: A() ( D) call A: A()call
14、 B: B() 28 下面程序的输出结果是 ( )。 #include iostream using namespace std; template class T T max(T x,T y) return(x =y ? x:y); void main() cout max(5,8) endl; cout max(“zhangsan“,“lisi“); ( A) 8 zhangsan ( B) 8 lisi ( C) 5 zhangsan ( D) 5 lisi 29 输入流对象是输出流的源头,下面 ( )不是输入流类。 ( A) cin ( B) istream ( C) ifstream
15、 ( D) istrtream 30 下面程序的输出结果是 ( )。 #include iostream using namespace std; void main() int a=18; int * p= cout * p; ( A) 18 ( B)以十进制输出变量 a的地址 ( C)以十进制输出 p的地址 ( D)以十六进制输出 a的地址 31 下列说法正确的是 ( )。 ( A) int( *p)n); 是把 p定义为整型变量,它指向不知数据类型的一维数组 ( B) int( *p)(); 是把 p定义为整型指针 ( C) int *pn); 定义指针数组 p,每个指针指向一个整型变量
16、 ( D) int *p(); p为指向函数的指针,函数返回值为整型 32 有函数 char fun(char *p) return p; 该函数的返回值是 ( )。 ( A)编译出错 ( B)形参 p中存放的地址值 ( C)一个临时存储单元的地址 ( D)形参 p自身的地址值 33 MyClock 类的拷贝构造函数的声明语句为 ( )。 ( A) MyClock static int c=3; b+; c+; return(a+ b+ c); void main() int a=2,i; for(i=0;i 3;i+) cout f(a) end1; 46 已知数组 a中的元素个数为 n,下
17、列语句的作用是将下标为 i的元素移动到下标为 i-1的单元,其中 1i n。例如,当 n=4, a中原有数据为 1, 2, 3, 4时,则移动后 a中元素变为 2, 3, 4, 4。请将语句补充完整: for(int i=0; i n-1; i+) ai=a【 】 ; 47 有如下程序: #include iostream.h void main() int x=2,y=3,a,b,c,d; a=(x+ =-y); b=(x=+y); c=(x-!=y); d=(+x y-); Cout a b c d end1; 则程序执行后变量 a, b, c, d的值分别是【 】。 48 下面程序的运行
18、结果是【 】。 #include iostream.h double fun( double a, double b, char c=* ) double d; switch (c) case +:d=a+ b; break; case -:d=a-b; break; case *:d=a*b; break; case /:d=a/b; break; return d; void main() double d=1.0; d=d-fun(fun(2.5,3.5,+),fun(3,5),/); cout “d=“ d end1; 49 在下面横线上填上适当的语句,完成程序。 #include i
19、ostream using namespace std; class Base int x; public: Base(int i) x=i; Base() ; class Derived: public Base public: 【 】 /完成类 Derive 构造函数的定义 ; int main() Derived Obj(); return 0; 50 下列程序的输出结果是【 】。 #include iostream using namespace std; class base public: int n; base(int x) n=x; virtual void set(int m
20、) n=m; cout n ; ; class deriveA :public base public: deriveA(int x):base(x) void set(int m) n+=m; cout n ; ; class derive B: public base public: derive B(int x):base(x) void set(int m) n+=m; cout n ; ; int main() derive A, d1(1); derive B, d2(3); base *pbase; pbase= pbase- set(1); pbase= phase- set(
21、2); return 0; 国家二级( C+)笔试模拟试卷 9答案与解析 1 【正确答案】 D 【试题解析】 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的 需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。 2 【正确答案】 C 【试题解析】 根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分成线性结构和非线性结构。 3 【正确答案】 B 【试题解析】 栈组织数据的原则是 “先进后出 ”。 4 【正确答案】 C 【试题解析】 链式存储结构克服了顺序存储结构的缺点:
22、它的结点空间可以动态申请和释放,它的数据元素的逻辑次序靠结点的指针来指示, 不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。 5 【正确答案】 B 【试题解析】 循环链表的主要优点是从表中任一结点出发都能访问到整个链表。 6 【正确答案】 D 【试题解析】 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象 (组织、部门、企业等 ),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。 7 【正确答案】 C 【试题解析】 数据库的故障恢复一般是由 DBA完成的。 8 【正确答案】 D 【试题解析】 关系数据模型采用二维表
23、来表示的。 9 【正确答案】 D 【试题解析】 软件包括程序、文档和数据。 10 【正确答案】 B 【试题解析】 链表不能随机访问任一元素。 11 【正确答案】 C 【试题解析】 C+语言保留了 C语言面向过程的特点,又添加了面向对象的特点。 12 【正确答案】 D 【试题解析】 选项 A逻辑运算符优先级不同,而且有单目运算符;选项 B中b=a的左边表达式值为 0,右边表达式不参与运算,所以 i的值没有变化;选项 C原因 同选项 B。 13 【正确答案】 C 【试题解析】 严格按照 scanf 的输入控制串的要求来输入。 14 【正确答案】 B 【试题解析】 注意区别 while、 dowhi
24、le 两种循环结构的异同 :while循环是先判断条件是否成立,成立时才执行;而 dowhile 先执行再判断,它至少执行一次。 15 【正确答案】 C 【试题解析】 选项 A的程序输出 4,i等于 4不满足循环条件,退出循环;选项 C的程序共执行了两次循环体,第 1次输出 i等于 1,第 2次循环输出 i等于 3,所以选项 C输出值为 13。 16 【正确答案】 A 【试题解析】 函数的调用可以在任意函数之间进行,只要有需要;一个函数可以自己调用自己。 17 【正确答案】 A 【试题解析】 注意运算符 “+”在变量前与后的区别; fun()函数采用值传递的方式,所以调用前后 x和 y的值不会
25、发生变化。 18 【正确答案】 A 【试题解析】 一个函数不能在另一个函数中定义,即不能嵌套定义。 19 【正确答案】 B 【试题解析】 数组的下标不能是变量,不能为非整数,定义为常量的标识符不能再用来赋值,只能在定义时 初始化。 20 【正确答案】 C 【试题解析】 选项 A要在一定的数值范围内;选项 D中,若字符串存储在字符数组中,而且字符数组比字符串长,则输出时可能会输出空格,因为字符数组没有存储 “0”终结符,字符串整体输出却不会;选项 B同选项 D。 21 【正确答案】 B 【试题解析】 数组名作为函数参数属于地址传递,形参、实参共用同一内存空间。 22 【正确答案】 D 【试题解析
26、】 在设计类时,成员的私有性和公有性就已按其作用确定了,不可随意改变,以保证类的稳定性。 23 【正确答案】 A 【试题解析】 该程序是正确的,能得到正确结果,结果输出为 x:20 y:10 x:1 y:2 24 【正确答案】 C 【试题解析】 函数重载要求函数名相同,但参数个数或参数类型不同;构造函数可以重载;析构函数不能重载。 25 【正确答案】 D 【试题解析】 继承的目的是继承有必要的东西,实现代码重用 26 【正确答案】 B 【试题解析】 类中一旦有纯虚函数的定义那么这个类就再也不能创建此类的对象了,我们把这种类叫做抽象类。 27 【正确答案】 A 【 试题解析】 本题考查虚函数的使
27、用,通过基类指针指向派生类的对象,从而动态地访问派生类对象中的虚函数。本题若没有把 A类中的析构函数说明为 virtual,则答案为 C。 28 【正确答案】 A 【试题解析】 当运行 max(“zhangsan“,“lisi“);时实例化为 char *max(char *x,char *y),返回的是 zhangsan的地址,从而打印出 zhangsan的结果。 29 【正确答案】 A 【试题解析】 cin是一个输入流对象,不是流类。 30 【正确答案】 A 【试题解析】 *p输出的是 p所指向的单元的内容,即变量 a的内容 18。 31 【正确答案】 C 【试题解析】 选项 A中声明 p
28、是一个指针,是一个指向数组的指针,所指向的数组的元素是具有 n个 int元素的数组;选项 B中的 p则是一个函数指针,所指向的函数的形参不确定,返回值为 int;选项 D中的 p是一个函数,返回值是指向int类型的指针。 32 【正确答案】 A 【试题解析】 p的类型和函数返回值的类型不一致,函数返回类型是 char,而 p是 char *,编译出错。 33 【正确答案】 C 【试题解析】 拷贝构造函数头的一般形式为:类名 :类名 (const类名 &引用对象名 )。 34 【正确答案】 C 【试题解析】 允许在函数的说明或定义时给一个或多个参数指定默认值。注意不能在函数说明和函数定义时都指定
29、默认参数值,默认参数值应该在函数名第一次出现时指定。 35 【正确答案】 C 【试题解析】 允许在函数的说明或定义时给一个或多个参数指定默认值。参数默认值必须从右向左定义,即在一个指定了默认值的参数的右边,不能出现没有指定默认值的参数。 36 【正确 答案】 128 37 【正确答案】 关系完整性约束 38 【正确答案】 面向对象 39 【正确答案】 逻辑 40 【正确答案】 集成测试 41 【正确答案】 statiC 42 【正确答案】 60 43 【正确答案】 20 44 【正确答案】 virtual 45 【正确答案】 7 8 9 46 【正确答案】 i+1 47 【正确答案】 1 1 0 0 48 【正确答案】 d=0.6 49 【正确答案】 Derived(int i): Base (i) 50 【正确答案】 25
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1