c面向对象程序设计语言重点难点复习题及答案.pdf

上传人:无*** 文档编号:95630737 上传时间:2023-08-28 格式:PDF 页数:52 大小:5.39MB
返回 下载 相关 举报
c面向对象程序设计语言重点难点复习题及答案.pdf_第1页
第1页 / 共52页
c面向对象程序设计语言重点难点复习题及答案.pdf_第2页
第2页 / 共52页
点击查看更多>>
资源描述

《c面向对象程序设计语言重点难点复习题及答案.pdf》由会员分享,可在线阅读,更多相关《c面向对象程序设计语言重点难点复习题及答案.pdf(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2、如果一个函数定义中使用了些叵匚修饰,则该函数不允许被其它文件中的函数调用。5、C+程序运行时的内存空间可以分成全局数据区,堆区,栈区和代码区。6、局部变量具有局部生存期,存放在内存的栈区中。7、对类中对象成员的初始化是通过在构造函数中给出的初始化表来实现的。8、对类中常量成员的初始化是通过在构造函数中给出的初始化表来实现的。9、对类中引用成员的初始化只能通过在构造函数中给出的初始化我来实现。1 0、对类中一般数据成员的初始化既可以通过在构造函数中给出的初始化表来实现,也可以通过构造函数中的函数体来实现。1 1、假定要把a a 定义为A B 类中的一个常量整数型数据成员,则定义语句c on

2、st in t a a,1 2、假定要把a a 定义为A B 类中的一个引用整数型数据成员,则定义语句为in t&a a 1 3、假定A B 类中只包含一个整型数据成员a,并且它是一个常量成员,若利用参数a a 对其进行初始化,则该类的构造函数的定义为A B (in t a a)a=a a;1 4、假定A B 类中只包含一个整型数据成员a,并且它是一个引用成员,若利用 引 用 参 数 aa对 其 进 行 初 始 化,则 该 类 的 构 造 函 数 的 定 义 为 A B(in t&a a)a=a a;。1 5、静态成员函数能够直接访问类的静态数据成员,只能通过对象名访问类的非静态数据成员。1

3、6、静态数据成员必须在所有函数的定义体外进行也始化。1 7、一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明必须在函数名前加上类域的限定。四、修改程序题:下列程序段中,A _c l a ss的成员函数V a ria n c e。可求出两数的平方差,请改写该程序段,把 V a ria n c e。函数从A _c l a ss类中分离出来,用友元函数来实现该函数的功能。c l a ss A _c l a ss priva te:in t x,y,t;pub l ic:A _c l a ss(in t i,in t j):x(i),y(j)if(y x)t=x;x=y;y=t;)in t

4、 V a ria n c e 0 re turn x*x-y*y;其它函数从略);void m a in()A _c l a ss A _ob j 5);c outz,R e sul t/A _ob j.V a ria n c e ()x)t=x;x=y;y=t;)f rie n d in t V a ria n c e();其它函数从略);in t va ria n c e ()re turn x*x-y*y;)void m a in()A _c l a ss A _ob j(3,5);c outz/R e sul t:z/A _ob j.V a ria n c e ()变量s 的定义为“c

5、har*s=v Hello world!”;,要使变量p 指向s 所指向的同一个字符串,则应选取(A)。A.char*p=s;B.char*p=&s;C.char*p;p=*s;D.char*p;p=&s11、关于void指针,下列说法正确的是(C)。A.void指针就是未指向任何数据的指针B.void指针就是已定义而未初始化的指针C.指向任何类型数据的指针可直接赋值给一个void指针D.void指针值可直接赋给一个非void指针12、假定一条定义语句为“int a10,x,*pa=a;,若要把数组a 中下标为3的元素值赋给x,则不正确的语句为(I)。A.x=pa3;B.x=*(a+3);C.

6、x=a3;D.x=*pa+3;13、假定有定义“int b10;int*pb;,则不正确的赋值语句为(D)。A.pb=b;B.pb=&b0;C.*pb=new int;D.pb=b5;14、假定p 是具有double类型的指针变量,则表达式+p使 p 的值(以字节为单 位)增 加(C)。A.1 B.4 C.sizeof(double)D.sizeof(p)15、假定p 指向的字符串为 string,则 coutp+3的输出结果为(C).A.string B.ring C.ing D.i16、假定p 指向的字符串为”string,若要输出这个字符串的地址值,则使用(D)oA.cout*s;B.c

7、outs;C.cout&s;D.cout12,35;C.*(p a+5)=1 2.3 5;D.*(a 0 +5)=1 2.3 5;2 1、假定变量b 和 p b 定义为“in t b 1 0 ,*p b=b;w,要将2 4 赋值给b l 元素中,不正确的语句是(C )。A.*(p b+l)=2 4;B.*(b+l)=2 4;C.*+b=2 4;D.*+p b=2 4;2 2、假定指针变量p 定义为 in t *p=n e w in t(l O O);,要释放p 所指向的动态内存,应使用语句(A )。A.d e l e t e p;B.d e l e t e *p;C.d e l e t e&p

8、;D.d e l e t e p;2 3、假定指针变量p 定义为 in t *p=n e w in t 3 0 ;,要释放p 所指向的动态内存,应使用语句(D )。A.d e l e t e p;B.d e l e t e *p;C.d e l e t e&p;D.d e l e t e p;2 4、当类中一个字符指针成员指向具有n 个字节的存储空间时,它所能存储字符串的最大长度为(C )。A.n B.n+1 C.n-1 D.n-22 5、在一个川链表实现的队列类中,假定每个结点包含的值域用e l e m 表示,包含的指针域用n e x t 表示,链队的队首指针用e l e m H e a d

9、 表示,队尾指针用e l e m T a il 表示,若链队非空,则进行插入时必须把新结点的地址赋给(D 兀A.e l e m H e a d B.e l e m T a i1C.e l e m H e a d-n e x t 和 e l e m H e a d D.e l e m T a il-n e x t 和 e l e m T a il2 6、在一个用链表实现的队列类中,假定每个结点包含的值域用e l e m 表示,包含的指针域用n e x t 表示,链队的队首指针用e l e m H e a d 表示,队尾指针用e l e m T a il 表示,若链队为空,则进行插入时必须把新结点

10、的地址赋给(C)。A.e l e m H e a d B.e l e m T a ilC.e l e m H e a d 和 e l e m T a ilD.e l e m H e a d 或 e l e m T a il2 7、当类中的一个整型指针成员指向一块具有n*s iz e o f (in t)大小的存储空间时,它最多能够存储(A )个整数。A.nB.n+1 C.n-1 D.12 8、假定A B 为一个类,则执行A.动态分配一个数组“A B *p x=n e w A B n ;”语句时将(AB.动态分配一个对象)。C.静态分配一个数组D.静态分配一个对象2 9、设 p x 是指向一个类

11、对象的指针变量,则 执 行“d e l e t e p x;”语句时,将自动调用该类的(C )A.无参构造函数 B.带参构造函数 C.析构函数 D.拷贝构造函数3 0、当一个类对象离开它的作用域时,系统自动调用该类的(D )。A.无参构造函数 B.带参构造函数 C.拷贝构造函数D.析构函数3 1、假定一个类对象数组为A n ,当离开它定义的作用域时,系统自动调用该类析构函数的次数为(C )。A.0 B.1 C.n D.n-13 2、假定A B 为一个类,则执行次数为(D )。“A B 语句时调用该类无参构造函数的A.0 B.1C.9 D.1 03 3、假定A B 为一个类,则执行造函数的次数为

12、(A )。“A B *p x=n e w A B n ;M语句时调用该类无参构A.n B.n-13 4、假定A B 为一个类,则执行数的次数为(A )。C.1 D.0“A B a,b(3),*p;”语句时共调用该类构造函A.2 B.3 C.4 D.53 5、假定A B 为一个类,则执行构造函数的次数为(B )。“A B a ,b 3 ,*p 4 ;”语句时共调用该类A.3 B.4 C.53 6、假定A B 为一个类,则执行“A B a,类无参构造函数的次数为(D )D.9b(2),c ,*p=&a;语句时共调用该A.5 B.6 C.3D.43 7、假定A B 为一个类,则执行 A B *p=n

13、 e w A B(1,2);”语句时共调用该类构造函数的次数为(B )。A.0 B.1 C.2 D.33 8、假定A B 为一个类,p x 为指向该类的一个含有n 个对象的动态数组的指针,则执行“d e l e t e 口 p x;”语句时共调用该类析构函数的次数为(C )。A.0 B.1 C.n D.n+1二、填空题:1、用于存储一个长度为n的字符串的字符数组的长度至少为_ n+l。2、若 a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为_ g e t l in e(c in,a);_ _ _ _ _ _ _ _ _,3、若 a是 一 个 而 薮 血,则向屏幕输出a中所存字符串的

14、表达式为_ c o u t a _ _ _ _ _ _ _。4、一个二维字符数组a 1 0 2 0 能够存储_ 1 0 _ _ _ _ _ 个字符串,每个字符串的长度至多为_19_ _ _ _。5、对一个二维字符数组a 进行初始化的数据为“1 2 3“,“4 5 6“,“7 8 9”,则 a l 元 素 对 应 的 字 符 串 为 4 5 6 _ _ _ _ _ _ _ _ o6、s t r l e n (a p p l e )的值为_ 5,s t r c m p (a ,A )的值为_ _ _ _ _ _ _。7、假定对数组a 口进行初始化的数据为 2,7,9,6,5,7,1 0 ,则 a

15、2 和 a 5 分别被初始化为9 和 7 。8、假定对二维数组a 3 4 进行初始化的数据为 3,5,6 ,2,8 ,7 ,则a l 1 和 a 2 3 分别被初始化为 8 和 0 。9、若二维数组a 有 m 列,设 a 0 0 位于数组的第一个位置上,则计算任一元素a i j 在数组中位置序号的公式为_ i*m+j+l 。1 0、若有定义“d o u b l e a 3 5 有“,则 a数组中行下标和列下标的最大值分别为 2 _ _ _ _和_ 4 _ _ _ _。1 1、一个指针类型的对象占用内存的 4 _ _ _ _ 个字节的存储空间。1 2、一个指针指向一个数据对象,它保存着该数据对象

16、的一地址,若数据对象为DataType类型,则相应的指针类型为_ _ _ D a t a t y p e*。13、若要把一个整型指针p 转换为字符指针,则采用的强制转换表达式为_(char*)p,14、假定一个数据对象为int*类型,则指向该对象的指针类型为_int*_.15、二假定p 是一个指向整数对象的指针,则 用*P 表示该整数对象,用P 表示指针变量p 的地址。16、假定p 是一个指针,则*p+运算首先访问_*p_,幅使 p_的值增I-17、假 定 p 是一个指针,则(*田+运算首先访问一*p _,然后使_*p的值增1。18、假 定 p 所指对象的值为25,p+1所指对象的值为4 2,

17、则*p+的值为_25_ o19、假 定 p 所指对象的值为25,p+1所指对象的值为4 2,则*+p的值为_42_ 20、假定p 所指对象的值为25,p+1所指对象的值为4 2,则执行(*p)+运算后,P所指对象的值为-26_。21、傀 p 所指对象的值为25,p+1所指对象的值为42,则挽亍*(p+)或*p+运算后,P 所指对象的值为 42。22、假定a 是一个一维指针数组,则 a+i所指对象的地址比a 大_4*i_字节。23、假定a 是一个一维数组,则 a i的指针访问方式为_*(a+i)_。24、假 定 a 是一个一维数组,则 a i对应的存储地址(以字节为单位)为_ a+i*sizeo

18、f(aij)_。25、一个数组的数由万场上是指向该数组首一元素的指针,并且在任何时候都不允许_ _ _ _修改它。26、假定指向一维数组b10中元素b4的指针为p,则 p+3所指向的元素为_ _ b7_,P-2所指向的元素为 2。27、若 要 定 义 整 型 指 针 p 并 初 始 指 向 X,则所使用的定义语句为_int*p=&x_。28、若 p 指向x,则_*p _ 与 x 的表示是等价的。29、在一个二维数组int 中,包含的一维元素a i的类型为一i nt n,访问a i时返回值的类型为_ i nt*。30、假定一个二维数组为c5 8,则 c3的值为二维元素c3 0.的地址,c3+2的

19、值为二维元素c3 2的地址。31、假 定 p 为指向二维数组int d46的指针,则 p 的类型为一int(*)6o32、假定a 是一个二维数组,则 的 指 针 访 问 方 式 为 _*(*(a+i)+j)33、执行int p=new in t操作得到的一个动态分配的整型对象为一*p。34、执 行 int*p=new int 10操作,使 p 指向动态分配的数组中下标为。的元素,该元素可表示为_*p_ 或_p0_ O35、执 行 char*p=new char(a )操作后,p 所指向的数据对象的值为_ 8.o36、执行new charm n操作时的返回值的类型为一char(*)n。3 7、执

20、行一d e l e t e”操作将释放由p 所指向的动态分配的数据空间。3 8、执行一d e l e t e p 操作将释放由p 所指向的动态分配的数组空间。3 9、N U L L 是一个符号常量,通常作为空指针值,它的具体值为_0_4 0、变量v 定义为 d o u b l e v=2 3.4;”,要使指针pv指向v,则定义pv的语句为_ _d o u b l e *pv=&v。4 1、已知语句c o u t p;w的输出是“H e l l o!”,则语句wc o u t*p;M输出的是.4 2、.已知语句r tc o u t s;w的输出是“a ppl e”,则执行语句 c o u t n

21、 a m e 等 价 的 表 达 式 是_(*p).name s c o r e o4 7、已知有定义“i n t x,a =5,7,9,*pa=a;,在执行“x=+*pa;“语句后,x 的值是_ _ _ _ 6 _ _ _ _ o4 8、已知有定义“i n t x,a =6,1 0,1 2),*pa=a;,在执行 x=*+pa;”语句后,*pa 的值是0。4 9、已知有定义“i n t x,a =1 5,1 7,1 9,*pa=a;,在执行 x=*pa+;”后,*pa 的值是一1 7 _ _ _ _ _ _。5 0、若 采 用 p-a b c(y)表达式调用一个成员函数,在成员函数中使用的_

22、 l h i s 一 就 代表了类外的p 指针。5 1、在一个用数组实现的队列类中,包含有两个数据成员,个指明队首元素位置,另一个指明一队列长度。5 2、在一个用数组实现的队列类中,包含有两个数据成员,一个指明队列长度,另一个指明一 队 首 元素的位置。5 3、在一个用数组实现的队列类中,假定数组长度为M S,队首元素位置为f i r s t ,队 列 长 度 为 l e n g t h ,则 插 入 个 新 元 素 的 位 置 为_ _(f i r s t+l e n g t h)MS。5 4、在 个用数组实现的队列类中,假定数组长度为M S,队首元素位置为f i r s t,队列长度为l

23、e n g t h,则删除一个元素后队首的位置为_ (first+DMS。5 5、定义类动态对象数组时,其元素只能靠自动调用该类的 无参构造函数来进行初始化。5 6、为了释放类对象中指针成员所指向的动态存储空间,则需要为该类定义析构函数 o57、假定AB为一个类,则执行“AB 语句时,系统自动调用该类构造函数的次数为_ 1 0 _ _ _ _ _。58、假定一个类对象数如为A M,当离开它的作用域时,系统自动调用该类析构函数的次数为_ N _ _ _ _ _ _。6 0、假定指针p指向一个动态分配的类对象,则当执行“d e l e t e p;语句时,在 释 放 P所指向的动态存储空间之前将自

24、动调用该类的 析构函数6 1、假定AB为一个类,该类中含有一个指向动态数组空间的指针成员p a,则在该类的析构函数中应该包含有一条_ _ d e l e t e pa;语句。三、程序填空题:1、采用指针访问方式从键盘给数组a N 输入数据,然后对元素值重新按逆序存放并输出。#i n c l u d e c o n s t i n t N=8;v o i d m a i n()(i n t a N ,*p,*q;f o r(p=a;p *p;p=a;q=a+N-l;w h i l e(p q)i n t r=*p;*p=*q;*q=r;p+;q+;)f o r(p=a;p *p (2)p+(或+

25、p)(3)q (或一q)2、假定有定义为 s t r u c t N O DE i n t d a t a;N O DE*n e x t;下面算法根据 t a b l e数组中的n 个元素建立一个表头指针为L 的链表,链表中结点值的顺序与数组元素值的顺序正好相反。v o i d f 6(N O DE*&L,i n t t a b l e,i n t n)(L=N U L L;i f(n d a t a=_ _ _(2)_ _ _;p-n e x t=L;_(3);i+;)2、(1)i n(2)t a b l e f i(3)L=p3、已知一维数组类AR R AY 的定义如下,构造函数的作用是把

26、参数n的值赋给s,给 v 动态分配长度为n 的数组空间,接着利用数组参数a 初始化v 所指向的数组。c l a s s AR R AY i n t *v;指向存放数组数据的空间i n t s;数组大小p u b l i c:AR R AY(i n t a ,i n t n);AR R AY()d e l e t e v;i n t s i ze()r e t u r n s;i n t&o p e r a t o r (i n t n););(1)AR R AY(i n t a ,i n t n)i f(n =0)v=N U L L;s=O;r e t u r n;s=n;V=_ (2)一;f

27、 o r(i n t i=0;i n;i+)_ _ _(3)_ _ _;)3、(1)AR R AY:(2)n e w i n t n (3)v i =a i 4、下面是一维数组类AR R AY 的定义,AR R AY 与普通一维数组区别是:(a)用()而不是进行下标访问,(2)下标从1 而不是从0开始,(c)要对下标是否越界进行检查。c l a s s i n t *v;指向存放数组数据的空间i n t s;数组大小p u b l i c:AR R AY(i n t a ,i n t n);、AR R AY()d e l e t e v;i n t s i ze()r e t u r n s;

28、i n t&o p e r a t o r()(i n t n);_ _(1)_ _ _ o p e r a t o r ()(i n t n)/()的运算符函数定义i f (_ _ _(2)_ _ _)c e r r X”下标越界!”;e x i t(1);)r e t u r n _ _ _(3)_ _ _;)4、(1)i n t&AR R AY:(2)n s (3)v n-l (或*(v+n-1)5、已知一个类的定义如下:#i n c l u d e c l a s s AA i n t a 1 0 ;i n t n;p u b l i c:v o i d S e t A(i n t a

29、 a ,i n t n n);用数组a a初始化数据成员a,用n n初始化数据成员ni n t M a x A();从数组a中前n个元素中查找最大值v o i d S o r t AO ;采用选择排序的方法对数组a中前n个元素进行从小到大排序v o i d I n s e r t A0 ;采用插入排序的方法对数组a中前n个元素进行从小到大排序v o i d P r i n t AO ;依次输出数组a中的前n个元素);该类中M a x A()函数的实现如下,请在标号位置补充适当的内容。i n t _ _ _ _(1)_ _ _ _ _ _(i n t x=a 0 ;f o r(i n t i=l

30、;i x)_ _ _(2)_ _ _;(3);)5、(1)AA:M a x A()(2)x=a i (3)r e t u r n x6、已知一个类的定义如下:#i n c l u d e c l a s s AA i n t a 1 0 ;i n t n;p u b l i c:v o i d S e t A(i n t a a ,i n t n n);用数组a a初始化数据成员a,用n n初始化数据成员ni n t M a x A();从数组a中前n个元素中查找最大值v o i d S o r t AO ;采用选择排序的方法对数组a中前n个元素进行从小到大排序v o i d I n s e

31、r t AO ;采用插入排序的方法对数组a中前n个元素进行从小到大排序v o i d P r i n t AO ;依次输出数组a中的前n个元素;v o i d AA:S o r t A()i n t i,j;f o r(i=0;_ _ _ _(1)_ _ _;i+)i n t x=a i ,k=i;f o r(j=i+l;j n;j+)i f (a j x)_ _ _ _(2)_ _ _a k =a i ;(3);)6、(1)i n-l (或 i =n-2)(b)x=a j ;k=j;(c)a i =x7、已知一个类的定义如下:#i n c l u d e c l a s s AA i n t

32、 a 1 0 ;i n t n;p u b l i c:v o i d S e t A(i n t a a ,i n t n n);用数组a a 初始化数据成员a,用n n 初始化数据成员ni n t M a x A();从数组a中前n 个元素中查找最大值v o i d S o r t AO ;采用选择排序的方法对数组a中前n 个元素进行从小到大排序v o i d I n s e r t A0 ;采用插入排序的方法对数组a中前n 个元素进行从小到大排序v o i d P r i n t AO ;依次输出数组a中的前n个元素;v o i d _ _ _(1)_ _ _(i n t i,j;f o

33、 r(i=l;i =0;j)i f(x a j )_(2)_ _ _;e l s e _ _(3)_ _ _;a j+l =x;7、(1)AA:I n s e r t A()(2)a j+l =a j (3)b r e a k8、已知一个类的定义如下:#i n c l u d e c l a s s AA i n t a 1 0 ;i n t n;public:void SetA(int aa,int nn);用数组aa初始化数据成员a,用nn初始化数据成员nint MaxA();从数组a 中前n 个元素中查找最大值void SortA();采用选择排序的方法对数组a 中前n 个元素进行从小到

34、大排序void InsertAO;采用插入排序的方法对数组a 中前n 个元素进行从小到大排序void PrintA();依次输出数组a 中的前n 个元素最后输出一个换行;使用该类的主函数如下:void main()(int a10=23,78,46,55,62,76,90,25,38,42);A A x;_ _(1);int m=_(2)_;_(3)_;coutmendl;)该程序运行结果为:23 78 46 55 62 76788、(1)x.SetA(a,6)(2)x.MaxA()(3)x.PrintAO9、已知一个类的定义如下:#includeclass A A int a10;int n

35、;public:void SetA(int aa,int nn);用数组aa初始化数据成员a,用nn初始化数据成员nint MaxA();从数组a 中前n 个元素中查找最大值void SortAO;采用选择排序的方法对数组a 中前n 个元素进行从小到大排序void PrintAO;依次输出数组a 中的前n 个元素,最后输出一个换行;使用该类的主函数如下:void main()i n t a 1 0 =2 3,78,4 6,55,6 2,76,9 0,2 5,3 8,4 2);_(1);x.S e t A (a,8);i n t(2);(3);x.P r i n tA O ;c out m c

36、l a s s A c h a r *a;pub l i c:_(D_ 定义无参构造函数,使a的值为空A (c h a r *a a)a=(2);s tr c py(a,a a);用a a所指字符串初始化a所指向的动态存储空间)_ _(3)/定义析构函数,删除a所指向的动态存储空间(3)p=n e w A (5)11、答 案:(1)A()a=0;或 A():a(0)注:数据 0 可用 N U L L 代替(2)n e w c h a r s tr l e n(a a)+l A()d e l e te a:12 c l a s s A i n t a,b;pub l i c:A(i n t a

37、a=O,i n t b b=O)_ _ _(1)_ _ _ 分别用 a a 和 b b 对应初始化 a和b;m a i n O ;定义类A的对象x并用5初始化,同时定义y并用x初始化 ;定义P指针,使之指向对象x)12、答案:(1):a(a a),b(b b)(2)A x(5),y (x)注:乂(5)与产5等效,y (x)与 y=x 等效(3)A *p=&x13 c l a s s A i n t a,b;pub l i c:(1)定义构造函数,使参数a a和b b的默认值为0,在函数体中用a a初始化a,用b b初始化b);m a i n O A *pl,*p2;_(2)_;调用无参构造函数

38、生成由pl指向的动态对象_(3)_;调用带参构造函数生成由p2指向的动态对象,使a和b成员分别被初始化为4和513、答案:(1)A(i n t a a=0,i n t b b=O)a=a a;b=b b;(2)pl=n e w A(3)p2=n e w A (4,5)14、一种类定义如下:c l a s s Good s(pr i va te:c h a r gd _ n a m e 20;i n t we i gh t;s ta ti c i n t tota l we i gh t;pub l i c:Good s (c h a r*s tr,i n t w)s tr c py(gd n

39、a m e,s tr);we i gh t=w;tota l we i gh t+=we i gh t;商品名称商品重量同类商品总重量构造函数、Good s ()tota l we i gh t-二 we i gh t;c h a r*Ge tN()_ _(1)_ _;返回商品名称i n t Ge tW()r e tur n we i gh t;_(2)_ _ Ge tT ota l _ We i gh t()定义静态成员函数返回总重量(3):)14、(1)r e tur n gd _ n a m e (2)s ta ti c i n t(3)r e tur n tota l we i gh

40、t四、阅读程序题:1、#i n c l ud e#i n c l ud e voi d m a i n ()c h a ra 5 10 =s tud e n t,wor ke r ,s ol d i e r ,c a d r e ,pe a s a n t ;c h a r s i 10,s 2 10;s tr c py(s i,a 0);s tr c py(s 2,a 0);f or(i n t i=l;i 0)s tr c py(s i,a i );i f(s tr c m p(a i ,s 2)0)s tr c py(s 2,a i );)c out s l ,s 2e n d l;2、

41、#i n c l ud e#i n c l ud e c l a s s C D c h a r*a;i n t b;pub l i c:voi d I n i t(c h a r*a a,i n t b b)a二n e w c h a r s tr l e n(a a)+l ;s tr c py (a,a a);b=b b;)c h a r*Ge ta O r e tur n a;i n t Ge tb ()r e tur n b;voi d O utput()c out a b e n d l;d x;voi d m a i n()C D d y;d x.I n i t(a b c d e

42、 f”,30);d y.I n i t(,zs h e n y a f e n/z,3*d x.Ge tb()+5);d x.O utput();d y.O utput();)a b c d e f 30s h e n y a f e n 9 53、#i n c l ud e#i n c l ud e c l a s s C D c h a r*a;i n t b;pub l i c:voi d I n i t(c h a r*a a,i n t b b)(a=n e w c h a r s tr l e n(a a)+1;s tr c py (a,a a);b=b b;)c h a r*Ge

43、 ta()r e tur n a;i n t Ge tb()r e tur n b;voi d O utput()c outa,J b e n d l;;voi d m a i n()(C D d x,d y;c h a r a 20;d x.I n i t(a b c d e f”,30);s tr c py (a,d x.Ge ta();s tr c a t(a,x y z);d y.I n i t(a,d x.Ge tb ()+20);d x.O utput();d y.O utput();)a b c d e f 30a b c d e f x y z 504、#i n c l ud

44、e#i n c l ud e c l a s s A c h a r *a;pub l i c:A (c h a r *s)a=n e w c h a r s tr l e n(s)+l ;s tr c py (a,s);c out a e n d l;)A()(d e l e te a;c outzD e s tr uc tor!,e n d l;);voi d m a i n()A x (x ux i a oka i);A *y=n e w A(we i r on g);d e l e te y;)x ux i a oka iwe i r on gD e s tr uc tor!D e s

45、 tr uc tor!5、#i n c l ud e c l a s s A i n t a;pub l i c:A(i n t a a=0):a(a a)c out a,;A()c out Xx k;);voi d m a i n()A *p;A x 3=l,2,3),y=4;c out e n d l;p=n e w A 3;c out e n d l;d e l e te p;c out d a ta=x;3 行p-n e x t=N U L L;4 行i f (l i s t=N U L L)r e tur n p;5 行N O D E *pl=l i s t;6 行wh i l e(

46、pl-n e x t!=N U L L)pl=pl-n e x t;7 行,链表非空先找到表尾b 1 卜 P;8 行,让原表尾指针指 一 批注(MS2:应 让 指 针 域 指 向 新 添 加向新添加的结点 的 结 点r e tur n l i s t;错误行的行号为_ 2 _ 和_ _ _ 8 _ _ _ _ o分别改正为 N O D E *p=n e w N O D E;和 s tr c py(pl,p)pl-n e x t=p;2、假定要求下面程序输出结果为“d=8 00,f=6 0,在第4-23行中存在着三条语句错误,请指出错误语句的行号并改正。#i n c l ud e c l a s

47、 s A 1行i n t a 10;i n t n;2行pub l i c:3行A(i n t a a ,i n t n n):n(n n)4行f or(i n t i=0;i n;i+)5行/批注 M S 3:倒了 个,应 对 数 据 成 员 6 行 赋 值i n t Ge t(i n t i)r e tur n a i ;)7 行i n t S um A(i n t n);8 行);9 行i n t A:S um A(i n t n)10行i n t s=0;/I I 行f or(i n t j=0;j n;j+)s+=a j ;/12 行r e tur n s;/13 行)/14 行vo

48、i d m a i n()15行i n t a =2,5,8,10,15,20;/16 行A x(a,6);17 行i n t d=l;18 行f or (i n t i=0;i 4;i+)d*=x.a i j;/19 行批注LMS4J:私有数据成员必须通过i n t f=S um A(6);20行公有函数使用c out d=d ,;/21 行c out f=f ms)c o u t,zE r r o r!*e nd l;e x i t(1);M S 二 ms;n=nn;a=ne w i nt M S ;f o r(i nt i=0;i M S;i+)a i =a a i ;i nt C o

49、u nt (i nt x);从数组a的前n 个元素中统计出其值等于x 的个数并返回。;i nt A A:c o u nt(i nt x)i nt s u m=0;f o r(i nt i=0;i M S;i+)I f(a i =x)S u m+;)r e t u r n s u m;六、程序设计题:1、i nt A A:C o u nt(i nt x)(i nt i,c=0;f o r(i=0;i ms)c o u t,zE r r o r!z,e nd l;e x i t(1);M S二ms;n=nn;a=ne w i nt M S ;f o r(i nt i=0;i M S;i+)a i

50、=a a i ;)i nt S e a r c h (i nt x);/从数组a的前n个元素中顺序查找值为x的元素,若查找成功则返回元素的下标,否则返回;i nt A A:S e a r c h (i nt x)f o r(i nt i=0;i =M S)r e t u r n-1;)2、i nt A A:S e a r c h(i nt x)(i nt i;f o r(i=0;i ms)c o u t,,E r r o r!*e nd l;e x i t(1);M S 二 ms;n=nn;a=ne w i nt M S ;f o r(i nt i=0;i M S;i+)a i =a a i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁