(1)在考生文件夹中有工程文件 sjt3.vbp,程序界面如图3-3所示。当在文本框中输入正整数N,单击“计算”命令按钮,进行计算。若N是奇数,计算l+3!+5!+……+N!,若N是偶数,计算1+3!+5!+……+(N+1)!。在给出的窗体文件中已经有了全

admin2017-09-22  39

问题 (1)在考生文件夹中有工程文件 sjt3.vbp,程序界面如图3-3所示。当在文本框中输入正整数N,单击“计算”命令按钮,进行计算。若N是奇数,计算l+3!+5!+……+N!,若N是偶数,计算1+3!+5!+……+(N+1)!。在给出的窗体文件中已经有了全部控件,但程序不完整,要求去掉程序中的注释符,把程序中的?改为正确的内容。
    注意:考生不得修改窗体文件中已经存在的程序。最后程序按原文件名存盘。
    (2)在考生文件夹下有一个工程文件sjt4.vbp,该程序的功能是显示月历。运行程序后,在Text1、Text2中分别输入年份和月份,并在左边的框架中选择该年的1月1日是星期几,然后单击“显示月历”按钮,即可在下面的图片框内显示该年该月的月历。如图3-4所示的是2008年2月份的月历。请将事件过程中的注释符去掉,把“?”改为正确的内容,以实现上述程序功能。

    注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。

选项

答案(1)步骤1:打开考生文件夹中的本题工程文件sjt3.vbp,在代码编辑窗口中,去掉程序中的注释符“’’,将问号“?”改为正确的内容。参考代码: m=n+1 m=n For i=1 To m Step 2 sum=sum+f(i) For i=1 To x 步骤2:按要求将文件保存至考生文件夹中。 (2)步骤1:打开考生文件夹中的本题工程文件sjt4.vbp,在代码编辑窗口中,去掉程序中的注释符“’”,将问号“?”改为正确的内容。参考代码: month_day8(2)=IIf(leap_year(year),2 9,28) For k=1 To month-1 n=0 Private Function leap_year(year As Integer) As Boolean 步骤2:按要求将文件保存至考生文件夹中。

解析 (1)题目要求计算一个数列的和,数列中的每一项是一个整数的阶乘,可通过循环来计算阶乘之和。代码设计了一个Sub过程和函数f,在Sub过程中,首先获取文本框输入值n,然后判断n是否是偶数,根据题目要求,如果输入的n是偶数则加1,否则不需要加1,接下来通过for循环来计算累加和SHIn。第一个If用来判断输入的n是否是偶数,并赋值给变量m,如果n是偶数则m=n+1,否则m=n:第三个“?”处是补充循环的步长Step值,题目要求计算奇数的阶乘2,每一项之间的差值为2,因此For循环的Step值为2;第四个“?”处是计算累加和,通过调用函数f来计算阶乘,因此第四个“?”处为sum=sum+f(i);最后一个“?”处是补充计算阶乘的For循环Step值,显然是1。
    (2)题目要求计算月历,具体计算的方法是将1月到当前选中月之前一个月的总天数,再根据1月1日是星期几就可以得到当前月的星期情况。
    数组month_days保存的是1-12月的每月的天数,其中2月比较特殊,需要区分是否是闰年。函数Leap_year用于判断是否是闰年,如果是闰年返回布尔True。第一个“?”处是判断当前年份是否是闰年,如果是闰年的话2月是29天,使用IIf来判断,如果Leap_year返回True,则month_days(2)值是29,否则month_days(2)的值是非闰年的2月天数,即28;第二个“?”处的循环是计算从1月到选择月的前一个月(month-1)的总天数;第三个“?”处的循环用于输出月历,循环打印k的值,每循环一次n加1,当n的值为7的时候输出换行,因此第三个“?”处是将n赋值为0,开始下次计数;最后一个“?”处是补充函数参数,根据函数体内部实现“leap year=(ygar Mod 4=0 And year Mod 100<>0 Or year Mod 400=0)”,可知输入参数是year。
转载请注明原文地址:https://kaotiyun.com/show/ojGp777K
0

最新回复(0)