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

竞选班长。编号分别为1、2、3、4、5的五位候选人参加班长竞选,现要设计一个计票程序,根据回收的选票信息统计各位候选人的得票数,得票数最多的被选为班长,并输出班长的编号。选票信息为一个数字序列,由每张选票的投票结果构成,如某选票序列为101233303,其含义见如下表所示。

选票序列

1

0

1

2

3

3

3

0

3

含义

第1张选票投给1号

第2张选票弃权

第3张选票投给1号

第4张选票投给2号

第5张选票投给3号

第6张选票投给3号

第7张选票投给3号

第8张选票弃权

第9张选票投给3号

备注:选票序列101233303,序列中的数字i,表示投票给编号为i的人,即编号为i的人得1票,其中数字0表示不投给任何人,即为弃权。表中选票序列的投票结果为:1号得2票,2号得1票,3号4得票,4号、5号均为0票(没人投),所以3号得票数最高,被选为班长。

程序运行时,在文本框Text1中输入选票信息,单击“计算”按钮Command1后,被选为班长的编号显示在文本框Text2中。程序运行效果如图所示。

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

Private Sub Command1_Click()

Dim a(1 To 5)As Integer

    ‘数组元素a(1)~a(5)依次存放编号为1~5的五位候选人的得票数

Dim st As String, i As Integer, j As Integer, n As Integer

Dim ans As Integer    ‘变量ans存放被选为班长的人的编号

Dim max As Integer    ‘变量max存放最多的得票数

st=Text1.Text

 

For i=1 To 5

a(i)=0

Next i

For i=1 To 5

For j=1 To n

IfThen 

a(i)=a(i)+1

Next j

Next i

max=0

For i=1 To 5

If a(i)>max Then

max=a(i):ans=i

Next i

End Sub

根据以下程序,在文本框Text1中输入3,最后List1中输出的是(  )

Private Sub Command 1_Click()

Dim i As Integer

Dim t As Integer

Dim s As String

i = 1:t = 1:n = Text1.Text

List1.Clear

Do While t< = n

  s = s + “*”

  If i = t Then

  List1.AddItem s

  t = t + 1

  i=0

 End If

i = i + 1

Loop

End Sub

A . B . C . D .
单精度型数有法和法两种表示方法。
在程序运行过程中可以改变数组元素个数的是数组,不可以改变数组元素个数的是数组。
有如下VB程序段:

flag=true:i=1

Do While i<=6

   x=Int(Rnd*100)+1

   If flag Or x>50Then

         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
为防止某传染病,在堂食中不能两个人相邻就餐。为避免两个人相邻就餐,小明设计了一个VB程序,在Text 1中输入某一排座位就餐人员的分布情况,用字符“*”代表当前座位有人,字符“#”代表当前座位没人。如“*#**”就代表1号座位有人,2号座位没人,3号座位有人,4号座位有人。单击“检查”按钮后,若该排有人相邻就餐,则在标签Label 2中输出“警告!”;若该排没有人相邻就餐,在己入座人员不换坐的情况下,检查该排座位中是否还可以再加人就餐,若可以,则在标签Label 2中输出这排中至多还能有几个人入座;若不可以,则在标签Label 2中输出“该排人数已满”,程序运行界面如图所示。

  1. (1) 观察VB代码,可知“检查”按钮的名称为
  2. (2) 实现上述功能的VB代码如下,请在划线处填入合适的代码。

    Private Sub Cmd1_Click()

        Dim s As String, c As String

        Dim flag As Boolean

        Dim i As Integer,count As Integer

        s=Text 1.Text

        flag=True

        For i=1 To Len(s) -1

            c=Mid(s,i,2)

            If c=“**”Then

                

                Exit For

            End If

        Next i

        s=“#”+s·“#”

        count =0:i= 2

        Do While flag And i<=Len(s) -1

            If Then

                s=Mid(s,1,i-1) +“*”+Mid(s, i+1, Len(s) -i)

               

            End If

            i=i+1

        Loop

        If Not flag Then

            Label2.Cnption=“警告!“

        Elself count = 0 Then

            Label2.Caption=“该排人数己满”

        Else

            Label2.Caption=“该排至多还能有”+Str(count) +“个人入座”

        End If

    End Sub

     ② ③ 

下列VB程序用于求2个正整数(均小于10000)的最大公约数,请在程序划线处填入合适的代码。

Private Sub Command1_Click()

Dim x As Integer, y As Integer, z As Integer

x=Val(Text1.Text): y=Val(Text2.Text)

   ①  

Text3.Text=Str(z)

End Sub

Function gcd(a As Integer, b As Integer)As Integer

Do While a< >b

 If a>b Then a=a-b Else b=b-a

Loop

    ② 

End Function

 ② 

   运算符是进行的标识符号,它标明对操作数所进行的运算。
在VB中表示“x属于区间[a,b)”的正确表达式是(  )。
A . a<=x And x<b B . a<=x Or x<b C . a≦x And x<b D . a<=x<b
分析完善程序。

一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少?设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,这里x,y,z为正整数 , 设计算法并编写程序输出所有的买鸡方案。

Dim x As Integer, y As Integer, z As Integer

For x = 1 To 20

For y = 1 To 33

For z = 3 To 99 Step 3

If               Then

Print "公鸡:" & x, "母鸡:" & y, "小鸡:" & z

Next z

Next y

Next x

End Sub 代码可以简化,思路大致是这样的。

结果是: 公鸡:4 母鸡:18 小鸡:78

公鸡:8 母鸡:11 小鸡:81

公鸡:12 母鸡:4 小鸡:84

根据上述回答如下问题

  1. (1) 本题采用的算法是(填写:解析法/穷举法/排序法/递归法)
  2. (2) 程序代码中空白处应填写的条件是            
    A . x+y+z=100 and 5x+3y+z/3=100 B . x+y+z=100 or 5x+3y+z/3=100 C . x+y+z=100 and 5*x+3*y+z/3=100 D . x+y+z=100 or 5*x+3*y+z/3=100
下列VB表达式的值与其它三个选项不同的是(    )
A . Abs(Int(-36.3)) B . Mid("3.372",3,2) C . 1*2*5+1*2^2+1*2^0 D . Int(Val("37.73"))
要求随机生成"ABCDEF"中某个字符,下列表达式中不正确的是(    )
A . Mid(“ABCDEF”,Int(Rnd*6)+1,1) B . Wid(“ABCDEF”,Int(Rnd*6),1) C . Chr(Int(Rnd*6)+65) D . Chr(Int(Rnd*6) +Asc("A"))
变量名不能以数字开头。
计算题
  1. (1) 计算10111101B+10010111B,结果以二进制呈现。
  2. (2) 设a=8、b=3、c=2,计算表达式not(a!=b and a==c)的值,结果用True或False表示。
中国大陆居民身份证由18位数字组成,其中第7至14位数字代表居民的出生年月日,身份证号码现保存在字符串变量s中,小张尝试对身份证号码中的出生年月日进行提取,以下表达式不正确的是(     )
A . s[7:15] B . s[6:14] C . s[-12:-4] D . s[6:-4]
a的7倍减3的结果,对b(b不等于0)取余,正确的表达式是
A=VAL(INPUTBOX(“A”))

FOR I= 1 TO 9

    M=VAL(INPUTBOX(“M”))

    IF A>M THEN A=M

NEXT I

PRINT A  

这段程序的功能是(   )

A . 给出9个数中的最大数。 B . 给出9个数中的最小数。    C . 给出10个数中的最大数。 D . 给出10个数中的最小数。
在Python中,若想让range()函数遍历1到100(含100)所有偶数,下列选项中表达正确的是(    )
A . range(1,100,2) B . range(1,101,1)       C . range(2,100,2) D . range(2,101,2)
在Python中,列表名.sort( )用于对列表中的元素进行(    )。
A . 求和 B . 求平均 C . 求最大数 D . 排序
以下程序运行后,显示的结果是(    )。

m=['书法','绘画','体育']

m.append('歌唱')

m.append('舞蹈')

print(m[4])

A . 舞蹈 B . 体育 C . 歌唱 D . 书法,绘画,体育
最近更新