当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(47)
发布时间:2011/7/14 11:43:45 来源:城市学习网 编辑:ziteng
  第一题:数组xx[N]保存着一组3位数的无符号正整数,其元素的个数通过变量num传入funn函数。请补充fun函数,该函数的功能是:从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由fun函数返回。
  例如:当xx[8]={123,231,232,222,424,333,141,544}时,bb[5]={232,222,424,333,141}。
  请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
  #include <stdio.h>
  #include <conio.h>
  #define  N 1000
  int fun(int  xx[], int  bb[], int  num)
  {
  int  i, n = 0;
  int  g, b;
  for (i=0; i<num; i++)
  {
  g = ___1___;
  b = xx[i]/100;
  if (g == b)
  ___2___;
  }
  return ___3___;
  }
  main()
  {
  int  xx[8] = {123, 231, 232, 222, 424, 333, 141, 544};
  int  yy[N];
  int  num = 0, n = 0, i = 0;
  num = 8;
  printf("******original data *******\n ");
  for (i=0; i<num; i++)
  printf("%u  ", xx[i]);
  printf("\n\n\n");
  n = fun(xx, yy, num);
  printf("\nyy= ");
  for (i=0; i<n; i++)
  printf("%u  ", yy[i]);
  }
  第一题答案
  1:(xx[1]%10)答案2:(bb[n++]=xx[1]) 答案3:(n) [NextPage]   第二题:下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
  请改正程序中的错误,使它能得出正确的结果。
  注意:不要改动main函数,不得增行或减行,也不得更改程序的结构!
  #include <conio.h>
  #include <stdio.h>
  #define  N 20
  /********found********/
  void fun(int  *a, int  n);
  {
  int  i, m, t, k;
  for (i=0; i<2; i++)
  {
  /********found********/
  m=0;
  for (k=i+1; k<n; k++)
  if (a[k] > a[m])
  m = k;
  t = a[i];
  a[i] = a[m];
  a[m] = t;
  }
  }
  main()
  {
  int  b[N] = {11, 5, 12, 0, 3, 6, 9, 7, 10, 8}, n = 10, i;
  for (i=0; i<n; i++)
  printf("%d  ", b[i]);
  printf("\n");
  fun(b, n);
  for (i=0; i<n; i++)
  printf("%d  ", b[i]);
  printf("\n");
  }
  第二题答案:
  第1处:void fun(int *a,int n);应改为void fun(int *a,int n)
  第2处:m=o;应改为 m=i;
 [NextPage]   第三题:请编写一个函数void fun(char*ss),其功能是:将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
  例如,若输入abc4EFg,则应输入aBc4EFg.。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  #include <conio.h>
  #include <stdio.h>
  #include <string.h>
  void fun(char *ss)
  {
  }
  void main( void )
  {
  char tt[51];
  FILE *out;
  printf("\nPlease enter an character string within 50 characters:\n" );
  gets( tt );
  printf("\n\nAfter changing, the string\n  %s", tt );
  fun(tt) ;
  printf( "\nbecomes\n  %s", tt );
  out=fopen ("out.dat", "w");
  strcpy(tt, "After changing, the string");
  fun(tt);
  fprintf(out, "%s", tt);
  fclose (out );
  }
  第三题答案:
  void fun(char *ss)
  {
  int i,n=0;
  char *p=ss;
  while(*p)
  {
  n++;
  p++;
  }
  for (i=0;i<n;i++)
  if((ss[i]>= ‘a’&& ss[i]<= ‘z’)&&i%2!=0)
  ss[i]=ss[i]-32;
  ss[i]= ‘\0’;
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved