niusouti.com

编写一个程序,用户输入起始年份year1和结束年份year2,输出[year1,year2]中的所有闰年。 要求定义函数判断某一年是否是闰年,是闰年则返回True,否则返回False。 闰年为能被4整除,但不能被100整除,或者能被400整除的年份。

题目

编写一个程序,用户输入起始年份year1和结束年份year2,输出[year1,year2]中的所有闰年。 要求定义函数判断某一年是否是闰年,是闰年则返回True,否则返回False。 闰年为能被4整除,但不能被100整除,或者能被400整除的年份。


相似考题
更多“编写一个程序,用户输入起始年份year1和结束年份year2,输出[year1,year2]中的所有闰年。 要求定义函数判断某一年是否是闰年,是闰年则返回True,否则返回False。 闰年为能被4整除,但不能被100整除,或者能被400整除的年份。”相关问题
  • 第1题:

    请补充fun函数,该函数的功能是:判断一个年份是否为闰年。

    例如,1900年不是闰年,2004是闰年。

    [注意] 部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

    [试题源程序]

    include<stdio.h>

    include<conio.h>

    int fun(int n)

    {

    int fiag=0;

    if(n%4==0)

    {

    if( (1) )

    fiag=1;

    }

    if( (2) )flag=1;

    return (3) ;

    }

    void main()

    {

    int year;

    clrscr();

    printf("Input the year:");

    scanf("%d", &year);

    if(fun(year))

    printf("%d is a leap year.\n", year);

    else

    printf("%d is not a leap year.\n", year);

    }


    正确答案:[1] n%100 !=0 [2] n%400==0 [3] flag
    [1] n%100 !=0 [2] n%400==0 [3] flag 解析:题的关键是要知道闰年的定义,如果年份能被4整除但不能被100整除,或者能被400整除,这两种情况满足之一都是闰年。
    填空1:显然此处属于第一种情况,能被4整除但不能被100整除。所以这里应该填n%100!=0,只有满足这个条件,flag才能被赋值1。
    填空2:此处属于第二种情况,能被400整除,所以应该填n%400==0。
    填空3:从程序中可以知道,当满足以上两种情况之一时,flag就被赋值1,显然flag属于标志单元。再看主函数中对fun()函数的调用,显然需要返回的值不是真就是假,即函数fun()中标志单元flag的内容。

  • 第2题:

    请完成下列Java程序:输出某年的某月有多少天数,要求生成2个输入对话框,一个输入年份,一个输入月份,并且能检查输入的数字是否符合要求,如果符合要求,则根据输入的年份和月份计算出这一年的这一月有多少天。提示:闰年为年数能被4整除但是不能被100整除。

    注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。

    程序运行结果如下:

    import javax.swing. JOptionPane;

    public class ex10_2 {

    public static void main(String[] args) (

    String strIn;

    int nYear,nMonth,nNumOfDays=0;

    strIn=JOptionPane.showInputDialog(,,year.);

    nYear=Integer.parseInt(strIn);

    if(nYear<0) {

    System.out.println("Invalidate number of year!")

    return;

    } strIn=JOptionPane.showInputDialog("month.);

    nMonth=Integer.parseInt(strIn);

    if(_____________) {

    System.out.println("Invalidate number of month!"

    return;

    }

    switch(nMonth){

    case 1:

    case 3:

    case 5:

    case 7:

    case 8:

    case 10:

    case 12:

    nNumOfDays=31;

    break;

    case 4:

    case 6:

    case 9:

    case 11:

    nNumOfDays=30;

    break;

    case 2:

    if(________________)

    nNumOfDays=29;

    else

    nNumOfDays=28;

    break;

    }

    System.out.println("Number of days:"+ nNumOfDays);

    }

    }


    正确答案:nMonth0 || nMonth>12 ((nYear%4 ==0)&&!(nYear%100 == 0)) || (nYear%400 == 0)
    nMonth0 || nMonth>12 ((nYear%4 ==0)&&!(nYear%100 == 0)) || (nYear%400 == 0) 解析:本题主要考查swing图形用户界面设计和case语句的简单应用。解题关键是会用swing的容器面板构造对话框,熟悉判断闰年的条件语句的设计,判断输入是否符合程序要求的条件语句设计,case语句的设计。本题中,第1个空,判断输入的月份值应该在1到12月之间,否则给出提示信息并退出;第2个空,闰年的判断,将题干中的提示用代码实现。

  • 第3题:

    下列程序要求用户输入一个年份,并能够判断用户输入的年份是否是闰年,下划线处应填( )。 Sub EnSure() Dim year As Integer year=Val(InputBox("请输入年份:")) If(year Mod 4=0 ______ year Mod 100<>0) ______ (year Mod 400=0) Then Print "您输入的是闰年" Else Print "不是闰年,是普通年份" End If End Sub

    A.And And

    B.And Or

    C.Or Or

    D.Or Or


    正确答案:B
    解析:闰年的判断条件是:年份是4的倍数并且不是100的倍数,或者年份是400的倍数。所以表达式为:(yearMod4=0AndyearMod100>0)Or(yearMod400=0)。

  • 第4题:

    下列程序要求用户输入一个年份,并能够判断用户输入的年份是否是闰年,横线处应填( )。

    Sub EnSure()

    Dim year As Integer

    year=Val(InputBox("请输入年份:"))

    If(year Mod 4=0______year Mod 100<>0)______(year Mod 400=0)Then

    Print"您输入的是闰年"

    Else

    Print"不是闰年,是普通年份"

    End If

    End Sub

    A.And And

    B.And Or

    C.Or Or

    D.Or Of


    正确答案:B
    解析:闰年的判断条件是:年份是4的倍数并且不是100的倍数,或者年份是400的倍数。所以表达式为:(year Mod 4=0 And year Mod 100>0) Or (year Mod 400=0)。

  • 第5题:

    请补充函数fun(),该函数的功能是:判断某一个年份是否为闰年。

    例如,1900年不是闰年,2004是闰年。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    include<conio.h>

    int fun(int n)

    {

    int flag=0;

    if (n%4=0)

    {

    if (【 】)

    flag=1;

    }

    if (【 】)

    flag=1;

    return【 】;

    }

    main()

    {

    int year;

    clrscr();

    printf("Input the year:");

    scanf("%d", &year);

    if (fun(year))

    printf("%d is a leap year. \n", year);

    else

    printf("%d is not a leap year.\n",

    year);

    }


    正确答案:n%100!=0或n%100 n%400==0 flag
    n%100!=0或n%100 n%400==0 flag 解析:第一空:判断闰年的方法是,年份能被4整除但不能被100整除,或者年份能被400整除的是闰年。此空应填, n不能被100整除,即对100取余非零。第二空:年份能被400整除的也是闰年,所以此空应填,n能被400整除,即对400取余为零。第三空:flag标记年份n是否为闰年,当flag为1时是闰年,相反,当flag为0时不是闰年。

  • 第6题:

    阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。

    【说明】 某文本文件中保存了若干个日期数据,格式如下(年/月/日): 2005/12/1 2013/2/29 1997/10/11 1980/5/15 .... 但是其中有些日期是非法的,例如2013/2/29是非法日期,闰年(即能被400整除或者能被4整除而不能被100整除的年份)的2月份有29天,2013年不是闰年。现要求将其中自1985/1/1开始、至2010/12/31结束的合法日期挑选出来并输出。 下面的C代码用于完成上述要求。 【C代码】 include <stdio.h> typedef struct{ int year, month, day;/* 年,月,日*/ }DATE; int isLeap Year(int y) /*判断y表示的年份是否为闰年,是则返回1,否则返回0*/ { return((y%4==0 && y%100!=0)Il(y%400==0)); } int isLegal(DATE date) /*判断date表示的日期是否合法,是则返回1,否则返回0*/ { int y=date.year,m= date.month,d=date.day; if (y<1985 II y>2010 II m<1 II m>12 II d<l II d>31) return 0; if((m==4 ll m==6 ll m==9 II m==11)&& (1) ) return 0; If(m==2){ if(isLeap Year(y)&& (2) ) return 1; 。 else if (d>28) return 0; } return 1; } Int Lteq(DATE d1,DATE d2) /*比较日期d1和d2,若d1在d2之前或相同则返回1,否则返回0*/ { Long t1,t2; t1=d1.year*10000+d1.month*100+d1.day; t2=d2.year*10000+d2.month*100+d2.day; if( (3) ) return 1; else return 0; } int main() { DATE date,start={1985,1,1},end={2010,12,30}; FILE*fp; fp=fopen(“d.txt”,”r”); If( (4) ) return-1; while(!feof(fp)){ if(fscanf(fp,”%d%d%d”,&date.year,&date.month,&date.day)!=3) break; if( (5) ) /*判断是否为非法日期 */ continue; if( (6) ) /*调用Lteq判断是否在起至日期之间*/ printf(“%d%d%d\n”,date.year,date.month,date.day); } fclose(fp); Return 0; }


    正确答案:(1)d>30 /d==31或其等价表示
    (2)d<29或其等价表示
    (3)t1<=t2/t1-t2<=0或其等价表示
    (4)fp==null/!fp或其等价表示
    (5)isLegal(date) 或其等价表示
    (6)Lteq(start,date)==1&&Lteq(date,end)==1或其等价表示

  • 第7题:

    阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。【说明】函数GetDateId(DATEdate)的功能是计算并返回指定合法日期date是其所在年份的第几天。例如,date表示2008年1月25日时,函数的返回值为25,date表示2008年3月3日时,函数返回值为63。函数Kday—Date(inttheyear,intk)的功能是计算并返回指定合法年份theyear(theyear≥1900)的第k天(1≤k≤365)所对应的日期。例如,2008年的第60天是2008年2月29日,2009年的第60天是2009年3月1日。函数isLeapYear(inty)的功能是判断y代表的年份是否为闰年,是则返回1,否则返回0。DATE类型定义如下:



    答案:
    解析:
    (1)date.month(2)date.month>2或其等价形式(3)DATE(4)theyear(5)days_month[i-1]或其等价形式
    【解析】

    函数GetDateId(DATE date)的功能是计算并返回指定合法日期date是其所在年份的第几天。处理思路是:先将1月~date.month-l月的天数累加起来,然后加上date.month的天数date.day即可。若date.month>2,则需要考虑特殊情况2月份,在闰年为29天而不是28天。因此,空(1)处应填入date.month,空(2)处应填入date.month>2。函数Kday_Date(int theyear,int k)的功能是计算并返回指定合法年份theyear (theyear≥1900)的第k天(1≤k≤365)所对应的日期。根据说明,显然空(3)应填入“DATE”。当k<32时,计算出的日期一定在1月份;当k大于31而小于60(闰年时为61)时,计算出的日期一定在2月份;以此类推。函数中的处理思路是:先将k的值减去1月份的天数,若仍大于0,则继续减去2月份的天数,以此类推,直到k的值小于或等于0。此时将多减去的最后1个月的天数加上即可。因此,空(4)应填入“theyear”,空(5)应填入“days_month[i]”。

  • 第8题:

    写出判断闰年的条件表达式()。(设年份用y表示)


    正确答案:y%4==0 && y%100!=0 || y%400==0 ? 1 : 0

  • 第9题:

    将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式()。


    正确答案:y%4==0&&y%100!=0||y%400==0

  • 第10题:

    在我国的历法中说法正确的是()。

    • A、阳历以地球围绕太阳公转一周的时间为一年
    • B、公元年份凡被4整除者均为闰年
    • C、节气是属于阴历范围,而不属于阳历范围
    • D、太阳光在地球上直射点在南北回归线之间来往一次的周期时间为一年

    正确答案:A,D

  • 第11题:

    多选题
    在我国的历法中阴历是()。
    A

    地球围绕太阳公转一周的时间为一年

    B

    公元年份凡被4整除者均为闰年

    C

    节气是属于阴历范围,而不属于阳历范围

    D

    太阳光在地球上直射点在南北回归线之间来往一次的周期时间为一年


    正确答案: A,C
    解析: 暂无解析

  • 第12题:

    单选题
    判断年份是否为闰年,如果是,结果保存“闰年”,如果不是,则结果保存“平年”,说明:闰年定义:年数能被4整除而不能被100整除,或者能被400整除的年份。使用哪个函数?,()
    A

    IF

    B

    COUNTF

    C

    RANK

    D

    COUNTA


    正确答案: C
    解析: 暂无解析

  • 第13题:

    给定年份,下列程序用来判断该年是否为闰年,请填空。

    提示:闰年的条件是年份可以被4整除但不能被100整除,或者能被400整除。

    Private Sub Comand6_Click()

    Dim y As Integer

    y=InputBox("请输入年份")

    If(y Mod 4=0______y Mod 100<>0)or(y Mod 400=0)Then

    Print"是闰年"

    Else

    Print"是普通年份"

    End If

    End Sub


    正确答案:And
    And

  • 第14题:

    下面程序是判断某一个是否为闰年,请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。(闰年的条件是符合下面两者之一:①能被4整除,但不能被100整除;②能被4整除,又能被100整除)。

    注意:不改动程序的结构,不得增行或删行。

    import java.io.*;

    public class LeapYear

    {

    public static void main(String args[])

    {

    int year=1979;

    if((year %4= =0 || year % 100 !=0) || (year % 400= =0))

    System.out.println(year+"是闰年.");

    else

    System.out.println(year+"不是闰年。");

    year=2000;

    boolean leap;

    if(year % 4 !=0)

    leap=false;

    else if(year % 100 !=0)

    leap=true;

    else if(year % 400 !=0)

    leap=false;

    else

    leap=true;

    if(______)

    System.out.println(year+"是闰年。");

    else

    System.out.println(year+"不是闰年。");

    year=2010;

    if(year % 4= =0)

    {

    if(year % 100= =0)

    {

    if(year % 400= =0)

    leap=true;

    else

    ______

    }

    else

    leap=false;

    }

    if(1eap= =true);

    System.out.println(year+"是闰年。");

    else

    System.out.println(year+"不是闰年。");

    }

    }


    正确答案:(year%4= =0&&year%100!=0)||(year%400 ==0) Year%4==0
    (year%4= =0&&year%100!=0)||(year%400 ==0) Year%4==0 解析:本题综合考查Java语言的数据类型及运算和分支语句。第1处的错误是:(year%4==0||year%100!=0)||(year%400==0);闰年的条件是符合下面二者之一:①能被4整除,但不能被100整除;②能被4整除,又能被100整除。因此判断某一年是否为闰年的表达式应该为(year%4==0&&year%100!=0)||(year%400==0)。第2处的错误是year%4!=0;应该填写year%4==0,用来判断该年是否能被4整除。

  • 第15题:

    输出1900~2000年中所有的闰年。每输出3个年号换一行。(判断闰年的条件为下面二者之一:能被4整除,但不能被100整除。或者能被400整除。)


    正确答案:
    #include”stdio.h”
    main
    {intI,n;
    for(n=0,I=1900;I<=2000;I++)
    {if(I%4==0I0!=0||I@0==0)
    {printf(“%d ”,I); n++; }
    if(n%3==0)
    printf(“\n”); } } }

  • 第16题:

    本题提示输入年份,然后判断该年份是否为闰年。 importjava.io.*; public class javal{ public static void main(String[]args){ InputStreamReader ir; BufferedReader in; ir=new InputStreamReader(System.in); in=new BufferedReader(ir); int year=1900; System.out.print("请输入年份:"); try{ String s=in.readLine; ; } (Exception e){ } if( ) System.OUt.println(year+"是闰年"); else System.out.println(year+"不是闰年"); } }


    正确答案:
    第1处:year=Integer.parseInt(s)
    第2处:catch
    第3处:year%4= =0year%100 !=0 ||year%400= =0
    【解析】第1处是将String型的s转换成整型;第2处是捕获异常的catch子句,用来处理由try所抛出的异常事件;第3处是判断是否为闰年的条件,即能被4整除且不能被100整除的或能被400整除的就是闰年。

  • 第17题:

    编写一个Java程序,判断某年份是否为闰年。


    答案:import java.io.*;public class testa{public static void main(String[] args) throws IOException{float? x;InputStreamReader reader=new InputStreamReader(System.in);BufferedReader input=new BufferedReader(reader);System.out.println("请输入x:");String temp=input.readLine();x =Float.parseFloat(temp);if(x@0==0){System.out.println(+x+"是闰年");}elseif(x%4==0){System.out.println(+x+"是闰年");}else{ System.out.println(+x+"不是闰年");}}}

  • 第18题:

    阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】某文本文件中保存了若干个日期数据,格式如下(年/月/日):2005/12/12013/2/291997/10/111980/5/15....但是其中有些日期是非法的,例如2013/2/29是非法日期,闰年(即能被400整除或者能被4整除而不能被100整除的年份)的2月份有29天,2013年不是闰年。现要求将其中自1985/1/1开始、至2010/12/31结束的合法日期挑选出来并输出。下面的C代码用于完成上述要求。【C代码】

    #include typedef struct{int year, month, day;/* 年,月,日*/}DATE; int isLeap Year(int y) /*判断y表示的年份是否为闰年,是则返回1,否则返回0*/{return((y%4==0 && y%100!=0)Il(y%400==0));} int isLegal(DATE date) /*判断date表示的日期是否合法,是则返回1,否则返回0*/{int y=date.year,m=date.month,d=date.day;if(y<1985 II y>2010 II m<1 II m>12 II d31) return 0;if((m==4 ll m==6 ll m==9 II m==11)&&(1) ) return 0;If(m==2){if(isLeap Year(y) && (2)) return 1;elseif(d28) return 0;}return 1;} Int Lteq(DATE d1,DATE d2)/*比较日期d1和d2,若d1在d2之前或相同则返回1,否则返回0*/{Long t1,t2;t1=d1.year*10000+d1.month*100+d1.day;t2=d2.year*10000+d2.month*100+d2.day;if((3)) return 1;else return 0;} int main(){DATE date,start={1985,1,1},end={2010,12,30};FILE*fp; fp=fopen(“d.txt”,”r”);If((4))return-1; while(!feof(fp)){if(fscanf(fp,”%d%d%d”,date.year,date.month,date.day)!=3)break;if((5)) /*判断是否为非法日期*/continue;if((6)) /*调用Lteq判断是否在起至日期之间*/printf(“%d%d%d\n”,date.year,date.month,date.day);}fclose(fp);Return 0;}


    答案:
    解析:
    (1)d>30 或d>=31或其等价表示(2)d<=29或d<30或其等价表示(3)t1<=t2或t1-t2<=0或其等价表示(4)fp==null或!fp或其等价表示(5)!isLegal(date) 或其等价表示(6)Lteq(start,date)==1&&Lteq(date,end)==1或其等价表示
    【解析】

    (1)(2)理解:if((m==4 ll m==6 llm==9 II m==11)&& d>30 /d>=31) return 0; //如果月份是4,6,9,11并且天数等于31则返回不合法,这几个月最多为30天,不可能大于等于31。If(m==2){ if(isLeap Year(y)&& d<=29 ) return 1;else if (d>28) return 0;//当年份为闰年的时候,那么二月份的天数需小于或等于28。合法则返回1。(3)if( t1<=t2/t1-t2<=0 ) return 1; //d1在d2之前,那么表明日期经换算成t1、t2后,t1<=t2。(4)If( fp==null/!fp )//先要判断文件是否为空;(5)(6)理解: if(!isLegal(date)) /*判断是否为非法日期 */ continue; if(Lteq(start,date)==1&&Lteq(date,end)==1 ) /*调用Lteq判断是否在起至日期之间,Lteq(t1,t2)的含义是比较日期d1和d2,若d1在d2之前或相同则返回1,否则返回0。*/

  • 第19题:

    编写一个Java程序,对于给定的年份,回答“Leap Year”(闰年)或者“Not a Leap Year”(平年)。如果一个年份能被4整除,但是不能被100整除,它是闰年;如果一个年份能被100整除,也能被400整除,它也是闰年。需要定义名为LeapYear的服务提供类

  • 第20题:

    运用判断变形法直接推理,以“有的年份是闰年”为前提,可以推得的结论有()。

    • A、有的年份不是闰年
    • B、有的闰年是年份
    • C、闰年都是年份
    • D、非闰年不是年份
    • E、有的年份不是闰年

    正确答案:A,B

  • 第21题:

    闰年的条件是年号(year)能被4整除,但不能被100整除,或者能被400整除。则闰年的布尔表达式为()。

    • A、(yearmod4=0andyearmod100<>0)and(yearmod400=0)
    • B、(yearmod4=0andyearmod100<>0)or(yearmod400=0)
    • C、(yearmod4=0oryearmod100<>0)and(yearmod400=0)
    • D、(yearmod4=0oryearmod100<>0)or(yearmod400=0)

    正确答案:B

  • 第22题:

    在我国的历法中阴历是()。

    • A、地球围绕太阳公转一周的时间为一年
    • B、公元年份凡被4整除者均为闰年
    • C、节气是属于阴历范围,而不属于阳历范围
    • D、太阳光在地球上直射点在南北回归线之间来往一次的周期时间为一年

    正确答案:A,D

  • 第23题:

    多选题
    运用判断变形法直接推理,以“有的年份是闰年”为前提,可以推得的结论有()。
    A

    有的年份不是闰年

    B

    有的闰年是年份

    C

    闰年都是年份

    D

    非闰年不是年份

    E

    有的年份不是闰年


    正确答案: D,C
    解析: 暂无解析

  • 第24题:

    单选题
    闰年的条件是年号(year)能被4整除,但不能被100整除,或者能被400整除。则闰年的布尔表达式为()。
    A

    (yearmod4=0andyearmod100<>0)and(yearmod400=0)

    B

    (yearmod4=0andyearmod100<>0)or(yearmod400=0)

    C

    (yearmod4=0oryearmod100<>0)and(yearmod400=0)

    D

    (yearmod4=0oryearmod100<>0)or(yearmod400=0)


    正确答案: C
    解析: 暂无解析