C++面向对象程序设计教程课后习题答案游洪跃ppt课件.ppt
经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用C+C+面向对象程序设计教程面向对象程序设计教程第第1 1章章 C+C+程序设计基础程序设计基础习题解答习题解答 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用一、选择题一、选择题1下列语句中,错误的是下列语句中,错误的是 。A)const int buffer=256;B)const int temp;C)const double*point;D)double*const pt=new double(5.5);解析:解析:修饰符修饰符const声明的常量只能被读取,该常量必须在声声明的常量只能被读取,该常量必须在声明时进行初始化,并且它的值在程序中不能改变。选项明时进行初始化,并且它的值在程序中不能改变。选项B)没)没有初始化,错误。选项有初始化,错误。选项C)定义了一个指向)定义了一个指向const double的指的指针,其意义为指针针,其意义为指针 point指向的变量不能通过指针指向的变量不能通过指针point来改来改变,变,D)中表示指针)中表示指针pt是常量指针,已在声明时进行了初始化。是常量指针,已在声明时进行了初始化。答案:答案:B经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2关于函数重载,下列叙述中错误的是关于函数重载,下列叙述中错误的是 。A)重载函数的函数名必须相同)重载函数的函数名必须相同B)重载函数必须在参数个数或类型上有所不同)重载函数必须在参数个数或类型上有所不同C)重载函数的返回值类型必须相同)重载函数的返回值类型必须相同D)重载函数的函数体可以有所不同)重载函数的函数体可以有所不同解析:解析:函数重载是用同一个函数名字在不同的参数类型或参函数重载是用同一个函数名字在不同的参数类型或参数个数上做类似的操作方作,它们的实现方法可以不同。所数个数上做类似的操作方作,它们的实现方法可以不同。所以说,重载函数的函数名必须相同,函数体可以有所不同。以说,重载函数的函数名必须相同,函数体可以有所不同。函数重载必须在参数类型或参数个数上不一样,不能依靠返函数重载必须在参数类型或参数个数上不一样,不能依靠返回值不一样来区分重载函数。回值不一样来区分重载函数。答案:答案:C经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3有以下程序:有以下程序:void Fun(int i,int j)cout i+j endl;/输出输出i+jvoid Fun(int i)cout i+endl;/输出输出i+int main()/主函数主函数main()int a=1;/定义变量定义变量iFun(a);/调用调用Fun()return 0;/返回值返回值0,返回操作系统返回操作系统该程序执行后输出的结果是该程序执行后输出的结果是 。A)1 B)2 C)3 D)4解析:解析:由于主函数中调用的由于主函数中调用的Fun()函数只有一个参数,故执行的是函数只有一个参数,故执行的是void Fun(int i)的版本,执行的版本,执行“cout i+endl;”时,由于是后缀时,由于是后缀“+”,所,所以先输出以先输出i的值的值1,再使,再使i加加1。答案:答案:A经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用二、编程题二、编程题 1编写一个编写一个C+程序,要求输出程序,要求输出“欢迎学习欢迎学习C+语言语言!”。参考程序参考程序:#include /编译预处理命令编译预处理命令using namespace std;/使用命名空间使用命名空间std int main()/主函数主函数main()cout 欢迎学习欢迎学习C+语言语言!endl;/用用C+的方法输出一行的方法输出一行system(PAUSE);/调用库函数调用库函数system(),输出提示信息,输出提示信息return 0;/返回值返回值,返回操作系统返回操作系统 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用*2编一个程序,用一个函数实现求编一个程序,用一个函数实现求n个整型数据的最小值。函数原型如下:个整型数据的最小值。函数原型如下:int Min(int a,int n)参考程序参考程序:#include /编译预处理命令编译预处理命令using namespace std;/使用命名空间使用命名空间std int Min(int a,int n)/求求n个整型数据的最小值个整型数据的最小值int m=a0,i;/临时变量临时变量for(i=1;i n;i+)/依次比较求最小值依次比较求最小值if(ai m)/如果如果ai更小更小m=ai;/ai为当前最小值为当前最小值 return m;/返回最小值返回最小值int main()/主函数主函数main()int a=1,2,3,4,5,6,7,8,9,-10,n=10;cout 最小值为最小值为 Min(a,n)endl;/输出最小值输出最小值system(PAUSE);/调用库函数调用库函数system(),输出提示信息,输出提示信息return 0;/返回值返回值,返回操作系统返回操作系统经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3求求2个数或个数或3个整数中的最大数,用两个同名函数实现,要求编写测试程序。个整数中的最大数,用两个同名函数实现,要求编写测试程序。参考程序参考程序:#include /编译预处理命令编译预处理命令using namespace std;/使用命名空间使用命名空间std int Max(int x,int y)/求求x,y的最大值的最大值return x y?x:y;/返回返回x,y的最大值的最大值int Max(int x,int y,int z)/求求x,y,z的最大值的最大值int m=x y?x:y;/x,y的最大值的最大值m =m z?m:z;/m,z的最大值的最大值return m;/返回返回x,y,z的最大值的最大值int main()/主函数主函数main()cout 2,3的最大值为的最大值为 Max(2,3)endl;cout 1,6,8的最大值为的最大值为 Max(1,6,8)endl;system(PAUSE);/调用库函数调用库函数system(),输出提示信息,输出提示信息return 0;/返回值返回值,返回操作系统返回操作系统经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用4用变量的引用作函数形参,实现交换两个整型变量,要求编写测试程序。用变量的引用作函数形参,实现交换两个整型变量,要求编写测试程序。参考程序参考程序:#include /编译预处理命令编译预处理命令using namespace std;/使用命名空间使用命名空间std void Swap(int&x,int&y)/交换交换x,y的值的值int t=x;x=y;y=t;/循环赋值交换循环赋值交换x,y的值的值int main()/主函数主函数main()int x=1,y=6;cout 交换前交换前:x ,y endl;Swap(x,y);cout 交换后交换后:x ,y endl;system(PAUSE);/调用库函数调用库函数system(),输出系统提示信息,输出系统提示信息return 0;/返回值返回值,返回操作系统返回操作系统经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用*5编一个程序,用同一个函数名对编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可个数据进行从小到大排序,数据类型可以是整型、单精度实型、双精度实型,用重载函数实现。以是整型、单精度实型、双精度实型,用重载函数实现。参考程序参考程序:#include /编译预处理命令编译预处理命令using namespace std;/使用命名空间使用命名空间std void Sort(int a,int n)/对对a0.an-1进行排序进行排序int tem,i,j;/定义变量定义变量for(i=0;i n-1;i+)for(j=i+1;j aj)/ai比比aj更大更大tem=ai;ai=aj;aj=tem;经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用*5编一个程序,用同一个函数名对编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可个数据进行从小到大排序,数据类型可以是整型、单精度实型、双精度实型,用重载函数实现。以是整型、单精度实型、双精度实型,用重载函数实现。参考程序参考程序:void Sort(float a,int n)/对对a0.an-1进行排序进行排序float tem;/临时变量临时变量int i,j;/定义变量定义变量for(i=0;i n-1;i+)for(j=i+1;j aj)/ai比比aj更大更大tem=ai;ai=aj;aj=tem;经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用*5编一个程序,用同一个函数名对编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可个数据进行从小到大排序,数据类型可以是整型、单精度实型、双精度实型,用重载函数实现。以是整型、单精度实型、双精度实型,用重载函数实现。参考程序参考程序:void Sort(double a,int n)/对对a0.an-1进行排序进行排序double tem;/临时变量临时变量int i,j;/定义变量定义变量for(i=0;i n-1;i+)for(j=i+1;j aj)/ai比比aj更大更大tem=ai;ai=aj;aj=tem;经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用*5编一个程序,用同一个函数名对编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可个数据进行从小到大排序,数据类型可以是整型、单精度实型、双精度实型,用重载函数实现。以是整型、单精度实型、双精度实型,用重载函数实现。参考程序参考程序:int main()/主函数主函数main()int a=1,3,2,5,6,9,0,6;/定义定义afloat b=1.6,3.3,2.8,5.6,6.8,9.6,0.6,6.8;/定义定义bdouble c=1.2,3.1,2.6,5.8,6.8,9.8,0.8,6.2;/定义定义cint i,n=8;/定义变量定义变量Sort(a,n);/对对a排序排序cout a:;/输出提示输出提示for(i=0;i n;i+)cout ai ;/输出输出aicout endl;/换行换行经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用*5编一个程序,用同一个函数名对编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可个数据进行从小到大排序,数据类型可以是整型、单精度实型、双精度实型,用重载函数实现。以是整型、单精度实型、双精度实型,用重载函数实现。参考程序参考程序:Sort(b,n);/对对b排序排序cout b:;/输出提示输出提示for(i=0;i n;i+)cout bi ;/输出输出bicout endl;/换行换行Sort(c,n);/对对c排序排序cout c:;/输出提示输出提示for(i=0;i n;i+)cout ci ;/输出输出cicout endl;/换行换行system(PAUSE);/调用库函数调用库函数system(),输出系统提示信息,输出系统提示信息return 0;/返回值返回值,返回操作系统返回操作系统经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用C+C+面向对象程序设计教程面向对象程序设计教程第第2 2章章 类和对象类和对象习题解答习题解答 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用一、选择题一、选择题1下列选项中,不属于面向对象程序设计特征的是下列选项中,不属于面向对象程序设计特征的是 。A)继承性)继承性B)多态性)多态性C)类比性)类比性D)封装性)封装性解析:解析:封装性、继承性和多态性是面向对象思想的封装性、继承性和多态性是面向对象思想的3个主要特征。个主要特征。封装性指将数据和算法捆绑成一个整体,这个整体就是对象,描封装性指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部。继承性是指一种事物保留了另一述对象的数据被封装在其内部。继承性是指一种事物保留了另一种事物的全部特征,并且具有自身的独有特征。多态性主要指当种事物的全部特征,并且具有自身的独有特征。多态性主要指当多个事物继承自一种事物时,同一操作在它们之间表现出不同的多个事物继承自一种事物时,同一操作在它们之间表现出不同的行为。行为。答案:答案:C经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2在面向对象方法中,实现信息隐蔽是依靠在面向对象方法中,实现信息隐蔽是依靠 。A)对象的继承)对象的继承B)对象的多态)对象的多态C)对象的封装)对象的封装D)对象的分类)对象的分类解析:解析:在面向对象方法中,封装性是指将数据和算法捆绑成一个在面向对象方法中,封装性是指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在内部,只可整体,这个整体就是对象,描述对象的数据被封装在内部,只可以通过对象提供的算法来进行操作,从而实现信息隐蔽。以通过对象提供的算法来进行操作,从而实现信息隐蔽。答案:答案:C经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3下列关于类和对象的叙述中,错误的是下列关于类和对象的叙述中,错误的是 。A)一个类只能有一个对象)一个类只能有一个对象B)对象是类的具体实例)对象是类的具体实例C)类是某一类对象的抽象)类是某一类对象的抽象D)类和对象的关系就像数据类型和变量的关系)类和对象的关系就像数据类型和变量的关系解析:解析:在面向对象设计中,类是同一种对象的抽象,而不只是对在面向对象设计中,类是同一种对象的抽象,而不只是对一个对象的抽象,一个类具有多个对象。对象是类的具体实例。一个对象的抽象,一个类具有多个对象。对象是类的具体实例。就像数据类型和变量的关系,一种数据类型可以定义多个变量,就像数据类型和变量的关系,一种数据类型可以定义多个变量,一个变量却只能是一种数据类型。一个变量却只能是一种数据类型。答案:答案:A经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用4有以下类声明:有以下类声明:class MyClass int num;则则MyClass类的成员类的成员num是是 。A)公有数据成员)公有数据成员B)公有成员函数)公有成员函数C)私有数据成员)私有数据成员D)私有成员函数)私有成员函数解析:解析:函数声明时,函数名后必须带函数声明时,函数名后必须带“”,所以,所以num是数据是数据成员。在类中,当没有用访问权限标识符标识时,默认为私有权成员。在类中,当没有用访问权限标识符标识时,默认为私有权限。限。答案:答案:C经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用5在下列函数原型中,可以作为类在下列函数原型中,可以作为类AA构造函数的是构造函数的是 。A)void AA(int);B)int AA();C)AA(int)const D)AA(int);解析:解析:构造函数用于初始纶对象的数据成员,没有返回类型,而构造函数用于初始纶对象的数据成员,没有返回类型,而且由于常成员函数不能更新对象的数据成员,所以常成员函数也且由于常成员函数不能更新对象的数据成员,所以常成员函数也不可能作为构造函数。不可能作为构造函数。答案:答案:D经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用6下列关于下列关于this指针的叙述中,正确的是指针的叙述中,正确的是 。A)任何与类相关的函数都有)任何与类相关的函数都有this指针指针B)类的成员函数都有)类的成员函数都有this指针指针C)类的友元函数都有)类的友元函数都有this指针指针D)类的非静态成员函数才有)类的非静态成员函数才有this指针指针解析:解析:this指针只能在类的成员函数中使用,它指向该成员函数被指针只能在类的成员函数中使用,它指向该成员函数被调用的对象。但是有两种与类相关的函数都没有调用的对象。但是有两种与类相关的函数都没有this指针,即静态指针,即静态成员函数和友元函数。成员函数和友元函数。答案:答案:D经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用7有以下程序:有以下程序:class Testprivate:static int n;/静态成员静态成员public:Test()n+=2;/构造函数构造函数Test()n-=3;/析构函数析构函数static int GetNum()return n;/返回返回n;int Test:n=1;/初始化初始化nint main()/主函数主函数main()Test*p=new Test;/定义指针定义指针pdelete p;/释放释放p指向的动太对象指向的动太对象cout n=Test:GetNum()endl;/输出输出nreturn 0;/返回值返回值0,返回操作系统返回操作系统执行后的输出结果是执行后的输出结果是 。A)n=0 B)n=1 C)n=2 D)n=3解析:解析:静态数据成员初始化的值为静态数据成员初始化的值为1,执行,执行“Test*p=new Test”将调用构将调用构造函数,执行造函数,执行“n+=2;”,n的值变为的值变为3,执行,执行“delete p;”时将调用析构函数,时将调用析构函数,执行执行“n-=3;”,n的值减的值减3,变为,变为0。答案:答案:A经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用8有以下程序:有以下程序:class MyClassprivate:int n;/数据成员数据成员public:MyClass(int k):n(k)/构造函数构造函数int Get()return n;/返回返回nint Get()const return n+1;/返回返回n+1;int main()/主函数主函数main()MyClass a(5);/定义对象定义对象aconst MyClass b(6);/定义对象定义对象bcout a.Get()b.Get()endl;/输出信息输出信息 return 0;/返回值返回值0,返回操作系统返回操作系统运行后的输出结果是运行后的输出结果是 。A)55 B)57 C)75 D)77解析:解析:const是一个判断重载的标志,是一个判断重载的标志,a.Get调用调用“int Get()return n;”,故得到故得到5,而常对象,而常对象b执行执行 b.Get”时,调用常成员函数时,调用常成员函数“int Get()const return n+1;”,故得到,故得到6+1=7。答案:答案:B经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用9由于常对象不能被更新,因此由于常对象不能被更新,因此 。A)通过常对象只能调用它的常成员函数)通过常对象只能调用它的常成员函数B)通过常对象只能调用静态成员函数)通过常对象只能调用静态成员函数C)常对象的成员都是常成员)常对象的成员都是常成员D)通过常对象可以调用任何不改变对象值的成员函数)通过常对象可以调用任何不改变对象值的成员函数解析:解析:通过常对象只能调用类中的常成员函数,而不能调用类中的其他成员通过常对象只能调用类中的常成员函数,而不能调用类中的其他成员函数。函数。答案:答案:A经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用10下列情况中,不会调用复制构造函数的是下列情况中,不会调用复制构造函数的是 。A)用一个对象去初始化同一类的另一个新对象时)用一个对象去初始化同一类的另一个新对象时B)将类的一个对象赋予该类的另一个对象时)将类的一个对象赋予该类的另一个对象时C)函数的形参是类的对象,调用函数进行形参和实参结合时)函数的形参是类的对象,调用函数进行形参和实参结合时D)函数的返回值是类的对象的引用,函数执行返回调用时)函数的返回值是类的对象的引用,函数执行返回调用时解析:解析:只要在程序的执行中,需要用一个对象来初始化另一个对象,都要调只要在程序的执行中,需要用一个对象来初始化另一个对象,都要调用复制构造函数,包括用复制构造函数,包括A、B、C三种情况。三种情况。答案:答案:D经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用11以下关键字不能用来声明类的访问权限的是以下关键字不能用来声明类的访问权限的是 。A)public B)static C)protected D)private解析:解析:类的访问权限有三种:公有、私有、保护,关键字分别是类的访问权限有三种:公有、私有、保护,关键字分别是public,private,protected,。static用于静态成员的声明。用于静态成员的声明。答案:答案:B经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用12有以下程序:有以下程序:class MyClasspublic:MyClass()cout A;/无参构造函数无参构造函数MyClass(char c)cout c;/带参构造函数带参构造函数MyClass()cout B;/析构函数析构函数;int main()/主函数主函数main()MyClass a,*p;/定义变量定义变量p=new MyClass(X);/分配动态空间分配动态空间delete p;/释放动态空间释放动态空间cout endl;/换行换行 return 0;/返回值返回值0,返回操作系统返回操作系统执行这个程序,屏幕上将显示输出执行这个程序,屏幕上将显示输出 。A)ABX B)ABXB C)ABXB D)AXBB解析:解析:定义对象定义对象a时,调用一次构造函数时,调用一次构造函数“MyClass()cout A;”,但,但定义对象指针定义对象指针p时不调用构造函数;使用时不调用构造函数;使用new动态创建对象时,根据参数情况动态创建对象时,根据参数情况调用调用“MyClass(char c)cout c;”,输出,输出X;执行;执行“delete p;”时,需要时,需要调用一次析构函数,输出调用一次析构函数,输出B;最后主函数结束时,对象最后主函数结束时,对象a调用一次析构函数,调用一次析构函数,输出输出B。答案:答案:D经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用13有以下程序:有以下程序:class Testpublic:static int a;/静态成员静态成员void Init()a=1;/初始化函数初始化函数Test(int a=6)Init();a+;/构造函数构造函数;int Test:a=0;/初始化初始化aTest obj;/定义全局对象定义全局对象int main()/主函数主函数main()cout obj.a endl;/输出输出areturn 0;/返回值返回值0,返回操作系统返回操作系统运行时输出的结果是运行时输出的结果是 。A)0 B)1 C)2 D)3解析:解析:首先初始化静态数据成员首先初始化静态数据成员a为为0,然后在定义全局对象,然后在定义全局对象obj时调用构造函时调用构造函数。这时有两个数。这时有两个a,一个是,一个是“Test(int a=6)Init();a+;”函数中的局部变量函数中的局部变量a,另一个是静态数据成员,另一个是静态数据成员a,需要靠作用域来区分。在执行,需要靠作用域来区分。在执行Init()时,由于离开时,由于离开了构造函数了构造函数“Test(int a=6)Init();a+;”的作用域,的作用域,Init()里的里的a为静态数据为静态数据成员,这时静态数据成员成员,这时静态数据成员a赋值为赋值为1;之后回到构造函数执行;之后回到构造函数执行a+,这个,这个a为为“Test(int a=6)Init();a+;”中的中的a,值变为,值变为7,但当构造函数执行完毕后,但当构造函数执行完毕后,该局部变量该局部变量a随之消失,与对象无关。随之消失,与对象无关。obj.a调用的是静态数据成员,结果为调用的是静态数据成员,结果为1。答案:答案:B经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用14有以下程序:有以下程序:class Testprivate:long x;/私有数据成员私有数据成员public:Test(long a):x(a)/构造函数构造函数friend long Fun(Test s);/友元友元;long Fun(Test s)if(s.x=1)return 1;/递归结束递归结束else return s.x*Fun(Test(s.x-1);/递归调用递归调用int main()/主函数主函数main()int sum=0;/定义变量定义变量for(int i=0;i 6;i+)sum+=Fun(Test(i);/累加求和累加求和cout sum endl;/输出输出sum return 0;/返回值返回值0,返回操作系统返回操作系统运行后的输出结果是运行后的输出结果是 。A)120 B)16 C)154 D)34解析:解析:友元函数友元函数Fun()参数表中的对象在初始化时需执行构造函数参数表中的对象在初始化时需执行构造函数“Test:Test(long a)”,调用过程为:先调用构造函数,调用过程为:先调用构造函数Test(i),使,使Test中中x的值为的值为i,再通过友元函数直接访问,再通过友元函数直接访问Test.x,执行,执行Fun()中的语句,可得到:中的语句,可得到:Fun(Test(0)=1,Fun(Test(1)=1,Fun(Test(2)=2*1,Fun(Test3)=3*2*1=6,Fun(Test(4)=4*3*2*1=24,Fun(Test(5)=5*4*3*2*1=120,sum=1+1+2+6+24+120=154。答案:答案:C经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用15有以下程序:有以下程序:class Testprivate:int a;/数据成员数据成员public:Test()cout 无参构造函数无参构造函数 endl;/无参构造函数无参构造函数Test(int a)cout a endl;/带参构造函数带参构造函数Test(const Test©):a(copy.a)/复制构造函数复制构造函数 cout 复制构造函数复制构造函数 endl;Test()cout 析构函数析构函数 endl;/析构函数析构函数;int main()/主函数主函数main()Test a(3);/定义对象定义对象 return 0;/返回值返回值0,返回操作系统返回操作系统运行时的输出结果是运行时的输出结果是 。A)3 B)无参构造函数)无参构造函数C)复制构造函数)复制构造函数D)3 析构函数析构函数 析构函数析构函数 析构函数析构函数解析:解析:创建对象创建对象a时带有参数时带有参数3,故调用构造函数,故调用构造函数Test(int a),输出,输出3并换行;程并换行;程序结束时调用析构函数序结束时调用析构函数Test(),输出,输出“析构函数析构函数”并换行。并换行。答案:答案:D 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用16有以下程序:有以下程序:class MyClassprivate:int n;/数据成员数据成员public:MyClass(int m):n(m)/构造函数构造函数void Print()const cout const:n=n ;/常成员函数常成员函数void Print()cout n=n ;/非常成员函数非常成员函数;int main()/主函数主函数main()const MyClass obj1(10);/常对象常对象MyClass obj2(20);/非常对象非常对象obj1.Print();/输出信息输出信息obj2.Print();/输出信息输出信息cout endl;/换行换行 return 0;/返回值返回值0,返回操作系统返回操作系统程序的输出结果是程序的输出结果是 。A)n=10 const:n=20B)const:n=10 const:n=20C)const:n=10 n=20D)n=10 n=20解析:解析:根据根据const修饰符选择对应的构造函数,修饰符选择对应的构造函数,objl为常对象,调用常成员函数,为常对象,调用常成员函数,输出输出“const:n=10”,obj2为一般对象,调用优先调用非常成员函数,输出为一般对象,调用优先调用非常成员函数,输出“n=