一、实验目的
(一)进一步理解指针的概念,掌握其在数组和字符串中的应用。
(二)学会使用函数的指针和指向函数的指针变量。
(三)了解指向指针的指针的概念及其使用方法。
二、预习要求
(一)字符、字符串和字符数组的关系与表示方法;
(二)函数指针;
三、实验内容
1、有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
#include "stdio.h"
void main()
{ void copy(char c[],char d[]);
char a[30],b[30]="Fall in love with C program";
copy(a,b);
printf("输出字符串为:%s",a);
}
void copy(char c[],char d[])
{
int i,j;
for(i=0,j=18;*(d+j)!='\0';i++,j++)
{
*(c+i)=*(d+j);
*(c+i)!='\0';
}
}
2、有一个班4个学生,5门课程。求(1)求每个学生的平均成绩;(2)找出5门成绩均在85分以上的学生。要求用函数实现。
#include "stdio.h"
void main()
{
int a[4][5]={{80,79,82,77,90},{77,86,75,92,80},{87,89,88,95,86},{79,81,93,78,83}};
void aver(int a[4][5]);
void grand(int a[4][5]);
aver(a);
grand(a);
}
void aver(int a[4][5])
{
int i,j,sum;
float ave;
for(i=0;i<4;i++)
{
sum=0;
for(j=0;j<5;j++)
sum=sum+a[i][j];
ave=sum/5.0;
printf("每个学生的平均成绩分别为:%f\n",ave);
}
}
void grand(int a[4][5])
{
int i,j,k;
for(i=0;i<4;i++)
{
k=0;
for(j=0;j<5;j++)
if(a[i][j]>85)
k=k+1;
if(k==5)
printf("符合条件学号为%d的学生:",i+1);
}
}
四、实验注意事项
(一)注意变量、变量的指针、变量的地址间的相互关系;
(二)注意传地址与传值的区别。
(三)注意数组的指针与数据元素值之间的关系。