itgle.com

阅读以下说明和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日,

题目
阅读以下说明和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]”。
更多“阅读以下说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。【说明】函数GetDateId(DATEdate)的功能是计算并返回指定合法日期date是其所在年份的第几天。例如,date表示2008年1月25日时,函数的返回值为25,date表示2008年3月3日时,函数返回值为63。函数Kday—Date(inttheyear,intk)的功能是计算并返回指定合法年份theyear(th”相关问题
  • 第1题:

    将关键字const写在函数头之后,函数体之前,说明该函数是一个const成员函数。此时const不是指定函数的返回值,而是修饰______指针。


    正确答案:this
    this 解析:const在修饰指针的时候考生容易混淆。如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。而用const声明了返回值后,const按照"修饰原则"进行修饰,起到相应的保护作用,即保护this指针不被修改。

  • 第2题:

    下列函数中,其返回值为字符型数据的函数是______。

    A.LEN()

    B.VAL()

    C.STR()

    D.DATE()


    正确答案:C

  • 第3题:

    请教:2012年3月全国计算机等级《二级C语言》模拟试题(1)第2大题第8小题如何解答?

    【题目描述】

    有关return语句说法不正确的是(  )

    A)系统默认的返回值类型为整型,故当函数的返回值为int型时,在函数定义时,返回值的类型说明可以省略

    B)当函数有返回值时,凡是允许表达式出现的地方,都可以调用该函数

    C)当函数没有返回值时,函数的返回值类型可以说明为void型,它表示“无类型”或“空类型”

    D)函数的返回值类型必须与return语句中的表达式值的类型一致,但c语言也允许不同;这时,系统以函数定义时的返回值类型说明为准,并自动地将return语句中表达式的值转换为函数的返回值类型

     


     

    正确答案:D

     

     

  • 第4题:

    有关return语句说法不正确的是( )

    A)系统默认的返回值类型为整型,故当函数的返回值为int型时,在函数定义时,返回值的类型说明可以省略

    B)当函数有返回值时,凡是允许表达式出现的地方,都可以调用该函数

    C)当函数没有返回值时,函数的返回值类型可以说明为void型,它表示“无类型”或“空类型”

    D)函数的返回值类型必须与return语句中的表达式值的类型一致,但c语言也允许不同;这时,系统以函数定义时的返回值类型说明为准,并自动地将return语句中表达式的值转换为函数的返回值类型


    正确答案:D

  • 第5题:

    程序中对fun函数有如下说明void*fun();此说明的含义是()

    • A、fun函数无返回值
    • B、fun函数的返回值可以是任意的数据类型
    • C、fun函数的返回值是无值型的指针类型
    • D、指针fun指向一个函数,该函数无返回值

    正确答案:C

  • 第6题:

    函数运算YEAR(date( ))返回值的类型是()

    • A、逻辑型
    • B、字符型
    • C、备注型
    • D、数值型

    正确答案:D

  • 第7题:

    函数year(date())的返回值是()

    • A、是错误的
    • B、是个日期/时间型的值
    • C、是系统当前日期的年份
    • D、都不对

    正确答案:C

  • 第8题:

    以下的四组函数,返回值的数据类型是一致的为()。

    • A、DTOC(DATE()),DATE(),YEAR(DATE())
    • B、ALLTRIM("VFP6.0"),ASC("A"),SPACE(8)
    • C、EOF(),RECCOUNT(),DBC()
    • D、STR(3.14,3,1),DTOC(DATE()),SUBSTR("ABCD",3,1)

    正确答案:D

  • 第9题:

    以下的四组函数,返回值的数据类型是一致的()

    • A、DTOC(DATE()),DATE(),YEAR(DATE())
    • B、ALLTRIM("VFP5.0"),ASC("A"),SPACE(8)
    • C、EOF(),RECCOUNT(),DBC()
    • D、STR(3.14,3,1),DTOC(DATE()),SUBSTR("ABCD",3,1)

    正确答案:D

  • 第10题:

    函数LEN(STR(12345678901))的返回值是();函数LEN(DTOC(DATE()))的返回值为()。


    正确答案:10;8

  • 第11题:

    单选题
    以下的四组函数,返回值的数据类型是一致的()
    A

    DTOC(DATE()),DATE(),YEAR(DATE())

    B

    ALLTRIM(VFP5.0),ASC(A),SPACE(8)

    C

    EOF(),RECCOUNT(),DBC()

    D

    STR(3.14,3,1),DTOC(DATE()),SUBSTR(ABCD,3,1)


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

  • 第12题:

    填空题
    函数LEN(STR(12345678901))的返回值是();函数LEN(DTOC(DATE()))的返回值为()。

    正确答案: 10,8
    解析: 暂无解析

  • 第13题:

    阅读以下说明和C语言函数,将应填入(n)处。

    【说明】

    已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。

    函数count_5_13(int year)首先算出年份year的1月13日是星期几,然后依次计算每个月的13日是星期几,若是星期五,则计数。

    程序中使用了函数isLeapYear(int year),其功能是判断给定年份是否为闰年,返回值为1(或0)表示year是(或不是)闰年。

    【C语言函数】

    int count_5_13(int year)

    {

    int date; /*date为0表示星期日,为1~6分别表示星期一至星期六*/

    long days=0; /*days记录天数*/

    int m,y,c=0; /*c用于表示黑色星期五的个数*/

    if (year<1900) return-1;

    /*计算从1900年1月1日起至给定年份year的1月13日间隔的天数*/

    days=12;

    for (y= 1900; y < year; y++) {

    days +=365;

    if (isLeapYear(y))(1);

    }

    date=((days%7) +1) %7; /*算出给定年份year的1月13日是星期几*/

    c=((2)) ?1:0;

    for(m=1;(3);m++) {

    switch (m) {

    case 1:case 3: case 5: case 7:case 8:case 10:case 12:

    days=31; break;

    case 4: case 6: case 9: case 11:

    days=30; break;

    case 2:days=28;

    if((4)) days=29;

    break;

    }/*end of switch*/

    date=((days%7)+ (5) )%7;

    if (date==5) c++;

    } /*end of for*/

    return c;

    }


    正确答案:(1)days++days+=1days=days+1或其等价表示 (2)date==5或其等价表示 (3)m12或其等价表示 (4)isLeapYear(year)或year%4==0 && year%100!=0||year%400==0或其等价表示 (5)date
    (1)days++,days+=1,days=days+1,或其等价表示 (2)date==5,或其等价表示 (3)m12,或其等价表示 (4)isLeapYear(year),或year%4==0 && year%100!=0||year%400==0,或其等价表示 (5)date 解析:本题考查基本程序设计能力。
    题中程序用于计算给定年份中“黑色星期五”(既是13日又是星期五的日期)的数目。基本的常识为平年每年365天、闰年366天。若今天是星期三(date),则7天后的那天也是星期三,依此类推,可算出m天后为星期几((date+m)%7,为0表示星期日)。
    题目中给出了1900年1月1日是星期一,因此,对于给定的日期,首先需要算出其距离1900.1.1的天数,然后用上式计算该日期对应星期几。
    要计算给定年份中有几个“黑色星期五”,可先计算出该年份的1月13日是星期几,然后计算该年内每月的13日是星期几。所以,程序中首先计算出1900年1月1日至给定年份的1月13日共有多少天(days)。
    在计算给定日期段的天数时,需要考虑大、小月,对于2月份,则需要考虑当前年号是否为闰年。期间若跨年度,则按每年365天(闰年366天)累加天数。对于以下代码段:
    for(y == 1900;y year;y++){
    days+=365;
    if(isLeapYear(y))(1);
    }
    显然,程序中空(1)处应填入days++或其等价表示形式。
    根据程序中的注释,经语句date=((days%7)+1)%7;处理后,date表示给定年份的1月13日是星期几,而c用于表示“黑色星期五”的个数,因此空(2)处应填入 date==5。
    在下面的代码中,计算给定年份2月份之后每个月的13日星期几(计算天数时需要考虑大、小月,2月份要考虑是否为闰年),其中m表示月号。
    for(m=1;(3);m++){
    switch(m){
    case 1:case 3:case 5:case 7:case 8:case 10:case 12:
    days=31;break;
    case 4:case6:case9:case11:
    days=30;break;
    case 2:days=28;
    if((4))days=29;
    break;
    }/*end of switch*/
    由于1月13日已经考虑过,因此需要考虑的日期为2月至12月的每个13日,当月份m为12时,再计算出的日期就是下一年度的1月13日了,因此空(3)处应填入 m12,空(4)处显然是判断当前年号是否为闰年,因此应填入isLeapYear(year)或 isLeapYear(y)。
    对于代码date=((days%7)+(5)%7;,之前已用date表示上个月13日是星期几,days表示间隔的天数,因此空(5)处应填入date。

  • 第14题:

    阅读以下说明和 C 函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。 【说明 1】 函数 f(double eps) 的功能是:利用公式计算并返回 π 的近似值。【说明 2】 函数fun(char *str)的功能是:自左至右顺序取出非空字符串 str中的数字字符,形成一个十进制整数(最多 8 位)。例如,若 str中的字符串为 "iyt?67kp f3g8d5.j4ia2e3p12", 则函数返回值为 67385423。


    正确答案:(1)n+2
    (2)-s 或-1*s
    (3) *p!= ' \ 0'或等价形式
    (4) num*10 或等价形式
    (5) p++或等价形式

  • 第15题:

    试题二(共 15 分)

    阅读以下说明和 C 语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。

    [说明]

    已知 1900 年 1 月 1 日是星期一,下面的函数 count_5_13(int year)用于计算给定的年份 year中有几个“黑色星期五” 。 “黑色星期五”指既是 13 日又是星期五的日期。

    函数 count_5_13(int year)首先算出年份 year 的1月 13 日是星期几,然后依次计算每个月的 13 日是星期几,若是星期五,则计数。

    程序中使用了函数 isLeapYear(int year),其功能是判断给定年份是否为闰年,返回值为 1(或 0)分别表示 year 是(或不是)闰年。

    [C 语言函数]

    int count_5_13(int year)

    {

    int date; /* date 为 0 表示星期日,为 1~6 分别表示星期一至星期六 */

    long days = 0; /* days 记录天数 */

    int m, y, c = 0; /* c 用于表示黑色星期五的个数 */

    if (year < 1900) return -1;

    /*计算从 1900 年 1 月 1 日起,至给定年份 year 的 1 月 13 日间隔的天数*/

    days = 12;

    for (y = 1900; y < year; y++) {

    days += 365;

    if (isLeapYear(y)) (1) ;

    }

    date = ((days % 7) + 1) % 7; /* 算出给定年份year 的1 月 13 日是星期几 */

    c = ( (2) ) ? 1 : 0;

    for(m = 1; (3) ; m++) {

    switch (m) {

    case 1: case 3: case 5: case 7: case 8: case 10: case 12:

    days = 31; break;

    case 4: case 6: case 9: case 11:

    days = 30; break;

    case 2: days = 28;

    if ( (4) ) days = 29;

    break;

    }/* end of switch*/

    date =((days % 7) + (5) ) % 7;

    if (date == 5) c++;

    } /* end of for*/

    return c;

    }


    正确答案:


  • 第16题:

    阅读以下说明和C函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。
    [说明1]
    函数f(double eps)的功能是:利用公式

    计算并返回π的近似值。

    [C函数1] double f(doubleeps) { double n=1.0, s=1.0, term=1.0, pi=0.0; while ( fabs(term) >=eps ){ pi=pi+term; n= ______; s= ______; term=s/n; } return pi*4; }

    [说明2]
    函数fun(char *str)的功能是:自左至右顺序取出非空字符串str中的数字字符,形成一个十进制整数(最多8位)。例如,若str中的字符串为"iyt?67kp f3g8d5.j4ia2e3p12",则函数返回值为67385423。

    [C函数2] long fun(char*str) { int i=0; long num: 0; char *p = str; while ( i<8 && ______) { if ( *p >= '0' && *p <= '9' ) { num= ______ + *p -'0'; ++i; } ______; } return num; }


    答案:
    解析:
    n+2
    -s或-1*s
    *p!='\0'或等价形式
    num*10或等价形式
    p++或等价形式

    【解析】

    本题考查C语言程序设计基本技能。考生需认真阅读题目中的说明,从而确定代码的运算逻辑,在阅读代码时,还需注意各变量的作用。
    函数f(double eps)的功能是计算兀的近似值。观察题中给出的计算公式,可知在循环中n每次递增2,因此空(1)处应填入"n+2"。由于公式中的各项是正负交替的,因此结合表达式"term=s/n"可知变量s就是起此作用的。空(2)处应填入"-s"或"-1*s"。
    对于函数fun(char *str]),从字符序列中取出数字并组合为一个整数时,对于每个数字,只需将之前获取的部分乘以10再加上该数字的值即可。
    以67385423为例。
    67385423=(((((((0+6)*10+7)*10+3)*10+8)*10+5)*10+4)*10+2)*10+3
    函数中的变量i是用来计算位数的,num用来计算所获得的整数值。显然,最多读取字符序列中的前8个数字,或者到达字符序列的末尾(*p!='\0')时,计算也需结束。因此,空(3)处应填入"*p!:'\0'"。
    根据num的作用,空(4)处应填入"num*10"。
    根据指针p的作用,空(5)处的代码应使得p指向下一个字符,因此应填入"p++"。

  • 第17题:

    函数LEN(DTOC(DATE(),1))的返回值是()

    • A、4
    • B、6
    • C、8
    • D、10

    正确答案:C

  • 第18题:

    函数DATE()可以返回当前的日期及时间。


    正确答案:错误

  • 第19题:

    下列关于ORACLE的to_date函数和to_char函数,描述正确的是()。

    • A、to_char函数是将字符串数据转换为日期数据
    • B、to_date函数是将字符串数据转换为日期数据
    • C、to_char函数是将日期数据转换为字符数据
    • D、to_date函数是将日期数据转换为字符数

    正确答案:B,C

  • 第20题:

    下列函数中,返回值为日期型的有()

    • A、DATE()
    • B、TIME()
    • C、DTOC()
    • D、CTOD()
    • E、YEAR()

    正确答案:A,D

  • 第21题:

    下列函数中返回值为字符型的是()。

    • A、DATE()
    • B、TIME()
    • C、YEAR()
    • D、DATETIME()

    正确答案:D

  • 第22题:

    关于日期和时间函数,下列说法正确的是()。

    • A、now函数可以返回客户端计算机当前的日期和时间值。
    • B、表达式Weekday(Date),将得到表示当前日期是星期几的英文字符,如星期日为“Friday”。
    • C、Timer函数返回午夜12时以后已经过去的小时数。
    • D、表达式DateAdd("d",10,Date),是表示当前日期的十天后。

    正确答案:D

  • 第23题:

    单选题
    以下的四组函数,返回值的数据类型是一致的为()。
    A

    DTOC(DATE()),DATE(),YEAR(DATE())

    B

    ALLTRIM(VFP6.0),ASC(A),SPACE(8)

    C

    EOF(),RECCOUNT(),DBC()

    D

    STR(3.14,3,1),DTOC(DATE()),SUBSTR(ABCD,3,1)


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