江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2015年秋江苏省计算机等级考试二级C考试样卷


江苏省高等学校计算机等级考试
二级C考试(样卷)
(本试卷完成时间  120分钟)
第一部分  计算机信息技术基础知识

 

本题目的视频讲解见:http://school.njwww.net/kecheng/detail_946748
选择题(共20分,每题2分)
1.下列关于数字技术与微电子技术的叙述中,错误的是______ 。
A.数字技术的处理对象是"比特",一个触发器可以存储2个比特
B.在数据通信时,远距离传输或者无线传输时需要用比特对载波进行
C.现代集成电路使用的半导体材料主要是硅
D.我国第2代居民身份证中使用了非接触式IC芯片
2.下列关于台式PC芯片组的叙述中,错误的是______ 。
A.芯片组是主板上最为重要的部件之一,存储器控制、I/O控制等功能主要由芯片组实现
B.芯片组与CPU同步发展,有什么样功能和速度的CPU,就需要使用什么样的芯片组
C.芯片组决定了主板上能安装的内存最大容量及可使用的内存条类型
D.同CPU一样,用户可以很方便、很简单地更换主板上的芯片组
3.下列关于I/O设备的叙述中,错误的是______。
A.目前平板电脑、智能手机的触摸屏大多为"多点触摸屏",可同时感知屏幕上的多个触控点
B.扫描仪可分为手持式、平板式和滚筒式等类型,目前普通家用/办公用扫描仪大多为滚筒式
C.目前一些型号的数码相机已具有拍摄视频和进行录音的功能
D.为了降低成本,目前许多PC采用集成显卡,其显示控制器被集成在芯片组中
4.下列关于PC外存储器的叙述中,错误的是____。
A.目前PC采用的硬盘,其盘片的直径通常为3.5英寸、2.5英寸或1.8英寸
B.U盘和存储卡都是采用闪烁存储器制作的,目前其容量大多为几GB至几十GB
C.目前固态硬盘的存储容量大多为数百GB,但其读写速度远不如传统硬盘(硬磁盘)
D.蓝光光盘是目前最先进的大容量光盘,单层盘片的存储容量可达25GB
5.下列关于Windows操作系统功能的叙述中,错误的是______。
A.对于多任务处理,系统一般采用按时间片轮转的策略进行处理器调度
B.系统采用了虚拟存储技术进行存储管理,其页面调度算法为"最近最少使用"( LRU)算法
C.系统支持多种文件系统(如FAT32、NTFS、CDFS等)以管理不同的外存储器
D.系统支持任何I/O设备的"即插即用"和"热插拔"
6.下列关于程序设计语言的叙述中,错误的是____。
A.虽然机器语言不易记忆、机器语言程序难以阅读和理解,但目前还有很多人使用其编写程序
B.汇编语言与计算机的指令系统密切相关,不同类型的计算机,其汇编语言通常不同
C.VBScript语言是VB的子集,用其编写的程序可以嵌入在HTML文档中以扩充网页的功能
D.Java语言是一种适用于网络环境的程序设计语言,目前许多手机软件就是用Java编写的
7.下列关于通信技术的叙述中,错误的是______。
A.调制与解调技术主要用于模拟通信,在数字通信中不需要使用调制与解调技术
B.使用多路复用技术的主要目的是提高传输线路的利用率,降低通信成本
C.在数据通信中采用分组交换技术,可以动态分配信道资源,提高传输效率和质量
D.数据通信网络大多采用分组交换技术,但不同类型网络的数据包格式通常不同
8.Internet使用TCP/IP协议实现了全球范围的计算机网络的互连,连接在
Internet上的每一台主机都有一个IP地址。目前使用的是IPv4标准(32位地
址),下一代互联网将会采用IPv6标准,其IP地址为____。
    A.48位
    B.64位
    C.96位
    D.128位
9.下列关于字符编码标准的叙述中,错误的是____。
A.在ASCII标准中,每个字符采用7位二进制编码
B.在绝大多数情况下,GB2312字符集包含的1万多个汉字足够使用
C.Unicode字符集既包含简体汉字,也包含繁体汉字
D.中文版Windows XP及其后的Windows系列操作系统均支持国标GB18030
10.由于采用的压缩编码方式及数据组织方式的不同,图像文件形成了多种不同的文件格式。在下列四种图像文件中,常用于网页上发布并可具有动画
效果的是    。
A. BMP
B.JPEG
C.GIF
D. TIF
参考答案:
1.A    3.B  2.D    4.C   5.D   6.A   7.A  8.D  9.B  10.C

第二部分  C语言程序设计
    一、选择题(共10分,每题2分)
    1.以下语句中有语法错误的是____。
    A. printf(”%d”,OxAB);
    B. printf(”%f”,3.45E2.5);
    C.printf(”%d”,037);
    D.printf(”%c”,'\\');
    2.已有声明“int x=5,y.float z=2;”,以下表达式中语法正确的是___ 。
    A.y= x%z
    B.x >0? y=x:y=-x
    C.y =x/2 =z
    D.y =x =z/2
    3.-元二次方程ax2 +bx +c =0有两个相异实根的条件是a≠0且b2—
4ac >0,以下选项中能正确表示该条件的C语言表达式是    。
    A.a!=0,b*b-4*a*c >0
    B.a!=0 11 b*b -4*a*c >0
    C.a && b*b -4 *a*c >0
    D.!a&& b*b -4*a*c >0
4.若有一函数定义为“int f(int x,int *y){return x/*y;}”,声明该函数的
正确形式是
A.void f(int,  int);
B.int *f(int ,int *);
C.int f(int * ,int *);
D.int f(int, int *);
5.已有定义和声明:
struct student
{ int no;
  char name[20];
  struct{ int year, month, day;}birth;
}  s;


    若要求将日期“1989年11月12日”保存到变量s的birth成员中,则能实
现这一功能的程序段是 ______ 。
A.  year=1989;  month=11;  day=12;
B.  s.year=1989;  s.month=11;  s.day=12;
C.  birth.year=1989; birth.month=11; birth.day=12;
D.  s.birth.year =1989;  s.birth.month=11;  s.birth.day=12;
二、填空题(共20分,每空2分)
1.以下程序运行时输出到屏幕的结果中第一行是 ___(1)___    第二行是
___(2)___    。
#include  < stdio.h >
int main( )
{  int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i,j;
   for(i=0;i<12 ;i++ )
   {  j=s[i];
      c[j]++;
    }
   for(i=1;i<5;i++)
     printf( "%d:%d\n" ,i,c[i]) ;
   return 0 ;
  }
  
2.以下程序运行时输出到屏幕的结果中第一行是___(3)___,第二行是
___(4)___    。

    #include
    int fun( int x)
    {static int c,y;
     if(c==0)y=1;
     else y=y+x;
     c++;
     return y;
    }
    int main()
    {int i;
     for(i=0;i<2;i++)
        printf(”%d\n", fun(2));
      return 0;
    }
3.以下程序运行时输出到屏幕的结果中第一行是 ___(5)___    第二行是
___(6)___    。
#include
void fun(int  * a,int b)
{ while( b >0) 
  {  *a+=b;
     b-- ;
   }
}
int main( )
{   int x=0,y=3;
    fun(&x,y);
    printf( "%d\n%d" ,x,y) ;
    return 0 ;
}
4.以下程序运行时输出到屏幕的结果是 ___(7)___    。
#include  < stdio.  h >
int f(int x)
{    if( x ==0||x == 1)  return 3 ;
     return x * x - f(x-2) ;
}

int main( )
{    printf( " %d\n" , f(3)) ;    return 0;}
5.以下程序运行时输出到屏幕的结果中第一行是 ___(8)___    ,第二行是
___(9)___ ,第三行是___(10)___ 。算法提示:将Fibonacci数列(1,1,2,
3,5,8,13,...)前6个数填入a数组。
#include 
#define N 3
int main( )
{   int i,j,a[N][N] ={1} ,f1 =0,f2 =1,temp;
    for(i=1;i      for(j=0;j<=i;j++)
      {  if(j<=i)
         {a[i][j]=f1+f2;
          temp = f1 ;
          f1 = f2 ;
          f2 = f1 +temp;
         }
       }
    for(i =0;i    {for(j=0;j        printf(”]”,a[i][j]);
     printf(”\n”);
    }
    return 0;
 }
三、操作题(共50分)
1.完善程序(共12分,每空3分)
    【要求】
    1.打开T盘中的文件myf0.c,按以下程序功能完善文件中的程序。
    2.修改后的源程序仍保存在T盘myf0.c文件中。
    【程序功能】
    根据输入的年份及该年中的第几天,计算并输出这一天的“年/月/日”。例如,
若输入“2010,100”,则输出“2010/4/10(表示2010年的第100天是4月10日)”。
    提示:能被4整除并且不能被100整除的年份是闰年,能被400整除的年份
也是闰年,其他年份是平年。


【待完善的源程序】
#include
#include
int leap( int year)
{  int y;
   y =  year% 4 == 0  && ___(1)___ || year@0==0;
   return y;
}
void month_day ( int year,int yearday, int   * month , int   *  day)
 {  int k,p;
    int tab[2][13]  = { {0,31,28, 31,30,31,30,31,31,30,31,30,31} , {0,31, 29,
    31,30,31,30,31,31,30,31,30,31} } ;
    p =leap( year);
    for( k =1; yearday > ___(2)___ ;k++ )
       yearday = yearday - tab[p][k] ;
    *month = k;
    * day =___(3)___;
  }
int main( )
{  int year,days,month,day ;
   printf( "Input year and days ! \n" ) ;
   scanf( "%d, %d" , &year, &days) ;
   if(leap( year) ==1  && days <= 366  ||  leap( year) == 0 && days <= 365)
   {  month_day(year,days,___(4));
      printf("\n%d/%d/%d",year,month,day);
    }
    else puts("days is Wrong!");
    getch();
    return 0;
}
2.改错(共16分,每个错4分)
    【要求】
    1.打开T盘中的文件myf1.c,按以下程序功能改正文件中程序的错误。
    2.可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或
编译预处理命令,但不能增加其他语句,也不能删去整条语句。
    3.修改后的源程序仍保存在T盘myf1.c中。
    【程序功能】
    下列程序中函数wordsearch的功能是将a指向的字符串中所有回文单词复
制到b指向的二维数组中(一个回文单词存储在b数组的一行中),函数返回b
数组中回文单词的个数。
    回文单词是指:一个单词自左向右读与自右向左读相同(字母不区分大小
写)。例如,Dad是回文单词。
【测试数据与运行结果】
测试数据
:Dad left home at noon.
屏幕输出:found  2  words
    Dad
    noon
【含有错误的源程序】
#include 
#include 
#include 
int wordsearch( char a[ ] , char b[ ][10] )
{   int i,j,k,m,n,t,c =0,d;
    for(i=0;a[i];i++)
    {   for(j =i, k =i;isalpha(a[k]);k++ ) ;
        m =j;n = k -1;
        while (toupper(a[m] )==toupper(a[n]) && m<=n)
        {m++; n--;}
        if(m==n)
        {  for(d=0, t=j;t             b[c][d]=a[t];
           b[c][d]='\0';
           c++;       
        }
        i=k;
       }
    return c ;
}
int main( )
 {   char s1 = " Dad left home at noon.  " ;
    char s2[10] [10] ;
    int i,j;
    puts(s1) ;
    j = wordsearch( s1 , s2) ;
    printf( "found   % d  words\n" ,j) ;
    for(i=0;i       puts ( s2) ;
    getch();
    return 0;
 }
3.编程(共22分)
    【要求】
    1.打开T盘中的文件myf2.c,在其中输入所编写的程序,输出结果数据文
件取名myf2. out。
    2.数据文件的打开、使用、关闭均用C语言标准库中缓冲文件系统的文件
操作函数实现。
    【程序功能】
    判断一个NxN矩阵是否为幻方阵。
    幻方阵是指一个矩阵中每行元素之和、每列元素之和及左右主对角线上元
素之和均相等。
    【编程要求】
    1.定义符号常量N代表5。
    2.编写函数int judge( int a[N][N])。函数功能是判断a指向的一个N行N
列二维数组中存储的矩阵是否为幻方阵,如果是则函数返回1,否则返回0。
    3.编写main函数。函数功能是声明二维数组x并用测试数据初始化,用x
数组作为实参调用judge函数进行判断,将x数组中数据及以“yes”或“no”表示
的判断结果输出到屏幕及文件myf2.out中。最后将考生本人准考证号字符串
输出到文件myf2.out中。
    【测试数据与运行结果】
    测试数据:
      17 24  1   8  15
      23  5  7   14 16
      4   6  13  20 22
      10 12  19  21 3
      11 18  25  2  9
屏幕输出:
      17 24  1   8  15
      23  5  7   14 16
      4   6  13  20 22
      10  12 19  21  3
      11  18 25  2   9
      yes

 

参考答案:
第一部分  计算机信息技术基础知识
选择题
1.A    3.B    5.D    7.A    9.B
2.D    4.C    6.A    8.D    10.C
第二部分  C语言程序设计
一、选择题
(1)B    (2)D    (3)C    (4)D    (5)D
二、填空题
(1)1:4
(2)2:3
(3)1
(4)3
(5)6
(6)3
(7)6
(7)1  0  0
(9)1  2  0
(10)3  5  8


三、操作题
1.完善程序
#include
#include
int leap( int year)
{   int y;
     y =  year% 4 == 0 && year% 100 !=0 || year% 400 == 0;
     return y;
}
void month_day(int year,int yearday, int  * month,int  * day)
{    int k,p;
     int tab[2][13]  = {{0,31,28,31,30,31,30,31,31,30 ,31,30,31} ,
         {0,31,29,31,30,31,30,31,31,30,31,30,31} } ;
     p =leap(year) ;
     for(k =1; yearday > tab[p][k] ; k++ )
        yearday = yearday - tab[p][k];
        * month = k ;
        * day = yearday ;
     int main ( )
     {int year, days , month , day ;
      printf( "Input year and days!   \n" ) ;
      scanf( "%d, %d" , &year, &day) ;
      if(leap(year) == 1  && days <= 366  ||  leap( year) == 0 && days<= 365  )
      {     month_day(year,  days,  &month , &day    ) ;
           printf( "  \n %d/%d/%d "  , year,month , day)  ;
      }
      else   puts( " days is ,wrong! " ) ;
      getch( ) ;
      return 0;
 }

2.改错

#include  < stdio.h >
#include  < conio.h >
#include  < ctype.h >
int wordsearch( char a[ ] , char b[ ][10] )
{    int i,j,k,m,n,t,c =O,d;
     for(j=i, k=i;isalpha(a[k]) ;k++ ) ;
        m =j;n = k -1;
     while(toupper(a[m])== toupper(a[n]) && m <= n)
     {m++;n--;}
     if(m==n)                      /*改为if(m>n) */
     {  for(d=0,t=j; t           b[c][d]=a[t];          /*改为b[c][d++]=a[t];  */
        b[c][d]='\0';
        c++ ;
     }
     i= k;
   }
   return c ;
}

int main( )
{    char s1 = " Dad left home at noon. " ; /*改为 char s1[ ] = " Dad left home at noon. " ; */
     char s2[10][10] ;
     int i,j;
     puts(s1) ;
     j = wordsearch(s1 , s2) ;
     printf( " found    % d    words\n" ,j) ;
     for(i=0; i       puts( s2) ;                                       /*改为 puts(s2[i]) ; */
     getch( ) ;
     return 0;
  }

3.编程

#include  < stdio.  h >
#define N 5
int judge(int a[N][N])
{   int i,j,b[N+N+2] = {0} , * p1, *p2;
    for(i=0; i      for(j=0; j        b[i]+=a[i][j];
    for(j=0;j      for(i=0;i        b[N+j]+=a[i][j];
    for(i=0;i       b[N+j]+=a[i][i];
     for(i=0;i       b[N+1+j]+=a[i][N-1-i];
      p1=b; p2=b+N+N+1;
     while(p1    if( * p1 != * ( p1 + 1)) return 0;
    else p1++ ;
    return 1 ;
int main( )
{    int i,j,x[N][N] = {{ 17,24,1,8,15 } , { 23,5,7,14,16 } , {4,6,13 ,20,22} ,
                                {l0 ,12 ,19 ,21,3 } , {11,18 ,25,2,9 } } ;
     FILE *fp;
     fp = fopen( " myf2.out"  , "w" ) ;
     for(i=0;i     {  for(j=0;j        { printf("M",x[i][j]);
          fprintf( fp, " % 4d" ,x[i] [j] ) ;
        }
     }
     printf( " \n" )  ;       fprintf( fp , " \n" )  ;
     if(judge( x))
     {     fprintf( fp , " yes" ) ;  printf( " yes" ) ;      }
     else
     {   printf( "no" )  ;  fprintf( fp, " no" )  ;       }
         fprintf( fp , " \nMy  exam  numbler is :0112400123 " ) ;
         fclose( fp) ;
         return 0 ;
     }

 

本套题目的视频讲解: http://school.njwww.net/kecheng/detail_946748