上机实验13 指针三、结构体.doc

上传人:博****1 文档编号:561789460 上传时间:2022-10-20 格式:DOC 页数:5 大小:65.50KB
返回 下载 相关 举报
上机实验13 指针三、结构体.doc_第1页
第1页 / 共5页
上机实验13 指针三、结构体.doc_第2页
第2页 / 共5页
上机实验13 指针三、结构体.doc_第3页
第3页 / 共5页
上机实验13 指针三、结构体.doc_第4页
第4页 / 共5页
上机实验13 指针三、结构体.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《上机实验13 指针三、结构体.doc》由会员分享,可在线阅读,更多相关《上机实验13 指针三、结构体.doc(5页珍藏版)》请在金锄头文库上搜索。

1、上机实验13 指针(三)一实验目的 掌握指向函数的指针的使用; 掌握返回指针值的函数; 掌握以上两种指针的区别; 掌握指针数组和指向指针的指针。二实验内容【实验题1】 分别编写对2个float型数进行加、减、乘、除操作的4个函数。编写函数MathFunc,使指向上述4个函数的指针做函数参数。补充程序代码。#includefloat plus(float f1, float f2);/函数声明float minus(float f1, float f2); /函数声明float multiply(float f1, float f2); /函数声明float divide(float f1, f

2、loat f2); /函数声明float mathfunc(float (*p)(float, float), float para1,float para2); /函数声明void main()float a=1.5, b=2.5;/补充代码,调用mathfunc函数,分别调用上述四个函数输出结果。/其它函数的实现自行补充代码【实验题2】 有一个班,3个学生,各学4门课,计算第一门课程的平均分;找出有2门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均分;找出平均成绩在90分以上或全部课程成绩在85分以上的学生;每个学生的平均分数,并按平均分从高到低的顺序打印输出每个学生的各门课程成

3、绩及平均分。分别编写上述4个函数。#include void main() void praverage(float (*p)4,int n);/求平均值函数,其它函数自行设计。 float score34=85,87,80,60,80,97,90,81,90,89,90,88; /自行补充代码 void praverage(float (*p)4,int n)/ 求平均值函数/自行补充代码【实验题3】 程序填空:用选择法将5个字符串“Zhao”、“Qian”、“Sun”,“Li”,“Wang”按降序排序,并输出(要求:使用字符型指针数组)#include#include /Line 2voi

4、d main() char *name5=Zhao, Qian, Sun,Li,Wang, *s; /1个指针对应1个字符串,共5个字符型指针 int i,j,k; for(i=0; i ; i+) k=i;for(j= ; j ; j+) if( )k=j;/注意:是降序s= ; namei= ; namek= ; /交换namei与namek for(i=0; i5; i+) puts( namei ); /输出排序后的字符串运行程序,结果显示为:如果删除语句行Line2,程序是否能正常编译?为什么?【实验题4】 用指向指针的指针实现上述的程序(改为用冒泡法排序)。【实验题5】 阅读程序,

5、选择正确的答案。(2010年春省等级考试试卷)#includevoid main()int i;char ch,*p1,*p2,s420=“four”,”hello”,”peak”,”apple”;/*s4for(i=0;i4;i+)p1=p2=si;ch=*(p1+i);while(*p1!=0)if(*p1!=ch)*p2=*p1;p2+;p1+;*p2=0;for(i=0;i4;i+)printf(“%sn”,si);【问题】(1)程序运行时,第1行输出 (1) 。A.ourB.fourC.furD.fou(2)程序运行时,第2行输出 (2) 。A.elloB.hlloC.heoD.he

6、ll(3)程序运行时,第3行输出 (3) 。A.peakB.eakC.pekD.pak(4)程序运行时,第4行输出 (4) 。A.ppleB.appleC.aleD.appe【实验题6】 定义一个返回指针值的函数,该函数的作用是返回数组中最大值的地址,然后在main函数中调用该函数,请补充代码。long score10=1,2,3,4,5,6,7,8,9,10;long *GetMax();/返回最大值地址的函数main()long *p;p=GetMax();printf(Max value in array is %d, *p);long *GetMax()/补充代码结构体【实验题1】 程

7、序填空:定义一个关于平面点的结构类型,并定义一个含5个元素的结构数组,用于存放5个平面点;然后输入这些点的坐标值,并统计位于半径为3、以原点为圆心的圆之内的点的个数。# include struct point /定义结构类型 struct point ;void main () int i, num=0; _ _ p5; /定义结构数组pprintf(Input 5 points: n);for( i=0;i 5; i+)scanf(%lf%lf, _ , _ _); /输入5个点的坐标for( i=0;i 5; i+)/统计位于指定圆内的点的个数if( ) num+;printf( num

8、= %d n, num);运行程序,输入 1.0 2.1 -3 4.23 9.0 -8 4.5 -1 -0.25 -1.3 输出num= 【实验题2】 程序填空:结构类型struct score 包含一名学生的3门学科成绩和个人平均成绩,要求输入某位学生的三门课程成绩,并计算其平均成绩。 (1) 用普通的结构变量实现#includestruct score/定义结构类型int math;/数学成绩int phys;/物理成绩int chem;/化学成绩float aver;/平均成绩;void main()struct score s; /定义结构变量sscanf(%d%d%d, , , );

9、/输入s的前三个成员(三科成绩)s.aver = ;/计算s的平均成绩分量printf(aver:%.2fn, ); /输出s的平均成绩分量(2) 用结构指针#includestruct score/定义结构类型int math;/数学成绩int phys;/物理成绩int chem;/化学成绩float aver;/平均成绩;void main()struct score s, *p; /定义结构变量s和结构指针p p= ;/令p指向sscanf(“%d%d%d”, , , ); /输入p的前三个分量(三科成绩)p-aver = ;/计算p的平均成绩分量printf(aver:%.2fn”,

10、 ); /输出p的平均成绩分量【实验题3】 阅读程序,选择正确的执行结果(2007年春省等级考试试卷)。#include struct stchar c; char s80;char * f(struct st t);void main( ) int k; struct st a4 = 1,123, 2,321, 3,123, 4,321;for(k = 0; k 4; k+) printf(%sn, f(ak);char * f(struct st t) int k = 0; while(t.sk!=0) if(t.sk = t.c) return t.s+k; k+; return t.s

11、;(1) 程序运行时,第1行输出 (1) 。A、321 B、21C、123 D、12 (2) 程序运行时,第2行输出 (2) 。A、21 B、12C、3 D、1 (3) 程序运行时,第3行输出 (3) 。A、3 B、123C、1 D、321 (4) 程序运行时,第4行输出 (4) 。A、123 B、1 C、3 D、321 【实验题4】 程序改错: 要求输入5名学生的学号、姓名和成绩,将这5名学生按成绩的降序排序后输出。源程序中的带/*/标记的语句行存在错误,请更正。#includestruct student/定义结构类型int num;/学号char name20;/姓名float score;/成绩;void main()int i,j;struct s5, temp; /*/printf(Input information of 5 students:n);for(i=0; i0; i-)for(j=0; ji; j+)if(sj sj+1 ) /*

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号