c语言指针练习题

//输入a、b、c 3个整数,按大小顺序输出
#include<stdio.h>
int  sort(int *a,int *b,int *c){
	int temp;
	if((*a)>(*b)){
		temp=*a;
		*a=*b;
		*b=temp;
		
	}
	if((*a)>(*c)){
		temp=*a;
		*a=*c;
		*c=temp;
		
	}if((*b)>(*c)){
		temp=*b;
		*b=*c;
		*c=temp;
		
	}
	printf("从小到大的顺序%d,%d,%d",*a,*b,*c);
}
int main(){
	int a,b,c,*x,*y,*z;
	scanf("%d%d%d",&a,&b,&c);
	x=&a;
	y=&b;
	z=&c;
   return sort(x,y,z);
}
//通过指针变量输出a数组的10个元素
#include<stdio.h>
int main(){
	int a[10],*p;
	printf("请输入数组元素\n");
	for(int i=0;i<10;i++){
		scanf("%d",&a[i]);
		
	}
	printf("输出数组元素为\n"); 
	p=a;                            //注意** 
	for(;p<(a+10);p++){
		printf("%d",*p);
	}
		
} 

在这里插入图片描述
思路:
在这里插入图片描述
在这里插入图片描述

#include<stdio.h>       //法2将x设成变量 
void inv(int *x,int n){
	int *p,temp,*i,*j,m=(n-1)/2;
	i=x;j=x+n-1;p=x+m;
	for(;i<=p;i++,j--){
		temp=*i;
		*i=*j;
		*j=temp;
	}
}
int main(){
	int i,a[10]={1,2,3,4,5,6,7,8,9,6};
	for(i=0;i<10;i++){
		printf("%3d",a[i]);
		
	}
	printf("\n");
	inv(a,10);
	for(i=0;i<10;i++){
	printf("%3d",a[i]);
	}
	
}

在这里插入图片描述

#include<stdio.h>
int main(){
	int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
	int *p;
	for(p=a[0];p<a[0]+12;p++){
		if((p-a[0])%4==0)
	
			printf("\n");
			printf("%4d",*p);//顺序 
	}
	
}

在这里插入图片描述

/*有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩。
这个题目是很简单的。只是为了说明用指向数组的指针作函数参数而举的例子。
用函数average求总平均成绩,用函数search找出并输出第i个学生的成绩。*/
#include<stdio.h>
void average(float *p,int n){
	float sum=0,aver,*pend;
	pend=p+n-1;
	for(;p<=pend;p++){
		sum=sum+(*p);aver=sum/n;
	}
	printf("average =%5.5f\n",aver);
}
void search(float (*p)[4],int n)      // * p是指向具有4个元素的一维数组的指针 *
{ 
	int i;
	printf("the score of No.2 are\n",n);
	for(i=0;i<4;i++){
		printf("%5.4f",*(*(p+n)+i));
	}
}
int main(){
	float score[3][4]={{34,67,89,99},{13,78,98,56},{44,66,77,88}};
	average(*score,12);//求12个分数的平均分
	search(score,2);//*求序号为2的学生的成绩
}

将字符串a复制为字符串b
#include <stdio.h>
void main()
{char a[ ]=″I am a boy.″,b[20];
int i;
for(i=0;*(a+i)!=′\0′;i++)
  (b+i)=(a+i);
   *(b+i)=′\0′;
printf(″string a is :%s\n″,a);
printf(″string b is:″);
for(i=0;b[i]!=′\0′;i++)
  printf(″%c″,b[i]);
printf(″\n″);

用指针变量来处理例10.17问题
#include <stdio.h>
void main()
{char a[ ] =″I am a boy. ″,b[20],*p1,*p2;
int i;
  p1=a;p2=b;
for(;*p1!=′\0′;p1++,p2++)
p2=p1;
*p2=′\0′;
printf(″string a is:%s\n″,a);
printf(″string b is:″);
for(i=0;b[i]!=′\0′;i++)
printf(″%c″,b[i]);
printf(″\n″);

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值