江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2014春江苏省计算机二级VC++笔试真题

本页为文字题目,如果需要查看视频讲解,请点击江苏二级VC++考试题目视频讲解

绝密★ 启用前

2014年春

江苏省高等学校非计算机专业学生

计算机基础知识和应用能力等级考试

二级试卷

试卷语种:Visual C++语言

 

  明:

1.本试卷包括计算机基础知识部分和程序设计部分,考试时间共12 0分钟;

2.本试卷满分为60,分选择题和填空题,试卷不分AB类型;

3.计算机基础知识部分全部是选择题(20),程序设计部分分为选择题(1 0

  )和填空题(30)两种;

4.选择题用答题卡答题。每一项有ABCD四个可供选择的答案,请选

  择其中一个你认为正确的答案,HB铅笔涂写在答题卡的相应答题号内。

  每选对一项得1,不选或选错不得分;

5.填空题用答题纸答题。请将答案用蓝、黑色钢笔或圆珠笔填写在答题纸的

  相应答题号内,每个答案只占一行,不得换行。每填对一个答案得1,

不填或填错不得分;

6.请认真填写并仔细核对答题卡和答题纸上的学校名称、准考证号和姓名是

  否填写正确。

7.考试结束时将试卷、答题卡和答题纸放在桌上,不得带走。待监考人员收

  毕清点后,方可离场。

 

 

第一部分  计算机基础知识

一、选择题(用答题卡答题,答案依次填在120题号内)

1.在下列有关信息、信息技术、信息化、信息产业的相关叙述中,错误的是___1___   

    A.从不同的学科和视角出发,对"信息"一词的解释可能有所不同

    B.雷达技术、卫星技术、人工智能技术、数据库技术等均属于现代信息技术

    C.我国信息化建设既要充分发挥工业化对信息化的基础和推动作用,又要使信息化成为带动工业化升级的强大动力

    D.我国的信息产业在上世纪90年代起步,目前信息产业销售收入已达每年1亿元

2.在逻辑代数中,最基本的逻辑运算有三种,即逻辑加、逻辑乘和取反运算。其中,逻辑加常用符号___ 2___表示。

    AV

    B^

    C-

    D. .

3PC机主板又称母板,是PC机中十分重要的物理部件。下列关于PC机主板的叙述中,正确的是___3___

    A.从主板的物理尺寸来看目前没有标准,不同厂家生产的主板的物理尺寸均各不相同

    B.主板上安装有存储器芯片,例如ROM芯片、CMOS芯片等

    C. CPU是直接固定在主板上的,通常不可更换

    D.主板上安装的电池可在计算机突然断电时给计算机供电,以保证计算机能做好正常的关机工作

4。下面是关于BIOS的一些叙述,正确的是___4___   

    A. BIOS是存放于ROM中的一组高级语言程序

    BBIOS中含有系统工作时所需的全部驱动程序

    CBIOS系统包含了系统加电自检程序和CMOS设置程序

    D.没有BIOSPC机也可以正常启动工作

5USB是一种可以连接多个设备的总线式串行接口,目前在PC机及各种数码设备中普遍使用。下列相关叙述中错误的是 ___5___    

    A.通过USB接口与PC机连接的外部设备(如数码相机、扫描仪、打印机等)均不需要外接电源,这些设备均可通过USB接口由主机提供电源

    BUSB符合"即插即用"(PnP)规范,USB接口支持热插拔

    C. USB 2.0接口使用4线连接器,其连接器分为A型、B型等类型

    D. USB 3.0的最高数据传输速率可达每秒数百兆字节

6.打印机的性能指标主要是打印精度、打印速度、色彩数目和打印成本等。打印精度也就是打印机的分辨率,它用dpi来表示,是衡量图像清晰程度最重要的指标。dpi的含义是 ___6___   

    A.每厘米可打印的点数

    B.每平方厘米可打印的点数

    C.每英寸可打印的点数

    D.每平方英寸可打印的点数

7.自20世纪70年代初光存储技术诞生以来,光盘存储器获得迅速发展,形成了CDDVDBD三代光盘存储器产品。下列相关叙述中错误的是 ___7___   

  A.光盘片用于存储数据,其基片直径大多为120mm(约5英寸),用于记录数据的是一条由里向外的连续的螺旋状光道

  BCD光驱使用红外激光,DVD光驱使用红色激光,BD光驱使用蓝色激光

  C.目前一张BD光盘的存储容量可达25GB,是现有单面单层DVD盘容量的5倍左右

  D. DVD刻录机可以对DVD-RW光盘进行读写操作,但不能刻录CD-R光盘

8.下列关于计算机软件的叙述中,错误的是 ___8___

  A.人们不仅把程序,也把与程序相关的数据和文档统称为软件

  B.应用软件泛指那些为用户管理与操作使用计算机提供方便的一类软件

  C.共享软件是一种"买前免费试用"的具有版权的软件

  D.大多数自由软件都是免费软件,但免费软件并不全都是自由软件

9.下列关于Windows操作系统的说法中,错误的是 ___9___   

  A. Windows是目前使用最为广泛的操作系统,任何计算机都可安装和使用Windows操作系统

  BWindows操作系统采用并发多任务方式支持系统中多个任务的执行

  C.Windows操作系统中,虚拟存储器是由物理内存和硬盘上的虚拟内存联合组成的,其页面调度算法采用"最近最少使用"算法

  D.微软公司推出的Windows产品一般都有多个不同版本,例如家庭版、专业版等等

10.下列关于汇编语言的叙述中,错误的是 ___10___   

  A.汇编语言属于低级程序设计语言

  B.汇编语言源程序可以由计算机直接执行

  C.不同型号CPU支持的汇编语言不一定相同

  D.汇编语言是一种与CPU逻辑结构密切相关的编程语言

11.以下有关无线通信技术的叙述中,错误的是 ___11___

  A.短波具有较强的电离层反射能力,适用于环球通信

  B.卫星通信利用人造地球卫星作为中继站转发无线电信号,实现在两个或多个地球站之间的通信

  C.卫星通信也是一种微波通信

  D.手机通信不属于微波通信

12.下面关于我国第3代个人移动通信的叙述中,错误的是 ___12___   

  A.我国的3G移动通信有3种不同的技术标准

  B.中国移动公司采用的是我国自主研发的TD-SCDMA(时分-同步码分多址接入)技术

  C.不同的技术标准互相兼容,手机可以交叉入网,互相通用

  D.不同技术标准的网络是互通的,可以相互通信

13.假设IP地址为202.119.24.5,为了计算出它的网络号,下面 ___13___ 最有可能用作其子网掩码。

    A255.0.00

    B255.255.00

    C255.255.2550

    D255.255.255.255

14.下列有关网络两种工作模式(客户/服务器模式和对等模式)的叙述中,错误的是 ___14___

    A.近年来盛行的"BT"下载服务采用的是对等工作模式

    B.基于客户/服务器模式的网络会因客户机的请求过多、服务器负担过重而导致整体性能下降

    C. Windows操作系统中的"网上邻居"是按客户/服务器模式工作的

    D.对等网络中的每台计算机既可以作为客户机也可以作为服务器

  15.目前采用无线方式接入因特网的技术有多种,如无线局域网(WLAN)接入、GPRS移动电话网接入和3G移动电话网接入等。下列相关叙述中错误的是 ___15___   

    A.家庭(宿舍)中的多台计算机可以通过无线路由器共享ADSL(或光纤以太网)线路连接因特网

    BGPRS是在第2代移动通信系统GSM上发展出来的一种基于分组交换的数据通信业务

    C.采用3G移动电话网接入时,数据传输速率可达数十Mbps

    D.目前我国已有部分城市可采用4G移动电话网接入

  16.下面对于网络信息安全的认识正确的是 ___16___

    A.只要采用加密技术,就能保证数据不被非法窃取

    B.访问控制的任务是对每个(类)文件或信息资源规定不同用户对它们的操作权限

    C.数字签名的效力法律上还不明确,所以尚未推广使用

    D.根据人的生理特征(如指纹、人脸)进行身份鉴别在单机环境下还无法使用

  17. IE浏览器和Outlook Express中使用的UTF-8UTF-16 ___17___ 标准的2种编码方案。

    AGB2312

    BGBK

    CUCS(Unicode)

    DGB18030

  18.获取数字声音时,为了保证对频带宽度达20kHz的全频带音乐信号采样时不失真,其采样频率应达到 ___18___    以上。

    A40kHz

    B16kHz

    C12kHz

    D8kHz

  19.多年来不同公司开发了多种图像处理软件,因而出现了多种不同的图像文件格式。不同的图像文件格式通常采用不同的图像压缩方法和数据组织方式。下列四种图像文件格式中,通常为有损图像压缩的是 ___19___   

    A. BMP    B.GIF    C. TIF    D. JPEG

  20.下列有关数字视频信息的叙述中,错误的是 ___20___   

    A.目前有线电视台播放和传输的虽然已经是数字视频信号,但它需经机顶盒解码并转换为模拟电视信号后才能由传统电视机播放与收看

    B.数字摄像头是一种可以在线获取数字视频的设备,目前许多平板电脑、笔记本电脑已将数字摄像头集成在其中

    C.目前视频通信(如可视电话、会议电视等)采用的视频压缩编码标准为MPEG-1

    D.计算机动画是一种合成的数字视频,它的制作过程通常是先在计算机中生成场景和形体的模型,然后描述它们的运动,最后再生成图像并转换成视频信号输出

 

第二部分  VC++语言程序设计

    一、选择题(用答题卡答题,答案依次填在2130答题号内)

    21.以下说明语句中,正确的是 ___21___   

    A. int a,friend;int &b=a;       B.int Auto,x;int &y=&x;

    C. int For; int &z=For;         D.int a.cpp;int &c=& a.cpp;

    22.设有程序:

    #include

    #define SQR(X) X*X

    void main()

    { int a=10,k=2,m=1;

      a/=SQR(k+m) /SQR(k+m);

      cout<

    }

    执行该程序的输出结果是  ___22___   

    A.1    B.10    C.0    D.9

    23.下列叙述中不正确的是  ___23___ 

    A.含纯虚函数的类是抽象类          B.不能直接由抽象类建立对象

    C.抽象类可作为基类派生出新的类    D.可定义抽象类的对象

    24.设有语句:"int a=1,b=2,c=3,d=4,e ; e=b的值为  ___24___ 

    A.1    B.2    C.3    D.4

    25.静态成员函数不能直接访问  ___25___ 

    A.静态数据成员    B.非静态数据成员

    C.静态成员函数    D.类以外的函数和数据

    26.有关函数重载的以下叙述中,正确的是  ___26___ 

    A.函数名不同,但参数的个数和类型相同

    B.函数名相同,但参数的个数不同或参数的类型不同

    C.函数名相同,参数的个数和类型也相同

    D.函数名相同,函数的返回值不同,而与函数的参数和类型无关

    27.建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序为 ___27___    的构造函数。

    A.自己所属类、对象成员所属类、基类    B.对象成员所属类、基类、自己所属类

    C.基类、对象成员所属类、自己所属类    D.基类、自己所属类、对象成员所属类

    28.为了避免嵌套的if语句的二义性,C++语言规定else ___28___  配对。

    A.编辑时在同一列上的if      B.同一行上的if

    C.其之后最近的if            D.其之前最近的还没有配对过的if

    29.以下关于函数的叙述中,正确的是  ___29___

    A.函数的定义不能嵌套,但函数的调用可以嵌套

    B.函数的定义可以嵌套,但函数的调用不能嵌套

    C.函数的定义和调用都不能嵌套

    D.函数的定义和调用均可以嵌套

   30.以下的叙述中,不正确的是  ___30___ 

    A.通常类的定义在前,该类的对象定义在后

    B.一个类可由多个基类派生,通常基类定义在前,派生类定义在后

    C.若一个类没有定义析构函数,则系统会自动为其产生一个缺省的析构函数

    D.可以将构造函数定义为虚函数

二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)

●基本概念题,5

1.C++中有两种多态性:静态多态性和动态多态性。静态多态性是通过  ___(1)___  来实现的,而动态多态性是通过  ___(2)___ 来实现的。

2.在类的多重继承中,为了保证同一基类在派生类中只有一个拷贝,可通过  ___(3)___  来实现。

3.对于基本数据类型的静态变量,其缺省初值为  ___(4)___   

4.执行语句"int a=5,b=6,c;c=a++ || b++;",b的值为  ___(5)___ 

●阅读程序题,13

5.[程序]2分)

  #include 

  int fun(int x,  int &y)

  { int a=x;

    static int b=10;

    x=a+y;    y=b+y;    b=y+a;

    return  (x++);

  }

  void main(void)

  {int x=1,  y=5;

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

      cout<  y)<<'\t';    cout<

    }

  }

  执行程序后,输出的第一行是  ___(6)___  ,第二行是  ___(7)___ 

6.[程序](3)

 #include

void fun(int *s,int n1,int n2)

{while (n1  *(s+n2)+=*(s+n1);n1++; n2--;}

    for (int  sum=s[0], k=1; k<4; k++)    sum+=s[k];

    cout<

}

void main(void)

{int a[ ]={1,2,3,4};

    fun (a,0,2);fun (a,1,3);fun (a,0,3);

}

  执行程序后,输出的第一行是  ___(8)___  ,第二行是  ___(9)___  ,最后一行是  ___(10)___ 

7.[程序](3)

     #include

      void fun(int *s, int p1, int p2) {

          int c;

          c=s[p1];  s[p1]=s[p2];   s[p2]=c;

          p1--; p2++;

          if(p1>p2) fun(s,p1,p2);

     }

      void p(int b[],int i) {

           for (int  j=0; j

           cout<

      }

       void main()

       {   int  a[]= {10, 20, 30, 40, 50, 60} ;

           fun(a,2,1);  p(a,6);

           fun(a,5,2);  p(a,6);

           fun(a,5,0);  p(a,6);

       }

执行程序后,输出的第一行是  ___(11)___  ,第二行是  ___(12)___  ,最后一行是  ___(13)___ 

8.[程序](3)

      #include

      int  n1=0, n2=0, n3=0, n4=0 ;

      class T{

      public:

           T(int a){   ia=a;   n1++;    }

           void print() { cout<

           int Getia()  {return ia;}

      private :

          int ia;

      };

       class S1:public T{

           int x;

       public:

          S1(int a,int c):T(a) { x=c; n2++; }

          void printS1()  { cout<

       };

       class S2:public T{

           int y;

       public:

          S2(int a):T(10) {  y=a;   n3++;  }

          void printS2()  {cout<

          };

       class S:public S1,public S2{

          int xx;

       public:

         S(int a,float b,int c,int d):S1(a,b),S2(c) { xx=d;   n4++;}

         void printS() {cout<

      };

     void main(void)

     {    T t1(2) ;      S1 t2(3,4) ;

          S2  t3 (5) ;   S  t4(6, 7, 8, 9),  *p;

          p=&t4;

          p->printS () ;         p->printS1 () ;               p->printS2() ;

          cout<

     }

执行程序后,输出的第一行是  ___(14)___  ,第二行是  ___(15)___  ,最后一行是  ___(16)___ 

9.[程序](2)

  #include

  class A{

      int a;

  public:

      A(int aa)   { a=aa;}

      void print() { cout<

      int Geta()  {return a;}

   };

  class B:public A{

      int b;

  public:

      B(int a,int c):A(a) { b=c;}

      virtual void print() { cout<

      int Getb()  { return b;}

   };

  class C:public B{

     int c;

  public:

     C(int a1,int a2,int a3):B(a1,a2) { c=a3;}

     void  print()   {  cout<

  };

 void main(void)

 {      A obj1(10),*p1;         B obj2(20, 30),*p2;         C obj3 (40, 50, 60) ;

        obj3. print () ;       p1=&obj3;       p2=&obj3 ;

        p1->print();        p2->print () ;

        p1=&obj2;             p1->print () ;

  }

执行程序后,第二行是  ___(17)___  ,第三行是  ___(18)___ 

●完善程序题,12

10.以下程序求满足下述条件的三位数n: 要求n除以11(整数除法)所得到的商等于n的各位数字的平方和,n中至少有两位数字相同。例如,131,它除以11的商为11,各位数字的平方和为11,因此它是满足条件的三位数。又如550也是满足条件的三位数。成员函数f(int a,int b)判断a的各位数字的平方和是否等于b,并且a的各位数字中是否至少有两位数字相同。函数find()找出所有满足条件的三位数。

[程序]4分)

  #include

  #include

  class num(

    int x[50],count;  //x中存放满足条件的数

  public:

    num()  {count=0;}

    int f(int a,int b)  {

      int n1,n2,n3;

      n1=a/100;

      n2= ___(19)___   ;

      n3=a;

      if (___(20)___) return 0;

      if(n1==n2 || n1==n3 || n2==n3) return 1;

      return 0;

    }

    void find() {

      int j:

      for(int i=100;i<=999;i++){

          j=i/ll;

          if (___(21)___){

           x [count]=i;

           ___(22)___ ;

          }

       }

    }

    void output()  {

       for (int   i=0; i

         cout<

         cout<

    }

  };

  void main(void)

  {  num a;

     a.find();

    a.output();

  }

  11.以下程序中,AA的功能是管理一个数组,其中成员函数Set()实现数组的初始化,Ave()求数组的平均值,Sort()按升序对数组中的元素进行排序。

    [程序](4)

    #include

    class AA{

       int a[10];    int n;    float av;

    public:

    void Set(int aa[],int nn){

      for(int i=0;i<10;i++)

         a[i]=aa[i];

      n=nn;

    }

    void Ave()  {

      float sum=a[0];

      for(int i=1;i

         ___(23)___;

      av=sum/n;

    }

    void Sort()  {    //选择排序法实现数组排序

      int i,j,k,x;

      for (i=0;i

         k=i;

        for(j=i+1;j

          if(___(24)___)

              k=j;

        if(___(25)___){

          x=a[i];

          a[i]=a[k]:

          a[k]=x;

        }

      }

    }

    void Print()  {

         for (int i=0; i<10; i++) cout<

         cout<平均值="<

    }

  };

  void main()

  {

    int  a[10]= {5,8,7,4,1,6,2,9,3,0};

    AA A;

    ___(26)____;

    A.Ave();

    A.Sort();

    A.Print();

  }

12.以下程序首先建立一条链表,然后按照如下顺序删除链表中的结点:以链表的第一个结点为1号结点开始依次搜索,删除所有序号为3的倍数的结点,即删除第369、……个结点,  当搜索一遍结束后再从链表头部继续此操作,直到链表的结点个数少于3个为止a

    程序输出为:

    当前链表中的结点依次为:23  12  32  54  74  25  65  94  17  72

    1轮删除的结点为:32  25    17

    当前链表中的结点依次为:23  12  54  74  65  94  72

    2轮删除的结点为:54  94

    当前链表中的结点依次为:23  12  74  65  72

     ......

    5轮删除的结点为:72

    链表中剩余的结点为:23 12

    #include

    struct node{

      int data;

      node *next;

    };

    node *Insert(int x,  node *head)

    {node *p;

     p= new node;

     p->data=x;

     ___(27)___  ;

     return p;

    }

    void fun(node *head, int n)

    { node *p,*p1,*q;

      int i,num=1;

      if(!head) return;

      while (n>2){

       cout<<"当前链表中的结点依次为:";

       p=head;

       while (p){

         cout<data<<"  ";

         p=p->next ;

       }

      cout<"<轮删除的结点为:";

      p=head;

      q=head->next ;

      i=2 ;

      while (q) {

         if(i%3==0){

            cout<data<<' \t' ;\

            ___(28)___;

             delete q;

            q=p->next ;

            n-- ;

            i++;

         }

         else {

             p=p->next ;

             i++;

             ___(29)___;

         }

       }

        num++;

        cout<

     }

     cout<<"链表中剩余的结点为 :";

     p=head;

     while (p) {

       cout<data <" ";

       p=p->next ;

     }

     cout<

    void main(void)

    {

      int a[10]={23, 12, 32, 54, 74, 25, 65, 94, 17, 72};

      node *head=0;

      for(int i=9; i>=0; i--)

        ___(30)___;

      fun (head,   10) ;

    }

 本页为文字题目,如果需要查看视频讲解,请点击江苏二级VC++考试题目视频讲解