1、东北大学机械学院C语言答案题目:根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。 5 题目:输入一个整数,当为65时显示A,66时显示B,68时显示C,其他值时显示END。(可选用switch语句编写) 6 题目:编写程序将用户输入的字母进行大小写转换.7 题目:编程判断输入的正整数是否即是5的倍数又是7的倍数。若是则输出该数;否则输出-1。8 题目:输入一个整数,判断它是奇数还是偶数并输出.9 题目:从键盘输入二个整数a、b,将其按大到小排列。10 题目:找出不超过1000的十位数字为1,个位数字为3或7的所有数。例如:13、17、113、317等.11 题目:输入一个整数
2、,判断该数是否能被3,5,7整除,并输出以下信息之一: (1)能同时被3,5,7整除; (2)能被其中两数(要指出哪两个)整除; (3)被其中一个数(要指出哪一个)整除;(4)不能被3,5,7任一个整除。 12 题目:输入一个5位的正整数,判定该正整数是否为一个回文数.(所谓回文素数是指正读和反读都相同的数,例如12321)。13 题目:假设变量a、b、c为整数,从键盘读入a、b、c的值,当a为1时显示b与c之和,a为2时显示b与c之差,a为3时显示b与c之积,a为4时显示b/c之商,其他数值不做任何操作。14 题目:输入一个整数,将其数值按小于10,1099,100999,1000以上分类并
3、显示(例如:输入358时,显示358 is 100 to 999)。15 题目:从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的面积.16 题目:从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的类型(等边、等腰、直角、一般). 17 题目:计算二次方程 的根. 18 题目:给出一个不多于5位的正整数,求出它是几位数,分别打印出每一位数字,然后再按逆序打印出各位数字. 19 题目:从键盘输入三个整数a、b、c,输出其中最大的数。 20 题目:从键盘输入三个整数a、b、c,将其按大到小排列。 21 题目:从键盘输入一个百分制成绩,将其转换为等级A、B
4、、C、D、E后输出成绩。转换规则为:90分以上为A;8089分为B;7079分为C;6069分为D; 60分以下为E。 22 题目:某运输公司规定路程越远,每公里运费越低,对用户计算运费标准如下:1)当S250km时,没有折扣;2)当250S500时,折扣为2;3)当500S1000时,折扣为5;4)当10000S2000,折扣为8%;5)当2000S,折扣为10。从键盘输入路程和货物重量,计算并输出相应的运费。 23 题目:某企业利润提成的规则如下:1)利润低于或等于10万元的,可提成奖金%10;2)利润高于10万元,低于20万元时,低于10万元的部分按10提成,另外部分可以提成7。5;3)
5、利润高于20万低于40万元的,其中20万元按前面的方法发放,另外的部分按5提成;4)利润高于40万元的,40 万元按前面的方法提成,高于部分按3%提成.从键盘输入利润,输出应发的提成. 24 题目:已知银行整存整取存款不同期限的月息利率分别为:0。315% 期限一年;0.330 期限二年;月息利率 0。345 期限三年;0.375% 期限五年;0。420 期限八年。要求输入存钱的本金和期限,计算到期时能从银行得到的利息与本金的合计. 25 题目:利用switch语句完成两个浮点数的四则运算(数与运算符又键盘给入). 26 题目:利用键盘输入某年某月某日,判断并输出这一天是这一年的第几天。 27
6、 题目:输入年份year和月month,计算该月有多少天(提示:需要判断是否为闰年). 28 题目:利用公式/411/3+1/51/7+1/9- 计算的近似值,当最后一项的绝对值小于 10-6 为止. 29 题目:输出100到200之间所有的素数. 30 题目:打印出所有的“水仙花”数(提示:“水仙花” 数是指一个三位数,其各位数字的立方和等于该数本身,例如:153=13+53+33) 31 题目:从键盘上输入一个不多于四位的正整数,编写一个程序,完成下列功能:求出该数是几位数;分别打印出各位数字;按逆序打印各位数字。 32 题目:计算分数序列:2/1,3/2,5/3,8/5,13/8,21/
7、13,的前20项之和并输出。 33 题目:按每行6个输出 100至1000之间各位数字之和为5的数。 34 题目:输出1至100之间每位数的乘积大于每位数的和的数。 35 题目:找出11000之间的所有完数(提示:“完数”是指一个数恰好等于它的除自身外的所有因子之和,例如:28=1+2+4+7+14,因此28是”完数),。要求按下面格式输出其因子:28itsfactorsare1,2,4,7,14。 36 题目:计算 S=1!+2!+3!+20!的值并输出。 37 题目:利用公式e=1/1!+1/2!+1/3!+1/n!计算e的值并输出(要求:误差小于10-5)。 38 题目:计算并输出自然数
8、1到n的平方和。 39 题目:计算并输出1至n之间的奇数之和以及偶数之和(其中n由键盘输入)。 40 题目:计算并输出用数字09可以组成多少个没有重复的三位偶数。 41 题目:现有数列 :1/2,2/3,3/5,5/8,8/13,13/21, , 计算并输出该数列的前 100 项之和。 42 题目:假设猴子第一天摘下若干桃子,并吃了一半又加一个,第二天早上又将剩下的桃子吃掉一半又加一个,以后每天早上都吃了前一天剩下的一半又加一个。到第 10 天早上时,只剩下一个桃子。计算并输出猴子第一天共摘多少桃子。 43 题目: 一个球从 100m 高度自由落下,每次落地后反跳回原来高度的一半,再落下。计算
9、并输出它在第 10 次落地时共经过了多少 米? 第 10 次反弹高度是多少?44 题目:利用牛顿迭代法求解方程 在 1.5 附近的根并输出. 45 题目:利用二分法求解方程 在(10,10)之间的根并输出. 46 题目:两个乒乓球队进行比赛 , 各队出三人 , 每人与对方队的一人进行一场比赛 , 甲队出 A 、 B 、 C 三人 , 乙队出 X 、 Y 、 Z 三人.编程找出所有可能的对阵情况。抽签之后,有人向队员打听对阵情况 ,A说他不和X比 ,C说他不和X、Z 比,编程找出三对手名单。 47 题目:输入两个正整数分别赋值给m和n,求其最大公约数和最小公倍数。 48 题目:计算并输出公元10
10、00元至2000年中所有闰年的年号。每输出3个年号换一行. 49 题目:从键盘输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 50 题目: 计算并输出Sn=a+aa+aaa+aaaaa(有n个a)的结果值(其中a是一个数字.例如:3+33+333+3333(n=4),n由键盘输入)。 51 题目:计算机的打印图形的一个应用:读取7个在150之间的整数值,对每读取的一个值,程序打印出该值个数的连续的星号(例如:如果程序读取数据为5,则打印*)。 52 题目:利用迭代法计算x=(计算平方根的迭代公式为:Xn+1=(Xn+1/Xn)/2),要求前后两次求出的差的绝对值少于0。00
11、001。 53 题目:计算并输出sinx的近似值. 54 题目:计算并输出由2、4、6、8个数字,能组成多少个互不相同且无重复数字的三位数,并输出这些三位数。 55 题目:统计从键盘输入数据的个数(输入0为止),并从其中找出最小值和最大值,输出数据的个数以及最大值和最小值。 56 题目:(百鸡问题)100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只求100元钱能买公鸡、母鸡、小鸡各多少只? 57 题目:从键盘输入的字符中统计数字字符的个数,用换行符结束循环。58 题目:从键盘输入的字符中统计小写字符的个数,用换行符结束循环。 59 题目:从键盘输入6名学生的5门成绩,分别统
12、计出每个学生的平均成绩并输出。 60 题目:出满足不等式1+1/2+1/3+1/4+1/N15最小的N值并输出. 61 题目:从键盘输入n值,输出如下所示的图形. * * * * * * *62 题目:计算下列算式的值: 直到某一项的值小于0。000001时为止。输出最后的值. 63 题目:计算并输出下面算式的结果值:64 题目:编写程序,读入一个整数;若为非负数,则计算并输出到2之间的整数和;若为一个负数,则计算并输出到之间的整数和65 题目: 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为.又知这个自然数被17除余4,所得的商被17除余15,最后得
13、到一个商是的2倍.编写程序求这个自然数. 66 题目:验证2000以内的哥德巴赫猜想,对于任何大于4的偶数均可以分解为两个素数之和. 67 题目:利用1、2、3、4个数字,可以组成多少个互不相同且无重复数字的三位数?都是多少?输出计算结果。 68 题目:如果一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数,输出该数是多少(提示在100000内判断,可利用开平方函数)。 69 题目:输出99口诀。 70 题目:将一个正整数分解质因数(例如输入90,打印出90=2335)。 71 题目:输入一个星期中的英文字母以此判断是星期几,如果第一个字母一样,则继续判断第二个字母。 72
14、题目:计算并输出555555的约数中最大的三位数。73 题目:从键盘输入任意的字符,按下列规则进行分类计数。 第一类 0,1,2,3,4,5,6,7,8,9; 第二类 +,*,/,=; 第三类 其它字符; 当输入字符时先计数,然后停止接收输入,输出计数的结果。 74 题目:对从键盘上输入的行、单词和字符进行计数,当输入CTRL+D时表示文件输入结束,停止计数(提示:单词的定义进为单词是不包含空格、制表符(t)及换行符的字符序列.例如:”a+b+c”,认为是个单词,它由个字符组成。又如:xy abc”,为个单词,个字符。一般用CTRL+D作为文件结束标记,其字符码值为1). 75 题目:编写程序
15、计算当x=0。5时下述级数和的近似值,使其误差小于某一指定的值epsilon(例如:epsilon=0。000001):76 题目:计算并输出下列多项式的结果值。 要求最后一项小于0。001时、或者当N=20时尚未达到精度要求,则停止计算。 77 题目:已知求正弦sin(x)的近似值的多项式公式为:从键盘输入x和,计算sin(x)的近似值,要求计算的误差小于给定的。 78 题目: 利用循环语句实现输入一个正整数,要求以相反的顺序输出该数(例如输入12345,输出位54321).79 题目:求解爱因斯坦数学题)有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,
16、则最后剩4阶,若每步跨6阶则最后剩5阶,若每步跨7阶,最后才正好一阶不剩.计算并输出这条阶梯共有多少阶.80 题目:采用割圆法求出的值,要求精确到小数点之后的第十位(提示:中国古代科学家祖冲之采用正多边形逼近的割圆法求出了的值。即做圆的内接4边形,从圆心和4边形顶点连接形成4个三角形,可以求出每个三角形的面积(r2/2)现在我们知道三角形的面积和两个边长(均为半径a=r、b=r),可以用公式:S=s(s-a)(sb)(s-c)求出第三边c。我们将内接4边形换为内接8边形,原来的三角形被一分为二,故c/2就是每个三角形的高,面积又是可以求出的。再将三角形一分为二,。当三角形的面积求出时,内接多边
17、形的面积就可求出).81 题目:A、B、C、D、E五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三竿,A第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。C、D、E依次醒来,也按同样的方法拿鱼。计算并输出他们合伙至少捕了多少条鱼。 82 题目:一辆卡车违犯交通规则,撞人逃跑.现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,丙说:四位的车号刚好是一个整数的平方。根据以上线索分析并求解出车号。 83 题目
18、:若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,每次从中任取8个球,请求解并输出共有多少种不同的颜色搭配。 84 题目:假设100匹马驮100担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。请计算并输出大、中、小马的数目。 85 题目:输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法. 86 题目:输出200以内的完全平方数和它们的个数(提示:完全平方数是指满足体检A2+B2=C2的A、B、C) 87 题目:设N是一个四位数,它的9倍恰好是其反序数(例如123的反序数是321),计算并输出N的值. 88 题目:求解下式中各字母所代表的数字。 89 题目:一个自然数的七进
19、制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,计算这个三位数.90 题目:如果整数的全部因子(包括,不包括本身)之和等于;且整数的全部因子(包括,不包括本身)之和等于,则将整数和称为亲密数。计算3000以内的全部亲密数91 题目:(猜数游戏)由计算机想一个数请人猜,如果人猜对了,则结束游戏,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。计算机记录人猜的次数,以此可以反映出猜数者”猜”的水平。92 题目:计算1000!后有多少个零。93 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个
20、月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1 题目:根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。 include#includemath.hmain() float x,y;printf(“enter x:n”);scanf(“f,x);if(x=0)y=0;else if(x=10)y=x;else y=0.5+sin(x);printf(“x=f,y=fn”,x,y);2题目:输入一个整数,当为65时显示A,66时显示B,68时显示C,其他值时显示END。(可选用switch语句编写)include stdio。hmain() int x;printf
21、(“enter x:n”);scanf(“%d,x);if(x=65)printf(“x=d, show %cn”,x,x);else if(x=66)printf(“x=d, show %cn,x,x);else if(x=67)printf(“x=d, show cn”,x,x);else printf(“x=%d, show ENDn”,x);3题目:编写程序将用户输入的字母进行大小写转换includestdio.h main() char x,y ; printf(”enter x:n”); scanf(”%c”,&x); if(x=a x=z) y=x32; else if(x=A
22、x=Z) y=x+32; printf(x=c, y=cn”,x,y); 4题目:输入一个整数,判断它是奇数还是偶数并输出。includestdio。h main() int x; printf(”n请输入一个整数:”); scanf(”d”,x);if(x2=0) printf(”d是偶数。,x); else printf(”d是奇数。,x); 5题目:从键盘输入二个整数a、b,将其按大到小排列.includestdio。h main() int a,b,temp; printf(”请输入两个整数:n”); scanf(d,d,&a,&b); if(ab) temp=a; a=b; b=te
23、mp ; printf(”%d,%d,%dn”, a,b); 6题目:从键盘输入三个整数a、b、c,将其按大到小排列.include stdio.h main() int a,b,c,temp; scanf(”%d,%d,%d”,a,&b,c); if(ab) temp=a; a=b; b=temp ; if(ac) temp=a; a=c; c=temp ; if(bc) temp=b; b=c; c=temp ; printf(d,d,dn, a,b,c); 7题目:从键盘输入三个整数a、b、c,输出其中最大的数。#include “stdio。h”main()int a,b,c,max;
24、scanf(d %d %d”,a,b,&c);if(ab)if(ac)max =a;elseif(bc) max =b;else max =c;printf(”dn”, max);8题目:找出不超过1000的十位数字为1,个位数字为3或7的所有数。例如:13、17、113、317等。includestdio.hmain( ) int x, a,b,c; printf(”enter a number(main()int a,b;a=0;printf(“Enter number:);scanf(“d,&b);if(b%3=0) a+;if(b%5=0) a+;if(b%7=0) a+;if(a=0
25、) printf(“n The number which can be divided exactly by nonen);if(a=1) printf(“n The number which can be divided exactly by onen”);if(a=2) printf(“n The number which can be divided exactly by twon”);if(a=3) printf(“n The number which can be divided exactly by alln”);getchar();10题目:输入一个5位的正整数,判定该正整数是否
26、为一个回文数。(所谓回文素数是指正读和反读都相同的数,例如12321)。main( ) long g,s,q,w,x;scanf(”ld”,x); w=x/10000;q=x10000/1000;s=x100/10;g=x10;if (g=ws=q) /个位等于万位并且十位等于千位*/printf(d is a huiwen n”,x);elseprintf(”d is not a huiwenn);11题目:假设变量a、b、c为整数,从键盘读入a、b、c的值,当a为1时显示b与c之和,a为2时显示b与c之差,a为3时显示b与c之积,a为4时显示b/c之商,其他数值不做任何操作。include
27、stdio。hmain()int a,b,c,result;printf(“enter x:n”);scanf(“ddd”,a,&b,c);switch(a)case 1:result=b+c;Break;case 2: result=bc;Break;case 3: result=bc;Break;case 4: result=b/c;Break;default:Break;printf(“a=%d,result=dn”a,result);?? 12题目:输入一个整数,将其数值按小于10,1099,100999,1000以上分类并显示(例如:输入358时,显示358 is 100 to 99
28、9).#includestdio.hmain()int n ;scanf(“d”,n);if(n10&n0)printf(“%d is 10n”,n);else if(n=10&n=99)printf(“d is 10 to 99n”,n);else if(n=100nb+c&ba+cca+b)s=(a+b+c)/2; s=sqrt((sa)*(s-b)(sc));printf(”area=%fn”,s); elseprintf(not n); 14从键盘读入三角形三边,判断能否组成三角形,若可以组成三角形,输出三角形的类型(等边、等腰、直角、一般).include ”math。hmain()
29、int flag=0; float a,b,c,s; printf(”Please enter a b c:”); scanf(”fff,a,&b,c); if(ab+cba+c&ca+b)if(a=b&b=c)printf(“eqal triangle ”);else if(a=b|b=ca=c)printf(“eqal triangle”);else printf(“triangle”); elseprintf(not n); 15题目:计算二次方程 的根。#includemath。h main() float a,b,c,d,disc,x1,x2,realpart,imagpart; s
30、canf (“f,f,%f,&a,&b,c); printf(“The equation”); ?if (fabs(a)=le-6) printf(“is not a quadratic”); else disc=bb4a*c; if (fabs(disc)=le-6) printf(“has two equal roots: 8。4f n”,b/(2a); else if ((fabs(disc)le6 )x1=(b+sqrt(disc)/2*a; x2=(-b-sqrt(disc))/2a; printf(“has distinct real roots: % 8。4f and 8。4f
31、n”,x1,x2); elserealpart=-b/(2a);imagpart=sqrt(disc)/(2a);printf(“has complex roots:n”);printf(“% 8.4f +8.4fin”,realpart,imagpart);printf(“ 8。4f 8.4fin”,realpart,imagpart); 16题目:给出一个不多于5位的正整数,求出它是几位数,分别打印出每一位数字,然后再按逆序打印出各位数字。main( )long a,b,c,d,e,x;scanf(ld”,&x);a=x/10000;/分解出万位*/b=x%10000/1000;/*分解出
32、千位/c=x1000/100;/分解出百位/d=x100/10;/*分解出十位/e=x%10;/*分解出个位*/if (a!=0) printf(”there are 5, %ld ld %ld %ld ldn”,e,d,c,b,a);else if (b!=0) printf(there are 4, %ld ld %ld %ldn,e,d,c,b);else if (c!=0) printf( there are 3,%ld %ld ldn”,e,d,c);else if (d!=0)printf(”there are 2, ld %ldn”,e,d);else if (e!=0)prin
33、tf( there are 1,%ldn”,e);17题目:从键盘输入一个百分制成绩,将其转换为等级A、B、C、D、E后输出成绩.转换规则为:90分以上为A;8089分为B;7079分为C;6069分为D; 60分以下为E。main()int number,md;char c1;scanf(%d”,number);md=number/10;switch(md)case 10: case 9: c1=A;break;case 8: c1=B;break;case 7: c1=C;break;case 6: c1=D;break;case 5:case 4:case 3:case 2:case 1
34、:case 0: c1=E;break;printf(”cn”,c1);18题目:某运输公司规定路程越远,每公里运费越低,对用户计算运费标准如下:1)当S250km时,没有折扣;2)当250S500时,折扣为2%;3)当500S1000时,折扣为5;4)当10000S2000,折扣为8%;5)当2000S,折扣为10%。从键盘输入路程和货物重量,计算并输出相应的运费.main() int c,s; float p,w,d,f; scanf(“%f,f,d”,&p,&w,&s); if (s=2000) c=10; else c=s/250; switch(c) case 0:d=0;break
35、; case 1:d=2;break; case 2: case 3:d=5;break; case 4: case 5: case 6: case 7:d=8;break; case 8: d=10;break; f=pws(1-d/100。0); printf(“freight=% 15。4f ,f); 19题目:某企业利润提成的规则如下:1)利润低于或等于10万元的,可提成奖金%10;2)利润高于10万元,低于20万元时,低于10万元的部分按10提成,另外部分可以提成7。5;3)利润高于20万低于40万元的,其中20万元按前面的方法发放,另外的部分按5%提成;4)利润高于40万元的,40
36、 万元按前面的方法提成,高于部分按3%提成。从键盘输入利润,输出应发的提成.解法一:#include “stdio。h”main()int pf; float? pr;printf(“n请输入利润总数(单位:万元):);scanf(“%d,&pf);if(pf=10)pr=pf0。10;else if(pf20)pr=100。10+(pf-10)*0。075;else if(pf40)pr=10*0。10+100。075+(pf20)0.05;elsepr=100。10+10*0。075+20*0.05+(pf-40)0。03;printf(“n应发的奖金是:%f万元。,pr);解法二/用sw
37、itch语句/include “stdio。h”main()int pf; float? pr;printf(“n请输入利润总数(单位:万元):”);scanf(“%d,pf);switch(pf/10)case 0: pr=pf0。10; break;case1: pr=10*0。10+(pf10)0.075; break;case2:case3: pr=10*0。10+100。075+(pf20)0。05; break;default: pr=10*0。10+100。075+20*0.05+(pf-40)*0。03;printf(“n应发的奖金是:f万元。”,pr);20题目:已知银行整存
38、整取存款不同期限的月息利率分别为:0.315 期限一年;0。330 期限二年;月息利率 0。345 期限三年;0。375 期限五年;0.420 期限八年。要求输入存钱的本金和期限,计算到期时能从银行得到的利息与本金的合计。 include stdio.hmain( )int year; float money,rate,total; /* money:本金 rate:月利率 total:本利合计/printf(”Input money and year =?); scanf(%fd, money, year); / 输入本金和存款年限 */if(year=1) rate=0.00315; /
39、根据年限确定利率 */else if(year=2) rate=0.00330; else if(year=3) rate=0.00345; else if(year=5) rate=0。00375; else if(year=8) rate=0.00420; else rate=0。0; total=money + money * rate * 12 year; /* 计算到期的本利合计 /printf( Total = %。2fn, total); 21题目:利用switch语句完成两个浮点数的四则运算(数与运算符又键盘给入)。includestdio.hmain()float a,b;c
40、har c;printf(“n please input num:n”);scanf(“ff”,ab);printf(“please input + /:);scanf(“nc”,c);switch(c)case +:printf(“。0f+。0f=.2f”,a,b,a+b);break;case :printf(“%。0f.0f=%。2f”,a,b,ab);break;case *:printf(“%。0f。0f=。2f”,a,b, a*b);break;case /:if(b!=0)printf(“。0f/。0f=。2f”,a,b,a/b);break;default:printf(“n?
41、??n);getchar();22题目:利用键盘输入某年某月某日,判断并输出这一天是这一年的第几天。#include ”math.h#include stdio.h main( ) int day,month,year,sum,leap; printf(”nplease input year,month,dayn);scanf(”d,d,d”,&year,month,day);switch(month)/*先计算某月以前月份的总天数*/ case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;bre
42、ak; 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; default:printf(”data error”);break;sum=sum+day; /再加上某天的天数/if(year400=0(year%4=0&year100!=0))leap=1; /*闰年/elseleap=0;if(leap=1month2)sum+;/*如果是闰年且月份大于2