就业数据资源平台
当前位置:首页 > C语言程序设计
2011年计算机等级考试二级C语言上机题库(11)

  一、填空题

  人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。


  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。


  注意:源程序存放在考生文件夹的BLANK1.C中。


  不得增行或删行,也不得更改程序的结构!


  给定源程序:


  #include


  #include


  #define N 8


  typedef struct


  {char num[10];


  int year,month,day ;


  }STU;


  /**********found**********/


  ___1___ fun(STU *std, char *num)


  {int i; STU a={"",9999,99,99};


  for (i=0; i

  /**********found**********/


  if(strcmp(___2___,num)==0)


  /**********found**********/


  return (___3___);


  return a;


  }


  main()


  {STU std[N]={ {"111111",1984,2,15},{"222222", 1983,9,21},{"333333",1984,9,1},{"444444",1983,7,15},{"555555",1984,9,28},{"666666",1983,11,15},{"777777",1983,6,22},{"888888",1984,8,19}};


  STU p; char n[10]="666666";


  p=fun(std,n);


  if(p.num[0]==0)


  printf("\nNot found !\n");


  else


  {printf("\nSucceed !\n ");


  printf("%s %d-%d-%d\n",p.num,p.year, p.month,p.day);


  }


  }


  解题答案:


  /**********第一空**********/


  STU fun(STU *std, char *num)


  /**********第二空**********/


  if(strcmp(std[i].num,num)==0)


  /**********第三空**********/


  return (std[i]);


  ******************************************


  二、改错题:给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。例如,当s所指字符串中的内容为:"abcdabfab",t所指字符串的内容为:


  "ab",则函数返回整数3。请改正程序中的错误,使它能得出正确的结果。


  注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!


  给定源程序:


  #include


  #include


  int fun (char *s, char *t)


  {


  int n; char *p , *r;


  n = 0;


  while (*s)


  {p = s; r = t;


  while (*r)


  if (*r == *p) {


  /************found************/


  r++; p++


  }


  else break;


  /************found************/


  if (r == '\0')


  n++;


  s++;


  }


  return n;


  }


  main()


  {


  char s[100], t[100]; int m;


  printf("\nPlease enter string S:"); scanf("%s", s);


  printf("\nPlease enter substring t:"); scanf("%s", t);


  m = fun(s, t);


  printf("\nThe result is: m = %d\n", m);


  }


  解题答案:


  /************found************/


  r++; p++;


  /************found************/


  if(*r=='\0')


  ******************************************


  二、改错题:给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t所指字符串相同的子串的个数作为函数值返回。例如,当s所指字符串中的内容为:"abcdabfab",t所指字符串的内容为:


  "ab",则函数返回整数3。请改正程序中的错误,使它能得出正确的结果。


  注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!


  给定源程序:


  #include


  #include


  int fun (char *s, char *t)


  {


  int n; char *p , *r;


  n = 0;


  while (*s)


  {p = s; r = t;


  while (*r)


  if (*r == *p) {


  /************found************/


  r++; p++


  }


  else break;


  /************found************/


  if (r == '\0')


  n++;


  s++;


  }


  return n;


  }


  main()


  {


  char s[100], t[100]; int m;


  printf("\nPlease enter string S:"); scanf("%s", s);


  printf("\nPlease enter substring t:"); scanf("%s", t);


  m = fun(s, t);


  printf("\nThe result is: m = %d\n", m);


  }


  解题答案:


  /************found************/


  r++; p++;


  /************found************/


  if(*r=='\0')


  ******************************************

就业数据资源平台