实验07 指针
- 格式:doc
- 大小:31.00 KB
- 文档页数:3
实验七指针
一、实验目的
1、掌握指针的概念,会定义和使用指针变量;
2、能正确使用数组的指针和指向数组的指针变量;
3、能正确使用字符串的指针和指向字符串的指针变量。
4、进一步理解指针的概念,掌握其在数组和字符串中的应用;
5、能正确使用指向函数的指针变量;
6、了解指向指针的指针的概念及其使用方法。
二、实验预习
1、认真阅读指针内容。
2、编写好所需要的程序。
三、实验指导
1、调试下列程序,使之具有如下功能:用指针法输入12 个数,然后按每行4 个数输出。
写出调试过程。
#include<stdio.h>
void main()
{
int j,k,a[12],*p;
for(j=0;j<12;j++)
scanf("%d",p++);
for(j=0;j<12;j++)
{
printf("%d",*p++);
if(j%4==0)
printf("\n");
}
}
调试此程序时将a 设置为一个"watch",数组 a 所有元素的值在一行显示出来。
调试
时注意指针变量指向哪个目标变量。
2、调试下列程序,使之具有如下功能:任意输入2 个数,调用两个函数分别求:
①2 个数的和,
②2 个数交换值。
要求用函数指针调用这两个函数,结果在主函数中输出。
main()
{
int a,b,c,(*p)();
scanf("%d,%d",&a,&b);
p=sum;
*p(a,b,c);
p=swap;
*p(a,b);
printf("sum=%d\n",c);
printf("a=%d,b=%d\n",a,b);
}
sum(int a,int b,int c)
{
c=a+b;
}
swap(int a,int b)
{
int t;
t=a;
a=b;
b=t;
}
调试程序时注意参数传递的是数值还是地址。
3、用指针方法处理,输入三个字符串,按由小到大的顺序输出。
(1)算法分析:字符串的比较要用到函数strcmp,比较后值的保存及交换要用到函数strcpy 及一个中间变量。
参数的传送方式是“传址”方式。
(2)程序如下:
#include<stdio.h>
void main()
{
char str1[20],str2[20],str3[20];
/*定义三个字符数组*/
char swap();
/*声明函数*/
printf("input three string:\n");
gets(str1);
gets(str2);
gets(str3);
if(strcmp(str1,str2)>0)swap(str1,str2);
/*调用函数swap*/
if(strcmp(str1,str3)>0)swap(str1,str3);
if(strcmp(str2,str3)>0)swap(str2,str3);
printf("theorderis:\n");
printf(%s\n%s\n%s\n",str1,str2,str3);
}
/*定义交换两个字符串的函数swap*/
char swap(char *p1,char *p2)
{
char *p[20];
strcpy(p,p1);
strcpy(p1,p2);
strcpy(p2,p);
/* 以上三条语句完成比较交换功能*/
}
(3)在C 编辑环境下输入源程序。
(4)编译【F9】,直到程序无错误。
(5)运行【Ctrl+F9】,输入:
Input three lines:
I study very hard.<回车>
He is a teacher.<回车>
Today is fine.<回车>
(6)查看运行结果【Alt+F5】:
Now, the order is:
He is a teacher.
I study very hard.
Today is fine.
四、实验内容
1、上机输入题目要求的源程序.
2、输入10 个整数,找出其中最大的数并与最后一个数对换。
写三个函数:
(1)输入10 个数
(2)进行处理;
(3)输出10 个数。
3、输入一个3 位数,计算该数各位上的数字之和,如果在[1,12]之内,则输出与和数相
对应的月份的英文名称,否则输出***。
例如:输入:123 输出:1+2+3=6→June
输入:139 输出:1+3+9=13→***
用指针数组记录各月份英文单词的首地址。
4、自己编写一个比较两个字符串s 和t 大小的函数strcomp(s,t),要求s 小于t 时返
回-1,s 等于t•时返回0,s 大于t 时返回1。
在主函数中任意输入 4 个字符串,利用该函数求最小字符串。
根据以上题目编程并上机调试运行,要求用指针完成。
五、实验报告要求
实验结束后,应整理实验报告,其内容应包括:
1、实验题目
2、设计思路
3、写出程序源代码
4、写出程序运行结果
5、对实验结果进行分析、总结。