c语言实验卡指针应用,C语言实验3_指针与结构体

41528d3028836879cd698677c3999917.gifC语言实验3_指针与结构体

实 验 报 告 三(四学时)课 程C 语言程序设计实验项目 指针与结构体成 绩专业班级应用化学 学 号 201431040226批阅日期姓 名张伟 实验日期 2015.04.29指导教师张群燕一【实验目的】(1)了解指针的概念,理解指针的本质及特征。 (2)掌握指针变量的声明、表示、引用及赋值方法。 (3)掌握指针变量的常用运算规则和实际应用。(4)结构体极其变量的定义和使用。(5)指针操作结构体变量的使用方法。二【实验内容】第一部分:指针【实验 1—基础题】要求:定义和实现一个函数 void swap(int *p , int *q),该函数实现两个整数的交换。在 main 函数中构造两个整型变量,通过调用 swapt 函数实现这两个整型变量的数值交换,并显示交换前和交换后的数据。目的:地指作为形式参数的用法(传址)实验结果:#includevoid swap(int*p,int*q);int main(){int a,b;printf(“请输入数 a,b:“);scanf(“%d,%d“,printf(“交换前的数据:a=%d,b=%d\n“,a,b);swap(printf(“交换后的数据:a=%d,b=%d\n“,a,b);return 0;}void swap(int*p,int*q){int temp;temp=*p;*p=*q;*q=temp;}【实验 2—验证题】要求:运用指针的知识实现计算学生平均分的函数编写(1) 设数组 score[]保存若干学生的某一课程的成绩,定义一个函数 float aver_score(float *p,int n),计算该课程的平均成绩( 形式参数 n 表示学生个数)。(2) 在 main 函数中用数组存放多个学生成绩,成绩由键盘输入,然后通过调用 aver_score 函数计算其平均成绩并输出。目的:指针与数组的关系及应用实验结果:#include#define N 40float Averscore(float *p,int n);int main(){int n,i=-1;float score[N],aver,*p;p=score;do{i++;printf(“ score:“);scanf(“%f“,p+i);}while(p[i]>=0);n=i;aver=Averscore(p,n);printf(“aver=%.2f\n“,aver);return 0;}float Averscore(float *p,int n){int j;float sum=0;for(j=0;j#define N 40void Reverse_ste(char*p);int main(){char Str[N];char *p=Str;printf(“请输入字符:“);gets(p);Reverse_ste(p);printf(“逆序排列的字符:\n“);puts(p);return 0;}void Reverse_ste(char*p){char temp;int i=-1, n, j;do{i++;}while(*(p+i)!= \0 );i=i-1;n=i/2;for(j=0;j”运算实现结构体数据成员的访问,输出学生的各项信息。目的:掌握结构体的定义、结构体变量定义、结构体数据成员访问实验结果:#includetypedef struct{long studentID;char studentName[10];int score[4];}STUDENT;int main(){int i;float sum=0,aver;STUDENT stu1;STUDENT*pt;pt=printf(“ a record:\n“);scanf(“%ld“,scanf(“%s“,stu1.studentName);for(i=0;istudentID,pt->studentName,pt->score[0],pt->score[1],pt->score[2],sum,aver);return 0;}【实验 2—选做】要求:(1)在实验 1 的基础上对程序进行改进,实现多个学生信息的处理提示:定义该类型的数组,可以处理多个学生的信息(2)通过键盘输入 N 个学生的信息并输出;目的:实验结果:#include#define N 40typedef struct{long studentID;char studentName[10];int score[4];}STUDENT;int main(){int i,j,n;float sum[N],aver[N];STUDENT stu[N];STUDENT*pt;pt=printf(“请输入学生人数:“);scanf(“%d“,for(j=0;jstudentID,(pt+j)->studentName,(pt+j)->score[0],(pt+j)->score[1],(pt+j)->score[2],sum[j],aver[j]);}

你可能感兴趣的:(c语言实验卡指针应用)