精品解析:第二章程序的基本结构同步练习高中信息技术人教版选修1

2024-05-31
| 2份
| 24页
| 75人阅读
| 0人下载

内容正文:

第二章程序的基本结构同步练习高中信息技术人教版选修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页 学科网(北京)股份有限公司 $$

资源预览图

精品解析:第二章程序的基本结构同步练习高中信息技术人教版选修1
1
精品解析:第二章程序的基本结构同步练习高中信息技术人教版选修1
2
精品解析:第二章程序的基本结构同步练习高中信息技术人教版选修1
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。