1 / 15
文档名称:

C语言实验3 指针与结构体.doc

格式:doc   大小:56KB   页数:15
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言实验3 指针与结构体.doc

上传人:文库旗舰店 2019/10/10 文件大小:56 KB

下载得到文件列表

C语言实验3 指针与结构体.doc

文档介绍

文档介绍:实验报告三(四学时)课程C语言程序设计实验项目指针与结构体成绩 专业班级应用化学学号201431040226批阅日期       一【实验目的】(1)了解指针的概念,理解指针的本质及特征。(2)掌握指针变量的声明、表示、引用及赋值方法。(3)掌握指针变量的常用运算规则和实际应用。(4)结构体极其变量的定义和使用。(5)指针操作结构体变量的使用方法。二【实验内容】第一部分:指针【实验1—基础题】要求:定义和实现一个函数voidswap(int*p,int*q),该函数实现两个整数的交换。在main函数中构造两个整型变量,通过调用swapt函数实现这两个整型变量的数值交换,并显示交换前和交换后的数据。目的:地指作为形式参数的用法(传址)实验结果:#include<>voidswap(int*p,int*q);intmain(){inta,b;printf("请输入数a,b:");scanf("%d,%d",&a,&b);printf("交换前的数据:a=%d,b=%d\n",a,b);swap(&a,&b);printf("交换后的数据:a=%d,b=%d\n",a,b);return0;}voidswap(int*p,int*q){inttemp;temp=*p;*p=*q;*q=temp;}【实验2—验证题】要求:运用指针的知识实现计算学生平均分的函数编写(1)设数组score[]保存若干学生的某一课程的成绩,定义一个函数floataver_score(float*p,intn),计算该课程的平均成绩(形式参数n表示学生个数)。(2)在main函数中用数组存放多个学生成绩,成绩由键盘输入,然后通过调用aver_score函数计算其平均成绩并输出。目的:指针与数组的关系及应用实验结果:#include<>#defineN40floatAverscore(float*p,intn);intmain(){intn,i=-1;floatscore[N],aver,*p;p=score;do{i++;printf("Inputscore:");scanf("%f",p+i);}while(p[i]>=0);n=i;aver=Averscore(p,n);printf("aver=%.2f\n",aver);return0;}floatAverscore(float*p,intn){intj;floatsum=0;for(j=0;j<n;j++){sum=sum+*(p+j);}returnsum/n;}【实验3—延伸训练】要求:定义一个函数voidreverse_str(char*p),实现字符串的逆序排列。(1)调用函数reverse_str(char*p)时,把一个字符串的地址传递给指针p,由指针p对字符串进行交换,得到逆序排列的字符串。(2)在main函数中构造一个字符串,通过调用reverse_str函数实现该字符串的逆序排列,并显示源字符串和逆序排列后的字符串。例如:用户输入的原字符串为asdfgh,调用函数reverse_str后,输出逆序字符串为hgfdsa。目的:指针操作字符数组的应用实验结果:#include<>#defineN40voidReverse_ste(char*p);intmain(){charStr[N];char*p=Str;printf("请输入字符:");gets(p);Reverse_ste(p);printf("逆序排列的字符:\n");puts(p);return0;}voidReverse_ste(char*p){chartemp;inti=-1,n,j;do{i++;}while(*(p+i)!='\0');i=i-1;n=i/2;for(j=0;j<=n;j++){temp=*(p+j);*(p+j)=*(p+i-j);*(p+i-j)=temp;}}三【实验小结】编程不熟练,还需要勤加练习。第二部分:结构体【实验1—基础题】要求:(1)定义关于学生信息的结构体:每个学生信息有:学号、姓名、三门课程的成绩、总分、平均分;(2)定义结构体类型的变量:定义一个学生结构体类型的变量、通过键盘输入该学生的信息;提示:其中,学号、姓名、三门课程的成绩由键盘输入;总分和平均分通过用户输入的学生信息计算得到。(3)分别使用“.”运算和“->”运算实现结构体数据成员的访问,输出学生的各项信息。目的:掌握结构体的定义、结构体变量定义、结构体数据成员访问实验结果:#include<>typedefstruct{longstudentID;charstudentName[10];intscore[4];}