单选题
有下列程序:
#include<stdio.h>
#include<string.h>
main()
{char a[5][10]={"efg","abcd","mnopq","hijkl","rstuvwxyz"};
char *p[5];
int i,len;
for(i=4;i>=0;i--)
{p[i]=a[i];
len=strlen(p[i]);
printf("%s",p[i]+len-2);
printf("%c",{(p[i]+len-1));
}
}
程序执行后的输出结果是______。
【正确答案】
B
【答案解析】[解析] main()函数定义一个二维字符数组a,它包含5个字符串,另外定义字符指针数组p,它包含5个字符指针元素。通过for循环,从后往前遍历a中的5个字符串,每次遍历将字符串首地址(a[i])赋给数组p中下标为i的元素,然后使用strlen()库函数求得该下标为i的字符串长度,再通过printf()函数输出该字符串最后两个字符构成的字符串(p[i]+len-2)以及该字符串最后一个字符*(p[i]+len-1),所以本题输出结果为:yzz-kllpqqcddfgg。故本题答案为B选项。