C语言程序设计-实验第六次上机实验报告
7.第六次实验
C语言程序设计 实验报告
专业 计算机科学与技术 班级 信安1302班 日期 2014.5.24 成绩
实验组别 第 6 次实验 指针实验&结构与联合实验 指导教师
学生姓名 学号 同组人姓名
实验名称 指针实验&结构与联合实验
7.1实验目的
1.熟练掌握指针的说明、赋值、使用。
2.掌握用指针引用数组的元素,熟悉指向数组的指针的使用。
3.熟练掌握字符数组与字符串的使用,掌握指针数组及字符指针数组的用法。
4.掌握指针函数与函数指针的用法。
5.掌握带有参数的main函数的用法。
6.熟悉和掌握结构的说明和引用,结构的指针,结构数组,以及函数中使用结构的方法。
7.掌握动态储存分配函数的用法,掌握自引用结构和单向链表的创建,遍历,结点的增删,查找等操作。
8.了解字段结构和联合的用法。
7.2实验内容
(一)设计一个函数reverse(a, n),将一维数组a的值逆置。
如,逆置前,A:20、10、90、59、60、80、70,
逆置后,A:70、80、60、59、90、10、20。
源程序如下:shangji6\chengxu29
#include
void sort(int *a,int n);
int main()
{
int x[100],n,i,*p=x;
printf("enter n:");
scanf("%d",&n);
printf("enter numbers:");
for(i=0;i
scanf("%d",p+i);
sort(x,n);
for(i=0;i
printf("%4d",*(p+i));
return 0;
}
void sort(int *a,int n)
{
int i,j,t;
for(i=0;i
{
for(j=0;j
{
t=*(a+j);*(a+j)=*(a+j+1);*(a+j+1)=t;
}
}
}
实验步骤:
定义一个数组存放数据,实现数据的输入和存储。
定义一个子函数进行排序,用把数据两两交换来实现。
调试及编译过程:
测试数据:任意选取一组数据:
出现的不足及修改:无 运行结果:出现预期的结果。
(二)设计一个函数BubbleSort(a, n),采用冒泡排序算法,实现一维数组的整数进行排序的功能。
源程序如下:shangji6\chengxu30
#include
void BubbleSort(int *a,int n);
int main()
{
int a[100],n,i;
printf("enter n:");
scanf("%d",&n);
printf("enter numbers:");
for(i=0;i
scanf("%d",&a[i]);
BubbleSort(a,n);
for(i=0;i
printf("%6d",a[i]);
return 0;
}
void BubbleSort(int *a,int n)
{
int t,*p=a,i,j;
for(i=0;i
{
for(j=0;j
{
if(*(p+j)>*(p+j+1))
{
t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;
}
}
}
}
实验步骤:
定义数组实现数据的输入和存放。
定义一个子函数实现数据的冒泡法排序。
调试及编译过程:
测试数据:任意选取一组数据(按从小到大顺序排列)
测试数据:任意选取一组数据(按任意顺序排列)
出现的不足及修改:无 运行结果:出现预期的结果。
(三)设计一个一个函数find(a, n, x),实现对在一个数组的整数进行查找功能。如果给定值x在数组a中,返回其所在的位置(即下标值),否则