一起答

2017年计算机二级考试C++模拟试题1

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 以下程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,例如对于数字 12,有1*2<1+2,故不输出该数:对于27,有2*7>2+7,故输出该数。请填空。

     #include<iostream.h>

     void main()

      {

     int n,k=1,s=o,m;

     for (n=1:n<=100:n++=

      {

     k=1;s=0;

     _____,

     while(  )

     {

     k*=m%10;s+=m%10;

      (3) ;

  2. 插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到己排序序列中的正确位置。InsertSort类的成员函数sort()实现了插入排序算法。请将画线处缺失的部分补充完整。

     class InsertSort{

     public:

     InsertSort(int* a0,int n0):a(a0),n(n0){}//参数a0是某数组首地址,n是数组元素个数

     void sort()

     {//此函数假设已排序序列初始化状态只包含a[0],未排序序列初始为a[1]…a[n-1]

      for(int i=1;i<n;++i){

        int t=a[i];

      int j;

      for(【 】;j>0;--j){

        if(t>=a[j-1])break;

       a[j]=a[j-1];}

         a[j]==t;}}

     protected:

     int*a,n;//指针a用于存放数组首地址,n用于存放数组元素个数

      };

  3. 下面程序中错误之处是 ______。

     #include<iostream.h>

     class A{

       private:

         int xl;

       protected:

        int x2;

       public:

        int x3;

     };

     class B: public A{

       private:

        int b1;

       protected:

        int b2;

       public:

        int b3;

       void disp(){cout<<x1<<b2<<end1;} //A

        void set(int i){x3=i;}       //B

     };

     void main()

       B bb;

       bb. a3=10 //C

       bb. b3=10 //D

     }

  4. 若将一个二元运算符重载为类的成员函数,其形参个数应该是______个。

  5. 下列叙述中正确的是

    • A.数据库系统是一个独立的系统,不需要操作系统的支持
    • B.数据库技术的根本目的是解决数据的共享问题
    • C.数据库管理系统就是数据库系统
    • D.以上3种说法都不对
  6. 对于拷贝构造函数和赋值操作的关系,正确的是

    • A.拷贝构造函数和赋值操作是完全一样的操作
    • B.进行赋值操作时,会调用类的构造函数
    • C.当调用拷贝构造函数时,类的对象正在被建立并被初始化
    • D.拷贝构造函数和赋值操作不能在同一个类中被同时定义
  7. 在一个派生类的成员函数中,试图调用其基类的成员函数“void f( );”,但无法通过编译,这说明

    • A.f( )是基类的私有成员
    • B.f( )是基类的保护成员
    • C.派生类的继承方式为私有
    • D.派生类的继承方式为保护
  8. 软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是

    • A.编译程序
    • B.操作系统
    • C.教务管理系统
    • D.汇编程序
  9. 关于成员函数特征的下述描述中,(  )是错误的。

    • A.成员函数一定是内联函数
    • B.成员函数可以重载
    • C.成员函数可以设置参数的默认值
    • D.成员函数可以是静态的
  10. 继承机制的作用是

    • A.信息隐藏
    • B.数据封装
    • C.定义新类
    • D.数据抽象
  11. 以下函数值的类型是

     fun(float x)

     {float y;

     y=3*x-4;

     return y;

     }

    • A.int
    • B.不确定
    • C.void
    • D.float
  12. 在结构化程序设计中,模块划分的原则是

    • A.各模块应包括尽量多的功能
    • B.各模块的规模应尽量大
    • C.各模块之间的联系应尽量紧密
    • D.模块内具有高内聚度、模块间具有低耦合度
  13. 假定MyClass为一个类,则执行MyClassa,b(2),*p;语句时,自动调用该类构造函数(  )次。

    • A.2
    • B.3
    • C.4
    • D.5
  14. 下列(   )是C++语言的有效标识符。

    • A.Nol
    • B.N0.1
    • C.12345
    • D.int
  15. 在一个被调用函数中,关于rerun语句的描述,______ 是错误的。

    • A.被调用函数中可以不用return 语句
    • B.被调用函数中可以使用多个return 语句
    • C.被调用函数中,如果有返回值,就一定要有return 语句
    • D.被调用函数中,一个return 语句可以返回多个值给调用函数
  16. 有如下程序:

    #include

    usingnamespacestd;

    classTest(

    public:

    Test(  ){}

    Test(constTest8Lt){cout<<1;}

    };

    Testfun(Test&u){Testt=U;returnt;}

    intmain(  ){Testx,y;x=fun(y);return0;}

    运行这个程序的输出结果是(  )。

    • A.无输出
    • B.1
    • C.1l
    • D.111
  17. 下面 ______ 是正确的递归函数,它保证对所有的参数能够结束。

    • A.int f(int n){ if(n<1) return 1; else return n*f(n+1); }
    • B.int f(int n){ if(n>1) return 1; else return n*f(n-1); }
    • C.int f(int n){ if(abs(n)<1) return 1; else return n*f(n/2); }
    • D.int f(int n){ if(n>1) return 1; else return n*f(n*2); }
  18. 为了使类中的成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为(  )。

    • A.public
    • B.protected
    • C.static
    • D.private
  19. 下列运算符中哪些是不能够被重载的?

    • A..,.*,->*,::,?:
    • B.++,--,new,delete,==
    • C.sizeof,new,delete,++,--
    • D.sizeof,new,delete,+,-
  20. C++语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言

    • A.ASP
    • B.C
    • C.VB
    • D.Java
  21. 下面关于C++语言变量的叙述错误的是(  )。

    • A.C++语言中变量分为auto,static,extern和register四种存储类型
    • B.自动变量和外部变量的作用域为整个程序
    • C.内部静态变量的作用域是定义它的函数
    • D.外部静态变量的作用域是定义它的文件
  22. 下列叙述中错误的是(  )。

    • A.线性表是由n个元素组成的一个有限序列
    • B.线性表是一种线性结构
    • C.线性表的所有结点有且仅有一个前件和后件
    • D.线性表可以是空表
  23. 关于this指针的说法错误的是(  )。

    • A.this指针必须显示说明
    • B.当创建一个对象后,this指针就指向该对象
    • C.成员函数拥有this指针
    • D.静态成员函数不拥有this指针
  24. 用黑盒技术测试用例的方法之一为(  )。

    • A.因果图
    • B.逻辑覆盖
    • C.循环覆盖
    • D.基本路径测试
  25. 在C++语言类体系中,不能被派生类继承的有

    • A.转换函数 
    • B.构造函数 
    • C.虚函数 
    • D.静态成员函数
  26. 下列关于多态性的描述,错误的是

    • A.C++语言中的多态性分为编译时的多态性和运行时的多态性
    • B.编译时的多态性可通过函数重载实现
    • C.运行时的多态性可通过模板和虚函数实现
    • D.实现运行时多态性的机制称为动态绑定
  27. 一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为(  )。

    • A.38,40,46,56,79,84
    • B.40,38,46,79,56,84
    • C.40,38,46,56,79,84
    • D.40,38,46,84,56,79
  28. 下列程序的运行结果为

     #include<iostream.h>

     int i=0;

     class A {

     public:

    • A( ) {i++;}    };    void main( )    {
    • A a,b [3] , * c;
    • c=b;
    • cout < < i < < endl;    }
    • A.2
    • B.3
    • C.4
    • D.5