1、国家二级( C+)笔试模拟试卷 19及答案与解析 1 下列叙述中正确的是 ( )。 ( A)软件测试应该由程序开发者来完成 ( B)程序经调试后一般不需要再测试 ( C)软件维护只包括对程序代码的维护 ( D)以上三种说法都不对 2 设树 T的度为 4,其中度为 1, 2, 3, 4的结点个数分别为 4, 2, 1, 1,则 T中的叶子结点数为 ( )。 ( A) 5 ( B) 6 ( C) 7 ( D) 8 3 软件开发模型包括 ( )。 瀑布模型 扇形模型 快速原型法模型 螺旋模型 ( A) 、 、 ( B) 、 、 ( C) 、 、 ( D) 、 、 4 关系数据模型通常由三部分组成,它
2、们是 ( )。 ( A)数据结构、数据通信、关系操作 ( B)数据结构、关系操作、完整性约束 ( C)数据通信、关系操作、完整性约束 ( D)数据结构、数据通信、完整性约束 5 算法是一种 ( )。 ( A)加工方法 ( B)解题方案的准确而完整的描述 ( C)排序方法 ( D)查询方法 6 下列数据结构中,按 “先进后出 ”原则组织数据的是 ( )。 ( A)线性链表 ( B)栈 ( C)循环链表 ( D)顺序表 7 数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是 ( )。 ( A) DB 包含 DBS 和 DBMS ( B) DBMS 包含 DB 和 DBS ( C
3、) DBS 包含 DB 和 DBMS ( D)没有任何关系 8 用树形结构来表示实体之间联系的模型称为 ( )。 ( A)关系模型 ( B)层次模型 ( C)网状模型 ( D)数据模型 9 把实体一联系模型转换为关系模型时,实体之间多对多关系在关系模型中是通过( )。 ( A)建立新的属性来实现 ( B)建立新的关键字来实现 ( C)建立新的关系来实现 ( D)建立新的实体来实现 10 如果进栈序列为 e1, e2, e3, e4,则可能的出栈序列是 ( )。 ( A) e3, e1, e4, e2 ( B) e2, e4, e3, e1 ( C) e3, e4, e1, e2 ( D)任意顺
4、序 11 语句 cout setprecison (3) 3.1415926 end1;的输出为 ( )。 ( A) 3.14 ( B) 3.1 ( C) 3.142 ( D) 3.141 12 下列关于 C+函数的说明中,正确的是 ( )。 ( A)内联函数就是定义在另一个函数体内部的函数 ( B)函数体的最后一条语句必须是 return 语句 ( C)标准 C+要求在调用一个函数之前,必须先声明其原型 ( D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式 13 设有 a、 b、 c、 d、 m、 n均为 int型变量,且 a=5、 b=6、 c=7、 d=8、 m=2、n=
5、2,则逻辑表达式 (m=a b)c=a+b;return c;void main()int x=6, y=7, z=8, r;r=fun( (x-, y+, x+y), z-);cout r end1;则该程序的输出结果是 ( )。 ( A) 11 ( B) 20 ( C) 21 ( D) 31 21 下列对字符数组进行初始化中, ( )是正确的。 ( A) char s1=“abcd“; ( B) char s23=“xyz“; ( C) char s3=a, x, y); ( D) char s4 23=“xyz“, “rnnp“; 22 下列引用的定义中, ( )是错误的。 ( A) i
6、nt i; int j=i ( D) char d; char 23 进行初始化即可自动获得初值 0的变量包括 ( )。 ( A)任何用 static 修饰的变量 ( B)任何在函数外定义的变量 ( C)局部变量和用 static 修饰的全局变量 ( D)全局变量和用 static 修饰的局部变量 24 有如下程序: #include iostream using namespace std;class Base public: void fun() cout “Base: fun“ end1; ;class Derived: public Base ( public: void fun()
7、_ cout “Derived: fun“end1; ;int main() Derived d; D. fun(); return O;已知其执行后的输出结果为: Base: funDerived: fun则程序中下划线处应填入的语句是 ( )。 ( A) Base. fun (); ( B) Base: fun (); ( C) Base- fun(); ( D) fun() 25 若有以下程序: #include iostream using namespace std;int f() static int i = O; ints= 1; s+=i; i+; return s;int m
8、ain() int i, a =0; for(i=0;i 5;i+) a+=f(); cout a end1; return 0;程序运行后,输出的结果是 ( )。 ( A) 20 ( B) 24 ( C) 25 ( D) 15 26 友元的作用是 ( )。 ( A)提高程序的运用效率 ( B)加强类的封装性 ( C)实现数据的隐藏性 ( D)增加成员函数的种类 27 以下函数实现的功能是 ( )。 void fun (char *s) char *p,*q, temp; p=s; q=s+ strlen(s)-1; while(p q) temp=*p; *p=*q; *p=temp; p+
9、; q-; ( A)将一个字符串首尾颠倒 ( B)计算字符串的长度 ( C)统计字符串中的空格个数 ( D)将字符串中的小写字母变成大写字母 28 关于 this 指针的说明不正确的是 ( )。 ( A)不能在 程序中修政 this 指针 ( B) this指针可以给其他指针赋值,但不能修改 this 指针 ( C)静态成员函数中没有 this 指针 ( D) this 指针可以被赋值 29 内部格式控制操作函数是在头文件 ( )中定义的。 ( A) iostream.h ( B) iomanip.h ( C) istream.h ( D) ostream.h 30 有如下函数模板: temp
10、late typename T, typename U T 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); 31 己知类 Myst 有一个只需要一个 double 型参数的构造函数,且将运算符 “-”重载为友元函数。要使语句序列 Myst x(3.2), y(5.5), z(0.0); z=8.9-y; y=x-
11、6.3; 能够正常运行,运算符函数 operator-应该在类中声明为 ( )。 ( A) friend Myst operator-(Mystclass XXprotected:int k;public:XX(int n=5):k(n) xx()cout “XX“;virtual void f() const=0;inline void XX: f()constcout k+3;class YY: public XXpublic: YY()cout “YY“;void f() constcout k-3;XX:f();int main()XX p. f();delete return 0;执
12、行上面的程序将输出 ( )。 ( A) 28XX ( B) 28YYXX ( C) -33XX ( D) -33XXYY 35 以下程序的输出的结果是 ( )。 #include iostream.h int x=3;void main() void incre(); int i; for (i=1;i x;i+) incre();Void incre() static int x=1; x*=x+1; cout x “; ( A) 3 3 ( B) 2 2 ( C) 2 6 ( D) 2 5 36 设一棵完全二叉树共有 700个结点,则在该二叉树中有【 】个叶子结点。 37 算法复杂度主要包
13、括时间复杂度和【 】复杂度。 38 数据库管理系统常见的数据模型有层次模型、网状模 型和【 】三种。 39 软件工程包括三个要素,分别为方法、工具和【 】。 40 一棵二叉树第六层 (根结点为第一层 )的结点数最多为【 】。 41 对基类数据成员的初始化必须派生类的构造函数中的【 】处执行。 42 重载的流运算符函数经常定义为类的【 】函数。 43 【 】是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。 44 下列程序的输出结果是【 】。 #include iostream #include cstring using namespac
14、e std; void fun(const char*s,char int main() char str=“ABCDE“; char ch=str1; fun(str, ch); cout ch; return 0; 45 下列程序的输出结果是【 】。 #include iostream using namespace std; void fun(int int main() int num= 500; fun(num); cout num endl; return O; 46 以下程序运行后的输出结果是【 】。 #include iostream.h void main() char a=
15、“abcdabcabfgacd“; int i 1 0,i2=0,i=0; while (ai) if (ai=a) il+; if (ai=b) i2+; i+; cout il i2 endl; 47 将 x+y*z中的 “+”用成员函数重载, “*”用友元函数重载应写为【 】。 48 以下程序的执行结果是【 】。 #include iostream.h void main() cout.fill(*); cout.width(10); cout 123.45 endl; cout.width(8); cout 123.45 endl; cout.width(4); cout 123.45
16、 endl; 49 当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行人队运算。这种情况称为【 】。 50 下面程序的功能是 :将字符数组 a中下标值为偶数的元素从小到大排列,其他元素不变。请填空。 #include iostream.h #include string.h main() char a=“clanguage“,t; /一定是偶数个数 int i,j,k; k=strlen(a); for(i=0;i =k-2;i+=2) for(j=i+2;j =k; j=j+2) if(【 】 ) t=ai;ai=aj;aj=t; cout a endl; 51 阅读下面程序
17、: #include iostream.h void main() int i,j,row=0,column=0,m; static int a33= 100,28,72,-30,2,-100; m=a00; for (i=0;i 3;i+) for (j=0;j 3;j+) if (aij m) m=aij; row=i; column=j; cout m “,“ row “,“ column endl; 该程序的功能是【 】,其执行结果为上丝【 】。 国家二级( C+)笔试模拟试卷 19答案与解析 1 【正确答案】 D 2 【正确答案】 D 3 【正确答案】 C 4 【正确答案】 B 5
18、【正确答案】 B 6 【正确答案】 B 7 【正确答案】 C 8 【正确答案】 B 9 【正确答案】 C 10 【正确答案】 B 11 【正确答案】 A 12 【正确答案】 C 13 【正确答案】 C 14 【正确答案】 D 15 【正确答案】 D 16 【正确答案】 B 17 【正确答案】 C 18 【正确答案】 A 19 【正确答案】 B 20 【正确答案】 C 21 【正确答案】 A 22 【正确答案】 B 23 【正确答案】 D 24 【正确答案】 B 25 【正确答案】 D 26 【正确答案】 A 27 【正确答案】 A 28 【正确答 案】 D 29 【正确答案】 B 30 【正确
19、答案】 D 31 【正确答案】 B 32 【正确答案】 D 33 【正确答案】 C 34 【正确答案】 A 35 【正确答案】 C 36 【正确答案】 350 37 【正确答案】 空间 38 【正确答案】 关系模型 39 【正确答案】 过程 40 【正确答案】 32 41 【正确答案】 成员初始化列表 42 【正确答案】 友元 43 【正确答案】 构造函数 44 【正确答案】 C 45 【正确答 案】 1000 46 【正确答案】 43 47 【正确答案】 x.operator+(operator*(y,z) 48 【正确答案】 *123.45 *123.45 123.45 49 【正确答案】 上溢 50 【正确答案】 aj ai 51 【正确答案】 找到数组 a中的最小元素并输出其数值及行列值 -100,1,2