有以下程序  #include <stdio.h>  main()  { char a[5][10]={"China","beijing","very","welcome","you"};   char *p[5];int i;   for(i=

admin2022-04-01  17

问题 有以下程序
 #include <stdio.h>
 main()
 {  char a[5][10]={"China","beijing","very","welcome","you"};
    char *p[5];int i;
    for(i=3;i <5;i++)
    {p=*(a+i);
     printf("%s",p);
     printf("%c",*p);
    }
 }
 程序执行后的输出结果是(          )。

选项 A、wwyy
B、ChinaCbeijingb
C、veryvwelcomew
D、welcomewyouy

答案D

解析 题意定义一个二维字符数组a,它包含5个字符串,每个字符串存放在一个长度为10的一维数组中。指针数组P包含5个字符指针元素;for循环中,每次将*(a+i)赋给p,再输出p和*p;由于*(a+i)等价于a,所以每次都是将下标为i的字符串首地址赋给p,再输出该字符串和该字符串的首字符。i=3时,输出字符串“welcome”和首字符‘w’;i=4时,输出字符串“you”,和首字符‘y’,综上输出结果为:“welcomewyouy”,本题答案为D。
转载请注明原文地址:https://kaotiyun.com/show/I6kp777K
0

最新回复(0)