学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
给定一字符串(全部由小写字母组成),有n个字符(1≤n≤100),将每个字符存入到数组a中,有以下两种操作:
操作1:在文本框中分别输入L,R,T(1≤L≤R≤n),对数组下标为L到R之内(包含L和R)的字符做相应的字符加密操作(1≤T≤100)。
操作2:在文本框中输入M(1≤M≤n),在标签中输出a(M)的值。
为了提高算法的效率,小明设计了如下算法,以n=10为例,将n个元素依次分成「」段「」表示对向下取整),每段的元素个数为「」若最后有不足「」个元素,则自成一段。给每段设置一个标记,如下表所示。

数组下标

1

2

3

4

5

6

7

8

9

10

元素的值

p

y

t

h

o

n

j

a

v

a

段编号

第一段

第二段

第三段

第四段

段标记

1

2

3

4

 
①对于操作1,若输入的L,R属于同一段,则直接对a(L to R)的每个元素的ASCⅡ码进行后移T位的操作。如输入4,6,3,则第2段中的每个字符变为k,r,q,操作后如下表所示。

数组下标

1

2

3

4

5

6

7

8

9

10

元素的值

p

y

t

k

r

q

j

a

v

a

段编号

第一段

第二段

第三段

第四段

段标记

1

2

3

4

 
②对于操作1,若输入的L,R不属于同一段,则对元素a(L)所在段中从a(L)开始到该段最后一个元素为止的每个字符的ASCⅡ码做后移T位的操作,并对元素a(R)所在段中从该段第一个元素开始到a(R)为止的每个字符的ASCⅡ码做后移T位的操作,对a(L)元素所在段的下一段开始到a(R)元素所在段的上一段为止的每个段标记值增加T,这些段中的元素值保持不变。如在上表的基础上再输入1,8,2,则第1段的3个字符和第3段中的前2个数都做相应的字符后移2位的操作,第2段的段标记值增加2,如下表所示。

数组下标

1

2

3

4

5

6

7

8

9

10

元素的值

r

a

v

k

r

q

l

c

v

a

段编号

第一段

第二段

第三段

第四段

段标记

1

4

3

4

 
③对于操作2,若输入M的值为4,则输出a(4)的值,若a(M)所在的段标记为奇数,a(M)的值为该数组元素的值,否则输出a(M)对应的大写字母的值,如a(4)=H。程序运行如下。请回答下列问题:
(1)若数组元素为“p,y,t,h,o,n,j,a,v,a”,依次进行以下3次操作后a(6)的值为________。
操作1:在文本框Text1,Text2,Text3中依次输入1,8,3后,点击按钮Command1
操作1:在文本框Text1,Text2,Text3中依次输入7,9,2后,点击按钮Command1
操作2:在文本框Text4中输入6后,点击按钮Command2
(2)请在划线处填入合适的代码。
Const n=10
Dim a(1 To n)As String
Dim dbj(1 To n)As Integer依次表示每段的标记值
Dim bk As Integer‘表示每段的元素个数
Private Sub Form_Load()

bk=Int(Sqr(n))

读取数据,并存储到数组a中,代码略

读取数据,并存储到数组dbj中,代码略

End Sub
Function bl(x As Integer)As Integer   bl函数返回数组元素a(x)的段编号
bl=________
End Function
Private Sub Commandl_Click()
Dim L As Integer,R As Integer,t As Integer
L=Val(Text1.Text)
R=Val(Text2.Text)
t=Val(Text3.Text)
If bl(L)=bl(R) Then

For i=L To R

a(i)=Chr((Asc(a(i))-Asc("a")+t) Mod 26+97)

Next i

Else

For i=L To bl(L)*bk

a(i)=Chr((Asc(a(i))-Asc("a")+t) Mod 26+97)

Next i

For i = bl(L)+1 To bl(R)-1

dbj(i) =dbj(i)+t

Next i

For i=____

a(i)=Chr((Asc(a(i))-Asc("a")+t)Mod26+97)

Next i

End If
List1.AddItem Str(L)+","+Str(R)+","+ Str(t)+"加密完成!"
End Sub
Private Sub Command2_Click()
Dim M As Integer
Dim jg As String
M=Val(Text4.Text)
If dbj (bl(M)) Mod 2=0 Then
jg=____
Else

jg=a(M)

End If
Label4.Caption="经过一系列操作后,a("+Str(M)+")的值为:"+jg
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交