当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(44)
发布时间:2011/7/14 11:36:02 来源:城市学习网 编辑:ziteng
  第44套
  填空题
  请补充fun函数,该函数的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值的或相等的字符依次放在到C数组中,形成一个新的字符串。
  例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。
  请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
  #include
  #include
  void fun(char *p, char *q, char *c)
  {
  int k =0 ;
  while (*p||*q)
  {
  if (*p < *q)
  c[k] = *q;
  else
  c[k] = *p;
  if (*p)
  p++;
  if (*q)
  q++;
  k++;
  }
  }
  main()
  {
  char a[10] = "aBCDeFgH", b[10] = "ABcd", c[80] = {'\0'};
  fun(a, b, c);
  printf("The string a:");
  puts(a);
  printf("The string b:");
  puts(b);
  printf("The result:");
  puts(c);
  } [NextPage]   改错题
  下列给出程序中,函数fun的功能是:根据形参m的值(2〈=m〈=9〉,在m行m列的二维数组中存放如下所示的数据,由main()函数输出。
  请改正程序的错误,使它能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改持续的结构!
  #include
  #include
  #define  M 10
  int  a[M][M] = {0};
  /********found********/
  fun(int  ()*a[M], int  m)
  {
  int  j, k;
  for (j=0; j              for (k=j; k                     /********found********/
  a[j][k] =( k+1)*(j+1);
  }
  main()
  {
  int  i, j, n;
  printf(" Enter n:");
  scanf("%d", &n);
  fun(a, n);
  for (i=0; i       {
  for (j=0; j                     printf("M", a[i][j]);
  printf("\n");
  }
  }
 [NextPage]   编程题
  编写一个函数,该函数可以统计一个长度为2的字符串在一个字符串的次数。
  例如,假定输入的字符串为:asd asasdfg asd as zx67 asd mklo,子字符串为as,则应输出6。
  请勿改动主函数 main和其他函数中的的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。
  #include
  #include
  #include
  int fun(char *str,char *substr)
  {
  int n;
  char *p,*r;
  n=0;
  while  (*str)
  {
  p=str;
  r=substr;
  while(*r)
  if(*r= =*p)
  {
  r++;
  p++;
  }
  else
  break;
  if(*r= =’\0’)}
  n++;
  str++;
  }
  return n;
  }
  main()
  {
  char str[81],substr[3];
  int n;
  FILE *out;
  printf("输入主字符串: ");
  gets(str);
  printf("输入子字符串: ");
  gets(substr);
  puts(str);
  puts(substr);
  n=fun(str,substr);
  printf("n=%d\n",n);
  out=fopen ("out.dat", "w");
  strcpy(str, "asd asasdfg asd as zx67 asd mklo");
  strcpy(substr, "as");
  fprintf(out, "%d", fun(str, substr));
  fclose (out );
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved