计算机二级C语言的注意事项及相应真题-3-程序填空

发布时间:2024年01月18日

21.

下列给定程序中,对于函数void fun(int *dt, int n),传递给形参dt整型数组名、传递给形参n该数组的数据个数,函数的功能是在数组中找出值最小的元素并将其与第1个元素交换。

如原数组数据为30,20,15,64,85,28,

则经函数处理后为15,20,30, 64,85,28。

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

注意:源程序存放在文件BLANK1. C中,不得增行或删行,也不得更改程序的结构。

BLANK1. C:

#include<stdio.h>
#pragma warning (disable:4996)
void fun(int *dt,int n)
{
	int i,m,t;
/**********************found***********************/
	____(1)____  ;//从下面交换赋值可以看出,t不用再初始化了,i在for循环中,也不用,那只会是m
	for(i=1;i<n;i++)//注意要看仔细些,这个for只对下一行生效
/**********************found***********************/
		if(____(2)____) //只有这个if分支在循环中,这个if分支作用是找出最小值,看下面的m=i就说明是第m项与第i项的比较,而i是从1开始的,那m就得从0开始,第一个空就出来了
			m=i;
	t=dt[0];
/**********************found***********************/
	____(3)____//交换赋值嘛,想必已经很熟悉了
	dt[m]=t;
}
main()
{
	int a[10]={ 30,20,15,64,85,28 }; 
	int i,n=6;
	for(i=0;i<n;i++)
		printf("%4d",a[i]);
	printf("\n");
	fun(a,n);
	for(i=0;i<n;i++)
		printf("%4d",a[i]);
	printf("\n");
}

解题思路:
有些坑,粗略的看的话,很容易下意识把交换赋值看作是for循环内了,我就有些粗心的毛病
(;′⌒`)

答案:

#include<stdio.h>
#pragma warning (disable:4996)
void fun(int *dt,int n)
{
	int i,m,t;
/**********************found***********************/
	  m=0;
	for(i=1;i<n;i++)
/**********************found***********************/
		if(dt[m]>dt[i]) 
			m=i;
	t=dt[0];
/**********************found***********************/
	dt[0]=dt[m];
	dt[m]=t;
}
main()
{
	int a[10]={ 30,20,15,64,85,28 }; 
	int i,n=6;
	for(i=0;i<n;i++)
		printf("%4d",a[i]);
	printf("\n");
	fun(a,n);
	for(i=0;i<n;i++)
		printf("%4d",a[i]);
	printf("\n");
}

测试:

输出:

  30  20  15  64  85  28
  15  20  30  64  85  28


22.

下列给定程序中,函数fun的功能是:根据形参ch中指定的大写英文字母,

按顺序打印出3个相邻的字母,指定的字母位于中间。

若指定的字母为Z,则打印YZA;若指定的字母为A,则打印ZAB。

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

注意:源程序存放在文件BLANK1. C中,不得增行或删行,也不得更改程序的结构。

BLANK1. C:

#include  <stdio.h>
#include  <ctype.h>
#pragma warning (disable:4996)
void fun(char ch)
{ char t[3];
  int i;
  t[1]=ch;//main函数传来的字符放在数组中间
/**********************found***********************/
  if (ch=='Z'){  t[2]='A';  t[0]= ____(1)____  ;    }//字母顺序输出
/**********************found***********************/
  else if (ch=='A')  {t[2]='B';   t[0]= ____(2)____; }
/**********************found***********************/
  else { t[0]=ch-1;  t[2]= ____(3)____;}
  for(i=0;i<3; i++) putchar(t[i]);
  putchar('\n');
}
main( )
{ char c;
  do
  { printf(" enter a upper letter:");
    c=getchar(); getchar(); 
  }
  while(!isupper(c));//c获取到大写字母时跳出,然后传到fun函数
  fun(c);
}

解题思路:
getchar():每次只获取一个字符,无论是空格还是换行符都会被收取

isupper(): 判断是否为大写字母

do-while循环:必定会执行一次,也就是上面代码中的c一定会获取一个字符

putchar(): 一次输出一个字符

答案:

#include  <stdio.h>
#include  <ctype.h>
#pragma warning (disable:4996)
void fun(char ch)
{ char t[3];
  int i;
  t[1]=ch;
/**********************found***********************/
  if (ch=='Z'){  t[2]='A';  t[0]= 'Y'  ;    }
/**********************found***********************/
  else if (ch=='A')  {t[2]='B';   t[0]= 'Z'; }
/**********************found***********************/
  else { t[0]=ch-1;  t[2]= ch+1;}
  for(i=0;i<3; i++) putchar(t[i]);
  putchar('\n');
}
main( )
{ char c;
  do
  { printf(" enter a upper letter:");
    c=getchar(); getchar(); 
  }
  while(!isupper(c));
  fun(c);
}

测试:

输入:

A

输出:

 enter a upper letter:ZAB


23.

给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。

例如,当形参n的值为10时,函数返回:9.612558。

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

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

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

BLANK1.C:

#include  <stdio.h>
double fun(int  n)
{ int  i;    double  s, t;
/**********found**********/
  s=__1__;//i的初始时从1开始的,也就是累加从第一项,那么这里s初值就是0
/**********found**********/
  for(i=1; i<=__2__; i++)//要从第1项累加到第n项
  { t=2.0*i;
/**********found**********/
    s=s+(2.0*i-1)*(2.0*i+1)/__3__;//看题目中的公式应该很好推断出
  }
  return  s;
}
main()
{ int  n=-1;
  while(n<0)//n初始值小于0,必定会进入一次循环
  { printf("Please input(n>0): "); scanf("%d",&n);  }
  printf("\nThe result is: %f\n",fun(n));
  getchar();
}

解题思路:
s=s+(2.0i-1)(2.0i+1)/3;,他这句话感觉就是为了误导人,显得更复杂些,2.0i明明可以直接用 t 替换掉的,
还有main函数那个while循环是经典的迷惑操作了( ̄_, ̄ )

答案:

#include  <stdio.h>
double fun(int  n)
{ int  i;    double  s, t;
/**********found**********/
  s=0;
/**********found**********/
  for(i=1; i<=n; i++)
  { t=2.0*i;
/**********found**********/
    s=s+(2.0*i-1)*(2.0*i+1)/(t*t);
  }
  return  s;
}
main()
{ int  n=-1;
  while(n<0)
  { printf("Please input(n>0): "); scanf("%d",&n);  }
  printf("\nThe result is: %f\n",fun(n));
  getchar();
}

测试:

输入:

10

输出:

Please input(n>0): 
The result is: 9.612558


24.

给定程序blank1.c中,函数fun的功能是将一个由字符0和1组成的表示二进制数的字符

串,转换成相应的十进制整数值返回。该串长度最大不超过15。

例如:若表示二进制数的字符串为:”10011”,

则运行结果应为: 10011–>19

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

注意:源程序存放在文件BLANK1. C中,不得增行或删行,也不得更改程序的结构。

BLANK1.C:

#include   <stdio.h>
#pragma warning (disable:4996)
#define    N   16
/**********************found***********************/
int  fun( char  ____(1)____)  //那边main函数传过来的是数组,但没给数组长度,那这里就只能用指针
{  int  i,  n = 0;
/**********************found***********************/
   for (i=0; ____(2)____ ; ++i)//这个空填的是跳出循环的条件的,数组元素为空时就停了
/**********************found***********************/
        n = n*2 + (s[i] -____(3)____) ; //要将数字字符转换为数
   return  n;
}
main( )
{  char  num[] = "10011";    int  n;
   n = fun(num);
   printf( "%s-->%d\n", num, n );
}


解题思路:
考查了下ASCII码,
数字字符转化为数,以ASCII码的形式减去字符 ‘0’,得到的即为数,字符 '0’的ASCII码为48

答案:

#include   <stdio.h>
#pragma warning (disable:4996)
#define    N   16
/**********************found***********************/
int  fun( char  *s)  
{  int  i,  n = 0;
/**********************found***********************/
   for (i=0; s[i]!='\0' ; ++i)
/**********************found***********************/
        n = n*2 + (s[i] -'0') ; //这里字符'0'也可以换成48
   return  n;
}
main( )
{  char  num[] = "10011";    int  n;
   n = fun(num);
   printf( "%s-->%d\n", num, n );
}


测试:

输出:

10011-->19


25.

给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。

例如,当形参n的值为10时,函数返回:-0.204491。

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

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

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

BLANK1.C:

#include  <stdio.h>
double fun(int  n)
{ int  i, k;    double  s, t;
  s=0;
/**********found**********/
  k=__1__;//s=0,还没有增加项,所以是从第一项起,k就从1开始
  for(i=1; i<=n; i++) {
/**********found**********/
    t=__2__;//根据题目公式结合代码可以看出i就是公式中的n,
    s=s+k*(2*i-1)*(2*i+1)/(t*t);//k是判断正负的,奇数项为正,偶数项为负
/**********found**********/
    k=k*__3__;
  }
  return  s;
}
main()
{ int  n=-1;
  while(n<0)//经典迷惑循环
  { printf("Please input(n>0): ");  scanf("%d",&n);  }
  printf("\nThe result is: %f\n",fun(n));
  getchar();
}

解题思路:
这题前面有很多类似的了,套路比较重复( ̄︶ ̄)↗

答案:

#include  <stdio.h>
double fun(int  n)
{ int  i, k;    double  s, t;
  s=0;
/**********found**********/
  k=1;
  for(i=1; i<=n; i++) {
/**********found**********/
    t=2*i;
    s=s+k*(2*i-1)*(2*i+1)/(t*t);
/**********found**********/
    k=k*(-1);
  }
  return  s;
}
main()
{ int  n=-1;
  while(n<0)
  { printf("Please input(n>0): ");  scanf("%d",&n);  }
  printf("\nThe result is: %f\n",fun(n));
  getchar();
}

测试:

输入:

10

输出:

Please input(n>0): 
The result is: -0.204491


26.

下列给定程序中,函数fun根据所给n名学生的成绩,计算出所有学生的平均成绩,

把高于平均成绩的学生成绩求平均值并返回。

例如:若有成绩为: 50, 60, 70, 80, 90, 100, 55, 65, 75, 85, 95, 99,

则运行结果应为: 91. 5。

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

注意:源程序存放在文件BLANK1.C中,不得增行或删行,也不得更改程序的结构。

BLANK1.C:

#include  <stdio.h>
#pragma warning (disable:4996)
double  fun(double x[], int n)
{	int i, k=0;
    double avg=0.0, sum=0.0;
	for (i=0; i<n; i++) 
		avg += x[i];//先累加所有学生的成绩
/**********************found***********************/
	avg /= ____(1)____;//除以学生数量,即为平均成绩
	for (i=0; i<n; i++) 
		if (x[i] > avg)//筛选出了高于平均成绩的学生成绩
		{
/**********************found***********************/
			____(2)____ += x[i];//累加高于平均成绩的学生成绩
			k++;//高于平均成绩的学生数量
		}
/**********************found***********************/
	return  ____(3)____;//要返回高于平均成绩的学生成绩的平均值
}
main( )
{  double score[12] ={50,60,70,80,90,100,55,65,75,85,95,99};
   double aa;
   aa= fun(score,12);
   printf("%f\n",aa);
}

解题思路:
这题也不难,看题要细心,
注意最后fun函数要返回的是高于平均成绩的学生成绩的平均值

答案:

#include  <stdio.h>
#pragma warning (disable:4996)
double  fun(double x[], int n)
{	int i, k=0;
    double avg=0.0, sum=0.0;
	for (i=0; i<n; i++) 
		avg += x[i];
/**********************found***********************/
	avg /= n;
	for (i=0; i<n; i++) 
		if (x[i] > avg)
		{
/**********************found***********************/
			sum += x[i];
			k++;
		}
/**********************found***********************/
	return  sum/k;
}
main( )
{  double score[12] ={50,60,70,80,90,100,55,65,75,85,95,99};
   double aa;
   aa= fun(score,12);
   printf("%f\n",aa);
}

测试:

输出:

91.500000


27.

给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据依次移至数组的前部,大于等于平均值的数据依次移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

例如,有10个正数:41 1734 0 19 24 28 8 12 14,平均值为:19.700000

移动后的输出为: 17 0 19 8 12 14 41 34 24 28

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

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

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

BLANK1.C:

#include  <stdlib.h>
#include  <stdio.h>
#define   N   10
double fun(double  *x)
{ int  i, j;    double  av, y[N];
  av=0;
/**********found**********/
  for(i=0; i<N; i++)  av +=__1__;//这里要直接得出平均数,不用担心数据类型的问题,数组都是浮点类型
  for(i=j=0; i<N; i++)
    if( x[i]<av ){//先筛出小于平均值的,存入数组y,
/**********found**********/
      y[j]=x[i]; x[i]=-1; __2__;}//被筛出小于平均值数组x中元素被赋-1,是方便用于下面筛出大于等于平均值的元素,这里i自增变化了,j还没变化
  i=0;
  while(i<N)//筛出大于等于平均值的元素
  {  if( x[i]!= -1 ) y[j++]=x[i];//接着存入数组大于等于平均值的元素
/**********found**********/
     __3__;//i自增后移
  }
  for(i=0; i<N; i++)x[i] = y[i];//得到的数组y再赋给数组x
  return  av;
}
main()
{ int  i;     double  x[N];
  for(i=0; i<N; i++){ x[i]=rand()%50; printf("%4.0f ",x[i]);}//rand()随机数函数
  printf("\n");
  printf("\nThe average is: %f\n",fun(x));
  printf("\nThe result :\n",fun(x));
  for(i=0; i<N; i++)  printf("%5.0f ",x[i]);
  printf("\n");
  getchar();
}

解题思路:
rand() :
rand()%(n-m+1) + m; //产生m到n的随机数
比如题目中的rand()%50 就是产生0到49的随机数

答案:

#include  <stdlib.h>
#include  <stdio.h>
#define   N   10
double fun(double  *x)
{ int  i, j;    double  av, y[N];
  av=0;
/**********found**********/
  for(i=0; i<N; i++)  av +=x[i]/N;
  for(i=j=0; i<N; i++)
    if( x[i]<av ){
/**********found**********/
      y[j]=x[i]; x[i]=-1; j++;}
  i=0;
  while(i<N)
  {  if( x[i]!= -1 ) y[j++]=x[i];
/**********found**********/
     i++;
  }
  for(i=0; i<N; i++)x[i] = y[i];
  return  av;
}
main()
{ int  i;     double  x[N];
  for(i=0; i<N; i++){ x[i]=rand()%50; printf("%4.0f ",x[i]);}
  printf("\n");
  printf("\nThe average is: %f\n",fun(x));
  printf("\nThe result :\n",fun(x));
  for(i=0; i<N; i++)  printf("%5.0f ",x[i]);
  printf("\n");
  getchar();
}

测试:

输出:

  33   36   27   15   43   35   36   42   49   21 

The average is: 33.700000

The result :
   33    27    15    21    36    43    35    36    42    49 


28.

给定程序中,函数fun的功能是建立一个NXN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1,从外向内第2层元素的值全部为2;第3层元素的值全部为3,…依次类推例如,若N=5,生成的矩阵为:

1 1 1 1 1

1 2 2 2 1

1 2 3 2 1

1 2 2 2 1

1 1 1 1 1

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

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

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

BLANK1.C:

#include  <stdio.h>
#define   N   7
/**********found**********/
void fun(int  (*a) __1__)//二维数组以指针形式传递的
{ int  i,j,k,m;
  if(N%2==0) m=N/2 ;//得出的m也就是确定有几层
  else       m=N/2+1;
  for(i=0; i<m; i++) {
/**********found**********/
     for(j= __2__ ; j<N-i; j++)//这里是求出矩阵一层元素的上下边
        a[i][j]=a[N-i-1][j]=i+1;//一层元素上边a[i][j],下边a[N-i-1][j],i+1就是层数
     for(k=i+1; k<N-i; k++)
/**********found**********/
        a[k][i]=a[k][N-i-1]= __3__;//求出矩阵一层元素的左右边,左边为a[k][i],右边为a[k][N-i-1],元素值为层数
  }
}
main()
{ int  x[N][N]={0},i,j;
  fun(x);
  printf("\nThe result is:\n");
  for(i=0; i<N; i++)
  {  for(j=0; j<N; j++)  printf("%3d",x[i][j]);
     printf("\n");
  }
  getchar();
}

解题思路:
这题代码的思路相当不错了,感觉不给代码让我编写一个符合题目要求的程序,我估计是没他写的好了,
先求出共有多少层,然后由外到内一层一层得出结果,先求一层的上下边,再求一层的左右边

答案:

#include  <stdio.h>
#define   N   7
/**********found**********/
void fun(int  (*a) [N])
{ int  i,j,k,m;
  if(N%2==0) m=N/2 ;
  else       m=N/2+1;
  for(i=0; i<m; i++) {
/**********found**********/
     for(j= i ; j<N-i; j++)
        a[i][j]=a[N-i-1][j]=i+1;
     for(k=i+1; k<N-i; k++)
/**********found**********/
        a[k][i]=a[k][N-i-1]= i+1;
  }
}
main()
{ int  x[N][N]={0},i,j;
  fun(x);
  printf("\nThe result is:\n");
  for(i=0; i<N; i++)
  {  for(j=0; j<N; j++)  printf("%3d",x[i][j]);
     printf("\n");
  }
  getchar();
}

测试:

输出:


The result is:
  1  1  1  1  1  1  1
  1  2  2  2  2  2  1
  1  2  3  3  3  2  1
  1  2  3  4  3  2  1
  1  2  3  3  3  2  1
  1  2  2  2  2  2  1
  1  1  1  1  1  1  1


29.

给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。

例如,有下列矩阵:

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

若k为2,程序执行结果为

3 4 5 1 2

3 4 5 1 2

3 4 5 1 2

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

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

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

BLANK1.C:

#include  <stdio.h>
#define   M   3
#define   N   5
void fun(int  (*a)[N],int  k)
{ int  i,j,p,temp;
/**********found**********/
  for(p=1; p<= __1__; p++)//p是循环移动次数
     for(i=0; i<M; i++)
     {  temp=a[i][0];//在内层循环中,首先将当前行的第一个元素保存到临时变量temp中
/**********found**********/
        for(j=0; j< __2__ ; j++) a[i][j]=a[i][j+1];//遍历当前行的每个元素(除了最后一个元素),将当前元素的值更新为下一个元素的值
/**********found**********/
        a[i][N-1]= __3__;//将临时变量temp的值赋给当前行的最后一个元素
     }
}
main( )
{ int  x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} },i,j;
  printf("The array before moving:\n\n");
  for(i=0; i<M; i++)
  {  for(j=0; j<N; j++)  printf("%3d",x[i][j]);
     printf("\n");
  }
  fun(x,2);
  printf("The array after moving:\n\n");
  for(i=0; i<M; i++)
  {  for(j=0; j<N; j++)  printf("%3d",x[i][j]);
     printf("\n");
  }
  getchar();
}

解题思路:
下面这个图就是题目的思路,

代码分析:
1.在fun函数中,使用了两个嵌套的for循环,最外层循环控制移动次数,移动次数即为第k列移到第0列所需次数,内层两个for循环遍历每一行

2.在内层循环中,首先将当前行的第一个元素保存到临时变量temp中

3.然后使用一个内层循环遍历当前行的每个元素(除了最后一个元素),将当前元素的值更新为下一个元素的值

4.最后,将临时变量temp的值赋给当前行的最后一个元素

答案:

#include  <stdio.h>
#define   M   3
#define   N   5
void fun(int  (*a)[N],int  k)
{ int  i,j,p,temp;
/**********found**********/
  for(p=1; p<= k; p++)
     for(i=0; i<M; i++)
     {  temp=a[i][0];
/**********found**********/
        for(j=0; j< N-1 ; j++) a[i][j]=a[i][j+1];//这个空原来可以看作j+1<N,空留在那边所以是j<N-1
/**********found**********/
        a[i][N-1]= temp;
     }
}
main( )
{ int  x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} },i,j;
  printf("The array before moving:\n\n");
  for(i=0; i<M; i++)
  {  for(j=0; j<N; j++)  printf("%3d",x[i][j]);
     printf("\n");
  }
  fun(x,2);
  printf("The array after moving:\n\n");
  for(i=0; i<M; i++)
  {  for(j=0; j<N; j++)  printf("%3d",x[i][j]);
     printf("\n");
  }
  getchar();
}

测试:

输出:

The array before moving:

  1  2  3  4  5
  1  2  3  4  5
  1  2  3  4  5
The array after moving:

  3  4  5  1  2
  3  4  5  1  2
  3  4  5  1  2


30.

给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中己置0)。

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

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

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

BLANK1.C:

#include  <stdlib.h>
#include  <stdio.h>
#define   N  20
void  fun( int  *a)
{ int  i, x, n=0;
  x=rand()%20;
/**********found**********/
  while (n<__1__)//n就是已经产生的不同随机数的元素个数
  {  for(i=0; i<n; i++ )//遍历已经存入数组的元素与现在产生的随机数进行比较
/**********found**********/
         if( x==a[i] ) __2__;//若有相同的进入if分支
/**********found**********/
     if( i==__3__){ a[n]=x; n++; }//存入该随机数
     x=rand()%20;
  }
}
main()
{ int  x[N]={0} ,i;
  fun( x );
  printf("The result :  \n");
  for( i=0; i<N; i++ )
  { printf("%4d",x[i]);
    if((i+1)%5==0)printf("\n");
  }
  printf("\n\n");
  getchar();
}

解题思路:
第一个空好理解,一共要存入N个随机数,当n==N就要跳出循环了

第二个空要结合第三个空看,那先看第三个空,要存入随机数必然是与已经存入的数比较没有相等的才能存入,全部比较完后i该等于n,才会执行存入操作

那第二个空就该是break,跳出循环i不再递增,当前随机数已经不符合,也就没必要往后比较了

还是说下rand()这个随机数函数吧,
rand()%(n-m+1)+m //m到n的随机数

题目中的rand()%20,也就是0到19的随机数了

答案:

#include  <stdlib.h>
#include  <stdio.h>
#define   N  20
void  fun( int  *a)
{ int  i, x, n=0;
  x=rand()%20;
/**********found**********/
  while (n<N)
  {  for(i=0; i<n; i++ )
/**********found**********/
         if( x==a[i] ) break;
/**********found**********/
     if( i==n){ a[n]=x; n++; }
     x=rand()%20;
  }
}
main()
{ int  x[N]={0} ,i;
  fun( x );
  printf("The result :  \n");
  for( i=0; i<N; i++ )
  { printf("%4d",x[i]);
    if((i+1)%5==0)printf("\n");
  }
  printf("\n\n");
  getchar();
}

测试:

输出:

The result :  
   3   6  17  15  13
  12   9   1   2   7
  10  19   0  16  11
   8  18   4   5  14




文章来源:https://blog.csdn.net/fengbizhe/article/details/135585908
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。