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

admin2022-10-24  23

问题 有以下程序
 #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

解析 main函数定义一个二维字符数组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/ADkp777K
0

随机试题
最新回复(0)