柠檬试题库
search
首页 计算机 公务员 驾照 关于

某人为计算n!(0<n<=12)编写了下面的函数过程:Private Function fun(n As Integer)As Long Dim p As Long p=1 For k=n-1 To 2 Step-1 p=p * k Next k fun=p End Function 在调试时发现该函数过程产生的结果是错误的,程序需要修改。下面的修改方案中有3种是正确的,错误的方案是( )。


  • A.把p=1改为 p=n
  • B.把For k=n-1 To 2 Step-1 改为 For k=1 To n-1
  • C.把For k=n-1 To 2 Step-1 改为 For k=1 To n
  • D.把For k=n-1 To 2 Step-1 改为 For k=2 To n
热度🔥418
参考答案:B
解析:

【解析】原程序的错误在于没有把n的值乘进去。而B选项中把For k=n-1 To 2 Step-1 改为 For k=1 To n-1,依然没有把n乘进去。
复制题目向AI提问


扫码免费计算机二级刷题
2025年计算机等级考试题库
推荐 数据库中有"Emp",包括"Eno"、"Ename"、"Eage"、"Esex"、"Edate""Eparty"等字段。下面程序段的功能是:在窗体文本框"tValue"内输入年龄条件,单击"删除"按钮完成对该年龄职工记录信息的删除操作。 Private Sub btnDelete_Click() ' 单击"删除"按钮   Dim strSQL As String ' 定义变量   strSQL="delete from Emp" ' 赋值SQL基本操作字符串   ' 判断窗体年龄条件值无效(空值或非数值)处理   If IsNull(Me!tValue)=True Or IsNumeric(Me!tValue)=False Then     MsgBox "年龄值为空或非有效数值!",vbCritical,"Error"     ' 窗体输入焦点移回年龄输入的文本框"tValue"控件内     Me!tValue.SetFocus   Else     ' 构造条件删除查询表达式     strSQL=strSQL & " where Eage=" & Me!tValue     ' 消息框提示"确认删除?(Yes/No)",选择"Yes"实施删除操作     If MsgBox("确认删除?(Yes/No)", vbQuestion+vbYesNo, "确认")= vbYes Then         ' 执行删除查询         DoCmd.           strSQL         MsgBox "completed!", vbInformation, "Msg"     End If   End If End Sub 按照功能要求,下划线处应填写的是(  )。 结构化程序设计中,下面对goto语句使用描述正确的是 有以下程序 #include main() { int c[6]={10,20,30,40,50,60}, *p,*s; p = c; s = &c[5]; printf("%d\n", s-p ); } 程序运行后的输出结果是 下列关于栈的叙述中,正确的是 下列叙述中正确的是( )。