单选题若有以下程序#include #define N 4void fun(int a[][N], int b[], int flag){ int i,j; for(i=0; i a[i][j]) : (b[i] < a[i][j]))  b[i] = a[i][j]; }}main(){ int x[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, y[N],i; fun(x,y,1); for (i=0; i A 1,2,3,4,13,14,15,16,B

题目
单选题
若有以下程序#include #define N 4void fun(int a[][N], int b[], int flag){ int i,j; for(i=0; i a[i][j]) : (b[i] < a[i][j]))  b[i] = a[i][j]; }}main(){ int x[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, y[N],i; fun(x,y,1); for (i=0; i
A

1,2,3,4,13,14,15,16,

B

4,8,12,16,1,5,9,13,

C

1,5,9,13,4,8,12,16,

D

13,14,15,16,1,2,3,4,


相似考题
更多“单选题若有以下程序#include #define N 4void fun(int a[][N], int b[], int flag){ int i,j; for(i=0; i a[i][j]) : (b[i] a[i][j]))  b[i] = a[i][j]; }}main(){ int x[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, y[N],i; fun(x,y,1); for (i=0; i A 1,2,3,4,13,14,15,16,B ”相关问题
  • 第1题:

    请补充函数fun(),该函数的功能是:计算N×N维矩阵元素的方差,结果由函数返回。维数N在主函数中输入。例如:

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include <stdio.h>

    include <conio.h>

    include <stdlib.h>

    include <math.h>

    define N 20

    double fun(【 】,int n)

    {

    int i,j;

    int k;

    double s=0.0;

    double f=0.0;

    double aver=0.0;

    double sd=0.0;

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

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

    s+=a[i][j];

    aver=【 】;

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

    for(j=0;i<n;j++)

    f+=(a[i][j]-aver)*(a[i][j]-aver);

    f/(n*n);

    sd=【 】;

    return sd;

    }

    main()

    {

    int a[N][N];

    int n;

    int i,j;

    double s;

    clrscr();

    printf("***+Input the dimension of

    array N*****\n");

    scanf("%d",&n);

    printf("***** The array *****\n");

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

    {

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

    {

    a[i][j]=rand()%50;

    while(a[i][j]=0)

    a[i][j]=rand()%60;

    printf("%4d",a[i][j]);

    }

    printf("\n\n");

    }

    s=fun(a,n);

    printf("******* THE RESULT *******\n");

    printf("%4.3f\n",s);

    }


    正确答案:int a[][N] s/(n*n) sqrt(f)
    int a[][N] s/(n*n) sqrt(f) 解析:第一空;由主函数main()中对函数fun()的调用格式,可以知道,函数fun()的第一个参数是N×N的二维整型数组。第二空:平均值等于所有元素的累加和除以个数。第三空;根据公式,方差sd等于对变量f开平方,这里注意对数学库函数的调用。

  • 第2题:

    有以下程序 #define N 20 fun(int a[],int n,int m) { int i,j; for(i=m;i>=n;i--) a[i+1]=a[i]; } main() { int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) printf("%d",a[i]); } 程序运行后的输出结果是——。

    A.10234

    B.12344

    C.12334

    D.12234


    正确答案:C

  • 第3题:

    有以下程序: #include<stdio.h> #define N 3 void fun(int a[][N],int b[]) { int i,j; for(i=0;i<N;i++) { b[i]=a[i][0]; for(j=i;j<N;j++) if(b[i]<a[i][j]) b[i]=a[i][j]; } } main( ) { int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i; fun(x,y); for(i=0;i<N;i++)printf("%d,",y[i]); printf("\n"); } 程序运行后的输出结果是(,)。

    A.2,4,8,

    B.3,6,9,

    C.3,5,7,

    D.1,3,5,


    正确答案:B
    Fun函数功能是把数组a的每一行的最大值赋给b,a的第一行的最大值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9。

  • 第4题:

    有以下程序: void fun(int *a,int i,int i) { int t; if(i<j) { t==a[i];a[i]=a[j];a[i]=t; i++; j--; fun(a,i,j); } } main() { int x[]={2,6,1,8),i; fun(x,0,3), for(i=0;i<4;i++) printf("%2d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。

    A.1268

    B.8621

    C.8162

    D.8612


    正确答案:C
    解析:函数fun()中用了一个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组x,该数组有4个元素,接着调用fun(a,O,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为8、1、6和2,所以,4个选项中选项C符合题意。

  • 第5题:

    有以下程序#include <stdio.h>#define N 4void fun(int a[][N], int b[]) { int i; for(i=0; i<N; i++) b[i]=a[i][i];}main(){ int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N], i; fun(x,y); for (i=0; i<N; i++) printf("%d,", y[i]); printf("\n");}程序的运行结果是A.l,2,3,4, B.1,0,7,0, C.1,4,5,9, D.3,4,8,10,


    正确答案:B
    本题考查二维数组的相关操作。程序主要包括两个部分:主函数部分和fun函数。主函数初始给出了一个4×4的二维矩阵,并对每一行赋初值,可以看出每一行都要有4个元素,而对于给出的初值个数不满足4个的,要先从第一列开始将各个值赋给各列,不足的部分用0补齐。函数fun的作用是将二维矩阵a中行号与列号相同的数据赋值给一维矩阵y,y的下标与该数据在a中的行号相同。题目所要求解的即通过printf函数将矩阵y中的元素按照顺序输出。本题中二维矩阵a初始化后为{{1,2,3,0},{4,0,0,0},{5,6,7,8},{9,10,0,0}}。将行号与列号相同的元素赋给y,则y矩阵的数据为{1,0,7,0},输出即可得到结果。

  • 第6题:

    有以下程序:includeincludevoid fun(char*s[],int n){char*t;int i,j;for(

    有以下程序: #include<stdio.h> #include<string.h> void fun(char*s[],int n) { char*t;int i,j; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;} } main() { Char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"}; fun(ss,5);printf("%s,%s\n",ss[0],ss[4]); } 程序的运行结果是( )。

    A.xy,aaaacc

    B.aaaacc,xy

    C.bcc,aabcc

    D.aabcc,bcc


    正确答案:A

  • 第7题:

    有以下程序 include define N 4 void fun(int a[][N],int b[]) { int

    有以下程序 #include <stdio.h> #define N 4 void fun(int a[][N],int b[]) { int i; for(i=0;i<N;i++) b[i]=a[i][i]; } main() {int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10} },Y[N],i; fun(x,y); for(i=0;i<N;i++) printf("%d,",y[i]); printf("\n"); } 程序的运行结果是______。

    A.1,2,3,4,

    B.1,0,7,0,

    C.1,4,5,9,

    D.3,4,8,10,


    正确答案:B
    解析:在主函数中,定义并初始化了4行4列的二维数组x。对于二维数组元素的赋值,可以只对部分元素赋初值,未赋初值的元素自动取0。x数组元素赋初值后各元素为:

    fun函数的作用是将二维数组a中主对角线元素赋给数组b,由于数组a与数组x共用同一存储单元,也即将数组x中主对角线元素赋给了数组b。又因为数组b与数组y共用同一存储单元,所以主函数中通过语句“printf("%d,"y[i]);”输出的即为数组b中的值,所以程序运行结果为“1,0,7,0,”。

  • 第8题:

    下列程序的输出结果是 #include"stdio.h" #define N3 #define M3 void fun(int a[M][N]) { printf("%d\n",*(a[1]+2));} main() { int a[M][N]; int i,j; for(i=0;i<M;i++) for(j=0;j<N;j++) a[i][j]=i+j-(i-j); fun(a);}

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析: 若有以下定义:int a[3][4],i,j;且当 0=i3,0=j4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:
    a[a][j],*(a[i]+j),*(*(a+i)+j),(*(a+i)[j],*(&a [0][0]+4*i+j)”。

  • 第9题:

    以下程序的输出结果是______。 main () { int x=5,n=3,s,j; for(j=0;j<2;j++) { s=fun(x,n); printf("%d",s); } } fun(int a,int b) { static int n=0,i=2; i=n+1; n=i+a-b; return(n); }

    A.3 7

    B.3 5

    C.3 6

    D.3 3


    正确答案:C

  • 第10题:

    有以下程序includevoidfun(int*s,intn1,intn2){inti,j,t; i=n1j=n2; while(i

    有以下程序 #include <stdio.h> void fun(int *s,int n1,int n2) { int i,j,t; i=n1 j=n2; while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]); printf("\n"); } 程序的运行结果是

    A.987654321

    B.4321098765

    C.5678901234

    D.987651234


    正确答案:C
    解析:函数fun(int *s,int n1,int n2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当 fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5.6,7,8,9,01;再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。

  • 第11题:

    试题28

    有以下程序

    #include <stdio.h>

    #define N 4

    void fun(int a[][N], int b[])

    { int I;

    for(i=0; i<N; i++) b[i]=a[i][i]-a[i][N-1-i];

    }

    main()

    { int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N], i;

    fun(x,y);

    for(i=0;i<N;i++) printf(“%d,”, y[i]); printf(“\n”);

    }

    程序运行后的输出结果是()

    A.-12,-3,0,0,

    B.-3,-1,1,3

    C.0,1,2,3,

    D..-3,-3,-3,-3


    正确答案:B
    试题28分析
    b[0]=a[0][0]-a[0][3]=1-4=-3;b[1]=a[1][1]-a[1][2]=6-7=-1;b[2]=a[2][2]-a[2][1]=11-10=1;b[3]=a[3][3]-a[3][0]=16-13=3;
    试题28答案
    B

  • 第12题:

    单选题
    有以下程序:#include#define N 3void fun(int a[ ][N],int b[ ]){ int i,j; for(i=0;i {  b[i]=a[i][0];  for(j=i;j   if(b[i] }}main(){ int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i; fun(x,y); for(i=0;i printf("");}程序运行后的输出结果是(  )。
    A

    2,4,8,

    B

    3,6,9,

    C

    3,5,7,

    D

    1,3,5,


    正确答案: B
    解析:
    fun函数的功能是将二维数组a中每一行元素的最大值存在数组b中,x[3][3]={1,2,3,4,5,6,7,8,9},即x[0]={1,2,3},第一行最大值为3,x[1]={4,5,6},第二行最大值为6,x[2]={7,8,9},第三行最大值为9。答案选择B选项。

  • 第13题:

    下列程序的输出结果是 #include"stdio.h" #define N 3 #define M 3 void fun(int a[M][N]) { printf("%d\n",*(a[1]+2));} main() { int a[M][N]; int i,j; for(i=0;i<M;i++) for(j=0;j<N;j++) a[i][j]=i+j-(i-j); fun(a);}

    A.3

    B.4

    C.5

    D.6


    正确答案:B
    解析:若有以下定义:inta[3][4],i,j;且当0=i3,0=j4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

  • 第14题:

    请补充函数fun(),该函数的功能是:按行统计N×N维矩阵元素中的最大值(均为整数),并把这些值按从小到大的顺序保存在数组b中。矩阵的维数在主函数中输入,并赋予随机数。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    include<conio.h>

    include<stdlib.h>

    define N 20

    void fun(【 】)

    {

    int i j;

    int t;

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

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

    if(【 】)

    b[i]=a[i][j];

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

    {

    for(j=0;i<n;j++)

    if(【 】)

    {

    t=b[i];

    b[i]=b[j];

    b[j]=t;

    }

    }

    }

    main()

    {

    int a[N][N];

    int b[N];

    int n;

    int i,j;

    clrscr();

    printf("*****Input the dimension of array N*****\n");

    scanf("%d",&n);

    printf("*****The array *****\n");

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

    {

    for(j=0;i<n;j++)

    {

    a[i][j]=rand()%20;

    while(a[i][j]==0)

    a[i][j]=rand()%30;

    printf("%4d",a[i][j]);

    }

    printf(”\n\n”);

    }

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

    b[i]=0;

    fun(a,b,n);

    printf("***** THE RESULT *****\n");

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

    printf(“%d”,b[i]);

    }


    正确答案:int a[][N]int b[]int n b[i]a[i][j] b[i]b[j]
    int a[][N],int b[],int n b[i]a[i][j] b[i]b[j] 解析:第一空:根据主函数main()调用函数fun()的格式,可以知道函数fun()有3个参数,第一个参数是N×N整型二维数组,第二个参数是整型—维数组,第三个参数是整型变量。第二空:数组元素b[i]保存第i行的最大值,通过循环将第i行的各元素与b[i]进行比较,如果大于b[i],则将这个数赋给b[i].第三空:通过for循环嵌套,将数组b中的数按从小到大的顺序排列,依次将各元素与所有元素进行比较,如果有一个元素比当前元素大,就借助第三个变量交换这两个元素,最终使第一个元素保存数组中最小的数,最后一个元素保存数组中最大的数。

  • 第15题:

    有以下程序:include using namespace std;int main ( ){ int n[3],i,j,k = 2; for(i

    有以下程序: #include <iostream> using namespace std; int main ( ) { int n[3],i,j,k = 2; for(i = 0;i<k;i++) n[i] = O; for(i = O;i<k;i++) { for(j = O;j<k;j++) n[j] = n[i] + 1; } cout<<n [0 ] <<end1; return 0; } 上述程序运行后,输出结果是( )。

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    解析:本题考核数组的定义、初始化及其使用。根据程序逐步分析:程序首先给数组n的所有元素赋初值0,然后执行一个嵌套的循环结构。嵌套循环的执行过程如下:①i=0时,j分别取值0、1,使得n[0]、n[1]的值分别变1、2,内层循环结束。②i=1时,对外层循环进行判断,符合循环条件,执行内层循环,j分别取值0、1,使得n[0]、n[1]的值变为3、3,退出内层循环。③i=2时,判断外层循环,不再符合循环条件,退出外层循环,执行cout语句,输出n[0]的值为3。

  • 第16题:

    有以下程序: # define N 20 fun(int a[], int n, int m) { int i, j; for(i=m; i>=n; i--)a[i+1]=a[i]; } main() { int i, a[N]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; fun(a, 2, 9); for(i=0; i<5; i++)printf("% d", a[i]); } 程序运行后的输出结果是______。

    A.10234

    B.12344

    C.12334

    D.12234


    正确答案:C
    解析:由于用了宏定义a[10]~a[19]均为0。函数fun的功能是把从a[n]到a[m]中的元素依次赋给后面的一个元素。调用了fun(a, 2, 9)以后,a[N]={1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10}。

  • 第17题:

    有以下程序:include define N 20fun(int a[] ,int n,int m){int i,j;for(i=m;i> :n;i

    有以下程序: #include <stdio.h> #define N 20 fun(int a[] ,int n,int m) { int i,j; for(i=m;i> :n;i--) a[i+1] =a[i]; } main( ) { int i,a[N.] = 11,2.3,4,5,6,7,8,9,10[; fun( a,2,9) for(i =0;i<5;i ++ ) printf("% d" ,a[i] );程序运行后的输出结果是( )。

    A.10234

    B.12344

    C.12334

    D.12234


    正确答案:C
    解析:本题函数fun的作用是将指定的数组元素(下标从n~m)向后移一位。调用函数fun(a,2,9)将a[2]到a[9]的各元素依次向后移一位,最后a数组中各元素的值分别为1,2,3,3,4,5,6,7,8,9,10,程序输出数组的前5个元素:12334。

  • 第18题:

    有以下程序:include void fun(iht * a,int i,int j){int t;if(i < j) {t=a[i];a[i] =

    有以下程序:#include <stdio, h>void fun(iht * a,int i,int j){ int t; if(i < j) { t=a[i];a[i] =a[j] ;a[j]=t; i++;j--; fun(a,i,j);main ( ) int x[ ]: {2,6,1,8} ,i; fun(x,0,3); for( i=0;i <4;i ++ ) printf( "%2d" ,x[i] ); printf(" \n");

    A.1268

    B.8621

    C.8162

    D.8612


    正确答案:C
    解析:语句fun(x,0、3);中将数组名x作为实参,即把数组x的首地址传送给形参(指针a),使数组x与形参指针s共占同一段内存单元,在调用函数期间,如果形参数组x的值发生了改变,实参指针a的值也就改变了。程序中fun函数是递归调用函数,其运行过程是:第1次调用fun时,a=x,i=0,j=3,ij成立,a[0]与a[3]交换,a数组中的数变为{8,6,1,2},执行i++;j--;继续调用fun,此时i,j分别为1,2,ij成立,a[1]与a[2]交换,a数组中的数变为{8,1,6,2},执行i++j--;继续调用fun,此时i,j分别为2,1,ij不成立,递归调用结束。当返回主函数时,x数组中的数据就为{8,1,6,2}。

  • 第19题:

    有下列程序: include void fun(int * s,int n1,int n2) { int i,j,

    有下列程序: #include <stdio.h> void fun(int * s,int n1,int n2) { int i,j,t; i=n1;j=n2; while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]);printf("\n"); } 程序的运行结果是( )。

    A.987654321

    B.4321098765

    C.5678901234

    D.987651234


    正确答案:C
    解析:从题目的主函数入手,定义了一个一维数组并赋韧值,接着调用函数fun(),fun()函数的功能为使数组中的元素逆序,当调用 fun(a,0,3),将实参传递给形参实现数组a中a[0]-a[3]这4个元素逆序;同理调用fun(a,4,9)是将上步排列好的a数组中a[4]-a[9]这6个元素逆序;调用fun(a,0,9)是将数组中a[0]-a[9]这10个元素在逆序,再用printf()函数输出结果为5678901234,故选项C)正确。

  • 第20题:

    以下程序的输出结果是#include <conio.h>#include <stdio.h>#define M 100void fun(int m, int *a, int *n){ int i,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;}main(){ int aa[M],n,k; clrscr(); fun(100,aa,&n); for(k=0;k<n;k++) if((k+1)%20==0)printf("\n"); else printf("%d",aa[k]); printf("\n"); }


    正确答案:77
    在本题中,程序首先定义一个宏M,然后定义一个fun函数,函数带有三个形参,分别是一个整型形参m和两个整型指针形参a、n。在函数体中,首先定义两整型变量i和j,并给j赋初值为0,然后执行循环,循环体中首先是一个条件判断语句,如果结果为真,则说明变量i能同时被7和11整除,并将变量i保存到数组中,循环结束后,将数组中元素的个数通过指针变量n进行返回。通过分析可以知道,fun函数的作用是求取1到m中能同时被7和11整除的整数,并将结果保存到数组a中。
    在主函数中,首先定义了两个整型变量和一个整型数组aa,然后调用clrscr()函数对文本模式窗口进行清除操作。接着调用fun函数,根据上面我们对fun函数的分析,要计算1~100之间能同时被7和11整除的整数,很显然,这样的数只有77一个,那么此时数组aa中只有一个元素为77,而n的值是1。
    接着执行for循环,从程序中不难看出循环的作用是将数组aa中的元素按一定的规则输出,其规则为每行最多只能输出20个值。结合上面的分析,数组aa中只有一个元素为77,因此,本题程序的最终输出结果为77。

  • 第21题:

    有以下程序: #include #define N 4 void fun(int a[ ][N],int b[ ]) { int i; for(i=0;i main( ) { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2==0)continue;x++;} x++; } printf("x=%d\n",x); } 程序的运行结果是( )。

    A.x=4

    B.x=6

    C.x=8

    D.x=12


    答案:C 
    解析:第一次循环:i=0,执行x++后x=1,执行内层循环j=0,由于j%2!=0时才执行x++,即只有j取1和3时,执行x++,此时x=1+1+1=3,跳出内层循环,执行下一条x++,x=4,第二次循环:x=1时,重复上述循环,共执行两次循环,故x最终结果是4*2=8。 

  • 第22题:

    以下程序中,fun函数的功能足求3行4列二维数组每行尢素中的最大值。请填空。 void fun(int,int,int(*)[4],int*); main() {int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i; fun(3,4,a,B); for(i=0;j<3;i++)printf("%4d",b[i]); printf("\n"); } void fun(int m,int n,int ar[][4],int*br) {int i,j,x; for(i=0;i<m;i++) {x=ar[i][0]; for(j=0;j<n;j++) if(( )) x=ar[i][j]; br[i]=x; } }


    正确答案:xar[i][j]
    xar[i][j] 解析:本题考查的是循环的嵌套。本题定义了二维数组a,存放3行4列的数组元素,定义了,一维数组b用于存放每行的最大数。存函数fun中,通过二重for循环求每行的最大数,外层for循环用于控制行数,内层for循环用于控制列数。当外层循环执行一次时,内层循环则执行4次,并求出了这一行的最大值x,最后将每一行求出最大值x赋值给存放最大值的数组br,故本题答案为xar[i][j]。

  • 第23题:

    下列程序的输出结果是

    #include "stdio.h"

    #define N 3

    #define M 3

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

    {printf("%d\n",*(a[1]+2));}

    main()

    {int a[M][N];

    int i,j;

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

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

    a[i][j]=i+j-(i-j);

    fun(a);}

    A.3

    B.4

    C.5

    D.6


    正确答案:B

  • 第24题:

    单选题
    若有以下程序#include #define N 4void fun(int a[][N], int b[], int flag){ int i,j; for(i=0; i a[i][j]) : (b[i] < a[i][j]))  b[i] = a[i][j]; }}main(){ int x[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, y[N],i; fun(x,y,1); for (i=0; i
    A

    1,2,3,4,13,14,15,16,

    B

    4,8,12,16,1,5,9,13,

    C

    1,5,9,13,4,8,12,16,

    D

    13,14,15,16,1,2,3,4,


    正确答案: A
    解析:
    考查数组名作为函数参数。函数fun的作用是如果flag为1则用b[i]记录a[i][0]至a[i][3](即当前行)中最小的值,若flag为0,则用b[i]记录a[i][0]至a[i][3](即当前行)中最大的值。答案选择C选项。