《C语言程序设计》实验报告
实验六使用指针的程序设计
学号姓名
一、实验目的
c语言指针实验总结1、掌握指针的概念,会定义和使用指针变量;
2、能正确使用数组的指针和指向数组的指针变量;
3、熟悉指针作为函数参数的定义和调用方法;
4、能正确使用字符串的指针和指向字符串的指针变量。
二、实验内容
1.分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。
#include <stdio.h>
void main()
{
int *p1,*p2,*p;
int a,b;
printf("Input a b please");
scanf("%d%d",&a,&b);
p1=&a;
p2=&b;
if(a>b)
{ p=p1;p1=p2;p2=p;}
printf("*p1=%d, *p2=%d\n",*p1,*p2);
printf("a=%d, b=%d\n",a,b);
}
『运行结果:』
输入1,2得:*p1=1,*p2=2
a=1,b=2
输入2,1得:*p1=1,*p2=2
a=2,b=1
输入56,123得:*p1=56,*p2=123
a=56,b=123
2.下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参
n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even 返回偶数之和。请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。
#include <stdio.h>
#define N 10
void fun(int *a,int n,int *odd,int *even)
{
int m;
*odd=0; *even=0;
for(m=0;m<n;m++)
if(*(a+m)%2==0)
*even+=*(a+m);
else
*odd+=*(a+m);
}
void main()
{
int a[N]={1,10,2,3,19,6},i,n=6,odd,even;
printf("The original data is:\n");
for(i=0;i<n;i++)
printf("%5d",*(a+i));
printf("\n\n");
fun(a,n,&odd,&even);
printf("The sum of odd numbers:%d\n",odd);
printf("The sum of even number:%d\n",even);
}
『运行结果:』
3.编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现
删除字符串str中和字符ch相等所有字符,然后输出字符串str。运行程序并写出2组以上程序运行结果。
程序代码:
#include<stdio.h>
#include<string.h>
char *del(char str,char m);
main()
{
char *str,*p,m;
printf("输入一段字符串");
gets(str);
printf("输入一个想删除的字符"); m=getchar();
p=del(str,m);
printf("%s\n",p);
}
char *del(char *str,char m) { int h=0;
char *s;
s=str;
int n=strlen(str);
for( ;h<=n;h++)
{ if(*(str+h)!=m)
{
*s=*(str+h);
s++;
}
}
*s='\0';
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论