当前位置:首页 >> 其它课程 >> 算法和程序设计分析及试题附答案

算法和程序设计分析及试题附答案


选修 1:算法与程序设计 第一单元 算法
一、 知识内容
(一)使用计算机解决问题的一般过程 考试要求:对所列知识要知道其内容及含义,并能用自己的语言或动作进行表达、判断和直接 运用。 1.一般过程 (1)分析问题确定要使用计算机来“做什么” ,即确定解题的任务。 (2)寻求解决问题的途径和方法。 (3)用计算机进行处理。 2.确定解决问题的方法及步骤化 确定

了解决问题的方法后,必须把解决问题的方法步骤化,即用某种方式告诉计算机每个需做 什么。 计算机开始计算之前,需把解决问题的程序存储在内存中。通常一个程序包括指令和数据两部 分。 (1)指令部分:指令是对计算机操作类型和操作数地址做出规定的一组符号。 (2)数据部分:计算所需的原始数据、计算的中间结果或最终结果。 3.设计程序时需要考虑的问题 (1)数据的存储:计算所需要的原始数据、计算产生的中间结果需要存储在不同的变量中。 (2)计算的过程:把解决问题的方法步骤化,并用计算机能执行的指令来有序地实现对应的步 骤。 (3)典型的指令类型有输入指令、输出指令、算术运算指令、逻辑运算指令和控制转移指令。 (二)算法及算法的表示方法 考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和 操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.算法的特征 (1)有穷性。一个算法必须保证它的执行步骤是有限的, 即它是能终止的。 (2)确定性。算法中的每个步骤必须有确切的含义,不应当有模棱两可的。 (3)能行性。算法中的每一个步骤都要足够简单,能实际能作的,而且在能在有限的时间内完 成。 (4)有 0 个或多个输入。 (5)有一个或多个输出。 (三)用自然语言、流程图、伪代码表示算法 考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和 操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.自然语言 就像写文章时所列的提纲一样,可以有序地用简洁的自然语言加数学符号来描述算法。 2.流程图 用国家颁布的标准(GB1526-89,ISO5807-1985)中规定的图示及方法来画流程图,常用的构 件有如图所示。

- 117 -

3.伪代码 使用某些程序设计语言中控制结构,来描述算法中各步骤地执行次序和模式;使用自然语言、 数学符号或其他符号,来表示计算步骤要完成的处理或需要涉及的数据。 (四)顺序、选择和循环三种基本模式 考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和 操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.顺序模式就是按指令的先后顺序依次执行 2.分支模式就是根据分支条件,判断条件成立情况,选择某一条路径中的指令执行 3.循环模式就是首先判断条件是否成立,如果不成立则直接执行循环体外的第一条指令,如果 条件成立则执行循环体内的指令,然后再次判断条件是否成立,如果条件成立再次执行循环体内的 指令,直至条件不成立跳出循环体为止。 三种基本模式流程示意图如下图所示。

二、例题分析
1.下面关于算法的描述,正确的是 (A) 一个算法只能有一个输入 (B) 算法只能用框图来表示 (C) 一个算法的执行步骤可以是无限的 (D) 一个完整的算法,不管用什么方法来表示,都至少有一个输出结果 参考答案:D 所考知识点:算法的特征 2.算法描述可以有多种表达方法,下面哪些方法不可以描述“闰年问题”的算法
- 118 -

(A) 自然语言 (B) 流程图 (C) 伪代码 (D) 机器语言 参考答案:D 所考知识点:算法的描述 3.算法与程序的关系 (A) 算法是对程序的描述 (B) 算法决定程序,是程序设计的核心 (C) 算法与程序之间无关系 (D) 程序决定算法,是算法设计的核心 参考答案:B 所考知识点:算法的概念 4.人们利用计算机解决问题的基本过程一般有如下四个步骤(①~④) ,请按各步骤的先后顺序在 下列选项中选择正确的答案 ①调试程序 ②分析问题 ③设计算法 ④编写程序 (A) ①②③④ (B) ②③④① (C) ③②④① (D) ②③①④ 参考答案:B 所考知识点:用计算机解决问题的过程 5.在一次电视选秀活动中,有三个评位为每位选手打分。如果三个评委都亮绿灯,则进入下一轮; 如果两个评委亮绿灯,则进入待定席;如果红灯数超过二盏则淘汰。最适合用到的程序结构是 (A) 循环 (B) 赋值 (C) 分支 (D) 顺序 参考答案:C 所考知识点:算法的基本模式 6.下列流程图符号属于判断框的是 (A) (B) (C) (D)

参考答案:D 所考知识点:算法的表示、流程图

- 119 -

第二单元 VB 程序设计
一、知识内容
(一) 面向对象程序设计的基本思想与方法 考试要求:对所列知识要知道其内容及含义,并能用自己的语言或动作进行表达、判断和直接 运用。 1.面向对象程序设计(object oriented programming,缩写 OOP)方法:在进行程序设计是 从分析问题领域中各种客观事物本体的属性和行为,以及它们之间的相互关系着手,在计算机中建 立起这些客体的映象——对象,用对象对应于问题领域中的客体,用对象间的消息传递来表示客体 的相互作用、相互关系。 (二)属性、类、事件和事件处理的概念 考试要求:对所列知识要知道其内容及含义,并能用自己的语言或动作进行表达、判断和直接 运用。 1.对象是客观存在的事物或概念。它有两个特点:状态和行为。 2.一个对象的状态是通过若干个属性(property)来描述的;行为是指对属性进行操作和处理 的方法(method) 。在面向对象的程序设计中,一个对象是由一组对象状态的数据和一组描述处理对 象属性的方法的代码构成的。对象的属性定义其外观,方法定义其行为,事件定义其与用户的交互。 3.类(class)是对相同性质的对象的一种抽象,而一个对象则是类的一个“实例” 。 4.事件(event)就是发生在对象上的事情,通常是由用户在对象上激发的一种动作。一个事 件的发生,可以引起某个对象上某个方法(事件处理过程)的执行,即由某个事件驱动了相应的事 件处理过程的执行。这就是面向对象程序设计中的事件驱动概念。 (二) VB 应用程序的界面设计与调式 考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和 操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.VB 应用程序的界面设计 (1)VB 程序设计语言:基于 Basic 语言的可视化程序设计环境,采用面向对象的程序设计方 法(OOP) 。 (2)VB 应用程序设计环境的的窗口主要由对象窗口、控件工具箱、属性窗口、工程窗口组成。 (3) 控件工具箱集中了常用的基本控件: 标签 label、 文本框 TextBox、 命令按钮 Command Button、 列表框 ListBox 等。 (4)窗体(Form)是 VB 应用程序的基本结构。窗体可以看作是一个“容器” ,其中放置着各种 各样在应用程序中必须用到的对象。 2.VB 应用程序的运行和保存 运行:单击工具栏中“运行”选项中的启动按钮,运行应用程序。 保存:在“文件”菜单中选“工程另存为” ,该应用程序的窗体和工程分别存储到文件中,其相 应的文件扩展名分别是“ .frm”和“ .vbp” 。也可以选“文件”菜单中的“生成工程 xxx.exe” , 这样,就可在 Windows 环境中直接运行这个应用程序了。 (四)事件处理代码的编制方法考试要求:对所列知识要理解其确切含义及与其它知识的联系,能 够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。 对于对象而言,事件就是发生在该对象上的事情,通常是由用户在对象上激发的一种动作。一 个事件的发生,可以引起某个对象上某个方法的执行,即由某个事件驱动了相应的事件处理过程的 行为。 在事件处理过程中,可以按预定设计好的方式,改变某个对象的相关属性值,因此是这个对象 的状态得到相应的改变。 (五)VB 基本数据类型、常量、变量和数组
- 120 -

考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和 操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1. 数据: 数据是信息的一种记录形式。 在 VB 中, 常用的基本数据类型有以下几种: Integer(整 数型)、Long(长整数型)、Single(单精度实数型)、Double(双精度实数型)、String(字符串型)、 Boolean(逻辑型)、Date(日期型)。 2.常量:常量是在程序执行过程中其值不变的存储单元或数据。在 VB 中,常量有整数常量、 实数常量、字符串常量和逻辑常量这几种类型。 3.变量:变量用来表示数据的存储区,在程序运行过程中,这些存储区中的值是可以改变的。 变量名由字母、数字和下划线等字符组成,但必须以字母开头,在变量名中对大小写字母是不加区 分的。 变量说明语句的常用形式为:Dim 变量名 As 变量的类型。 4.数组:数组是由一批同类型的变量构成的一个序列,组成数组的每一个变量被称为数组的元 素,也称为下标变量,下标是一个整数,用来指出某个元素在数组中的位置。 一维数组的常用形式为:Dim 数组变量名(A1 To A2) As 元素的类型。 二维数组的常用形式为:Dim 数组变量名(A1 To A2,B1 To B2) As 元素的类型。 (六)VB 各类表达式与标准函数 考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和 操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.VB 中的常用标准函数 (1)常用数学函数:Abs(X)、Int(X)、Sqr(X)、Rnd() 、 Exp(X)、Log(X)、Sin(X)、Cos(X)、 Tan(X)。 (2) 常用类型转换函数和字符串函数: Asc(X)、 Chr(X)、 Val(X)、 Str(X)、 Len(X)、 Mid(X,n,k)、 Fix(X)。 2.基本运算与表达式 (1)VB 的基本运算:VB 的基本运算包括算术运算、关系运算和逻辑运算三大类。 算术类基本运算有:^、-、*、/、\、Mod、+、关系类基本运算有:=、<>、<、>、<=、>= 逻辑类基本运算有:Not 、And 、Or (2)表达式:表达式主要用来规定值的计算过程,以及对于某些情况或条件的判断。一个表达 式中可能包括算术运算、 关系运算和逻辑运算等多种基本运算, 以及这些基本运算所涉及的数据 (变 量和常量) 。 (3)基本运算的优先级从高到低为:^(1 级) ,-(指负号,2 级) ,﹡、/(3 级) ,\(4 级) , Mod(5 级) ,+、-(6 级) ,=、<>、<、>、<=、>=(7 级) ,Not(8 级) ,And(9 级) ,Or(10 级) 。 (七)常用的 VB 语句 考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和 操作方法解决实际问题,熟练应用信息技术进行信息的处理。 (八)使用 VB 实现顺序、选择、循环三种控制结构 考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和 操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.赋值语句: 变量名 = 表达式 或 对象名.属性名 = 表达式 2.选择语句: 行 If 语句:If 条件表达式 Then 语句 1 Else 语句 2 或 If 条件表达式 Then 语句 块 If 语句: If 条件表达式 1 Then
- 121 -

语句块 1 ElseIf 条件表达式 2 Then 语句块 2 ?? ElseIf 条件表达式 n Then 语句块 n Else 语句块 0 End If For 循环变量 = 初值 To 终值 Step 步长 语句块 Next 循环变量 Do 语句 Do While 条件表达式 语句块 Loop 4.注释:注释是以单引号(')开头的一串文字,可以出现在程序中需要说明的位置上,通过 这一串文字,对附近的程序段进行简要的说明,增加程序的可读性。注释对程序的执行效果没有任 何影响,程序运行时自动跳过注释。 (九)过程、事件处理过程、自定义函数考试要求:对所列知识要理解其确切含义及与其它知识的 联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.VB 应用程序是按模块化的方式组成的,一个程序模块是程序的一部分,每个模块负责解决 整个应用问题的一部分任务。程序模块分为过程和函数两种。 2.过程:将程序划分成一个个较小的逻辑单元,每个逻辑单元构成一个过程。过程中的代码可 以被重复调用。过程分成两类,一类是事件处理过程,另一类是通用过程。 3.事件处理过程: Sub 事件处理过程名(参数表) 语句块 End Sub 其中,事件处理过程名必须符合下面的规则:对象名_事件的标准名。 VB 的一些常用对象上的常见事件的标准名有: 文本框 Text:Text_Click、Text_DblClick、Text_KeyPress 命令按钮 Command:Command_Click、Command_DblClick 标签 Label:KeyPress 4.函数:函数是类似于过程的另一个程序模块,不同之处是函数执行完成后,函数的计算结果 被送到函数的调用点上,供程序的后继部分继续进行处理。 自定义函数: Function 函数名(参数表) As 类型名 语句块 End Function 3.循环语句: For 语句

二、例题分析
1.对于对象及其特征的错误理解是()。 (A) 对象都具有一个标识自己以区别其他对象的名字。 (B) 对象都具有自身的属性及其属性值。 (C) 对象一般只用数据表示属性,但不用代码表示行为。 (D) 对象都具有自身的行为(操作) 。
- 122 -

参考答案:C 所考知识点:对象的概念。 2.下列控件中可用于接受用户输入文本,又可用于显示文本的是 (A) Label 控件 (B) TextBox 控件 (C) Timer 控 件 (D) CommandButton 控件 参考答案:B 所考知识点:VB 的界面设计。 3.VB 中保存工程文件的文件扩展名为 (A) vbp (B) frm (C) doc (D) pas 参考答案:A 所考知识点:VB 应用程序的运行和保存 4.VB 语言中,下列各种基本数据类型说明符中表示单精度实型数的是 (A) Integer (B) Boolean (C) Single (D) String 参考答案:C 所考知识点:基本数据类型 5.在 Visual Basic 中,下列属于字符串常量的是 (A) Abs(100) (B) "100" (C) Val("100") (D) 1/2 参考答案:B 所考知识点:数据、标准函数的应用。 解此题需要了解各函数返回值的数据类型,以及数值和字符串的表示方法。题中 Abs()函数求 的是数值的绝对值,返回的是数值;Val()函数是将数字字符串转换为数值;返回值是数值,1/2 本 身就是数值;而数字字符串的表示需要加引号。 6.下列可以作为 Visual Basic 的变量名的是 (A) sqr (B) 2pai (C) cj1 (D) a+b 参考答案:C 所考知识点:变量的命名。 解此题需要了解变量的命名规则。变量名是由字母、数字和下划线等字符的任意字符组成,但 必须以字母开头,另外值得一提的是变量名不能使用 VB 中的保留字。题中 sqr 属于 VB 的保留字; 5pai 不是字母开头;a+b 中“+”号是非法字符。 7.函数 Sqr(X)功能是 (A) 求 X 的算术平方根 (B) 求 X 的绝对值 (C) 求不大于 X 的最大整数 (D) 数值 X 转换成字串 X 参考答案:A 所考知识点:标准函数。 8.下列运算结果中,值最大的是 (A) 3\4 (B) 3/4 (C) 4 mod 3 (D) 3 mod 4 参考答案:D 所考知识点:算术类基本运算符 此题考生需注意“/” 、 “\” 、 “mod”三个有关除的运算符的区别 9.3 mod 2 + 3 \ 2 的执行结果为 (A) -1 (B) 3 (C) 2 (D) 0 参考答案:C 所考知识点:算术类基本运算 10.a=5,b=7,c=-2,d=1 时,下列结果为 False 的是 (A) a + b > c + d And a >= 5 Or Not c > 0 Or d < 0 (B) c + d > a + b And a >= 5 Or Not c > 0 Or d > 0 (C) a + b > c + d And a < 5 Or Not c > 0 Or d < 0 (D) a + d < b + c And a >= 5 Or Not c < 0 Or d < 0 参考答案:D 所考知识点:逻辑类基本运算 11.下列属于正确的 Visual Basic 表达式是 (A) a+|b| (B) 3b-2a (C) 2?b (D) b+5 参考答案:D 所考知识点:算术表达式 题中 a+|b|和 3b-2a 均属数学表达式,在 VB 中表达为 a+abs(b)和 3*b-2*a,而 2?b 中“?”不 属于基本运算符 12.在 Visual Basic 中,"20"+"08"的运算结果是
- 123 -

(A) "28" (B) False (C) "20+08" (D) "2008" 参考答案:D 所考知识点:字符串表达式 “+”运算符两边的操作数如果均为数值型,则进行算术运算;如果均为字符串,则它的作用是 将两个字符串连接起来。题中两边均为字符串,帮结果为 D。值得一提的是, “+”两头的操作数的 数据类型必须是同一类型的,否则会提示错误 13.以下哪项是 Visual Basic 合法数组元素的表示法 (A) X9 (B) X[9] (C) X(I+9) (D) X{9} 参考答案:D 所考知识点:数组 延伸:在 VB 的表达式中,一般只出现小括号,其它括号只能出现在字符串当中。 14.下列属于正确的赋值语句是 (A) a+b=5 (B) a=2+3 (C) 2+3=a (D) a+b=2+3 参考答案:B 所考知识点:赋值语句 赋值语句首先要计算赋值号右边的表达式的值, 然后将此值赋给赋值号左边的变量或对象属性。 题中 A、C、D 的左边均不是变量也不是对象属性,只有 B 符合赋值语句的要求 15.下列语句中正确是 (A) txt3.text=txt1.text+txt2.text (B) Command1.name=cmdOK (C) 12label.Caption=1234 (D) A=InputBox(Hello) 参考答案:A 所考知识点:赋值语句、对象属性 在对象属性的赋值语句当中,一切要注意赋值号两边的数据类型是否一致,且书写语句是否规 范。题中 B、C 选项 Command1.name 与 12label.Caption 均是字符串类型,故“=”均需加引号;而 D 项中 InputBox 的输入值需是字符串,所以 Hello 需加引号;A 选项要理解两点:一是 txt1、txt2、 txt3 均表示文本框的名称,二是“+”代表的是连接符的功能,题中只是将 txt1 和 txt2 中的字符 串连接后赋给 txt3。 16.下列程序段中,可以实现变量 X、Y 的值交换的是 (A) y=x: x=y (B) z=x: y=z: x=y (C) z=x: x=y: y=z (D) z=x: w=y: y=z: x=y 参考答案:C 所考知识点:赋值语句的运用 X,Y 的值的交换需要一个中间值 Z,先将 X 保存在 Z 中,如此 X 的值就可以保存 Y 的值,再将 Z 中的值赋值给 Y,这时候实现了 X 与 Y 的值的交换。 17.有如下程序段: x=5: y=-20 if Not x>0 then x=y-3 Else y=x+3 y 的值是__________ (A) 2 (B) -23 (C) 8 (D) -17 参考答案:C 所考知识点:选择语句 18.循环语句 For i=1 To 10 step 2 的循环次数是 (A) 5 (B) 9 (C) 8 (D) 10 参考答案:A 所考知识点:循环语句的运用 19.有如下程序段: x=2 For I=1 To 3 If x< I Then x = x + I End If Next I 该程序段运行后,x 的值为 (A) 2 (B) 4 (C) 5 (D) 7
- 124 -

参考答案:C 所考知识点:选择语句与循环语句的嵌套运用 20.下列程序段的执行结果为 n=1: s=0 Do while s<20 s=s+n n=n+2 Loop Print n; s (A) 9 16 (B) 11 25 (C) 11 20 参考答案:B 所考知识点:Do 循环语句的运用

(D) 9 24

- 125 -

第三单元 算法的程序实现
一、知识内容
(一)枚举算法及程序实现考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用 所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。 枚举算法的基本思想是根据问题的本身性质,一一列举出该问题所有可能的情况,并根据题目 的条件逐个作出判断,从中挑选出符合条件的解答。 枚举算法属于搜索策略,适用于那些解变量确定的连续值域的问题。设置枚举算法要列举出所 有可能的情况,不能遗漏,也不能重复。 (二)解析算法及程序实现考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用 所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。 解析算法的基本思想是用解析的方法找出表示问题的前提条件与所求结果之间关系的数学表 达式,并通过数学表达式的计算来实现问题的求解。 (三)排序算法及程序实现考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用 所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.冒泡排序 冒泡排序的基本思想是在待排序的数据中,先找到最小(大)的数据将它放到最前面,再从第 二个数据开始,找到第二小(大)的数据将它放到第二个位置,以此类推,直到只剩下最后一个数 据为止。 2.选择排序 选择排序的基本思想是在所有的记录中选出最小(大)的数据,把它与第一个数据交换,然后 在其余的记录中再选出最小(大)的数据与第二个数据交换,依此类推,直至所有数据排序完成。 (四)查找算法及程序实现考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用 所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。 1.顺序查找 顺序查找的基本思想是从第一个数据开始,按数据的顺序逐个将数据与给定的值进行比较,若 某个数据和给定值相等,则查找成功,找到所查数据的位置;反之,查找不成功。 2.对分查找 对分查找的基本思想是在有序的数据列中, 首先将要查找的数据与有序数组内处于中间位置的 数据进行比较,如果两者相等,则查找成功;否则根据数组元素的有序性,就可确定该数据应该在 数组的前半部分还是后半部分继续进行查找;在新确定的范围内,继续按上述方法进行查找,直到 找到要查找的数据,使查找成功,或直到子表不存在,查找不成功。 对分查找的条件是被查找的数据必须是有序的。 (五)递归算法 考试要求:对所列知识要知道其内容及含义,并能用自己的语言或动作进行表达、判断和直接 运用。 函数或过程调用它本身,称为递归。递归算法的基本思想是把规模较大的、较难解决的问题变 成规模较小的、容易解决的同一问题,规模较小的问题又变成规模更小的问题 ,当问题小到一定程 度时,可以直接得出它的解,从而得到原来问题的解。即采用“大事化小、小事化了”的基本思想。 采用递归算法的条件: (1)每一步骤解决问题的方法要一致; (2)有边界条件。

二、例题分析
1.有 5 位运动员 100 米成绩依次为 13.8,12.5,13.0,13.2,13.4, 原始数据 13.8 12.5 13.0 13.2 13.4
- 126 -

第一趟 第二趟 第三趟 第四趟

12.5 12.5 12.5

13.8 13.0 13.0

13.0 13.2 13.2

13.2 13.8 13.4

13.4 13.4 13.8

若采用选择排序算法对其进行从小到大排序,则第二趟的排序结果是 (A) 12.5 13.8 13.2 13.4 13.0 (B) 12.5 13.4 13.2 13.8 13.0 (C) 12.5 13.0 13.8 13.2 13.4 (D) 12.5 13.2 13.8 13.4 13.0 参考答案:C 所考知识点:选择排序 选择排序的基本思想是在所有的记录中选出最小(大)的数据,把它与第一个数据交换,然后 在其余的记录中再选出最小(大)的数据与第二个数据交换,依此类推,直至所有数据排序完成。 此题中要从小到大排序,并且已经实现第一趟排序,故在后面 4 个数据当中找出最小的数据“13.0” 与第 2 个数据“13.8”交换,所以结果选 C 2.数列1,4,7,10,13,??的递推公式为( )。 (A) f(1)=1;f(n)=n+3 (B) f(1)=1;f(n)=n*2-1 (C) f(1)=1;f(n)=n*2+1 (D) f(1)=1;f(n)=f(n-1)+3 参考答案:D 所考知识点:递归算法 由数列可推出规律,从第二项开始,每一项跟前一项的差为 3,故得出递推公式 3.用选择排序法对数据7,6,3,9,2从大到小排序,共需经过多少次数据对调。 (A) 3 (B) 4 (C) 5 (D) 10 参考答案:A 所考知识点:选择排序 此题只能根据选择排序的思路,共需进行四趟比较,具体过程如下: 原始数据 第一趟 第二趟 第三趟 第四趟 7 9 9 9 9 6 6 7 7 7 3 3 3 6 6 9 7 6 3 3 2 2 2 2 2

其中,第四趟不需要进行数据对调,前三趟都进行了对调 4.要从n个数据元素中顺序查找一个元素,最多查找次数是 (A) 1 (B) n (C) n/2 (D) lgn 参考答案:B 所考知识点:顺序查找 此题稍简单,只要稍理解顺序查找的概念,就能选择答案 5.对分查找算法的前提是 (A)被查找数据元素个数是奇数 (B)被查找数据元素个数是偶数 (C)被查找数据元素是有序的 (D)被查找数据元素是无序的 参考答案:C 所考知识点:对分查找的概念 此题稍简单,只要稍理解对分查找的概念,就能选择答案 6.用对分查找法从数列3,6,7,10,12,16,25,30,75中找到数据10的最少查找次数是 (A) 2 (B) 3 (C) 4 (D) 7 参考答案:B 所考知识点:对分查找 用对分查找的方法需分别对上列数据进行编号,共 9 个数,依次序号为 1~9。按照对分查找的 思路,依次查找的数据为 12、6、10,所以查找次数为 3 次。

- 127 -

强化练习(综合题)
1. 有如下 Visual Basic 程序段: a="How" b=" are you" c=a+b 该程序段运行后,变量 c 的值是 参考答案:How are you 本题是读程序写结果题,属于基础题,是主要是考核字符串数据类型中“+”(字符串连接)含 义的理解 2.有如下程序段: x=3 y=4 z=5 If x+y<=z Or y+z<=x Or x+z<=y then a="False" Else a="True" 该程序段运行后,a 的值是 参考答案: "True" 本题是读程序写结果题,属于基础题,主要是考核分支 If 语句以及逻辑类运算符“or”的理解 3.有如下 VB 程序段: Dim n As Integer Dim m As Integer m=0 For n = 1 To 15 m = m + n mod 5 Next n 该程序段运行后,变量 m 的值是 参考答案:30 本题是基础题本题是读程序写结果题, 属于基础题, 主要是考核循环 For 语句以及运算符 “Mod” 的理解 4.有如下 VB 程序段: n=3 s=3;n=6 s=9;n=9 s=18;n=12 s=30;n=15 s=45;n=18 s= n=0 s=0 Do While n <=30 n = n+3 s=s+n Loop 执行该程序段后,变量 s 的值是 参考答案:198 本题是读程序写结果题,属于基础题,主要是考核循环 Do while 语句的理解,尤其要注意循环 的终止条件

- 128 -

5.下面程序用来计算: Private Sub Command1_Click() Dim x, y As Single x = Val(Text1.Text) If x>=0 (1) Then If x >= 7 Then y = Sqr(x ) Else y = x ^ 2 Else If x < -10 Then y = Abs(x) Else y = 3 x + 2(2) End If Text2.Text = Str(y) End Sub 参考答案:(1) x>0 (2)y=3*x +2 本题是改错题,属于基础题,主要考核算术表达式以及分支结构的条件语句 6.下面程序的功能是:计算表达式 2+4+6+…+2n 的值,在文本框 Text1 中输入 n 的值,结果在文本 框 Text2 中输出。则程序中划线处的语句应更正为 (1) (2) Private Sub Command1_Click() Dim sum As Long, , i As Integer , n As Integer sum = 0 n = Val(Text1.Text) For I = 2 To 2 * n Step 2 sum = sum + 2 *i (1) Next I Text2.Text=Val (sum) (2) End Sub 参考答案:(1)sum=sum+i (2) Text2.Text=Str (sum) 本题是改错题,属于基础题,只要是考核 FOR 语句的步长 step 的作用,以及 Val 函数和 Str 函 数作用的区别 7.下面程序的功能是:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一(鸡雏三三买之)。百 钱买百鸡,问鸡翁、母、雏各几何?则程序中划线处的语句应更正为 (1) (2) Private Sub Form_Click() Dim x, y, z As Integer For x = 0 To 20 For y = 0 To 33 z = 100 - x - y If 5 * x + 3 * y + z \ 3 = 100 or z Mod 3=0 (1) Then Print x; y; z End If Next Z Next x
- 129 -

End Sub 参考答案:(1) Next Y (2)5 * x + 3 * y + z \ 3 = 100 or z Mod 3=0 本题是改错题,属于基础题,只要是考核 FOR 语句的结构,以及逻辑类运算符“or”和“and” 的不同含义 8.下面程序的功能是:求 的值,直至最后一项的值≤0.0001。则程序中划线

处的语句应更正为 (1) (2) Private Sub Form_Click() N = 1: Sum = 0 (1) Do N=N+2 Term = 1 / (N ^ 2) Sum = Sum + Term Loop Until term>=0.0001 (2) Print "运算结果为:"; Sum Print "最后一项的值为:"; Term End Sub 参考答案:(1)sum=1 (2) term<=0.0001 本题是改错题,属于稍难题,只要是考核 Do Until 语句的理解,尤其注意在循环中累加器的初 值设置以及循环终止条件,不要产生死循环。 9. 完成程序中的空格,打印显示如图片所示的九九乘法表:

解决上述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达 式是 (1) (2) Private Sub Form_Load() Form1.Show For a = 1 To 9 For = 1 To (1) Print a; "× "; b; "="; (2) Next b Print Next a End Sub 参考答案:(1) 30-man-woman (2)s=500 或者 500=s 本题是程序填空题,属于容易题,主要考核解析算法的程序实现。 10. 下面是一个元旦文艺会演评分程序。10 位评委,除去一个最高分和一个最低分,计算平均分 (评满分为 10 分)。 解决上述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达 式是
- 130 -

(1) (2) Max=0:Min=10 For I=1 to 10 N=Val(InputBox("请输入分数")) If (1) Then Max=N If N < Min Then Min = N S=S+N Next I (2) P=S/8 Print "最高分";Max;"最低分";Min;"最后得分";P 参考答案:(1) N>Max (2) S=S-Max-Min 本题是程序填空题,属于容易题,主要考核解析算法的程序实现。 11. 有 30 个人,其中有男人、女人和小孩。他们在一家饭馆里花去 500 元。已知,每个男人花 30 元,每个女人花 20 元,每个小孩花 10 元。问男人、女人、小孩各为多少人?解决上述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) Sub command1_click() Dim man, woman, child, s As Integer For man = 1 To 15 For woman = 1 To 23 child = (1) s = 30 * man + 20 * woman + 10 * child If (2) Then list1.AddItem Str(man) + Str(woman) + Str(child) End If Next woman Next man End Sub 参考答案:(1) 30-man-woman (2)s=500 或者 500=s 本题是程序填空题,属于稍难题,主要考核枚举算法的程序实现。 12. 如果一个三位数等于它的每个数字的立方和,则此数称为“水仙花”数。如: 3 3 3 153=1 +5 +3 故 153 是水仙花数。下面程序用于求出 100~999 之间的全部水仙花数解决上 述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) sub command1_click() for m=100 to 999 a=int(m/100) b=int((m-100*a)/10) c=m-100*a-10*b n= if then list1.additem str(m) next m end sub 参考答案:(1) a*a*a+b*b*b+c*c*c (2) m=n 本题是程序填空题,属于稍难题,主要考核枚举算法的程序实现。
- 131 -

13.如下程序段的功能是:随机产生 8 个 1-100 之间的正整数,按升序将 10 个数据排序输出。 为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) (3) Const n=8 Dim a(1 to n) As Integer Dim I , j , t , k as integer For i = 1 To n (1) Next i For i = 1 To n-1 For j =(2) To n If (3) Then t = d(i): d(i) = d(k): d(k) = t End If Next j Next I 参考答案:(1) a(i) = Int(100 * Rnd + 1)或 a(I) = Int(100 * Rnd() + 1) (2)I+1 (3)a(i) > a(j)或 a(i) > = a(j) 本题是程序填空题,属于稍难题,主要考核冒泡排序的程序实现,同时也考核函数 Rnd 和 Int 的正确使用。 14. 下列程序的功能是:在一个有序的序列中查找数值 50,同时统计查找的次数并显示查找次数。 为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) (3) Dim a(1 to 8) As Integer(定义在通用里,数组元素通过另一事件产生) Private Sub Command1_Click() Dim m As Integer, I As Integer, j As Integer, x As Integer, total As Integer Dim f As Boolean f = False: x = 30: i = 1: j = 8: total = 0 Do While (1) And (f = False) total = total + 1 m = (2)) If a(m) = x hen f = True Else If x < a(m) Then j=m-1 Else i=m+1 End If End If Loop
- 132 -

If f = True Then Label1.Caption = (3) Else Label1.Caption = "找不到该数值" End If End Sub 参考答案:(1) i<=j (2)Fix(I+j)/2+1 (3)a(i) > a(j)或 a(i) > = a(j) 本题是程序填空题,属于稍难题,主要考核对分查找的程序实现。 15.下列程序的功能是:某班级 45 名学生,每位学生中文姓名均不相同,并且都有一个英文名。下 面程序的功能是根据学生的中文姓名查找相应的英文名,其中学号存储在数组 sno 中,英文名存储 在数组 sname 中,中文姓名存储在数组 ch 中。在文本框 text1 中输入要查找的中文姓名,单击"开始 查找"按钮,如果查找成功,则在文本框 Text2 中输出该学生的学号、中文姓名和英文名,否则在文 本框 Text2 中输出"查无此人!"。 为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) (3) Private Sub Command1_Click() Dim key As String, i As Integer Dim n As Integer, found As Boolean found = False n=0:i=1 (1) Do While i <= 45 And Not found If ch(i) = key Then n = i: (2) i=i+1 Loop If (3) Then Text2.Text = "查无此人!" Else Text2.Text = Str(sno(n)) + "号:" + ch(n) + "的英文名是" + sname(n) End If End Sub 参考答案:(1) key=text1.text (2)found=true (3)not found 本题是程序填空题,属于稍难题,主要考核顺序查找的程序实现。 16.下列程序的功能是:求两个正整数的最大公约数。求两个正整数的最大公约数可以采用辗转相 除法求解。在文本框 text1、text2 中获取两个数据 m、n,将结果显示在文本框 text3 上。 以下是辗转相除法的算法:分别用 m , n , r 表示被除数、除数、余数 ①求 m/n 的余数 ②若 r=0。则 n 为最大公约数。若 r<>0,执行第 3 步 ③将 n 的值放在 m 中,将 r 的值放在 n 中。 ④返回重新执行第①步 为了实现这一目标,在划线处,填入合适的语句或表达式是
- 133 -

(1) (2) (3) Private Sub Command1_Click() Dim m , n , i As Integer m=Val(text1.text) n=Val(text2.text) (1) Do While r<>0 m=n (2) r=m mod n Loop Text3.text= (3) End Sub 参考答案:(1) r=m mod n (2)n=r (3)str(r) 本题是程序填空题,属于稍难题,主要考核实现给出算法的相关程序的能力。 17.已知四位数 3025 有一个特殊的性质:她的前两位数字 30 和后两位数字 25 的和是 55,而 55 的 平方和刚好等于该数(552=3025)。下面程序求具有这种性质的所有四位数。 其中,上述界面中“开始处理”按钮的名称是“Command1”,布尔型函数 special(x)作用判断 x 是否具有这种性质的四位数,若 x 是具有这种性质的四位数,其值为 True,否则为 False。 请在下列程序代码的基础上按照要求设计该程序。 Dim n As Integer, a As Integer Function special(x as integer) As Boolean End Function Private Sub Command1_Click() For a = 1000 To 9999 If special(a) Then List1.AddItem (Str(a)) Next a End Sub 操作要求: (1)完善程序中的 Function special (x)部分

(2)在子程序 Private Sub Command1_Click()中,主要采用的算法是:__________。 参考答案:(1) Dim a, b As Integer a = x Mod 100 b = x \ 100 a=a+b If a ^ 2 = x Then special = True Else specail = flase (2)枚举 本题是补充一段程序,属于难题,主要考核自定义函数的能力。 18.下面程序求 2 到 1000 之间的平方数对,在文本框 text1 中输入的自然数 N,找出所有小于 N 且
- 134 -

满足下述条件的数对 (X, Y) : X+Y 和 X-Y 都是完全平方数。 例如: 当 X=10, Y=6 时, 有 10+6=16=42 10-6 =4=22 其中,上述界面中“开始处理”按钮的名称是 “Command1”,布尔型函数 numbert(x,y)作用判断 x,y 是否 为平方数对, 若 x,y 是平方数对, 其值为 True, 否则为 False。 请在下列程序代码的基础上按照要求设计该程序。 Dim n As Integer, x, y As Integer Function number(x, y As Integer) As Boolean End Function Private Sub Command1_Click() For x = 2 To 1000 For y = x + 1 To 1000 If number(x, y) Then List1.AddItem (Str(x) + "与" + Str(y)) Next y Next x End Sub 操作要求: (1)完善程序中的 Function number(x,y)部分

(2)在子程序 Private Sub Command1_Click()中,主要采用的算法是:__________。 参考答案:(1)Dim a, b As Integer a=x+y b=y-x If Sqr(a) = Int(Sqr(a)) And Sqr(b) = Int(Sqr(b)) Then number = True Else number = False (2)枚举 本题是补充一段程序,属于难题,主要考核自定义函数的能力。 19.下面程序求 2 到 1000 之间的亲密数对,找出所有小于 1000 且满足下述条件的数对(A,B): 如果 A 的约数之和等于 B,B 的约数之和等于 A,A 和 B 称为亲密数对。如 220 的所有约数(即能被它整除)为: 1 、 2 、 4 、 5 、 10 、 11 、 20 、 22 、 44 、 55 、 110 , 而 1+2+4+5+10+11+20+22+44+55+110=284; 284 的所有 约数为:1、2、4、71、142,而 1+2+4+71+142=220。所 以 220 和 284 就是亲密数对 其中,上述界面中“开始处理”按钮的名称是 “Command1”,布尔型函数 numbert(x,y)作用判断 x,y 是 否为亲密数对,若 x,y 是亲密数对,其值为 True,否则为 False。 请在下列程序代码的基础上按照要求设计该程序。 Dim n As Integer, x, y As Integer Function number(x, y As Integer) As Boolean End Function
- 135 -

Private Sub Command1_Click() For x = 2 To 1000 For y = x + 1 To 1000 If number(x, y) Then List1.AddItem (Str(x) + "" + Str(y)) Next y Next x End Sub 操作要求: (1)完善程序中的 Function numbertwo(x,y)部分

(2)在子程序 Private Sub Command1_Click()中,主要采用的算法是:__________。 参考答案:(1) Dim a, b, i As Integer a = 1: b = 1 For i = 2 To x \ 2 If x Mod i = 0 Then a = a + i Next i For i = 2 To y \ 2 If y Mod i = 0 Then b = b + i Next i If a = y And b = x Then number = True Else number = False (2)枚举 本题是补充一段程序,属于难题,主要考核自定义函数的能力。 20.数学黑洞数 6174。已知:一个任意的四位正整数(四位数字完全相同的除外)。将数字重新组 合成一个最大的数和最小的数相减,重复这个过程,最多七步,必得 6174。即 7614-1467=6174。从 文本框 text1 中输入一个任意的数字不完全相同的四位正整数,在文本框 text2 中输出掉进黑洞的步 数。 Private Sub Command1_Click() Dim a(1 To 4) As Integer Dim x, y, i, j As Integer x = Val(Text1.Text) st = 0 Do While x <> 6174 For i = 1 To 4 a(i) = x Mod 10 x = x \ 10 Next i

x = a(1) * 1000 + a(2) * 100 + a(3) * 10 + a(4) y = a(1) + a(2) * 10 + a(3) * 100 + a(4) * 1000 x=x-y st = st + 1 Loop
- 136 -

Text2.Text = Str(st) End Sub 操作要求: (1)完善程序中虚线框部分。

(2)该程序中,Do while 语句循环次数可以参照哪个变量的值?_______________ 参考答案:(1) For i = 1 To 3 For j = i + 1 To 4 If a(i) < a(j) Then y = a(i) a(i) = a(j) a(j) = y End If Next j Next i (2)st 本题是补充一段程序,属于难题,主要考核排序设计的能力。

- 137 -

模拟练习题(第 1 套)
一、选择题 1.文本框控件和标签控件的区别 (A) 标签框能输入,文本框不能输入 (B) 两者都能输入 (C) 标签框不能输入,文本框能输入 (D) 两者都不能显示 2.下列关于添加“控件”的方法正确的是 (A) 单击控件图标,将指针移到窗体上,双击鼠标 (B) 双击工具箱中的控件,即在窗体上出现该控件 (C) 单击工具箱中的控件,将指针移到窗体上,再单击 (D) 用鼠标左键拖动工具箱中的某控件到窗体的适当位置 3.在 Visual Basic 工程设计中,要在标签对象 Start 上显示文字“欢迎使用本系统!” , 则下列属性 中应改变的属性是 (A) Caption (B) Width (C) Font (D) Height 4.单选钮控件数组中用来区分不同对象的属性是 (A) Caption (B) Name (C) Index (D) Font 5.InputBox 函数值的数据类型 (A) Integer (B) String (C) Boolean (D) Single 6.下列属于 Visual Basic 字符串常量的是 (A) 1/2 (B) Int(3.4) (C) "1/2" (D) 1+2 7.在 Visual Basic 中,表达式 Int(-4.5)的值是 (A) -5 (B) 4 (C) 4.5 (D) 5 8.设 a=3,b=4,下列运算结果中,值最大的是 (A) Sqr(b/a) (B) b\a (C) Int(b/a) (D) a Mod b 9.银行给用户计算利息时,结果中会产生很多位小数,但在支付时,是以“元”为单位,按“分” 结算的, 即结果保留二位小数, 并对第三位小数进行四舍五入。 假设结算的利息是 x 元, 在 Visual Basic 中,上述算术问题的表达式应是 (A) Int(x*10+0.5)/100 (B) Int(x*100+0.5)/100 (C) Int(x*100)/10 (D) Int(x*100+0.5)/10 10.在 Visual Basic 中,已知 a、x、y 均是正整数,当逻辑表达式(a Mod x = 0) And (a Mod y = 0)为 真时,则表示 (A) a 是 x 的倍数,但不是 y 的倍数 (B) a 既是 x 的倍数,又是 y 的倍数 (C) a 是 x 的倍数或者是 y 的倍数 (D) a 既不是 x 的倍数,也不是 y 的倍数 11.有如下程序段: x=5: y=6 p=Not(x+y=11) 该程序段运行后,P 的值是____________。 (A) 1 (B) 0 (C) True (D) False 12.下列程序段的执行结果为 a=0: b=1 Do b=b+1 b=2 a=2;b=3 a=5;b=4 a=9;b=5 a=14 a=a+b Loop While a<10 Print a; b
- 138 -

(A) 10 5 (B) 14 5 (C) 0 13.计算圆周长的算法描述如下: ①输入圆半径 r; ②计算圆周长 a(计算公式为 a=2πr); ③输出结果; ④结束。 上述算法属于 (A) 枚举算法 (B) 排序算法 (C) 递归算法

1

(D) 10 30

(D) 解析算法

二、综合题 1.有如下 Visual Basic 程序段: a="Good" b="Bye" c=a+b 该程序段运行后,变量 c 的值是 Goodbye 2.下面程序的功能是:计算表达式 1+3+5+…+(2n-1)的值,在文本框 Text1 中输入 n 的值,结果在 文本框 Text2 中输出。则程序中划线处的语句应更正为 (1) (2) Private Sub Command1_Click() Dim sum As Long, i As Integer, n As Integer sum = 0 n = Val(Text1.Text) For I = 1 To 2 * n - 1 Step 2 sum = sum + 2 (1) Next I Text2.Text=Val (sum) (2) End Sub 3.有一个有趣的兔子繁殖问题:第 1 个月买来 1 哀怜对小兔子,两个月后,这对兔子就会生 1 对小 兔子,以后每个月都会生一对小兔子;而生下来的这对小兔子,两个月后又会开始生 1 对小兔子。 依次类推,试问:几个月后,兔子将超过 50 对? 分析问题得出月份与兔子对数的关系如下表: 月份: 兔子: 1 1 2 1 3 2 4 3 5 5 6 8 7 13 8 21 9 35 ? ?

由表知兔子繁殖规律:从第 3 个月开始,以后每月的兔子对数都是它相邻的前面 2 个月的兔子 对数之和。 解决上述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达 式是 (1) (2) Private Sub Command1_Click() Dim a(1 To 100) As Integer, n As Integer a(1) = 1 a(2) = 1 a(3) = a(2) + a(1) n=3
- 139 -

Do While a(n) <= 50 n= (1) a(n) = (2) Loop Text1.Text = Str(a(n)) End Sub 4.如下程序段的功能是:随机产生 10 个 1-100 之间的正整数,按升序将 10 个数据排序输出。 为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) (3) Const n=10 Dim i , j , t , k as Integer For i = 1 To n (1) Next i For i = 1 To n-1 k=i For j = i + 1 To n If (2) Then k = j Next j If (3) Then t = d(i): d(i) = d(k): d(k) = t End If Next i 5.下列程序的功能是把输入的自然数分解 为 3 个互不相同的质数(三个质数的和等于 输入的自然数) ,并把分解产生的质数按升 序顺序显示在左边的列表框中(如右图所 示) 。例如,输入 20,那么在列表框中会显 示下列数据: 2 5 13 2 7 11 其中,上述界面中“开始处理”按钮的 名称是“Command1” ,函数 f(x)的功能是判 断 x 是否为质数,如果是质数则返回值为 True,否则返回 False。 请在下列程序代码的基础上按照要求设计该程序。 Dim n As Integer, a1 As Integer, a2 As Integer, a3 As Integer Function f(x) As Boolean End Function Private Sub Command1_Click() n = Val(Text1.Text) For a1 = 2 To n
- 140 -

For a2 = a1 To n For a3 = a2 To n If (a1 + a2 + a3 = n) And f(a1) And f(a2) And f(a3) Then List1.AddItem (Str(a1) + " " + Str(a2) + " " + Str(a3)) End If Next a3 Next a2 Next a1 End Sub 操作要求: (1)完善程序中的 Function f(x)部分 (2)在子程序 Private Sub Command1_Click()中,主要采用的算法是:__________。

- 141 -

模拟练习题(第 2 套)
一、选择题 1.在 Visual Basic 工程设计中,双击窗体中的对象后,出现的是 (A) 工程窗口 (B) 工具箱 (C) 代码窗口 (D) 属性窗口 2.如果要把某个图片作为程序窗体的背景,下列方法最合理的是 (A) 直接修改窗体的 Picture 属性实现插入图片。 (B) 在窗体中插入 Image 控件,再修改该控件的 Picture 属性插入图片。 (C) 在窗体中插入 PictureBox 控件,再修改该控件的 Picture 属性插入图片。 (D) 选择“插入”→“图片”菜单命令实现。 3.在 Visual Basic 代码窗口中,语句 Student.Text="宋知国"中的 Text 是 (A) 属性名 (B) 属性值 (C) 对象名 (D) 窗口名 4.命令按钮中设置控件是否可用的属性为 (A) Enabled (B) Visible (C) Font (D) Caption 5.在 Visual Basic 中,表示字符串型的数据类型名是 (A) Long (B) Integer (C) String (D) Boolean 6.下列可以作为 Visual Basic 的变量名是 (A) Man_1 (B) A*123 (C) A>B (D) A&B 7.Visual Basic 函数 Fix(x)的作用是截掉数据的小数部分。已知 a 是实数,当关系表达式 Fix(a)=a 为 真时,则表示 a 是 (A) 负数 (B) 正数 (C) 整数 (D) 小数 8.随机产生一个两位正整数的 VB 表达式是 (A) 1+Int(100*Rnd) (B) 10+Int(90*Rnd) (C) Int(100*Rnd) (D) Int(90*Rnd) 9.圆周长的计算公式为 L=2πa,其中 a 为圆半径。在 Visual Basic 中,能正确表示 2πa 的表达式是 (A) 2πa (B) 2*π*a (C) 2?π?a (D) 2*3.1416*a 10.设 a=2,b=3,c=4,d=5,表达式 a>b AND c<=d OR 2*a>c 的值是 (A) True (B) False (C) -1 (D) 1 11.有如下程序段: a=Sqr(3) b=Sqr(2) c=a>b 该程序段运行后,c 的值为 (A) -1 (B) 0 (C) False (D) True 12.下面的程序段用于计算 s=1*2+3*4+5*6+7*8+9*10,则在程序的划线处应该填上 s=0 for k=1 to 10 Step_______ s=s+k*(k+1) Next k (A) 0 (B) 1 (C) 2 (D) k 13.只能被 1 或本身整除的大于 1 的自然数称为素数。判断大于 1 的某自然数 m 是不是素数的算法 基本思想是:把 m 作为被除数,将 2 到 m-1 中的自然数作为除数,逐一进行相除,如果都除不尽, m 就是素数,否则 m 就不是素数。这种判定素数的算法主要属于 (A) 枚举算法 (B) 解析算法 (C) 递归算法 (D) 排序算法 二、综合题
- 142 -

1.有如下程序段: Dim x, y, z As Integer x = 12 y = 32 x = x Mod 10 y=y\8 z=x+y 该程序段运行后,z 的值为 2.下面程序的功能是:计算表达式 1×2×3×……×10 的值,并在文本框 Text1 中输出表达式的值。为 了实现这一功能,则程序中划线处的语句应更正为 (1) (2) Private Sub Command1_Click() Dim I As Integer, t As Long t=0 (1) For i = 1 To 10 t=t*i Next i Text1.caption = Str( t ) (2) End Sub 3.会员积分的计算。超市会根据会员顾客的一次性消费总额给予一定的积分,会员可在年终依据积 分换得相应的商品。每次消费时,计算机会自动累加所购商品的总价并折算成积分。 超市折算积分的规则是这样的:每满 100 元(不到 150 元)消费就给 1 积分,如果总消费额达 150 元及以上,那么每 40 元消费可以获得 0.5 积分。 下列程序可根据已经输入的所有已购买商品的价格(已经保存在数组 a 中) ,计算总消费并折算 成积分,最后显示当前一次性总消费额(显示在标签 Label2 中)以及所获得的积分总值(显示在标 签 Label4 中) 。 解决上述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达 式是 (1) (2) Const n = 10 Dim a(n) As Single Dim i As Integer Dim ans As Single, total As Single Private Sub Command1_Click() total = 0: ans = 0 For i = 1 To n (1) Next i If total < 150 and total>=100 Then (2) Else ans = Fix(total / 40) / 2 End If Label2.Caption = Str(total)
- 143 -

Label2.Caption = Str(ans) End Sub 4.下列程序的功能是在一个有序的序列中查找数值 30,同时统计查找的次数并显示查找次数。 为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) (3) Dim a(1 to 6) As Integer Private Sub Command1_Click() Dim m As Integer, I As Integer, j As Integer, x As Integer, total As Integer Dim f As Boolean f = False: x = 30: i = 1: j = 6: total = 0 Do While (1) And f = False total = total + 1 m= (2) If a(m) = x Then f = True Else If x < a(m) Then j=m-1 Else i=m+1 End If End If Loop If f = True Then Label1.Caption = (3) Else Label1.Caption = "找不到该数值" End If End Sub 5.下面程序是计算如图所示的面积。从图中可以看出, 五边形的面积是三个三角形面积之和。程序中函数 area (a,b,c)的功能就是已知三角形三边 a、b、c,返回三角形 面积 area。 请在下列程序代码的基础上按照要求设计该程序。 Dim L(1 to 7) As single, s As single, I as integer Function area(a, b, c As single) As single End Function Private Sub Form_Click() For i = 1 To 7 L(i) = Val(InputBox("input:")) Next i
- 144 -

S = area(L(1), L(5), L(6) )+ area(L(2), L(6), L(7))+ area(L(3), L(4), L(7) ) Text1.Text = Str(s) End Sub 操作要求: (1)完善程序中的 Function area(a , b , c)部分 (2)在子程序 Private Sub Form_Click ()中,主要采用的算法是:__________。

- 145 -

模拟练习题(第 3 套)
一、选择题 1.以下选项中,不是 Visual Basic 控件的是() (A) 文本框 (B) 定时器 (C) 窗体 (D) 命令按钮 2.下列关于 CommandButton 控件的叙述正确的是 (A) CommandButton 控件的 Caption 属性决定按钮上显示的内容 (B) 单击 VB 应用程序中的按钮,则系统激活按钮控件对应的 Change 事件 (C) CommandButton 控件的 name 属性决定按钮上显示的内容 (D) 以上都不对 3.在 Visual Basic 代码窗口中,语句 Book1.Text="Windows 操作系统"中的 Book1 是 (A) 属性名 (B) 属性值 (C) 窗口名 (D) 对象名 4.激发事件处理过程 Command1_Click()的事件是 (A) click (B) Change (C) Dblclick (D) KeyPress 5.在 Visual Basic 中,变量 a 中的数值是整数而且可能在-32768~32767 范围之外,则变量 a 的数据 类型应定义为 (A) 日期型 (B) 整数型 (C) 长整数型 (D) 逻辑型 6.下列可以作为 Visual Basic 的变量名的是 (A) _abc (B) A123 (C) 4ABC (D) A12%3 7.表达式 Int(Sqr(12))的值是 (A) 1 (B) 2 (C) 3 (D) 4 8.下列表示[-50,49]区间内的随机整数的式子正确的是 (A) Int(Rnd*49-50) (B) Int(Rnd*50+49) (C) Int(Rnd*100-50) (D) Int(Rnd*99+49) 9.数学表达式|x-31|对应的 VB 表达式是 (A) Sqr(x–31) (B) Val(x–31) (C) Abs(x–31) (D)Str(x–31) 10.对于 Visual Basic 语句 If i=1 Then j=1,下列说法正确的是 (A) i=1 和 j=1 均为赋值语句 (B) i=1 和 j=1 均为关系表达式 (C) i=1 为关系表达式,j=1 为赋值语句 (D) i=1 为赋值语句,j=1 为关系表达式 11.有如下程序段: Dim a as string Dim b as string Dim c as string a="456" b="123" c=val(a+b) 该程序段运行后,c 的值为 (A) 579 (B) 123 (C) 456123 (D) 123456 12.有如下 Visual Basic 程序段: s=0 For k = 1 To 4 If 8/k >=3 Then s=s+k Next 该程序段运行后,变量 s 的值是 (A) 1 (B) 2 (C) 3 (D) 10 13.把问题所有可能的解一一地罗列出来,并对每一个可能的解进行判断,从中挑选出符合条件的
- 146 -

解答,这种思想的算法属于 (A) 排序算法 (B) 对分查找

(C) 解析算法

(D) 枚举算法

二、综合题 1.有如下 VB 程序段: n = 123 s=0 Do While n > 1 s=s+n\5 n=n\5 Loop 执行该程序段后,变量 s 的值是 2.下面 Visual Basic 程序的功能是:计算表达式 1+1/3+1/5+…+1/99 的值,并在文本框 Text1 中输出 该表达式的值。为了实现这一功能,则程序中划线处的语句应更正为 (1) (2) Private Sub Command1_Click() Dim sum As Single, i As Integer sum = 0 For i = 1 To 99 Step 2 sum = sum + i (1) Next i Text2.Text = Str(sum) (2) End Sub 3.我国是人口大国,2007 年初,我国人口总数已达 13 亿 5 千万。假设我国年人口增长率为 0.5%, 则从 2007 年起多少年后我国人口就会达到或超过 15 亿? 解决上述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达 式是 (1) (2) Private Sub Command1_click() Dim n As Integer, r As Single Dim p As Double r = 0.5/100 p = 13.5 n=0 Do While p < 15 (1) n=n+1 (2) Text1.Text = Str(n) End Sub 4.下列程序段实现以下功能,求 1 + (1 + 2) + (1 + 2 + 3) + … + (1 + 2 + 3 + n),n 由用户输入。 为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2)
- 147 -

(3) Private Sub Form_Click() n = Val(Text1.Text) Sum = 0 For i = 1 To n Sum1 = 0 For j = 1 To (1) (2) Next j (3) Next i Text2.Text = Str(Sum) End Sub 5.下面程序求 1 到 n 之间的完全数。分析:所谓完全数是指小于该数本身的因子之和等于它本身, 如 6=1+2+3,6 即是一个完全数。 其中,上述界面中“开始处理”按钮的名称是“Command1” ,布尔型函数 perfect(x)作用判断 x 是否为完全数,若 x 是完全数,其值为 True,否则为 False。 请在下列程序代码的基础上按照要求设计该程序。 Dim n As Integer, a As Integer Function perfect (x as integer) As Boolean End Function Private Sub Command1_Click() n = Val(Text1.Text) For a = 1 To n If perfect (a) Then List1.AddItem (Str(a)) Next a End Sub 操作要求: (1)完善程序中的 Function perfect (x)部分 (2)在子程序 Private Sub Command1_Click()中,主要采用的算法是:__________。

- 148 -

模拟练习题(第 4 套)
一、选择题 1.控件工具箱中的工具 是。

(A) 文件列表 (B) 单选按钮 (C) 图片框 (D) 标签框 2.能被对象所识别的动作是 (A) 事件 (B) 方法 (C) 属性 (D) 过程 3.在 Visual Basic 代码窗口中,语句 Command1.Caption="运行完成!"中的 Command1 是 (A) 属性名 (B) 属性值 (C) 窗口名 (D) 对象名 4.若要使某文本框获得控制焦点,可使用的方法是 (A) LostFocus (B) SetFocus (C) PointD (D) value 5.在 Visual Basic 中,语句 Dim x As String 的作用是将变量 x 定义为 (A) 字符串型 (B) 整数型 (C) 逻辑型 (D) 日期型 6.在 Visual Basic 中,要定义一个一维数组 a,用于存储 100 个整数型数值,则正确的数组定义语 句是 (A) Dim a100 As Integer (B) Dim a(1-100) As Integer (C) Dim a(1, 100) As Integer (D) Dim a(1 To 100) As Integer 7.表达式 Abs(-3.6)*Sqr(100)的值是 (A) -360 (B) 360 (C) -36 (D) 36 8.随机数因子 Rnd 的取值范围是下列的哪个? (A) [0,1]区间的实数 (B) (0,1)区间的实数 (C) (-1,1)区间的实数 (D) [-1,1]区间的实数 9.能完全正确表示“year 是闰年”的逻辑表达式是 (A) year mod 4 = 0 (B) year mod 400 = 0 or year mod 4 = 0 and year mod 100 <> 0 (C) year mod 400 = 0 (D) year mod 400 = 0 and year mod 4 = 0 or year mod 100 <> 0 10.将文本框 Text1 内输入的数据送到数值型变量 n 中,则应使用的语句是 (A) n=text1 (B) n=text1.text (C) n=val(text1.name) (D) n=val(text1.text) 11.下面程序执行的结果是 Private Sub Form_Click() A="123":B="456" C=Val(A)+Val(B) Print C\100 End Sub (A) 123 (B) 3 (C) 5 (D) 579 12.有如下程序段: e=0: f=1 For i=1 To 3 e=e+f f=f+e Next i 该程序运行后,f 的值是 (A) 12 (B) 8 (C) 13 (D) 15 13.图书管理系统对图书管理是按图书的序号从小到大进行管理的,若要查找一本已知序号的书, 则能快速的查找算法是
- 149 -

(A) 枚举算法

(B) 解析算法

(C) 对分查找

(D) 冒泡排序

二、综合题 1.有如下 VB 程序段: I=1: X=0 Do While I<=20 If I Mod 2 = 1 Then X=X+1 Else X=X-1 End if I=I+1 Loop Print I 执行该程序段的结果是 2.哥哥考弟弟一道数学题,题目是: “有一筐鸡蛋,2 个 2 个数多 1 个,3 个 3 个数多 2 个,4 个 4 个数多 3 个,5 个 5 个数正好数完,问这筐鸡蛋最少是几个?” 为解决此问题,弟弟编了一个如下 Visual Basic 程序,其中 s 表示鸡蛋数,t 用于控制循环。为 了实现这一功能,则程序中划线处的语句应更正为 (1) (2) Private Sub Command1_Click() Dim s As Integer, t As Boolean s=5 t = True (1) Do While Not t s=s+1 t = (s Mod 2 = 1) And (s Mod 3 = 2) And (s Mod 4 = 3) And (s Mod 5 <> 0) (2) Loop Text1.Text = Str(s) End Sub 3.某人走楼梯,方法是每步跨 1 个台阶或跨 2 个台阶。现要计算有 20 个台阶的楼梯,共有多少种 不同的走法? 经分析,台阶数与走法种数如下表: 台阶 数: 走法 数: 1 1 2 2 3 3 4 5 5 8 6 13 7 21 8 35 9 56 ? ?

解决上述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达 式是 (1) (2) Private Sub Command1_Click() Dim a As Long, b As Long, c As Long, n As Integer a=1
- 150 -

b=2 c=a+b For n = 4 To (1) a=b b=c (2) Next n Text1.Text = Str(c) End Sub 4.下列程序的功能是将 0 到 255 之间的十进制整数转换为二进制数的表示形式。 为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) (3) Private Sub Command1_Click() Dim a , i As Integer Dim s As string Dim c(1 to 8) As Integer a = Val(Text1.Text) If (1) Then Text2.Text = “输入数据错误,请重新输入!” Else For i = 1 to 8 (2) (3) s = str ( c (i ) ) + s Next i Text2.Text =s End If End Sub 5.利用 Function 过程计算阶乘,求组 合数。设计界面如图 1 所示。运行时, OLE1 在文本框 Text1 和 Text2 中输入 n 和 m 值,单击“=”按钮计算组合数,结 Text1 果显示于文本框 Text3 中。 请在下列程序代码的基础上按照 要求设计该程序。 Text2 Private Sub Command1_Click() Dim m As Integer, n As Integer, c As Double m = Val(Text2.Text) n = Val(Text1.Text) c = fact(m) / (fact(n) * fact(m - n)) Text3.Text = Str(c) End Sub (1)

Command1 Text3

- 151 -

Function fact(n As Integer) As Double End Function 操作要求: (1)完善程序中的 Function fac(x)部分 (2)如果在 text1 中输入 5,text2 中输入 8,点击 command1 后 text3 中的内容是

- 152 -

模拟练习题(第 5 套)
一、选择题 1.结束当前程序的语句是。 (A)Quit (B) Exit (C) End (D) Sub 2.窗体能够响应的事件是 (A) ActiveForm (B) Drive (C) Load (D) Change 3.下列各组控件都具有 Caption 属性的是 (A) 按钮、文本框 (B) 标签、列表框 (C) 按钮、标签 (D) 文本框、列表框 4.能显示窗体的方法是 (A) Visible (B) Show (C) New (D) Open 5.在 Visual Basic 中,语句 Dim b As Double 所定义的变量 b 是 (A) 整数型 (B) 单精度实数型 (C) 双精度实数型 (D) 长整数型 6.定义 a 由 a(1)~a(20)组成的一维数组整数类型变量,下列定义语句正确的是 (A) Dim a(1 To 20) As Double (B) Dim a(20 To 1) As Integer (C) Dim a(20) (D) Dim a(1 To 20) As Integer 7.Len("Friend")的值是 (A) 6 (B) 7 (C) 8 (D) 9 8.假定 X 是一个数值型变量,那么由函数组成的表达式 x mod 2 = 0 的作用是 (A) 用于测试工 X 是否为偶数 (B) 返回一个整数 (C) 返回一个奇数 (D) 用于测试 X 是否为整数 9.下列能表示“x 小于 10 且 y 大于 0”的 Visual Basic 逻辑表达式是 (A) x<10 And y>0 (B) x<10: y>0 (C) x<10 Or y>0 (D) x<10,y>0 10.语句 x=x+1 的正确含义是 (A) 变量 x 与 x+1 的值相等 (B) 将变量 x 的值加到 x+1 中去 (C) 将变量 x 的值加 1 后赋值给变量 x (D) 变量 x 的值为 1 11.以下程序段执行后,整型变量 n 的值为 year=2001 n=year\4+year\400-year\100 (A) 495 (B) 505 (C) 500 (D) 485 12.有如下 Visual Basic 程序段: s=0 For k = 1 To 4 If 8/k >=3 Then s=s+k Next 该程序段运行后,变量 s 的值是 (A) 1 (B) 2 (C) 3 (D) 10 13.以下算法中,需通过多重循环一一列举出解决问题的所有可能解,并在逐一列举的过程中,检 验每个可能的解是否是向题的真正解的是哪种,而需要从实际问题中归纳出数学解析式,就此设计 出合适的算法的是哪种 (A) 解析法,枚举法 (B) 递归法,解析法 (C) 枚举法,解析法 (D) 枚举法,递归法 二、综合题 1.有如下 VB 程序段: Dim n As Integer
- 153 -

Dim m As Integer m=0 For n = 1 To 10 m = m + n mod 3 Next n 该程序段运行后,变量 m 的值是 2.在平面直角坐标系中存在某点 A(x,y),输入该点坐标值,求它所在象限! 为了实现这一功能,则程序中划线处的语句应更正为 (1) (2) Private Sub Command1_Click() Dim x, y As Single x = Val(Text1.Text) y = Val(Text2.Text) If x=0 and y=0 Then (1) Print "在坐标轴上" Else If x >=0 Then (2) If y > 0 Then Print "在第一象限" Else Print "在第四象限" Else If y > 0 Then Print "在第二象限" Else Print "在第三象限" End If End If End Sub 3.将一张面值为 100 元的人民币等值换成 5 元、1 元的零钞共 40 张,要求每种零钞不少于 1 张, 问 5 元和 1 元面值的零钞各多少张? 设 x、y 分别为 5 元和 1 元面值的零钞张数,通过分析可得出该问题的数学表达式为:

?5x ? y ? 100 ? ? x ? y ? 40 且1 ? x ? 20
解决上述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达 式是 (1) (2) Private Sub Command1_Click() Dim x As Integer, y As Integer y=0:x=1 Do While (1) y=y+5 (2) Loop Label1.Caption = "5 元钞" + Str(x) + "张" Label2.Caption = "1 元钞" + Str(y) + "张" End Sub 4.有 N 盏灯放在一排,从 1 到 N 依次编号,有 N 个人也从 1 到 N 依次编号,第一个人将灯全部打 开, 第二个人将凡是 2 的倍数的灯全部关闭, 第三个人将凡是 3 的倍数的灯作相反处理, 第 4、 5、 ??、
- 154 -

N 个人都把自己编号的倍数的灯作相反处理。问第 N 个人走过后,哪些灯是开着的? 为了实现这一目标,在划线处,填入合适的语句或表达式是 (1) (2) (3) Private Sub command1_click() Const n = 20 Dim i As Integer, j As Integer Dim a(1 To n) As Integer For j = 1 To n a(j) = 0 Next j For j =2 To n For i = 1 To n If (1) Then (2) End If Next j Next i For i = 1 To n If (3) Then List1.AddItem Str(i) Next i End Sub 5.要在以下的数列中进行查找某个数: 12 23 34 35 46 55 67 80 99 设以上有序数依次保存在数组元素 A(1),A(2),??,A(9)中,查找的数存放在 Number 变量 中。 VB 的事件过程如下: Private Sub Command1_Click() Dim mid As Integer, low As Integer, hig As Integer Number = Val(InputBox("请输入要查找的数")) k = 0: low = 1: hig = n Do While low <= hig mid = (low + hig) / 2 If Number = a(mid) Then k = mid Exit Do Else

End If Loop If k > 0 Then MsgBox "所找的数在第" & Str(k) & "个位置" Else
- 155 -

MsgBox "没找到" End If End Sub 操作要求: (1)完善程序中虚线框部分。 (2)该程序中,主要采用的算法是:_______________

- 156 -

模拟练习题(第 6 套)
一、选择题 1.Visual Basic 中,添加一个标签,在土具箱中要单击的控件是 (A) (B) (C) (D)

2.在 Visual Basic 中,如果变量 a 需要存储英文单词,那么变量 a 的数据类型应定义为 (A)Date (B)String (C)Integer (D)Boolean 3.在 Visual Basic 中,表示鼠标单击的事件名是 (A) Click (B) MouseClick (C) MouseMove (D) DblClick 4.以下属于合法的 Visual Basic 变量名的是 (A) abc (B) Const (C) 9abc (D) a#x 5.下列四段程序中,属于循环结构的是 ①a=5 ②If x>k Then ③For i=1 To 10 ④If Int(x/2)=x/2 Then b=a Print("big") j=x+1 Print("偶数") a=a+b End If s=s+j Else Next i Print("奇数") End If (A) ① (B) ② (C) ③ (D) ④ 6.如果 a、b、c、d 是一四位整数中千、百、十、个位上的数字,这个四位数在 Visual Basic 程序中 可表示为 (A) abcd (B) a+b+c+d (C) a*1000+b*100+c*10+d (D) 以上都不对 7.表达式 5 Mod 3+3\5*2 的值是 (A) 0 (B) 2 (C) 4 (D) 6 8. 如果 x=-25,则运行 x=Abs(x): x=Sqr(x)后,x 的值是 (A) 5 (B) -5 (C) 25 (D) -25 9.下列 Visual Basic 程序段运行后,变量 max 的值为 a=5: b=10: max=a if b>max Then max=b (A) 5 (B) 10 (C) 5 和 10 (D) 以上都不是 10.下面是一段关于计算变量 S 的算法: ①变量 S 的初值是 0,变量 I 的初值为 1 ②变量 I 从 1 循环到 100,且步长为 2 做第③步表达式 ③S=S+I ④输出变量 S 的值 在这个计算 S 值的算法中,S 的表达式是 (A) 1+2+3+?+99+100 (B) 1+2+3+?+98+99 (C) 1+3+5+?+97+99 (D) 2+4+6+?+98+100 11.下列 Visual Basic 程序段运行后,变量 x 的值为 x=3: y=50 Do while x < sqr(y) x=x+2 Loop (A) 7 (B) 8 (C) 9 (D)10
- 157 -

12.对 n 个元素进行排序,用冒泡法进行排序时,需比较的次数共为 (A) n*(n-1) (B) n*(n+1) (C) n*(n-1)/2 (D) n*(n+1)/2 二、综合题 1. (2 分)有如下 VB 程序段: Dim sum as Integer,i as Integer sum=0 For i=1 To 20 Step 2 sum=sum+I Next I 该程序段运行后,变量sum的值是 2. (4 分)一张单据上有一个 5 位数的编码,其百位数和十位数处已经变得模糊不清,但是知道这个 的数是 29 或 47 的倍数。 请找出所有符合条件的 5 位数,并统计这些 5 位数的个数。 (原始数据为: 37??6) 为了实现这一功能,则程序中划线处的语句应更正为: (1) (2) n = 37006 c=0 For i = 0 To 99 n = n + 10 * I (1) If n Mod 29 = 0 and mod 47=0(2) then c=c+1 Print n End If Next i Print "符合条件的数共有:"; c 3. (4 分)用物理天平测量物体的质量时,测得物体的质量为 a 克(a 为整数,并小于1千克),问 这时在天平的砝码盘中应有哪几个砝码,请选用最少数量的砝码(称质量为1千克的物体,天平的 砝码由下列质量的砝码组成:500克1个,200克1个,100克2个,50克1个,20克 1 个,10克2个,5克1个,2克2个,1克1个)。 解决上述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达 式是 (1) (2) Dim a(1 To 12) As Integer Dim i, x As Integer Private Sub Command1_Click() a(1)=500:a(2)=200: a(3)=100 a(4)=100:a(5)=50: a(6)=20 a(7)=10: a(8)=10:a(9)=5 a(10)=2:a(11)=2:a(12)=1 x = Val(Text1.Text) i=1 do while if x>a(i) then
- 158 -

List1.AddItem Str(a(i)) End if i=i+1 loop End Sub 4.(6分)某市近期向市民投放带2B开头尾数为001至999的机动车牌号,经过竞投有200个牌号被首 批车主投中。下面Visual Basic程序段的功能是根据车牌号查找相应的车主身份证号码,其中车牌 号按尾数从小到大的顺序存储在cno数组中,身份证号码存储在cnum数组中。 在文本框Text1中输入一个车牌号,单击"开始查找"按钮后,在文本框Text2中输出结果。如果 查找成功,则输出对应的车主身份证号码,否则输出"找不到"。 解决上述问题的 Visual Basic 程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式 是 (1) (2) (3) Private Sub Command1_Click() Dim key As String , i As Integer Dim j As Integer , found As Boolean i = 1: j = 200 : found = False (1) Do While (2) And Not found m = Int((i + j) / 2) If cno(m) = key Then found = True Else If (3) Then i = m + 1 Else j = m - 1 End If Loop If Not found Then Text2.Text = " 找不到 " Else Text2.Text = cnum(m) End Sub 5.(6 分)若 A 为素数,而 A+2 也是素数,则称 A, A+2 位一对孪生素数。如:3、5 位一对孪生素数。编程 求出 100 以内的孪生素数及共有多少对? 其 中 , 上 述界 面 中“ 开始 处 理 ” 按钮 的 名称 是 “Command1”,函数 f(x)的功能是判断 x 是否为质数, 如果是质数则返回值为 true,否则返回 false。 请在下列程序代码的基础上按照要求设计该程序。 Dim x As Integer Function f(x As Integer) As Boolean End Function Private Sub Command1_Click() For x = 2 To 100
- 159 -

If f(x) And f(x + 2) Then List1.AddItem (Str(x) + "" + Str(x + 2)) Next x End Sub 操作要求: (1)完善程序中的 Function f(x)部分 (2)在子程序Private Sub Command1_Click()中,主要采用的算法是:__________。

参考答案
模拟练习第 1 套 选择题: CBACB CADBB DBD 综合题: 1、Goodbye 2、 (1)sum=sum+i (2)Text2.Text=Str(sum) 3、 (1)n=n+1 (2)a(n-1)+a(a-2) 4、 (1)d(i)=Int(Rnd*100+1) (2)d(j)<d(k) (3)k<>i 5、 (1) For i = 2 To Int(Sqr(x)) If x Mod i = 0 Then f=False Exit For Else f=True End If Next i (2)枚举算法 模拟练习第 2 套 选择题: CAAAC ACBDB DCA 综合题: 1、6 2、 (1)t=1 (2)Text1.Text=Str(t) 3、 (1)total=total+a(i) (2)ans=ans+1 4、 (1)i<=j (2)Fix((i+j)/2) (3)Str(a(m)) 5、 (1)Function area(a, b, c As Single) As Single Dim p As Single p = (a + b + c) / 2 area = Sqr(p * (p - a) * (p - b) * (p - b)) End Function (2)解析算法 模拟练习第 3 套 选择题: CADAC BCCCC ACD 综合题: 1、28 2、 (1)sum=sum+1/i (2)Text1.Text=Str(m) 3、 (1)p=p*(1+r) (2)Loop 4、 (1)i (2)sum1=sum1+j (3)sum=sum+sum1 5、 (1)Function perfect(x) As Boolean Dim k, sum As Integer sum = 1
- 160 -

For k = 2 To x \ 2 If x Mod k = 0 Then sum = sum + k Next k If sum = x Then perfect = True Else perfect = flase End Function (2)枚举算法 模拟练习第 4 套 选择题: DADBA DDBBD CCC 综合题: 1、21 2、 (1)t=False (2)s Mod 5=0 3、 (1)20 (2)c=a+b 4、 (1)a<0 or a>255 (2)a=a Mod 2 (3)c(i)=a 5、 (1)Function fact(n As Integer) As Double Dim i as integer Fac=1 For i=1 to n Fac=fac*i Next i End Function (2)解析算法 模拟练习第 5 套 选择题: CCCBC DAAAC DCC 综合题: 1、10 2、 (1)x=0 or y=0 (2)x>0 3、 (1)y<40 (2)x=(100-y)/5 4、 (1)i mod j=0 (2)a(i)=(a(i)+1) mod 2 (3)a(i)=0 5、 (1)if Number > a(mid) then i=mid+1 else j=mid-1 end if (2)对分查找 模拟练习第 6 套 选择题: BBAAC CBABC CC 综合题: 1、100 2、 (1)n=37006+10*i (2)n mod 29=0 or n mod 47=0 3、 (1)x>0 (2)x=x-a(i) 4、 (1)key=text1.text (2)i<=j (3)key>cno(m) 5、 (1)Function f(x As Integer) As Boolean Dim i As Integer f = True For i = 2 To Sqr(x) f x Mod i = 0 Then f = False Next i
- 161 -

End Function (2)对分查找

- 162 -


更多相关文档:

算法和程序设计分析及试题附答案_08-算法和程序设计

算法和程序设计分析及试题附答案_08-算法和程序设计_工学_高等教育_教育专区。选修 1:算法与程序设计 第一单元 算法一、 知识内容(一)使用计算机解决问题的一般...

算法和程序设计分析及试题附答案_08-算法和程序设计

算法和程序设计分析及试题附答案_08-算法和程序设计_其它课程_高中教育_教育专区。电脑基础知识 VB教程 选修1:算法与程序设计 第一单元 算法一、 知识内容(一)...

算法设计与分析考试题及答案

算法设计与分析考试题及答案_理学_高等教育_教育专区。觉得蛮好 1.一个算法就是一个有穷规则的集合, 其中之规则规定了解决某一特 殊类型问题的一系列运算,此外...

历年算法与程序设计学业水平考试真题(带答案)

历年算法与程序设计学业水平考试真题(带答案)_其它课程_高中教育_教育专区。算法...寻找解题方法→理解分析问题→用工具计算→验证结果 C、用工具计算→验证结果→...

《算法与程序设计》试题带答案

算法与程序设计试题带答案_工学_高等教育_教育专区。《算法与程序设计》...( A、分析问题 B、设计算法 ) D、调试程序 ) 15、已知 A,B,C,D 是整型...

算法设计与分析试卷及答案

算法设计与分析试卷及答案_工学_高等教育_教育专区。湖南科技学院二○信息与计算...R,k+1,n,sum 四、算法设计(共计 15 分) 贪心策略:最短程序优先。将程序...

算法设计与分析复习题目及答案

算法设计与分析复习题目及答案_工学_高等教育_教育专区。考试答案 ...A.不高于 B.不低于 C.等价于 D.逼近 二、 填空题 2、程序算法 用...

算法设计与分析复习题目及答案

算法设计与分析复习题目及答案_IT认证_资格考试/认证_教育专区。一。选择题 1...2、程序是 算法 用某种程序设计语言的具体实现。 指令 是清晰的,无歧义的。 ...

算法分析与设计程序设计题

算法分析与设计程序设计题_计算机软件及应用_IT/计算机_专业资料。第三章 习题 ...以保证将三个数中所含的某个因数能全部被 找出,直到三个数都不含这个数做...

算法和程序设计分析及试题附答案 08-算法和程序设计

算法和程序设计分析及试题附答案 08-算法和程序设计_电脑基础知识_IT/计算机_专业资料。会考复习选修1:算法与程序设计 第一单元 算法知识内容 一、 知识内容(一)...
更多相关标签:
算法设计与分析试题 | 算法分析试题 | 程序员算法面试题 | 程序算法分析 | 质量基础试题 附答案 | 日语n5测试题附答案 | sql试题附答案 | easyui面试题附答案 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com