C语言高手来,急ing

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:57:47
填空题(答案写在横线上)
1、下面程序的功能是:输入一串字符,其字符数小于100,且最后以“.”结束;判断它们是否构成回文。(回文:从左到右,从右到左读一字符串的值都是一样的,如abcdedcba,1234554321都是回文的例子)
# include “stdio.h”
________
main()
{ char data[MAX];
int i,j,flag=1;
for(i=0;(____=getchar())!=’.’;i++)
_________
for(j=0;j<=i/2;j++)
if (data[j]!=data[____])
{ _____;
break;
}
if (flag)
printf(“是回文!\n”);
else
printf(“不是回文!\n”);
}

2、下面程序是将字符串X复制到Y中。
Main()
{static char x[]=”Turbo C”;
char y[100],*p,*q;
int i;
for (_____;*p!=’\0’;_____)
*q=*p;
*q=’\0’;
_____;
printf(“string x is :% \n”,p);
printf(“string y is:”);
for (q=y;*q!=’\0’;q++)
printf(“%c”,___);
printf(“\n”);
}

1.
从上到下,第一空:#define MAX 100
第二空:data[i]
第三空:if (i>=99) break;//100的话for循环里会出现data[100],数组下标益出异常。
第四空:i-j-1 //不是i-j,要去掉数组最后的‘.’
第五空:flag=0;

2.
main()
{ static char x[]="Turbo C";
char y[100],*p,*q;
int i;
for (p=x,q=y,i=0;*p!='\0';p++,q++,i++)
*q=*p;
*q='\0';
p-=i;
printf("string x is :%s \n",p);
printf("string y is:");
for (q=y;*q!='\0';q++)
printf("%c",*q);
printf("\n");
}

横线上依次为:
#define MAX 100
data[i]
if i>99 break;
i-j-1
flag=0

p=x,q=y
p++,q++
p=x
*q

# include “stdio.h”
#define MAX 100
main()
{ char data[MAX];
int i,j,flag=1;
for(i=0;(data[i]=getchar())!=’.’;i++)
scanf("%c",&data[i]) ;
for(j=0;j<=i/2;j++)
if (data[j]!=data[i/2-