当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机题库及答案(18)
发布时间:2011/8/19 15:16:49 来源:城市学习网 编辑:ziteng
  一、填空题:给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长

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

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

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

  给定源程序:

  #include

  #include

  #define M 5

  #define N 20

  void fun(char (*ss)[N])

  {int i, j, k=0, n, m, len;

  for(i=0; i

  {len=strlen(ss[i]);

  if(i==0) n=len;

  if(len>n) {

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

  n=len; ___1___=i;

  }

  }

  for(i=0; i

  if (i!=k)

  {m=n;

  len=strlen(ss[i]);

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

  for(j=___2___; j>=0; j--)

  ss[i][m--]=ss[i][j];

  for(j=0; j

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

  ___3___='*';

  }

  }

  main()

  {char ss[M][N]={"shanghai","guangzhou","beijing", "tianjing","cchongqing"};

  int i;

  printf("\nThe original strings are :\n");

  for(i=0; i

  printf("\n");

  fun(ss);

  printf("\nThe result:\n");

  for(i=0; i

  }

  解题答案:

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

  n=len; k=i;

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

  for(j=len; j>=0; j--)

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

  ss[i][j]='*';

  ****************************************** [NextPage]   二、改错题:给定程序MODI1.C中函数fun的功能是: 计算整数n的阶乘。请改正程序中的错误或在下划线处填上适当的内容并把下划线删除,使它能计算出正确的结果。

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

  给定源程序:

  #include

  double fun(int n)

  {

  double result=1.0;

  while (n>1 && n<170)

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

  result*=--n;

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

  return _____;

  }

  main()

  {

  int n;

  printf("Enter an integer: ");

  scanf("%d",&n);

  printf("\n\n%d!=%lg\n\n",n,fun(n));

  }

  解题答案:

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

  result*=n--;

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

  return result;

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

 [NextPage]   三、程序题:编写函数fun,函数的功能是: 从s所指的字符串中删除给定的字符。同一字母的大、小写按不同字符处理。若程序执行时输入字符串为: turbo c and borland c++ 从键盘上输入字符:n, 则输出后变为: turbo c ad borlad c++ 如果输入的字符在字符串中不存在, 则字符串照原样输出。

  注意: 部分源程序在文件PROG1.C中。

  请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入

  你编写的若干语句。

  给定源程序:

  #include

  #include

  void fun(char s[],char c)

  {

  }

  NONO()

  {

  /* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */

  FILE *rf, *wf ;

  char s[81], ch, w ;

  int len ;

  rf = fopen("in.dat","r");

  wf = fopen("out.dat","w");

  fgets(s, 80, rf);

  fscanf(rf, "%c", &ch);

  len = strlen(s) - 1 ;

  w = s[len] ;

  if(w == '\n' || w == 0x1a) s[len] = 0 ;

  fun(s, ch);

  fprintf(wf, "%s", s);

  fclose(rf);

  fclose(wf);

  }

  main()

  {

  static char str[]="turbo c and borland c++";

  char ch;

  printf("原始字符串:%s\n", str);

  printf("输入一个字符:");

  scanf("%c",&ch);

  fun(str,ch);

  printf("str[]=%s\n",str);

  NONO();

  参考答案:

  int fun(char s[],char c)

  {

  char *p = s ;

  int i = 0 ;

  while(*p) {

  if(*p != c) s[i++] = *p ;

  p++ ;

  }

  s[i] = 0 ;

  }

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved