第 1 页:选择题 |
第 5 页:程序改错题 |
第 6 页:综合应用题 |
第 7 页:参考答案 |
21.B。【解析】voidf(int*X,int&。y);第一个参数需要取值,第二个参数需要取地址,所以为v1为取值,&Lv2为取址。
22.C。【解析】应为“staticconstintval一5;”,只有静态常量才可以初始化。
23.D。【解析】简单类之间继承关系的调用,按照通常做法便可以得到答案。center.get()函数调用后,3和4的和被返回接着再调用Circle类的radius成员交量5相加后得到12。
24.A。【解析】C++不仅可以对运算符进行重载,还可以重载类型转换符,函数声明的形式勾operator类型符()const。
25.C。【解析】函数返回类型是double型,则T1为double型,T2为int型才符合函数模板的定义。
26.D。【解析]setw(6)将输出宽度设为6,如果位数不够则在最左边补齐,因此该项输出一定不会与其他三项一致。
27.A。【解析】析构函数不能被重载,因为它的函数中不带有任何参数,也没有任何返回值,函数只有一个版本,即~类名(){}。
28.B。【解析】构造函数没有返回值,虽然叫函数但是它没有任何返回值,包括void型都不是,官方叫法为“构造器”。
29.A。【解析]PAT(*ad){3);该表达式表示一个指向类PAT的数组的指针,只是声明了该指针,而并没有进行实例化对象,因此该语句运行时并不会调用构造函数。
30.C。【解析]Derived2继承Base的方式为protected,则Base的public成员只能在Base内访问。
31.D。【解析】多继承构造函数执行的顺序为继承时的顺序。所以答案为D。Derived(inta,intb,intC,intd):Basel(b),Base2(a),bl(d),b2(c)的含义是:构造函数Basel的参数值为b,构造函数Base2的参数值为a。成员变量b1,b2的值分别为d、C。
32.B。【解析】本题中需要注意的是虚函数的定义:指向基类的指针在操作它的多态类对象时,会根据不同的类对象,调用其相应的函数,这个函数就是虚函数。所以P->functionl();会指向实现类Derived,而P->function2()则会指向Base。
33.C。【解析】该题考查了C++模板类和+运算符重载的知识,3+b1时,程序不能将b1转化为整型,所以编译会出错。
34.C。【解析】输入流要打开的文件不存在,则会自动建立该文件,而输出流要打开的文件不存在,则会报错,而不会新建一个文件。
35.B。【解析】eonst函数只能被eonst对象调用,a.get()函数调用的返回值是3,而b.get()调用的返回值是8。
36.A。【解析】该题考查了函数参数传递的两种方式:引用传递和值传递。引用传递时X和Y会交换,而传值时二者不交换,因此选10。
37.C。【解析】每调用一次get函数时,对新的类A对象进行一次实例化,调用一次构造函数,类A的静态成员变量b便加1。
38.D。【解析】简单类之间继承关系的调用,按照通常做法便可以得到答案。center.get()函数调用后,3和4的和被返回,接着再调用Circle类的radius成员变量5相加后得到12。
39.A。【解析】C++不仅可以对运算符进行重载,还可以重载类型转换符,函数声明的形式为:operator类型符()const。
40.C。【解析】函数返回类型是double型,则T1为double型,T2为int型才符合函数模板的定义。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |