内容正文:
第二章程序的基本结构同步练习高中信息技术人教版选修1
1. 有如下VB程序段:
temp = a(1)
For i=2 To 10
next i
数组元素a(1)到a(10)的值依次为“36,48,25,32,28,20,30,52,15,8”。程序段中加框处语句执行5次后,变量temp的值为( )
A. 25 B. 28 C. 20 D. 8
2. 有如下VB程序段:
Dim x As Long,i,y As Integer
Dim Ans,t As Long
x=123
Do While x > 0
y=x Mod 10
t=1
For i=1 To y
t=t * y
Next i
ans=ans+t
x=x \ 10
Loop
程序运行后,变量ans的值是( )
A. 14 B. 32 C. 123 D. 321
3. 有如下 VB 程序段:
Const n= 10
Dim a(1 To n) As Integer b(1 To n) As Integer
For i = 1 To n
b(i) = i
Next i
For i = 2 To n
j = i - 1
t = b(i)
Do While a(b(j)) > a(t)
b(j + 1) = b(j)
j = j - 1
If j = 0 Then Exit Do
Loop
b(j + 1) = t
Next i
若数组a中的数据依次为:69,16,44,17,34,46,10,29,37,51 ,执行程序后,b(1)~b(10)的值为( )
A. 3 5 4 10 1 9 8 6 7 2 B. 7 2 4 8 5 9 3 6 10 1
C. 5 8 2 1 4 7 3 9 10 6 D. 1 6 2 4 8 9 7 10 3 5
4. 运行如下程序段时,出现了如图所示错误提示框:
Private Sub Command1_Click()
Dim r As Single,s As Single '①
r="10米" '②
s=3.14159*r*r '③
Text2.Text ="某个半径为"+ Str(r)+"米的圆,其面积为"+ Str(s)+"平方米." '④
End Sub
则程序中出错的语句是( )
A. ① B. ② C. ③ D. ④
5. 下流程图描述的是输入任意3个不同的数A、B、C,输出其中的最小数,请按此算法功能,把流程图填写完整。应选_______。
A. ① B < C ② C < A
B. ① A < C ② C < B
C. ① A < C ② B < A
D. ① A < C ② B < C
6. 下列VB表达式能随机产生两位正整数的是( )
A. Int(Rnd * 90 + 11) B. Int(Rnd * 90) + 10
C. Int(Rnd * 89 + 10) D. Int(Rnd * 89) + 11
7. 有VB程序段如下:
s1 = Text1.Text
s2 = ""
For i = 1 To Len(s1)
c = Mid(s1, i, 1)
If c >= "0" And c <= "9" Then
c = Chr((Asc(c) - Asc("0") + 1) Mod 10 + Asc("0"))
s2 = s2 + c
ElseIf c >= "A" And c <= "Z" Then
c = Chr(Asc(c) + 32)
s2 = c + s2
End If
Next i
Text2.Text = s2
执行该程序段,在文本框Text1中输入“GoLand,19”,则文本框Text2中显示的内容为( )
A. lg20 B. lg210 C. 210,dnalog D. 210,goland
8 有如下程序段:
key=5:pmin=a(1)
For i=2 To 6
If a(i)>key And a(i)<pmin Then pmin =a(i)
Next i
数组元素a(1)到a(6)的值依次为“9,1,7,3,8,4”,执行程序后,变量pmin的值为( )
A. 1 B. 4 C. 7 D. 9
9. 【加试题】有如下VB程序段:
flag = True : i = 1
Do While i <= 6
x = Int(Rnd * 100) + 1
If flag Or x >50 Then
a(i)=x
flag = Not flag
i = i + 1
End if
Loop
执行该程序段后,在下列选项中,a(1)~a(6)各元素值不可能的是( )
A. 52,95,46,74,77,83 B. 50,55,46,70,21,97
C. 62,78,57,61,69,50 D. 31,54,48,72,50,82
10. 有如下VB程序段:
数组b各元素的初始值都为0,文本框Text1的内容为“七选3,加油!”(无空格)。执行程序后,变量b(2)的值为( )
A. 3 B. 4 C. 5 D. 6
11. 把数组元素d(1)到d(n)中前5个不同的最大值降序排到d(1)到d(5)中,其中n≥10,数组d中各元素值均小于100且不同元素个数大于5。实现该功能的VB程序段如下:
d(0)= 100
For i= 1 To 5
k=i
For j=i+ 1 To n
If d(j)< d(i- 1) Then
If①________Then k=j
End If
Next j
If ik Then t = d(i): d(i)= d(k): d(k)= t
Next i
则代码中①处的语句为( )
A. d(k)>=d(i-1) And d(j)<d(k) B. d(k)>=d(i-1) Or d(j)<d(k)
C. d(k)>=d(i-1) And d(j)>d(k) D. d(k)>=d(i-1) Or d(j)>d(k)
12. 有如下 VB 程序段:
For i = 1 To 8
t = a(i)
flag(t) = flag(t) + 1
Do While flag(t) <> 1
t = (t + 1) Mod 10
flag(t) = flag(t) + 1
Loop
b(i) = t
Next i
数组b 和flag 中各元素的初值均为0,数组元素a(1)至a(8)的初值分别为“8, 5,9, 4,9, 4, 6, 7” ,程序运行后,b(5)的值为( )
A. 0 B. 5 C. 8 D. 9
13. 有如下VB 程序段:
i=1:n=5
Do while i<=n x=Int(Rnd*9)+1
If x Mod 2=1 Then a(i)=x
Else
a(n)=x:n=n-1
End If
i=i+1
Loop数组元素的初值均为0,执行该程序段后,数组元素a(1)到a(5)的值不可能是( )
A. 7 , 5 , 0 , 3 , 6 B. 3 , 0 , 9 , 4 , 2
C. 0 , 0 , 4 , 6 , 6 D. 1 , 3 , 5 , 5 , 0
14. 某算法流程图如图所示。执行这部分流程,则输出n的值是( )
A. 3 B. 4 C. 5 D. 6
15. 生成n个不重复2位随机奇数的VB程序段如下:
For i= 1 To n
a(i)=_ ①
For j= 1 To i-l
If a(i)=a(j) Then
②
Exit For
End If
Next j
Next i
上述程序段2个方框处的表达式分别为
A. ①Int(Rnd*50)*2+11 ②j=j-1
B. ①Int(Rnd*99)+1 ②i=i-1
C. ①Int(Rnd*89)+11 ②j=j+ 1
D. ①Int(Rnd*45)*2+11 ②i=i-1
16. 有如下VB程序段:
Dim a(1 To 6) As Integer
Dim f(1 To 6) As Boolean
Dim x As Integer, p As Integer
Randomize
p = 0
For i = 1 To 6
f(i) = False
Next i
For i = 1 To 6
x = Int(Rnd * 6) + 1
Do While f(x) = True
x = Int(Rnd * 6) + 1
Loop
a(i) = x: f(x) = True
Next i
For i = 2 To 6
If a(i) > a(i - 1) Then p = p + 1 Else p = p - 1
Next i
执行该程序段时,程序结束时,变量p的值不可能为( )
A. -3 B. 1 C. 0 D. 5
17. 【加试题】十进制a转换为b进制(2~16)的vb程序如下
Function tran(a as integer, b as integer) as string
Dim strd as string, n as integer
Do while a<>0
n=a mod b
a=a\b
If n>9 then
strd= &strd
Else
strd=str(n)&strd
Endif
Loop
Tran=strd
End function
Private sub command1_click()
m=val(text1.text)
n=val(text2.text)
Label1.caption=tran(a,b)
End sub
下列说法不正确的是
A. 划线处的代码可以为:chr(55+n)
B. 划线处的代码可以为:mid(“ABCDEF”,n-9,1)
C. 若在划线处填上正确的代码之后,运行程序,在text1内输入123,text2内输入10,label1显示的结果为123
D. 若需要转换为十七进制,划线处的代码可以使用mid(“ABCDEF”,n-9,1)
18. 以下程序段运行时出现如图所示错误提示:
For i=1 To 100
If Rnd>0.5 Then
n=n+1
Else
m=m+1
Next i
分析该程序段,该代码中缺少了( )
A. For B. End If C. Next D. If
19. 有如下 VB 程序段:
s = "123456789"
g = ""
For i = 1 To 3
n = Len(s)
x = Int(Rnd() * n) + 1
g = g + Mid(s, x, 1)
s = Mid(s, 1, x - 1) + Mid(s, x + 1, n - x)
Next i
在程序执行时,若变量 x 的值依次为 3,3,6,则最终变量 g 的值为( )
A. "336" B. "346" C. "348" D. 15
20. 有如下VB程序段:
Dim a(1 To 6) As Integer
For i = 1 To 6
a(i) = i
Next i
s = 0: j = 1
For i = 1 To 6
s = s + a(i) * j
If i Mod 2 = 0 Then j = -j
Next i
Text1.Text = Str(s)
该程序段运行后,文本框Text1中显示的内容是( )
A. -3 B. -1 C. 5 D. 7
第1页/共1页
学科网(北京)股份有限公司
$$
第二章程序的基本结构同步练习高中信息技术人教版选修1
1. 有如下VB程序段:
temp = a(1)
For i=2 To 10
next i
数组元素a(1)到a(10)的值依次为“36,48,25,32,28,20,30,52,15,8”。程序段中加框处语句执行5次后,变量temp的值为( )
A. 25 B. 28 C. 20 D. 8
【答案】C
【解析】
【详解】本题考查选择结构和循环结构。temp的初始值为36,第一次i=2,a(2)<a(1)false;第二次i=3,a(3)<a(1)true,temp=a(3);第三次i=4,a(4)<a(3)false;第四次i=5,a(5)<a(3)false;第五次i=6,a(6)<a(3))true,temp=a(6)。a(6)的值为20。故选项C正确。
2. 有如下VB程序段:
Dim x As Long,i,y As Integer
Dim Ans,t As Long
x=123
Do While x > 0
y=x Mod 10
t=1
For i=1 To y
t=t * y
Next i
ans=ans+t
x=x \ 10
Loop
程序运行后,变量ans的值是( )
A. 14 B. 32 C. 123 D. 321
【答案】B
【解析】
【详解】本题主要考查VB程序的执行。x=123,第一遍循环y=123 mod 10=3,t=1,for循环执行完,t=27,ans=ans+t=27,x=x\10=12;第二遍循环,y=12 mod 10=2,t=1,for循环执行完,t=4,ans=ans+t=27+4=31,x=x\10=1;第三遍循环,y=1 mod 10=1,t=1,for循环执行完,t=1,ans=ans+t=31+1=32,x=x\10=0,循环结束,故程序运行后,变量ans的值是32,故本题选B选项。
3. 有如下 VB 程序段:
Const n= 10
Dim a(1 To n) As Integer , b(1 To n) As Integer
For i = 1 To n
b(i) = i
Next i
For i = 2 To n
j = i - 1
t = b(i)
Do While a(b(j)) > a(t)
b(j + 1) = b(j)
j = j - 1
If j = 0 Then Exit Do
Loop
b(j + 1) = t
Next i
若数组a中的数据依次为:69,16,44,17,34,46,10,29,37,51 ,执行程序后,b(1)~b(10)的值为( )
A. 3 5 4 10 1 9 8 6 7 2 B. 7 2 4 8 5 9 3 6 10 1
C. 5 8 2 1 4 7 3 9 10 6 D. 1 6 2 4 8 9 7 10 3 5
【答案】B
【解析】
【分析】
【详解】本题主要考查VB中数组及循环结构的使用。“Exit Do”用以跳出Do循环,Do循环的循环条件为“a(b(j)) > a(t)”,由题意可知为“a(b(i-1)) > a(b(i))”,程序执行中数组b变化过程为:2,1,3,4,5,6,7,8,9,10—>2,3,1,4,5,6,7,8,9,10—>2,4,3,1,5,6,7,8,9,10—>2,4,5,3,1,6,7,8,9,10—>2,4,5,3,6,1,7,8,9,10,—>7,2,4,5,3,6,1,8,9,10—>7,2,4,8,5,3,6,1,9,10—>7,2,4,8,5,9,3,6,1,10—>7,2,4,8,5,9,3,6,10,1。故B选项正确。其余选项均不符合题意。
4. 运行如下程序段时,出现了如图所示的错误提示框:
Private Sub Command1_Click()
Dim r As Single,s As Single '①
r="10米" '②
s=3.14159*r*r '③
Text2.Text ="某个半径为"+ Str(r)+"米的圆,其面积为"+ Str(s)+"平方米." '④
End Sub
则程序中出错的语句是( )
A. ① B. ② C. ③ D. ④
【答案】B
【解析】
【详解】本题考查的是VB数据类型及调试。R定义为单精度,不能加引号且为数字。故选项B正确。
5. 下流程图描述的是输入任意3个不同的数A、B、C,输出其中的最小数,请按此算法功能,把流程图填写完整。应选_______。
A. ① B < C ② C < A
B. ① A < C ② C < B
C. ① A < C ② B < A
D. ① A < C ② B < C
【答案】D
【解析】
【详解】
6. 下列VB表达式能随机产生两位正整数的是( )
A. Int(Rnd * 90 + 11) B. Int(Rnd * 90) + 10
C. Int(Rnd * 89 + 10) D. Int(Rnd * 89) + 11
【答案】B
【解析】
【详解】本题主要考查VB表达式的运算。Rnd是产生[0,1)之间的随机数,Int(x)是返回不大于x的最大整数,故Int(Rnd * 90) + 10是返回[10,99]之间的正整数,故本题选B选项。
7. 有VB程序段如下:
s1 = Text1.Text
s2 = ""
For i = 1 To Len(s1)
c = Mid(s1, i, 1)
If c >= "0" And c <= "9" Then
c = Chr((Asc(c) - Asc("0") + 1) Mod 10 + Asc("0"))
s2 = s2 + c
ElseIf c >= "A" And c <= "Z" Then
c = Chr(Asc(c) + 32)
s2 = c + s2
End If
Next i
Text2.Text = s2
执行该程序段,在文本框Text1中输入“GoLand,19”,则文本框Text2中显示的内容为( )
A. lg20 B. lg210 C. 210,dnalog D. 210,goland
【答案】A
【解析】
【分析】
【详解】本题主要考查VB中循环结构及选择结构嵌套。题中循环结构用于将文本框Text1接收的字符串中字符逐个提取,选择结构的嵌套用于判断字符是否为0-9或A-Z,若为0-9,则执行“Chr((Asc(c) - Asc("0") + 1) Mod 10 + Asc("0"))”,若为A-Z,则执行“Chr(Asc(c) + 32)”,其余字符则不执行任何操作,且不合并入字符串s2,根据题意,Text2输出结果含4个字符,因此A选项正确。
【点睛】
8. 有如下程序段:
key=5:pmin=a(1)
For i=2 To 6
If a(i)>key And a(i)<pmin Then pmin =a(i)
Next i
数组元素a(1)到a(6)的值依次为“9,1,7,3,8,4”,执行程序后,变量pmin的值为( )
A. 1 B. 4 C. 7 D. 9
【答案】C
【解析】
【详解】本题主要考查VB程序的执行。设定最小值是pmin,从数组中的第2个数据开始遍历,直到数组中的最后一个数据,key=5,若出现比key大,且比最小值pmin小的数据,更新pmin,遍历过程中,7、8是比key大的数据,且7比当前的pmin小,故程序执行后,pmin的值是7,故本题选C选项。
9. 【加试题】有如下VB程序段:
flag = True : i = 1
Do While i <= 6
x = Int(Rnd * 100) + 1
If flag Or x >50 Then
a(i)=x
flag = Not flag
i = i + 1
End if
Loop
执行该程序段后,在下列选项中,a(1)~a(6)各元素值不可能是( )
A. 52,95,46,74,77,83 B. 50,55,46,70,21,97
C 62,78,57,61,69,50 D. 31,54,48,72,50,82
【答案】C
【解析】
【详解】本题考查的知识点是VB程序的分析与调试。本程序循环执行6次,每次循环产生一个1到100百的随机整数。
当i=1时,flag = True,flag Or x >50成立,执行a(1)=x,flag = Not flag,i = i + 1;
当i=2时,flag = False,循环产生x,直到x>50后,才执行a(2)=x,flag = Not flag,i = i + 1;执行后a(2)>50;
当i=3时,flag = True,flag Or x >50成立,执行a(3)=x,flag = Not flag,i = i + 1;
当i=4时,flag = False,循环产生x,直到x>50后,才执行a(4)=x,flag = Not flag,i = i + 1 ;执行后a(4)>50;
当i=5时,flag = True,flag Or x >50成立,执行a(5)=x,flag = Not flag,i = i + 1;
当i=6时,flag = False,循环产生x,直到x>50后,才执行a(6)=x,flag = Not flag,i = i + 1 ;执行后a(6)>50;
对比4个选项,C选项中最后的a(6)=50不可能出现。故正确答案为C选项。
10 有如下VB程序段:
数组b各元素的初始值都为0,文本框Text1的内容为“七选3,加油!”(无空格)。执行程序后,变量b(2)的值为( )
A. 3 B. 4 C. 5 D. 6
【答案】C
【解析】
【详解】本题考查的是VB综合应用。由IF语句可知b(2)存储的是非数字字符的个数,应为条件是 n>1,故当n=1时不计数,即字符串的第一个字符不计算在内,输入“七选3,加油!”除了第一个字符“七”外,非数字字符有5个,故选项C正确。
11. 把数组元素d(1)到d(n)中前5个不同的最大值降序排到d(1)到d(5)中,其中n≥10,数组d中各元素值均小于100且不同元素个数大于5。实现该功能的VB程序段如下:
d(0)= 100
For i= 1 To 5
k=i
For j=i+ 1 To n
If d(j)< d(i- 1) Then
If①________Then k=j
End If
Next j
If ik Then t = d(i): d(i)= d(k): d(k)= t
Next i
则代码中①处的语句为( )
A. d(k)>=d(i-1) And d(j)<d(k) B. d(k)>=d(i-1) Or d(j)<d(k)
C. d(k)>=d(i-1) And d(j)>d(k) D. d(k)>=d(i-1) Or d(j)>d(k)
【答案】D
【解析】
【详解】本题主要考查排序算法及VB程序实现。该程序实现数组元素d(1)到d(n)中前5个不同的最大值降序排到d(1)到d(5)中,因为n个数中会有重复的,若有重复的已经在1~i中时,则内层循环跳过该数j,故内层循环首先判断j是否小于i-1,其次判断d(k)>=d(i-1)或者d(j)>d(k),若满足,则说明产生了新的较大值,更新k的值为j,循环结束时,交换i与k的值,最后实现将k处最大值交换到i处,故本题选D选项。
12. 有如下 VB 程序段:
For i = 1 To 8
t = a(i)
flag(t) = flag(t) + 1
Do While flag(t) <> 1
t = (t + 1) Mod 10
flag(t) = flag(t) + 1
Loop
b(i) = t
Next i
数组b 和flag 中各元素的初值均为0,数组元素a(1)至a(8)的初值分别为“8, 5,9, 4,9, 4, 6, 7” ,程序运行后,b(5)的值为( )
A. 0 B. 5 C. 8 D. 9
【答案】A
【解析】
【详解】本题考查的是VB循环语句。阅读程序可知b(i)中存放的是a(i)中对应不重复的数,如果有重复则执行内循环。a(5)=9,a(6)=4有重复,故要执行:t = (t + 1) Mod 10,当循环到a(5)=9则对应的t=0,跳出循环执行b(5) = t=0。故选项A正确。
13. 有如下VB 程序段:
i=1:n=5
Do while i<=n x=Int(Rnd*9)+1
If x Mod 2=1 Then a(i)=x
Else
a(n)=x:n=n-1
End If
i=i+1
Loop数组元素的初值均为0,执行该程序段后,数组元素a(1)到a(5)的值不可能是( )
A. 7 , 5 , 0 , 3 , 6 B. 3 , 0 , 9 , 4 , 2
C. 0 , 0 , 4 , 6 , 6 D. 1 , 3 , 5 , 5 , 0
【答案】D
【解析】
【详解】本题考查的知识点是VB程序代码的分析与调试。初始化i=1:n=5。本程序循环执行n次,从i=1开始每次循环产生一个1到9之间的随机整数x,如果x是奇数,执行a(i)=x,否则执行a(n)=x,n=n-1。A选项:“7,5,0,3,6”,产生的第1,2个随机数为7,5,即a(1)=7,a(2)=5,第3个为6是偶数,即a(5)=6,执行后,i=4,n=4,再执行一次,无论奇数偶数结果赋值给a(4) ,此处a(4)=3,结束循环,最后a(3)=0。A选项正确;B选项:“3,0,9,4,2”,产生的第1个随机数为3,a(1)=3,第2个为2是偶数,即a(5)=2 ,第3个是9,a(3)=9,执行后,i=4,n=4,再执行一次,无论奇数偶数结果赋值给a(4) ,此处a(4)=4,结束循环,最后a(2)=0。B选项正确;C选项:“0,0,4,6,6”,产生的第1,2,3个随机数为6,6,4,即a(5)=6 ,a(4)=6,a(3)=4,执行后,i=4,n=3,结束循环,a(2)=0,a(1)=0。C选项正确;D选项:“1,3,5,5,0”,产生的第1,2,3,4个随机数分别为1,3,5,5,即a(1)=1 ,a(2)=3,a(3)=5,a(4)=5,执行后,i=5,n=5,再循环一次,x赋值给a(5),无论奇数偶数赋值给a(5),a(5)都不等于0,此处a(5)=0错误。D选项错误。选择错误的一项,故正确答案为D选项。
14. 某算法的流程图如图所示。执行这部分流程,则输出n的值是( )
A. 3 B. 4 C. 5 D. 6
【答案】C
【解析】
【详解】本题考查对循环结构流程图的理解。变量n的初值为1,执行n←n+1后,n的值为2,条件22>22不成立,继续执行循环;执行n←n+1后,n的值为3,条件23>32不成立,继续执行循环;执行n←n+1后,n的值为4,条件24>42不成立,继续执行循环;执行n←n+1后,n的值为5,条件25>52成立,退出循环,故输出n的结果为5,故选项C符合题意。
15. 生成n个不重复2位随机奇数的VB程序段如下:
For i= 1 To n
a(i)=_ ①
For j= 1 To i-l
If a(i)=a(j) Then
②
Exit For
End If
Next j
Next i
上述程序段2个方框处的表达式分别为
A ①Int(Rnd*50)*2+11 ②j=j-1
B. ①Int(Rnd*99)+1 ②i=i-1
C. ①Int(Rnd*89)+11 ②j=j+ 1
D. ①Int(Rnd*45)*2+11 ②i=i-1
【答案】D
【解析】
【详解】本题考查的是VB随机函数、循环、选择语句。生成的是2位随机奇数,即[11,99]范围的奇数,故排除ABC。如果生成的数与前面有重复,则该数重新生成,即i要减1,故应选D。
16. 有如下VB程序段:
Dim a(1 To 6) As Integer
Dim f(1 To 6) As Boolean
Dim x As Integer, p As Integer
Randomize
p = 0
For i = 1 To 6
f(i) = False
Next i
For i = 1 To 6
x = Int(Rnd * 6) + 1
Do While f(x) = True
x = Int(Rnd * 6) + 1
Loop
a(i) = x: f(x) = True
Next i
For i = 2 To 6
If a(i) > a(i - 1) Then p = p + 1 Else p = p - 1
Next i
执行该程序段时,程序结束时,变量p的值不可能为( )
A. -3 B. 1 C. 0 D. 5
【答案】C
【解析】
【详解】本题主要考查VB程序的执行与调试。第一个for循环后,f(1)~f(6)值均为False,x = Int(Rnd * 6) + 1,x是随机生成[1,6]之间的整数。分析最后for循环可知,当 a(i) > a(i - 1)时,p递增1,否则p递减1,而i从2开始到6结束,即p共变化6-2+1=5次,不可能出现两两抵消p=0的情况,故本题选C选项。
17. 【加试题】十进制a转换为b进制(2~16)的vb程序如下
Function tran(a as integer, b as integer) as string
Dim strd as string, n as integer
Do while a<>0
n=a mod b
a=a\b
If n>9 then
strd= &strd
Else
strd=str(n)&strd
Endif
Loop
Tran=strd
End function
Private sub command1_click()
m=val(text1.text)
n=val(text2.text)
Label1.caption=tran(a,b)
End sub
下列说法不正确的是
A. 划线处的代码可以为:chr(55+n)
B. 划线处代码可以为:mid(“ABCDEF”,n-9,1)
C. 若在划线处填上正确的代码之后,运行程序,在text1内输入123,text2内输入10,label1显示的结果为123
D. 若需要转换为十七进制,划线处的代码可以使用mid(“ABCDEF”,n-9,1)
【答案】D
【解析】
【分析】
【详解】本题主要考查VB程序的执行与调试。划线处是处理n>9的情况,即n>=10,大写字母A的ASCII码值是65,十进制a转换为b进制(2~16)可以通过“除权取余”的方法,故划线处的代码可以为:chr(55+n),或mid(“ABCDEF”,n-9,1);text1输入的是十进制数,text2输入的是要转换的进制,故在划线处填上正确的代码之后,运行程序,在text1内输入123,text2内输入10,label1显示的结果为123;若需要转换为十七进制,划线处的代码可以使用mid(“ABCDEFG”,n-9,1),故本题选D选项。
18. 以下程序段运行时出现如图所示的错误提示:
For i=1 To 100
If Rnd>0.5 Then
n=n+1
Else
m=m+1
Next i
分析该程序段,该代码中缺少了( )
A. For B. End If C. Next D. If
【答案】B
【解析】
【分析】
【详解】本题主要考查选择结构基本格式。观察题中程序段可知,该程序段循环结构里的选择语句结构欠缺,代码中缺少了End If.,因此B选项正确。
【点睛】
19. 有如下 VB 程序段:
s = "123456789"
g = ""
For i = 1 To 3
n = Len(s)
x = Int(Rnd() * n) + 1
g = g + Mid(s, x, 1)
s = Mid(s, 1, x - 1) + Mid(s, x + 1, n - x)
Next i
在程序执行时,若变量 x 的值依次为 3,3,6,则最终变量 g 的值为( )
A. "336" B. "346" C. "348" D. 15
【答案】C
【解析】
【详解】本题主要考查VB循环结构。Rnd是随机生成[0,1)之间的数,Int(x)返回不大于x的最大整数,n=Len(s)=9,x = Int(Rnd() * n) + 1,x是随机生成[1,9]之间的整数,当x=3时,g=“3”,s = Mid(s, 1, x - 1) + Mid(s, x + 1, n - x)=“12456789”;当x=3时,g=“34”,s = Mid(s, 1, x - 1) + Mid(s, x + 1, n - x)=“1256789”;当x=6时,g=“348”,s = Mid(s, 1, x - 1) + Mid(s, x + 1, n - x)=“125679”,循环结束,最终变量 g 的值为“348”,故本题选C选项。
20. 有如下VB程序段:
Dim a(1 To 6) As Integer
For i = 1 To 6
a(i) = i
Next i
s = 0: j = 1
For i = 1 To 6
s = s + a(i) * j
If i Mod 2 = 0 Then j = -j
Next i
Text1.Text = Str(s)
该程序段运行后,文本框Text1中显示的内容是( )
A. -3 B. -1 C. 5 D. 7
【答案】D
【解析】
【详解】本题考查VB程序。这段VB程序的目标是计算一个数列的累加和,并将结果显示在Text1文本框中。首先,它创建了一个整数数组a,然后用一个循环为数组元素赋值,使得a(1) = 1,a(2) = 2,a(3) = 3,以此类推,直到a(6) = 6。接下来,它初始化了两个变量s和j,s用来存储累加和,j用来控制每个元素的正负号,初始时j=1。然后,它进入了第二个循环,这个循环从1到6遍历数组a。在每次循环中,它将当前元素a(i)乘以j并加到s上,然后检查i是否为偶数,如果是,就将j变为-j。这个操作使得奇数项为正,偶数项为负。最后,它将累加和s的值转换为字符串并显示在Text1文本框中。计算过程如下:s = 1 * 1 + 2 * 1 + 3 * (-1) + 4 * (-1) + 5 * 1 + 6 * 1 = 1 + 2 - 3 - 4 + 5 + 6 = 7。故答案为D选项。
第1页/共1页
学科网(北京)股份有限公司
$$