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

admin2018-09-19  27

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

选项

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

解析 第1小题:题目要求计算一个数列的和,数列中的每一项是一个整数的阶乘,可通过循环来计算阶乘之和。代码设计了一个Sub过程和函数f,在Sub过捍中,首先获取文本框输入值n,然后判断n是否是偶数,根据题目要求,如果输入的n是偶数则加1,否则不需要加1,接下来通过for循环来计算累加和sum,第一个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 vear返回True,则month days(2)值是29,否则month days(2)的值是非闰年的2月天数,即28;第二个“?”处的循环是计算从1月到选择月的前一个月(month-1)的总天数;第三个“?”处的循环用于输出月历,循环打印k的值,每循环一次n加1,当n的值为7的时候输出换行,因此第三个“?”处是将n赋值为0,开始下次计数;最后一个“?”处是补充函数参数,根据函数体内部实现“leap year=(year Mod4=0And year Mod100<>0Oryear Mod400=0)”,可知输入参数是year。
转载请注明原文地址:https://kaotiyun.com/show/bnFp777K
0

最新回复(0)