itgle.com

以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。#define N 3#define M 3select(int a[N][M],int *n){int i,j,row=0,colum=0;for(i=0;i<N;i++)for(j=0;j<M;j++)if(a[i][j]>a[row][colum]){row=i;colum=j;}*n=;return();}

题目

以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。#define N 3#define M 3select(int a[N][M],int *n){int i,j,row=0,colum=0;for(i=0;i<N;i++)for(j=0;j<M;j++)if(a[i][j]>a[row][colum]){row=i;colum=j;}*n=;return();}


相似考题
更多“以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参 ”相关问题
  • 第1题:

    给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。

    例如,有10个正数:46 30 32 40 6 17 45 1548 26,平均值为:30.500000主函数中输出:46 32 40 45 48

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

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

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


    正确答案:(1)0 (2)x[i]/N (3)j++
    (1)0 (2)x[i]/N (3)j++ 解析:本题中函数fun的功能是计算形参x所指数组中N个数的平均值,并将大于平均值的数放在形参y所指数组中。计算平均值时,逐个对数组元素进行累加,得到累加和之后除以数组元素数量便得到平均值。

  • 第2题:

    下列给定程序中,函数proc()的功能是:根据形参m(2≤m≤9)的值,在m行m列的二维数组中存放如下所示的数据,由main()函数输出。

    请修改程序中的错误,使它能得出正确的结果。

    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

    试题程序:


    正确答案:

    (1)错误:proc(int**a,intm)
    正确:voidproc(int(*a)[N],intm)
    (2)错误:aEj][k]=k*J;
    正确:a[j][k]=(k+1)*(j+1);
    【解析】从主函数的调用可知,函数proc()没有返回值,因此应该定义为void类型。形参a应该是一个整型的指针数组。因此,“proe(int**a,intm)”应改为“voidproc(int(*a)[N],intm)”。数组下标从0开始,由事例数组可知,其元素从l开始递增,因此“a[j][k]=k*J;”应改为“a[j][k]=(k+1)*(j+1);”。

  • 第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题:

    下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长小于N。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。


    正确答案:
    (1)M(2)<(3)k【考点分析】本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。【解题思路】填空1:题目指出88所指字符串数组中共有M个字符串,所以for循环语句循环条件是i<M。填空2:要求求长度最短的字符串,tn中存放的是已知字符串中长度最短的字符串的长度,这里将当前字符串长度与+nl七较,若小于tn,则将该长度值赋给+n,因此if语句的务件表达式为len<+n。填空3:将最短字符串的行下标作为函数值返回,变量-储存行下标的值。

  • 第5题:

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

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

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

    试题程序:


    正确答案:


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