一.实验题目,设计思路,实现方法
1.实验题目
4-6 输出华氏-摄氏转换表
4-7 求平方与倒数序列的部分和
4-2-8 判断天数
2.设计思路
4-6 输出华氏-摄氏转换表
先判断输入数据是否合法,若不合法则直接输出。合法则循环输出相应的华氏摄氏温度表。
4-7 求平方与倒数序列的部分和
先明确题目中的函数如何用C语言表达,再构建出相应的循环语句求解即可。
4-2-8 判断天数
先判断出闰年和平年的区别,再用switch语句明确写出各月份累积的天数,最后与该月天数求和即可。
3.实现方法
4-6
本题的考察点是基本的循环语句设计。判断合法性后,就设计一个i<=high,i>=low的i作为for循环的基础,并每次都i+=2,再依次输出即可。
4-7
本体的考察点是基本的函数构建和循环语句。判断用函数sum = sum + (i*i + 1.0/i)求和后,就使用for循环累加再输出即可。
4-2-8
本体的难点在于明确各月份的天数,以及判断闰年平年,再判断输入的天数是否大于二月。所以只需要用switch语句预先累加好个月的天数即可。
二.源程序(可只截取最关键的部分)
4-6 输出华氏-摄氏转换表
if (lower <= upper) { printf("fahr celsius "); for(fahr = lower; fahr <= upper; fahr+=2) { celsius = 5.0*(fahr - 32)/9.0; printf("%d %5.1f ", fahr, celsius); } } else printf("Invalid. ");
4-7 求平方与倒数序列的部分和
scanf("%d %d", &m, &n); for(i = m; i <= n; i++) { sum = sum + (i*i + 1.0/i); } printf("sum = %.6f ", sum);
4-2-8 判断天数
switch(month) { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; } sum = sum+day; if (year%400==0||(year%4==0&&year%100!=0)) { p=1; } else { p=0; } if (p==1&&month>2) { sum++; } printf("%d",sum);
三.遇到的问题及解决方法,心得体会
这次的题目总体难度比较亲民,没有语法上的难点。需要注意的,一是函数的正确与否,应当先确定解体所需要的函数,再将其编入代码中。同时要考虑该函数的适用范围,即边界问题和一些特殊数值的问题。同时,应当谨慎书写会对结果产生影响的语句,如“printf("%d %5.lf ")等价于(printf"%d%6.lf ")”(变量名称略)。其次,要保证代码的整洁度问题,若代码凌乱不堪,则很容易在调试代码的时候无从下手。