参考答案和解析
正确答案:B
解析:本题中str定义为一个二维字符数组,即为str[2]  [10],也可以用str[0]..sr[19]来索引所有的字符值,p指向这个数组的首指针,那么p+10指向这个数组第二维的首指针,所以输出字符串为Beijng。
更多“有以下程序 main() {char str[][10]={"China","Beijing"},*p=str; printf("%s\n",p+10); ”相关问题
  • 第1题:

    有以下程序:includemain(){charstr[][20]={"Hello","Beijing"}*p=str;printf("%\n",s

    有以下程序: #include <string.h> main() { char str[][20]={"Hello","Beijing"}*p=str; printf("%\n",strlen(p+20)); } 程序运行后的输出结果是

    A.0

    B.5

    C.7

    D.20


    正确答案:C
    解析:本题考核的知识点是二维数组的初始化及库函数strlen()的应用。主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]="Hello",str[1]="Beijing",然后定义一个字符指针变量p并让它指向数组的首地址,即指向str[0],而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(P+20);返回的是str[1]中的字符串的长度,即Beijing的长度为7,所以最后输出的值为7,所以,4个选项中选项C符合题意。

  • 第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符合题意。