一起答

2015国家二级(C++)笔试标准预测试卷9

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 下面程序的运行结果是【 】。

    #include <iostream.h>

    double fun( double a, double b, char c='*' )

    {

    double d;

    switch (c)

    {

    case '+':d=a+ b; break;

    case '-':d=a-b; break;

    case '*':d=a*b; break;

    case '/':d=a/b; break;

    }

    return d;

    }

    void main()

    {

    double d=1.0;

    d=d-fun(fun(2.5,3.5,'+'),fun(3,5),'/');

    cout<<"d="<<d<<end1;

    }

  2. 下列程序的输出结果是【 】。

    #include <iostream>

    using namespace std;

    class base {

     public:

       int n;

       base(int x) { n=x;}

       virtual void set(int m) { n=m; cout<<n<<' ';}

    };

    class deriveA :public base {

     public:

     deriveA(int x):base(x) {}

     void set(int m) { n+=m; cout<<n<<' ';}

    };

    class derive B: public base {

     public:

       derive B(int x):base(x) {}

       void set(int m) { n+=m; cout<<n<<' ';}

    };

    int main()

    {

     derive A, d1(1);

     derive B, d2(3);

     base *pbase;

     pbase=&d1;

     pbase->set(1);

     pbase=&d2;

     phase->set(2);

     return 0;

    }

  3. 在下面横线上填上适当的语句,完成程序。

    #include<iostream>

    using namespace std;

    class Base

    {

     int x;

    public:

     Base(int i) { x=i; }

       ~Base() { }

    };

    class Derived: public Base

    {

    public:

      【 】 //完成类Derive 构造函数的定义

    };

    int main()

    {

     Derived Obj();

     return 0;

    }

  4. 已知数组a中的元素个数为n,下列语句的作用是将下标为i的元素移动到下标为i-1的单元,其中1≤i<n。例如,当n=4,a中原有数据为1,2,3,4时,则移动后a中元素变为2,3,4,4。请将语句补充完整:

     for(int i=0;i<n-1;i++) a[i]=a[【 】];

  5. 有如下程序:

    #include<iostream.h>

    void main()

    {

    int x=2,y=3,a,b,c,d;

    a=(x++>=--y);

    b=(x==++y);

    c=(x--!=y);

    d=(++x>y--);

    Cout<<a<<b<<c<<d<<end1;

    }

    则程序执行后变量a,b,c,d的值分别是【 】。

  6. 下面程序的输出结果为【 】。

    #include<iostream.h>

    f(int a)

    {int b=0;

    static int c=3;

    b++; c++;

    return(a+ b+ c);

    }

    void main()

    {int a=2,i;

    for(i=0;i<3;i++)

    cout<<f(a)<<end1;

    }

  7. 设置虚基类的目的是解决二义性问题,通过用关键字【 】表示虚基类。

  8. 静态数据成员在定义或说明时,要在前面加上关键字【 】;静态成员函数的实现中,不能直接引用类中说明为非静态的成员。

  9. 设有定义语句:int a=12;,则表达式a*=2+3的运算结果是【 】。

  10. 下列程序的输出结果为【 】。

    include<iostream.h>

    voidmain()

    {

    inta []={10,20,30,40},*pa=a;

    int*&ph=pa;

    Pb++;

    cout<<*pa<<end1;

    }

  11. 【 】的目的是检查模块是否正确的组合在一起,是否能够实现规格说明文档对产品功能的要求。

  12. 在数据库的三级模式体系结构中,外模式与概念模式之间的映像,实现了数据库的【 】独立性。

  13. 一棵二叉树第八层(根结点为第一层)的结点数最多为【 】个。

  14. 关系数据模型由关系数据结构、关系操作集合和【 】三大要素组成。

  15. 【 】技术是将数据和行为看成是一个统一的整体,使一个软件成分,即所谓的对象。

  16. 如果一个函数带有参数说明,则参数的默认值应该在(  )中给出。

    • A.函数定义
    • B.函数声明
    • C.函数定义或声明
    • D.函数调用
  17. 下列函数参数默认值定义错误的是(  )。

    • A.f(int x,int y=O)
    • B.fun(int x=100)
    • C.f(int x=0,int y)
    • D.fun(int x=f())(函数f()已经定义)
  18. MyClock 类的拷贝构造函数的声明语句为(  )。

    • A.MyClock&(MyClock x)
    • B.MyClock(MyClock x)
    • C.MyClock(MyClock &x)
    • D.MyClock(MyClock *x)
  19. 有函数char fun(char *p){ return p; }该函数的返回值是(  )。

    • A.编译出错
    • B.形参p中存放的地址值
    • C.一个临时存储单元的地址
    • D.形参p自身的地址值
  20. 下列说法正确的是(  )。

    • A.int( *p)[n); 是把p定义为整型变量,它指向不知数据类型的一维数组
    • B.int( *p)(); 是把p定义为整型指针
    • C.int *p[n); 定义指针数组p,每个指针指向一个整型变量
    • D.int *p(); p为指向函数的指针,函数返回值为整型
  21. 下面程序的输出结果是(  )。  #include<iostream>  using namespace std;  void main()  {  int a=18;    int * p=&a;    cout<<* p;}

    • A.18
    • B.以十进制输出变量a的地址
    • C.以十进制输出p的地址
    • D.以十六进制输出a的地址
  22. 输入流对象是输出流的源头,下面(  )不是输入流类。

    • A.cin
    • B.istream
    • C.ifstream
    • D.istrtream
  23. 下面程序的运行结果是(  )。  #include<iostream>  using namespace std;  class A  {  public:    virtual~A()    { cout<<"call A::~A()"<<endl;}  };  class B:public A  {    char * p;  public:    B(int i)    { p=new char[i];}    ~B()    {      delete(p);      cout<<"call B::~B()";    }  };  void main()  {    A * a=new B(8);    delete a;  }

    • A.call B::~B()call A::~A()
    • B.call B::~B()
    • C.call A::~A()
    • D.call A::~A()call B::~B()
  24. 下面程序的输出结果是(  )。  #include<iostream>  using namespace std;  template<class T>  T max(T x,T y)  {  return(x>=y ? x:y);}  void main()  {    cout<<max(5,8)<<endl;    cout<<max("zhangsan","lisi");  }

    • A.8 zhangsan
    • B.8 lisi
    • C.5 zhangsan
    • D.5 lisi
  25. 关于成员函数的重载,说法正确的是(  )。

    • A.就是在类中设计多个函数名相同,参数个数及参数类型也相同的函数
    • B.析构函数可以重载
    • C.函数重载,要求函数名相同,但参数个数不同,或参数相同,但其类型不同
    • D.构造函数不可重载
  26. 在基类中有定义的纯虚函数,它要求在派生类中定义,而且基类不能用以说明对象,则该类为(  )。

    • A.虚基类
    • B.抽象类
    • C.虚函数类
    • D.模板类
  27. 关于继承的目的和作用,说法不正确的是(  )。

    • A.继承是为了重复利用父类的可用代码,避免重复劳动
    • B.继承可以增加自己的父类不能实现的功能的代码,使子类的功能更完美,提高程序设计效率
    • C.子类可以继承父类的函数和数据,以便重复使用
    • D.子类为了改造父类
  28. 对于类的私有成员、公有成员,不正确的是(  )。

    • A.私有成员只对类的内部,不对外部
    • B.公有成员也叫接口,是与外部联系的通道
    • C.私有成员主要对数据成员而言,当然有些成员函数也是私有的
    • D.类的私有成员、公有成员只是相对而言,可以随时改变
  29. 对于下面程序,选项正确的是(  )。  #include<iostream>  using namespace std;  class point{    public:       void setpoint(unsigned, unsigned);       void getpoint(void);    private:       unsigned x;       unsigned y;  };  void point::setpoint(unsigned x, unsigned y)  {    point::x=x;    point::y=y;  }  void point::getpoint(void)  { cout<<"x:"<<x<<" "<<"y:"<<y<<endl;}  void main(void)  {    point p1,*p2;p2=π    p1.setpoint(20,10);    p1.getpoint();    p2->setpoint(1,2);    p2->getpoint();  }

    • A.该程序编译正确,能输出正确结果
    • B.该程序中 setpoint() 形式参数不应为x、y,这样与程序体中的x、y其实是一个变量了
    • C.该程序中的 setpoint() 程序体中的“point::x、point::y”应该改为x、y
    • D.错误在于主函数中的“p2=&p1;”上,应该改为p2=p1;
  30. 下面程序的输出结果是(  )。  #include<iostream>  using namespace std;  void swap(int x[2])  {  int t;    t=x[0];    x[0]=x[1];    x[1]=t;  }  void main()  {  int a[2]={4,8};  swap(a);    cout<<a[0]<<" "<<a[1];  }

    • A.4 8
    • B.8 4
    • C.4 4
    • D.8 8
  31. 下列说法正确的是(  )。

    • A.字符型数组与整型数组可通用
    • B.字符型数组与字符串其实没有什么区别
    • C.当字符串放在字符数组中时,要求字符数组长度比字符串长1个单元,要放字符串终结符'\0'
    • D.字符串的输出可以用它所存储的数组来输出,也可以字符串的形式整体输出,结果没区别
  32. 下列一维数组定义正确的是(  )。

    • A.x=5;int num[x];
    • B.const iht x=5;float num[x];
    • C.const float x=5;int num[x];
    • D.const int x;x=5;intnum[x];
  33. 下列程序写法不正确的是(  )。

    • A.func1(){…func2(){…}…}
    • B.func1(){…}func2(){…}
    • C.func2();func1(){…func2();…}func2(){…}
    • D.func1(){…func1();…}
  34. 有如下程序:  #include<iostream>  using namespace std;  int fun(int a, int b)  {return(++a*b++);}  void main()  {    int x=3,y=4,z=5,r;    r=fun (fun (x,y),z);    cout<<r>>endl;    cout<<x<<endl;    cout<<y<<endl;  }  该程序的输出的结果是(  )。

    • A.85 3 4
    • B.60 3 4
    • C.126 4 5
    • D.85 4 5
  35. 下列关于i的输出值,正确的是(  )。

    • A.#include<iostream> using namespace std; void main() { for(int i=0;i<=3;i++) i++; cout<<i; { 则输出值为5。
    • B.A程序的输出值为6
    • C.#include<iostream> using namespace std; void main() { for(int i=0;i<=3;i++) { i++; cout<<i; } } 则输出值为13。
    • D.C程序的输出值为5
  36. 关于函数的调用,下面不正确的是(  )。

    • A.由于程序总是从主函数开始,所以函数的调用总是在主函数和其他函数之间进行
    • B.函数的调用可以在任意函数之间进行,只要有需要
    • C.一个函数可以自己调用自己
    • D.函数返回时可以不必带回值,这时函数在定义时其类型应用void标示
  37. 对应于“int a, b; float c; scanf ("a=% d, b=% f c= % d", &a, &c, &b);”的输入是 (  )。

    • A.452146
    • B.45,67,89
    • C.s=45;b=67 c=89
    • D.a=45,b=67,c=89
  38. 对于while、do…while循环结构,正确的说法是(  )。

    • A.只是表达形式不同
    • B.do…while 结构中的语句至少执行一次
    • C.while 结构中的语句至少执行一次
    • D.条件成立时,它们有可能一次也不执行
  39. 链表不具有的特点是(  )。

    • A.不必事先估计存储空间
    • B.可随机访问任一元素
    • C.插入删除不需要移动元素
    • D.所需空间与线性表长度成正比
  40. 关于逻辑运算符的说法,正确的是(  )。

    • A.它们都是双目运算符,优先级相同
    • B.语句“int a = 0, i = l, b; b = a&&i++;”执行后, i的值为2
    • C.语句“int a = 1, i = l, b; b = a||++;”执行后,i的值为2
    • D.语句“int a = 1, i = l, b; b = a&&i++;”执行后, i的值为2
  41. C++程序设计语言是(  )。

    • A.完全的面向对象的程序设计语言
    • B.低级语言
    • C.既是面向对象的程序设计语言,又是结构化程序设计语言
    • D.结构化程序设计语言
  42. 下列叙述中,正确的是(  )。

    • A.软件就是程序清单
    • B.软件就是存放在计算,机中的文件
    • C.软件应包括程序清单及运行结果
    • D.软件包括程序、文档和数据
  43. 最常用的一种基本数据模型是关系数据模型,它的表示应采用(  )。

    • A.树
    • B.网络
    • C.图
    • D.二维表
  44. 需求分析阶段的任务是确定(  )。

    • A.软件开发方法
    • B.软件开发工具
    • C.软件开发费用
    • D.软件系统功能
  45. 数据库的故障恢复,一般是由(  )。

    • A.数据流图完成
    • B.数据字典完成
    • C.DBA完成
    • D.PAD图完成
  46. 循环链表的主要优点是(  )。

    • A.不再需要头指针了
    • B.从表中任一结点出发都能访问到整个链表
    • C.在进行插入、删除运算时,能更好地保证链表不断开
    • D.已知某个结点的位置后,能够容易地找到它的直接前趋
  47. 下列数据结构中,按“先进后出”原则组织数据的是(  )。

    • A.线性链表
    • B.栈
    • C.循环链表
    • D.顺序表
  48. 用链表表示线性表的优点是(  )。

    • A.便于随机存取
    • B.花费的存储空间较顺序存储的大
    • C.便于插入和删除操作
    • D.数据元素的物理顺序与逻辑顺序相同
  49. 根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分成(  )。

    • A.动态结构和静态结构
    • B.紧凑结构和非紧凑结构
    • C.线性结构和非线性结构
    • D.内部结构和外部结构
  50. 在软件测试设计中,软件测试的主要目的是(  )。

    • A.实验性运行软件
    • B.证明软件正确
    • C.演示软件的正确功能
    • D.发现软件错误而执行程序