2013年计算机二级C语言上机题库三十九_第3页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年5月22日
  编程题
  请编写函数FUN,该函数的功能是:移动一维数组中的内容;若数组中有N个整数,要求把下标从0到P(P小于等于N-1)的数组元素平移到数组的最后。
  例如,一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10;P的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  试题程序:#include <stdio.h>
  #define N 80
  void fun(int *w, int p, int n)
  {
  } 
  main()
  {
  int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
  int i,p,n=15;
  FILE *out;
  int test[N] = {1,1,2,3,5,8,13,21,34,55,89,144};
  printf("The original data:\n");
  for(i=0; i<n; i++)
  printf("%3d",a[i]);
  printf("\n\nEnter p: ");
  scanf("%d",&p);
  fun(a,p,n);
  printf("\nThe data after moving :\n");
  for(i=0; i<n; i++)
  printf("%3d",a[i]);
  printf("\n\n");
  out=fopen("out.dat", "w");
  fun(test,6,12);
  for(i=0;i<12;i++)
  fprintf(out, "%d\n", test[i]);
  fclose(out);
  }
  答案是:
   void fun(int *w,int p,int n)
  {
  int b[N],I,j=0;
  for(i=0;i<=p;i++)
  b[i]=w[i];
  for(i=p+1;i<n;i++)
  {
  w[j]=w[i];
  j++;
  }
  for(i=0;i<=p;i++)
  {
  w[j]=b[i];
  j++;
  }
  }
首页 1 2 3 尾页

相关文章