第一趟 第二趟 第三趟 第四趟 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=\b=\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=\该程序段运行后,a的值是 参考答案: \
本题是读程序写结果题,属于基础题,主要是考核分支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。则程序中划线
(2) 处的语句应更正为 (1)
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 \运算结果为:\
Print \最后一项的值为:\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; \\ (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 \最高分\最低分\最后得分\参考答案:(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. 如果一个三位数等于它的每个数字的立方和,则此数称为“水仙花”数。如:
333
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 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库算法和程序设计分析及试题附答案 - 08-算法和程序设计(3)在线全文阅读。
相关推荐: