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

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

   绝密★ 启用前

2013年秋

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

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

二级试卷

试卷语种:VC++语言

 

  明:

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

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

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

  )和填空题(30)两种;

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

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

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

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

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

  不填或填错不得分;

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

  否填写正确。

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

  毕清点后,方可离场。

 

 

第一部分计算机基础知识

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

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

    A.信息、物质与能量是客观世界的三大构成要素,没有信息则任何事物都没有意义

    B.现代信息技术的主要特征之一是以计算机及其软件为核心

    C.信息化的概念起源于上世纪90年代,我国的信息化建设起步于本世纪初

    D.信息产业主要包括信息设备制造业、信息服务业、信息开发业等

    2.对二进制数0101分别进行算术加和逻辑加运算,其结果用二进制形式表示分别为    ___2___   

    A01 10

    B10 01

    C01 01

    D10 10

    3.芯片组是PC机各组成部分相互连接和通信的枢纽。下列关于芯片组的描述中,错误的是___3___

    A.芯片组是主板上的重要部件,它直接固定在主板上,通常不可更换

    B.芯片组与CPU的类型必须相配

    C.芯片组提供了CPU的时钟信号

    D.所有外部设备的控制功能都集成在芯片组中

    4.关于PC机主板上的CMOS芯片,下面说法中正确的是___4___    

    A. CMOS芯片需要一个电池给它供电,否则其中的数据在主机断电后会丢失

    BCMOS芯片用于存储加电自检程序

    CCMOS芯片用于存储BIOS,是易失性的

    D. CMOS芯片用于存储计算机系统的配置参数,它是只读存储器

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

    A. USB接口有USB l.0USB l.1USB 2.0USB 3.0之分

    B.通过USB接口给外部I/O设备提供电源时,电源为+5V

    C.目前广泛使用的USB 2.0的最高数据传输速率可达每秒数十兆字节

    D.借助于“USB集线器”可以扩展PC机的USB接口数目,使得一个USB接口理论上能连接1024个设备

    6.显示器是计算机必不可少的一种图文输出设备,其作用是将数字信号转换为光信号,使文字与图形在屏幕上显示出来。下列相关叙述中错误的是    ___6___   

    A.目前PC机使用的显示器主要有两类,CRT显示器和LED显示器

    B.显示器屏幕大小以显示屏的对角线长度来度量

    C.PC机的显示控制器过去大多数做成插卡的形式,为了降低成本,现在显示控制器已经越来越多地集成在主板芯片组或CPU芯片中

    D.目前显卡主要使用AGP接口或PCI-E x16接口,前者性能优于后者

    7.下列有关PC机常见外部存储器的叙述中,错误的是    ___7___

    A.移动硬盘通常采用微型硬盘加上特制的配套硬盘盒构成,采用USB接口与主机相连接

    B.目前U盘可以模拟光驱和硬盘启动操作系统

    C.存储卡是用闪存做成的一种固态存储器,具有与U盘相同的多种优点,目前所有PC机都配置了读卡器,以便对存储卡进行读写操作

    D. SSD是基于半导体存储器芯片的一种外存储设备,可被用在便携式计算机中代替常规的硬盘

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

    A.软件的含义比程序更宏观、更物化一些。一般情况下,软件往往指的是设计比较成熟、功能比较完善、具有某种使用价值的程序

    B.软件产品一般是指软件开发厂商交付给用户用于特定用途的一整套程序、数据及相关的文档(包括安装和使用手册等)

    C.免费软件一般是指用户可共享的软件,允许随意拷贝、修改其源代码,允许自由传播

    D.  MS Office软件包中包含多个软件产品,安装时用户可以进行有选择的安装

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

    A.处理器管理的主要目的是提高CPU的使用效率

    B.多任务处理是将CPU时间划分成时间片,轮流为多个任务服务

    C.并行处理系统可以让多个CPU同时工作,提高计算机系统的性能

    D.多任务处理要求计算机必须使用多核CPU

    10.下列关于程序设计语言的说法中,正确的是    ___10___   

    A.高级语言程序的执行速度比低级语言程序快

    B.高级语言就是人们日常使用的自然语言

    C.高级语言与CPU的逻辑结构无关

    D.无需经过翻译或转换,计算机就可以直接执行用高级语言编写的程序

    11.下列关于目前最常用的无线通信信道的说法中,错误的是    ___11___   

    A.无线电波可用于传输模拟信号,也可以用于传输数字信号

    B.利用微波可将信息集中向某个方向进行定向传输,以防止他人截取信号

    C.短波通信适用于环球通信

    D.激光能在长距离内保持聚焦并能穿透物体,因而可以传输很远的距离

    12.目前我国和欧洲广泛使用的GSM(全球通)手机属于    ___12___    移动通信。

    A.第一代

    B.第二代

    C.第三代

    D.第四代

  13.以下选项中,只有    ___13___    可用作某台主机的lP地址。

    A62.26.1.256

    B202.119.24.5

    C78.0.0.0

    D223.268.129.1

14.因特网中主机的符号名被称为它的域名。下列关于域名的叙述中,错误的是    ___14___

  A.域名是IP地址的一种符号表示

  B.上网的每台计算机都有一个IP地址,所以也有各自的域名

  C.把域名翻译成IP地址的软件称为域名系统DNS

  D.运行域名系统DNS的主机叫做域名服务器,每个校园网都有一个域名服务器

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

  A.采用无线局域网接入方式,可以在任何地方接入

  B.采用3G移动电话上网比GPRS快得多

  C.目前大多数智能手机支持WLAN接入技术

  D.目前采用移动电话上网的费用还比较高

16.下列关于网络信息安全措施的叙述中,正确的是    ___16___   

  A.带有数字签名的信息是未泄密的信息

  B.防火墙可以防止外界接触到内部网络,从而保证内部网络的绝对安全

  C.数据加密的目的是在网络通信被窃听的情况下仍然保证数据的安全

  D.使用最好的杀毒软件可以杀掉所有的病毒

17.下列有关字符编码标准的叙述中,正确的是    ___17___   

  A. UCS/Unicode编码的目标是实现全球不同语言文字的统一编码

  BASCIIGB2312GBK是我国为适应汉字信息处理需要而制定的一系列汉字编码标准

  C. UCS/Unicode编码与GB2312编码保持向下兼容

  D. GB18030标准就是Unicode编码标准,它是我国为了与国际标准UCS接轨而发布的一种汉字编码标准

18.与计算机能合成图像一样,计算机也能合成(生成)声音。计算机合成声音分为合成语音和合成音乐两类,其中合成音乐的文件扩展名为    ___18___   

  AWAV

  BMID

  CMP3

  DWMA

19.彩色图像所使用的颜色描述方法称为颜色模型。显示器使用的颜色模型为RGB三基色模型,彩色打印机所使用的颜色模型大多为    ___19___   

  AYUV

  BHSB

  CCMYK

  DRGB

20.数字视频信息的数据量相当大,对存储、处理和传输都是极大的负担,为此必须对其进行压缩。目前数字有线电视和卫星电视所传输的数字视频采用的压缩编码标准大多是    ___20___   

  AMPEG-1

  BMPEG-2

  CMPEG-4

  DMPEG-7

 

 

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

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

21.设有说明;"char s[100]="my\'s apple. \nyour=\65"",strlen(s)的值是___21___   

    A19    B24    C27    D28

22.设有程序段;"int a=7,b=2,c=2,d;float x=5,y;y=a/b/c;d=x/c;",yd的值分别是___22___ 

    A.  1. 75  2.5    B.  1.75  2    C.1.0  2.5    D.1.0  2

23.下列有关breakcontinue语句的叙述中,正确的是___23___   

    A.前者用于循环语句,后者用于switch语句

    B.前者用于循环语句或switch语句,后者用于循环语句

    C.前者用于switch语句,后者用于循环语句

    D.前者用于循环语句,后者用于循环语句或switch语句

24.a为整数,C++中能正确地表达数学式10a<15的是___24___   

    A. 10a<15         B.a>=10||a<15

    C. a>=10&&a<=14     D.!(a<10)&&(a>15)

25.以下关于函数重载的叙述中,正确的是___25___

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

    B.函数名相同,函数的参数个数必须不同,对参数类型和函数的返回值的类型没有限制

    C.函数名相同,函数的参数类型必须不同,对参数个数和函数的返回值的类型没有限制

    D.函数名相同,函数的参数个数或者参数类型不同,对函数的返回值的类型没有限制

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

    A.类的析构函数可以重载      B.类的析构函数可以有一个或多个参数

    C.析构函数可定义为虚函数    D.定义类时,必须显式地定义析构函数

27.以下有关类的叙述中,不正确的是 ___27___

    A.类是一组对象的模板

    B.类是数据和函数(方法)的封装体

    C.在类中定义数据成员时,可直接对数据成员设置初值或赋值

    D.对象是类的实例,类声明在前,而对象定义在后

28. -个类中定义了成员函数、静态成员函数和友元函数,以下叙述中正确的是___28___   

    A.成员函数、静态成员函数和友元函数都具有this指针

    B.成员函数具有this指针,静态成员函数和友元函数没有this指针

    C.成员函数和静态成员函数具有this指针,但友元函数没有this指针

    D.成员函数和友元函数具有this指针,而静态成员函数没有this指针

29.以下有关基类及其派生类的叙述中,正确的是___29___   

    A.基类对象不能赋给派生类对象    B.基类的指针变量可访问派生类对象中的所有成员

    C.派生类对象不能赋给基类对象    D.派生类对象的地址不能赋给其基类的指针变量

30.以下有关运算符重载的叙述中,正确的是___30___

    A.能用成员函数重载的运算符,均能用友元函数重载

    B.能用友元函数重载的运算符,均能用成员函数重载

    C.用成员函数或友元函数重载同一运算符时,两者的参数类型与个数相同

    D.通过运算符重载,能改变运算符的优先级

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

●基本概念题,5

1.在创建对象时,系统自动调用___(1)___ 

2.函数参数的传递方式有三种,分别是值传递、___(2)___  ___(3)___ 

3c++中的作用域有五种,分别是块作用域、文件作用域、函数原型作用域、___(4)___  ___(5)___ 

●阅读程序题,13

4.[程序]2分)

    #include

    int *p;

    void fun(int a,int &b)  {

        p=&b;

        a+=*p;    b +=a;

        cout<t'  <  <<*p<

    }

    void main(void)

    {

        int x=20,y=30;

        fun(x,  y)  ;

        cout<t'<

    }

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

5.[程序]3分)

    #include

    void fun(int *a,int *b)  {

        int i,x, y;

        b+=2;

        for (i=0; i<2;i++){

           *a=*a+*a++; *b=*b+*b--;

           if(i==0) x=*a+*b;else y=*a+*b;

        }

        cout<t'<

    }

    void main(void)

    {

        int cl[3]={l,2,3},c2[3]={4,5,6};

        fun (cl,c2);

        cout<t'<

        cout<t'<t'<

    }

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

6.【程序】(3分)

    #include

    int fun(int (*f)(int),int m,int n){

        int k,  sum=0;

        for(k=m;k<=n;k++){sum+=f(k)*f(k);  cout<

        return sum;

    }

    int fl(int x)

    {    return  ++x;}

    int  f2 (int x)

    { return x++;}

    void main(void)

    {

      int s1,s2;

      sl=fun(fl,2,3);  s2=fun(f2,2,3);

      cout<

    }

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

7[程序]3分)

    #include

    int numl =O,num2=0;

    class Point{

        int x,y;

    public;

        Point (int a=0,int  b=0)  {

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

        }

        Point(Point &p)

       {    x=p.x;  y=p.y;  num2++;}

       int getx()    { return x;}

       int gety()    { return y;}

    };

    Point f(Point &p){

        Point t(p.getx()+2,p.gety()+4);

        return t;

    }

    void main(void)

    {

      Point  p1,p2(10,20),*pp=&p1;

      Point p3=p2;

      pl=f(p3);

      cout<<"x="<getx()<<",y="<gety()<

      cout<

    }

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

8.[程序]2

  #include 

    class A(

    public;

        int x,y;

        A(int a,int b)

        {x=a;y=b;}

        virtual void display() {cout<t'<

    };

    class B:public A{

    public;

       int  z;

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

       void  display()  {cout<

    };

    class D;public B{

    public;

        int m;

        D(int a,int b,int c,int d):B(a,b,c)  {m=d;}

        void display()  {cout<t'<t'<t'<t'<

    };

    class E:public A{

    public;

        int n;

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

        void  displayl()  {cout<<"E::"<

    };

    void fun(A *p1) {

       p1->display();

    }

    void main(void)

    {

       A b0(10,20),*p;

       p=&b0;    fun (p);

       B  b1(30,40,50);

       D  dl(31,41,51,61);

       p=&b1;    fun (p);

       p=&d1;    fun (p);

       E  e1(100,200,300);

       p=&e1;  fun (p);

    }

    执行以上程序后,输出的第二行是___(17)___  ,第四行是___(18)___ 

完善程序题,12

9以下程序中,成员函数sort()的功能是使p所指向的字符串中的字符按照其ASCII码值从小到大排

序。成员函数merge (str &a,str &b)先对对象ab中字符串的各个字符进行排序,然后将两个已排

序的字符串合并,合并后仍然按升序排列。

【程序】4

   #include

   #include

   class str{

    public;

       char *p;

       str(char *s=0) {

               if(s!=0) {

                   p=new  char[strlen(s) +1] ;

                   strcpy (p,s) ;

               }

          else p=0;

        }

        ~str() {if(p) delete []p;}

        void output() { cout<

        void sort() {

            int  n=strlen (p) ;

            for (int  i=n-l; i>0 ; i--)

               for(int  j=0; j

                  if(___(19)___){

                     char t=p[j];

                     ___(20)___;

                     p[j+1]=t;

                   }

        }

       void merge(str &a,str &b) {

          a.sort();   b.sort();

          if (p)

             delete []p;

          p=___(21)___;

          char *pa=a.p,*pb=b.p,*pc=p ;

          while (*pa&&*pb)

             if (*pa<*pb)  *pc++=*pa++;

             else *pc++=*pb++;

          if(*pa)

            while(*pa) *pc++=*pa++;

          else

           while(*pb) *pc++=*pb++;

          *pc=0;

         }

       };

      void  main (void )

      {

       str  s1("Hello,Wang."),s2 ("You  are  students."),s3;

       ___(22)___;

      s1. output();    s2. output();    s3. output();

    }

10.以下程序中,成员函数fun()的功能是;n为偶数时,调用函数even()x=l/2+1/4+...+l/n;

n为奇数时,调用函数odd()x=l/l+l/3+...+l/n。函数fact()的功能是计算y=1!+2!+3!++n!

的值。

【程序】(4分)

    #include 

    class A{

       float x,y;    int n;

    public;

       A(int m){n=m;}

       float even() {

          float  s=0.5;

          if(n==2) return (s);

          for (int   i=4; i<=n; i+=2)

             ___(23)___;

           return (s);

    }

    float odd(){

        float s=l;

        if(n==1)return s;

        for (int   i=3; i<=n;___(24)___  )

           s+=1.0/i;

        return (s);

    }

    void fact()  {

       float fa=1;

       y=l;

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

         ___(25)___ ;

         ___(26)___ ;

       }

    }

    void fun()    {

       if (n%2)  x=odd();

       else x=even();

    }

    void print(){cout<<"n="<t'<<"x="<t'<<"y="<

  };

 

   void main(void)

   {  A  a1(3),a2(20);

      a1.fun();    a2.fun();

      a1.fact();   a2.fact();

      a1.print();  a2.print();

   }

11.以下程序中各函数的功能是;createlist (int *x,int  num)根据数组x中的数据产生具有num

结点的链表;concatenate(list *h1,list *h2)h1h2所指向的两个链表连接成一个链表;

sort(list *h,int num)h所指向的链表(有num个结点)按结点数据的升序排列,在排序过程中只

交换结点上的数据,即将最小数放到第一个结点上,将次小数放到第二个结点上,,直至最大数放

在最后一个结点上为止;delelist()依次删除链表上的结点。

[程序](4)

    #include

    struct list{

    int data;

    struct list *next;

  );

  void print (list *h)  {

    while (h){    cout<data<<'\t'; h=h->next;}

    cout<

  }

  list *sort(list *h,int num) {

    list  *p1,*p2,*p3;

    int i,min;

    for(i=0;i  {

      if(i==0) p1=h;

      else  ___(27)___    ;

      min=p1->data;

      p3=p1;    p2=p1->next;

      while( ___(28)___  ){

        if (min>p2->data){

            min=p2->data;    p3=p2;

        }

        p2=p2->next  ;

    }

    if(p3 !=pl){

      p3->data =p1->data;    p1->data =min;

    }

   }

   return h;

  }

 

 list *createlist(int *x,int num) {

    list  *tmp1,*tmp2,*p ;

    int i;

    p= new list;

    p->data=x[0] ;

    tmpl=p ;

    for(i=1;i

        tmp2=nevr list;

        tmp2->next=NULL;

        ___(29)___;

        tmpl->next=tmp2 ;

        tmpl=tmpl->next ;

    }

    return p;

 }

list *concatenate(list *h1,list *h2)

{  list *tmp;

   tmp=h1 ;

   while(___(30)___)

       tmp=tmp->next ;

   tmp->next=h2 ;

   return h1;

}

void delelist(list *h)

{   list *p;

    while (h) {

       p=h;   h=h->next ; delete p;

    }

}

void main(void)

 {    int  a[]= {3,12,8,9,11},b[]= {13,5,20,20,35,18} ;

      list *h1,*h2,*h;

      hl=createlist (a,5) ;         print (hl) ;

      h2=createlist (b,6) ;         print (h2) ;

      h=concatenate (hl,h2) ;       print (h) ;

      h=sort (h,11) ;               print (h) ;

      delelist (h) ;

}

                                                                                                                     .

 

  201310月江苏省计算机二级Visual C++参考答案

     笔试公共基础部分

(1)错误的是:C 信息化的概念起源于上世纪90年代,我国的信息化建设起步于本世纪初

(2)正确的是:B10. 01

(3)错误的是:D.所有外部设备的控制功能都集成在芯片组中

(4)正确的是: A. CMOS芯片需要一个电池给它供电,否则其中的数据在主机断电后会丢失

(5)错误的是:D.借助于“USB集线器”可以扩展PC机的USB接口数目,使得一个USB接口理论上能连接1024

    个设备

(6)错误的是: D.目前显卡主要使用AGP接口或PCI-E x16接口,前者性能优于后者

(7)错误的是: C.存储卡是用闪存做成的一种固态存储器,具有与U盘相同的多种优点,目前所有PC机都配置了

    读卡器,以便对存储卡进行读写操作

(8)错误的是:C.免费软件一般是指用户可共享的软件,允许随意拷贝、修改其源代码,允许自由传播

(9)错误的是:D.多任务处理要求计算机必须使用多核CPU

(10)正确的是:C.高级语言与CPU的逻辑结构无关

(11)错误的是:D.激光能在长距离内保持聚焦并能穿透物体,因而可以传输很远的距离

(12)B.第二代

(13)正确的是:B.202.119.24.5

(14)错误的是:B.上网的每台计算机都有一个IP地址,所以也有各自的域名

(15)错误的是:A.采用无线局域网接入方式,可以在任何地方接入

(16)正确的是:C.数据加密的目的是在网络通信被窃听的情况下仍然保证数据的安全

(17)正确的是:A. UCS/Unicode编码的目标是实现全球不同语言文字的统一编码

(18)BMID

(19)CCMYK

(20)BMPEG-2

201310月江苏省计算机二级Visual C++参考答案

     笔试公共基础部分

 (1) C (2) B (3) D  (4) A (5) D (6) D (7) C(8) C. (9) D(10) C

(11) D(12)B (13) B(14) B(15) A(16) C(17) A (18)B(19)C(20)B

21.A  22.D  23.B  24.C  25.D  26.C 27.C  28.B  29.A  30.B

二、填空题

1)构造函数   2.地址或引用传递

3.引用或地址传递   4.函数作用域或类作用域  5.类作用域或函数作用域

(6)50   80   80    (7)20  80  80   (8) 7  7   (9)2  4  3

(10)4  10  12  (11)9   (12)25  (13)38    (14)x=12,y=24

(15)3   (16)2  (17)30  40   50   (18)100  200\

(19)p[j]>p[j+1]   (20)p[j]=p[j+1]  (21)new char[strlen(a.p)+strlen(b.p)+1]

(22)s3.merge(s1,s2)  (23)s+=1.0/i   (24)i+=2   (25)fa*=i  

(26)y+=fa   (27)p1=p1->next    (28)p2  (29)tmp2->data=x[i]  (30)tmp->next

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