1、国家二级( C+)笔试模拟试卷 229及答案与解析 1 下列选项中,不属于模块间耦合的是 ( A)数据耦合 ( B)同构耦合 ( C)异构耦合 ( D)公用耦合 2 有如下程序: #include iostream using namespaee std; class Point public: static int number; Point( )number+; Point( )number-; ; int Point:number=0; void main( ) Point*ptr; Point A, B; Point*ptr_point=new Point3; ptr=ptr_poin
2、t; Point C; cout Point:number endl; delete ptr; 程序的输出结果是 A) 3 B) 4 C) 6 D) 7 3 下列叙述正确的是 ( )。 ( A)算法的执行效率与数据的存储结构无关 ( B)算法的空间复杂度是指算法程序中指令 (或语句 )的条数 ( C)算法的有穷性是指算法必须能在执行有限个步骤之后终止 ( D)以上 3种描述都不对 4 有如下程序: #include iostream using namespaee std; class Pair int m; int n; public: Pair(int i, int j): m(i), n
3、(j) boot operator (pair P)const; /需在类体外给出定义 ; int main( ) Pair pl(3, 4), p2(4, 3),p3(4, 5); cout (pl p2) (p2 p1) (p2 p3) (p3 p2); retum 0; 运算符函数 operator的功能是比较两个 Pair对象的大小,当左边对象大时,返回 true,否则返回 false。比较规则是首先比较两对象的 m成员, m大者为大;当 m相等时比较 n, n大者为大。程序输出 0101,下列对运算符重载 函数的正确定义是 ( A) bool Pair:operator (Pair
4、P)eonst ( B) bool Pair:operator (Pair P) if(m!=P.m)return m p In; return n p n; if(m!=P.m)return m p m; return n p n; ( C) bool Pair:operator (Pair P)eonst ( D) bool Pair:operator (Pair P) if(m p.m)return true; return n p.n; if(Ul p.m)return true; return n p.n; 5 有如下程序: #include iostream using names
5、pace std; class Base protected: Base()cout Base; Base(char c)cout c; ; class Derived:public Base public: Derived(char c)cout c; ; int main() Derived d(Derived); return 0; 执行这个程序屏幕上将显示输出( )。 ( A) Derived ( B) DerivedBase ( C) BaseDerived ( D) DerivedDerived 6 有 3个结点的二叉树有 ( )。 ( A) 2种形态 ( B) 4种形态 ( C)
6、 7种形态 ( D) 5种 形态 7 语句 ofstream f(“SALARY DAT“, ios_base:app)的功能是建立流对象 f,并试图打开文件 SALARY DAT与 f关联,而且 ( A)若文件存在,则将其置为空文件;若文件不存在,则打开失败 ( B)若文件存在,则将文件指针定位于文件尾;若文件不存在,则建立一个新文件 ( C)若文件存在,则将文件指针定位于文件首;若文件不存在,则打开失败 ( D)若文件存在,则打开失败;若文件不存在,则建立一个新文件 8 当一个函数无返回值时,函数的类型应为 ( )。 ( A)任意 ( B) void ( C) int ( D) char
7、9 下列叙述中正确的是 ( A)线性表是线性结构 ( B)栈与队列是非线性结构 ( C)线性链表是非线性结构 ( D)二叉树是线性结构 10 不定长文件是指 ( )。 ( A)文件的长度不固定 ( B)记录的长度不固定 ( C)字段的长度不固定 ( D)关键字项的长度不固定 11 for(int x=0, y=0; !x void func2(int i); char st=“hello,friend!“; void fund(int i) cout sti; if(i 3)i+=2;func2(i); void func2(int i) cout sti; if(i 3)i+=2;funcl
8、(i); main( ) int i=0;fund(i);cout endl; ( A) hello ( B) hel ( C) hlo ( D) hlm 16 下列程序执行结 果是 #include iostream.h class A public: int a; A( ):a(10)tout a endl; ; void main( ) A obj1; A obj2(obj1); cout “ “ obj2.a endl; ( A) 10 10 ( B)编译错误缺少拷贝构造函数 ( C) 10 随机数 ( D)随机数随机数 17 有以下程序: #include iostream usin
9、g namespace std; class MyClass public: MyClass(int n)number=n; /拷贝构造函数 MyClass(MyClass cout x - r end1; 输出结果为【 】。 45 在成员函数声明的前面加上关键词【 】修饰,即把该函数声明为虚函数。 46 有以下程序: #include iostream using namespace std; class Sample private: int n; public: Sample(int i)n=i; void print() cout “1: n=“ n “,“; void print()
10、 const cout 47 设文件 temp.txt 已存在,则以下的打印结果是【 】 #include iostream #include fstream using namespace std; int main() ofstream outf (“temp.txt“,ios base: :trunC) ; outf “How you doing“; outf.close(); ifstream inf(“temp.txt“); 48 使用函数模板的方法是先说明函数模板,然后实例化成相应的 _ 进行调用执行。 49 如下程序声明了一个二维图形类 TwoDShape,从其派生出矩形类 Re
11、c。 #include iostream #include string using namespaee std, class TwoDShape/ 二维图形类 char name20; public: TwoDShape (char * n=“unknown“) strcpy(name, n); Char * getName()return name; 【 】 =0; ; class Rec: public TwoDShape double width, height public: Rec(double w-=0. 0,double h=0. 0):TwoDShape(“rectangle
12、“) width=w; height=h; double getWidth() return width; double getHeight() return height; double area() return width * height; ; int main() TwoDShape * shape; Shape=new Rec(2.1,3.0); cout “object is“ shape- getName() “n“; cout “Area is“ shape- area() “n“; return 0 请将程序补充完整,使程序在运行时输出: abject is triangl
13、e Area is 6.3 50 当使用关键字 _作为函数返回类型时,该函数不返回任何值。 国家二级( C+)笔试模拟试卷 229答案与解析 1 【正确答案】 C 2 【正确答案】 C 【试题解析】 只有在创建对象时才 会调用类的构造函数,在定义指针时不会调用构造函数,只有给指针 new一个地址时会调用构造函数,所以本程序中一共生成了 6个 Point对象 (A, B, C, newPoint3)。 number作为静态数据成员,被同一类的不同对象所共享,故结果为 6。 3 【正确答案】 C 【试题解析】 算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间
14、。 4 【正确答案】 C 5 【正确答案】 C 【试题解析】 派生类 Derived由基类 Base公有派生,在派生类构 造函数声明时系统会自动调用基类的缺省构造函数。调用 Derived d(Derived);后,执行类Derived构造函数的 Derived(char c),系统自动调用基类的缺省构造函数 Base(),输出字母 Base;再执行派生类的构造函数 Derived(char c),输出字母 Derived。 6 【正确答案】 D 7 【正确答案】 B 【试题解析】 ios_base:app 所表示的文件打开方式为:如果文件存在则将文件指针指向文件尾,否则就建立一个新文件。 8
15、 【正确答案】 B 9 【正确答案】 A 【试题解析】 线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线性结构;树是一种简单的非线性结构。 10 【正确答案】 B 【试题解析】 不定长文件是指记录的长度不固定。 11 【正确答案】 C 【试题解析】 本题考核 for循环语句。题中 x=0,则 !x 永远为真,对于条件表达式 “!xobj3作为实参被传入,函数 fun返回一个对象时,系统用返回值初始化一个匿名对象时调用了拷贝构造函数。总共调用 4次。 18 【正确答案】 A 【试题解析】 字符指针
16、 p 指向 “abcdefgh”字符串,语句 “r=p; ”是 r指向 p 指向的字符串,而 *r则是指向字符串中的第一个字符。即 a。 19 【正确答案】 C 20 【正确答案】 C 21 【正确答案】 A 【试题解析】 虚函数声明,语法定义; virtual 返回类型 函数名 (参数表 )=0 22 【正确答案】 A 【试题解析】 for循环的一般格式为 for(初始化部分;终止条件判断部分;迭代部分 )循环体; 说明如下: for循环开始时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终 止条件。注意:在 for
17、语句中,如果省略了终止条件判断部分,开且在语句中没有 break,或者是终止条件判断部分始终没有终止,都将出现死循环。注意: for循环语句可由 while循环语句来代替。 23 【正确答案】 A 【试题解析】 const int*p;是只能改变指针地址, int*const p;是只能改变 *p的内容, const int* const P;是指针的地址和 *p的内容都不能改变, int * p;是两者都能改变。 24 【正确答案】 B 25 【正确答案】 D 【试题解析】 C+语言最重要的特点是其为一种面向对象的程序设计语言,但是C+语言也包含了全部的 C语言的特征。 26 【正确答案】
18、B 【试题解析】 本题考核类模板的概念。类模板就是一系列相关类的模型或样板,这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的类型 (成员的类型以及成员函数的参数和返回值的类型 )。 C柑中可以为类模板的参数设置默认值,所以 B)选项是不正确的,其他选项的表述都是正确的。 27 【正确答案】 C 【试题解析】 本题考核引用的定义和初始化。引用具有如下特点:引用 能够使用任何合法变量名:引用不是变量,所以必须在定义时初始化,而且一旦初始化之后,就不能再成为其他变量的引用;引用不是值,不占存储空间,说明引用时, 目标的存储状态不会改变。所以,引用只有说明,没有定义;引用仅在说明时
19、带有 “&”,以后就像普通变量一样使用,不能再带 “&”。在 C选项中,由于在定义引用 p 后没有进行初始化,所以此语句错误。 28 【正确答案】 D 【试题解析】 本题考核类的析构函数。在 C+中,析构函数名为符号 “ ”加类名,析构函数没有参数和返回值。根据以上知识可知, MyClass 类的 正确析构函数的说明为 MyClass()。 29 【正确答案】 C 【试题解析】 本题考查对函数定义的掌握程度。函数类型决定了函数返回值的类型。函数值返回类型可以由编译器自动完成类型转换。在函数有返回值的调用中,编译器将 return 后面的表达式的类型强制转换为该函数定义时指定的返回值类型。 30
20、 【正确答案】 A 【试题解析】 成员函数和友元函数可重载的运算符有些相同的,有些是不同的,友元函数没有 this 指针,二者重载相同运算符时的参数肯定是不同的,成员函数重载运算符时都必须声明为公有 的。注意:友元函数的声明关健字是 friend。 31 【正确答案】 D 【试题解析】 “&”是求址运算符, “ * ”是指针变量的说明符,说明该变量只能存放所定义类型变量的地址。本题中选项 D)中的第一和第三项所表达的是同样的意思。注意:选项 A)中 a是一个整型变量。选项 B)中 & * a等价于 a, * point是指针变量所指的内容。选项 C)中也是同理。注意:在指针运算中, &和 *
21、的作用相互抵消。 32 【正确答案】 D 【试题解析】 C+类中的静态成员变量是该类中所有对象所共有的,它能够被 类中的任何函数调用,所以选项 A,选项 B,选项 C是错误的。而类的静态数据成员是必须要进行初始化才能使用的。 33 【正确答案】 A 【试题解析】 本题考察静态变量的使用规则。考生需要注意的是 s为静态变量,每次进入 fun函数时 s还保留使用原来的值,因此 while循环将最终返回的是各位数之和,而 argc表示参数的个数,此处为 1,因此正确答案为 A。 34 【正确答案】 A 【试题解析】 本题考察 const修饰符的作用。注意; const位置不同,其修饰的部分也是不同的
22、。本题中 const修饰的是 ptr所指的对象本身,所以, ptr是可以重新指向新的对象,而 ptr- a则无法被更新。 35 【正确答案】 A 【试题解析】 oct八进制。 36 【正确答案】 AAB 37 【正确答案】 存储结构 【试题解析】 数据的逻辑结构在计算机存储器内的表示,称为数据的存储结构。 38 【正确答案】 私有 【试题解析】 派生类成员在私有继承方式下不能访问基类的所有成员,在保护继承方式下不能访问基类的私有成员,在公有继承方式下不能访问基类的私有成员。 39 【正确答案】 O(nlog2n) 【试题解析】 在最坏情况下,冒泡排序所需要的比较次数为 n(n-1)/2;简单插
23、入排序所需要的比较次数为 n(n -1)/2;希尔排序所需要的比较次数为 O(nl.5);堆排序所需要的比较次数为 O(nlog2n)。 40 【正确答案】 350 【试题解析】 在任意一棵二叉树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。根据完全二叉树的定义,在一棵完全二叉树中,最多有 1个度为 1的结点。因此,设一棵完全二叉树具有 n个结点,若 n 为偶数,则在该二叉树中有 n/2 个叶子结点以及 n/2-1个度为 2的 结点,还有 1个是度为 1的结点;若 n为奇数,则在该二叉树中有 n/2+1个叶子结点以及 n/2个度为 2的结点,没有度为1的结点。 本题中,完全二
24、叉树共有 700个结点, 700是偶数,所以,在该二叉树中有 350个叶子结点以及 349个度为 2的结点,还有 1个是度为 1的结点。本题的正确答案为 350。 41 【正确答案】 60 【试题解析】 本题考察继承中子类对父类的继承方式,注意子类的 add成员函数,它直接使用了父类的成员函数进行运算。 42 【正确答案】 vinual A或 vinual public A或 virtual privaIe A或 virtual protrcted A与 virtual A或 virtual public A或 virtual privateA或 virtual protccted A 【试题
25、解析】 由于每执行一次 A类的构造函数,都将输出一个字符 A,输出结果中只有一个 A,且第一个输出为 A, D继承 B,可知必有 B继承 A。由题中要求 c肯定继承某个类,所以,这里的 C只能是继承于 A,保证输出中只有一个A, A必须为虚基类,所以本题中的空都填 vmal A。 43 【正确答案】 保护 【试题解析】 类成员有 3类访问权限:公有 (public)、私有 (private)和保护(protected)。 44 【正确答案】 10-10 45 【正确答案】 virtual 【试题解析】 说明虚函数的方法为: virtual类型说明符函数名 (参数表 ) 其中,被关键词 virt
26、ual说明的函数称为虚函数。 46 【正确答案】 1: n=10, 2: n=20 【试题解析】 本题考核常成员函数的应用。本程序中, Sample类中说明了两个同名函数 print(),其 中一个是常成员函数,另一个为普通成员函数。在主函数中说明了两个对象 a和 b,其中对象 b是常对象,通过对象 a调用的是普通成员函数print(),通过对象 b 调用的是常成员函数 print()。 47 【正确答案】 How 【试题解析】 本题考核文件的 I/O 操作。程序中定义了 ofstream类的对象 outf和 ifstream类的对象 inf。然后利用对象 outf在文件 test txt中写入 “How you doing”。最后利用对象 inf打开文件,将其中的数据输入到变量 str中,由于读时遇到空格时就终止,所以 str中存放的字符串为 “How”。 48 【正确答案】 模板函数 49 【正确答案】 virtual double area() 【试题解析】 这里需要添加一个纯虚函数,即 virtual double area()=0。 50 【正确答案】 void 【试题解析】 此题考查的是函数的定义。关键字 void声明的函数的返回类型为不返回任何值。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1