C语言-指针练习(附答案)

目录

1.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。最后输出这10个整数。

2.两个变量交换

4.有一个班,3个学生,各学4门课,计算总平均分以及输出第n个学生的成绩。

5.判断输入的字符串是否为回文

6.解密藏头诗,如“一叶轻舟向东流,帆梢轻握杨柳手,风纤碧波微起舞,顺水任从雅客悠”


1.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。最后输出这10个整数。

#include
int main()
{
int a[10];
int *p;
p=a;
int *min,*max;
int i,t;
max=a;min=a;
for(i=1;i<10;i++)
scanf("%d",p++);
{
if(*max<*p)
max=p;
if(*min>*p)
min=p;}
t=*max;*max=a[9];a[9]=t;
t=*min;*min=a[0];a[0]=t;
for(p=a;p

2.两个变量交换

#include
void swap(int *pa,int *pb);
int main()
{
	int a;
	int b;
	scanf("%d%d",&a,&b);
	swap(&a,&b);
	printf("a=%d,b=%d",a,b);
	return 0;
}
void swap(int *pa,int *pb)
{
	int t=*pa;*pa=*pb;*pb=t;
}

3.用指针变量输出a[3][4]中的每一个元素

#include
int main()
{
	int *p;
	int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
	int i,j;
	for(p=a[0];p

4.有一个班,3个学生,各学4门课,计算总平均分以及输出第n个学生的成绩。

#include
int main(){
	int a[3][4] ={65,55,23,57,52,67,63,80,90,42,75,92};
	int (*p)[4]=a;
	int i,j;
	float ave,s=0;
	for(i=0;i<3;i++){
	 for(j=0;j<4;j++)
	 s+=*(*(p+i)+j);
	}
ave=s/12;
printf("平均分:%f\n",ave);

int n;
scanf("%d",&n);
for(j=0;j<4;j++)
	 printf("%d ",*(*(p+(n-1))+j));
return 0;
}

5.判断输入的字符串是否为回文

#include
#include
int main()
{
char a[100];
char *p1=a,*p2=a;
gets(a);
p1=a;p2=a+strlen(a)-1;
while(p1<=p2&&*p1==*p2)
{
p1++;
p2--;
}
if(p1<=p2)
printf("No");
else
printf("Yes");
return 0;}

6.解密藏头诗,如“一叶轻舟向东流,帆梢轻握杨柳手,风纤碧波微起舞,顺水任从雅客悠”

#include
int main()
{
	char *p[4]={"一叶轻舟向东流","帆梢轻握杨柳手","风纤碧波微起舞","顺水任从雅客悠"};
char a[10];
int i;
for(i=0;i<4;i++)
{
a[i*2]=*(p[i]);
a[i*2+1]=*(p[i]+1);
}
a[2*i]='\0';
printf("%s",a);
return 0;}

你可能感兴趣的:(c语言,c++,算法)