浙江高考信息技术 · 浙江普通高等学校招生全国统一考试2015B 信息技术 第 16 题

阅读程序 · 答案 i <= n - 1 And flag = TrueStr(i - 1)

← 整套速查表 浙江高考信息技术 全部真题

题目

【加试题】 n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击“排序”按钮command1,在列表框List2中显示这些数据升序后的结果,在标签Label3中显示排序过程的加工遍数。运行效果如第16题图所示。 ![](http://luogu-ipic.oss-cn-shanghai.aliyuncs.com/7m0yc.jpg)

实现上述功能的VB代码如下,但加框处代码有错,请改正。 ![](http://luogu-ipic.oss-cn-shanghai.aliyuncs.com/0zqy8.jpg)

答案:i <= n - 1 And flag = TrueStr(i - 1)

解题思维

这题考冒泡排序的优化逻辑和VB字符串拼接。拿到题先想:优化怎么实现?flag标记有无交换,若某遍没交换直接跳出;输出遍数时注意VB里数字转字符串要加Str(),且遍数i从1开始,对应数组下标i-1。

常见错误

冒泡排序中,若某遍没有发生任何数据交换,说明数组已经有序,无需继续比较,此时应提前退出循环。VB中若使用flag标记交换情况,退出条件需同时满足“遍历完当前趟”和“flag为真(即未发生交换)”。另外,输出遍数时,VB的Str函数会将数字转为字符串,若直接用i输出,可能因类型不匹配导致错误,应使用Str(i-1)确保正确拼接。

详细解析(节选)

冒泡排序优化与VB字符串拼接

考点与概念

本题考查冒泡排序的基本原理及其优化策略,同时涉及VB语言中字符串拼接的语法细节。冒泡排序通过相邻元素比较并交换,使较大元素逐步“冒泡”至末尾。优化核心在于:若某一趟遍历中未发生任何交换,说明数组已有序,可立即终止,避免多余比较。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断