1、二级 C+分类模拟 257及答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:34,分数:60.00)1.计算斐波那契数列第 n项的函数定义如下: int fib(int n) if (n=0)return 1; else if(n=1) return 2; else return fib(n=1)+fib(n=2); 若执行函数调用表达式 fib(2),函数 fib被调用的次数是 _ 。(分数:2.00)A.1B.2C.3D.42.下列错误的定义语句是 _ 。(分数:2.00)A.int x3=0,1,1,2,3;B.int x43=1,2,3,1,2,3,1,2,3,1
2、,2,3;C.int x4=1,2,3,1,2,3,1,2,3,1,2,3;D.int x3=1,2,3,4;3.下列关于多态性的描述,错误的是_。(分数:1.00)A.C+语言中的多态性分为编译时的多态性和运行时的多态性B.编译时的多态性可通过函数重载实现C.运行时的多态性可通过模板和虚函数实现D.实现运行时多态性的机制称为动态绑定4.有如下程序: #include using namespace std; int main() int f, f1=0, f2=1; for(int i=3; i=6; i+) f=f1+f2; f1=f2; f2=f; coutf return 0; /f
3、运行时的输出结果是_。(分数:2.50)A.2B.3C.5D.85.在软件测试设计中,软件测试的主要目的是 _ 。(分数:2.00)A.实验性运行软件B.证明软件正确C.演示软件的正确功能D.发现软件错误而执行程序6.已知类 MyClass的定义如下: class MyClass public: MyCtass(int d)data=d; MyClass() private: int data; ; 下列对 MyClass类对象数组的定义和初始化语句中,正确的是_。(分数:2.00)A.MyClass array2;B.MyClass array2=MyClass(5);C.MyClass a
4、rray2=MyClass(5),MyClass(6),;D.MyClass*arrays=new MyClass2;7.关于关键字 class 和 typename,下列表述正确的是_ 。(分数:2.00)A.程序中所有的 typename都可以替换为 classB.程序中所有的 class都可以替换为 typenameC.A和 B都正确D.A和 B都不正确8.下列叙述中正确的是(分数:2.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对9.下列运算符中,在 C+语言中不能重载的是(分数:1
5、.00)A.*B.=C.:D./10.下列程序的运行结果为_。 # includeiostream.h templateclass TT class FF TT a1,a2,a3; public: FF(TT b1,TT b2,TT b3)a1=b1;a2=b2;a3=b3; TT Sum()return a1+a2+a3;); void main() FFintx(int(1.1),2.3),y(int(4.2),5,6); coutx.Sum()“y.Sum()encIl;(分数:2.50)A.6.1 15.2B.6 15C.6 15.2D.6.1 1511.有如下程序: #include
6、iostream using namespace std; class Point int x,y; public: Point(int x1=0,int y1=0):x(x1),y(y1) int get()return x+y;) ; class Circle Point cente; int radius; public: Circle(int cx,int cy,int r):center(cx,cy),radius(r) int get()return center.get()+radius; ; int main() Circle c(3,4,5); coutc.get()endl
7、; return 0; 运行时的输出结果是_。(分数:2.00)A.5B.7C.9D.1212.下面程序的结果是 #includeiostreamh class A public: A( ) cout “construtA“ end1; virtual A( ) cout “destructA“ end1; ; class B:public A ; class C:public A ; class D:public B,public C ; void main( ) Dd;(分数:1.00)A.constructAdestructAB.constructAconstructAdestructA
8、destructAC.constructAconstructAconstructAdestructAdestructAdestructAD.constructAconstructAconstructAconstructAdestructAdestructAdestructAdestructA13.下面是一个模板声明的开始部分: templatetypename Tdouble 由此可知_。(分数:1.00)A.这可能是一个函数模板的声明B.这可能是一个类模板的声明C.这既可能是一个函数模板的声明,也可能是一个类模板的声明D.这肯定是一个错误的模板声明14.函数定义为 Fun(int B.fun
9、(20+n);C.fun(n);D.funD( public: A():a(0) A(char*aa)/把 aa所指字符串拷贝到 a所指向的存储空间 a=_; strcpy(a,aa); strcpy(a,aa); A()deletea; ; 横线处应填写的表达式是_。(分数:2.50)A.new charstrlen(aa)+1B.charstrlen(aa)+1C.charstrlen(aa)D.new charsizeof(aa)-116.下列模板声明中,有语法错误的是_。(分数:2.50)A.templatetypename TT fun(T x)return x*x;B.templa
10、tetypename TT fun(T x,int n)return x+n;C.templateclass TT fun(T*p)return*p;D.templateclass TT fun()return T;17.下列关于 C+函数的说明中,正确的是_。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式18.下列叙述中正确的是(分数:1.00)A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链
11、表是非线性结构D.只有根结点的二叉树是线性结构19.下列叙述中正确的是_。(分数:1.00)A.数据的存储结构会影响算法的效率B.算法设计只需考虑结果的可靠性C.算法复杂度是指算法控制结构的复杂程度D.算法复杂度是用算法中指令的条数来度量的20.为完成下面的程序,应在划线处填入的语句是 #includeiostream using namespace std; class Base private: int x; public: Base(int i) x=i; Base() ; class Derived:public Base public: _ /完成类 Derive构造函数的定义 ;
12、int main() Derived obj; return 0; (分数:2.00)A.Derived(int i):Base(i)B.Derived()C.Void Derived (int i):Base(i)D.Denved(int i)Base(i);21.面向对象方法中,继承是指_。(分数:2.50)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制22.有如下语句序列: ifstream infile(“DATA.DAT“); if(infile.good()cout“A“; else cout“B“; ofstre
13、am outfile(“DATA.DAT“); if(outfile.fail()cout“C“;else cout“D“; 若执行这个语句序列显示的是 BD,则说明文件 DATA.DAT_。(分数:2.00)A.以读方式打开成功B.以读方式打开失败,但以写方式打开成功C.以读方式打开失败,以写方式打开也失败D.以读方式打开成功,以写方式打开也成功23.对于多重继承,下面说法中正确的是 _ 。(分数:2.00)A.一个派生类只有一个基类B.一个基类只能产生一个派生类C.一个派生类可有多个基类D.一个基类必须产生多个派生类24.有如下程序: #includeiostream using name
14、space std; void f1(int void f2(int x)+x; int main() int x=10,y=12; f1(x); f2(y); coutx+yendl; return 0; 运行这个程序的输出结果是_。(分数:3.00)A.22B.23C.24D.2525.在 E-R图中,用来表示实体联系的图形是_。(分数:2.50)A.椭圆图B.矩形C.菱形D.三角形26.下列关于类、对象、属性和方法的叙述中,错误的是 _ 。(分数:2.00)A.类是对一类相似对象的描述,这些对象具有相同的属性和方法B.属性用于描述对象的状态,方法用于表示对象的行为C.基于同一个类产生的两
15、个对象可以分别设置自己的属性值D.通过执行不同对象的同名方法,其结果必然是相同的27.在一个函数体中,定义一个变量的默认存储类型是_。(分数:1.00)A.externB.registerC.autoD.static28.下列关于类定义的说法中,正确的是_。(分数:1.00)A.类定义中包括数据成员和函数成员的声明B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义29.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为(分数:1.00)A.publicB.protectedC.privateD.static30.有如
16、下函数模板声明: templatetypename,T T Max(T a,T b)return(ab)?a:b; 下列对函数模板 Max()的调用中错误的是_。(分数:1.00)A.Max(3.5,4.5)B.Max(3.5,4)C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)31.有如下 4个语句: cout“A“setfill(“*“)leftsetw(7)“B“endl; coutsetfill(“*“)leftsetw(7)“A“B“endl; cout“A“serfill(“*“)rightsetw(7)“B“endl; coutsetfill(“*“)
17、rightsetw(7)“A“B“endl; 其中能显示 A*B的是_。(分数:2.00)A.和B.和C.和D.和32.有如下说明: int a10=1, 2, 3, 4,5,6, 7, 8, 9, 10, *p=a; 则数值为 9的表达式是_。(分数:1.00)A.*p+9B.*(p+8)C.*p+=9D.p+833.已知数组,d 中有 n个元素,下列语句将数组 a中从下标 x1开始的 k个元素移动到从下标 x2开始的k个元素中,其中 0=x1x2n,x2+kn。将下列语句补充为_。 for(int i=x1+k-1;i=x1;i-) a_=ai;(分数:2.00)Ax2B.x2+kC.x2
18、+k+1D.x2+k-134.C+语言类体系中,不能被派生类继承的有(分数:1.00)A.转换函数B.构造函数C.虚函数D.静态成员函数二级 C+分类模拟 257答案解析(总分:60.00,做题时间:90 分钟)一、选择题(总题数:34,分数:60.00)1.计算斐波那契数列第 n项的函数定义如下: int fib(int n) if (n=0)return 1; else if(n=1) return 2; else return fib(n=1)+fib(n=2); 若执行函数调用表达式 fib(2),函数 fib被调用的次数是 _ 。(分数:2.00)A.1B.2C.3 D.4解析:解析
19、 针对递归调用的含义。当 n为 2时有 fib(0),fib(1),fib(2)被调用,且 fib(0),fib(1)时调用结束,即共 3次。2.下列错误的定义语句是 _ 。(分数:2.00)A.int x3=0,1,1,2,3;B.int x43=1,2,3,1,2,3,1,2,3,1,2,3;C.int x4=1,2,3,1,2,3,1,2,3,1,2,3; D.int x3=1,2,3,4;解析:解析 本题考查数组的定义一维数组定义和初始化是允许省略行下标,不允许省略列下标,故选项 C错误。3.下列关于多态性的描述,错误的是_。(分数:1.00)A.C+语言中的多态性分为编译时的多态性和
20、运行时的多态性B.编译时的多态性可通过函数重载实现C.运行时的多态性可通过模板和虚函数实现 D.实现运行时多态性的机制称为动态绑定解析:解析 编译时的多态性是通过函数重载和模板体实现的,运行时的多态性是通过虚函数体实现的。4.有如下程序: #include using namespace std; int main() int f, f1=0, f2=1; for(int i=3; i=6; i+) f=f1+f2; f1=f2; f2=f; coutf return 0; /f 运行时的输出结果是_。(分数:2.50)A.2 B.3C.5D.8解析:解析 本题考查的知识点是循环结构。for
21、语句是 C+中最常用且功能最强的循环语句,其语法格式如下: for(表达式 1; 表达式 2; 表达式 3) 语句 其中,for 为关键字;表达式 1是 for循环的初始化部分,它一般用来设置循环控制变量的初始值;表达式 2是 for循环的条件部分,它是用来判定循环是否继续进行的条什;表达式 3是 for循环的增量部分,它一般用于修改循环控制变量的值;语句称为 for循环的循环体。5.在软件测试设计中,软件测试的主要目的是 _ 。(分数:2.00)A.实验性运行软件B.证明软件正确C.演示软件的正确功能D.发现软件错误而执行程序 解析:解析 使用人工或自动手段来运行或测定某个系统的过程,其目的
22、在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。6.已知类 MyClass的定义如下: class MyClass public: MyCtass(int d)data=d; MyClass() private: int data; ; 下列对 MyClass类对象数组的定义和初始化语句中,正确的是_。(分数:2.00)A.MyClass array2;B.MyClass array2=MyClass(5);C.MyClass array2=MyClass(5),MyClass(6)
23、,; D.MyClass*arrays=new MyClass2;解析:7.关于关键字 class 和 typename,下列表述正确的是_ 。(分数:2.00)A.程序中所有的 typename都可以替换为 class B.程序中所有的 class都可以替换为 typenameC.A和 B都正确D.A和 B都不正确解析:解析 typename 的相关内容。8.下列叙述中正确的是(分数:2.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对解析:解析 本题考查程序效率。程序效率是指程序运行速度
24、和程序占用的存储空间。影响程序效率的因素是多方面的,包括程序的设计、使用的算法、数据的存储结构等。在确定数据逻辑结构的基础上,选择一种合适的存储结构,可以使得数据操作所花费的时间少,占用的存储空间少,即提高程序的效率。因此,本题选项 A的说法是正确的。9.下列运算符中,在 C+语言中不能重载的是(分数:1.00)A.*B.=C.: D./解析:解析 不能被重载的运算符还包括:“.”,“.*”,“-*”和“?:”。10.下列程序的运行结果为_。 # includeiostream.h templateclass TT class FF TT a1,a2,a3; public: FF(TT b1,
25、TT b2,TT b3)a1=b1;a2=b2;a3=b3; TT Sum()return a1+a2+a3;); void main() FFintx(int(1.1),2.3),y(int(4.2),5,6); coutx.Sum()“y.Sum()encIl;(分数:2.50)A.6.1 15.2B.6 15 C.6 15.2D.6.1 15解析:解析 本题考查模板函数的应用,表达式 int(1.1)和 int(4.2)是将 1.1和 4.2强制转换为整型。11.有如下程序: #includeiostream using namespace std; class Point int x,
26、y; public: Point(int x1=0,int y1=0):x(x1),y(y1) int get()return x+y;) ; class Circle Point cente; int radius; public: Circle(int cx,int cy,int r):center(cx,cy),radius(r) int get()return center.get()+radius; ; int main() Circle c(3,4,5); coutc.get()endl; return 0; 运行时的输出结果是_。(分数:2.00)A.5B.7C.9D.12 解析
27、:解析 根据类 Point和类 Circle的定义可知,类 Circle的实例 c(3,4,5)的成员函数 c.get()返回值为 3+4+5=12。12.下面程序的结果是 #includeiostreamh class A public: A( ) cout “construtA“ end1; virtual A( ) cout “destructA“ end1; ; class B:public A ; class C:public A ; class D:public B,public C ; void main( ) Dd;(分数:1.00)A.constructAdestructAB
28、.constructAconstructAdestructAdestructA C.constructAconstructAconstructAdestructAdestructAdestructAD.constructAconstructAconstructAconstructAdestructAdestructAdestructAdestructA解析:解析 类 D继承了类 C和类 B,所以在构造的时候分别构造类 B和类 C。13.下面是一个模板声明的开始部分: templatetypename Tdouble 由此可知_。(分数:1.00)A.这可能是一个函数模板的声明 B.这可能是一个
29、类模板的声明C.这既可能是一个函数模板的声明,也可能是一个类模板的声明D.这肯定是一个错误的模板声明解析:解析 本题考查函数模板和类模板的基础知识,从 templatetypename Tdouble 这里就可以看出这是一个函数模板的声明。14.函数定义为 Fun(int B.fun(20+n);C.fun(n); D.funD( public: A():a(0) A(char*aa)/把 aa所指字符串拷贝到 a所指向的存储空间 a=_; strcpy(a,aa); strcpy(a,aa); A()deletea; ; 横线处应填写的表达式是_。(分数:2.50)A.new charstr
30、len(aa)+1 B.charstrlen(aa)+1C.charstrlen(aa)D.new charsizeof(aa)-1解析:解析 如果类的数据成员有指针,就要在构造函数中用 new动态分配空间,往往还要在析构函数中用 delete回收空间。题中,数据成员是字符指针,要用构造函数中的参数 aa所指的字符串初始化,所以为成员 a分配的内存大小等于 aa的大小。16.下列模板声明中,有语法错误的是_。(分数:2.50)A.templatetypename TT fun(T x)return x*x;B.templatetypename TT fun(T x,int n)return x
31、+n;C.templateclass TT fun(T*p)return*p;D.templateclass TT fun()return T; 解析:17.下列关于 C+函数的说明中,正确的是_。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return语句C.标准 C+要求在调用一个函数之前,必须先声明其原型 D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式解析:18.下列叙述中正确的是(分数:1.00)A.线性链表是线性表的链式存储结构 B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构解析:解
32、析 一个非空的数据结构如果满足下列两个条件:(1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。则称为线性结构。线性链表是线性表的链式存储结构,选项 A的说法是正确的。栈与队列是特殊的线性表,它们也是线性结构,选项 B的说法是错误的;双向链表是线性表的链式存储结构,其对应的逻辑结构也是线性结构,而不是非线性结构,选项 C的说法是错误的;二叉树是非线性结构,而不是线性结构,选项 D的说法是错误的。因此,本题的正确答案为 A。19.下列叙述中正确的是_。(分数:1.00)A.数据的存储结构会影响算法的效率 B.算法设计只需考虑结果的可靠性C.算法复杂度是指算法控制结构的复
33、杂程度D.算法复杂度是用算法中指令的条数来度量的解析:解析 算法的基本特征包括可行性、确定性、有穷性、足够的初始信息,算法的设计必须考虑到算法的复杂度,故 B选项错误。算法的复杂度是指该算法所需要的计算机资源的多少,即时间和空间的资源,分为时间复杂度和空间复杂度。算法控制结构在具体实现中影响程序执行时间,与算法复杂度无关,故 C选项错误。算法的时间复杂度是用算法所执行的基本运算次数来度量的,而不是算法中指令的条数,故 D选项错误。数据的存储结构与算法的复杂度有关,会影响算法的效率。故 A选项正确。20.为完成下面的程序,应在划线处填入的语句是 #includeiostream using na
34、mespace std; class Base private: int x; public: Base(int i) x=i; Base() ; class Derived:public Base public: _ /完成类 Derive构造函数的定义 ; int main() Derived obj; return 0; (分数:2.00)A.Derived(int i):Base(i) B.Derived()C.Void Derived (int i):Base(i)D.Denved(int i)Base(i);解析:解析 本题考核派生类中的构造函数。程序中,类 Derived是基类
35、Base的公有派生。在类Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化。21.面向对象方法中,继承是指_。(分数:2.50)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制 解析:解析 面向对象方法中,继承是指新类从已有类那里得到已有的特性。由此定义得到正确答案为D。22.有如下语句序列: ifstream infile(“DATA.DAT“); if(infile.good()cout“A“; else cout“B“; ofstream outfile(“DATA.DAT“); if(outfil
36、e.fail()cout“C“;else cout“D“; 若执行这个语句序列显示的是 BD,则说明文件 DATA.DAT_。(分数:2.00)A.以读方式打开成功B.以读方式打开失败,但以写方式打开成功 C.以读方式打开失败,以写方式打开也失败D.以读方式打开成功,以写方式打开也成功解析:解析 由这个语句序列显示的结果是 BD,说明执行了 cout“B“和 cout“D“语句。23.对于多重继承,下面说法中正确的是 _ 。(分数:2.00)A.一个派生类只有一个基类B.一个基类只能产生一个派生类C.一个派生类可有多个基类 D.一个基类必须产生多个派生类解析:解析 C+支持多重继承。24.有如
37、下程序: #includeiostream using namespace std; void f1(int void f2(int x)+x; int main() int x=10,y=12; f1(x); f2(y); coutx+yendl; return 0; 运行这个程序的输出结果是_。(分数:3.00)A.22B.23 C.24D.25解析:解析 在函数 f1(int)中,是对变量 x的引用,所以当在 main函数中执行“f1(x);”语句后,变量 x的值等于 11,而在函数 void f2(int x)+x;中,对变量 x的传递调用,在 main函数中执行“f2(y);”语句后
38、,变量 y的值仍然等于 12,所以输出 x+y的值等于 23。25.在 E-R图中,用来表示实体联系的图形是_。(分数:2.50)A.椭圆图B.矩形C.菱形 D.三角形解析:解析 E-R 图用矩形表示实体,椭圆形表示属性,菱形表示实体之间的联系。26.下列关于类、对象、属性和方法的叙述中,错误的是 _ 。(分数:2.00)A.类是对一类相似对象的描述,这些对象具有相同的属性和方法B.属性用于描述对象的状态,方法用于表示对象的行为C.基于同一个类产生的两个对象可以分别设置自己的属性值D.通过执行不同对象的同名方法,其结果必然是相同的 解析:解析 对象根据所接受的消息而做出动作,同样的消息被不同的
39、对象接受时可以导致完全不同的行为,该现象称为多态性,这种消息可以是同名的方法。 知识拓展 类是具有共同属性、共同方法的对象的集合。27.在一个函数体中,定义一个变量的默认存储类型是_。(分数:1.00)A.externB.registerC.auto D.static解析:解析 extern 用来说明定义的变量具有外部链接,这样的变量可以在外部文件中引用,选项 A错误;使用 register说明符定义的变量属于寄存器变量,选项 B错误;static 用来声明一个静态变量,该种类型的变量具有静态存储时期,程序运行过程中只初始化一次,选项 D错误;C+中默认情况下,在代码块或函数中定义的任意变量都
40、属于自动存储类,相当于显式的使用关键字 auto声明定义变量;选项 C正确。答案为 C选项。28.下列关于类定义的说法中,正确的是_。(分数:1.00)A.类定义中包括数据成员和函数成员的声明 B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义解析:解析 类的成员的缺省访问权限是私有的,数据成员可以是私有,可以是公用的,也可以是受保护的。类的成员函数可以在类内定义。29.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为(分数:1.00)A.public B.protectedC.privateD.static解析:
41、解析 本题考查点为类成员的访问权限,public 关键字修饰的类成员可以被类的对象通过成员操作符“.”直接访问,protected 和 private则不能,而 static 不能单独修饰类的成员。30.有如下函数模板声明: templatetypename,T T Max(T a,T b)return(ab)?a:b; 下列对函数模板 Max()的调用中错误的是_。(分数:1.00)A.Max(3.5,4.5)B.Max(3.5,4) C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)解析:解析 本题考查函数模板的引用。引用模板函数和引用一般函数在语法形式上基本相同
42、。需要注意的是,说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否调用函数模板中的对应形参。本题选项 B中,编译系统从第一个参数“3.5”获得信息“double 型数据”和从第二个参数获得信息“inL 型数据”,两者矛盾。31.有如下 4个语句: cout“A“setfill(“*“)leftsetw(7)“B“endl; coutsetfill(“*“)leftsetw(7)“A“B“endl; cout“A“serfill(“*“)rightsetw(7)“B“endl; coutsetfill(“*“)rightsetw(7)“A“B“endl; 其中
43、能显示 A*B的是_。(分数:2.00)A.和B.和C.和 D.和解析:解析 此题考查 C+流的使用。setfill()作用是设置填充字符;left 是使输出数据在指定宽度内左对齐;right 是使输出数据在指定宽度内右对齐。32.有如下说明: int a10=1, 2, 3, 4,5,6, 7, 8, 9, 10, *p=a; 则数值为 9的表达式是_。(分数:1.00)A.*p+9B.*(p+8) C.*p+=9D.p+8解析:解析 本题考查指向数组的指针,本题中指针变量 p指向数组 a,那么*p 的值就是 1,即表示数组的第一个元素,那么数值为 9的表达式就是将指针向后移动 8个地址,即
44、 p+8指向的是数组元素值为9,所以数值为 9的表达式是*(p+8)。33.已知数组,d 中有 n个元素,下列语句将数组 a中从下标 x1开始的 k个元素移动到从下标 x2开始的k个元素中,其中 0=x1x2n,x2+kn。将下列语句补充为_。 for(int i=x1+k-1;i=x1;i-) a_=ai;(分数:2.00)Ax2B.x2+kC.x2+k+1D.x2+k-1 解析:34.C+语言类体系中,不能被派生类继承的有(分数:1.00)A.转换函数B.构造函数 C.虚函数D.静态成员函数解析:解析 派生类对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成,所以不能继承基类的构造函数,必须重新定义。