9、运行下面程序段的输出结果是 #include <stdio.h> int main() { int n[3][3],i,j; for(i=0; i<3; i++) for(j=0; j<3; j++) n[i][j]=i+j; for(i=0; i<2; i++) for(j=0; j<2; j++) n[i+1][j+1]+=n[i][j]; printf("%d\n",n[i][j]); }A.14B.0C.6D.不确定

题目

9、运行下面程序段的输出结果是 #include <stdio.h> int main() { int n[3][3],i,j; for(i=0; i<3; i++) for(j=0; j<3; j++) n[i][j]=i+j; for(i=0; i<2; i++) for(j=0; j<2; j++) n[i+1][j+1]+=n[i][j]; printf("%d\n",n[i][j]); }

A.14

B.0

C.6

D.不确定


相似考题
更多“9、运行下面程序段的输出结果是 #include <stdio.h> int main() { int n[3][3],i,j; for(i=0; i<3; i++) for(j=0; j<3; j++) n[i][j]=i+j; for(i=0; i<2; i++) for(j=0; j<2; j++) n[i+1][j+1]+=n[i][j]; printf("%d\n",n[i][j]); }”相关问题
  • 第1题:

    阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

    【说明】

    实现矩阵(3行3列)的转置(即行列互换)。

    例如,输入下面的矩阵:

    100 200 300

    400 500 600

    700 800 900

    程序输出:

    100 400 700

    200 500 800

    300 600 900

    【函数】

    int fun(int array[3][3])

    {

    int i,j,t;

    for(i=0;(1);i++)

    for(j=0;(2);j++)

    {

    t=array[i][j];

    (3);

    (4);

    }

    }

    }

    main()

    {

    int i,j;

    int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};

    clrscr();

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

    {

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

    printf("%7d",array[i][j]);

    printf("\n");

    }

    fun((5));

    printf("Converted array:\n");

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

    {

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

    printf("%7d",array[i][j]);

    printf("\n");

    }

    }


    正确答案:(1)i3 (2)ji (3)array[i][j]=array[j][i] (4)array[j][i]=t (5)array
    (1)i3 (2)ji (3)array[i][j]=array[j][i] (4)array[j][i]=t (5)array 解析:本题考查用C语言实现矩阵的转置。
    题目要求程序实现矩阵(3行3列)的转置,其关键是将当前行列对应的元素与其对应的列行元素互换。题目中给出了具体的矩阵元素和结构,下面来具体分析程序。
    第(1)空很明显是循环语句的判断条件,是上界条件,这个二重循环的作用是进行数组中元素的互换,而从题目中给出的已知条件可以判断出,这个数组是一个三维的数组,而在程序中下标是从0开始的,那么其上界应该是不大于3,因此这个空的答案分别是i3。
    第(2)空也是循环的判断上界,在上面我们已经分析出了这个二重循环的作用是进行数组中元素的互换,而元素互换的过程是将当前行列对应的元素与其对应的列行元素互换,元素的下标都要在能互换的下标范围内,那么第二重循环的上界应该是第一重循环变量的当前值,因此此空答案为ji。
    第(3)空在这个二重循环体中,从程序中不难发现,用一个临时变量f来存放要置换的值,接下来就是此空,那么应该是将其中一个值放到其转置后的位置,再结合上面分析,可以得出此空答案为array[i][j]=array[j][i]。
    第(4)空是紧接着上一空而来的,在上面的程序中已经将当前位置中的值保存到了临时变量t中,且把其对应的转置位置的元素值放到了这个位置,那么接下来应该是将临时变量中的值放到转置位置,因此此空答案为array[j][i]=t。
    第(5)空很明显是函数的参数,这个函数就是功能函数fun(),用来实现矩阵的转置,根据程序中函数的定义,它只有一个参数,这个参数是要被处理的数组。在主函数中,需要被处理的数组是array,这里我们需要注意在数组作为函数的形参时,一般是通过传递其地址来实现参数传递的,因此此空答案为array。

  • 第2题:

    下列程序的输出结果是 #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)。

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

    有以下程序: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。

  • 第5题:

    有以下程序 main() { int n[3],i,j; for(i=0;i<3;i++)n[i]=0; for(i=0;i<2,i++) for(j=0;j<2;j++)n[j]=n[i]+1; printf("%d\n",n[1]); } 程序运行后的输出结果是( )

    A.2

    B.1

    C.0

    D.3


    正确答案:D

  • 第6题:

    include void sort(inta[],int n) {int i,j,t;for(i=0;i

    include<stdio.h>

    void sort(inta[],int n)

    {int i,j,t;

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

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

    if(a[i]<a[j])

    {t=a[i];a[i]=a[j];a[j]=t;

    }

    }

    main()

    {int a[10]={1,2,3,4,5,6,7,8,9,10},i;

    sort(&a[1],7);

    for(i=0;i<10;i++)printf("%d,",a[i]);

    }

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

    A.1,2,3,4,5,6,7,8,9,10,

    B.10,9,8,7,6,5,4,3,2,1,

    C.1,8,7,6,5,4,3,2,9,10,

    D.1,2,10,9,8,7,6,5,4,3,


    正确答案:C
    解析:本程序中的函数sort(int a[],int n)实现的功能是将数组a中的前n个数进行从大到小排序。 sort(&a[1],7)是将数组中从a[1]到a[7]这7个数进行从大到小排序,其他数不变。

  • 第7题:

    有以下程序main(){ int n[3],i,j; for(i=0;i<3;i++) n[i]=0; for(i=0;i<2;i++) for(j=0;j<2;j++) n[j]=n[i]+1; printf( "%d\n",n[1]);}程序运行后的输出结果是A.2 B.1C.0 D.3


    正确答案:D
    初始时定义一个大小为3个一维整型数组,第一个for语句是对数组赋初值,每个值都为0。后面是一个for语句的嵌套调用,外层的循环变量i的取值为[0,2],内层循环变量的取值范围为[0,2]。最初外层的循环变量i=0,内层的循环变量j取值从0到2,计算n[j]=n[0]+1,得到n[0]=1,n[1]=1,n[2]=1。外层for语句的循环变量为1时,内层的循环变量j取值从0到2,计算n[j]=n[1]+1,得到n[0]=2,n[1]=2,n[2]=2。外层for语句的循环变量为2时,内层的循环变量j取值从0到2,计算n[j]=n[2]+1,得到n[0]=3,n[1]=3,n[2]=3。最后的输出结果为3。

  • 第8题:

    分析下列程序,其最终执行结果是______。 main() { int n[3],i,j,k; for(i=0;i<3;i++)n[i]=O; k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]-1; printf("%d\n",n[0]); }

    A.-2

    B.-1

    C.0

    D.-3


    正确答案:D
    解析:当i为0,内循环在j为0时,执行n[j]=n[i]-1;,即n[0]=n[0]-1, n[0]值变为-1:在j为1时,执行n[j]=n[i]-1;,即n[1]=n[0]-1,将-2赋给n[1]。当i为1时,内循环在j为0时,执行n[j]=n[i]-1;,即n[0]=n[1]-1,n[0]值变为-3;在j为1时,执行n[j]=n[i]-1;,即n[1]=n[1]-1,将-3赋给n[1];最后n[0]和n[1]的值均为-3。

  • 第9题:

    以下程序的输出结果是()。includemain(){int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for

    以下程序的输出结果是( )。 #include<stdio.h> main() {int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) s+=a[i][a[j][j]]; printf("%d\n",s); }

    A.3

    B.4

    C.1

    D.9


    正确答案:B
    解析:当外层循环为i时,内层循环i只能取j=i,所以s+=a[i][a[j][j]],其实就是s+=a[i][a[i][i]],当i=0时,s=s+a[0][a[01[0]]=s+a[0][0]=1,当i=1时,s=s+a[1][a[1][1]1=s+a[1][1]=1+1=2,当i=2时,s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。

  • 第10题:

    以下程序按下现指定的数据给x数组的下三角置数,并按如下形式输出,请填空。

    4

    3 7

    2 6 9

    1 5 8 10

    include <stdio.h>

    main()

    { int x[4][4],n=0,i,j;

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

    for(i=3;i>j;【 】) {n++;x[i][j]=【 】:}

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

    { for(j=0;j<=i;j++) printf("%3d",x[i][j]);

    printf("\n");

    }

    }


    正确答案:i- n
    i- n 解析:观察本题下三角数据可以发现,其数值是先按行(从第3行到第0行),然后按列(从第0列到第3列)对其进行1到10的赋值的,在程序的第—组嵌套for循环中,通过外循环来控制列的变化,从第0列到第3列,通过内循环来控制行的变化,从第3行到第j行,由于行变量i是从最大行逐渐递减的,所以本题第一空应填i-或与其等效的形式。在循环体中,用变量n来控制被赋的值1到10,所以本题第二个空应填n。

  • 第11题:

    下面程序的输出结果是()。include using namespace std;void main( )int i,j,m=0,n=0;

    下面程序的输出结果是( )。 #include <iostream> using namespace std; void main( ) int i,j,m=0,n=0; for(i=0;i<2;i++) for(j=0;j<2;j++) if(j> =i) m=1;n++; cout<<m<<endl; cout<<n;

    A.1 1

    B.1 4

    C.1 6

    D.0 2


    正确答案:A
    解析:注意整个二重循环作用的语句为:if(j=i)m=1;,而n++语句并不为二重循环控制。其实不论循环多少次,m、n的值总为1。

  • 第12题:

    有以下程序 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++)t=t+b[i][b][j][j]]; printf("%d\n",t); } 程序运行后的输出结果是( )

    A.3

    B.4

    C.1

    D.9


    正确答案:B

  • 第13题:

    下面程序是求出数组arr的两条对角线上的元素之和,请填空。 include"stdio.h" main() { int arr[3][3]={2,3,4,8,3,2,7,9,8),a=0,b=0,i,j; for(i=0;i<3;i++) for(j=0;<3;j++) if(i=j) a=a+arr[i][j]; flor(i=0;i<3;i++) for(( );j>=0;j--) if(( )==2) b=b+arr[i][j]; printf("%d,%d\n",a,B); }


    正确答案:j=2 i+j==2
    j=2 i+j==2

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

    以下程序的执行结果是______。 main() { int i,j,m=O,n=0; for (i=0;i<2;i++) {for (j=0;j<2;j++) if(j>=i) m=1;n++; printf("%d\n",n); } }

    A.4

    B.2

    C.1

    D.0


    正确答案:C

  • 第16题:

    有以下程序 include main() { int i,j,m=55; for(i=1;i<=3;i++)

    有以下程序 #include <stdio.h> main() { int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++) m=m%j; printf("%d\n",m); } 程序的运行结果是

    A.0

    B.1

    C.2

    D.3


    正确答案:B

  • 第17题:

    有以下程序includemain(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;pri

    有以下程序 #include <stdio.h> main() {int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++)m=m%j; printf("%d\n",m); } 程序的运行结果是

    A.0

    B.1

    C.2

    D.3


    正确答案:B
    解析: 本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为“ji”,而j的初值为3,故当i的值为1和2时,内层循环体都不会被执行。只有当i和j都等于3时才会执行一次。m的值为55对3取模,计算结果为1。

  • 第18题:

    有以下程序 main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for (j=2;j>=i;

    有以下程序

    main( )

    { int x[ ]={1,3,5,7,2,4,6,0},i,j,k;

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

    for (j=2;j>=i;j--)

    if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}

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

    for(j=4;j<7-i;j++)

    if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}

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

    if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}

    for (i=0;i<8;i++) printf("%d",x[i]);

    printf("\n");

    }

    程序运行后的输出结果是:

    A.75310246

    B.1234567

    C.76310462

    D.13570246


    正确答案:A
    解析:程序运行的输出结果是75310246。

  • 第19题:

    有以下程序

    include<stdio.h>

    main( )

    {int n[2l,ij;

    for(i=0;i<2;i++)n[i]=0;

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

    for(j=0;j<2;j++)n[j]=n[i]+1;

    printf(”%d\n”,n[1]);

    }

    程序运行后的输出结果是________ 。


    正确答案:3
    3 解析:初始化后:
    N[0]=0,n[1]=0
    i=0,j=0,n[0]=n[0]+1=1
    j=1,n[1]=n[0]+1=1=2
    i=1,j=0,n[0]=n[1]+1=3
    j=1,n[1]=n[1]+1=3

  • 第20题:

    以下程序的输出结果是 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++)t=t+b[i][b[j][j]]; printf(“%d\n”,t); }

    A.3

    B.4

    C.1

    D.9


    正确答案:B
    解析:本题中定义了一个二维数组b并初始化,定义了一个变量t并赋初值1。接着通过一个二重循环将若干个元素的值加到变量t中。循环的执行步骤是:外层循环变量i=0时,内层循环变量j=i执行语句“t=t+b[i][b[j][j]]”,相当于t=t+b[0][b[0)[0]],由于b[0][0]的值为0,得到t的值为1;依次类推,循环共执行了3次,最后输出t的值为4。

  • 第21题:

    下列程序的输出结果是

    #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
    解析:若有以下定义:int a[3][4],i,j;且当0<=i<3,0<=j<4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

  • 第22题:

    下列程序的输出结果是 #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)”。

  • 第23题:

    以下程序的输出结果是 main() { int b[3][3]={0,1,2,O,l,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf("%d\n",t); }

    A.3

    B.4

    C.1

    D.9


    正确答案:B
    解析:本题中定义了一个二维数组b并初始化,定义了一个变量t并赋初值1。接着通过一个二重循环将若干个元素的值加到变量t中。循环的执行步骤是:外层循环变量i=0时,内层循环变量j=i,执行语句“t=t+b[i][b][j][j]]”,相当于t=t+b[0][b][0][0]],由于b[0][0]的值为0,得到t的值为1;依次类推,循环共执行了3次,最后输出t的值为4。所以,4个选项中B为所选。

  • 第24题:

    试题13

    以下程序运行后的输出结果是______.

    #include <stdio.h>

    main()

    { int n[2], i, j;

    for(i=0; i<2;i++) n[i]=0;

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

    for(j=0; j<2; j++) n[j]=n[i]+1;

    printf(“%d\n”, n[1]);

    }


    正确答案:
    试题13分析
    for(i=0; i<2;i++)    n[i]=0;使得每个项的值赋为0。
    i=0,j=0,n[0]=n[0]+1=1;i=0,j=1,n[1]=n[0]+1=2;
    i=1,j=0,n[0]=n[1]+1=3;i=1,j=1,n[1]=n[1]+1=3;
    试题13答案
      3