C++在线作业答案,完全正确中南大学在线测试




(一) 单选题
1. 设变量m,n,a,b,c,d均为0,执行(m = a==b)||(n=c==d)后,m,n的值是( )。

(A) 0,0
(B) 0,1
(C) 1,0
(D) 1,1



参考答案:
(C)
没有详解信息!
2. 下列不合法的变量名为( )。

(A) float
(B) A_int1
(C) name_1
(D) name0



参考答案:
(A)
没有详解信息!
3. 有语句int x=3,y=4,z=5;则下面表达式中值为0的是( )。

(A) ’x’&&’y’
(B) x<=y
(C) x||y+z&&y-z
(D) !((x


参考答案:
(D)
没有详解信息!
4. 运算符+、=、%、<=中,优先级最高的运算符是( )。

(A) +
(B) =
(C) %
(D) <=



参考答案:
(C)
没有详解信息!
5. 如果有以下语句:int a,b; char m,n; cin>>a>>b>>m>>n;则下列输入数据的方式中正确的是( )。

(A) 10,20,X,Y
(B) 1020 XY
(C) 10 20 X Y
(D) 10、20、X、Y



参考答案:
(C)
没有详解信息!
6. 表达式18/4*sqrt(4.0)/8值的数据类型为( )。

(A) int
(B) float
(C) double
(D) 不确定



参考答案:
(C)
没有详解信息!
7. 已知a=4,b=6,c=8,d=9,则"(a++,b>a++&&c
(A) 9
(B) 6
(C) 10
(D) 0



参考答案:
(D)
没有详解信息!
8. 下列标识符作为变量名称,( )是合法的。

(A) goto (B) Student (C) 123 (D) k-ld



参考答案:
(B)
没有详解信息!
9. 设a为5,执行下列代码后,b的值不为2的是( )。

(A) b = a/2
(B) b = 6-(--a)
(C) b = a%2
(D) b = a < 3 ? 3: 2



参考答案:
(C)
没有详解信息!
10. C++语言中while和do-while循环的主要区别是( )。

(A) do-while的循环体至少无条件执行一次
(B) while的循环控制条件比do-while的 循环控制条件少
(C) do-while允许从外部转到循环体内
(D) do-while的循环体不能是复合语句



参考答案:
(A)
没有详解信息!
11. 下列字符列中,可以作为"字符串常量"的是( )。

(A) ABC
(B) ″xyz″
(C) ′uvw′
(D) ′a′



参考答案:
(B)
没有详解信息!
12. 字符串"vm\x43\\\np\102q"的长度是( )。

(A) 8
(B) 10
(C) 17
(D) 16



参考答案:
(A)
没有详解信息!
13. 以下关于循环体的描述中,( )是错误的。

(A) 循环体中可以出现break语句和continue语句
(B) 循环体中还可以出现循环语句
(C) 循环体中不能出现goto语句
(D) 循环体中可以出现switch语句



参考答案:
(C)
没有详解信息!
14. 面向对象的( )是一种信息隐蔽技术,目的在于将对象的使用者与设计者分开。不允许使用者直接存取对

象的属性,只能通过有限的接口与对象发生联系。

(A) 多态性
(B) 封装性
(C) 继承性
(D) 重用性



参考答案:
(B)
没有详解信息!
15. 下列说法正确的是( )。

(A) cout<<"\n"是一个语句,它能在屏幕上显示"\n"
(B) \68代表的是字符D。
(C) 1E+10的写法正确,它表示整型常量。
(D) 0x10相当于020。



参考答案:
(D)
没有详解信息!
16. 假定变量x定义为“int x=5;”,要使rx成为x的引用(别名),rx应定义为( )。

(A) int rx=x;
(B) int rx=&x;
(C) int *rx=&x;
(D) int &rx=x ;



参考答案:
(D)
没有详解信息!
17. for语句能够被改写为( )语句。

(A) 复合
(B) while
(C) if
(D) switch



参考答案:
(B)
没有详解信息!
18. 下列关于条件语句的描述中,( )是错误的。

(A) if语句中只有一个else子句
(B) if语句中可以有多个else if子句
(C) if语句中if体内不能是switch语句
(D) if语句的if体内可以是循环语句



参考答案:
(C)
没有详解信息!
19. 对跳转语句的说法下面不正确的是( )。

(A) 用户可以指定中断的位置
(B) 用户可以指定转移的位置
(C) break语句可以跳出本循环
(D) continue语句可以结束本次循环



参考答案:
(B)
没有详解信息!
20. 下列数据类型不是C++语言基本数据类型的是( )。

(A) 字符型
(B) 整型
(C) 实型
(D) 数组



参考答案:
(D)
没有详解信息!
21. 下列for循环的循环体执行次数为( )。for (int I=0,j=10;I=j=10;I++,j--)

(A) 0
(B) 1
(C) 10
(D) 无限



参考答案:
(D)
没有详解信息!
22. 下面表达式正确的是( )。

(A) 4.1/2
(B) 3.2%3
(C) 43/26==1 结果为1
(D) 70/20 结果为3.5



参考答案:
(C)
没有详解信息!
23. 下列while循环的次数是。while (int I=0) I--; ( )

(A) 0
(B) 1
(C) 5
(D) 无限



参考答案:
(A)
没有详解信息!
24. 下列for循环的次数为( )。for (int I=0,x=0;!x && I<=5;I++)

(A) 5 (B) 6 (C) 1 (D) 无限





参考答案:
(D)
没有详解信息!
25. 循环体至少被执行一次的语句为( )。

(A) for循环
(B) do…while循环
(C) while循环
(D) switch语句



参考答案:
(B)
没有详解信息!
26. C++的合法注释是( )。

(A) /*This is a C program/*
(B) // This is a C program
(C) This is a C program
(D) / *This is a C program//



参考答案:
(B)
没有详解信息!
27. 下面循环体的执行次数为( )。 for(int a=0,b=5;a<=b+1;a+=2,b--) cout<
(A) 3
(B) 2
(C) 1
(D) 0



参考答

案:
(A)
没有详解信息!
28. 以下关于do-while语句的叙述正确的是( )。

(A) 不能使用do-while语句构成循环
(B) do-while语句构成的循环必须用break语句才能退出
(C) do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
(D) do-while语句构成的循环,当while语句中的表达式值为零时结束循环



参考答案:
(D)
没有详解信息!
29. 选择出合法的if语句(设有int x,a,b,c;)。( )

(A) if (a==b) x++;
(B) if (a=(C) if (a<>b) x++;
(D) if (a=>b) x++;



参考答案:
(A)
没有详解信息!
30. 下面有关for循环的正确描述是( )。

(A) for循环只能用语循环次数已经确定的情况
(B) for循环是先执行循环体语句,后判断表达式
(C) 在for循环语句中,不能用break语句跳出循环体
(D) for循环体语句中,可以包含多条语句,但要用花括号括起来



参考答案:
(D)
没有详解信息!
31. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系。( )

(A) 缩排位置相同的if
(B) 在其之前未配对的if
(C) 在其之前未配对的最近的if
(D) 同一行上的if



参考答案:
(C)
没有详解信息!
32. 下面的( )均是C语言的整型常量。

(A) 0xffff 和 611
(B) 01b 和 0xa1
(C) 986.012 和 0667
(D) 2e4 和 0x5



参考答案:
(A)
没有详解信息!
33. 以下不正确的是( )。

(A) 语句for(i=0;;i++)表示无限循环
(B) for(;;)表示无限循环
(C) for()也表示无限循环
(D) while(1)表示无限循环



参考答案:
(C)
没有详解信息!
34. 关于逻辑运算符的说法正确的是( )。

(A) 它们都是双目运算符,优先级相同
(B) 语句“int a=0,c=1,b;b=a&&c++;” 执行后,c 的值为2
(C) 语句“int a=1,c=1,b;b=a||c++;” 执行后,c 的值为2
(D) 语句“int a=1,c=1,b;b=a&&c++;” 执行后,c 的值为2



参考答案:
(D)
没有详解信息!
35. C++语言中语句的结束符是( )。

(A) ,
(B) ;
(C) 。
(D) 、



参考答案:
(B)
没有详解信息!
36. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是( )。

(A) 0 (B) 语法错 (C) 1 (D) 假



参考答案:
(C)
没有详解信息!
37. 在C++语言中,080是( )。

(A) 八进制数
(B) 十进制数
(C) 十六进制数
(D) 非法数



参考答案:
(D)
没有详解信息!
38. 在C++语言中,( )的陈述是正确的。

(A) 能使用关键字并区分大小写
(B) 能使用关键字并不区分大小写
(C) 不能使用关键字并区分大小写
(D) 不能使用关键字并不

区分大小写



参考答案:
(A)
没有详解信息!
39. 下述关于break语句的描述中,( )是不正确的。

(A) break语句可用于循环体内,它将退出该重循环
(B) break语句可用于switch语句中,它将退出switch语句
(C) break语句可用于if体内,它将退出if语句
(D) break语句在一个循环体内可出现多次



参考答案:
(C)
没有详解信息!
40. C++源文件的扩展名为( )。

(A) cpp
(B) c
(C) txt
(D) exe



参考答案:
(A)
没有详解信息!

(二) 多选题
1. C++中变量要求( )。

(A) 有明确的类型 (B) 先声明后使用 (C) 名字中不能使用下划线 (D) 不区分大小写



参考答案:
(AB)
没有详解信息!
2. 以下属非法用户自定义标识符(常量和变量命名)的是( )。

(A) 8ad (B) ad (C) _ad (D) const



参考答案:
(AD)
没有详解信息!
3. 表达式样(-17)%5的值( )表达式17%(-5)的值。

(A) 大于
(B) 等于
(C) 小于
(D) 不等于



参考答案:
(CD)
没有详解信息!
4. for语句的格式为for(表达式1;表达式2;表达式3),其中可以省略的是( )。

(A) 两个分号
(B) 表达式1
(C) 表达式2
(D) 表达式3



参考答案:
(BCD)
没有详解信息!
5. 以下哪些文件属于某一C++源程序中的文件( )。

(A) lib
(B) obj
(C) cpp
(D) h



参考答案:
(CD)
没有详解信息!
6. 设int a = 4;,以下表达式中正确的有( )。

(A) a += (a++)
(B) a += (++a)
(C) (a++) += a
(D) (++a) += (a++)



参考答案:
(ABD)
没有详解信息!
7. 为了便于数据的表示与处理,C++提供哪几种基本数据类型( )。

(A) 整型 (B) 字符型 (C) 数组 (D) 日期型



参考答案:
(AB)
没有详解信息!
8. 下列哪些可以用作变量名( )。

(A) $abstract (B) _test (C) class (D) google



参考答案:
(BD)
没有详解信息!
9. 用cin为整型变量输入数据时,如果从键盘输入的是12.36,输入后整型变量中的结果不会是( )。

(A) 12 (B) 12.3 (C) 12.4 (D) 不确定



参考答案:
(BCD)
没有详解信息!
10. 二进制数00001001跟01000011异或的结果不正确的为( )。

(A) 01001011
(B) 00000001
(C) 1001010
(D) 1001100



参考答案:
(ABD)
没有详解信息!
11. cout可以用来输出,可以输出的数据类型有( )。

(A) 整型 (B) 字符串 (C) 类名 (D) float类型数组名



参考答案:
(AB)
没有详解信息!
12. C++语言是一种( )的编程语言。

(A) 面向对象 (B) 面向过程 (C) 面向智能 (D) 面向用户



参考答案:
(AB)
没有详解信息!
13. 流

程控制语句有( )几种。

(A) 赋值语句
(B) 循环语句
(C) 分支语句
(D) 表达式语句



参考答案:
(BC)
没有详解信息!
14. 关于类的构造函数和析构函数的叙述,正确的是( )。

(A) 每个类都必须自己定义构造函数和析构函数
(B) 每个类可以不定义构造函数和析构函数
(C) 构造函数和析构函数必须定义在类内
(D) 构造函数和析构函数可以定义在类外



参考答案:
(BD)
没有详解信息!
15. private访问属性限制对象的成员不可以在( )中访问。

(A) 本类的成员函数 (B) main函数 (C) 父类的成员函数 (D) 子类的成员函数



参考答案:
(BCD)
没有详解信息!
16. 类成员的访问属性可以是( )。

(A) public (B) protected (C) private (D) default



参考答案:
(ABC)
没有详解信息!
17. 下列那些关键字是C++语言中的循环语句( )。

(A) do...while
(B) for...loop
(C) while
(D) break



参考答案:
(AC)
没有详解信息!
18. 面向对象的编程方法的主要特征包括( ) 。

(A) 封装
(B) 继承
(C) 多态
(D) 消息



参考答案:
(ABC)
没有详解信息!
19. 表达式9/6的结果错误的是( )。

(A) 1
(B) 1.5
(C) 2
(D) 表达式错误



参考答案:
(BCD)
没有详解信息!
20. 字符型数据专门用来处理文本数据,以下包含4个字符的字符串有( )。

(A) abcd (B) "abcd" (C) abcd' (D) "ab\n\x4e"



参考答案:
(BD)
没有详解信息!

(三) 判断题
1. C++中,标识符是以下划线或字母开头,后跟字母、数字、下划线的字符序列。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
2. 每个类都必须自己定义构造函数和析构函数。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
3. C++中,类成员的访问权限包括public、private、protected。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
4. C++规定else可与在其之前未配对的任意if配对。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
5. C++对象是类的实例,在使用对象前要先声明该对象。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
6. 用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是确定。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
7. do…while结构中的循环体语句至少执行一次。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
8. break语句可用于循环体内,它将退出多重循环的所有循环。

(A) 对 (B) 错



参考答案:
(B)
没有

详解信息!
9. for循环是只有可以确定的循环次数时才可使用,否则不能用for循环。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
10. 在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型double型。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
11. 引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
12. break语句也可以用于if体内,它可退出if语句。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
13. 每一个C++程序可以有多个源文件,但是只能有一个main函数。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
14. switch语句中case子句后面的表达式可以是整型表达式。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
15. \n'、'\x6A'、'\101'均是C++的字符常量。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
16. 构造函数不能带参数。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
17. 构造函数在对象创建时由系统自动调用。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
18. C++函数的声明和定义可以分开。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
19. 已有语句“inta(5),b(10);”,表达式++a+b++有二义性。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
20. 在C++中,0.128是一个合法的实数,小数点前的0可以省略,可以表示成.128。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!





(一) 单选题
1. 类B是通过public继承方式从类A派生而来的,且类A和类B都有完整的实现代码,那么下列说法正确的是( ) 。

(A) 类B中具有pubic可访问性的成员函数个数一定不少于类A中public成员函数的个数。
(B) 一个类B的实例对象占用的内存空间一定不少于一个类A的实例对象占用的内存空间。
(C) 只要类B中的构造函数都是public的,在main函数中就可以创建类B的实例对象。
(D) 类A和类B中的同名虚函数的返回值类型必须完全一致。



参考答案:
(B)
没有详解信息!
2. 编译时的多态性可以通过使用( )获得。

(A) 虚函数和指针
(B) 重载函数和析构函数
(C) 虚函数和对象
(D) 虚函数和引用



参考答案:
(A)
没有详解信息!
3. 多继承派生类构造函数构造对象时,( )被最先调用。

(A) 派生类自己的构造函数
(B) 虚基类的构造函数
(C) 非虚基类的构造函数
(D) 派生类中子对象类的构造函数





参考答案:
(B)
没有详解信息!
4. 下列对派生类的描述中,( )是错误的。

(A) 一个派生类可以作为另一个派生类的基类
(B) 派生类至少有一个基类
(C) 派生类的成员除了它自己的成员外,还包含了它的基类成员
(D) 派生类中继承的基类成员的访问权限到派生类保持不变



参考答案:
(D)
没有详解信息!
5. 多重继承时,如果派生类的两个父类有一个共同的虚基类,那么虚基类的初始化参数由 ( )的构造函数来传递。

(A) 第一个父类
(B) 第二个父类
(C) 派生类
(D) 以上都不是



参考答案:
(C)
没有详解信息!
6. 以下( )成员函数表示虚函数的定义。

(A) virtual int vf(int);
(B) void vf(int)=0;
(C) virtual void vf()=0;
(D) virtual void vf(int){ };



参考答案:
(D)
没有详解信息!
7. 如果在try块中用“throw "error";”语句抛出一个异常,则参数类型是( )的catch块能够捕获这个异常。

(A) char *
(B) const char *
(C) char
(D) const char



参考答案:
(B)
没有详解信息!
8. 派生类对象对它的哪一类基类成员是可以访问的?( )

(A) 公有继承的基类的公有成员
(B) 公有继承的基类的保护成员
(C) 公有继承的基类的私有成员
(D) 保护继承的基类的公有成员



参考答案:
(A)
没有详解信息!
9. 关于虚函数的描述中,( )是正确的。

(A) 虚函数是一个静态成员函数
(B) 虚函数是一个非成员函数
(C) 虚函数既可以在函数说明时定义,也可以在函数实现时定义
(D) 派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型



参考答案:
(D)
没有详解信息!
10. 下列输出字符'A'的方法中,错误的是( )。

(A) cout<
(B) cout<<'A';
(C) cout.put('A');
(D) char A='A';cout<



参考答案:
(A)
没有详解信息!
11. C++类体系中,不能被派生类继承的有( )。

(A) 构造函数
(B) 静态成员函数
(C) 非静态成员函数
(D) 赋值操作函数



参考答案:
(A)
没有详解信息!
12. 磁盘文件操作中,打开磁盘文件的访问方式常量中,( )是以追加方式打开文件的。

(A) in
(B) out
(C) app
(D) ate



参考答案:
(C)
没有详解信息!
13. 控制格式输入输出的操作子中,( )是设置域宽的。

(A) ws
(B) oct
(C) setfill
(D) setw



参考答案:
(D)
没有详解信息!
14. 多态性是通过( )实现的。

(A) 构造函数
(B) 析构函数
(C) 虚函数
(D) 函数重载



参考答案:
(C)
没有详解信息!
15. 关于动态联编的下列描述中,( )是错误的?

(A) 动态联编是以虚函数为基础的;
(B) 动态联编是在运行时确定所调用的函数代码的;
(C) 动态联编调用函数操作是用指向对象的指针或对象引用;
(D) 动态联编是在编译时确定操作函数。



参考答案:
(D)
没有详解信息!
16. 进行文件操作时需要包含( )文件。

(A) iostream.h
(B) fstream.h
(C) stdlib.h
(D) stdlib.h



参考答案:
(B)
没有详解信息!
17. 下列那些对象可以被throw语句抛出?( ) 。

(A) Event
(B) Object
(C) Throwable
(D) Exception



参考答案:
(D)
没有详解信息!
18. C++异常处理机制中没有( ) 。

(A) try
(B) throw
(C) catch
(D) finally



参考答案:
(D)
没有详解信息!
19. 函数模板:“template T add(T x, T y){return x+y;}”,下列对add函数的调用不正确的是( )。

(A) add<>(1,2)
(B) add(1,2)
(C) add(1.0, 2)
(D) add(1.0,2.0)



参考答案:
(C)
没有详解信息!
20. 派生类的对象对它的基类成员中( )是可以访问的。

(A) 公有继承的公有成员
(B) 公有继承的私有成员
(C) 公有继承的保护成员
(D) 私有继承的公有成员



参考答案:
(A)
没有详解信息!
21. 下列的模板说明中,正确的是( )。

(A) template
(B) template
(C) template
(D) template



参考答案:
(C)
没有详解信息!
22. 建立类模板对象的实例化过程为( )。

(A) 基类:派生类
(B) 构造函数:对象
(C) 模板类<参数> 对象
(D) 模板类:模板对象



参考答案:
(C)
没有详解信息!
23. 关于纯虚函数和抽象类的描述中,错误的是( )。

(A) 纯虚函数是一种特殊的虚函数,它没有具体的实现
(B) 抽象类是指具有纯虚函数的类
(C) 一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类
(D) 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出



参考答案:
(C)
没有详解信息!
24. C++中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过( )派生了新的类。

(A) 复用
(B) 继承
(C) 封装
(D) 引用



参考答案:
(B)
没有详解信息!
25. 父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么( )。

(A) 在子类中这两个函数构成重载关系
(B) 子类不会继承父类的这个函数
(C) 子类中的函数会覆盖父类中的函数
(D) 编译时会发生错误



参考答案:
(C)
没有详解信息!
26. 要实现动态联编,必须通过( )调用虚函数。

(A) 对象指针
(B) 成员名限定
(C) 对象名
(D) 派生类名





参考答案:
(A)
没有详解信息!
27. 如果一个类至少有一个纯虚函数,那么就称该类为( )。

(A) 抽象类
(B) 虚函数
(C) 派生类
(D) 以上都不对



参考答案:
(A)
没有详解信息!
28. 下列( )可以作为运算符重载函数?

(A) 成员函数
(B) 递归函数
(C) 内联函数
(D) 无参函数



参考答案:
(A)
没有详解信息!
29. 不能用友元函数重载的是( )。

(A) =
(B) ==
(C) <=
(D) ++



参考答案:
(A)
没有详解信息!
30. 使用操作符setw对数据进行格式输出时,需要包含( )文件。

(A) iostream.h
(B) fstream.h
(C) iomanip.h
(D) stdlib.h



参考答案:
(C)
没有详解信息!
31. 当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。

(A) ios::in
(B) ios::out
(C) ios::n|ios::out
(D) 没有



参考答案:
(D)
没有详解信息!
32. 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,该成员函数的声明语句为( )。

(A) AB operator+(AB &a,AB &b);
(B) AB operator+(AB &a);
(C) operator+(AB a);
(D) AB &operator+( );



参考答案:
(B)
没有详解信息!
33. 抽象类指的是( )。

(A) 没有任何成员的类
(B) 只有成员函数没有数据成员的类
(C) 有虚函数的类
(D) 有纯虚函数的类



参考答案:
(D)
没有详解信息!
34. 判断一个ofstream类对象file打开文件是否失败,应该判断( )。

(A) 创建文件流对象时是否抛出异常
(B) open成员函数的返回值
(C) feof成员函数的返回值
(D) !file 是否为真



参考答案:
(D)
没有详解信息!
35. 下列说法错误的是( )。

(A) 公有继承的基类中的public成员在派生类中仍是public的
(B) 公有继承的基类中的private成员在派生类中仍是private的
(C) 私有继承的基类中的public成员在派生类中变成private的
(D) 保护继承的基类中的public成员在派生类中变成protected的



参考答案:
(B)
没有详解信息!
36. 当需要使用ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含( )文件。

(A) iostream.h
(B) stdlib.h
(C) strstrea.h
(D) fstream.h



参考答案:
(D)
没有详解信息!
37. 下列虚基类的声明中,正确的是( )。

(A) class virtual B:public A
(B) virtual class B:public A
(C) class B:public A virtual
(D) class B: virtual public A



参考答案:
(D)
没有详解信息!
38. 若已知char str[20];,有语句“cin>>str;”,当输入为:This is a program

所得的结果是str=( )。

(A) This is a program
(B) This
(C) This is
(D) his is a



参考答案:
(B)
没有详解信息!
39. 下列关于运算符重载的描述中,( )是正确的。

(A) 可以改变参与运算的操作数个数
(B) 可以改变运算符原来的优先级
(C) 可以改变运算符原来的结合性
(D) 不能改变原运算符的语义



参考答案:
(D)
没有详解信息!
40. 要打开一个文件并从中读取数据,应该使用( ) 类的对象。

(A) istream
(B) ostream
(C) ifstream
(D) ofstream



参考答案:
(C)
没有详解信息!

(二) 多选题
1. 关于多继承二义性的描述,( )是错误的。

(A) 派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性
(B) 一个派生类是从具有共同的间接基类的两个基类派生来的,派生类对该公共基类的访问不会出现二义性
(C) 解决二义性最常用的方法是作用域运算符对成员进行限定
(D) 派生类和它的基类中出现同名函数时,将可能出现二义性



参考答案:
(BD)
没有详解信息!
2. 模板定义中的类型参数可以用作( )。

(A) 局部变量类型
(B) 函数参数类型
(C) 函数返回值类型
(D) 数据成员类型



参考答案:
(ABCD)
没有详解信息!
3. C++类体系中,能被派生类继承的是( )。

(A) 构造函数
(B) 虚函数
(C) 静态成员函数
(D) 友元函数



参考答案:
(BC)
没有详解信息!
4. 关于类模板,描述错误的是( )。

(A) 一个普通基类可以派生类模板
(B) 类模板从普通类派生,也可以从类模板派生
(C) 根据建立对象时的实际数据类型,编译器把类模板实例化为模板类
(D) 函数的类模板参数须通过构造函数实例化



参考答案:
(AD)
没有详解信息!
5. 下列运算符中,可以能重载的是( )。

(A) ! (B) sizeof (C) new (D) delete



参考答案:
(ACD)
没有详解信息!
6. 可以用友元函数重载的是( )。

(A) ()
(B) ==
(C) *
(D) =



参考答案:
(BC)
没有详解信息!
7. 下面描述中,正确的是( )。

(A) virtual可以用来声明虚函数
(B) 含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类
(C) 即使基类的构造函数没有参数,派生类也必须建立构造函数
(D) 静态数据成员不可以通过成员初始化列表来初始化



参考答案:
(AD)
没有详解信息!
8. 下列对派生类的描述中,错误的是( )。

(A) 一个派生类可以作为另一个派生类的基类
(B) 派生类至少有一个基类
(C) 派生类的缺省继承方式是protected
(D) 派生类只含有基类

的公有成员和保护成员



参考答案:
(CD)
没有详解信息!
9. 关于getline( )函数的下列描述中,( )是错误的。

(A) 该函数是用来从键盘上读取字符串;
(B) 该函数读取的字符串长度不受限制的;
(C) 该函数读取字符串时,遇到终止符时便停止;
(D) 该函数中所使用的终止符只能是换行符;



参考答案:
(BD)
没有详解信息!
10. 下列函数中,可以重载运算符的函数是( )。

(A) 成员函数 (B) 构造函数 (C) 普通函数 (D) 友元函数



参考答案:
(ACD)
没有详解信息!
11. 关于类中重载赋值运算符的正确说法是( )。

(A) 由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值。
(B) 在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值。
(C) 只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作。
(D) 通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作。



参考答案:
(ABD)
没有详解信息!
12. 下列函数中,( )是对文件进行写操作的。

(A) get( )
(B) write( )
(C) seekg( )
(D) put( )



参考答案:
(BD)
没有详解信息!
13. 关于函数模板,描述错误的是( )。

(A) 函数模板必须由程序员实例化为可执行的函数模板
(B) 函数模板的实例化是在函数调用时实现
(C) 一个类定义中,只要有一个函数模板,则这个类是类模板
(D) 类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化



参考答案:
(AB)
没有详解信息!
14. 关于read(char *buf,int size)函数的下列描述中,( )是对的。

(A) 函数只能从键盘输入中获取字符串
(B) 函数所获取的字符多少是不受限制的
(C) 该函数常用于二进制文件的操作
(D) 该函数只能按规定读取所指定的字符数



参考答案:
(CD)
没有详解信息!
15. 下列对继承的描述中,错误的是( )。

(A) 析构函数可以被继承
(B) 派生类也是基类的组合
(C) 派生类的成员除了它自己的成员外,还包含了它的基类的成员
(D) 派生类中继承的基类成员的访问权限到派生类保持不变



参考答案:
(AD)
没有详解信息!
16. 使用流控制符 ( )需要头文件iomanip.h。

(A) endl
(B) hex
(C) setw
(D) setprecision(3)



参考答案:
(CD)
没有详解信息!
17. 下面4个选项中,( )不是用来声明虚函数的。

(A) virtual
(B) public
(C) using
(D) false



参考答案:
(BCD)
没有详解信息!
18. 如果定义了一个类myclass,则

为myclass类对象以成员函数形式重载后++运算符的声明错误的是( ) 。

(A) myclass operator++();
(B) myclass & operator++();
(C) myclass operator++( int );
(D) myclass & operator++( int );



参考答案:
(ABD)
没有详解信息!
19. 下面叙述错误的是( )。

(A) 基类的protected成员在派生类中仍然是protected
(B) 基类的protected成员在public派生类中仍然是protected的
(C) 基类的protected成员在private派生类中是protected的
(D) 基类的protected成员不能被派生类的对象访问



参考答案:
(AC)
没有详解信息!
20. 在ios中提供控制格式的标志位中,( )是数制标志位。

(A) hex
(B) oct
(C) dec
(D) left



参考答案:
(ABC)
没有详解信息!

(三) 判断题
1. 要打开一个文件并从中读取数据,应该使用istream类的对象。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
2. 对于ofstream类对象file,feof成员函数的返回值为真表示打开文件失败。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
3. 类模板机制是为用户提供了把数据成员和成员函数相似,仅数据类型不同的类设计为通用类模板的方法。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
4. C++语言支持的两种多态性分别是编译时的多态性和运行时的多态性。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
5. Event对象可以被throw语句抛出 。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
6. 多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序,而与派生类构造函数中所定义的成员初始化列表的各项顺序无关。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
7. 函数模板的类型参数与函数的参数是同一个概念。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
8. 运算符=可以用友元函数重载。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
9. 带有纯虚函数的类被称为虚基类。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
10. 引进虚基类的真正目的是为了解决二义性问题。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
11. 对基类数据成员的初始化是通过执行派生类构造函数中的初始化来实现的。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
12. write函数只能按规定向文件写入所指定的字符数。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
13. C++支持运算符重载,所有运算符都可以重载。

(A) 对 (B)





参考答案:
(B)
没有详解信息!
14. 无论是私有继承还是保护继承中,基类中所有成员对派生类对象都是不可见的。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
15. 当撤消一个含有基类和类对象成员的派生类对象时,首先完成派生类的析构函数的执行,再完成基类的析构函数的执行。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
16. 控制格式输入输出的操作子oct是设置域宽的。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
17. 在函数模板的参数中,用class关键字修饰的参数称为类型参数。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
18. 派生类的构造函数的成员初始化列表中,不能包含基类的构造函数。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
19. 运算符重载的时可以改变原运算符的语义。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
20. 私有继承中,基类中所有成员对派生类的对象都是不可见的。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!





(一) 单选题
1. 关于静态成员的描述中,( )是错误的。

(A) 静态成员可分为静态数据成员和静态成员函数
(B) 静态数据成员定义后必须在类体内进行初始化
(C) 静态数据成员初始化不使用其构造函数
(D) 静态成员函数中不能直接引用非静态成员



参考答案:
(B)
没有详解信息!
2. 下列哪个不是重载函数在调用时选择的依据( )。

(A) 参数类型
(B) 参数个数
(C) 函数类型
(D) 函数名



参考答案:
(C)
没有详解信息!
3. 有函数原型声明语句“int test(int a, int b=1, int c=0);”和函数调用语句“test(0); test(0,0); test( ); test(0,0,0);”,不合法的个数是( )。

(A) 0
(B) 1
(C) 2
(D) 3



参考答案:
(B)
没有详解信息!
4. 对于一个功能不太复杂,并且要求加快执行速度,选用( )合适。

(A) 内联函数
(B) 重载函数
(C) 递归调用
(D) 嵌套调用



参考答案:
(A)
没有详解信息!
5. 设指针变量p定义为“int *p=new int(100);”,*p值是( )。

(A) 0
(B) 100
(C) 150
(D) 不确定



参考答案:
(B)
没有详解信息!
6. 设“int f(int);”和“int g(int);”是函数f和g的原形,以下将f作为语句调用的是( )。

(A) g(f(3))
(B) f(g(3));
(C) g(f(3)+2);
(D) p=f(g(3)+1);



参考答案:
(B)
没有详解信息!
7. 关于友元的描述中,( )是错误的。

(A) 友元函数是成员函数,它被说明在类体内
(B) 友元函数可直接访

问类中的私有成员
(C) 友元函数破坏封装性,使用时尽量少用
(D) 友元类中的所有成员函数都是友元函数



参考答案:
(A)
没有详解信息!
8. 函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( )个。

(A) 1
(B) 2
(C) 4
(D) 5



参考答案:
(B)
没有详解信息!
9. 以下有关析构函数的叙述不正确的是( )。

(A) 在一个类中只能定义一个析构函数
(B) 析构函数和构造函数一样可以有形参
(C) 析构函数不允许用返回值
(D) 析构函数名前必须冠有符号"~"



参考答案:
(B)
没有详解信息!
10. 下面选项中等价的是( )。

(A) int a[2][3]={1,0,2,2,4,5}与int a[2][]= {1,0,2,2,4,5};
(B) int a[][3]= {1,0,2,2,4,5}与int a[2][3]= {1,0,2,2,4,5};
(C) int a[2][3]={3,4,5}与int a[][3]={3,4,5};
(D) int a[2][3]={0,1}与int a[2][3]={{0},{1}};



参考答案:
(B)
没有详解信息!
11. 以下正确的说法是( )。

(A) 用户若需要调用标准函数,调用前必须重新定义
(B) 用户可以直接调用所有标准库函数
(C) 用户可以定义和标准库函数重名的函数,但是在使用时调用的是系统库函数
(D) 用户可以通过文件包含命令将系统库函数包含到用户源文件中,然后调用系统库函数



参考答案:
(D)
没有详解信息!
12. 若有以下定义float *p;,则变量p所占内存空间的字节数是( )。

(A) 1
(B) 2
(C) 4
(D) 8



参考答案:
(C)
没有详解信息!
13. 设变量b和pb定义为“int b[10], *pb=b;”,要将24赋值给b[1]元素,不正确的语句是( )。

(A) *(pb+1)=24;
(B) *(b+1)=24;
(C) *++b=24;
(D) *++pb=24;



参考答案:
(C)
没有详解信息!
14. 假定AA为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete [ ]px;”语句时,自动调用该类析构函数的次数为( )。

(A) n
(B) n-1
(C) n+1
(D) 1



参考答案:
(A)
没有详解信息!
15. 关于函数返回值的的描述正确的是( )。

(A) 函数返回表达式的类型一定与函数的类型相同
(B) 函数返回值的类型决定了返回值表达式的类型
(C) 当函数类型与返回值表达式类型不同,将对返回值表达式的值进行类型转换
(D) 函数返回值类型就是返回值表达式类型



参考答案:
(C)
没有详解信息!
16. 如果x是整型变量,则合法的形式是( )。

(A) &(x+5)
(B) *x
(C) &*x
(D) *&x



参考答案:
(D)
没有详解信息!
17. 如果短整型的长度是2字节,有一个短整型指针p的值是0xFFED1200,那么p+1的值为( ) 。

(A) 0xFFED1201
(B) 0xFFED1202
(C) 0xFFED1203
(D) 0xFFED1204




参考答案:
(B)
没有详解信息!
18. 若函数声明为double * function( ),则该函数的返回值为

(A) 实数型
(B) 数组型
(C) 函数指针型
(D) 实数指针型



参考答案:
(D)
没有详解信息!
19. 类的析构函数的作用是( )。

(A) 一般成员函数
(B) 类的初始化
(C) 对象初始化
(D) 删除对象



参考答案:
(D)
没有详解信息!
20. 有定义“static int data[5][6];”,设该数组在静态存储区中的起始地址为十进制的100,若每个int型数占4个字节,则数组元素data[2][3]的地址为( )。

(A) 115
(B) 124
(C) 130
(D) 160



参考答案:
(D)
没有详解信息!
21. 以下有关类和对象的叙述不正确的是( )。

(A) 任何一个对象都归属于一个具体的类
(B) 构造函数的功能是对对象进行初始化
(C) 类的数据成员不允许是另一个类的对象
(D) 一个类可以被实例化成多个对象



参考答案:
(C)
没有详解信息!
22. 若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则( )不是对a数组元素的正确引用(其中0≤i<0)。

(A) p[i]
(B) *(*(a+i))
(C) a[p-a]
(D) *(&a[i])



参考答案:
(B)
没有详解信息!
23. 设有如下定义int (*ptr)(); 下面关于ptr正确叙述是( )。

(A) ptr是指向一维数组的指针变量
(B) ptr是指向int 型数据的指针变量
(C) ptr是指向函数的指针,该函数返回一个int型数据
(D) ptr是一个函数名,该函数的返回值是指向int型数据的指针



参考答案:
(C)
没有详解信息!
24. 下列数组的定义中,( )是错误的。

(A) char ca1[]={'c','m','n'};
(B) char ca2[]="name";
(C) char ca3[4]="your";
(D) int array[]={1,2,3,4};



参考答案:
(C)
没有详解信息!
25. 下面对静态数据成员的描述中,正确的是( )。

(A) 静态数据成员是类的所有对象共享的数据
(B) 类的每一个对象都有自己的静态数据成员
(C) 类的不同对象有不同的静态数据成员值
(D) 静态数据成员不能通过类的对象调用



参考答案:
(A)
没有详解信息!
26. 设char **s;以下正确的表达式是( )。

(A) s="computer";
(B) *s="computer";
(C) **s="computer";
(D) *s='c';



参考答案:
(B)
没有详解信息!
27. 以下不属于构造函数特征的是( )。

(A) 构造函数名与类名相同
(B) 构造函数可以重载
(C) 构造函数可以设置默认参数
(D) 构造函数必须指定函数类型



参考答案:
(D)
没有详解信息!
28. 若有定义为“int a[5]={1,3,5,7,9},*p=new int [5];”,则下列操作错误的是( )。

(A) p=a;
(B) *p=a;
(C) *(p+1)=a[1];
(D) *p=*a



参考答案


(B)
没有详解信息!
29. 有定义“char a[10][20]={"computer","IBM"};”,要使语句“p=a;”能够正常执行,p应被事先定义为( )。

(A) char *p;
(B) char **p;
(C) char *p[20];
(D) char (*p)[20];



参考答案:
(D)
没有详解信息!
30. 预处理命令以( )开头。

(A) *
(B) #
(C) /
(D) :



参考答案:
(B)
没有详解信息!
31. 若有定义为“int *r =new int [10];”,则释放指针所指内存空间的操作是( )。

(A) delete [ ]r;
(B) delete *r
(C) delete r;
(D) delete r[ ];



参考答案:
(A)
没有详解信息!
32. 假定k是一个double类型的变量,则关于变量p的正确定义语句为( )。

(A) double p=&k;
(B) int *p=&k;
(C) double &p=*k;
(D) char *p=”Thank you ! ”;



参考答案:
(D)
没有详解信息!
33. 下面( )项是对构造函数和析构函数的正确定义。

(A) void X::X(), void X::~X()
(B) X::X(参数), X::~X()
(C) X::X(参数), X::~X(参数)
(D) void X::X(参数), void X::~X(参数)



参考答案:
(B)
没有详解信息!
34. 对数组名作函数的参数,下面描述正确的是( )。

(A) 数组名作函数的参数,调用时将实参数组复制给形参数组
(B) 数组名作函数的参数,主调函数和被调函数共用一段存储单元
(C) 数组名作参数时,形参定义的数组长度不能省略
(D) 数组名作参数,不能改变主调函数中的数据



参考答案:
(B)
没有详解信息!
35. 下列给字符数组进行初始化中,正确的是( )。

(A) char s1[2][ ]="12345abcd";
(B) char s2[3]="xyz";
(C) char s3[3]={ 'a', 'x', 'y'};
(D) char s4[2][3]={"xyz","mnp"};



参考答案:
(C)
没有详解信息!
36. 下列各类变量,哪个不是局部变量( )。

(A) register型变量
(B) 外部static变量
(C) auto型变量
(D) 函数形参



参考答案:
(B)
没有详解信息!
37. 假设B为一个类,则该类的复制构造函数的声明语句为( )。

(A) B(B p);
(B) B & (B p);
(C) B(B & p);
(D) B (B *p);



参考答案:
(C)
没有详解信息!
38. 下面关于数组的说法正确的是( )。

(A) 它与普通变量没什么区别
(B) 它的元素的数据类型可以相同,也可以不同
(C) 它用数组名标识其元素
(D) 数组元素的数据类型是相同的



参考答案:
(D)
没有详解信息!
39. 给出下面定义:char a[]="abcd",b[]={'a','b','c','d'}; 则下列说法正确的是( )。

(A) 数组a与数组b等价
(B) 数组a和数组b的长度相同
(C) 数组a的长度大于数组b的长度
(D) 数组a的长度小于数组b的长度



参考答案:
(C)
没有详解信息!
40.

下列函数原型语句正确的是( )。

(A) int function(void a);
(B) void function(int);
(C) int function(a);
(D) void int(double a);



参考答案:
(B)
没有详解信息!

(二) 多选题
1. 数组名表示的不是数组的( )。

(A) 类型
(B) 用途
(C) 地址
(D) 长度



参考答案:
(ABD)
没有详解信息!
2. 若有函数说明如下:void fun1(int x,int y,int z,int k=3); 则调用该函数时,不可以提供( )个参数。

(A) 1
(B) 2
(C) 3
(D) 4



参考答案:
(AB)
没有详解信息!
3. 类A中有唯一的一个公有成员函数f,对于类A的一个对象a,执行语句 a.f(100);成功,那么f的函数原型可以为( )。

(A) A & f( int, int=50);
(B) void f(int &) const;
(C) 'const A * f(const int );
(D) A f( const int &) const;



参考答案:
(ACD)
没有详解信息!
4. 如果短整型的长度是2字节,有一个短整型指针p的值是0xFFED1200,那么p+1的值为( ) 。

(A) 0xFFED1201
(B) 0xFFED1202
(C) 0xFFED1203
(D) 0xFFED1204



参考答案:
(B)
没有详解信息!
5. 声明或定义一个内联函数时,不能在函数开始使用的关键字( )。

(A) static
(B) const
(C) extern
(D) inline



参考答案:
(ABC)
没有详解信息!
6. 在下面的函数声明中,存在着语法错误的是( )。

(A) BC(int a, int);
(B) BC(int 4, int);
(C) BC(int, int=5);
(D) BC(int x; int y);



参考答案:
(BD)
没有详解信息!
7. 下列函数中,( )不能重载。

(A) 成员函数
(B) 非成员函数
(C) 析构函数
(D) 构造函数



参考答案:
(ABD)
没有详解信息!
8. 下面关于new 和delete操作符的说法,哪个是正确的( )。

(A) 使用new操作符,可以动态分配全局堆中的内存资源。
(B) 若p的类型已由A*强制转换为void *,那么执行语句delete p;时,类A的析构函数不会被调用。
(C) 实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中。
(D) 执行语句A * p=new A[100];时,类A的构造函数只会被调用1次。



参考答案:
(ABC)
没有详解信息!
9. 下列一维数组定义正确的是( )。

(A) x=6; int num[x];
(B) const int x=6; float a[x];
(C) const float x=6; int b[x];
(D) const int x=6; int c[x];



参考答案:
(BD)
没有详解信息!
10. 下列哪几种数组定义方法,会引起编译时错误( )。

(A) float[]= new float(3);
(B) float f2[]=new float[];
(C) float *f1 = new float[3];
(D) float f3[] = new float[3];
(E) float f5[] = { 1.0f, 2.0f, 2.0f };



参考答案:
(ABD)
没有详解信息!
11. 关于公共静态数据成员,下面说法正确的是( )。

(A) 在main

函数之前创建
(B) 跟某个具体对象相关
(C) 可以用类名和成员名直接访问
(D) 需要在类体内初始化



参考答案:
(AC)
没有详解信息!
12. 两个同名函数构成重载关系,只要( )不同。

(A) 返回类型
(B) 参数个数
(C) 参数类型
(D) 函数头后有无const



参考答案:
(BCD)
没有详解信息!
13. 类A有一个实例化的常量对象a,那么下面的说法中不正确的是( )。

(A) 类A中的非静态数据成员一定都是常量成员。
(B) 通过a可以直接调用类A的常量成员函数。
(C) a能直接作为左值表达式使用。
(D) a可以是静态常量对象。



参考答案:
(AC)
没有详解信息!
14. 下面的说明中,正确的函数定义有( )。

(A) void f(void)
(B) void f(void){ }
(C) f(int s){ }
(D) f(int s){return s+1;}
(E) double f(){return 0.0;}



参考答案:
(BCDE)
没有详解信息!
15. 函数的形参不会是( )。

(A) 全局变量
(B) 局部变量
(C) 静态变量
(D) 外部变量



参考答案:
(ACD)
没有详解信息!
16. 若有语句“int a[10], *P=a;”,则下列表示第5个元素方法中,( )是不正确的。

(A) *(a+4)
(B) a[5]
(C) *P+4
(D) P[4]



参考答案:
(BC)
没有详解信息!
17. 若有int x[5], *p=x; 则p的值为( )。

(A) 5
(B) 数组x的首地址
(C) 无具体值
(D) x[0]的地址值



参考答案:
(BD)
没有详解信息!
18. 一个类如果没有定义任何函数,编译器会自动为这个类产生 ( ) 。

(A) 拷贝构造函数
(B) 无参构造函数
(C) 输出流运算符
(D) 赋值运算符



参考答案:
(ABD)
没有详解信息!
19. 假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete []px;”语句时,自动调用该类析构函数的次数不会为( )。

(A) 1
(B) n
(C) n-1
(D) n+1



参考答案:
(ACD)
没有详解信息!
20. 类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员是允许的( )。

(A) TM * a;
(B) TN & a;
(C) TM a;
(D) TN a;



参考答案:
(ABD)
没有详解信息!

(三) 判断题
1. 当一个类对象离开它的作用域时,系统将自动调用该类的析构函数。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
2. 定义函数名重载时,其参数名称必须相一致。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
3. 已知类A中一个成员函数的说明语句为“voidSet(A&a);”,其中A&a的含意是将a的地址值赋给变量Set。

(A) 对
(B) 错



参考答案:
(B)
没有详解信息!
4. 假定AB为一个类,则该类的复制构造函

数的声明语句为“AB(AB&);”。

(A) 对
(B) 错



参考答案:
(A)
没有详解信息!
5. 若函数声明语句“double*function;”,则该函数的返回值为实型数。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
6. 定义数组时可以不确定元素个数。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
7. 若类A是类B的友元类,且类B是类C的友元类,那么类A也是类C的友元类。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
8. 假定要动态分配一个类型为Worker的具有5个元素的数组,并由r指向这个动态数组,则使用的语句“Worker*r=newint[5];”。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
9. 构造函数的初始化列表中的内容,不会影响构造对象中成员数据的初始化顺序。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
10. 函数体内声明的静态变量,至多只会被初始化一次。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
11. 友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
12. 指针是一种特殊的变量,只能用来保存地址。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
13. 对于同一个类中的两个非静态成员函数,它们的函数的名称、参数类型、参数个数、参数顺序以及返回值的类型不能完全相同。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
14. 在语句constchar*ptr中,ptr是指向字符串的常量指针。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
15. 假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为AB{}。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
16. 若函数声明语句“intfunc(int);”,则该语句“func(func(5));”为函数的嵌套调用。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
17. 将两个字符串连接起来组成一个字符串时,选用strcat函数。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
18. 静态成员变量是整个类的所有对象共用的。

(A) 对 (B) 错



参考答案:
(A)
没有详解信息!
19. 语句“inta[](10);”定义二维数组A。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!
20. inline函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。

(A) 对 (B) 错



参考答案:
(B)
没有详解信息!




相关文档
最新文档