求高手解答C语言问题!有追加!#include main(){ int i, j; char ch, *p1, *p2, *s[4]={"four","hello","peak","apple"}; for(i = 0; i < 4; i++){ p1 = p2 = s[i]; ch = *(p1 + i); while(*p1 != '\0'){ if(*p1 !=

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 02:34:33
求高手解答C语言问题!有追加!#include main(){    int i, j;    char ch, *p1, *p2, *s[4]={求高手解答C语言问题!有追加!
#include
main()
{
int i, j;
char ch, *p1, *p2, *s[4]={"four","hello","peak","apple"};
for(i = 0; i < 4; i++){
p1 = p2 = s[i];
ch = *(p1 + i);
while(*p1 != '\0'){
if(*p1 != ch){
*p2 = *p1;
p2++;
}
p1++;
}
*p2 = '\0';
}
for(i = 0; i < 4; i++)
printf("%s\n", s[i]);
}
【问题】
(21) 程序运行时,第1行输出 (21) .
A、our B、four C、fur D、fou
(22) 程序运行时,第2行输出 (22) .
A、ello B、hllo C、heo D、hell
(23) 程序运行时,第3行输出 (23) .
A、peak B、eak C、pek D、pak
(24) 程序运行时,第4行输出 (24) .
A、pple B、apple C、ale D、appe
答案是ABCD

求高手解答C语言问题!有追加!#include main(){ int i, j; char ch, *p1, *p2, *s[4]={"four","hello","peak","apple"}; for(i = 0; i < 4; i++){ p1 = p2 = s[i]; ch = *(p1 + i); while(*p1 != '\0'){ if(*p1 !=
第一题:第一个for循环中第一次循环将指针数组s中的第一个指针变量s[0]赋值给指针变量p1,p2,使得指针变量p1,p2都指向字符串"four"的首地址,接着将p1所指向的字符数组中的第一个元素f赋值给字符变量ch,while循环将"four"中的元素依次与ch比较,如果相等则指针p1值加下,指向数组的下一个元素,否则将值保留在p2中,因为while循环中第一次比较ch和*p1的值是相等的均为f,所以不不保留在p2中,直接输出our
第二题:与第一题原理一样,ch变为第二个字符数组的第二个元素的值,然后将数组依次和它比较,如果相等则直接跳过,输出hllo
第三题、第四题同理~我想就不用多说了吧~依次是pek和appe