资源描述:
《实验三综合程序设计资料.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、上海建桥学院程序设计基础C语言(本科)实验报告模块名称:第一模块简单C程序设计实验类型:综合型实验环境:(415)机房VC++6.0院别:机电学院专业:电科B13-1学号:1121486学生姓名:周鹏飞指导老师:成长生学期:2015年-2016第一学期实验三综合程序设计(1)理解输出参数的概念和运用场合(2)理解指针的概念(3)掌握使用指针变量向主调函数传值的方法(4)掌握数据文件的循环读取结构(5)掌握fprintfsanf等文件操作语句的使用任务一改错两数交换打开程序文件error02_04.cpp改正程序中的错误。Sw
2、ap函数的功能是交换两个数的值,在main函数中指定两个数的大小,调用swap函数交换两个数的值输出。正确的程序输出:a=20,b=10#includevoidswap(int*pa,int*pb);intmain(){inta=10,b=20;swap(a,b);printf("a=%d,b=%d",a,b);return0;}voidswap(int*pa,int*pb){intt;t=pa,pa=pb,pb=t;}#includevoidswap(int*pa,int*pb);i
3、ntmain(){inta=10,b=20;swap(&a,&b);printf("a=%d,b=%d",a,b);return0;}voidswap(int*pa,int*pb){intt;t=*pa;*pa=*pb;*pb=t;}任务二3个数排序利用指针实现输入a,b,c共3个整数,按大小顺序输出。要求:编写exchange函数,功能是交换两个数的值。在main函数中输入3个数,调用exchange函数实现3个数按大小顺序输出。源程序清单:#includevoidexchange(int*pa,in
4、t*pb);voidmain(){inta,b,c;printf("inputabc:");scanf("%d%d%d",&a,&b,&c);if(c>b)exchange(&c,&b);if(b>a)exchange(&b,&a);if(c>b)exchange(&c,&b);printf("%d%d%d",a,b,c);}voidexchange(int*pa,int*pb){inttemp;temp=*pa;*pa=*pb;*pb=temp;}测试用例:任务三日期换算ex02_11.cpp打开程序文件ex02_11
5、.cpp#includeintisLeap(intyear);voidgetDate(inty,intdays,int*pm,int*pd);intgetDays(inty,intm,intd);intmain(void){return0;}//编写子函数求某天是该年的几月几日voidgetDate(inty,intdays,int*pm,int*pd)/*y为年份,days为该年的某天,pm指向主调函数中存放某天的月值变量,*//*pd指向主调函数中存放某天的日值变量*/{intm,d,i;intday;
6、m=;/*m:某天计算后的月值*/d=;/*d:某天计算后的日值*/*pm=;*pd=;}//编写子函数求某年某月某日是该年的第几天intgetDays(inty,intm,intd){}//编写子函数判断闰年。intisLeap(intyear){}1.要求:(1)编写子函数判断闰年:intisLeap(intyear)(2)编写子函数求某天是该年的几月几日:(3)编写子函数求某年某月某日是该年的第几天(4)main函数中设计步骤验证函数的正确性2.提示(1)求某年某月某日是该年的第几天思路:累计从1月到该日期的前一月的每
7、月天数再加上该日期的天数。2月份的天数要判断闰年。累计可使用循环完成也可利用switch语句无break的特性完成。(2)求某天是该年的几月几日思路:循环i从1月开始如果天数days比第i月的天数大则天数days减去第i月的天数否则结束循环。i即为所求月份,days的值为所求日数。每月的天数仍需区分处理。3.源程序清单:#includeintisLeap(intyear);voidgetDate(inty,intdays,int*pm,int*pd);intgetDays(inty,intm,intd);v
8、oidmain(){inty,m,d,days;int*pm,*pd;printf("输入年份和天数:");scanf("%d%d",&y,&d);getDate(y,d,&m,&d);printf("这天是%d年的%d月%d日",y,m,d);printf("输入年月日:");sca