课件编号6033369

2020版高考信息技术一轮浙江专用版 第十单元 算法专题训练(课件+习题,21份打包)

日期:2024-05-21 科目:信息技术 类型:高中课件 查看:28次 大小:5006941Byte 来源:二一课件通
预览图 0
2020版,训练,打包,21份,习题,课件
    第10节 矩阵问题 模拟演练 1.编写程序将某个字符串沿“N”字形排列显示。输入一个字符串,将该字符串沿“N”字形排列显示。例如输入字符串“ABCDEFGH IJKLMNOPQRSTUVWXYZ”,转换成5行的“N”字形排列如图所示: / 小张根据排列规律设计了“N”字形排列显示的VB程序,功能如下:在文本框Text1中输入原字符串,在文本框Text2中输入“N”字形的行数row(row大于等于3).单击“转换”按钮Command1后,将字符串沿“N”字形排列显示在列表框List1中。程序运行如图所示。 (1)如果原字符串为“0123456789”,转换为3行“N”字形排列,则第一行最后一个字符为   。? 实现上述功能的VB程序如下,请在划线处填入合适的代码。 Private Sub Command1_Click() Dim span As Integer———第一行相邻字母在原字符串中的间距 Dim space As Integer———第一行相邻字母间的空格个数 Dim row As Integer, i As Integer, s As String, line As String s = Text1.Text  ① ? List1.Clear span = row * 2-2 space = row - 2 For i = 1 To row  line =“”: j = i  Do While j <= Len(s) line = line + Mid(s, j, 1) ———输出第i行第一个字符  If i <> 1 And i<> row Then ———判断结果不为首行和末行时   line=line+ Pad(space - i + 1)’输出字符之前的空格   line=line+  ②———输出字符?   line=line+ Pad(i - 2)’输出字符之后的空格  Else   line=line+ Pad(space)’输出首行和末行的空格个数  End If  j = j + span ———间隔之后的字符位置 Loop  ③ ?  Next i  End Sub ’函数Pad(n)的值为n个空格构成的字符串,比如Pad(3)代表3个空格构成的字符串 Function Pad(n As Integer) As String’产生n个空格构成 的字符串 ’代码略 End Function 答案 (1)8 (2)①row=Val(Text2.Text) ②Mid(s,j+(row-i)*2,1)或Mid(s,j+span-2*i+2,1)或Mid(s,j+(space-i+2)*2,1) ③List1.AddItem line 解析 (1)根据题意可知,0~9共3行的“N”字形排列如下图所示,第一行最后一个字符为8。 0 4 8 1 3 5 7 9 (2)如图所示窗体有2个输入语句,①空应填row=Val(Text2.Text)。仔细观察图例或阅读注释语句可知,首行和末行与其他行的字符个数有区别:如果按字母顺序A~H为一组,I~P为一组,Q~X为一组,可以看到每组首行和末行只有1个字符,其余行每行2个字符,但由于输出时列表框中以行为单位进行输出,所以要按位置取相应的字符,第②空填的就是每组第二个字符在原始字符串的位置。该字符位置与当前行号i有关,也与总的行数row有关,随着行号i增加,取到的字符反而靠前,可以猜测有(row-i)的关系,由于每行有2个字符,且j表示本行(非首末行)本组的第一个字符位置,所以②空填Mid(s,j+(row-i)*2,1),然后用一个具体的值去验证。当然,由于span、space都是由row产生的,相应的也可以用其他2个表达式。第③空用于在列表框list1中输出求得的字符串line,故填List1.AddItem line。 2.使用数组a实现在列表框中显示数字的螺旋矩阵,图a中显示的是螺旋矩阵中数组元素的排列顺序,图b 中显示的是矩阵中数组元素对应的赋值情况(以5×5 为例)。 小明依据上述描述设计了如下VB程序,在Text1中输入矩阵的行数n (n≤10),单击“生成”按钮Command1,在List1中显示n×n的螺旋矩阵。请回答下列问题: (1)当输入的行数为4时,单击“生成”按钮,则数组元素a(5)的值为   。? / / (2)请在划线处填入合适的代码。 Function pout(x As Integer) As String ’函数功能用于数字的对齐输出 Dim i As Integer, j As Integer, y As String y= Str(x) : j = Len(y) For i = 1 To 5 - j  y = y +“” Next i  ① ? End Function Private Sub Command1_Click() Dim a(1 To 100) As Integer Dim i As ... ...

    ~~ 您好,已阅读到文档的结尾了 ~~