首页 > 实用文档 > 知识 >

四年一润,百年不闰

成考报名   发布时间:03-03    阅读:

四年一润,百年不闰(篇一)
《四年一闰,百年不闰,四百年再闰》

四年一润,百年不闰(篇二)
《四年一闰,百年不闰,四百年又闰》

四年一润,百年不闰(篇三)
《为什么四年一闰,而百年又少一闰?》

四年一润,百年不闰(篇四)
《闰年一闰的说法》

闰年七闰的说法

1.在公历的编写上,每四年闰一天是有原因的,是因为地球的自转时间是23小时56分,这样每四年就必须多一天,而多一天的话,还是不够精确,会有极小的误差,所以每400年只能多出97天,这就是现行的最精确的公历,所以公历会规定,逢正百的年份,必须被400整除,才是闰年。由此就出现了1896年至1904年间隔7年一润在年间

2.因为地球自转一周为23小时56分,四年下来就多算将近24小时,然后每四百年就多算一天,所以每当整百年的时候就不让它润这一天了。(不过要更精确的话就要多读读这方面的书籍啦)

1900是世纪年,不能被400整除,所以不是闰年 出现4年1平的现象 1896+4=1900

四年一润,百年不闰(篇五)
《02练习题答案》

参考答案:

1、运行结果为:不断从控制台接收字符,直到遇到x开头的字符

2、请说出使用const和define定义常量,在语法上和含义上有什么不同,并编程举例说明。 如果用常量或者宏来定义一个PI值,那么语法分别如下:

宏:

#define PI 3.1415926

这个语法不是c语言语法,而是预编译指令语法,没有;结尾

const:

const float PI=3.1415926;

这个语法是标准c语言常变量语法

用宏来代表常数,好处:

(1) 让代码更简洁明了,当然这有赖于你为宏取一个适当的名字,名字要以达意为主

(2) 方便代码的维护

缺点:

对宏的处理,没有明确指定这个量的类型。这容易带来一些问题。

而用常变量则可以明确指定变量的数据类型。

3、字符常量是一个字符,在程序中字符是用单引号括起来的。字符串常量由0个或若干个字符组合而成,在程序中字符串是用双引号括起来的,在存储时系统自动在字符串最后面加一个结束符号’\0’,编程示范如下:

char a='a'; // 表示一个字符

char *b="abc"; //第一种c语言表示的字符串

char c[4]="def"; //第二种c语言表示的字符串

printf("%c\n",a);

printf("%s\n",b);

printf("%s\n",c);

printf("%d\n",sizeof(a));//输出a所占据的字节数

printf("%d\n",sizeof(b));//输出"abc"文字常量区对应的地址(指针),所有的指针都是4字节

printf(“%d\n”,sizeof(c));//输出成员所占据的字节数×数组容量

4、char c = '\0';

while((c = getchar()) != '\n')

{

if(c >= 'a' && c <= 'z')

{

c -= 32;

}

putchar(c);

}

putchar('\n');

5.闰年

(1). 关于公历闰年的规定:

地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒,也就是365.2422天。因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,把这一天加在2月里,这一年有366日,就是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年,但2000年是闰年。

也就是我们通常所说的: 四年一闰,百年不闰,四百年再闰。所以,除了末尾有00的其他时候都是四年一润。

(2). 闰年的计算算法是:

a、非整百的年份每4年是闰年;

b、整百的年份每400年才是闰年。

(3). 简化算法

#include "stdio.h"

void IsLeapYear(int iYear)

{

if((iYear % 4 == 0 && iYear % 100 != 0) || (iYear % 400 == 0))

{

printf("%d is leapyear!\n", iYear);

return ;

}

printf("%d is not leapyear!\n", iYear);

return ;

}

int main()

{

int iYear = 0;

printf("please input a year:");

scanf("%d", &iYear);

if(iYear > 4000 || iYear < 1000)

{

printf("input error!\n");

return -1;

}

IsLeapYear(iYear);

return 0;

}

#include <stdio.h>

#include <stdlib.h>

/* 月份对应的天数 */

int MONTH_TO_DAY[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

/* 判断是否是闰年 */

int IfLeapYear(int iYear)

{

if((iYear % 4 == 0 && iYear % 100 != 0) || (iYear % 400 == 0))

{

MONTH_TO_DAY[2] = 29;

return 1;

}

else

{

MONTH_TO_DAY[2] = 28;

return 0;

}

}

/* 判断日期是否合法 */

int IfRight(int iYear, int iMonth, int iDay)

{

if(iYear > 4000 || iYear < 0)

return 0;

if(iMonth > 12 || iMonth < 0)

return 0;

if(IfLeapYear(iYear))

{

MONTH_TO_DAY[2] = 29;

}

if(iDay > MONTH_TO_DAY[iMonth] || iDay < 0)

return 0;

return 1;

}

/* 计算两个日期之间相差的天数 */

int GetDay(int iYear1, int iMonth1, int iDay1, int iYear2, int iMonth2, int iDay2)

{

int iDays = 0;

int i = 0;

if(iYear1 == iYear2) //如果在同一年

{

if(IfLeapYear(iYear1)) ;

if(iMonth1 == iMonth2) //如果在同一个月

{

iDays = iDay2 - iDay1; //相差的天数是两个日期天数差

}

else //如果不在同一个月

{

iDays += MONTH_TO_DAY[iMonth1] - iDay1; //计算iMonth1月iDay1天到iMonth月末的天数

for(i = iMonth1 + 1; i < iMonth2; i++) //计算到iMonth2-1月的天数 {

iDays += MONTH_TO_DAY[i];

}

iDays += iDay2; //加上iDay2

}

}

else //如果不在同一年

{

if(IfLeapYear(iYear1)) ; //闰年平年设置2月天数

/* 计算iMonth1月iDay1天到iYear1年12月31日的天数 */

iDays += MONTH_TO_DAY[iMonth1] - iDay1; //计算iMonth1月iDay1天到iMonth月末的天数

for(i = iMonth1 + 1; i <= 12; i++) //计算到12月31日的天数

{

iDays += MONTH_TO_DAY[i];

}

for(i = iYear1 + 1; i < iYear2; i++)

{

if(IfLeapYear(i))

{

iDays += 366;

}

else

{

iDays += 365;

}

}

if(IfLeapYear(iYear2)) ;

for(i = 1; i < iMonth2; i++) //计算到iMonth2-1月的天数

{

iDays += MONTH_TO_DAY[i];

}

iDays += iDay2; //加上iDay2 }

return iDays;

}

int main()

{

int iYear1 = 2008, iMonth1 = 5, iDay1 = 12; int iYear2 = 2008, iMonth2 = 5, iDay2 = 12; int iDays = 0;

int iTemp = 0;

printf("please input the first date(eg:2008-5-12):"); scanf("%d-%d-%d", &iYear1, &iMonth1, &iDay1); if(!IfRight(iYear1, iMonth1, iDay1))

{

printf("the first date is wrong!\n");

return -1;

}

printf("please input the second date(eg:2008-5-12):"); scanf("%d-%d-%d", &iYear2, &iMonth2, &iDay2); if(!IfRight(iYear2, iMonth2, iDay2))

{

printf("the second date is wrong!\n"); return -1;

}

/* 确保iYear2比iYear1大 */

if(iYear2 < iYear1)

{

/* 交换年份 */

iTemp = iYear2;

iYear2 = iYear1;

iYear1 = iTemp;

/* 交换月份 */

iTemp = iMonth2;

iMonth2 = iMonth1;

iMonth1 = iTemp;

/* 交换天数 */

iTemp = iDay2;

iDay2 = iDay1;

iDay1 = iTemp;

}

四年一润,百年不闰(篇六)
《第5章 算法初步》

第五章 算法初步

5.1算法的含义

例1 写出求1+2+3+4+5+6的一个算法.

算法1 按照逐一相加的程序进行.

S1 计算1+2,得到3;

S2 将第一步中的运算结果3与3相加,得到6;

S3 将第二步中的运算结果6与4相加,得到10;

S4 将第三步中的运算结果10与5相加,得到15;

S5 将第四步中的运算结果15与6相加,得到21.

算法2 用公式计算.

S1 取n=6;

S2 计算nn+1; 2

S3 输出运算结果.

x2y1,①例2 写出求解方程组 2xy3②

的一个算法.

解 用消元法求解这个方程组,算法(步骤)是:

x2y1,①S1 方程①不动,方程②减去方程①乘以2.消去x得 5y5;③

x2y1,①S2 方程③两边同除以5,得 y1;④

x1,S3 方程①加上方程④乘以2,得所求方程组的解 y1.

例3 设计一个求三个数A,B,C中最大数的算法.

解 求三个数A,B,C中最大数的算法步骤是:

S1 输入A,B,C的值;

S2 比较A,B和A,C的大小,若A>B且A>C,则输出A;否则进行下一步; S3 比较B,C的大小,若B>C,则输出B,否则输出C.

例4 设计一个求全班40人的英语考试成绩平均分的算法,并写出算法步骤. 分析 先把40个成绩累加,累加的成绩用S表示,再用S除以40求平均分.如果把40个成绩一个一个累加,计算工作量较大.我们可以用一个循环来实现. 解 算法步骤如下:

S1 令S=0,I=1;

S2 出入成绩A;

S3 计算S=A+S;

S4 I=I+1;

S5 判断I>40?若不是,则返回第2步;若是,则进行下一步.

S6 计算平均成绩M=S/40;

S7 输出M.

习题5.1

A组

1.两个大人和两名儿童一起渡河,渡口只有一条船,一次只能度过一个大人和两名儿童,他们四人都会划船,但都不会游泳.请你帮他们设计一个渡河算法.

2.写出解不等式5x+7>3x+1的一个算法.

3.写出求1×2×3×4×5的一个算法.

4.写出解不等式x22x30的一个算法.

5.写出求以a为直径的圆的面积的一个算法.

5.2流程图与算法基本逻辑结构

例1 用流程图表示上节例4中的算法.

解 上节例4的算法步骤可以用如图5-3所示的流程图直观地表示.

从图5-3可以看出,该算法步骤中,有些是按顺行执行,有些需要选择执行,而另外一些需要循环执行.事实上,算法都可以由顺序结构、选择结构、循环结构这三块“积木”通过组合和嵌套表达出来.流程图可以帮助我们更方便直观的表示这三种基本的算法结构.

图5-3

例2 任意给一个正实数,设计一个算法,求以这个数为半径的圆的面积,并画

出流程图.解决这个问题可按下面的算法进行:

S1 输入一个正实数r;

S2 计算S=r2;

S2 输出圆的面积S.

流程图见图5-4.

图5-4

例3 已知两个单元分别存放了x和y的值,试设计交换这两个变量的值的一算

法,并画出流程图.

分析 例3相当一个现实问题:有红和黑两个墨水瓶,但现在却错把红墨水装在了黑墨水瓶中,黑墨水错装在红墨水瓶中,要求将其互换.解决这个问题需要借助一个空墨水瓶(设为白瓶),算法步骤如下:

S1 取一个空的墨水瓶,设其为白瓶;

S2 将黑墨水瓶中的红墨水装入白瓶中;

S3 将红墨水瓶中的黑墨水装入黑瓶中;

S4 将白瓶中的红墨水装入红瓶中.

该问题相当于交换两个变量x和y的值.

解 为了达到交换的目的,需要一个单元存放中间变量p.其算法是:

S1 p←x;{先将x的值赋给变量p,这是存放变量x的单元空出}

S2 x←y;{再将y的值赋给x,这是存放变量y的单元空出}

S3 y←p.{最后将p的值赋给y,两个变量x和y的值便完成了交换} 上述算法的流程图如图5-6所示

练习5.2.2

1. 设计求两个实数a,b的算术平均值A的算法,并画出流程图.

xy5,2. 设计求解方程组yz4,的一个算法,并画出流程图.

zx7

例4 某市出租汽车最新计费标准如下:在3km以内(含3km)路程按起步价8元收费,超过3km以外的路程按2.4元/km收费.试设计一个出租车计费的算法,并画出流程图.

分析 出租车收费y(元)和行驶里程x(km)之间的函数关系为

x0,38;y 2.4(x3)8,x3,

解 某市出租车计费的算法如下:

S1 输入行驶里程数x;

S2 若x≤3;则y=8,否则y=2.4(x-3)+8;

S3 输出y.

流程图如图5-7所示.

图5-7

例5 我国古代的科学水平是非常先进的,早在2000多年前就测出地球绕太阳转一周的时间是365天多一些.后来,经过科学家精确计算,得出其精确时间为365天5小时48分46秒.每年按365天来计算,每过四年就多出将近一天的时间.因此,规定每四年的二月份增加一日,以补上过去少算的时间.但这样实际上每四年又要亏一点,推到100年时,亏了又将近一日,所以规定到公元整百年时不增加这一天,而到整四百年时再增加这一天.

判定公历(3199年之前)闰年遵循的一般规律为:四年一润,百年不闰,四百年再闰.请你设计一种算法,如何判断一年是否为闰年,并用流程图表示.

解 算法步骤如下:

1.若y不能被4整除,则输出“y不是闰年”.

四年一润,百年不闰(篇七)
《年 月 日》

《年 月 日》教案

教材分析:

1、本课内容是在学生已经学习了时、分、秒的基础上进一步认识时间单位年、月、日。

2、有关年、月、日的知识具有常识性,学生在生活中已有很多的经验,教学时不要把学生看作一张白纸,而应该充分利用学生的经验。

3、年、月、日的知识与生活有密切的联系,可以引导学生通过观察,自主地进行探究,发现已有的规律,充分感受数学与生活的联系,激发学习数学的兴趣。

4、年、月、日的知识包含着许多规律,它虽然是天文知识,但与数学密不可分,并且其中奥妙无穷,应给学生提供充分探索研究的机会,经历探索研究的过程,并在这个过程中发展学生的情感、态度、价值观。

5、教学重点是知道每个月各有多少天;教学难点是掌握闰年的判断方法。

设计理念:

本节课的内容年、月、日对于三年级学生并不陌生,虽然学生没有在课堂上

系统学习过,但是因为年、月、日与生活的紧密联系,学生已经积累了很多经验。本着“学生为主体,教师为指导”的教学理念,安排了谈认识→齐验证→生疑惑→同探索→新发现→最后解决问题的学习过程。

首先让孩子谈一谈自己对年、月、日已经有哪些认识,并借助年历加以验证,

在2月这个天数不固定的特殊月上产生疑惑,并经历借助月历卡填写表格的探索过程,小组自主研究,集体讨论,一起发现2月与平、闰年的变化规律,并尝试用规律去解决问题,当再次遇到疑惑时(百年不闰),老师加以指导,最终解决疑惑,并能利用所学到的知识解决生活中的问题。

教学目标:

1、 结合生活经验使学生认识时间单位年、月、日,了解有关大月、小月、平年、闰年等方面的知识,知道每个月各有多少天,平、闰年各有多少天;能初步判断某一年是平年还是闰年。

2、通过实践活动,帮助学生建立更长的时间观念,培养学生的观察思维能力。

3、让学生通过亲身参与探究实践活动,获得积极的情感体验,在数学游戏中,体会数学学习的乐趣。

教学重点:知道每个月各有多少天。

教学难点:学会判断平年闰年的方法。

教学用具:多媒体课件,年历卡,月历卡,2月份天数统计表

教学过程 :

一、师生交流、导入 课题

1、交流。

师:同学们,今天我来到南阳二小给大家上课,下面还有这么多的老师和领

导来听课,我心情很激动也很高兴,不知你们此刻的心情怎么样?从你们的脸上与表情也可以看出你们都很高兴。让我们一起记下这一难忘的时刻吧!

(板书:2011年7月14日上午 时 分 秒)

2、导入 。

师:同学们这句话里有哪些表示时间的单位?

生:年、月、日、时、分、秒(上午)。

师:哪些是我们已经学过的?

生:时、分、秒。

师:对!时、分、秒是我们已经学过的表示较短时间的单位、这节课我们一起来学习表示较长时间的单位:年、月、日。

(板书: 年 月 日)

二、探究新知

1、观察四幅图看一看这些的意义的日子发生在什么时间

自由发言。

师:到现在为止。你已经知道了那些有意义的日子?

生:略

师:这些有意义的日子用到了那些时间单位?

生:年月日

2、观察年历,认识大小月(出示2005年)

思考:一年有几个月?每个月有多少天?哪几个月的天数一样多?

完成每个月的天数统计表(出示表格)

师:我们把31天的那个月称为大月,把30天的那个月称为小月;2月既不是大月,也不是小月,那我们称他为特殊月。那看看一年中有哪几个月是大月,哪几个月是小月?(板书:大月(31天):一 三 五 七 八 十 十二;小月(30天):

四 六 九 十一;二月:特殊月)

一年中有12个月,有的是大月,有的是小月,谁能想个方法把他们很好的记住?

(1)介绍“拳记法”

师:这个我们把它成为拳记法,来,我们一起来数一遍,一月大,二月平,…… 现在数给你的同桌听听。

(2)儿歌记忆

师:老师这边还有一首儿歌:一、三、五、七、八、十、腊,三十一天永不差;

四、六、九、冬三十整,平年二月二十八,闰年再把一天加。来,我们一起来,边拍手边记住他。

对于这首儿歌你有什么疑问吗?由儿歌引入平年、闰年

(二)认识并判断平年和闰年

1、师:大小月的天数是固定的,我们可以用儿歌和拳头来帮助记忆,可是2月看起来不够听话。(出示2004年和2005年的二月)

2月只有28天的这一年是平年,有29天的这一年是闰年。

2、计算平年和闰年全年的天数

师:我们知道一年有12个月,把12个月的天数加起来,就是全年的天数。

在计算的过程中:平年和闰年不一样?

板书:平年:365天 闰年:366天

3、学生探究2月的变化规律

师:下面让我们一起来探索2月的奥秘。

(屏幕出示活动要求:认真观察手中的月历卡,将2月份天数记录在表格中;根

(1)从上面填写的统计表格中你发现了什么?(每四年一个闰年)

(2)如何判断是闰年还是平年?

平年的年份除以4,结果有余数,而闰年的年份除以4没有余数,所以要判

断某一年是平年还是闰年,就看他能不能被4整除,如果是4的倍数,说明他是闰年,如果不是4的倍数,说明他是平年。

4、判断:

师:我们已经发现了2月的奥秘,下面你能利用刚才的这些发现,判断平年和闰年吗?(2009,1932,1983,1900)

追问学生的判断依据

5、产生疑惑,解决疑惑:1900年为什么平年?

现在把书翻到第20页,把倒数第1段和最后一段话看一遍,有没有什么要

问的?

“通常”、“一般”是什么意思呢?比如说1900年,1990/4=490,没有余数,但他不是闰年,而是平年,因为1990是整百数,当年份是整百年时,要能被400年整除,才能是闰年。为什么会出现这样的一种情况,还有一段来源呢?(出示课件你知道吗?)

所以我们有这样一句话:四年一润,百年不润,四百年再润。

三、解决问题:

师:看来“年月日”的学问还真不少。现在你能用刚刚学到的知识,帮助老师解决几个问题吗?

1、看谁做的快

(1)一年有( )个月。

(2)1、3、5、7、8、10、12月每月有( )天,是大月。

(3)4、6、9、11月每月有( )天,是小月。

(4)平年的二月有( )天,闰年的二月有( )天

2 、判断:

每年都有365天。 ( )

一年中有7个大月,5个小月。 ( )

1997年是平年。( ) (1997年是香港回归祖国的日子,是我们祖国母亲迎回她失去儿子的重要一天,让我们永远的记住这一天)

2008年是平年。( ) (2008年我们祖国有什么大事呀?[北京奥运],看,这个特殊的日子在2008年,是闰年。)

四、课堂小结

今天我们学习了“年、月、日”,你掌握了什么?

现在老师把这首歌《三百六十五个祝福》送给大家,希望你们每一天都有一个愉快的生活。

●【往下看,下一篇更精彩】●

下一篇: 海报怎么装修

最新成考报名

  • 立春过后什么时候鱼开口
  • 2021年立春 2021年立春是几点几分
  • 冬至吃啥 南方冬至吃什么
  • 冬至几月几日 今年冬至是几号
  • 烧碱安全救护常识
  • 国庆节高速免费几天
  • 白露与秋分
  • 请示与批复有什么关系