当前位置:首页 >> 数学 >>

选修模块算法与程序设计模拟测试题

《算法与程序设计》模拟测试卷(二)
考试时间:90 分钟 满分:100 分

一、

单项选择题(共 20 个空,每空 2 分,共 40 分)

1.下面关于算法的认识错误的是( ) 。 A.算法是解决问题的方法和步骤 B.算法有一个或多个的输出 C.算法就是计算机程序 D.算法的步骤必须是有限的 2.关于数组的说法,下面错误的是( ) 。 A.同一数组中的数据类型一定相同 B.数组元素个数是有限的 C.可以定义字符串类型的数组 D.同一个程序的数组数据类型一定相同 3.设置窗体标题时,应改变窗体的( )属性。 A. Name B. Font C. BackColor D. Caption 4.不能使用"do"作为变量名的原因是( ) 。 A.由英文字母开头 B.后面没有使用数字 C.使用了英文单词 D.使用了关键字 5.代数式
a? b c?d

对应的VB表达式是(

) 。 D. a + b/c - d

A. (a + b)/(c - d) B. (a + b)/c – d C. a + b/(c - d) 6.若变量 a 的值为 34000,则变量 a 的数据类型不可能为( ) 。 A.integer B. long C. single D.double 如图所示的流程图为求x的绝对值算法。请回答7-8题:
开始



x >=0 是 y=x



y = -x

输出 y

结束

7.根据算法,流程图中①处的内容是( ) 。 A.输入-x B.输入x C.输入y D.输入-y 8.该算法包含了( )控制结构 A.顺序结构 B.选择结构 C.顺序和循环结构
1/5

D.顺序和选择结构

9.在VB语言中,下列正确的赋值语句是( ) 。 A. a + a = 2 B. 3 * a = c – 5 C. a = 2 * a D. a + 3 = b 10.在 VB 中,假定有以下程序段: For i=1 to 3 step 2 Print “VB” Next i 则语句 print “VB”的执行次数是( ) 。 A.4 B.3 C.2 D.1 11.下面一组语句能令数组的两个元素 a(i)与 a(j)交换数据的是( ) 。 A.temp=a(i): a(i)=a(j): a(j)=temp B.temp=i: i=j: j=temp C.temp=a(i): a(j)=a(i): a(i)=temp D.temp=a(j): a(i)=a(j): a(j)=temp 12.在VB语言中,表示“a大于5或b小于0” 的正确表达式是( ) 。 A. 0 < b or a < 5 B. a > 5 And b < 0 C. a > 5 Or b < 0 D. a > 0 And b < 5 13.若a = 4,b = 5,则运行Print a; "+"; b; "="; a + b的结果是( ) 。 A. 4 + 5 = 9 B. a + b = 9 C. a + b = a + b D. 9 14.下列循环语句中循环次数无限的是( ) 。 D.x=1 B . x=1 C . x=5 A.x=0 Do Do Do Do x=x+2 x=2*x+1 x=x-2 x=x+1 Loop until x=8 Loop until x>=3 Loop until x>0 Loop until x=3 15.关于函数与过程的说法,正确的是( ) 。 A.过程结束时一定要返回一个值 B.过程内一定要定义变量 C.可以在表达式中调用过程 D.函数一定要有返回值 16.二分法查找的前提是( ) 。 A.被查找数据元素个数是奇数 B.被查找数据元素个数是偶数 C.被查找数据元素是有序的 D.被查找数据元素是无序的 17.当一个顺序文件通过( )方式打开以后,才能向此文件写入数据。 A.for input 或 for output B.for input 或 for append C.for output 或 for append D.以上都可以 18.用选择排序法对数据 7,8,3,9,2 从小到大排序,第 3 趟结果是( ) 。 A.2,3,7,9,8 B.3,8,2,7,9 C.3,2,8,7,9 D.3,7,8,9,2 19.要从 n 个数据元素中顺序查找一个元素,最多查找次数是( ) 。 A.1 B.n C.n/2 D.lgn 20. 《孙子算经》上有一道“物不知数”问题: “今有物不知其数,三三数之剩二,五五数之 剩三,七七数之剩二。问物几何?”该问题应采用( ) 。 A.解析法 B.查找法 C.穷举法 D.递归算法

二、填空题: (共 10 个空,每空 3 分,共 30 分)
1.编程计算 s=1*(-2)*3*(-4)*……*49*(-50) Private Sub Form_Click() Dim s as integer,i as single s= (21) For i=1 to 50
2/5

If s=s*i else s= next i

(22)

then

(23)

print “s=”;s end sub 2.某顾客欲将 300 元钱全部换成 10 元、20 元、50 元的面额(每种面额至少 1 张) ,请问有 几种换法? Private Sub Form_Click() Dim a as integer,b as integer,c as integer ,n As integer ’a,b,c 分别代表 10,20,50 元面额的张数;n 代表换 法 n= (24) For b=1 to If Next c Next b next a print “n=”;n end sub (26) (25) then n= (27) For a=1 to 30 For c=1 to 30

3、编写递归函数求 5!的值。 Public Function s(n As Integer) As Long If n = 1 Then s = Else s = End If End Function Private Sub form_Click() Print "s(5)="; End Sub (30) (29) (28) Public Function s(n As Integer) As Long If n = 1 Then s=1 Else s= s(n-1)*n End If ' 调用递归函数,显示结果End Function Private Sub form_Click() Print "s(10)="; s( 5 End Sub )

三、阅读程序,写出运行后输出的结果(前两题每题 5 分,后两题每题 10 分, 共 30 分)
3/5

31.Private Sub Command1_Click() dim x as integer,y as single x = Round(5.4) Select Case x Case 1 To 5 y = 4 + Abs(x) Case 6 To 10 y = 50 * x Case Else y = x ^ 2 End Select Print y End sub

32.Private Sub Command1_Click() Dim m as integer,n as integer Dim t As Integer m = 10 n = m * 2 t = m * n print t End Sub

33.Private Sub Command1_Click() Dim a as integer, b as integer, t as integer Dim ma as integer, mb as integer, n As Integer a = 12: b = 8: n = 20 t = 0 Do t = t + 1 ma = t * a Mod n mb = t * b Mod n Loop Until ma = mb Print t End Sub

34、Private Sub Command1_Click() Dim m1 as integer,m2 as integer Dim j as integer,a(5) as integer For j = 1 To 5 a(j) = InputBox("") Next j m2 = 1 m1 = a(1) For j = 2 To 5 If a(j) > m1 Then m1 = a(j) m2 = j End If Next j Print m1 Print m2 End sub 若输入的数分别是 237, 126, 87, 48, 498, 则输出结果是?

4/5

选修模块“算法与程序设计”模拟测试题二 参考答案
一、
1.C 11.A

单项选择题
2.D 12.C 3.D 13.A 4.D 5.C 6.A 7.B 8.D 9.C 10.C 14.D 15.D 16.C 17.C 18.A 19.B 20.C

二、填空题
21.1 22.i mod 2=1 23.s*(-i) 24.0 25.30(或 24,或其他通过数学方式推理出来的结果) 26.a*10+b*20+C*50=300 27.n+1 28.1 29.s(n-1)*n 30.s(5)

三、阅读程序,写出运行后输出的结果 31.9 32.200 33.5 34.498

5

5/5