内容发布更新时间 : 2024/12/26 6:42:54星期一 下面是文章的全部内容请认真阅读。
面向对象程序设计C++
复习资料与答案
第一、二、六、七章习题
一、选择题
1、系统约定C++源程序文件名的缺省的扩展名为( ) A、bcc B、c++ C、cpp D、vcc
2、面向对象的程序设计将数据与( )放在一起,作为一个相互依存、不可分割的整体来处理。
A、对数据的操作 B、信息 C、数据隐藏 D、数据抽象 3、当一个函数无返回值时,函数的类型应定义为( ) A、void B、任意 C、int D、无 4、对于C++的函数,正确的叙述是:
A、函数的定义不能嵌套,但函数的调用可以嵌套 B、函数的定义不能嵌套,但函数的调用不能嵌套 C、函数的定义和调用都不能嵌套 D、函数的定义和调用都可以嵌套 5、下列语句中错误的是( )
A、int *p=new int(10); B、int *p=new int[10] C、int *p=new int; D、int *p=new int[40](0);
6、假设已经有定义:const char *const name=”chen”;,下面的语句中正确的是:( ) A、name[3]=’a’; B、name=”lin”; C、name=new char[5]; D、cout< 7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:( ) A、name[3]=’q’; B、name=”lin”; C、name=new char[5]; D、name=new char(‘q’); 8、假设已经定义:const char *name=”chen”;, 下面的语句中错误的是:( ) A、name[3]=’q’; B、name=”lin”; C、name=new char[5]; D、name=new char(‘q’); 9、下面的类型声明中正确的是:( ) A、int &a[4]; B、int &*p; C、int &&q D、int i,*p=&i; 10、假设定义了函数模板( ) template T max(T x,T y){ return(x>y)?x:y;} 并定义了int i;char c;错误的调用语句是:( ) A、max(i,i) B、max(c,c) C、max((int)c,i); D、max(i,c) 11、模板的使用是为了( ) A、提高代码的可重用性 B、提高代码的运行效率 C、加强类的封装性 D、实现多态性 12、设有二个语句:int x[‘a’];cin>>x;则编译器认为( ) A、说明语句int x[‘a’]错 B、二个语句都错 C、语句cin>>x 错 D、二个语句正确,没有语法错 13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( ) A、f(py[10],n); B、f(py,n) C、f(*py,&n) D、f(py,&n) 14、在C++中实现封装是借助于( ) A、枚举 B、类 C、数组 D、函数 15、对于下面几个函数: (1) void f(int x,float y) {? ? } (2) int f(int a,float b){? ? } (3) int f(int i,int j){? ? } (4) float k(int x){? ? } 是重载函数。 A、4个全部 B、1和2 C、2和3 D、3和4 16、使用myFile.open(“Sales.dat”,ios::app);语句打开文件Sales.dat后,则( ) A、使输出追加到文件尾部 B、打开一个文件进行读操作 C、打开一个文件进行读和写操作 D、文件以二进制方式打开,默认时为文本文件 二、填空题 1、面向对象的程序设计有四大特征,它们是抽象、封装、 、 。 2、结构体类型中的数据和成员函数默认类型为 。 3、C++要求为每个函数建立原型,以说明函数的名称、参数的 和 ,以及函数返回值。 4、在函数说明前加关键字“inline”,则该函数被声明为 函数,其引入的目的是为了消除函数调用时的开销,以提高运行速度。 5、引用变量与被引用变量占有 内存单元。 6、 运算符能够用于访问当前作用域内与局部变量同名的全局变量。 7、#include { for(int a=1,b=1;a<=5;a++) { if(b>=8) break; if(b%2==1){b+=7;continue;} b-=3; } cout<<”a=”< int x=100; void main(void) 2 { int x=200;x+=::x; {int x=500;::x+=x;} cout< void f(float x=5, int y=16, char z=?C?); void main( ) { float a=1.6; int b=2; char c='D'; f();f(a);f(a,b); f(a,b,c); } void f(float x, int y, char z) { cout<<“x=”< 程序的第二行输出为 ,第三行输出为 。 11、以下程序的输出结果是 。 #include { f(6)=?X?; cout< { return a[i]; } 12、如果C++程序中使用了:cout、strcpy,则必须在程序首部包含文件 和 。 13、#include { int i=7890; cout< 程序的第一行输出为 ,第二行输出为 。 14、#include { int i=100;cout.setf(ios::hex); cout< 以上程序运行的结果是 第三章 类和对象 一、选择题 1、( )不是构造函数的特征。 A、构造函数的函数名与类名相同; B、构造函数可以重载; C、构造函数可以设置缺省参数; D、构造函数必须指定类型说明。 2、下列关于构造函数的描述中,( )是正确的。 A、构造函数可以设置缺省参数; B、构造函数可以被继承; C、构造函数可以对静态数据成员进行初始化; D、构造函数可以说明为虚函数; 3 3、( )是析构函数的特征。 A、析构函数可以有一个或多个参数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内; D、一个类中只能定义一个析构函数; 4、定义析构函数时,应该注意( )。 A、其函数名与类名完全相同; B、函数返回类型是void类型; C、无形参,也不可重载; D、函数体中必须有delete语句; 5、下列静态数据成员的特性中,( )是错误的。 A、说明静态数据成员时前边要加修饰符static; B、静态数据成员要在类体外进行初始化; C、静态数据成员不是所有对象所共用的; D、引用静态数据成员时,要在其名称前加<类名>和作用域运算符; 6、友元的作用是( )。 A、提高程序的运用效率; B、加强类的封装性; C、实现数据的隐藏性; D、增加成员函数的种类; 7、关于成员函数特征的下列描述中,( )是错误的。 A、成员函数一定是内联函数; B、成员函数可以重载; C、成员函数可以设置缺省参数值; D、成员函数可以是静态的; 8、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的; A、void print() const; B、const void print(); C、void const print(); D、void print(const); 9、在( )情况下适宜采用inline定义内联函数。 A、函数体含有循环语句; B、函数体含有递归语句; C、函数代码小,频繁调用; D、函数代码多,不常调用; 10、假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构 造函数的次数为( )。 A、 3 B、 4 C、 6 D、 9 11、通常拷贝初始化构造函数的参数是( )。 A、某个对象名 B、某个对象的成员名 C、某个对象的引用名 D、某个对象的指针名 12、有关类的说法不正确的是( )。 4