1、国家二级( C+)笔试模拟试卷 238(无答案)1 下列叙述中正确的是(A)线性表是线性结构(B)栈与队列是非线性结构(C)线性链表是非线性结构(D)二叉树是线性结构2 最简单的交换排序方法是( )。(A)快速排序(B)选择排序(C)堆排序(D)冒泡排序3 下列对于线性链表的描述中,正确的是( )。(A)存储空间必须连续,且各元素的存储顺序是任意的(B)存储空间不一定是连续,且各元素的存储顺序是任意的(C)存储空间必须连续,且前件元素一定存储在后件元素的前面(D)存储空间不一定是连续,且前件元素一定存储在后件元素的前面4 在软件开发中,下面不属于设计阶段的任务的是( )。(A)数据结构设计(B
2、)定义模块算法(C)给出系统模块结构(D)定义需求并建立系统模型5 有如下程序: #includeiostream using namespace std; long fun(int n) if(n2) return(fun(n-1)+fun(n-2); return 2; int main() coutfun(3)end1; return 0; 则该程序的输出结果应该是( )。(A)2(B) 3(C) 4(D)56 对虚函数的调用( ) 。(A)一定使用动态联编(B)必须使用动态联编 (C)一定使用静态联编 (D)不一定使用动态联编 7 下列关于 this 指针的描述中,正确的是( )。A)
3、 类的成员函数都有 this 指针B) 类的友元函数都有 this 指针C) 任何与类相关的函数都有 this 指针D) 类的非静态成员函数都有 this 指针8 有如下程序: #includeiostream using namespaee std; class Demo public: Demo( )cout“default constructorn“; Demo(const Demo x)cout“copy constructorn“ ; ; Derno userCore(DemoB) Demo c(B) ;return c; int main( ) Demo a,d; cout“cal
4、ling userCode( )n“; d=userCode(A) ; return 0; 执行上面程序的过程中,构造函数 Demo( )和Demo(const Demo x)被调用的次数分别为(A)1 和 1(B) 1 和 2(C) 2 和 3(D)2 和 49 有以下程序: #includeiostream.h #includeiomanip.h void main() coutfill(*) ; coutwidth(10); cout,setiosflags(ios:left)123.45endl; 程序执行后的输出结果是 ( )(A)*123.45(B) *123.45*(C) 123
5、.45*(D)*123.45*10 软件调试的目的是(A)发现错误(B)改正错误(C)改善软件的性能(D)挖掘软件的潜能11 有以下程序:#include iostream using namespace std;class sampleprivate: int n;public: sample() sample(int m) n=m; sample add(sample s1,sample s2) this-n-s1.n+s2.n; return (*this); void disp() cout “n=“ nend1; ;int main ( sample s1(10),s2(5),s3;
6、 s3.add(s1,s2); s3.disp (); return 0;程序运行后,输出的结果是(A)n=10(B) n=5(C) n=20(D)n=1512 下列关于 getline()函数的描述中,错误的是( )。 (A)该函数可以用来从键盘上读取字符串(B)该函数读取的字符串长度是受限制的(C)该函数读取字符串时,遇到终止符时便停止(D)该函数中所使用的终止符只熊是换行符,13 定义如下枚举类型:enumMonday,Tuesday,Wednesday,Thrusday,Friday=2;,则下列语句正确的是(A)表达式 Wednesday=Friday 的值是 true(B) Day
7、 day;day=3(C) Day day;day=Monday+3(D)Day day;day=Tuesday+1014 已知枚举类型定义语句为:enum TokenNAME,NUMBER,PLUS=5 ,MINUS,PRINT=10:则下列叙述中错误的是( )。(A)枚举常量 NAME 的值为 1(B)枚举常量 NUMBER 的值为 1(C)枚举常量 MINUS 的值为 6(D)枚举常量 PRINT 的值为 1015 下列语句段输出字符*的个数为( ) 。 int i=100; while(1) i-; if(i=0) break; cout *; (A)101 个(B) 100 个(C)
8、 99 个(D)98 个16 下列有关继承和派生的叙述中,正确的是( )。(A)如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员(B)派生类的成员函数可以访问基类的所有成员(C)基类对象可以赋值给派生类对象(D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类17 在一个派生类对象结束其生命周期时( )。(A)先调用派生类的析构函数后调用基类的析构函数(B)先调用基类的析构函数后调用派生类的析构函数(C)如果基类没有定义析构函数,则只调用派生类的析构函数(D)如果派生类没有定义析构函数,则只调用基类的析构函数18 下列关于 break 语句的叙述不正确的是 ( )
9、。(A)break 语句可用在循环体中,它将使执行流程跳出本层循环体(B) break 语句可用在 switch 语句中,它将使执行流程跳出当前 switch 语句(C) break 语句可用在 if 语句中,它将使执行流程跳出当前订语句(D)break 语句在一层循环体中可以出现多次19 下面程序的结果是 _。 #includeiostream.h class A public: virtual void fun()=0; ; class B:public A public: void fun () cout “new file“ ; ; class C: public A public:
10、void fun ()cout“open file“ “ “ ; class D: public A public: void fun () cout “save filen“ ; ; void main() A a,*p; B b; C c; D d; p= p-fun (); p= p-fun (); p= p-fun(); (A)new file open file save file(B) new file new file new file(C)编译出错(D)open file new file save file20 下列程序中说明的私有成员是 _。class Location i
11、nt x; public: void init(int initX,int initY); private: int y; public: int SetX(); Int SetY();(A)x(B) y(C) SetX(),SetY()(D)ABC 都是21 有如下程序: #include iostream using namespace std; class Demo public: Demo () cout “default constructorn“; Demo (const Demo ; Demo userCode(Demo b) Demo c(b);return c; int ma
12、in() Demo a,d; cout“calling userCode()n“; d=aserCode(a); return 0; 执行上面程序的过程中,构造函数 Demo()和Demo(const Demo ; void B:seta( ) a=2; int B:geta( ) return a; class C:public A ,public B private: int b; public: void display( ); ; void C:display( ) int b=geta( ); cout b; void main( ) C c; c.seta( ); c.displa
13、y( );(A)1(B) 2(C)随机输出 1 或 2(D)程序有错26 类的析构函数是在什么时候调用的?(A)类创建时(B)创建对象时(C)删除对象时(D)不自动调用27 有如下函数模板的定义: template class T T func(Tx,Ty) return x*x+y*y;(A)func(3,5);(B) func (3,5);(C) func(3,5.5);(D)funcint (3,5.5);28 假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为(A)MyClassdouble add(double x, double y)return x+y;void m
14、ain()int a=3, b=3;double c=6.5, d=1.5;coutadd(a, b)“,“ add(c, d)end1;38 39 按数据流的类型,结构化设计方法有两种设计策略,它们是【 】和事务分析设计。40 在长度为 n 的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【 】。41 以下程序的执行结果为_。#includeiostreamusing namespace std;class basepublic:virtual void who()cout“base class“ endl;class derivel:public basepublic:void
15、who()cout“d42 若已知 a 10,b20 ,则表达式!a b 的值为_。43 运算符“+”允许重载为类成员函数,或者非成员函数。若用 operator+(c1,c2)这样的表达式来使用运算符“+”,应将“+”重载为【 】 函数。44 类是一个支持集成的抽象数据类型,而对象是类的【 】。45 有如下程序:#includeiostreamusing namespace std;class Conchar ID;public:Con():ID(A)cout1;)Con(char ID):ID(ID)cout 2;Con(Constrcpy(strcpy(strcpy (couts; 47 可以把具有相同属性的一些不同对象归类,称为 _。48 数组元素 ai是该数组中的第 _ 个元素。49 若已知 a=10,b=20,则表达式!ab 的值为【 】。50 若要在 C 盘根目录下作为二进制文件打开文件 test.dat ,则应该用的语句是【 】。