等级考试二级C题库第34套程序设计题

请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。一维数 组中数据的个数存放在形参n所指的存储单元中。
例如,若二维数组中的数据为
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的内容应是:
33 44 55 33 44 55 33 44 55 33 44 55
注意:部分源程序在文件PROG1.C中。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

#include <stdio.h>
void fun (int (*s)[10], int *b, int *n,int mm, int nn)
{
/*在此编写代码*/
}
void main()
{
int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}}, i, j;
int a[100]={0},n=0 ;
FILE *out;
printf("The matrix:\n");
for (i=0; i<3; i++)
{for (j=0;j<4;j++)
printf("%3d",w[i][j]);
printf("\n");
}
fun(w,a,&n,3,4);
/******************************/
out=fopen("out.dat","w");
printf("The A array:\n");
for(i=0; i<n; i++)
{ printf("%3d",a[i]);
fprintf(out,"%d ",a[i]);
}
printf("\n\n");
fclose(out);
/******************************/
}

答案是:
int i,j;
for(j=0;j<nn;j++) /*将二位数组中的数据按列的顺序依次放入一位数组中*/
for(i=0;i<mm;i++)
{
b[*n]=*(*(s+i)+j);
*n=*n+1;

可我还是没有看懂。 b[*n]=*(*(s+i)+j);
*n=*n+1;
这两行是什么意思~

第1个回答  2015-03-10
木泉计算机论坛直接给你2013考试大纲,你就知道考什么了。 全国计算机等级考试二级 C 语言程序设计考试大纲(2013 年版) 基本要求 1. 熟悉 Visual C++ 6. 0 集成开发环境。 2. 掌握结构化程序设计的方法,具有良好的程序设计风格。
相似回答