当前位置:首页 > [工学]长沙理工大学C++题库附答案
23、类的公有成员函数是类与外界的接口。 ( ) 24、构造函数没有函数类型。 ( )
25、在派生类的构造函数的初始化表中不能对包含基类的子对象初始化。( )
26、在公有和保护继承方式下,派生类的成员可以对基类的保护成员进行访问。 ( ) 27、只有类的成员函数才能声明为虚函数。 ( )
28、在一个类的对象空间里已经包含了静态成员的空间。 ( ) 29、C++不允许将构造函数、析构函数和虚函数声明为友元函数。( ) 30、运算符重载后,原运算符的优先级和结合特性不会改变。 ( )
31. C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。 ( ) 32. 数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。 ( ) 33. 隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。 ( ) 34. 宏定义命令是以分号结束的。 ( )
35. While循环语句的循环体至少执行一次。 ( )
36. 返回值类型、参数个数和类型都相同的函数也可以重载。( ) 37. 函数形参的作用域是该函数的函数体。 ( )
38. 静态类标识符在它的作用域之外是不存在的。 ( )
39. 对象成员的表示与结构变量成员表示相同,使用运算符.或->。 ( ) 40. 某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。 ( )
41. 对象数组的元素可以是不同类的对象。 ( ) 42. const char *p说明了p是指向字符串的常量指针。 ( )
43、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。( ) 44、无论是私有继承还是保护继承中,基类中所有成员对派生类对象都是不可见的。( ) 45、当break语句用在双重循环的内循环中时,它只能退出内循环到外循环中去,而不能直接退出整个双重循环。 ( )
46、For循环是只有可以确定的循环次数时才可使用,否则不能用for循环。 ( ) 47、返回值类型、参数个数和参数类型都相同的函数也可以重载。 ( ) 48、通常的拷贝初始化函数的参数是某个对象的成员名或对象的引用名。 ( )
21
49、友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。( )
50、已知:类A中一个成员函数说明如下:void Set(A&a);其中A &a的含意是将a的地址值赋给变量Set。 ( )
51、在语句const char *ptr中, ptr是指向字符串的常量指针。 ( ) 52、多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序,而与派生类构造函数中所定义的成员初始化列表的各项顺序无关。( ) 53、在说明语句 int a(15),&b=a,*p=&a;中,b的值的*P的是不相等的。( ) 54、已知:int a(5),b(10); 表达式++a+b++有二义性。( )
55、在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型double型。( ) 56、break语句也可以用于if体内,它可退出if语句。( )
57、在一个被调用函数中,一个return语句可返回多个值给调用函数。( ) 58、在传值调用中,要求实参和形参的类型完全一致并且个数相等。( ) 59、for循环中,循环变量的作用域是该循环的循环体内。( )
60、所谓私有成员是指只有类中所提供的成员函数才能直接访问它们,任何类以外的函数对它们的访问都是非法的。( )
61、const char *p说明了p是指向字符串的常量指针。( )
62、私有继承中,基类中所有成员对派生类的对象都是不可见的。( )
五、程序填空:
1、 class A { int * a; int n; public :
A(int nn=0):n(nn) {
if (n==0) a=0;
else a=_________ ; // 分配长度为n的动态数组 }
void Seta(int * aa) {
for (int i=0; i __________________// 定义析构造函数,释放动态数组空间 }; 2、程序输出结果为 22 a转换为A b转换为B 请将程序补充完整 #include char c1,c2; public: Sample (1) void disp() { cout< void main() { (2) a.disp(); b.disp(); } 3、下列程序的输出结果为:The result is :5,请将程序补充完整 #include 4、程序输出结果为8 8 请将程序补充完整 #include {x=px;} void setx (int a) {x=a;} (6) }; (7) { cp(11); c*q;q=&p; int p::c*cptr; int(c::*fptr)(); p.setx(8); cptr=&c::x; fptr=c::getx; cout< 5、下面程序是输出100内能被3整除且个位数是6的所有整数,请将程序补充完整 #include for (i=0; ___(1)__;i++) { j=i*10+6; if (___(2)__) continue; ___(3)__; cout< 6、 程序输出结果为counstructing object:x=1请将程序补充完整 #include Sample(int a) { ___(4)__ cout<<\} }; 23 void func(int n) { ___(5)__ } void main() { func(1); func(10); } 7、程序输出结果为: A=2,B=7 A=5,B=7 请把程序补充完整 #include int A; static int B; public: Sample(int a){A=a,B+=a;} static void func(Sample s); }; void Sample::func(Sample s) { ___(6)__ } int Sample::B=0; void main() { Sample s1(2),s2(5); ___(7)__ Sample::func(s2); } 六、填空: 1. C++语言的头文件与源程序文件扩展名分别是( )和( )。 2. 在C++程序中使用基本输入与输出流时需要包含的头文件名是( )。 3. 在C++语言中,惟一的一个三目运算运算符是( )。 4. C++中当一个函数无返回值时,则函数的类型是( )。 5. 一个类中可以有( )个构造函数,只能有( )个析构函数。 6.一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为( )权限, 而把成员函数(方法)定义为( )权限. 7.在定义类的对象时,C++程序将自动调用该对象的( )函数初始化对象自身.在撤销类的对象时,C++程序将自动调用该对象的( )函数. 8.类继承中,缺省的继承方式是( ). 9.在C++语言中,用转义字符序列( )或操纵符( )表示输出一个换行符。 10.表达式a=a+l表示成增量表达式为( )。 24
共分享92篇相关文档