江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2011年春江苏省计算机二级C考试笔试真题

绝密★ 启用前

2011年春

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

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

二级试卷

试卷语种:C语言

 

  明:

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

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

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

  )和填空题(30)两种;

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

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

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

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

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

  不填或填错不得分;

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

  否填写正确。

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

  毕清点后,方可离场。

 

第一部分计算机基础知识

1.下列有关通信技术的叙述中,错误的是___(1)___

  A  无论是模拟通信还是数字通信,目前都是通过载波技术实现远距离的信息传输

  B  多路复用技术可以降低信息传输的成本,常用的多路复用技术有TDMFDM

  C  卫星通信属于微波通信,它是微波接力通信技术和空间技术相结合的产物

  D  目前3G移动通信有多种技术标准,我国三大电信运营商均采用同一标准

2.使用存储器存储二进位信息时,存储容量是一项很重要的性能指标。存储容量的单位有多种,下面不是存储容量单位的是___(2)___   

    A  TB

    B  XB

    C  GB   

    D  MB  

3.设有补码表示的两个单字节带符号整数a=01001110b=01001111。则a-b的结果用补码表示为___(3)___ 

    A  11111111

    B  10011101

    C  00111111

    D  10111111

4  下列有关PC机主板上BIOSCMOS的叙述中,错误的是___(4)___ 

  A  BIOS芯片是一块闪烁存储器,其存储的信息关机后不会丢失

  B  BIOS中包含加电自检程序、系统自举程序等

  C  CMOS芯片属于易失性存储器,它使用电池供电

  D  CMOS中存放着与硬件相关的一些配置信息,以及CMOS设置程序

5  下列有关PC机中央处理器(CPU)和内存(内存条)的叙述中,错误的是___(5)___ 

  A  目前PC机所使用的PentiumCore 2微处理器的指令系统有数百条不同的指令

  B  所谓双核CPU或四核CPU,是指CPU由两个或四个芯片组成

  C  DDR内存条、DDR2内存条在物理结构上有所不同,例如它们的引脚数目不同

  D  通常台式机中的内存条与笔记本电脑中的内存条不同,不能互换

6  下列有关PCI/O总线与I/O接口的叙述中,正确的是___(6)___ 

  APC机中串行总线的数据传输速率总是低于并行总线的数据传输速率

  B  SATA接口主要用于连接光驱,不能连接硬盘

  C  通过USB集线器,一个USB接口理论上可以连接127个设备

  D  IEEEl394接口的连接器与USB连接器完全相同,均有6根连接线

7  蓝光光盘(BD)是全高清影片的理想存储介质,其单层盘片的存储容量大约为___(7)___

  A4.7GB

  B. 8.5GB

  C17GB

  D25GB

8  下列有关PC机常用I/O设备(性能)的叙述中,错误的是___(8)___

  A  通过扫描仪扫描得到的图像数据可以保存为多种不同的文件格式,例如JPEG TIF

  B  目前数码相机的成像芯片均为CCD类型,存储卡均为SD

  C  刷新速率是显示器的主要性能参数之一,目前PC显示器的刷新速率一般在60Hz以上

D  从彩色图像输出来看,目前喷墨打印机比激光打印机有性价比优势

9  下列有关计算机软件的叙述中,错误的是___(9)___   ·

    A  软件的主体是程序,单独的数据和文档资料不能称为软件

    B  软件受知识产权(版权)法的保护,用户购买软件后仅得到了使用权

    C  软件的版权所有者不一定是软件的作者(设计人员)

    D  共享软件允许用户对其进行修改,且可在修改后散发

10PC机从硬盘启动Windows XP操作系统是一个比较复杂的过程·在这个过程中,它需

  要经过以下这些步骤:

  I.装入并执行引导程序

  .读出主引导记录

  Ⅲ.装入并执行操作系统

  .加电自检

在上述步骤中,正确的工作顺序是___(10)___

A  I

B  IlI

C  III

D  III

11.下列有关算法和程序关系的叙述中,正确的是___(11)___

  A  算法必须使用程序设计语言进行描述

  B  算法与程序是一一对应的

  C  算法是程序的简化

  D  程序是算法的具体实现

12.采用ADSL方式接入因特网时,ADSLModem将电话线传输信道分为三个信息通道:

  语音通道、上行数据通道、下行数据通道。下列有关这三个信息通道的叙述中,错误

的是 ___(12)___ ·

A  语音通道的频带最宽、采用的频率最高,以保证电话通话的质量

B  通常上行数据通道的数据传输速率低于下行数据通道的数据传输速率

C  ADSL的数据传输速率是根据线路情况自动调整的

D  这三个信息通道可以同时工作,即可以同时传输信息(数据)

13.无线局域网是以太网与无线通信技术相结合的产物,其采用的网络协议主要是IEEE

制订的___(13)___  

A  IEEE 8023

B IEEE 80211

C  IEEE 1394

D  IEEE 1394b

14.在因特网中目前主要采用IPv4协议,IP地址长度为32,只有大约36亿个地址。新的第6IP协议(IPv6)已经将IP地址的长度扩展到___(14)___ ,几乎可以不受限制地提供地址。

    A  48

    B  64

    C  128

    D  256   

15.因特网由大量的计算机和信息资源组成,它为网络用户提供了非常丰富的网络服务。 下列与www服务相关的叙述中,错误的是___(15)___   

  A.  WWW采用客户机/服务器工作模式

  B  网页到网页的链接信息由URL指出

  C  浏览器是客户端应用程序  

  D  所有的网页均是HTML文档

16.目前Windows操作系统支持多种不同语种的字符集,即使同一语种(例如汉语)也可

  有多种字符集。下列字符集中,不包括等繁体汉字的是___(16)___   

  A  GBK

  B  Big5

  C  GB2312

  D  GBl8030

17.下列与数字图恸图形相关的叙述中,错误的是___(17)___   

A.  彩色图像在数字化过程中需进行分色处理,然后对不同的基色进行取样和量化

B.  如果某RGB图像的像素深度为12,则可表示的颜色数目为2

C.  数码相机常用JPEG格式保存图像文件,该格式的图像大多采用有损压缩编码

D.图形是计算机合成的图像,也称为矢量图形

18.文件的扩展名用于标记文件的类型,用户应该尽可能多地知晓各类文件的扩展名。下列文件中,属于数字视频的文件是___(18)___

  A  ABCRMVB

  B  ABCDLL

  C  ABCPDF

  D  ABCMIDI

19.下列几种类型的系统软件中,不属于计算机集成制造系统(CIMS)范畴(或者说,CIMS无直接关系)的是___(19)___

  A  GIS

  B  CAM

  C  MRP

  D  ERP

20下列有关Microsoft PowerPoint 2003Microsoft FrontPage 2003软件的叙述中,错误的是  20 

A.  型用PowerPoint编辑演示文稿时,可以将每张幻灯片保存为JPEG图片

B.  利用PowerPoint编辑演示文稿时,可以录制声音   

C.  利用FrontPage制作网页时,无法直接查看网页的HTML代码

D.  利用FrontPage制作网页时,背景图片可以设置为水印效果

 

 

第二部分C语言程序设计

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

21.以下关于预处理命令的叙述中错误的是___(21)_____

  A.预处理命令由预处理程序解释

  B.程序中的预处理命令是以#开始的

  C.若在程序的一行中出现多条预处理命令,这些命令都是有效的

  D.预处理命令既可以出现在函数定义的外部,也可以出现在函数体内部

22.有如下程序段:

    char p1[80]=”NanJing",p2[20]=“Young",*p32=”Olympic”;

    strcpy(p1,strcat(p2,p3));

    printf(“%s\n”,p1);

    执行该程序段后的输出是______(22)______

    ANanJingYoungOlympic    BYoungOlympic

    COlympic                DNanJing

23。已知有声明”int x[2][3]={0},*p=x[0];”,以下表达式中有语法错误的是__(23)____ ·

  Ax[0]=1    Bp[0]=1    C*p=1      D.x[0][O]=1

24.程序中已有预处理命令”#include <math.h>“和声明”char x=4,y,*z;”,以下表达式中能通过编译且无警告信息的是___(24)___ 

    Ay=sqrt(x)%2    By=“x”    Cy=’x’+1   D.y=&’x’

25.已知有定义和声明:

    struct 

    {int x;}a[4]={{1},{1},{4},{6}},b;

    以下语句中语法正确的是___(25)___   

    Aif(a[0]==a[1]) b=a[O];         Bif(a[0].x==a[1].x) b=a[0];

    Cif(a[0]>x==a[1]->x) b=a[0];   Dif(!(a[0]-a[1]))  b=a[0];

26已有声明”int x,a=3,b=2;”,则执行赋值语句”x=a>b++?a++b++;”,变量xab的值分别为___(26)___

    A3 4 3    B3 3 4    C3 3 3 D4 3 4

 27下面选项中可用作变量名的是___(27)___

    ACase    Ba-b    C$cd   D2ab

 28.执行以下程序后的结果是___(28)___

    #include<stdioh>

    void main()

    {  int x=3;

       do

      {

        printf(“%d\t”,x=x-3);

      }while(!x);

    }

    A.输出一个数:0         B.输出一个数;3

    C.输出2个数:0-3    D.无限循环,反复输出数

29.以下关予c语言函数的叙述中,正确的是___(29)___

    A.在一个函数体中可以定义另一个函数,也可以调用其他函数

    B.在一个函数体中可以调用另一个函数,但不能定义其他函数    +

    C.在一个函数体中不可调用另一个嚣数,也不能定义其他函数

    D。在一个函数体中可以定义另一个函数,但不能调用其他函数

30.设有声明”int a=4,b=3,c=5;”,以下4个程序段中有3个程序段的执行效果是相同的,另一个执行效果不同的是___(30)___

Aif(a>b)c=a,a=b,b=c;

Cif(a>b)c=a;a=b;b=c;

Bif(a>b){c=a,a=b,b=c;}

Dif(a>b){c=a;a=b;b=c;}

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

  基本概念

1.除goto语句外,在循环结构中执行___(1)____语句可提前结束本次循环直接进入下一次循环.

2.若有程序段”int a[10],*p=a,*q;q=&a[5];”,则表达式q-p的值是___(2)___ 

3.执行语句序列”int a,b;a=b=4;a+=b%3;”,变量ab的值分别是___(3)___   

4.执行程序段”int x=0x6c;printf(“x=%x\n”,x);”后的输出结果为___(4)___ 

5.使用TURBO C系统编译C语言源程序后生成的文件名后缀是___(5)___ 

·  阅读程序

6.以下程序运行时输出到屏幕的结果是___(6)___ 

  #include<stdio.h>

  #define L 10

  #define C L+L

  void main()

  { int  Area;

    Area=C*L;

    printf(“%d\n”,Area);

   }

7.以下程序运行时输出到屏幕的结果是___(7)___   

    #include <stdio.h>

    enum{A,B,C=4} i;

    void main()

    { int k=0;

      for(i=B;i<C;i++)

        k++;

      printf(“%d”,k);

    }

8.以下程序运行时输出到屏幕的结果是___(8)___

 #include<stdio.h>

  void fun(int a)

  {  printf("%d",a%10);

     if((a=a/10)!=0) fun(a);

  }

  void main()

  {int a=-13; 

    if(a<0)

    {printf("-");

     a=-a;

    }

    fun(a);

   }

 

9.以下程序运行时若输入”2010 10”,则输出到屏幕的结果中第一行是___(9)___ ,第三行是___(10)___    ·

 #include<stdio.h>

#include <string.h>

char *fun(int n)

{  static char s[20];

   static int c;

   char t[10]={0},i=0,j,k;

   while(n>0)

     t[i++]=n%10+'0',n=n/10;

   puts(t);

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

        k=t[j],t[j]=t[i-1-j],t[i-1-j]=k;

   strcat(s,t);

   if(c<1)

   {strcat(s,"/");c++;}

   else

     strcat(s,"\0");

   return s;

}

void main()

{  int i,m;char *p;

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

   {scanf("%d",&m);

    p=fun(m);

   }

  puts(p);

}

1O.以下程序运行时输出到屏幕的结果中第一行是___(11)___,第二行是___(12)___   ,

  #include<stdio.h>

 #define M 3

 #define N 4

 void fun(int a[M][N])

 {  int i,j,p;

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

    {  p=0;

       for(j=1;j<N;j++)

        if(a[i][p]>a[i][j]) p=j;

       printf("%d\n",a[i][p]);

    }

  }

  void main()

  {  int a[M][N]={{-1,5,7,4},{5,2,4,3},{8,2,3,0}};

     fun(a);

   }

11.以下程序运行时输出到屏幕的结果中第一行是___(13)___,第二行是___(14)___   ,

  #include<stdio.h>

  int f(int *x,int *y,int z)

  {   *x=*y;

      *y=z;

      z=*x;

      return  z;

  }

  void main()

  {  int a=1,b=2,c=3,d;

     d=f(&a,&b,c);

     printf(“%2d%2d\n%2d%2d_\ll”,a,b,c,d);

  }

12.以下程序运行时输出到屏幕的结果中第一行是___(15)___,第二行是___(16)___    ,

    #include  "stdio.h"

struct grade

{  int id;

   char level[3];

   int score[3];

};

char fun(struct grade *t)

{  int i,count=0,total=0;

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

   {  if(t->level[i]=='A')count++;

      total=total+t->score[i];

    }

    total=total+count;

    if(count==3)total++;

    return(total>380?'Y':'N');

}

void main()

{  int i;

   struct grade stu[3]={{106,"AAA",130,132,115},

   {107,"BAB",113,125,104},

   {109,"AAB",128,135,114}};

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

      printf("\%d  %c\n",stu[i].id,fun(&stu[i]));

}

13.以下程序运行时输出到屏幕的结果中第一行是___(17)___。第二行是___(18)___   

  #include  <stdio.h>

int fun(int a[],int *p)

{  int i,n;

     n=*p;

     p=&a[n-1];

     for(i=n-2;i>=0;i--)

       if(a[i]>*p) p=&a[i];

     return *p;

}

void main()

{  int a[5]={18,2,16,3,6},x=5,y;

     y=fun(a,&x);

     printf("%d\n",x);

     printf("%d\n",y);

}

·  完善程序

14.以下程序的功能是验证下列公式是否成立。请完善程序使其达到要求的功能。

x取某一值时公式等号左侧的函数值表示为f(x),等号右侧的级数值表示为g(x),f(x)g(x)的相对误差小于10 ,即认为f(x)g(x)相等。计算g(x),当最后一项的绝对值小于10 时停止累加。

f(x)g(x)的相对误差计算公式:

include<stdio.h>

#include<math.h>

void main()

{double x,f,g,term;

 int n;

 printf(“\n input x(-1<x<1):”); 

 scanf(“___(19)___“,&x);

 f=1/______(20)_____    ;

 n=1;

 g=term=1;

 while(fabs(term)>1e-10)

 {term=term* ___(21)___)    ;

  g=g+term;

   ___(22)___ ;

   }

   if(fabs(f-g)/(fabs(f)+fabs(g))<1e-6)

      printf(“\ntrue x=%f,f=%f,g=%f”,x,f,g);

   else

      printf(“\nfalse x=%f,f=%f,g=%f”,x,f,g);

   }

15  以下程序的功能是:将输入的十进制整数转换为指定进制的字符串形式,itob函数的形参s指向的数组用于保存将形参n的值转换为base进制数后的字符串形式。请完善程序使其达到要求的功能。

    #include<stdio.h>

    void reverse(char s[])

    {  int i,j;

       char temp;

       for(j=0;s[j]!=’\0’;j++);

        for(i=O,j--;i<j;___(23)___,j--)

        {temp=s[i];

        s[i]=s[j];

        s[j]=temp;

        }

    }

    void itob(int n,char s[],int base)

    {  int i=0,sign,t;

       if((sign=n)<O)

         n=-n;

while(n>0)

{  t=  ___(24)___

       if(t>=1O)

         s[i++]=t-10+’A’;

       else

         s[i++]=___(25)___

       n=nbase;

      }

     if(sign<0)

        s[i++]=’-‘;

     ___(26)___   ;

    reverse(s);

    }

  void main()

  {  char str[100];

     int n,base;

     printf(”请输入被转换的十进制整数和进位制的基数:\n”);

     scanf(“%d%d",&n,&base);

     itob(n,str,base);

    printtf(”转换结果为:\n”);

    printf(“(10进制数)%d->%s(%d进制数)\n”,n,str,base);

  }

16.存储一组整数的某单向链表结点定义为:

  typedef struct n

  {  int x;

     struct n *next;

  }NODE;

    函数NODE  *sort(NODE *head)采用插入法对head指向的单向链表中存储的数据按成员x的值从小到大排序。

    算法提示:对链表中从第2个结点开始直到最后结点范围内的每个结点做以下操作:若第i个结点(i2开始)的成员x值大于或等于第i-1个结点的成员x,则保持第i个结点在链表中的位置不变:否则,先将第i个结点从链表中删除(使第i-1个结点的指针域指向第i+1个结点),再将已脱离链表的原第i个结点插入到链表的前i-1个结点中,并保持插入结点后链表的前i个结点按成员x值从小到大有序。请完善sort函数使其达到要求的功能。

NODE *sort(NODE *head)

{   ___(27)___ *p1,*p2,*q1,*q2;

  p1=head;

  p2=p1->next;

  while(p2)

  {  if(p1->x<=p2->x)

    { p1=p2;

     ___(28)___=p2->next;

    }

    else

    {p1->next=___(29)___    ;   /*从链表中删除p2指向的结点*/

     /*以下程序段实现将p2指向的结点插入链表中*/

     q1=head;  q2=q1->next;

     if(p2->x<head->x) 

     {p2->next=___(30)___;

      head=p2;

     }

    else

    {q1=head;

     q2=head->next;

     while(p2->x>q2->x)

    {  q1=q2;

       q2=q2->next;

     }

     p2->next=q2;

     q1->next=p2;

    }

    p2=p1->next;

   }

}  

return head;

}

 

(21)C(22)B(23)A(24)C(25)B(26)A(27)A(28)C(29)B(30)C
二:填空
(1)continue(2)5(3)5 4(4)x=108(5)obj
(6)110(7)3(8)-31(9)0102(10)2010/10
(11)-2(12)2(13)2 3(14)3 2(15)106 Y
(16)107 N(17)5(18)18(19)%lf(20)pow(1+x,1/3.0)
(21)n/(n+2)*x(22)n=n+3(23)i++(24)n%base
(25)t+'0'(26)s[i]='\0'(27)NODE(28)p2(29)p2->next(30)head