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

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

绝密★ 启用前

2012年秋

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

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

二级试卷

试卷语种:C++语言

 

  明:

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

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

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

  )和填空题(30)两种;

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

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

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

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

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

  不填或填错不得分;

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

  否填写正确。

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

  毕清点后,方可离场。

 

 

第一部分   计算机基础知识

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

1.下列关于信息、信息技术、信息产业与信息化的叙述中。错误的是___1___   

    A.世间一切事物都在运动,都具有一定的运行状态,因而都在产生信息

    B.现代信息技术的主要特征之一是以数字技术为基础

    C.信息产业特指利用信息设备进行信息处理与服务的行业,它不包括任何生产制造行业

    D.信息化是一个推动人类社会从工业社会向信息社会转变的社会转型的过程

2.下列关于数字技术与微电子技术的叙述中,错误的是___2___

  A.数字技术的处理对象是"比特",它只有两种取值,即数字0和数字1

B.数据通信和计算机网络中传输二进制信息时,传输速率的度量单位通常为B/sKB/sMB/s

  C.微电子技术是实现电子电路和电子系统超小型化及微型化的技术,它以集成电路为核心

  D.Intel公司创始人之一摩尔曾发表论文预测,单块集成电路的集成度平均每18~24个月翻一番

3.以下选项中,数值相等的一组数是___3___

  A.十进制数54020与八进制数54732

  B.八进制数13657与二进制数1011110101111

  C.十六进制数F429与二进制数1011010000101101

  D.八进制数7324与十六进制数B93

4.下列关于台式PCCPU的叙述中,错误的是___4___

    A.目前的PC,CPU芯片都是直接固定在主板上的,用户不可对其进行更换

    B.PCCPU芯片有多个生产厂商,例如Intel公司、AMD公司等

    C.Intel公司的Core i7/i5/i3处理器是64位多内核CPU芯片

    D.目前的CPU芯片中一般都集成了一定容量的高速缓冲存储器cache

5.下列关于台式PC机主板的叙述中,错误的是___5___

    A.为了便于不同PC机主板的互换,主板的物理尺寸已经标准化,例如ATXBTX规格

    B.芯片组是主板上的重要部件,它与CPU芯片及外设同步发展

    C.主板上的BIOS集成电路芯片中存储了CMOS设置程序

    D.主板上的CMOS存储器是一种非易失性存储器,在任何情况下其信息均不会丢失

6.下列四种I/O总线(接口),数据传输方式为并行方式的是___6___

    A.PCI-Express

    B.PCI

    C.USB

    D.IEEE-1394

7.下列关于常用I/O设备的叙述中,错误的是___7___

  A.鼠标器与主机的接口主要有PS/2USB两种  

  B.光学分辨率是扫描仪的重要性能指标,目前普通办公用扫描仪的分辨率可达1000dpi以上

  C.数码相机的成像芯片均为CCD类型,且绝大多数相机的存储卡是通用的、可互换的

  D.宽屏LCD显示器是目前最常见的PC机显示器,其显示屏的宽度与高度之比为16:916:10

8.下列关于PC机外存储器的叙述中,错误的是___8___

 A.PC机硬盘接口主要有PATA(并行ATA)SATA(串行ATA)两种,PATA的传输速率更高些

 B.目前U盘不仅能方便地保存数据,还可以模拟光驱和硬盘启动操作系统

 C.固态硬盘是基于半导体存储器芯片的一种外存储设备,一般用在便携式计算机中

 D.光盘可分为CD光盘、DVD光盘和蓝光光盘

9.  下列关于软件的叙述中,错误的是___9___

    A.软件是用于特定用途的一整套程序、数据及相关的文档

    B.共享软件是没有版权的软件。允许用户对其进行修改并散发

    C.目前,Adobe Reader360杀毒软件是有版权的免费软件

    D.操作系统、程序设计语言处理蚕统、数据库管理系统均属于系统软件

10.下列关于Windows操作系统多任务处理的叙述中,正确的是___10___

    A.如果用户只启动一个应用程序工作(如使用Word写作),那么该程序就可以自始至终地独占CPU

    B.仅当计算机中有多个处理器或处理器为多内核处理器时,操作系统才能同时执行多个任务处理

    C.无论是系统程序还是应用程序,所有运行程序(进程)获得CPU使用权的优先级相同

    D.在多任务处理时,后台任务与前台任务都能得到CPU的及时响应

11.下列关于程序设计语言及其处理系统的叙述中,错误的是___11___

    A.机器语言就是计算机的指令系统,机器语言程序一般为二进制代码形式

    B.汇编程序是指用汇编语言编写的源程序,不同计算机的汇编程序通常是相同的

    C.Microsoft Office软件(WordExcel)中包含VBA程序设计语言,VBAVB的子集

    D.高级语言的语言处理系统的工作方式通常分为两种,"解释"方式和"编译"方式

12.下列关于移动通信的叙述中,错误的是___12___

    A.1代个人移动通信采用的是模拟传输技术,从第2代开始均采用了数字传输技术

    B.目前广泛使用的GSMCDMA都是第2代移动通信

    C.我国的3G通信目前有三种技术标准,这三种标准的网络不能互通,但终端设备互相兼容

    D.目前第4代移动通信(4G)也在研发和部署之中,我国已有多个城市开始建设试验网

13.下列关于因特网接入技术的叙述中,错误的是___13___

  A.采用电话拨号接入时,需要使用电话MODEM,其主流产品的速率为56kbps

  B.采用ADSL接入时,数据上传速度低于数据下行速度,理想状态下数据下行速度可达8Mbps

  C.采用有线电视网接入时,多个终端用户均可独享连接段线路的带宽

  D.目前我国许多城市采用"光纤到楼、以太网入户"的做法,用户可享受数兆乃至百兆的带宽

14.Internet使用TCP/IP协议实现了全球范围的计算机网络的互连,连接在Internet上的每一台主机都有一个IP地址。下面不能作为IP地址的是___14___

    A.201.109.39.68

    B.120.34.0.18

    C.21.18.33.48

    D.127.0.257.1

15.现在因特网上的多数邮件系统使用___15___协议,它允许邮件正文具有丰富的排版格式,可以包含图片、声音和超链接,从而使邮件的表达能力更强,内容更丰富。

    A.MIME    B.SMTP    C.POP3 D.HTML

16.下列关于网络信息安全的叙述中,错误的是 ___16___

  A.信息在网络传输过程中,会受到窃听、伪造、篡改等安全威胁

  B.最简单也是最普遍的身份鉴别方法是使用口令(密码),但其安全性不高

  C.数据加密是常用的网络信息安全措施.也是数字签名等安全措施的基础

  D.入侵检测与防火墙一样,都是被动保护系统免受攻击的一种网络安全技术

 

17.下列关于字符编码标准的叙述中,错误的是___17___

  A.ASCII标准是美国制定的标准,也是目前使用最为广泛的西文字符编码标准

  B.GB2312GBKGB18030都是我国制定的标准,在这些标准中所有字符均采用双字节编码

  C.目前在台港澳等地区广泛使用BIG5编码标准,它与GB2312不兼容

  D.UCSISO制定的标准,相应的工业标准称为Unicode

18.人们说话时所产生的语音信号必须数字化才能由计算机存储和处理。假设语音信号数字化时取样频率为8kHz,量化精度为8,数据压缩比为4,那么1分钟数字语音的数据量(压缩后)大约为___18___

  A.960KB    B.480KB    C.120KB D.60KB

19.目前数字有线电视和卫星电视所传输的数字视频采用的压缩编码标准大多是___19___

  A.MPEG-1    B.MPEG-2    C.MPEG4    D.MPEG7

20.下列关于Microsoft Office软件(2003/2007版本为例)功能的叙述中,错误的是___20___

  A.Word编辑处理的文档可以保存为多种文件格式,例如DOCRTFTXTHTML

  B.一个Excel文件不可以引用另一个Excel文件中的数据

  C.PowerPoint编辑处理的文档可以另存为网页或图像文件

  D.Access是一个数据库管理系统,Access数据库中

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

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

21.以下选项中,均不能作为用户标识符的选项是___ 21___   

    AA,P_0,do    Bfloat,2a0,-A  Cb_a,goto,int D-123,temp,INT

22.设有说明语句:"int[5];",能正确描述该语句的是___22___ 

    Ap是一个指向数组的指针,所指向的数组有5int类型的元素

    Bp是一个指向某数组中第5个元素的指针,该元素是int类型的变量

    Cp[5]表示某个数组中的第5个元素的值

    Dp是一个具有5个元素的指针数组,每个元素都是一个int类型的指针

23.设有以下语句序列;

    #define S(x)  x*(x)*2

    int k=3;

    则表达式S(k+1)的值为___23___ 

  A32    B11    C24 D8

24.在循环语句的循环体中使用breakcontinue语句的作用是___24___   

    A.两者都结束循环        B.分别结束本次循环和结束循环

    C.两者都结束本次循环    D.分别结束循环和结束本次循环

25.以下叙述中,不正确的是___25___

    A.派生类的成员函数中可直接使用其基类中的所有成员,并与派生方式无关

    B.派生类不能继承其基类的友元函数

    C.派生类构造函数通常带有基类初始化列表

    D.派生类缺省的构造函数中通常隐含直接基类的缺省构造函数

26.以下叙述中,不正确的是___26___ 

    A.类的构造函数可以重载    B.类的析构函数可以重载

    C.一个类必定有构造函数    D.一个类必定有析构函数

27.以下叙述中,正确的是___27___

  A.函数在重载时其函数名可以不同

  BC++中所有运算符都可以重载

  C.基类中定义虚函数a(int,int),若在派生类中定义函数a(int),则在派生类中a为函数重载

  D.对于基类中定义的运算符重载函数,在派生类中均可继承和使用

28.一个类的静态数据成员所表示的属性___28___ 

  A.是该类或该类对象的属性    B.仅是该类对象的属性

  C.仅是该类的属性            D.是该类和该类友元的属性

29.设有说明语句;"char s1[]='hello';char s2[]=('h','e','l','l','o');int b;,以下语句

  会产生编译错误的是___29___ 

  Astrlen(s1);    Bb=s1=s2;    Ccout>>s1+s2;  Dstrcat(s1,s2);

30.以下叙述中,错误的是___30___ 

  A.对象成员是类的一种数据成员,它是另一个类的对象

  B.在定义一个类时,可将该类的对象作为该类的数据成员

  C.对对象成员的初始化要包含在该类的构造函数中

  D.一个类中可含有多个对象成员作为其成员

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

●基本概念题,5

1.若x=0,y=1,z=2,则执行语句;"z=x++&&(++y);",变量zy的值分别为___(1)___    ___(2)___ 

2.要将一个类的成员函数定义虚函数时,使用关键字___(3)___ 

3c++中使用const定义常量时,需要指出其名字、类型和___(4)___

4.假设A为一个类,该类中有语句;"A(A &x);,该语句是该类___(5)___ 构造函数的原型说明。

三、阅读程序,13

5.[程序]  (3)

#include

void fun(int *a,int i,int j)

{

  int t;

  if(i<=j){

     t=a[i];a[i]=a[j];a[j]=t;

        fun(&a[i+1],i+2,j-1);

  }

}

void main()

{

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

       fun(a,0,5);

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

              cout<

}

 

执行程序,输出的第二行是___(6)___,第四行是___(7)___,第六行是___(8)___

 

6.[程序] (2)

#include

 

void swap(int *p1,int*p2)

{

  int *p;

  p=p1;p1=p2;p2=p;

}

void main()

{

       int x=50,y=100;

       cout<<"x="<       swap(&x,&y);

       cout<<"x="<}

 

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

7.[程序]  (3)

#include

void main()

{ char ch[2][6]={"2013","0246"},*pch[2];

  int i,j,s=0;

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

     for(j=0;pch[i][j]>='0' && pch[i][j]<='9';j+=2){

       s=10*s+pch[i][j]-'0';

       cout<

     }

}

 

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

8.[程序](2)

#include

#include

 

class Person{

  public:

       Person(char *s){

         name=new char[strlen(s)+1]; strcpy(name,s);}

       virtual void print(){

         cout<<"我的名字是:"<

  protected:

       char *name;      

};

 

class Student: public Person{

  public:

    Student(char *s,char *p):Person(s){

       strcpy(num,p);}

    void print(char *s){

       cout<

       cout<<"我的名字是:"<学号是:"<

    }

  private:

    char num[10];

};

 

class Professor:public Person{

   public:

      Professor(char *s, int n):Person(s) {

         publs=n;

      }

      void print(){

        cout<<"我的名字是:"<发表论文数为:"<\n";

      }

   private:

     int publs;

};

 

 

void main()

{

  Person *p;

  Person x("张明");

  Student y("王海","20120501");

  Professor z("李涛",5);

  p=&x;  p->print();

  p=&y;  p->print();

  p=&z;  p->print();

}

 

执行程序后,输出的第二行是____(14)______,第三行是___(15)___

 

9.[程序](3)

#include

class B{

  public:

    B(int a=0) {cout<<"B class "<

    ~B() {cout<<" ~B class"<

};

 

class A:public B{

  public:

     A(){cout<<"A class "<

};

 

void f()

{

  static A a;

  cout<<"f()"<<"\n";

}

 

void main()

{

  f();f();

}

执行程序,输出的第一行是___(16)___,第二行是___(17)___,第四行是___(18)___

 

完善程序,12

10.以下程序的功能是

以下程序的功能是:求三角函数sin(x)的近似值,sin(x)得近似值的计算公式如下:

   sin(x)= - + - +…+

  其中x的值用弧度值表示。当输入的x的值为角度表示时,必须先将角度数转换为弧度,转换公式如下:

       y=

然后求出sin(y)的近似值,要求计算精度达到0.000001

 

[程序]2

#include

#include

 

double sin(double x,double eps)

{double term,sum,y; int n=1;

 y=x*x;  term=x;   sum=0;

 while(fabs(term)>=eps){

   sum+=term; n++;

   term=term*y/___(19)___;

   term*=-1;

 }

 return ___(20)___;

}

 

void main(void)

{

  double x,y;

  cout<<"输入x的值(角度):";

  cin>>x;

  while(x>360)

     x-=360;

  y=3.1415926*x/180;

  cout<<"度数为:"<<"其中sin值为:"<

}

 

11.以下程序的功能是输入两个字符串,将这两个字符串拼接为一个新的字符串,

然后输出这三个字符串

  #include

  char *stringcat(char *to,char *from,char *s)

  {

     char ___(21)___;

      while(*s++=*to++);

     ___(22)___;

     while(___(23)___);

     return p;

  }

 

  void main(void)

  {

    char s1[100],s2[200],s3[200];

    cout<<"输入第一个字符串:"

    cin.getline(s1,100);

    cout<<"输入第二个字符串";

    cin.getline(s2,100);

    cout<<"s1="<

    cout<<"s2="<

    cout<<"拼接后的字符串为:"<

  }

 

12.以下程序的功能是:验证任一大于6的偶数总能表示为两个素数之和,方法是将偶数分解为两个奇数之和,并分别判断两个奇数

是否均为素数,例如:68=7+61,761均为素数

[程序]  2

#include

#include

 

void main(void)

{

   int a,b,c,d;

   cout<<"请输入一个大于6的偶数";

   cin>>a;

   for(b=3;b<=a/2;b+=2){

      for(c=2;c<=sqrt(b);c++)

         if (b%c==0)

           ___(25)___;

     if (c>=sqrt(b))

        d=a-b;

     else

        break;

     for(c=2;c<=sqrt(d);c++)

       if(___(26)___)  

          break;

       if(c>=sqrt(d))

         cout<

 

   }

 

}

 

13.以下程序的功能是:建立单向链表,删除链表上指定的结点,输出链表上的结点值等,其中函数deltenode(node *h, int x)的功能是:

h所指向的链表中,删除结点的数据值为x的所有结点

[程序]  (4)

#include

struct node{

   int data;

   node *next;

};

 

node *deltenode(node *h, int x)

{

  node *p,*q;

  if(h==NULL)  return h;

  if(h->data==x){

    p=h;

    ___(27)___;

    delete p;

  }

  else{

     p=h->nxt;

     q=h;

     while(p!=NULL && p->data!=x){

        ___(28)___;

        p=p->next;

    }

    if(p!=NULL){

       q->next=p->next;

       delete p;

    }

  }

  return h; 

}

 

node *creatlist(int a[], int j)

{

    node *h,*p,*q;

    int i;

    h=NULL;

    for(i=0;i

        q=new node ;

        q->data=a[i];

        q->next=NULL;

        if(h==NULL)

           h=p=q;

        else{

            ___(29)___;

           p=q;

        }

    }

    return h;

}

 

void outlist(node *h)    //输出链表

{

    node *p;

    p=h;

    if(p==NULL)cout<<"链表为空!"<

    else(

       cout<<"Head";

       do{

          cout<<"->"<data;

          p=p->next;

         }while(p!=NULL);

    cout<<"->End"<

   }

}

void free list(node *h)    //撤销链表

{

    node *p;

    while(h){  

      p=h;

      h=h->next;

      delete p;

    }

}

void main(void)

{

    node *head;

    int a[]={2468101517};

    ___(30)___    ;

    cout<<"原链表为;";

    outlist(head)   

    head=deltenode(head10);

    cout<<"删除数据后的链表为:";

    outlist(head);

    free_list(head);

}

 

 

 

二级C++参考答案

 一、选择题

(1)C (2)B (3)B (4)A (5)D (6)B (7)C (8)A (9)B (10)D
(11)B (12)C (13)C (14)D (15)A (16)D (17)B (18)C (19)B (20)B

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

 

二、填空题

(1)0   (2)1   (3)virtual  (4)     (5)拷贝   (6)2   (7)1    (8)4 

(9)x=50  y=100  (10)x=50  y=100 

(11)4  (12)2  (13)2104  (14)我的名字是王海,学号是20120511

(15)我的名字是李涛,发表论文数为5

(16)B Class  (17)A Class  (18)f()  (19)(2*n-2)*(2*n-1)

(20)sum  (21)*p=s  (22)s--  (23)*s++=*from++  (24)s1,s2,s3

(25)break;  (26)d%c==0  (27)h=h->next  (28)q=p  (29)p->next=q

(30)head=createlist(a)

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