VB程序设计:2011年计算机二级考试错题解析
需积分: 3 148 浏览量
更新于2024-07-31
2
收藏 900KB DOC 举报
"这是关于2011年计算机二级VB考试的练习题目,包含了程序改错和图形打印两个部分。"
在计算机二级VB考试中,考生需要掌握基础的Visual Basic编程知识,包括变量定义、循环结构、函数应用以及事件处理等。下面我们将详细解析给出的两道题目。
第一题是程序改错题,目的是计算C的公式,即阶乘的比值:
```vb
Option Explicit
Private Function fac(k As Integer) As Single
Dim x As Single, j As Integer
' 错误1:x 应该初始化为1
x = 1
For j = 1 To k
' 错误2:应该是x *= j,即累乘
x = x * j
Next j
fac = x
End Function
Private Sub Form_Click()
Dim C As Single
Dim m As Integer, n As Integer
m = Val(InputBox("请输入一个整数(m):"))
n = Val(InputBox("请输入一个整数(n):"))
' 错误3:计算公式应避免除以0的情况,正确写法是使用括号或者除以单个阶乘
C = (fac(n) / fac(n - m)) * fac(m)
Print "C="; C
End Sub
```
在上述代码中,我们修正了三个错误:
1. `fac`函数中的变量`x`应该初始化为1,因为阶乘是从1开始乘起的。
2. 循环体内,应使用`x = x * j`来累积乘积,而不是使用指数运算符`^`。
3. 在`Form_Click`事件中,计算`C`时,要确保不会出现除以0的情况,所以正确的公式应该是将阶乘结果直接相乘,或者分开除以单个阶乘。
第二题是图形打印题,目标是打印出星号(*)组成的金字塔:
```vb
Option Explicit
Private Sub Form_Click()
Cls
Dim i As Integer, j As Integer
' 错误1:金字塔层数应为5,而非7
For i = 1 To 5
' 错误2:内层循环应根据外层循环递减,每次循环打印一个星号
For j = 1 To i
Print "*";
Next j
' 错误3:每一层打印完后需换行
Print
Next i
End Sub
```
在这段代码中,我们调整了三个错误:
1. 外层循环应当从1到5,因为我们要打印的是5层金字塔。
2. 内层循环应该从1到当前层的索引`i`,这样每层的星号数量会递增,形成金字塔形状。
3. 每打印完一层星号,需要使用`Print`语句换行,使得星号能按照金字塔的样式排列。
通过改正这些错误,程序就能正确地实现所要求的功能。对于计算机二级VB考试来说,理解并能正确应用这类基本编程概念是非常重要的。
2009-04-07 上传
2009-05-09 上传
2021-10-08 上传
2021-10-04 上传
2009-10-30 上传
2023-08-13 上传
2021-10-04 上传
2021-10-09 上传
lulimingly
- 粉丝: 0
- 资源: 1
最新资源
- 掌握Jive for Android SDK:示例应用的使用指南
- Python中的贝叶斯建模与概率编程指南
- 自动化NBA球员统计分析与电子邮件报告工具
- 下载安卓购物经理带源代码完整项目
- 图片压缩包中的内容解密
- C++基础教程视频-数据类型与运算符详解
- 探索Java中的曼德布罗图形绘制
- VTK9.3.0 64位SDK包发布,图像处理开发利器
- 自导向运载平台的行业设计方案解读
- 自定义 Datadog 代理检查:Python 实现与应用
- 基于Python实现的商品推荐系统源码与项目说明
- PMing繁体版字体下载,设计师必备素材
- 软件工程餐厅项目存储库:Java语言实践
- 康佳LED55R6000U电视机固件升级指南
- Sublime Text状态栏插件:ShowOpenFiles功能详解
- 一站式部署thinksns社交系统,小白轻松上手