有下列程序  #include<stdio.h>  #include<string.h>  main()  { char a[5][10]={"efg","abed","mnopq","hijkl","rstuvwxyz"};   char *p[5

admin2022-04-02  26

问题 有下列程序
 #include<stdio.h>
 #include<string.h>
 main()
 {  char a[5][10]={"efg","abed","mnopq","hijkl","rstuvwxyz"};
    char *p[5];
    int i,len;
    for(i=0;i<5;i++)
    {
      p=a
      len=strlen(p);
      printf("%c",p[0]);
      printf("%s",p+len/2);
    }
 }
 程序执行后的输出结果是(          )。

选项 A、eeaabmmnhhirrstu
B、efgabcdmnopqhijklrstuvwxyz
C、efgacdmopqhjklrvwxyz
D、eefgaabcdmmnopqhhijklrrstuvwxyz

答案C

解析 程序定义一个二维字符数组a,使用5个字符串初始化。另外定义字符指针数组p。for循环中,每次将数组a当前下标为i的字符串首地址赋给p,再求得p的长度赋给len,第一个printf输出p字符串的首字母,第二个printf输出p字符串下标从len/2开始的子字符串。当下标i=0输出:efg;当下标i=1输出:acd;当下标i=2输出:mopq;当下标i=3输出:hjkl;当下标i=4输出:rvwxyz;程序输出:efgacdmopqhjklrvwxyz。本题答案为C选项。
转载请注明原文地址:https://jikaoti.com/ti/yOd0FFFM
0

最新回复(0)