更多“以下程序的输出结果是( )。 main { char ch[3][4]={"123","456","78"),*p[3];int i; for(i=0;i&lt ”相关问题
  • 第1题:

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

    A.12

    B.123

    C.234

    D.345


    正确答案:D
    解析:本题考查的是二维数组元素在内存中的排列形式。虽然二维数组成多维数组从结构上来看不是线性的,但是在C语言中,这些数组元素在内存中的排列是连续线性存放的。它们的排列规则是:第一维下标变化最慢,最右边的下标变化最快.例如本题中定义的二维数组a[3][3]中9个元素在内存中的排列顺序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函数中,首先定义了二维数组a[3][3],然后定义了一个指针p指向数组a的第1个元素a[0][0]。在第一个for循环中,依数组a在内存中的排列顺序为其元素赋从0~8九个值,然后用第二个for循环依次输出a[1][0],a[1][1],a[1][2]三个元素的值。所以,4个选项中选项D符合题意。

  • 第2题:

    以下程序的输出结果是( )。main{ char ch[3][4]={"123","456","78"

    以下程序的输出结果是( )。

    main

    { char ch[3][4]={"123","456","78"),*p[3];int i;

    for(i=0;i<3;i++)p[i]=ch[i];

    for(i=0;i<3;i++)printf("%s",p[i]);}

    A.123456780

    B.123 456 780

    C.12345678

    D.147


    正确答案:C

  • 第3题:

    以下程序的输出结果是______。 main() { char ch[3][4]={"123","456","78"},*p[3];int i; for(i=0;i<3;i++) p[i]=ch[i]; for(i=0;i<3;i++) printf("%s",p[i]); }

    A.123456780

    B.123 456 780

    C.12345678

    D.147


    正确答案:C
    解析:p是指针数组,通过第1个循环的赋值,p[0]、p[1]、p[2]分别指向二维数组ch的第1行、第2行、第3行,因此输出字符串“12345678”。

  • 第4题:

    下面程序的输出结果是_______。includemain(){char*p[]={"DOOL","OPK","H","SP"}; int

    下面程序的输出结果是_______。 #include<stdio.h> main() { char*p[]={"DOOL","OPK","H","SP"}; int i; for (i=3;i>=0;i-,i-) printf("%c",*p[i]); printf("\n"); }

    A.SO

    B.SP

    C.SPOPK

    D.SHOB


    正确答案:A
    解析:p[0]存放的是“BOOL\0”的首地址;p[1]存放的是“OPK\0”的首址等。在printf语句中输出的*p[i]表示p[i]字符串的第一个字符。在for循环中,i的初值为3,那么输出的第一个字符为“S”,接着两次i-,则输出的值为*p[1],即字符“0”,所以本题的输出为SO。

  • 第5题:

    以下程序的输出结果是______。main(){ char ch[3][4]={"123","456","78"},*p[3];int i; for(i=0;i<3;i++) p[i]=ch[i]; for(i=0;i<3;i++) printf("%s",p[i]);}

    A.1.23457e+008

    B.1.23457e+008

    C.1.23457e+007

    D.147


    正确答案:C