1、国家二级( C+)笔试模拟试卷 242及答案与解析 1 下列关于结构化程序设计原则和方法的描述中,错误的是 ( )。 ( A)选用的结构只准许有一个入口和一个出口 ( B)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现 ( C)不允许使用 GOTO语句 ( D)语言中所没有的控制结构,应该采用前后一致的方法来模拟 2 设 R是一个二元关系, S是一个三元关系,则下列运算中正确的是 ( )。 ( A) R-S ( B) RS ( C) RS ( D) R S 3 将 E-R图转换为关系模式时,实体和联系都可以表示为 ( A)属性 ( B) 键 ( C)关系 ( D)域 4 在数据库设计中,将
2、 E-R图转换成关系数据模型的过程属于 ( A)需求分析阶段 ( B)逻辑设计阶段 ( C)概念设计阶段 ( D)物理设计阶段 5 6 7 下列语句中,错误的是 ( )。 ( A) const int buffer=-256; ( B) const int temp; ( C) const double *point; ( D) const double *rt=new double(5.5); 8 9 对建立良好的程序设计风格,下面描述正确的是 ( A)程序应简单、清晰、可读性好 ( B)符号名的命名只要符合语法 ( C)充分考虑程序的执行效率 ( D)程序的注释可有可无 10 对一个已经排
3、好序的序列进行排序,采用 ( )比较适宜。 ( A)冒泡法 ( B)直接选择法 ( C)直接插入法 ( D)归并法 11 要定义数组 A,使得其中每个元素的数据依次为: 3、 9、 4、 8、 0、 0、 0,错误的定义语句是 ( A) intA=3,9,4,8,0,0,0; ( B) intA9=3,9,4,8,0,0,0; ( C) intA=3,9,4,8; ( D) intA7=3,9,4,8; 12 有如下程序: #include iostream using namespace std; Class Con char ID; public: Con():ID(A)cout 1; C
4、on(char ID) :ID(ID) cout 2; Con(Con char get1D()constreturn ID; ; void show(Con c)cout c.get1D(); int main() Con c1; show(c1); Con c2(B); show(c2); return 0; 执行上面程序的输出是 ( )。 ( A) 13A23A ( B) 23A13B ( C) 13A23B ( D) 13B23A 13 下列程序的运行结果为 ( )。 #include iostream.h void main() int a=2; int b=a+1; cout a/
5、b endl; ( A) 0.66667 ( B) 0 ( C) 0.7 ( D) 0.66666666 14 在 int a=3,int*p=中, P的值是 ( A)变量 a的地址值 ( B)无意义 ( C)变量 P的地址值 ( D) 3 15 下列关于成员函数特征的描述中,错误的是 ( )。 ( A)成员函数一定是内联函数 ( B)成员函数可以重载 ( C)成员函数可以设置参数的默认值 ( D)成员函数可以是静态的 16 假定 MyClass为一个类,则该类的拷贝构造函数的声明语句为 ( )。 ( A) MyClass(MyClass x); ( B) MyClass(MyClass co
6、ut *s; ( A) 345 ( B)字符 3 ( C)字符 3的地址 ( D)无确定的输出结果 23 关于虚函数的描述牛, _ 是正确的。 ( A)派生类的虚函数与基类的虚函数具有不同的参数个数和类型 ( B)基类中说明了虚函数后,派生类中其对应的函数一定要说明为虚函数 ( C)虚函数是 个成员函数 ( D)虚函数是一个 static类型的成员函数 24 不能重载的运算符是 ( A) new ( B) sizeof ( C) * ( D) + 25 下面关于 break语句的描述中,不正确的是 ( A) break可以用于循环体内 ( B) break语句可以在 for循环语句中出现多次
7、( C) break语句可以在 switch语句中出现多次 ( D) break语句可用于 if条件判断语句内 26 在 C+语言中函数返回值的类型是由 ( )决定的。 ( A)调用该函数时系统临时 ( B) return语句中的表达式类型 ( C)定义该函数时所指定的函数 类型 ( D)调用该函数时的主调函数类型 27 有以下程序: #include iostream.h void main() int x=l0,y=l0: for(int i=0; x 8; y=+i) cout x- “, “ y “, “: 该程序运行后的输出结果是 ( )。 ( A) 10,1,9,2 ( B) 9,
8、8,7,6 ( C) 10,9,9,0 ( D) 10,10,9,1 28 C+语言中类定义中默认的访问权限是 ( A) public ( B) protected ( C) private ( D) default 29 下列模板的声明中,正确是 ( A) template T ( B) template class T1,T2 ( C) template class T1,class T2 ( D) template class T1 ;class T2 30 在下面的 4个关键字中用来说明虚函数的是 ( A) virtual ( B) public ( C) protected ( D)
9、 private 31 设有以下语句,对 a数组元素的引用中 (其中 0 =i 10),不正确的是 ( )。 int a10=0, 1, 2, 3, 4, 5, 6, 7, 8, 9), *p=a; ( A) ap-a ( B) *( private: int data; ; class Derive : public Base public: Derive() : Base(O) Derive (int x) d=x; void setvalue(int i) data=i; private: d; ; ( A) 1 ( B) 2 ( C) 3 ( D) 4 33 在软件生产过程中,需求信息
10、的给出是 ( ) ( A)程序员 ( B)项目管理者 ( C)软件分析设计人员 ( D)软件用户 34 当一个函数无返回值时,定义它的函数类型应是 ( )。 ( A) void ( B)任意 ( C) int ( D)无 35 有如下程序: #nclude iostream using namespace std; class MyClass public: MyClass(int x):val(x) void Set(int x)Val=x; void Print()constcout “val=“ Val t; private: intval; ; int main() const MyC
11、lass obj1(10); MyClass obj2(20); obj1.Print(); /语句 1 obj2.Print(); /语句 2 obj1.Set(20); /语句 3 obi2.Set(30); /语句 4 return 0; 其主函数中错误的语句是 ( )。 ( A)语句 1 ( B)语句 2 ( C)语句 3 ( D)语句 4 36 在模块化设计过程中,【 】用来衡量模块内部各个元素彼此结合的紧密程度。 37 单元测试又称模块测试,一般采用【 】测试。 38 需求分 析最终结果是产生【 】。 39 在最坏情况下,堆排序需要比较的次数为【 】。 40 数据库系统的核心是【
12、】。 41 虚函数必须是类的 _。 42 已知下列程序的输出结果是 42,请将画线处缺失的部分补充完整。 #include using namespace std; class TlestClass int value; public: TestClass(): value(0); void setValue(int value) _=value; 给 TestClass的数据成员 value赋值 void print()coutvalue 或 Testclass: valuc 【试题解析】 为了指明是给本类中的 value变量赋值,所以利用每一个成员函数中的指针 this 指向该变量,或者说
13、明是该类域中的 value, TbstClass: value。 43 【正确答案】 this 【试题解析】 C+提供了一个特殊的 this对象指针,它是成员函数所属对 象的指针,指向当前类对象的地址。 44 【正确答案】 400! 45 【正确答案】 cout. serf(los: :hex, basefield); 46 【正确答案】 xxxxx Hello 【试题解析】 setw 设置输出宽度, setfill 设置填充字符 v。 47 【正确答案】 *hello 【试题解析】 本题考查的是 C+语言的流输出操作, cout中包括的函数 fill()和width()分别实现填充和设定显示长度的功能。 48 【正确答案】 软件生命周期 49 【正确答案】 # 50 【正确答案】 3, 2, 2, 3 【试题解析】 main 函数和 fun函数中的变量 x和 y都是局部变量,它们各自独立,在本题 fun函数中:接入实参的值传递: x=2, y=3,执行: x=x+y后, x=5,y=3,执行: x=x-y后, x=5, y=3,执行: y=x-y后, x=3, y=2。所以,第一次执行 cout显示结果是 3和 2返回到 main 函数中,输出 main 函数中的 x和 y的值2, 3。