niusouti.com
更多“有以下程序:main(){char str[][10]={"China","Beijing"),*P=str; printf("%s\n",p+10);}程序运行 ”相关问题
  • 第1题:

    有以下程序

    main( )

    {char str[ ][10]={"China","Beijing"},*p=str;

    printf("%s\n",p+10);

    }

    程序运行后的输出结果是

    A.China

    B.Bejing

    C.ng

    D.ing


    正确答案:B
    解析:本题中str定义为一个二维字符数组,即为str[2]  [10],也可以用str[0]..sr[19]来索引所有的字符值,p指向这个数组的首指针,那么p+10指向这个数组第二维的首指针,所以输出字符串为Beijng。

  • 第2题:

    有以下程序:include < stdio. h >main( ){ehar str[ ] [10] = { "China" ," Beijing" } , * p =

    有以下程序: #include < stdio. h > main( ) { ehar str[ ] [10] = { "China" ," Beijing" } , * p = str[o]; printf( "% s \n", p + 10); }程序运行后的输出结果是( )。

    A.China

    B.Beijing

    C.ng

    D.ing


    正确答案:B
    解析:C语言中二维数组是按行存放的,即在内存中先顺序存放第一行的元素,再存放第二行的元素。此题二维数组str[][10]第1行的前5个元素为'C','h','i','n','a',第6个元素为'\0',后4个元素为空字符。紧接着内存单元存放数组第2行的元素,即从str[1][0]到str[1][9]分别为'B','e','i','j','i','n','g',第8个元素为'\0',后两个元素为空字符。执行*p=str[0]后,指针p就指向了二维数组str的首地址,p+10指向从首地址依次向后的第11个存储单元即字符,B,的地址,所以输出Beijing,故答案为B。

  • 第3题:

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

    main

    {char str[][10]={"china","beijing"),*p=str;

    printf("%s\n",p+10);

    }

    A.China

    B.Beijing

    C.ng

    D.ing


    正确答案:B
    本题考查指针,由*p=str可知,指针P指向字符串数组的首地划。二维数组str为每个字符串分配的存储空间是10个字节,因此p+10指向str[1][0],输出的字符串就是数组中的第2个字符串。

  • 第4题:

    以下程序的输出结果是( )。 main {char str[]1-10]={"china","beijing"),*p=str; printf("%s\n",p+10); }

    A. China

    B.Beijing

    C.ng

    D.ing


    正确答案:B
    本题考查指针,由*p=str可知,指针P指向字符串数组的首地划。二维数组str为每个字符串分配的存储空间是10个字节,因此p+10指向str[1][0],输出的字符串就是数组中的第2个字符串。

  • 第5题:

    有以下程序: main() { char str[][10]={"China","Beijing"),*p=str; printf("%s\n",p+10); } 程序运行后的输出结果是( )。

    A.China

    B.Beijng

    C.ng

    D.ing


    正确答案:B
    解析:本题中首先定义了一个字符串数组并初始化,初始化后使得str[0]="China",str[1]="Beijng",然后定义一个指针变量p并让其指向str,而在该二维数组中定义每个字符串的长度为10,所以p+10将指向str[1],因此最后输出*(p+10)的值为Beijng。所以,4个选项中选项B符合题意。