第二章程序的基本结构

2024-05-31
| 9页
| 48人阅读
| 0人下载

内容正文:

第二章 程序的基本结构 学校:___________姓名:___________班级:___________考号:___________ 一、选择题 1.有如下VB程序段: s = "1867234590" : n = Len(s) m = 1 For i = 1 To n       ch = Val(Mid(s, i, 1))       If ch Mod 2 <> 0 Then          m = m + ch       End If Next i Text1.Text = Str(m) 该程序段运行后,文本框Text1中显示的内容是( ) A.25 B.5 C.26 D.15 2.有如下VB程序段: Dim elem(1 To 50) As String s="HHeLiBeBCNOFNe.” k=0:tmp="":i=1 ch=Mid(s,i,1) Do While ch<>"." If ch>="A" And ch <="Z" Then k=k+1:elem(k)=tmp:tmp=ch Else tmp=tmp+ch End If i=i+1 ch=Mid(s,i,1) Loop 执行该程序段后,变量k和elem(k)的值是(  ) A.9 "Ne" B.10 "Ne" C.9 "F" D.10"F" 3.数组元素a(1)到a(n*2)为互不相等的正整数(n≥1),要在其中找到最大值和次大值,并分别存储到变量m1和m2中。实现该功能的VB程序段如下: m1=0:m2=0 For i=1 To n * 2 Step 2 If a(i)>a(i+1)Then t1=a(i):t2=a(i+1) Else t1=a(i+1):t2=a(i) End If If Then m1=t1:m2=t2 ElseIf Then m2=m1:m1=t1 ElseIf  Then m2=t1 End If Next i 上述程序段中方框处可选代码为:①t1>m1     ②t1>m2     ③t2>m1则(1)(2)(3)处代码依次为(    ) A.①②③ B.②③① C.③①② D.③②① 4.对一组正整数进行处理,要求处理后偶数在前,奇数在后,并保持相对顺序不变。 Const n = 10 Dim a(1 To 10) As Integer, b(1 To 10) As Integer ‘数组a赋初值,代码略 num = 0 k = 1 Do While k <= n If ① Then num = num + 1 b(num) = a(k) Else ② End If k = k + 1 Loop For j = ③ a(j) = b(j - n + num) Next j 将划线处的代码补充完整,正确的是(  ) A.①a(k) Mod 2=0   ②a(k-num)=a(k)   ③n-num To n B.①a(k) Mod 2=1   ②b(k-num)=a(k)   ③n-num+1 To n C.①a(k) Mod 2=1   ②a(k-num)=a(k)   ③n-num+1 To n D.①a(k) Mod 2=0   ②b(k-num)=a(k)   ③n-num To n 5.有如下VB程序段: Dim a(0 To 10)As String s= Text1.Text a(0)="": a(1)= Mid(s, 1,1): t=1 For i= 2 To Len(s) If  t>= 1 And Mid(s, i, 1)= a(t) Then t=t- 1 Else t=t+1: a(t)= Mid(s, i, 1) End If Next i 运行程序段,在文本框Text1中输入以下字符串,运行后变量t的值与其它三项不同的是(  ) A.AABAB B.AAABA C.BAABA D.BBABA 6.有如下VB程序段: Dim a(1 To 21) As Integer For i = 1 To 21 j = 1: a(j) = a(j) + 1 Do While a(j) = 4 a(j) = 0 j = j + 1 a(j) = a(j) + 1 Loop Next i 已知数组a中各元素初始值均为 0,该程序执行后,数组a中各元素之和是(   ) A.1 B.2 C.3 D.4 7.有以下VB程序段: For i = 1 To 4   For j = 1 To 2 * i - 1          s = s + "*"   Next j   List1.AddItem s Next i 运行上述程序段,则列表框List1中的输出结果是(   ) A. B. C. D. 8.下列算法流程图描述的算法运行结果是(  )。 A. B. C. D. 9.有如下VB程序段: sl = "PROGRAM":s2= "" For i= 1 To 4 t= Int(Rnd * 4)*2+ 1 Do While f(t) t= Int(Rnd* 4)*2+ 1 Loop f(t)= True s2=s2 + Mid(sl,t, 1) Next i Labell.Caption = s2 数组f各元素的初值为False,执行该程序段后,标签Label1上显示的内容可能是(   ) A.PPOM B.MROR C.PROM D.RPAM 10.有如下VB程序段: c = Text1.Text s1 = "jiayou!" s2 = s1 + s1 For i =1 to len(s1) If c = Mid(s2, i, Len(s1)) Then Exit For Next i Label1.Caption = Str(i) 程序执行完后,Label1中显示的内容是4,则Text1中输入的内容是(   ) A."jiayou!" B."you!jia" C."ayou!ji" D."jayou!j" 11.字符的查找替换。以下 VB 程序段的功能是:在字符串 s 中查找字符 s1, 并将其替换成字符 s2。 s = Text1.Text s1 = Text2.Text s2 = Text3.Text i = 1 Do While i <= Len(s) If Mid(s, i, Len(s1)) = s1 Then      ①      ② Else ② End If Loop Label1.Caption = s 划线处的代码由以下三部分组成: ①i = i + 1   ②s = Mid(s, 1, i - 1) + s2 + Mid(s, i + Len(s1))   ③i = i + Len(s2) 下列选项中,代码顺序正确的是(   ) A.①②③ B.②①③ C.②③① D.③②① 12.把数组元素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) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题考查VB程序。这个VB程序段的功能是计算字符串 "1867234590" 中所有奇数数字的和。程序将每个字符都转换为数字,并检查是否为奇数,如果是奇数就累加到变量 m 中。让我们逐步执行程序:初始字符串为 "1867234590"。计算字符串长度 n 为 10。初始化变量 m 为 1。进入循环,逐个检查字符串中的字符。第一个字符是 '1',它是奇数,所以 m 累加 1,现在 m 变成 2。继续检查下一个字符 '8',它是偶数,不进行累加操作。依此类推,直到检查完所有字符。最终,m 的值为 26。故答案为C选项。 2.D 【详解】本题主要考查VB程序的执行。分析程序可知,变量k统计大写字母的个数,故程序执行完k的值为10,当ch="N"时,此时elem(k)= "F",tmp="N",因为后面再无大写字母,故不会再执行elem(k)=tmp,故程序执行完,elem(k)为"F",故本题选D选项。 3.C 【详解】本题考查的是for及if语句应用。For循环中,将相邻两数分为一组,第一个if语句是将较大的数存储在t1,较小的数存储在t2中,第二个if语句是对前面数据进一步处理,使得最大值存储在m1,次大值存储在m2中,如果第1个if语句处理后的次大值比上次的最大值还大,则同时更新最大值和次大值,故第一空应为:t2>m1;否则如果第1个if语句处理后的最大值比上次的最大值还大,也要同时更新最大值和次大值,故第二空应为:t1>m1;否则如果第1个if语句处理后的最大值比上次的次大值还大,则只要更新次大值,故第三空应为:t1>m2。故选项C正确。 4.C 【详解】本题主要考查VB程序的执行与调试。①处判断a(k)是否为奇数,填a(k) Mod 2=1,若为偶数,则将a(k)暂时保存到b(num)中;若为偶数,则前移到a(k-num)中,故②处填a(k-num)=a(k);num保存奇数的个数,最后将数组b中的奇数保存到数组a中,从n-num-1开始,故③处填n-num+1 To n,故本题选C选项。 5.C 【详解】本题考查的是VB循环和选择语句。t初始值为1,a(t)为第一个字符,从第2个字符开始判断,如果与a(t)相同而且t>=1,则t=t-1,否则t=t+1,a(t)更新为新字符。输入:AABAB,t值变化过程为:1、0、1、2、3;输入:AAABA,t值变化过程为:1、0、1、2、3;输入:BAABA,t值变化过程为:1、2、1、0、1;输入:BBABA,t值变化过程为:1、0、1、2、3。故本题应选C。 6.C 【详解】本题主要考查VB程序的综合应用。分析程序可知,该程序实现将十进制21转换为四进制的值,转换为四进制后为111,即a(1)=1,a(2)=1,a(3)=1,各元素的和为3,故本题选C选项。 7.D 【详解】本题主要考查VB循环结构。分析程序可知,外层循环i控制行数,共4行。内层循环控制每一行显示的个数,因为一行显示完变量s没有清空,故本行显示的个数是在上一行的基础上进行累加,故第一行显示1个、第二行显示4个、第三行显示9个、第四行显示16个,故本题选D选项。 8.B 【详解】本题主要考查VB程序的执行。分析程序可知,最外层循环控制输出行数,i从1到5一共输出5行,内层第一个循环连续输出5-i个空格,内层第二个循环连续输出i个“*”,两个加起来共占5-i+i=5个字符,代入数值验证,当i=1时,第一行输出4个空格加一个“*”,其他行以此类推,可知本题选B选项。 9.C 【详解】本题主要考查VB程序的执行与调试。分析程序,Rnd是随机生成[0,1)之间的数,Int(x)返回不大于x的最大整数,t= Int(Rnd * 4)*2+ 1,可知t可取的值有1、3、5、7,while循环条件是f(t)的值为True,while循环体内随机生成的t对应的f(t)为False时才退出循环,即f(t)的索引t不能有重复,s2=s2 + Mid(sl,t, 1),即s2中的4个字符“P”、“O”、“R”、“M”只能出现一次,不能有重复,结合选项可知,标签Label1上显示的内容可能是PROM,故本题选C选项。 10.B 【详解】本题考查的是VB选择和循环语句。s2是两个字符串s1拼接形成的字符串,即”jiayou!jiayou!”遍历字符串s2的前半部分,若s2中存在长度是1en(s1)且等于c的子串,退出循环,退出循环时,i=4,说明在s2中从第4位取出的子串即是s1中的内容,Mid(s2,4,Len(sl))=”you!jia”,故B正确。 11.C 【详解】本题主要考查VB程序的执行与调试。由题意可知,如果Mid(s, i, Len(s1)) = s1,则将s1替换成字符 s2,同时更新i的位置为i+Len(s2),即方框①②分别填入代码是s = Mid(s, 1, i - 1) + s2 + Mid(s, i + Len(s1))、i = i + Len(s2)。如果Mid(s, i, Len(s1)) 与 s1不相等,则i递增,继续查找判断,故本题选C选项。 12.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选项。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

第二章程序的基本结构
1
第二章程序的基本结构
2
第二章程序的基本结构
3
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。