4.1 程序设计语言的基础知识 知识点题库

将数学表达式 写成Visual Basic表达式,正确的是(   )
A . Int(Abs(ab-c*c)) B . Sqr(Abs(ab-c*2)) C . Int(Abs(a*b-c*c)) D . Sqr(Abs(a*b-c*c))
如果x=4,那么以下运算结果为True的表达式是 (   )
A . x<=4 And  x>=6 B . x>4  Or  x>=6  C . x<4  Or  x>6 D . Not  x<>4
某编码由4个信息位和3个校验位组成,通过对编码信息进行验算,能够检测并纠正一位错误代码。该7位编码中b1~b4为信息位,p1~p3为校验位,位置如下:

编码中位

1

2

3

4

5

6

7

对位信息

p1

p2

b1

p3

b2

b3

b4

校验的方式如下,求校验值g1、g2、g3:

g1 = p1 Xor b1 Xor b2 Xor b4

g2 = p2 Xor b1 Xor b3 Xor b4

g3 = p3 Xor b2 Xor b3 Xor b4

其中Xor 为异或运算,规则是:0 Xor 0 =0,0 Xor 1 =1,1 Xor 0 =1,1 Xor 1 =0,

p1 Xor b1 是将p1、b1 转换为二进制后按位进行异或运算,如7 Xor 12 的结果为11。

⑴若计算得到的校验值g1、g2、g3均为0,说明校验正确,数据无错误。例如:若7位编码为1101001,计算校验值g1、g2、g3值均为0,验证正确。

⑵若校验值g1、g2、g3不全为0,说明数据有错,出错位置为g3g2g1(二进制数表示),纠错的方法是对错误的位进行取反,即“0”变“1”,“1”变“0”。例如:若7位编码为1111001,计算校验值g1=1、g2=1、g3=0,不全为0,说明数据有错,错误位置在011(二进制数)位,即第3位,原位置上“1”应为“0”,正确编码为1101001。

小明为此编写了VB程序,程序运行时,在文本框Text1中输入编码值,单击“校验”

按钮Command1后,在文本框Text2中输出运行结果,如图所示。

实现上述功能的VB程序如下,请回答下列问题:

  1. (1) 若按上述规则的7位编码为1001000,其中一位有错,则正确的编码应为
  2. (2) 请在划线处填入合适的代码。

    Function check(s As String) As Integer

    Dim i As Integer g1 As Integer, g2 As Integer, g3 As Integer

    Dim c(1 To 7) As Integer

    For i = 1 To 7

    c(i) = Val(Mid(s, i, 1))

    Next i

    g1 = c(1) Xor c(3) Xor c(5) Xor c(7)

    g2 = c(2) Xor c(3) Xor c(6) Xor c(7)

    g3 = c(4) Xor c(5) Xor c(6) Xor c(7)

    If g1 + g2 + g3 = 0 Then check = 0 Else check =

    End Function

    Private Sub Command1_Click()

    Dim i As Integer, m As Integer, Outs As String

    m =

    If m = 0 Then

    Text2.Text = "验证正确,数据无错误"

    Else

    For i = 1 To 7

    If i = m Then

    Outs = Outs + Chr( Asc(Mid(Text1.Text, i, 1)) Xor )

    Else

    Outs = Outs + Mid(Text1.Text, i, 1)

    End If

    Next i

    Text2.Text = "第" + Str(m) + "位上数据有错误,正确编码应为:" + Outs

    End If

    End Sub

平面上有N(3≤N≤100)个房间围成一圈,按顺时针方向分别编号为1…N,相邻的两个房间之间均有一扇门,第i个房间居住人数为a(i)。初始时选择一个房间,将所有人都聚集在该房间,接着每个人都按顺时针方向走到相邻的房间,直至走到居住的房间。一个人每经过一扇门花费1能量,请确定初始房间,使得所有人花费的能量和最小。例如:N=5,a(1)=4,a(2)=7, a(3)=8, a(4)=6, a(5)=4。

最佳方案:初始时所有人聚集在2号房间,花费的能量和:7*0+8*1+6*2+4*3+4*4=48。为了解决这个问题,小明编写了一个VB程序。在窗体加载时,从数据库中读取N的值和编号为1到N的房间的居住人数,人数存储在数组a中。点击窗体上的按钮Command1,程序枚举每一种方案(不同的初始房间),计算该方案的能量和,在文本框Text1中输出最优方案的初始房间编号,在文本框Text2中输出最小能量和。

实现上述功能的VB代码如下,请在划线处填入合适代码。

Dim a(1 To 100) As Integer ’依次存储编号为1到100的房间的居住人数

Private Sub Form_Load()

‘本过程从数据库中读取N的值和每个房间居住人数,存储在数组a中

‘代码略

End Sub

Private Sub Command1_Click()

Dim i As Integer, j As Integer, w As Integer, k as Integer

Dim t As Long, ans As Long

k=0 : ans = 32767     ‘ans初始化为最大的Integer数据

For i = 1 To n

 t = 0

 For j = 0 To n - 1

    w=

    If w = 0 Then w = n

    t=

 Next j

 If t < ans Then

    k= i

    ans = t

 End If

Next i

Text1.Text = Str (k)    ‘起始房间编号

Text2.Text =

End Sub

表达式6.8*9 Mod 28\8的值是(  )。
A . 0 B . 1 C . 2 D . 3
函数FACT(4)的返回值为,INT(-12.6)的返回值为
有如下VB程序段:

L = 0: R = 7: i = 1

Do While i < R

    If a(i) = 0 Then

        L = L + 1

        t = a(i): a(i) = a(L): a(L) = t i = i + 1

    ElseIf a(i) = 2 Then

        R = R - 1

        t = a(i): a(i) = a(R): a(R) = t

    Else

        i = i + 1

    End If

Loop

数组元素 a(1)到 a(6)的值依次为“2,0,2,1,1,0”。执行该程序段后,下列说法不正确的是(  )

A . 变量L的值为2 B . 变量R的值为5 C . 变量i的值为4 D . 数组元素值依次为“0,0,1,1,2,2”
有如下VB程序段:

Randomize

a(0)=0:i=1

Do While i<= 7

  a(i) =Int(Rnd*10) *3+ 1

  If i Mod 2= 1 Then

    a(i)=a(i)+a(i-1)

  ElseIf a(i) Mod 2= 1 Then

    i=i-1

  EndIf

  i=i+1

Loop

该程序段执行后,a(1)-a(7)各元素的值可能为(  )

A . 7 10 7 4 20 16 44 B . 22 16 32 10 32 22 49 C . 28 4 14 16 44 28 41 D . 4 1 29 38 10 35
下图算法的运行结果为 。

在VB中,表达式321+“54”的运算结果是(   )。
A . 375 B . "375" C . "32154" D . 321+54
有如下Python程序,当程序运行后输入15000,则程序输出结果为:(  )

salary=float (input( ))

if salary<=5000:

    tax=0

elif salary<=7000:

    tax=(salary-5000)*0.1

elif salary<=10000:

    tax=200+(salary-7000)*0.2

else:

    tax=800+(salary-10000)*0.4

print(salary-tax)

A . 2800 B . 2800.0 C . 12200 D . 12200.0
在VB中,Int(x) 函数的功能是返回不大于x的最大整数,设a=3 ,b=4,c=5,则下列表达式的运算结果中值最大的是(   )。
A . Sqr(c) B . Abs(a-b) C . Int(2*a-c/b) D . a^2+b^2-c^2
下列式子运算错误的是(    )
A . 300*1.5=450.0 B . 1/8=0.125 C . 2**3=6 D . 17%3=2
(11%4)**2的结果是(    )。
A . 11 B . 4 C . 2 D . 9
有如下VB程序段

Dim k As Integer, num As Integer, m As Integer

Dim s As String, ans As String

s =" abcdefghi jk lmnopqrs tuvwxyz "

k=26:ans=””

m = Val(Text1.Text)

Do While m> 0

    x=Int(Rnd()*k)+1

    ans=ans+Mid(s, x,1)

    s =Mid(s,1,x-1)+Mid(s,k,1)+Mid(s,x+1,26-x)

    k=k-1:m=m-1

Loop

Text2.Text = ans

文本框Text1中输入4,执行上述程序后,文本框Tex2中有显示的内容不可能为(    )

A . snyg B . tuna C . vmlc D . Amzm
Python表达式“50-50%6*5//2**2”的结果为(    )
A . 48 B . 25 C . 0 D . 45
下列变量名在Python中合法的是(    )
A . 3class B . for C . _txt D . a#b
某班级采购的部分文具用品存储在sta中。若sta={"钢笔":100,"铅笔":50,"橡皮":60,"尺子":70},则要访问钢笔的数量100的表达式为(     )
A . sta{钢笔} B . sta{"钢笔"} C . sta[钢笔] D . sta["钢笔"]
下列VB表达式的值为True的是(    )
A . sqr(10)>2^2 B . Int(2.6)=len("123") C . "13"*<7"' D . 15/6>15\6
下列代码的输出结果是(      )。

name=[“张三”,“李四”,“王五”]

name. append(“赵六”)

del name[1]

Name.pop( )

print(name)

A . [“张三”,“李四”,“王五”] B . [“张三”,“王五”,“赵六”] C . [“张三”、“王五”] D . [“张三”,“李四”,“王五”,“赵六”]
最近更新