C 程序设计模拟试卷 下载本文

内容发布更新时间 : 2024/12/25 10:10:31星期一 下面是文章的全部内容请认真阅读。

第一次作业

一、单项选择题。

1. 编写C++程序一般需经过的几个步骤依次是( ) A. 编辑、调试、编译、连接 B. 编辑、编译、连接、运行 C. 编译、调试、编辑、连接 D. 编译、编辑、连接、运行

2. 决定C++语言中函数的返回值类型的是( )

A. return语句中的表达式类型 B. 调用该函数时系统随机产生的类型 C. 调用该函数时的主调用函数类型 D. 在定义该函数时所指定的数据类型 3. 下面叙述不正确的是( )

A. 派生类一般都用公有派生 B. 对基类成员的访问必须是无二义性的

C. 赋值兼容规则也适用于多重继承的组合 D. 基类的公有成员在派生类中仍然是公有的 4. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体 也就是( )

A. 类 B. 对象 C. 函数体 D. 数据块

5. 在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中 的( )

A. 私有成员 B. 公有成员 C. 保护成员 D. 保护成员或私有成员 6. 对基类和派生类的关系描述中,错误的是( )

A. 派生类是基类的具体化 B. 基类继承了派生类的属性 C. 派生类是基类定义的延续 D. 派生类是基类的特殊化 7. 关于this指针使用说法正确的是( )

A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码 B. 保证基类私有成员在子类中可以被访问。 C. 保证基类保护成员在子类中可以被访问。 D. 保证基类公有成员在子类中可以被访问。 8. 所谓多态性是指 ( )

A. 不同的对象调用不同名称的函数 B. 不同的对象调用相同名称的函数 C. 一个对象调用不同名称的函数 D. 一个对象调用不同名称的对象 9. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为 ( ) A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数 10. 在类中说明的成员可以使用关键字的是( )

A. public B. extern C. cpu D. register 二、填空题。

1. C++的流库预定义了4个流,它们是cin、cout、clog和___。 2. 每个对象都是所属类的一个___。

3. 在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语 句___。

4. 函数模板中紧随template之后尖括号内的类型参数都要冠以保留字___。

5. 定义类的动态对象数组时,系统只能够自动调用该类的___构造函数对其进行初始化。 6. 表达式cout<

7. 在C++中,访问一个指针所指向的对象的成员所用的指向运算符是___。

8. 假如一个类的名称为MyClass,使用这个类的一个对象初始化该类的另一个对象时,可以调 用___构造函数来完成此功能。

9. 对赋值运算符进行重载时,应声明为___函数。

10. 如果要把A类成员函数f()且返回值为void声明为类B的友元函数,则应在类B的定义中加 入的语句___。

第二次作业

一、单项选择题。

1. 静态成员函数没有( )

A. 返回值 B. this指针 C. 指针参数 D. 返回类型

2. 假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构造函数的次数 为( )

A. 3 B. 4 C. 5 D. 9 3. 有关多态性说法不正确的是( )

A. C++语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现 D. 实现运行时多态性的机制称为动态多态性

4. 假定一个类的构造函数为“A(int i=4, int j=0) {a=i;b=j;}”, 则执行“A x (1);”语 句后,x.a和x.b的值分别为( )

A. 1和0 B. 1和4 C. 4和0 D. 4和1 5. 类MyA的拷贝初始化构造函数是 ( )

A. MyA() B. MyA(MyA*) C. MyA(MyA&) D. MyA(MyA) 6. 在C++中,函数原型不能标识( )

A. 函数的返回类型 B. 函数参数的个数 C. 函数参数类型 D. 函数的功能 7. 友元关系不能( )

A. 提高程序的运行效率 B. 是类与类的关系 C. 是一个类的成员函数与另一个类的关系 D. 继承 8. 实现两个相同类型数加法的函数模板的声明是( )

A. add(T x,T y) B. T add(x,y) C. T add(T x,y) D. T add(T x,T y) 9. 在int a=3,int *p=&a;中,*p的值是( )

A. 变量a的地址值 B. 无意义 C. 变量p的地址值 D. 3 10. 下列不是描述类的成员函数的是( )

A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 二、填空题。

1. 假设int a=1,b=2;则表达式(++a/b)*b--的值为___。 2. 抽象类中至少要有一个___函数。

3. 一个抽象类的派生类可以实例化的必要条件是实现了所有的___。 4. 下面程序的输出结果为___。 #include void main() {int num=2,i=6; do {i--; num++;

}while(--i); cout<

5. 静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是___。 6. 在用C++进行程序设计时,最好用___代替malloc。 7. 由const修饰的对象称为___。

8. 在C++程序设计中,建立继承关系倒挂的树应使用___继承。 9. 基类的公有成员在派生类中的访问权限由___决定。

10. 不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为___。

第三次作业

一、单项选择题。

1. 设有定义int i;double j=5;,则10+i+j值的数据类型是( ) A. int B. double C. float D. 不确定

2. 要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( ) A. const char *p=“ABCD”; B. char *const p=“ABCD”;

C. char const *p=“ABCD”; D. const char * const p=“ABCD”; 3. 类的构造函数被自动调用执行的情况是在定义该类的( )

A. 成员函数时 B. 数据成员时 C. 对象时 D. 友元函数时 4. 已知类A是类B的友元,类B是类C的友元,则( )

A. 类A一定是类C的友元 B. 类C一定是类A的友元

C. 类C的成员函数可以访问类B的对象的任何成员 D. 类A的成员函数可以访问类B的对象的任何成员

5. 假定一个类的构造函数为“A(int i=4, int j=0) {a=i;b=j;}”, 则执行“A x (1);”语 句后,x.a和x.b的值分别为( )

A. 1和0 B. 1和4 C. 4和0 D. 4和1 6. 关于this指针使用说法正确的是( )

A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码 B. 保证基类私有成员在子类中可以被访问。 C. 保证基类保护成员在子类中可以被访问。 D. 保证基类公有成员在子类中可以被访问。 7. 所谓多态性是指 ( )

A. 不同的对象调用不同名称的函数 B. 不同的对象调用相同名称的函数 C. 一个对象调用不同名称的函数 D. 一个对象调用不同名称的对象 8. 友元关系不能( )

A. 提高程序的运行效率 B. 是类与类的关系 C. 是一个类的成员函数与另一个类的关系 D. 继承

9. 语句ofstream f(“TEMP.DAT”,ios::app|ios::binary)?的功能是建立流对象f,试图打 开文件TEMP.DAT 并与之连接,并且( )

A. 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B. 若文件存在,将其置为空文件;若文件不存在,打开失败

C. 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D. 若文件存在,打开失败;若文件不存在,建立一个新文件 10. 构造函数不具备的特征是( )

A. 构造函数的函数名与类名相同 B. 构造函数可以重载

C. 构造函数可以设置默认参数 D. 构造函数必须指定类型说明 二、填空题。

1. 单目运算符作为类成员函数重载时,形参个数为___个。