福师1203考试批次《C++语言程序设计》复习题及参考答案
本课程复习题所提供的答案仅供学员在复习过程中参考之用,有问题请到课程论坛提问。
福师1203考试批次《C++语言程序设计》复习题及参考答案一
本复习题页码标注所用教材为:
教材名称
单价
作者
版本
出版社
C++程序设计教程(第二版)
39.5
钱能
20059月第2
清华大学出版社continue语句执行过程
如学员使用其他版本教材,请参考相关知识点
一、选择填空(每小题2分,计16小题,共32)
1MyClass的定义如下:
class MyClass
{
    public:
            MyClass() { value = 0;}
            SetVariable(int i) { value = i; }
    private:
            int value;
}
    则对下列语句序列正确的描述是_______
        MyClass *pmy  p=&my
    A)语句p=&my;是把对象my赋值给指针变量p
    B)语句MyClass *pmy;会调用两次类MyClass的构造函数
    C)对语句 *p.SetVariable(5)的调用是正确的
D)语句p->SetVariable(5)与语句my.SetVariable(5)等价
【参考答案】:D
2对类的构造函数和析构函数描述正确的是_______
    A) 构造函数不能重载,析构函数可以重载
    B)构造函数可以重载,析构函数不能重载
    C)构造函数可以重载,析构函数也可以重载
D)构造函数不能重载,析构函数也不能重载
【参考答案】:B
3、在C++中,数据封装要解决的问题是______
    A)数据的规范化    B)便于数据转换
C)避免数据丢失    D)防止不同模块之间数据的非法访问
【参考答案】:D
4对于拷贝构造函数,正确的描述是________
    A)在C++语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数
    B)必须为每个类定义拷贝构造函数
    C)如果要使用拷贝构造函数,则必须在类中先定义
D)当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数
【参考答案】:A
5、继承具有_____,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
A)规律性    B)传递性  C) 重复性      D)多样性
【参考答案】:B
6、一个类的友元函数或友元类能够通过成员操作符访问该类的________
A)私有成员    B) 所有成员    C)公用成员    D) 保护成员
【参考答案】:B
7、关于纯虚函数和抽象类的描述中,错误的是________
A)纯虚函数是一种特殊的虚函数,它没有具体的实现
B)抽象类是指具有纯虚函数的类
C)一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类
D)抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
【参考答案】:C
8_____提供了类对外部的接口, ______是类的内部实现,而_____不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。
A)公有成员    B)私有成员    C)私有成员函数    D)保护成员
【参考答案】:ACD
9、关于C++语言和C语言的关系的下列描述中,错误的是________
AC语言是C++语言的一个子集
BC语言和C++语言都是面向对象的语言
CC++语言与C语言兼容
DC++语言对C语言做了些改进
【参考答案】:B
10、组成C++语言程序的是________
A)子程序    B)过程    C)函数      D)主程序和子程序
【参考答案】:C
11C++语言规定:一个源程序中,main函数的位置________
A)必须在最开始                B)必须在系统调用的库函数的后面
C)可以任意                    D)必须在最后
【参考答案】:C
12C++cin________
    A)一个标准的语句              B)预定义的类
    C)预定义的函数                D)预定义对象
【参考答案】:D
13、将C++源程序进行________可得到目标文件。
A)编辑                        B)编译
    C)连接                        D)拼接
【参考答案】:B
14、将目标文件进行________可得到可执行文件。
A)编辑                        B)编译
    C)连接                        D)拼接
【参考答案】:C
15、下列符号中能用作C++自定义标识符的是________
A5abc                        Bif
    C-abc                        D abc
【参考答案】:D
16、若要在if后一对圆括号中表示条件“a不等于0成立”,则能正确表示这一关系的表达式为________
Aa<>0                        B!a
    Ca=0                        Da
【参考答案】:D
二、写出下列程序的运行结果
1、(4分)
#include <iostream.h>
#include <string.h>
class StudentID{
public:
  StudentID(int id=0 )
  {
    value=id;
    cout <<"Assigning student id " <<value <<endl;
  }
  ~StudentID()
  {
    cout <<"Destructing id " <<value <<endl;
  }
protected:
  int value;
};
class Student{
public:
  Student(char* pName="no name",int ssID=0):id(ssID)
  {
    cout <<"Constructing student " <<pName <<endl;
    strncpy(name,pName,sizeof(name));
    name[sizeof(name)-1]='\n';
  }
protected:
  char name[20];
  StudentID id;
};
void main()
{
  Student s("Mary",2001);
  Student t("John");
}
程序运行的结果为:
【知识点】:对象生灭,见P293,主要理解成员的初始化(P305
2、(5分)
#include <iostream.h>
class Point
{
        int x,y;
    public:
        Point(int x1,int y1)
        {
          x=x1;y=y1;
        }
        virtual int area()  const
        {
          return 0;
        }
};
class Rect:public Point
{
        int l,w;
    public:
      Rect(int x1,int y1,int l1,int w1):Point(x1,y1)
          {
            l=l1;w=w1;
          }
        virtual int area()  const 
        {
            return l*w;
        }
};
void fun(Point &p)
{
    cout << p.area() << endl;
}
void main()
{   
    Rect rec1(3,4,10,7),rec2(5,10,8,16);
    Point *base=&rec2;
    fun (rec1);
    fun(*base);
}
程序运行的结果为:
【知识点】:继承,见P327,主要理解派生类的构造和继承方式。
3、(2分)
void main()
{  int i=8;
switch (i)
{  case 9:i=i+1;
  Default:i=i+1;
  Case 10:i=i+1;
  Case 11:i=i+1;
}
    cout<<i;
}
程序运行的结果为:
【知识点】:switch语句,见P31
4、(3分)
void main()
{    int k=4,n=0;
    for (;n<k;)
    {  n++;
        if(n%3!=0) continue;
        k--;
}
cout<<k<<,<<n;
}
程序运行的结果为:
【知识点】:for循环,见P36;continue语句,见P51
三、填空题
1、下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。(8分)
class MyClass
{
public:
            MyClass(int a);
            ~MyClass();
private:
            int* X;
};
MyClass::MyClass(int a)
{
          _________;
      }
MyClass::~MyClassO
{
          __________;
}
【知识点】:构造函数的成员初始化(参见P305)和析构函数(参见P316
2以下是统计一个英文句子中字母出现个数的程序。请将此程序补充完整。(8分)
#include <iostream.h>
int count(char str[]);
void main() {

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。