就业数据资源平台
当前位置:首页 > C语言程序设计
2011年计算机等级二级C语言章节习题及答案(11)

  填空题(请将每一个空的正确答案写在答题卡相应序号后。)
  7.31 下面程序的功能是输出数组s中最大元素的下标,请填空。
  main()
  { int k, p,s[]={1, -9, 7, 2, -10, 3};
  for(p =0, k =p; p< 6; p++)
  if(s[p]>s[k])【1】
  printf("%d\n", k);
  }
  正确答案:k=p;
  7.32 以下程序可把输入的十进制数以十六进制数的形式输出,请填空。
  main()
  { char b[17]={"0123456789ABCDEF"};
  int c[64],d,i=0,base=16;
  long n;
  printf("Enter a number:\n");scanf("%ld",&n);
  do
  { c[i]=【2】;
  i++;
  n=n/base;
  }while(n!=0);
  printf("Transmite new base:\n");
  for(--i;i>=0;--i)
  { d=c[i];
  printf("%c",b【3】);
  }
  printf("\n");
  }
  正确答案: nose [d]
  7.33 以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
  例如,若一维数组中的数据是:
  2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
  删除后,数组中的内容应该是:
  2 3 4 5 6 7 8 9 10。
  请填空。
  #include
  #define N 80
  int fun(int a[], int n)
  { int i,j=1;
  for(i=1;iif(a[j-1]【4】a[i])
  a[j++]=a[i];
  【5】;
  }
  main()
  { int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19;
  printf("The original data :\n");
  for(i=0; iprintf("=",a[i]);
  n=fun(a,n);
  printf("\nThe data after deleted :\n");
  for(i=0; iprintf("=",a[i]);
  printf("\n\n");
  }
  正确答案: != return j
  7.34 下列程序的输出的结果是 【6】 , 【7】 。
  main()
  { int i,j row,colum,m;
  static int array[3][3]={{100,200,300},{28,72,-30}{-850,2,6}};
  m=array[0][0];
  for(i=0;i<3;i++)
  for(j=0;j<3;j++)
  if(array[i][j]<m)
  { m=array[i][j];
  colum=j;
  row=i;
  }
  printf("%d,%d,%d\n",m,row,colum);
  }
  正确答案:-850,~2,0
  7.35 下面程序是求出数组arr的两条对角线上元素之和,请填空。
  #include "stdio.h"
  main()
  { int arr[3][3]={2,3,4,8,3,2,7,9,8},a=0,b=0,i,j;
  for(i=0;i<3;i++)
  for(j=0;j<3;j++)
  if( 【8】)
  a=a+arr[i][j];
  for(i=0;i<3;i++)
  for( 【9】 ;j>=0;j--)
  if( 【10】)
  b=b+ arr[i][j];
  printf("%d,%d\n",a,b);
  }
  正确答案:i==j j=2 i+j==2
就业数据资源平台