现有如下程序段#include "stdio.h"main(){int a[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};int i=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}则程序的输出结果为A.21B.78C.23D.28

题目

现有如下程序段

#include "stdio.h"

main()

{int a[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};

int i=0,j=5;

printf("%d\n",*(&a[0][0]+2*i+j-2));}

则程序的输出结果为

A.21

B.78

C.23

D.28


相似考题
更多“现有如下程序段 #include"stdio.h" main() {inta[5][6]={23,3,65,21,6,78,28,5,67,25,4 ”相关问题
  • 第1题:

    现有如下程序段

    #include "stdio.h"

    main( )

    { int a[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};

    int i=0,j=5;

    printf("%d\n",*(&a[0][0]+2*i+j-2));}

    则程序的输出结果为

    A.21

    B.78

    C.23

    D.28


    正确答案:A
    解析:通过地址来引用二维数组,若有以下定义:int a[3][4],i,j;且当0≤i<3,0≤j<4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i))[j],*(&a[0][0]+4*i+j)。表达式&a[0][0]+2*i+j-2相当于是地址&a[0][0]加上偏移量。

  • 第2题:

    有如下程序段:include define Max(a,b) a>b?a:bmain(){int a=5,b=6,c=4,d;d=c+Max(a,

    有如下程序段: #include <stdio.h> #define Max(a,b) a>b?a:b main() { int a=5,b=6,c=4,d; d=c+Max(a,b) ; printf("%d",d) ; } 其输出结果为______。

    A.10

    B.5

    C.6

    D.编译错误


    正确答案:B
    解析:在C语言中,宏定义是直接替换的,所以在c+a>b?a:b这个条件表达式中,c+a>b为真,所以用a的值作为整个表达式的值,而a的值为5,所以整个表达式的值为5。

  • 第3题:

    现有如下程序段

    #include "stdio.h"

    int *fun(int *a,int *b)

    {int c;

    c=*a%*b;

    return &c;}

    main()

    {int a=5,b=19,*c;

    c=fun(&a,&b);

    printf("%d\n",++*c);}

    则程序段执行后的结果为

    A.8

    B.7

    C.6

    D.5


    正确答案:C

  • 第4题:

    阅读下列程序段,则程序的输出结果为 #include"stdio.h" #define M(X,Y)(X)*(Y) #define N(X,Y)(X)/(Y) main() { int a=5,b=6,c=8,k; k=N(M(a,b),c); printf("%d\n",k);}

    A.3

    B.5

    C.6

    D.8


    正确答案:A
    解析:带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(a)*(b)/(c)。

  • 第5题:

    现有如下程序段 #include"stdio.h" main() { int a[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1}; int i=0,j=5; printf("%d\n",*(&a[0][0]+2*i+j-2));} 则程序的输出结果为

    A.21

    B.78

    C.23

    D.28


    正确答案:A
    解析:通过地址来引用二维数组;若有以下定义: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)。表达式&a[0][0]+2*i+j-2相当于是地址&a[0][0]加上多少偏移量。