浙江省高一信息期末考试试卷
(答案填写在答卷卡上,在试卷上答题无效,答卷卡上按规定填写班级、学号、姓名并且正确填涂准考证号码和答案)
一、选择题(共30小题,每小题2分,共60分,每题只有一个正确答案)
1、用计算机无法解决"打印所有偶数"的问题,其原因是解决该问题的算法违背了算法特征中的( )。
A、唯一性 B、有穷性 C、能行性 D、有输出
2、做匀加速直线运动物体的即时速度计算公式是vt = v0 + at,其中v0是初速度,a是加速度,t是时间。计算步骤有:
①用公式计算即时速度vt = v0 + at
②输入初速度v0、加速度a和时间t
③结束
④输出结果vt
其正确的顺序是( )。
A、②①④③ B、①②③④ C、④②③① D、①④②③
3、计算梯形面积的算法描述如下:
①输入上底a、下底b和高h
②计算梯形面积s(计算公式为:s=(a+b)*h/2)
③输出结果
④结束
上述算法属于( )。
A、解析算法 B、排序算法 C、递归算法 D、枚举算法
4、下面3个流程图片段依次分别是什么结构?( )
N Y Y N
A、选择、顺序、循环 B、顺序、选择、循环
C、顺序、循环、选择 D、选择、循环、顺序
5、下列程序设计语言中,哪一个不是面向对象的程序设计语言?( )
A、C B、C++ C、C# D、VC++
6、VB程序的工程文件名、窗体文件名以及生成的可执行文件名分别是( )。
A、.vb、.frm、.exe B、.vbw、.exe、.frm
C、.vbw、.frm、.exe D、.vbp、.frm、.exe
7、如图所示流程图片断
该流程图中循环部分结束后,变量s的值是 ( )。
A、3 B、6 C、10 D、15
8、在VB中,要添加一个列表框(listbox),在工具箱中要单击的控件是 ( )。
A、 B、 C、 D、
9、小明使用控件设计一个秒表,倒计时时间精确到0.01秒,如右图,设置该控件的interval属性值为( )。
A、0 B、1 C、10 D、100
10、在Visual Basic中,语句form1.Caption = "欢迎使用本系统!" 中的"Caption"是( )。
A、属性值 B、属性名
C、对象名 D、类名
11、在Visual Basic中,下列能作为变量名的是( )。
A、a_5 B、a-5 C、5a D、A&5
12、某校对新入学的320名高一男生进行1000米耐久跑测试,测试成绩保留2位小数。在Visual Basic中,下列存储成绩数据的变量定义最合适的是( )。
A、定义320个整数型变量
B、定义1000个整数型变量
C、定义一个元素个数为320的一维数组,数据类型为整数型
D、定义一个元素个数为320的一维数组,数据类型为单精度实数型
13、11、在Visual Basic中,表达式12345100的值是( )。
A、123 B、45 C、12 D、5
14、如下数组声明语句:Dim a(3,-2 To 2,5) ,则数组a包含的元素的个数为( )。
A、120 B、75 C、60 D、13
15、有如下Visual Basic程序段:
For x = 10 To 1 Step -2
a(x) = x + 1
Next x
该程序段运行后数组元素x的值为( )。
A、10 B、1 C、0 D、-1
16、有如下Visual Basic程序段:
s = 0
For k = To 5
s = s + k
Next k
该程序段运行后,循环体s = s + k被执行10次,则循环变量k的初值是( )。
A、14 B、-5 C、1 D、-4
17、设x是正数,下列能用于描述"x是否为偶数"的Visual Basic条件表达式是( )。
A、x 2 = 0 B、x / 2 = 0 C、x Mod 2 = 0 D、x = Abs(x)
18、设a=1,b=3,c=5,表达式a*3c AND 2*bA、1 B、-1 C、False D、True
19、随机产生10个[10,99]中的整数,依次存储到数组变量a(1)~a(10)中。实现此功能的部分算法流程图如图所示:
图中空白处理框①和②处应填入的是( )。
A、① i ← i + 1 B、① i ← i + 1
② a(i) ← Rnd * 90+10 ② a(i) ← Int(Rnd * 90)+10
C、① a(i) ← Int(Rnd * 90)+10 D、① a(i) ← Int(Rnd * 89) + 10
② i ← i + 1 ② i ← i + 1
20、"猴子吃桃"问题:一天,有一只猴子从树上摘
下若干个桃子,当即吃了一半,觉得不过瘾,又吃
了一个。第二天小猴子接着吃剩下的一半,还觉得
不过瘾,又吃了一个。以后每天都是吃前一天剩下
的一半并再吃多一个。到第四天,猴子按规则吃完
桃子后,只剩一个桃子。问小猴子第一天摘了多少
个桃子。右图所示是根据分析所画出的部分流程图。
采用倒推算法,其中设定M的初始值为1(第四天吃
完后剩下的桃子数),D为天数(初始值为5)。请在
下面的①和②(对应流程图中相应空缺位置)填入
相应选项。①、②分别为( )。
A、M=M*2+1 D=1
B、M=M*2+1 D<1
C、M=2*(M+1) D=1
D、M=2*(M+1) D<1
21、有如下Visual Basic程序段:
a = 3
b = 9
c = a + b
If c = 12 Then py = "正确" Else py = "不正确"
分析该程序段,下列说法正确的是( )。
A、程序段的流程模式是循环模式
B、“c = 12”是赋值语句
C、“py = "正确"”是选择语句
D、执行语句“py = "正确"”的前提条件是“c = 12”为真
22、VB中,设x=298,能得到其个位数字“8”的正确表达式是( )。
A、Int(x/100)*100 B、Int(x/10)*10 C、Int(x/100) D、x-Int(x/10)*10
23、运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息。发生"下标越界"错误时所执行的语句是( )。
Private Sub Command1_Click()
Dim a(0 To 5) As Integer
Dim i As Integer '①
a(0) = 1 '②
For i = 1 To 5
a(i) = 2 * a(i - 1) + 1 '③
Next i
Text1.Text = Str(a(6)) '④
End Sub
A、① B、② C、③ D、④
24、运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息。发生"类型不匹配"错误时所执行的语句是( )。
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = 10 '①
b = 20 '②
Text1.Text = "a+b=" + Val(a + b) '③
End Sub '④
A、① B、② C、③ D、④
25、在Visual Basic中,有如下程序:
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
Dim d As Integer, z As Integer
a = Val(Text1.Text): b = Val(Text2.Text): c = Val(Text3.Text)
d = max(a, b)
z = max(d, c)
Text4.Text = Str(d)
Text5.Text = Str(z)
End Sub
Function max(x As Integer, y As Integer) As Integer
If x > y Then max = x Else max = y
End Function
运行该程序,在文本框Text1、文本框Text2、文本框Text3中分别输入2、-5、6后,单击命令按钮Command1,文本框Text5中显示的是( )。
A、-5 B、2 C、6 D、24
26、要计算S=1-2+3-4+5……-100以下不正确的程序段是( )。
A、① B、② C、③ D、④
27、下列语句执行后,s的值为( )。
For i=1 to 30
If i mod 5=0 then
s=s+i
i=i+6
end if
next i
A、45 B、55 C、65 D、75
28、有如下Visual Basic程序段:
? k = 1
? For j = 2 To 100
If a(j) > a(k) Then k = j
Next j
x = a(k)该程序段执行后,变量x中存储的是( )。
A、a(1)至a(100)中的最小值 B、a(1)至a(100)中的最大值
C、a(2)至a(100)中的最小值 D、a(2)至a(100)中的最大值
29、在Visual Basic中程序段是计算( )公式的。
s=0
For i=1 To 10
t=1
for j=1 to i
t=t*j
next j
s=s+t
Next i
A、s=1+2+3+4+5+6+7+8+9+10 B、s=1*2*3*4*5*6*7*8*9*10
C、s=1!+2!+3!+4!+5!+6!+7!+8!+9!+10! D、s=1+2*3+3*4+4*5+5*6+6*7+7*8+8*9+9*10
30、阅读下面程序:
Private Sub command1_click()
a=val(text1.text)
b=val(text2.text)
if a=b then
text3.text=str(a)
exit sub
end if
do while b<>0
r=a mod b
a=b
b=r
loop
text3.text=str(a)
End Sub
在text1、text2中输入30、6,则text3中的值为( )。
A、1 B、3 C、6 D、9
二、填空题(共40分)
31、(本题6分)有以下几种流程图符号:
A B C D E F
输入输出框 ②连接框 ③流程线 ④判断框 ⑤处理框 ⑥开始结束符
A~F六种流程图符号代表的含义依次是
32、(本题3分)将数学表达式S=写成VB表达式为__________。
33、(本题3分)闰年条件:能被4整除且不能被100整除或能直接被400整除。写出闰年的VB表达式(年份用变量y) ______ ____。
34、(本题2分)有如下Visual Basic程序段:
a = "1100101"
b = Mid(a, 2, 4) + "101"
该程序段运行后,变量b的值为____________。
35、(本题2分)有如下Visual Basic程序段:
a = 5
b = Len("1011")
If a > b Then
Label1.Caption = "请重新输入"
Else
Label1.Caption = "欢迎光临"
End If
该程序段运行后,在标签Label1上显示的是____________。
36、(本题4分,每空2分)有如下Visual Basic程序段:
s = 0
a = 5
For i = 1 To 10 Step 2
a = a + i
s = a * i
Next i
问:该程序段运行后,
(1)变量i的值是___________。
(2)变量s的值是___________。
37、(本题4分,每空2分)有如下Visual Basic程序段:
Dim a As Integer, b As Integer, c As Integer
a = 20
b = 0
c = 2
Do While a > b And a > c
b = b + 1
c = c + b
Loop
问:该程序段运行后,
(1)语句“b=b+1”执行的次数为__________。
(2)变量c的值为____________。
38、(本题4分,每空2分)有如下流程图结构,该流程图中输出的前2个值依次分别是____________、____________。
39、(本题4分,每空2分)设有n盏灯,放在一排。从1 到 n依次顺序编号。有 n个人也从1到n依次编号。第1个人(1号)将灯全部关闭,第2个人(2号)将凡是2的倍数的灯打开,第3个人(3号)将凡是3的倍数的灯做相反处理(该灯如果为打开的,则将它关闭,如关闭的将它打开),以后的人和3号一样,将凡是自己号数倍数的灯做相反处理。问当n个人操作后,哪几盏灯是亮的。(亮灯为0,关闭为1)
为了实现这一目标,完善下列程序,使之能完成该功能。
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 i=1 to n
for j=1 to n
if j mod i=0 then
①
End if
Next j
Next i
For j=1 to n
If ② then list1.additem str(j)
Next j
End Sub
其中填充① ②
40、(本题4分,每空2分)普源为晚上的班级联欢会设计了一个抽奖程序,将所有同学的编号和对应的姓名分别保存在数组a(全班共50个同学,编号为1到50)和数组b中,程序会随机产生一个1到50的正整数(同时包括1和50),作为中奖编号。
程序界面如图所示,左边列表框List1中显示同学的编号和姓名,单击"抽奖"按钮(Command1),在标签Label3中显示抽中的编号,同时在标签Label4中显示"恭喜***同学",其中具体同学的姓名从数组b中获取。
解决此问题的程序段如下:
Dim a(1 To 50) As Integer
Dim b(1 To 50) As String
Function search(m As Integer) As Integer
search = 0
For i = 1 To 50
If m = a(i) Then
search = a(i)
End If
Next i
End Function
Private Sub Command1_Click()
Dim c As Integer,t as integer
Randomize
①
Label3.Caption = Str(c)
t = search(c)
If t <> 0 Then
Label4.Caption = "恭喜" + ② + "同学"
End If
End Sub
Private Sub Form_Load()
' 此过程用于对数组a和数组b进行初始赋值,代码略
End Sub
在程序①和②划线处,填入适当的语句或表达式,把程序补充完整:
(1)程序中①划线处应填入___________________。
(2)程序中②划线处应填入___________________。
41、(本题4分,每空2分)数制转换。将一个K进制(k<=10)数x转换成十进制数可采用如下方法:主要方法是从右向左,依次取数x的各位数字,分别计算出该数从右边数起的第i位数字与k(i-1)的积,再将其累加,直到所有的数字取完为止。例如,将五进制数1231转换成十进制数的方法如下:
下列Visual Basic程序的功能是将K进制(k<=10)数x转换成十进制数。界面如图所示,在文本框Text1中输入数制k,在文本框Text2中输入数x,单击"转换"按钮(Command1)后,在标签Label4中输出转换的结果。
解决此问题的算法流程图如图所示,相应的Visual Basic程序如下:
Private Sub Command1_Click()
Dim b As Long, i As Integer, k As Integer, x As Long, t As Integer
b = 0: i = 1
k = Val(Text1.Text)
x = Val(Text2.Text)
t = x Mod 10
Do While ①
b = ②
x = x 10
t = x Mod 10
i = i + 1
Loop
Label4.Caption = Str(k) + "进制数" + Text2.text + "转换成十制数为" + Str(b)
End Sub
在程序①和②划线处,填入适当的语句或表达式,把程序补充完整:
(1)程序中①划线处应填入___________________。
(2)程序中②划线处应填入___________________。
三、附加题(共10分,第一题2分,第二题8分,第二小题代码行数不限)
42、把杂乱无章的数据变为有序的数据,这一过程称为排序。冒泡排序是其中一种最基础的排序方法,其中的升序是把数列中把较小的数据逐次向上推移的一种排序技术。它的方法是把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面一个元素起,自下而上的比较相邻两个元素中的数据,如果较小的数据在下面,那将较小的数据换到上面的元素中(否则不交换)。重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工,当第1遍加工完成时,最小的数据已经上升到第1个元素的位置;第2遍加工对余下的n-1个元素重复上述处理过程,第2遍加工完成后剩下最小的数据上升到第2个位置;直到n-1遍加工完成后发现数据完成了从小到大的排序。
假设有4个数据:27 36 32 18,需要4-1=3遍加工
第1遍加工如下:
第2遍加工如下:
第3遍加工如下:
假设4个数据放在数组d(1), d(2),d(3), d(4)
第1遍:比较d(j)、d(j-1),j=4,3,2,比较3次;
第2遍:比较d(j)、d(j-1),j=4,3,比较2次;
第3遍:比较d(j)、d(j-1),j=4,比较1次;
假设另有一组未经排序的数据如下:
45 67 23 87 13 30
按照上述规则进行从小到大冒泡排序,第一遍加工完成后这6个数的位次应该是
。
冒泡排序对应流程图片段如下:
(2)下面程序片段要实现数据d(1)..d(n)的从小到大排序,请根据上面流程图说明,填写中间部分代码:
……
……
For i=1 to n-1 '1到n-1遍加工
Next i
……
……
题号
答案
分值
单选1
B
2
单选2
A
2
单选3
A
2
单选4
C
2
单选5
A
2
单选6
D
2
单选7
C
2
单选8
C
2
单选9
C
2
单选10
B
2
单选11
A
2
单选12
D
2
单选13
A
2
单选14
A
2
单选15
C
2
单选16
D
2
单选17
C
2
单选18
D
2
单选19
C
2
单选20
C
2
单选21
D
2
单选22
D
2
单选23
D
2
单选24
C
2
单选25
C
2
单选26
C
2
单选27
A
2
单选28
B
2
单选29
C
2
单选30
C
2
二、填空题(共40分)
31、(本题6分) ⑤⑥①③④②
32、(本题3分) s=(sqr(2)+10^5)/(0.5+p)+x^y
33、(本题3分) y mod 4=0 and y mod 100<>0 or y mod 400=0
34、(本题2分) "1001101"
35、(本题2分) 请重新输入
36、(本题4分,每空2分) 11 270
37、(本题4分,每空2分) 6 23
38、(本题4分,每空2分) 2 3
39、(本题4分,每空2分) a(j)=1-a(j) a(j)=0
40、(本题4分,每空2分) c=1+int(rnd*50) b(t)
41、(本题4分,每空2分) x<>0 b+t*k^(i-1)
三、附加题(共10分,第一题2分,第二题8分,第二小题代码行数不限)
(1) 13 45 67 23 87 30
(2) for j=n to i+1 step -1
if d(j) t=d(j)
d(j)=d(j-1)
d(j-1)=t
end if
next j