请编写函数fun(),该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,若二维数组中的数据为:W WWWS S S SH H H H则字符串中的内容应是WSHWSHWSHWSH。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:include<stdio.h>define M 3define N 4void fun(char (*s)[N],char *b){}main(){char a[1

题目

请编写函数fun(),该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

例如,若二维数组中的数据为:

W WWW

S S S S

H H H H

则字符串中的内容应是WSHWSHWSHWSH。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include<stdio.h>

define M 3

define N 4

void fun(char (*s)[N],char *b)

{

}

main()

{

char a[100],w[M][N]={{ 'W', 'W', 'W', 'W'},

{'S', 'S', 'S', 'S'},{'H', 'H', 'H', 'H'}};

int i,j;

printf("The matrix:\n");

for(i=0;i<M;i++)

{ for(j=0;j<N;j++)

printf("%3c",w[i][j]);

printf("\n");

}

fun(w,a);

printf("The A string:In");

puts(a);

printf("\n\n");

}


相似考题
更多“请编写函数fun(),该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串 ”相关问题
  • 第1题:

    以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义)

    int fun(int a[N][M])

    {int i,j,row=0,col=0;

    for(i=0;i<N;i++)

    for(j=0;j<M;j++)

    if(a[i][j]>a[row][col])(row=i;col=j;)

    return(_____);

    }


    正确答案:a[row][col]
    a[row][col] 解析:嵌套循环,依次遍历二维数组的所有元素,从a[0][0]开始,先按行,后按列,a[row][col]先取a[0][0],若后面的元素比他大,则将此i、j值存入row、col中,即记录元素中当前最大值。循环结束返回a[row][col],即数组最大值。

  • 第2题:

    请编一个函数void proc(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。

    试题程序:


    正确答案:


    【解析】按照题目中要求,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。首先比较二维数组中每一行的元素,然后找出每一行中的最大元素,放入一维数组pp中,最后返回到主函数当中。

  • 第3题:

    以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义) int fun(int a[N][M]) {int i,j,row=0,col=0; for(i=0;i<N;i++) for(j=0;j<M;j++) if(a[i][j]>a[row][col]){row=i;col=j;} return(_____); }


    void fun (int(*s) [10]int *bint*nint mmint nn) {int ij; for(i=0;i<mm;s++j++) for(j=0;j<nn;j++) *(b+i*nn+j)=(*s)[j]; *n=mm*nn; } voidfun(int(*s)[10],int*b,int*n,intmm,intnn){inti,j;for(i=0;i<mm;s++,j++)for(j=0;j<nn;j++)*(b+i*nn+j)=(*s)[j];*n=mm*nn;}

  • 第4题:

    请编写函数proc,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。 例如,若二维数组中的数据为 13 23 33 43 14 24 34 44 15 25 35 45 则一维数组中的内容应该是13 23 33 43 14 24 34 44 15 25 35 45。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。 试题程序: include<stdio.h> void proc(int(*s)[103,int*b,int*n,int rain.int nn) {

    } void main { int arr[10][10]={{33,33,33,33),{44,44,44,44}, {55,55,55,55}),i,j; int a[l00]={o),n=o; printf("The matrix:\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) printf("%3d",arr[i][j]): printf("\n"); } proc(arr,a,&n,3,4): printf("The A array:\n"); for(i=0;i<n;i++) printf("%3d",a[i]): printf("\n\n"); }


    正确答案:

    void proc(int(*s)[10],int*b,int*n,int mm,int nn)
    {
    int i,j,k=0;
    for(i=0;i<mm;i++)//i是表示其行的下标
    for(j=0;j<nn;j++)//j是表示其列的下标
    b[k++]=s[i][j]; //把其放到b的一维数组中
    *n=k; //把b数组的长度通过形参n传回到主函数中
    }
    【解析】要将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,可以通过首先行循环,然后列循环取出二维数组中的每一个元素,并将其放入一维数组中。最后,将一维数组的长度通过形参返回到主函数当中。

  • 第5题:

    以下函数rotate的功能是:将N行N列的二维数组a中的最后一行放到N行N列的二维数组b的第0列中,把二维数组a中的第0行放到二维数组b的最后一列中,二维数组b中其他数据不变,请在下划线处填空。 #define N 4 void rotate(int a[N][N], int b[N][N]) { int i; for (i=0; i<N; i++) { b[i][0] = a[N-1][i] ; (1) = a[0][i]; } }


    b[i][N-1]