《C++语言基础教程》吕凤翥习题答案.docx
第一章习题一、 选择填空1. 下列各种高级语言中,( )是面向对象的程序设计语言。2. 下列各种高级语言中,( )是最早提出了对象的概念。 60; 67;3. 下述面向对象抽象的原理中,( )是不对的。A. 数据抽象;B. 行为共享;C.进化;D. 兼容;4. ( )不是面向对象系统所包含的要数。A. 重载; B. 对象;C. 类;D. 继承;5. 关于及C语言的关系的描述中,( )是错误的。A. C语言是的一个子集;B. C语言及是兼容的;C. 对C语言进行了一些改进;D. 和C语言都是面向对象的;6. 下面关于对象概念的描述中,( )是错误的。A.对象就是C语言中的结构变量;B.对象代表着正在创建的系统中的一个实体;C. 对象是一个状态和操作(或方法)的封装体;D.对象之间的信息传递是通过消息进行的;7. 下面关于类概念的描述中,( )是错误的。A.类是抽象数据类型的实现; B.类是具有共同行为的若干对象的统一描述体;C.类是创建对象的样板;D.类就是C语言中的结构类型;8. 对C语言作了很多改进,下列描述中( )使得C语言发生了质变,即从面向过程变成为面向对象。A.增加了一些新的运算符;B.允许函数重载,并允许设置缺省参数;C.规定函数说明必须用原型;D.引进了类和对象的概念;9. 按照标识符的要求,( )符号不能组成标识符。A.连接符;B. 下划线;C.大小写字母;D.数字字符;10. 下列符号中,( )不可作为分隔符。A.,;B.:.?;D.;二、判断下列描述的正确性,对者划,错者划×。1 引进了引用的概念,对编程带来了很多方便。2 允许使用友元,但是友元会破坏封装性。3 中使用了新的注释符(),C语言中注释符(/*/)不能在中使用。×4 中为了减轻使用者的负担,及C语言相比较中减少了一些运算符。×5 程序中,每条语句结束时都加一个分号(;)。6 中标识符内的大小写字母是没有区别的。×7 中不允许使用宏定义的方法定义符号常量,只能用关键字来定义符号常量。×8 在编写程序时,一定要注意采用人们习惯使用的书写格式,否则将会降低其可读性。9 是一种以编译方式实现的高级语言。10 在编译过程中,包含预处理过程、编译过程和连接过程,并且这三个过程的顺序是不能改变的。11 预处理过程是一般编译过程之后连接过程之前进行的。×12 源程序在编译过程中可能会出现一些错误信息,但在连接过程中将不会出现错误信息。×三、分析下列程序的输出结果1<><<""<<"n "2.<>>>a>>b;<<""<<a<<","<<""<<b<<<<""<<<<"n"假定,输入如下两个数据:8 51 :8 58533 <> m; 5;<<""<<d<<":"<<""<<c<<"n"5四、编译下列程序,改正所出现的各种错误信息,并分析输出结果:<<" a !"1<><<” a !”;输出结果: a !>>x; *x;<<"<<p<<n" x;>>x; *x;<<”<<p<<”n”;输出结果:3 95;<<""<<k<<"n"5;3;<<”<<k<<”n”;输出结果:8五、通过对第四题中三个程序的所出现问题的修改,回答下列问题:1. 从对第四题1题的修改中,总结出编程时应注意哪三个问题?2. 程序中所出现的变量是否都必须先说明才能引用?3. 使用和运算符<<输出字符串时应注意什么问题?4. 有些变量虽然说明了但是没有赋值,这时能否使用?5. 一个程序编译通过了并且运行后得到了输出结果,这个结果是否一定是正确的?第二章习题一、 选择填空1、 在16位机中,型字宽为( )字节。A2; B。 4;C。 6; D 82、 类型修饰符修饰( )类型是错误的。A ; B. ; ; D 3、 下列十六进制的整型数常数表示中,( )是错误的。A0; B. 0X1b; C. 2; D. 04 、下列型常量表示中,( )是错误的。 AE15; B. .35; C. 3E5; D. 355、下列字符常量表示中,( )是错误的。A. 105 ; B. *; C.4f; D. a6、下列字符串常量表示中, ( )是错误的。A."""""" B."!" C. "n" D. "0"7、下列变量名中,( )是合法的。; B. ; C. ; D. 8、在 a5=1,3,5;中,数组元素a1的值是( )。 A. 1; B. 0; C.3; D.29、在 b3=1,3,2,4,5,6,0;中a22的值是( )。 A.0; B. 5; C.6; D.210、下列给字符数组进行初始化中,( )是正确的。 A s1 =" B. s23="" C. s33=a,x,y; D. s423="",""11、在 3,*; 中,*p的值是( )。A. 变量a的地址值; B.无意义; C. 变量p的地址值;D.312、对于 *5;的描述,()是正确的。A. 是一个指向数组的指针,所指向的数组是5个型元素;B. 是一个指向某个数组中第5个元素的指针,该元素是型变量;C. 5表示某个数组的第5个元素的值;D. 是一个具有5个元素的指针数组,每个元素是一个型指针;13、下列关于指针的运算中,()是非法的。A 两个指针在一定条件下,可以进行相等或不等的运算;B 可以用一个空指针赋值给某个指针;C 一个指针可以加上两个整数之差;D 两个指针在一定条件下,可以相加。14、指针可以用来表示数组元素,下列表示中()是错误的。已知: a37;A. *(1)5; B. *(*3); C. *(*(1); D. *(00+2)15、下列表示引用的方法中,() 是正确的。已知: 10; A. ; B. 10; C. ; D. 16、下列各运算符中,( )可以作用于浮点数。A; B. %; C. >> D. &17、下列各运算符中,()不能作用于浮点数。A/; ; C.!; 18、下列各运算符中,()优先级最高。A. +(双目);B. *(单目); C. <=; D. *=19、下列各运算符中,()优先级最低。 A?:;B. |; C. ; D.!=20、下列各运算符中,()结合性从左到右。A. 三目;B. 赋值; C.比较; D.单目21、下列表达式中,()是非法的。已知: 5; 5.5;A. 3; B. b*; C.(a>b)+(b)%2); D. 22、下列表达式中,()是合法的。已知: 3.2; 3;A. m<<2; B. () C. *; D. 53.123、下列关于类型转换的描述中,()是错误的。A 在不同类型操作数组成的表达式中,其表达式类型一定是最高类型型;B 逗号表达式的类型是最后一个表达式的类型;C 赋值表达式的类型是左值的类型;D 在由底向高的类型转换中是保值映射。24、下列各表达式中,()有二义性。已知: a(5); b(6);A. >>3; B. ; (3); D. ( 3)二、 判断下列描述是否正确,对者划,错者划×。1、 任何字符常量及一个任意大小的整型数进行加减都是有意义的。×2、 转义序列表示法只能表示字符不能表示数字。3、 在命名标识符中,大小写字母是不加区别的。×4、 的程序中,对变量一定要先说明再使用,说明只要在使用之前就可以。5、 中数组元素的下标是从0开始,数组元素是连续存储在内存单元中的。6、 数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。×7、 枚举变量的取值受到该枚举变量所对应的枚举表中的枚举符的局限。8、 指针是用来存放某种变量的地址值的变量。这种变量的地址值也可以存放在某个变量中,存放某个指针的地址值的变量称为指向指针的指针,即二级指针。9、 引用是用来给某个变量以别名的变量。,对引用的操作,实质上就是对被引用的变量的操作。10、 运算符的优先级和结合性可以确定表达式的计算顺序。11、 在说明语句 中,的值和的值是相等的。12、 已知:表达式具有两用性。×13、 移位运算符在移位操作中,无论左移还是右移,所移出的空位一律补0;×14、 某个变量的类型高是指该变量被存放在内存中的高地址处。×15、 隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。×16、 类型定义是用来定义一些中所没有的新的类型。×三、 计算下列各表达式的值(下列各表达式是相互独立的,不考虑前面对后面的影响。)1、 已知 0150x2b;A. ;y; <<=3; >>=4.ABCDEF47389429496723810422、 已知(10)(5);A. ;*;3/2*(3-2);j; 1; 0.ABCDEF6501-161203、 已知: a(5)(3);计算下列表达式得值以及a和b的值。A.!;4*b;12>105; >2<1.ABCDEF0,5,31,5,33,1,315,10,48,8,31,5,34、 已知: d(5),*;A. ;B.*; *; .ABCD025005、 已知:1的码的值为49。A.3+2<<1+1;B.2*9|3<<1;C.53*2/6-3; D.8= =3<=2&5; E.!(3>5)2<6; F.6>=3+2-(0-7).ABCDEF2022-3011四、 按下列要求编写程序1 从键盘上输入两个型数,比较其大小,并输出显示其中小的。2 从键盘上输入一个型数,一个浮点型数比较其大小,并输出其中大的。3 输入一摄氏温度,编程输出华氏温度。已知:华氏温度转换为摄氏温度的计算公式如下:(32)*5/9其中,F表示华氏温度,C表示摄氏温度。 <<”华氏温度:”; >>f; (32)*5/9; <<” 摄氏温度:”<<c<<4 编程实现输入公里数,输出显示其英里数。已知:1英里=1.60934公里(用符号常量)。 1.60934; <<” 公里数:”; >>m; *m; <<”英里数:”<<I<<5 输入一个型数,将它的低4位(右4位)都置为1。 <<”输入一个整数:”; >>n; 15; <<”结果为:”<<m<<第三章习题一、 选择填空1. 预处理命令在程序中都是以( )开头的。A. * ; B. # ;C . :;D. / ;2. 文件包含命令中被包含的文件的扩转名( )。A.必须为;B.不能用;C .必须是;D.不一定是;3. 下列条件编译命令中<语句序列1><语句序列2>A.整常量表达式;B.任何标识符;C .任意表达式;D.被定义的宏名;4. 带参数的宏定义中,程序中引用宏定义的实参( )。A.只能是常量;B.只能是整型量;C .只能是整形表达式;D.可以是任意表达式;5. 下列( )是语句A. ;;17;C ;D. <<”n”;6. 下列循环的次数为( )。( i(0)0<=5)A.5;B.6;C .1;D.无限;7. 下列循环的次数是( )。( 0) -;A.0;B.1;C .5;D.无限;8. 下列循环的循环次数为( )。已知: i(5);(0);A.0;B.1;C .5;D.无限;9. 下列循环的循环体执行次数为( )。( i(0)(10)10 -) A.0;B.1;C .10;D.无限;10. 已知: ;下列语句中,( )是正确的。A. (a); 1; 2B. (a*a)1,2;3,4;C. (10) 5511. 下述关于循环体的描述中,( )是错误的。A. 循环体中可以出现语句和语句;B. 循环体中还可以出现循环语句;C. 循环体中不能出现语句;D. 循环体中可以出现开关语句。12. 下述关于语句的描述中,( )是正确的。A. 语句可在一个文件中随意转向;B. 语句后面要跟上一个他所转向的语句;C. 语句可以同时转向多条语句;D. 语句可以从一个循环体内转到循环体外。13. 下述关于语句的描述中,( )是正确的。A. 语句可用于循环体内,它将退出该重循环;B. 语句可用于开关语句中,它将退出开关语句。C. 语句可用于体内,它将退出语句;D. 语句在一个循环体内可以出现多次。14. 下述关于开关语句的描述中,( )是正确的。A. 开关语句中子句可以没有,也可以有一个;B. 开关语句中每个语句序列中必须有语句;C. 开关语句中子句只能放在最后;D. 开关语句中子句后面的表达式可以是整形表达式。15. 下列关于条件语句的描述中,()是错误的。A. 语句中只有一个子句;B. 语句中可以有多个 子句;C. 语句中体内不能是开关语句;D. 语句中的体中可以是循环语句。二、 判断下列描述是否正确,对者划,错者划×。 预处理命令是在进行编译时首先执行的,然后再进行正常编译。 宏定义命令是以分号结束的。× 带参数的宏定义只能有1至2个参数。× 文件包含命令所包含的文件是不受限制的。× 条件编译命令只在编译时才有作用。 预处理命令的主要作用是提高效率的。× 复合语句就是分程序。× 条件语句不能作为多路分支语句。× 开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句×10开关语句中的关键字,只能放在该语句的末尾,不能放在开头或中间。×11语句中必须有语句否则无法退出语句。×12循环语句的循环体至少执行一次。×13循环可以写成循环的格式。14循环是只有可以确定的循环次数时才可使用,否则不能用循环。×15只有循环的循环体可以是空语句,其他种循环的循环体不能用空语句。×16当循环体为空语句时,将说明该循环不作任何工作,只起延时作用。×17循环是可以嵌套的,一个循环体内可以包含另一种循环语句。18在多重循环中,内重循环的循环变量应用的次数比外重的多。19语句可以出现在各种循环体中。20语句只能出现在循环体中。三、 分析下列程序的输出结果。1. M 1.5 A(a) M*a x(5)(6);<<A()<<13.52. () (a)>(b)?(a):(b) m(1)(2)(0);()*10;<<q<<203.”f1” a(5);1(a);<<b<<f1文件内容如下: M(m) m*mf1( x) a(3); M();134. i(0);( =10) ;(31) ;<<i<<1475. i(1);( =7) ;( =3);<<”!n”;3 56. i(1)(2)(3)(10); (j)(k) 5;6;<<a<<(i<j)(3)1; (k)5;2;<<a<<677. 88;* * 1;(1<8)* *()=1;*(*()=1;(1<)*(*()= *(*(1)1)+ *(*(1);(0<8)(0<)7. 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1 1 7 21 35 35 21 7 18. x(5);(2) 1 -; 0;<<x<<(x>0);8. 31 -19. a(5)(6)(0)(0);(a) 5(b) 5; 6; 6: ;<<i<<”,“<<j<<1,210. ="1111W11" i; c;(2;(i)'0')(c) 'a'<<'i''1' 1()'1''0'); 9<<c; 'E': 'L' <<c; ;四、 按下列要求编程,并上机调试。 求100之内的自然数中奇数之和。 求100之内的自然数中被13整除的最大数。 求输入两个正整数的最大公约数和最小公倍数。 求下列分数序列的前15项之和。2/1,3/2,5/3,8/5,13/8,21/13,. . . 求i!(1,. . .,10)(即求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!之和) 求出11000之间的完全平方数。所谓完全平方数是指能够表示成为另一个证书的平方的整数。要求每行输出8个数。 输入4个型数,按其大小顺序输出。 有一函数如下所示: x (x<1) 5 (1x<10) 5 (x10)已知x值时,输出y值。 求一元二次方程20的解。讨论下述情况:(1)b2-40,有两个相等实根;(2)b2-4>0,有两个不等实根;(3) b2-4<0,有两个共轭复根;(4)0,不是二次方程。10编程输出如下图案。第四章习题一、 选择填空1. 当一个函数无返回值时,定义它时函数的类型应是( )A. ; B. 任意;C . ;D. 无;2. 在函数说明时,下列( )项是不必要的。A.函数的类型;B.函数参数类型和名次;C .函数名字;D.返回值表达式;3. 在函数的返回值类型及返回值表达式的类型的描述中,( )是错误的。A. 函数的返回值的类型是定义函数时确定的;B. 函数的返回值的类型就是返回值表达式的类型;C. 函数的返回值表达式的类型及函数返回值类型不同时,表达示类型应转换成函数返回值类型;D. 函数的返回值类型决定了返回值表达式的类型。4. 在一个被调用函数中,关于语句使用的描述,( )是错误的。A. 被调用函数中可以不用 语句;B. 被调用函数中可以使用多个语句;C. 被调用函数中,如果有返回值,就一定要有语句;D. 被调用函数中,一个语句可返回多个值给调用函数。5. 下列( )是引用调用A. 形参是指针,实参是地址值;B. 形参和实参都是变量;C. 形参是数组名,实参是数组名;D. 形参是引用,实参是变量。6. 在传值调用中,要求( )。A. 形参和实参类型任意,个数相等;B. 形参和实参类型都完全一致,个数相等;C. 形参和实参对应的类型一致,个数相等;D. 形参和实参对应的类型一致,个数任意。7. 在中,关于下列设置参数默认的描述中,( )是正确的。A. 不允许设置参数的默认值;B. 设置参数默认值只能在定义函数时设置;C. 设置参数默认值时,应该是先设置右边的再设置左边的;D. 设置参数默认值时,应该全部参数都设置;8. 重载函数在调用时选择的依据中,( )是错误的。A.参数个数;B.参数的类型;C .函数名字;D.函数的类型;9. 下列的标识符中,( )是文件级作用域的。A.函数形参;B.语句标号;C .外部静态类标识符;D.自动类标识符。10. 有一个 型变量,在程序中使用频度很高,最好定义为( )。;C ;11. 下列标识符中,( )不是局部变量。类;B.外部类;C 类;D.函数形参;12. 下列存储类标识符中,( )的可见性及存在性不一值。A. 外部类;B.自动类;C .内部静态类;D.寄存器类。13. 下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()合适。A.内联函数; B.重载函数;C .递归调用;D.嵌套调用。14. 采用函数重载的目的在于( )。A.实现共享.减少空间;C .提高速度;D.使用方便,提高可读性。15. 在将两个字符串连接起来组成一个字符串时,选用( )函数。二、 判断下列描述的正确性,对者划,错者划×。 在中,定义函数时必须给出函数的类型 在中,说明函数时要用函数原型,即定义函数时的函数头部分。 在中,所有函数在调用前都要说明。× 如果一个函数没有返回值,定义时需用说明。 在中,传址调用将被引用调用所代替。× 使用内联函数是以牺牲增大空间开销为代价的。 返回值类型、参数个数和类型都相同的函数也可以重载。× 在设置了参数默认值后,调用函数的对应实参就必须省略。× 计算函数参数顺序引起的二义性完全是由不同的编译系统决定的。 循环中,循环变量的作用域是该循环的循环体内。 语句标号的作用域是定义该语句标号的文件内。× 函数形参的作用域是该函数的函数体。 定义外部变量时,不用存储类说明符, 而说明外部变量时用它。 内部静态类变量及自动类变量作用域相同,但是生存期不同。 静态生存期的标识符的寿命是短的,而动态生存期的标识符的寿命是长的。× 重新定义的标识符在定义它的区域内是可见的,而及其同名的原标识符在此区域内是不可见的。但是,它是存在的。 静态类标识符在它的作用域之外是不存在的。× 所有的函数在定义它的程序中都是可见的。× 编译系统所提供的系统函数都被定义在他所对应的头文件中。 调用系统函数时,要先将该系统函数的原型说明所在的头文件包含进去。三、 分析下列程序的输出结果。1<> N 5 ( i(1)<) a; b(2);<<(3)<<1 5811142. <> ( b); x(20)(5); ( b) s;253<> f( j);( i(1)<=4)f(i); f( j) a(10); b(1);<<a<<”+”<<b<<”+”<<j<<”=”<<<<10;2 10+2+1=1320+2+2=2430+2+3=3540+2+4=464<> f( n) x(5); y(10);(n>0)<<x<<”,”<<y<< m(1);f(m);6,115<> ( a); s(0);( i(1)<=5)(i);<<”54321”<<s<< ( a) 1;b*; b;6<>(5,6);(7);<<x<<”,”<<y<<”,”<<z<< ( *c)6,6,67<> ( x, 8); a(5);<<”1=”<<(a)<<<<”2=”<<(a)<<<<”3=”<<(a)<< ( y)1=132=183=238<> N 6 f1( a); a(N);<<f1(a)<< f1( a)( =0)?1*f1(1);7209<> a(5)(8);<<”<<a<<”,“<<”<<b<<<<”<<a<<”,“<<”<<b<<588510<> 1( s) n; m; s=5,4,3,2,1,0;f1(3)=10;<<f1(3)<<1011. <> u(1998);(u);(u); ( x)<<x<< ( *x)<<x<< ( x)<<x<<u199812<> a(88.18);(a); b(a);(b); ( x)<<”():”<<x<< ( x)<<”():”<<x<<():88.18():97四、 按下列要求编程,并上机验证。 从键盘上输入15浮点数,求出其和几平均值。要求写出求和平均值的函数。 从键盘上输入10个型数,去掉重复的。降其剩余的由大到小排序输出。 给定某个年、月、日的值,例如,1998年4月7日。计算出这一天是该年的第几天。要求写出计算润年的函数和计算日期的函数。 写出一个函数,使从键盘上输入的一个字符串反序存放,并在主函数中输入和输出该字符串。 写出一个函数,要求将输入的十六进制数转换成十进制数。要求函数调用时,使用指针作函数形参。 编写两个函数:一个是将一个5位 型数转换成为每两个数字间加一个空格的空字符串;另一个是求出转换后的字符串的长度。由主函数输入型数,并输出转换后的字符串和长度。 输入5个学生4门功课的成绩,然后求出: A.每个学生的总分; B. 每门课程的平均分; C. 输出总分最高的学生的姓名和总分数。 使用递归调用方法将一个n位整数转换成字符串。 使用函数重载的方法定义两个重名函数,分别求出型数的两个点间距离和浮点数的两点间距离。 已知二维字符数组s5=“”,”,”,”;使用字符串处理函数,将该数组的4个字符串连接起来,组成一个字符串:。 编程求下式的值:n1234+10,其中1,2,3。编写函数时,设置参数n的默认值为2。 编一个程序验证哥德巴赫猜想:任何一个充分大的偶数(大于等于6)总可以表示成两个素数之和。要求编一个求素数()函数,它有一个型参数,当参数值为素数时返回1,否则返回0。第五章习题一、 选择填空1. 在下列关键字中,用以说明类中公有成员的是( )A. ; B. ;C. ;D. ;2. 下列的各类函数中,( )不是类的成员函数。A. 构造函数;B. 析构函数;C . 友元函数;D. 拷贝初始化构造函数;3. 作用域运算符的功能是( )。A. 标识作用域的级别的;B. 指出作用域的范围的;B. 给定作用域的大小的;D. 标识某个成员是属于哪个类的。4. ( )是不可能作为该类的成员的。A. 自身类对象的指针;B.自身类的对象;C.自身类对象的引用; D.另一个类的对象。5. ( )不是构造函数的特征A. 构造函数的函数名及类名相同;B. 构造函数可以重载;C. 构造函数可以设置缺省参数;D. 构造函数必须指定类型说明。6. ( )是析构函数的特征。A. 一个类中只能定义一个析构函数;B. 析构函数及类名不同;C. 析构函数的定义只能在类体内;D. 析构函数可以有各个或多个参数。7. 通常的拷贝初始化函数的参数是( )。E. 某个对象名;A. 某个对象的成员名;B. 某个对象的引用名;C. 某个对象的指针名;8. 关于成员函数特征的下述描述中,( )是错误的。D. 成员函数一般是内联函数;A. 成员函数可以重载;B. 成员函数可以设置参数的缺省值;C. 成员函数可以是静态的。9. 下述静态数据成员的特征中,( )是错误的。D. 说明静态数据成员时前边要加修饰符;A. 静态数据成员要在类体外进行初始化;B. 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符;C. 静态数据成员不是所有对象所共用的。10. 友元的作用( )。A. 提高程序的运用效率;B. 加强类的封装性;C. 实现数据的隐藏性;D. 增加成员函数的种类。 二、 判断下列描述的正确性,对者划,错者划×。 使用关键字定义的类中缺省的访问权限是私有()的。 作用域运算符(:)只能用来限定成员函数所属的类。 析构函数是一种函数体为空的成员函数。× 构造函数和析构函数都不能重载。× 说明或定义对象时,类名前面不需要加关键字。 对象成员的表示及结构变量成员表示相同,使用运算符.或->。 所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类外的函数对它们的访问都是非法的。× 某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。 可以在类的构造函数中对静态数据成员进行初始化。× 如果一个成员函数只存取一个类的静态数据成员,则可将该成员函数说明为静态成员函数。三、 分析下列程序的输出结果。1. A A();A( j); 0; <<” .n”;( j)<<” .n”; <<”<<a<<”<<b<<A (4,8);00 482. B B();B( j); A A();A( j);B c;( j)()( j) <<”<<a<<”<<b<<A m(7,9);793. 100; c1234;1044. A A( r); A a1(1000.0,0.035)2(768.0,0.028); <<(a1)<<”,”<<(a2)<<1035,789,5045. ()0; () 0; () =0; ( n); ( n); ( *m); 100; ( n) ( 0<) (i= ) 1; 0; ( n) (n) 1; (>=100) 0; 1; ( 0<) ii; ( 0<1)<<i<<”,”;(>0) <<1; ( *m) >2; ( 0<)>i;>i>>1;>>1; A; B;( 1<=8) (i); <<(5)<< ( 11<20) (j); C(B); 1 1,2,3,4,5,6,7,8 1 11,12,13,14,15,16,17,18,19 19,18,17,16,15,14,13,12,11四、 按下列要求编程。在一个程序中,实现如下要求:(1) 构造函数重载;(2) 成员函数设置缺省参数(3) 有一个友元函数(4) 有一个静态函数(5) 使用不同的构造函数创建不同对象。第六章习题一、 选择填空1. 已知一个类A,( )是指向类A成员函数的指针。假设类有三个公有成员: f1(), f2()和 a。A. A*p; B. A:*;C. A:*;D. A *;2. 运算符->* 的功能是( )。A. 用来表示指向对象指针对指向类成员指针的操作;B. 用来表示对象对指向类成员指针的操作;C. 用来表示指向对象指针对类成员的操作;D. 用来表示对象类成员的操作。3. 已知f1()是类A的公有成员函数,p是指向成员函数f1()的指针,采用( )是正确的。A. 1;B. 1;C. 1();D. 1();4. 已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,( )是正确的。A. A15;B. A1->5;C. A.*5;D. *A15。5. 已知:类A中一个成员函数说明如下: ();其中,A 的含意是( )A. 指向类A的指针为a;B. 将a的地址值赋给变量;C. a是类A的对象引用,用来作函数()的形参;D. 变量A及a按位相及作为函数()的参数。6. 下列关于对象数组的描述中,( )是错的。A. 对象数组的下标是从0开始的;B. 对象数组的数组名是一个常量指针;C. 对象数组的每个元素是同一个类的对象;D. 对象数组只能赋初值,而不能被赋值。7. 下列定义中,( )是定义指向数组的指针p。E. *p5;F. (*p)5;A. ( *)p5;B. *p ;8. 下列说明中, *; 应该是( )。A. 指向字符常量的指针;B. 指向字符的常量指针;C. 指向字符串常量的指针;D. 指向字符串的常量指针。9. 已知:()函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的。10. 关于运算符的下列描述中,( )是错的。A. 它可以用来动态创建对象和对象数组;B. 使用它创建的对象或对象数组可以使用运算符删除;C. 使用它创建对象时要调用构造函数;D. 使用它创建对象数组时必须指定初始值。 11. 关于运算符的下列描述中,( )是错的。A. 它必须用于返回的指针;B. 它也适用于空指针;C. 对一个指针可以使用多次该运算符;D. 指针名前只用一对方括号符,不管所删除数组的维数。 12. 具有转换函数功能的构造函数,应该是( )。A. 不带参数的构造函数;B. 带有一个参数的构造函数;C. 带有两个以上参数的构造函数;D. 缺省构造函数;二、 判断下列描述的正确性,对者划,错者划×。 指向对象的指针和指向类的成员的指针在表示形式上是不相同的。 已知:m