指针与数组练习题
题1:(a)编写程序,用来读一条消息,然后反向显示出这条消息。程序的输出格式如下:
Enter a message : Don’t get mad, get even.
Reversal is : .neve teg ,mad teg t’noD
提示:读消息一次读取一个字符(用getchar函数),并且把这些字符存储在数组中,当数组满了或者读到字符‘\n’时停止读操作。
(b)修改上述程序,用指针来代替整数来跟踪数组中的当前位置。
答:
(a)程序如下:
#include<stdio.h>
#include<stdlib.h>
#define N 100
int main()
{
char ch[N];
int i=0,m;
printf(“Enter a message:”);
do{
ch[i]=getchar();
i++;
if(i>N-1)
break;
}while(ch[i-1]!=’\n’);
m=i-2;
printf(“Reversal is:”);
for(m;m>=0;m–)
printf("%c",ch[m]);
printf("\n");
system(“pause”);
return 0;
}
(b)程序如下:
#include<stdio.h>
#include<stdlib.h>
#define N 100
int main()
{
char ch[N],*p;
p=ch;
printf(“Enter a message:”);
do{
p++=getchar();
if(p>=ch+N)
break;
}while((p-1)!=’\n’);
printf(“Reversal is:”);
for(p=p-2;p>=ch;p–)
putchar(*p);
printf("\n");
system(“pause”);
return 0;
}