C++程序设计课后习题参考答案.pdf
第一章一、选择题1.B;(type d e f ,type i d ,type name,都为保留字);2.C;(标识符,应该以字母或,下划线开头);3.C;(标识符中有的特殊符号,只能有下划线);二、填空题1.ci n,cout 2.ne w,d e le te 3.i nt a(5 5);三、改错题L没有定义变量num;2.*p不能当作“左值”。3.p 为常量指针,不能吧p 作 为“左值”,p=&y,错误。四、编程题1 .分别用字符和A S C I I 码形式输出整数值6 5 和 6 6.i nclud e usi ng name space std;voi d mai n 0(ch ar a=,A ,b=,B,;i nt asci i=5 3,asci i _ 2=5 4;A S C H 码 中 的,5 和 6cout”字符输出:z,(i nt)aw.*(i nt)b e nd l;coutz/A S C I I 码输H l:z/(ch ar)asci i _ 2(ch ar)asci i _ lz/,cout (ch ar)asci i l(ch ar)asci i 1 e nd l;)2 .编写一个i nt型变量分配1 0 0 个整形空间的程序。tti nclud e usi ng name space std;voi d mai nO(i nt*p;p=ne w i nt 1 0 0 ;f or(i nt i =0;i 1 0 0;i+)(*(p+i)=i;)f or(i =0;i 1 0 0;i+)(cout*(p+i)z,)d e le te p;)3 .编写完整的程序,它读入1 5 个 f loat值,用指针把它们存放在一个存储快里,然后输出这些值和以及最小值。tti nclud e tti nclud e 用于数组排列的头文件usi ng name space std;voi d mai n()f loat*p;p=ne w f loat 1 5 ;cout 输入 1 5 个 f loat 类型的值:e nd l;f or(i nt i =0;i 1 5 ;i+)(ci n*(p+i);)f or(i =0;i 1 5;i+)(cout*(p+i)z,,z,;)sort(p,p+1 5);cout n 最小的是:6*(p)e nd l;d e le te p;)4.声明如下数组:i nt a =1,2,3,4,5,6,7,8);先查找4的位置,讲数组a 复制给数组b,然后将数组a 的内容反转,再查找4的位置,最后分别输出数组a 和 b 的内容。i nclud e i nclud e tti nclud e f uncti onalusi ng name space std;voi d mai n()(i nt a =l,2,3,4,5,6,7,8,b 8 ;cout“数组 a 中 4 的位置是:f i nd (a,a+8,4)6 nd 1;查找 4 的位置copy(a,a+8,b);将数组a 复制给数组bre ve rse _ copy(b,b+8,a);把数组b,逆向复制给a,完成a 的逆转cout 数组 a 反转后,4 的位置是:f i nd(a,a+8,4)e nd l;在查找 4的位置cout 数字a 的内容:”的 e nd l;f or(i nt i=0;i 8;i+)cout ,;cout n 数组 b 中的内容:e nd l;f or(i=0;i 8;i+)cout ,;第二章一、单项选择1.D;2.D;三、编程题1 .使用多种方法编写将两个字符串连接在一起的程序。tti nclud e tti nclud e usi ng name space std;voi d mai nO使用stri ng 类定义字符串,完成字符串连接stri ng str 1 (C+”),str2(程序设计);stri ng str3;str3 =strl+str2;连接方式 1cout str3 e nd l;使用ch ar数组定义字符串,完成连接ch ar cl =c+,c2 =prog ram;ch ar c3 2 0 ;i nt i=0,k=0;f or(i=0;i 2 0;i+)初始化 c3c3 i =0f;i=0;w h i le (cl i !=0 )(c3 k=cl i ;i+;k+;)i=0;w h i le(c2 i !=0 )(c3 k=c2 i ;i+;k+;)cout c3 e nd l;2.已知一个stri ng 的对象str的内容为 We are h e re!”,使用多种方法 输 出“h”。i nclud e#i nclud e#i nclud e i nclud ef uncti onal alg ori th m stri ng usi ng name space std;voi d mai n()(stri ng strl(,zWe are h e re!);cout strl 7 e nd l;通过数组stri ng str2=strl.substr(7,1);通过得到子字符串cout str2 e nd l;ch ar*p=f i nd (strl.be g i n(),strl.e nd(),J h );通过 f i nd 函数i f (p)cout*p e nd l;第三章一、填空题L函数原型声明;2.i nli ne 3.对象、对象指针、引 用4.函数f unc返回引用5.i nt*f un(ch ar,i nt&);二、单项选择题1.A;2.C;3.C;三、改错题l.y=x*x-T;错误,T是类型,不是变量,不能参加运算;2.T max(T x,y)y 没有类型3.voi d ch ang e (stri ng&s)中函数ch ang e的参数定义成了常量,只能使用参数,而无权修改他。所以应去掉。四、编程题1.编写一个求方程ax2 +bx+c=0的根的程序,用3个函数分别求当b2-4 ac大于零、等于零、和小于零时的方程的根。要求从主函数输入a,b,c的值并输出结果。t t i n c l u d e#i n c l u d e v o i d e q u a t i o n _ l (i n t a,i n t b,i n t c)d o u b l e x l,x 2,t e m p;t e m p =b*b -4*a *c;x l =(-b +s q r t(t e m p)/x 2=(-b -s q r t(t e m p)/(2*a *1.0);(2*a *1.0);c o u t 两个不相等的实根“e n d l;c o u t z/x l =x l,z,x 2=x 2 e n d l;v o i d e q u a t i o n 2(i n t a,i n t b,i n t c)(d o u b l e x l,x 2,t e m p;t e m p =b*b -4*a *c;x l =(-b +s q r t (t e m p)/(2*a *1.0);x 2=x l;c o u t 两个相等的实根 e n d l;c o u t z,x l =x 2=x 2 e n d l;)v o i d e q u a t i o n 3(i n t a,i n t b,i n t c)(d o u b l e t e m p,r e a l l,r e a l 2,i m a g e l,i m a g e 2;t e m p =-(b*b -4*a *c);r e a l l =-b /(2*a *1.0);r e a l 2=r e a l l;i m a g e l =s q r t(t e m p);i m a g e 2=-i m a g e l;c o u t 两 个 虚 根e n d l;c o u t z,x l =z/r e a l l,z+”i m a g e l,z jz,e n d l;c o u t,zx 2=z r e a l 2/z+i m a g e 2 j e n d l;)v o i d m a i n Oi n t a,b,c;d o u b l e t e m p;c o u t 输入 a,b,c 的值”a b c;c o u t 方程为:a,zx*x+z,b x+0)e q u a t i o n 1(a,b,c);i f(t e m p =0)e q u a t i o n _ 2(a,b,c);i f(t e m p 0)e q u a t i o n _ 3(a,b,c);2.定义函数u p(c h),如字符变量c h 是小写字母就转换成大写字母并通过u p 返回,否则字符c h 不改变。要求在短小而完全的程序中显示这个程序是怎样被调用的。i n c l u d e u s i n g n a m e s p a c e s t d;c h a r u p (c h a r c)(i f(c =97&c =123)r e t u r n (c -32);e l s er e t u r n c;)v o i d m a i n()(i n t i;c h a r c 15 =A,v,e,t,E,T,对,4,Y,e,i,9,7;f o r(i =0;i 15;i+)c o u t u p(c i )z/,c o u t e n d l;)3.编写主程序条用带实数r和整数n两个参数的函数并输出r的 n次塞。#i n c l u d e t t i n c l u d e d o u b l e p o w e r(d o u b l e a,i n t b)(i n t i;d o u b l e r e s u l t =1.0;f o r(i=0;i b;i+)r e s u l t =r e s u l t *a;r e t u r n r e s u l t;)v o i d m a i n Od o u b l e r;i n t n;c o u t r =;c i n r;c o u t,zn =;c i n n;c o u t r”的 n 次幕是:p o w e r (r,n)e n d l;)4.编写有字符型参数C和整形参数N 的函数,让他们显示出由字符C组成的三角形。其方式为第1 行 有 1 个字符C,第 2 行有2 个字符C ,等等。#i n c l u d e u s i n g n a m e s p a c e s t d;v o i d p r i n t _ t r i a n g l e(c h a r c,i n t n)(i n t i,j;f o r(i=0;i n;i+)(f o r(j=0;j=i;j+)(c o u t c;)c o u t e n d l;)v o i d m a i n()(p r i n t _ t r i a n g l e(,a,10);5.编写一个i e q i u 字符串长度的函数,s t r l e n O,再 用 s t r l e n O函数编写一个函数r e v e r s(s)的倒序递归程序,使字符串s 逆序。i n c l u d e t t i n c l u d e u s i n g n a m e s p a c e s t d;i n t s t r l e n(c h a r *s t r)(i n t l e n =0;w h i l e(s t r l e n !=0)(l e n+;)r e t u r n l e n;)v o i d r e v e r s(c h a r *b)(c h a r c;i n t j,l e n;l e n=s t r l e n(b);j=l e n/2-l;w h i l e(j =0)(c=*(b+j);*(b+j)=*(b+l e n-j-1);*(b+l e n-j-l)=c;J;)b l e n =Of;)v o i d m a i n()(c h a r s t r 二“1234567890;c o u t s t r z,-的长度:z,s t r l e n(s t r)e n d l;c o u t s t r e n d l;倒序前r e v e r s(s t r);/c o u t s t r e n d l;倒序后)6.用函数模板实现3个数值中按最小值到最大值排序的程序。t t i n c l u d e u s i n g n a m e s p a c e s t d;t e m p l a t ev o i d s o r t (T a,T b,T c)(T a r r a y 3,t e m p;i n t i,j;a r r a y 0 =a;a r r a y 1 =b;a r r a y 2 =c;f o r(i=0;i 3;i+)(f o r(j=0;j a r r a y j+1)(t e m p =a r r a y j ;a r r a y j =a r r a y j+1;a r r a y j+1 =t e m p;)c o u t a r r a y 0 a r r a y 1 a r r a y 2 e n d l;)v o i d m a i n()s o r t (5,1,9);)7.利用函数模板设计一个求数组元素中和的函数,并检验之。t t i n c l u d e u s i n g n a m e s p a c e s t d;t e m p l a t eT s u m (T a ,i n t n)(i n t i;T s=0;f o r(i=0;i n;i+)s =s +a i ;r e t u r n s;)v o i d m a i n ()(i n t a 5 =l,2,3,4,5;i n t s =s u m(a,5);c o u t s e n d l;)8.重载上题中的函数模板,使他能够进行两个数组的求和。i n c l u d e u s i n g n a m e s p a c e s t d;t e m p l a t eT s u m (T a ,i n t n)(i n t i;T s=0;f o r(i=0;i n;i+)s =s +a i ;r e t u r n s;)t e m p l a t e 重载上面的模板T s u m (T a ,i n t n,T b ,i n t m)(r e t u r n s u m(a,n)+s u m(b,m);)v o i d m a i n ()(i n t a 5 =l,2,3,4,5;i n t b 10 二 1,2,3,4,5,6,7,8,9,10;i n t s i =s u m(a,5);i n t s 2=s u m(b,10);i n t s 3=s u m (a,5,b,10);c o u t s l e n d l;c o u t s 2 e n d l;c o u t s 3 e n d l;第四章一、填空题1.数据成员、成员函数;2.类、返回类型、1;3.f u n:f u n(f u n&)、f u n:f u n (c o n s t f u n&);二、单项选择题l.C o 2.C o 3.没有答案,应该是 A:广A (v o i d 没 或 A:rA()。4.B。5.C o 6.C o 7.D三、改错题1.r e t u r n m;-错误,没又定义变量m;b a s e O(d e l e t e p p后应有一个2.A.i n i t(24,56);-错误,应该先定义A 对 象:Po i n t A;同时参数个数不同;S e t x(a);无类型,也无返回值。四、完成程序题1.t t i n c l u d e u s i n g n a m e s p a c e s t d;c l a s s b a s e(p r i v a t e :私有数据成员i n t a,b;p u b l i c :v o i d i n i t(i n t x,i n t y)公有函数(a =x;b =y;)v o i d p r i n t ()(c o u t z,2*z,a -z,b =z,(2*a-b)e n d l;);v o i d m a i n()(b a s e a;a.i n i t (68,55);a.p r i n t ();)2.t t i n c l u d eu s i n g n a m e s p a c e s t d;c l a s s Po i n t(p r i v a t e :i n t m,n;p u b l i c :Po i n t(i n t,i n t);整型变量,为参数的构造函数Po i n t(Po i n t&);复制构造函数的原型p r i n t ()c o u t,m =m,z,n =n e n d l;);Po i n t:Po i n t(i n t a,i n t b)(m =a;n =b;)Po i n t:Po i n t (Po i n t&t)复制构造函数的定义(m =t.m;n =t.n;)v o i d m a i n O(Po i n t a(10,89);Po i n t b(a);a.p r i n t ();b.p r i n t ();)五、程序分析题L没有结果,因为没有m a i n函数如果加m a i n函数v o i d m a i n O(b a s e b(10,20);)输出:初始化.10,20D e s t o r y.10,202.输出:55六、编程题1.设计一个点类P o i n t,再设计一个矩形类,矩形类使用P o i n t类的两个坐标点作为矩形的对角顶点。并可以输出4个坐标值和面积。使用测试程序验证程序。t t i n cl u deu s i n g n a m es p a ce s t d;cl a s s P o i n t 点类p r i v a t e:i n t x,y;私有成员变量,坐标p u b l i c:P o i n t ()无参数的构造方法,对 xy 初始化(x=0;y =0;P o i n t (i n t a,i n t b)又参数的构造方法,对 xy 赋值(x=a;y =b;v o i d s et X Y(i n t a,i n t b)设置坐标的函数(x=a;y =b;)i n t g et X O 得到x 的方法(r et u r n x;i n t g et Y()得到有的函数(r et u r n y;);cl a s s R ect a n g l e 矩形类(p r i v a t e:P o i n t p o i n t l,p o i n t 2,p o i n t 3,p o i n t 4;私有成员变量,4 个点的对象p u b l i c:R ect a n g l e。;类 P o i n t 的无参构造函数已经对每个对象做初始化啦,这里不用对每个点多初始化了R ect a n g l e(P o i n t o n e,P o i n t t w o)用点对象做初始化的,构造函数,1 和 4 为对角顶点(p o i n t l =o n e;p o i n t 4=t w o;i n i t O ;R ect a n g l e(i n t xl,i n t y l,i n t x2,i n t y 2)用两对坐标做初始化,构造函数,1 和 4 为对角顶点p o i n t l.s et X Y(xl,y l);p o i n t 4.s et X Y(x2,y 2);in it 0;)v o i d i n i t ()给另外两个点做初始化的函数(p o i n t 2.s et X Y(p o i n t 4.g et X(),p o i n t l.g et Y();p o i n t 3,s et X Y(p o i n t l.g et X (),p o i n t 4.g et Y();v o i d p r i n t P o i n t()打印四个点的函数)i n t g et Ar ea()计算面积的函数co u t,zA:rp o i n t l.g et X()z,p o i n t l.g et Y()en dl;co u t X B:cp o i n t 2.g et X()p o i n t 2.g et Y()en dl;co u t z,C :cp o i n t 3.g et X()z,p o i n t 3.g et Y(),)/z en dl;co u t z,D :cp o i n t 4.g et X(),zp o i n t 4.g et Y()0)r et u r n a r ea;el s er et u r n -a r ea;;v o i d m a i n()(P o i n t p l (-15,56),p 2(89,T O);定义两个点R ect a n g l e r l (p l,p 2);用两个点做参数,声明一个矩形对象r lR ect a n g l e r 2(l,5,5,1);用两队左边,声明一个矩形对象r 2co u t 矩形r l的4个定点坐标:en dl;r l.p r i n t P o i n t ();co u t“矩形 r l 的面积:r l.g et Ar ea O en dl;c o u t ”n矩形r 2的4个定点坐标:en dl;r 2.p r i n t P o i n t ();co u t 矩形 r 2 的面积:r 2.g et Ar ea O en dl;2.使用内联函数设计一个类,用来表示直角坐标系中的任意一条直线并输出它的属性。i n cl u de#i n cl u de cl a s s L i n e(p r i v a t e:i n t xl,y l,x2,y 2;p u b l i c:L i n eO ;L i n e(i n t =0,i n t =0,i n t =0,i n t=O );v o i d p r i n t P o i n t();do u b l e g et L en g t h O ;);i n l i n e L i n e:L i n e(i n t a,i n t b,i n t c,i n t d)(xl =a;y l =b;x2=c;y 2 二 d;)i n l i n e v o i d L i n e:p r i n t P o i n t()(co u t z,A:xl ”,/z y l en dl;co u t,B:”x2 z/,y 2 en dl;i n l i n e do u b l e L i n e:g et L en g t h O(do u b l e l en g t h;l en g t h =s qr t (x2-x1)*(x2-x1)+(y 2-y l)*(y 2-y l);r et u r n l en g t h;)v o i d m a i n O(L i n e l i n e(10,80,-10,12);l i n e.p r i n t P o i n t ();co u t l i n e.g et L en g t h O en dl;)第五章一、填空题1.常成员函数;2.常量成员函数(co n s t);3.co n s t二、单项选择题1.B;2,A;3.C;4.A;三、改错题1.s t a t i c i n t g et n()r et u r n n u m b er;错误静态成员函数,只允许访问静态成员变量,n u m b er 不是静态成员变量2.缺少n ewv o i d m a i n O(t es t *t w o 2=n ew t es t (4,5),n ew t es t (6,8);f o r(i=0;i 2;i+)del et e t w o i;)四、完成程序题 i n cl u de u s i n g n a m es p a ce s t d;cl a s s t es t(i n t x;p u b l i c:t es t (i n t a)(x=a;)i n t G et X()(r et u r n x;);v o i d m a i n O(i n t i;填空一,声明变量it es t *p,a 2 3=1,2,3,4,5,6);f o r(p=&a 0 0,i=0;i=6;i+,p+)填空 2,初始化 p,i(i f(p-a 0)%3=0)co u t en dl;co u t G et X()五、编程题1.声明复数的类,co m p l ex,使用友元函数a dd实现复数加法。t t i n cl u de u s i n g n a m es p a ce s t d;cl a s s C o m p l ex(p r i v a t e:do u b l e r ea l,i m a g e;p u b l i c:C o m p l ex()C o m p l ex(do u b l e a,do u b l e b)r ea l =a;);i m a g e=b;)v o i d s et R I(do u b l e a,do u b l e b)r ea l =a;i m a g e=b;)do u b l e g et R ea l()(r et u r n r ea l;)do u b l e g et l m a g eO(r et u r n i m a g e;)v o i d p r i n t ()(i f(i m a g e0)co u t 复数:r ea l +i m a g ez/iz/en dl;i f(i m a g e0)co u t 复数:r ea l -i m a g e i en dl;)f r i en d C o m p l ex a dd(C o m p l ex,C o m p l ex);声明友元函数C o m p l ex a dd(C o m p l ex cl,C o m p l ex c2)定义友元函数(C o m p l ex c3;c3.r ea l =cl.r ea l +c2.r ea l;访问 C o m p l ex 类中的私有成员c3.i m a g e=cl.i m a g e+c2.i m a g e;r et u r n c3;)v o i d m a i n O(C o m p l ex cl (19,0.864),c2,c3;c2.s et R I(90,125.0 12);c3=a dd(cl,c2);co u t 复数:;cl.p r i n t ();co u t 复数二:;c2.p r i n t ();co u t 相 加 后 c3.p r i n t();)2.例子5.8,114页例子不错;3.编写一个程序,该程序建立一个动态数组,为动态数组的元素赋值,显示动态数组的值并删除动态数组。#i n cl u de u s i n g n a m es p a ce s t d;v o i d m a i n()(i n t i,n,t em p=0;co u t 输入数组大小:;ci n n;do u b l e*a r r a y =n ew do u b l e n;用指针,动态申请数组大小co u t 给每个数组元素赋值:en dl;f o r(i=0;i n;i+)(co u t t em p;*(a r r a y+i)=t em p;给数组元素赋值)co u t X 动态数组个元素的值如下:“en dl;f o r(i=0;i n;i+)(co u t,a r r a y,z i =a r r a y i en dl;打印数组元素)del et e a r r a y;释放内存)4.定义一个D o g 类,它用静态数据成员D o g s 记录D o g 的个体数目,静态成员函数G et D o g s用来存取D o g s。设计并测试这个类。#i n cl u de u s i n g n a m es p a ce s t d;cl a s s D o g(p r i v a t e:s t a t i c i n t do g s;静态数据成员,记录D o g 的个体数目p u b l i c:D o g()v o i d s et D o g s(i n t a)(do g s =a;s t a t i c i n t g et D o g s O(r et u r n do g s;);i n t D o g :do g s =25;初始化静态数据成员v o i d m a i n()(co u t 未定义 D o g 类对象之前:x=D o g:g et D o g s ()en dl;/x 在产生对象之前即存在,输出25D o g a,b;co u t a 中 x:a.g et D o g s ()en dl;co u t ”b 中 x:b.g et D o g s()en dl;a.s et D o g s(360);co u t ”给对象a中的x 设置值后:en dl;co u t a 中 x:”a.g et D o g s()en dl;co u t b 中 x:b.g et D o g s()en dl;)第六章一、填空题L 单一继承;2.p r iv at e p r o t e c t e d p u bl ic二、单项选择l.A;2.A;3.A;4.D;三、改错题1 .类 d e r iv e d 和 bas e 中均没变量b,d e r iv e d 的构造函数中的m(b)错误;2 .D e r iv e d 类中重载s h o w。方法v o id S h o w()(B as e l:S h o w();B as e 2:S h o w();四、编程题1.设计一个基类,从基类派生圆柱,设计成员函数输出它们的面积和体积;#in c l u d e u s in g n am e s p ac e s t d;c l as s B as ic 基类(p r o t e c t e d:d o u bl e r;p u bl ic :B as ic()r =0;B as ic (d o u bl e a):r (a);c l as s C ir c u l ar :p u bl ic B as ic 从基类派生圆类(p r o t e c t e d:d o u bl e ar e a;p u bl ic :C ir c u l ar(d o u bl e a)(r =a;ar e a=ar e a=3.1 4 1 59 2 6*r *r;)d o u bl e g e t A r e a()返回圆面枳(r e t u r n ar e a;);c l as s C o l u m n :p u bl ic C ir c u l ar 从圆类派生圆柱类p r o t e c t e d:d o u bl e h;d o u bl e c u bag e;p u bl ic :C o l u m n(d o u bl e a,d o u bl e b):C ir c u l ar(a)h =b;c u bag e =g e t A r e aO *h;d o u bl e g e t C u bag e()返回圆柱体积函数(r e t u r n c u bag e;v o id m ain O(C ir c u l ar c ir c u l ar(4 5);C o l u m n c o l u m n(1 2,1 0);c o u t 圆的面积:c ir c u l ar.g e t A r e aO e n d l;c o u t“圆柱的体积:c o l u m n.g e t C u bag e ()e n d l;)3,定义一个线段类作为矩形的基类,基类有起点和终点坐标,有输出左边和长度以及线段和 x轴的夹角的成员函数。矩线段对象的两个坐标作为自己一条边的位置,它具有另外一条边,能输出矩形的4个顶点坐标。给出类的定义并用程序验证它们的功能。t t in c l u d e#in c l u d e u s in g n am e s p ac e s t d;c l as s P o in t 点类(p r o t e c t e d:d o u bl e x,y;p u bl ic :P o in t ()P o in t (d o u bl e a,d o u bl e b)(x =a;y =b;)d o u bl e g e t XO(r e t u r n x;d o u bl e g e t Y()r e t u r n y;);c l as s L in e(p r o t e c t e d:P o in t p l,p 2;P o in t 对象做成员d o u bl e l e n g t h,an g l e;p u bl ic:L in e(d o u bl e a,d o u bl e b,d o u bl e c,d o u bl e d):p l(a,b),p 2(c,d)用两对坐标初始化线段(y l-y 2)*(y l-y 2);(in it ();)L in e (P o in t a,P o in t b)用两个点的对象初始化线段(p l =a;p 2 =b;in it ();)v o id in it ()计算线段长度,以及和x轴的夹角的度数d o u bl e x l =p l.g e t X(),y l =p l.g e t Y();d o u bl e x 2 =p 2.g e t X(),y 2 =p 2.g e t Y();l e n g t h =s q r t(x l-x 2)*(x l-x 2)+an g l e =at an(y 2-y l)/(x 2-x l);an g l e =an g l e *1 8 0/3.1 4 1 59 2 653;)v o id p r in t XY()(c o u t,z(/z p l.g e t XO ,p l.g e t Y();C p 2.g e t XO ,p 2.g e t YO )e n d l;c l as s R e c t an g l e :p u bl ic L in e);v o id p r in t L e n g t h O(c o u t“线段长度:l e n g t h e n d l;)v o id p r in t A n g l e Oc o u t”与 x 轴的夹角:/z an g l e ,z ,z e n d l;)v o id p r in t P o in t()p r o t e c t e d:L in e *l in e;p u bl ic:R e c t an g l e(d o u bl e a,d o u bl e b,d o u bl e c,d o u bl e d,d o u bl ee,d o u bl e f,d o u bl e g,d o u bl e h):L in e (a,b,c,d)(l in e =n e w L in e (e,f,g,h);)R e c t an g l e (P o in t a,P o in t b,P o in t c,P o in