有下列程序: #include <stdio.h> #include<string.h> main() { char a[5][10]={”efg”,”abcd”,”mnopq”,”hijkl”,”rstuvwxy

admin2022-10-25  35

问题 有下列程序:
     #include <stdio.h>
     #include<string.h>
     main()
     {  char a[5][10]={”efg”,”abcd”,”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,第1个printf输出p字符串的首字母,第2个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/PGd0FFFM
0

最新回复(0)