2011年9月份全国计算机等级考试二级C语言上机题库真题
      
        
            
        	
				
            
            
              
                - 文件介绍: 
 
                - 该文件为 doc 格式,下载需要 1 积分 
 
- 2011年9月份全国计算机等级考试二级C语言上机题库真题
一、程序填空题
    *1、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时, 程序输出:
    x1=5.000000,  x2=3.000000,  x1*x1+x1*x2=40.000000
    请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
          不得增行或删行,也不得更改程序的结构!
#include  
double f1(double  x)
{  return x*x;  }
double f2(double  x, double  y)
{  return  x*y;  }
/**********found**********/
__1__ fun(int  i, double  x, double  y)
{ if (i==1)
/**********found**********/
    return __2__(x);
  else
/**********found**********/
    return  __3__(x, y);
}
main()
{ double  x1=5, x2=3, r;
  r = fun(1, x1, x2);
  r += fun(2, x1, x2);
  printf("nx1=%f, x2=%f, x1*x1+x1*x2=%fnn",x1, x2, r);
}
    *2、给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
    例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为:
          letter  'a' : 3 times
          letter  's' : 3 times
    请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
          不得增行或删行,也不得更改程序的结构!
#include  
#include  
#include  
void fun(char  *s)
{ int  k[26]={0},n,i,max=0;    char  ch;
  while(*s)
  { if( isalpha(*s) ) {
/**********found**********/
      ch=tolower(__1__);
      n=ch-'a';
/**********found**********/
      k[n]+= __2__ ;
    }
    s++;
/**********found**********/
    if(max
  }
  printf("nAfter count :n");
  for(i=0; i<26;i++)
     if (k[i]==max) printf("nletter  '%c' :  %d timesn",i+'a',k[i]);
}
main()
{ char  s[81];
  printf("nEnter a string:nn");  gets(s);
  fun(s);
}
    *3、给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵:
        1    2    3
        4    5    6
        7    8    9交换后为:
        3    2    1
        4    5    6
        9    8    7
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
          不得增行或删行,也不得更改程序的结构!
#include    
#define    N    4
/**********found**********/
void fun(int  ___1___ , int  n)
{  int  i,s;
/**********found**********/
   for(___2___; i++)
   {  s=t[i][i];
      t[i][i]=t[i][n-i-1];
/**********found**********/
      t[i][n-1-i]=___3___;
   }
}
main()
{  int  t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;
   printf("nThe original array:n");
   for(i=0; i
   {  for(j=0; j
      printf("n");
   }
   fun(t,N);
   printf("nThe result is:n");
   for(i=0; i
   {  for(j=0; j
      printf("n");
   }
}
    *4、给定程序中,函数fun的功能是:找出100至x(x≤999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。
    例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。
    请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
          不得增行或删行,也不得更改程序的结构!
#include  
int fun(int  x)...