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

编写“鞋码换算”程序,实现如下功能:在文本框 Text1 中输入脚长 n(单位:厘米),单击“换算”按钮 Command1,在标签 Label1 中显示相应鞋码,同时在列表框 List1 中显示与脚长对应的标准鞋码表。程序运行界面如图所示。

  1. (1) 如图所示,能生成运行界面中列表框的控件是(    )
    A . B . C . D .
  2. (2) 实现上述功能的VB程序如下,请在划线处填写合适的代码。

    Private Sub Command1_Click()

    Dim n As Single, i As, c As Integer

    List1.Clear

    n = Val(Text1.Text)

    If n - Int(n) > 0.5 Then 

      ‘n小数部分大于0.5的加1,0.5及以下的加0.5


    End If                                         

    c = n * 2 - 10

    Label1.Caption = "适合你的鞋码为:" + Str(c)

    For i =To n+2  step 0.5

        c = i*2-10 

        If Int(i) = i Then

           List1.AddItem Str(i) + "      " + Str(c)

        Else

           List1.AddItem Str(i) + "    " + Str(c)

        End If

    Next i

    End Sub

编写VB程序,实现如下功能:单击“启动”按钮Command1,在列表框List1内每隔2秒输出一个由30个大、小写字母组合成的字符串,运行界面如图所示,程序代码如下。(字母A和字母a的ASCII码值分别为65、97)

图片_x0020_22

  1. (1) 该程序除窗体外使用了(填数字)个对象。
  2. (2) 为实现上述功能,请在划线处填入合适的代码。

    Private Sub Command1_Click()

      Timer1.Enabled = '

    End Sub

    Private Sub Timer1_Timer()

      Dim s As String, c As String

      Dim a As Integer, e As Integer, h As Integer

      Randomize

      s = ""

      For a = 1 To 30

        e = Int(Rnd() * 52 + 1)

        If e <= 26 Then

          h = e + 64

        Else

          h = '

        End If

        c = '

        s = s + c

      Next a

      List1.AddItem s

    End Sub

  3. (3) 为了减缓字符串的出现速度,可将Timer1的Interval属性值      (选填,填字母)
    A . 调大 B . 调小
【加试题】小王同学为了研究浙江省湖州地区空气质量与天气、气温、风向等的关联性问题,通过网络获取了2016-06-01至2017-05-31这365天的有关信息,并将数据整理至数据文件data.accdb中。其中huzhou数据表视图及设计视图部分界面如图所示。

小王编写了VB程序,具体功能:点击“执行”按钮Command1,在文本框Text1中显示空气质量为优(AQI空气质量指数≤50)的最长持续天数(连续为优),并在列表List1中依次显示对应天数的各项数据。

实现上述功能的VB程序如下:

  Dim rq(1 To 365)As String       ‘存放日期

  Dim aqi(1 To 365)As Integer     ‘存放AQl空气质量指数

  Dim tq(1 To 365)As String       ‘存放天气

  Dim qw(1 To 365)As String      ‘存放气温

  Dim fxfl(1 To 365)As String      ‘存放风向及风力

  Private Sub Form_Load( )

    ‘本过程从数据中按2016-06-01至2017-05-31依次读取各项数据,并分别存储在对应的数组中。代码略 。

  Private Sub Command1_Click( )

       Dim n As Integer,m As Integer,i As Integer,k As Integer

  Dim s As String

       n=0:m=0:k=0

       For i=1 To 365

           If aqi(i)<=50 Then

               n=n+1

          Else

               If n>m Then

                  m=n

                  k=i-1

               End If

               n=0

          End If

      Next i

      If n>m Then

         m=n

             ①                

      End If

      For i=      ②        To k    

         s=rq(i)                       ‘日期长度均为10

         s=s&Space(7-Len(Str(aqi(i)))) & Str(aqi(i))    ‘AQI为1~3个数字

         s=s&Space(4)&tq(i)                  ‘天气为1-4个中文字符

         s=s&Space(2*(6-Len(tq(i))))&qw(i)    ‘气温长度均为9

         s=s&Space(4)&fxfl(i)        ‘风向及风力长度不等

List1.AddItem s

      Next i

      Text1.Text=Str(m)

End Sub

  1. (1) 按照本程序的功能,在列表框List1中输出数据,当天气为“阴”时,天气与气温之间将输出(填数字)个空格。(说明:表达式Space(n)表示n个空格。)

  2. (2) 请在画线处填入合适的代码:

有VB编写的程序如下:

Dim a(0 To 9) As Integer, t as Long

t=Val(Text1.Text)

Do While t<>0

 a(t Mod 10) = 1

 t = t \ 10

Loop

For i = 0 To 9

 x = x + a(i)

Next i

Text1中输入10242048,则程序执行后x的值为(  )

A . 1 B . 2 C . 5 D . 10
有如下VB程序段:

For i=1 To 6

    x=Int(Rnd*10)+1

    If i Mod 2 = 1 Then

        a(i)=2*x+1

    Elself x Mod 2 = 0 Then

        a(i)=x/2

    Else

        a(i)=x-1

    End If

Next i

执行该程序段后,a(1)~a(6)各元素可能的值是(  )

A . 3,2,7,4,22,6 B . 5,0,9,4,13,10 C . 9,3,11,5,17,7 D . 3,3,9,0,19,8
小明用VB编写了查找第二小的数的程序界面如图所示,程序随机产生50个范围在1~1000之间的随机整数,单击“查找”按钮能够在标签 Label1中显示第二小的数字。

Private Sub Command1_ Click( )

  Dim n As Integer, i As Integer

  Dim a(1 To 50) As Integer

  Randomize

  For i=1 To 5

        ①      

    List1 AddItem Str(a(i))

  Next i

  If a(1) < a(2) Then

    firstmin=a(1)

    secondmin =a(2)

  Else

    firstmin=a(2)

    secondmin=a(1)

  End if

  For i=3 To 50

    If a(i) < secondmin Then

      If        ②        then

        Secondmin = firstmin

        firstmin = a (i)

      Else

                 ③         

      End If

    End If

  Next i

  Label1. Caption = "第二小的数是" str(secondmin)

End Sub

  1. (1) 为了在列表框List1中加入随机产生的数字,小明在程序中写了语句 “List1. AddItem Str(a(i))”,其中Addltem是List1对象的。(填字母:A .属性/B .事件/C .方法)
  2. (2) 为实现上述功能,请在划线处填入合适的代码。

     ② ③ 

某算法的部分流程图如图所示。执行这部分流程,若输入x的值分别为16、9、8、7、6、5、4、1,则输出的结果是(  )

 

A . 6 B . 6.5 C . 7 D . 9.33
下列属于正确的VB赋值语句的是(  )。
A . x+y=10 B . 5=a+b C . p=True D . 2a= Text1. Text
某程序功能如下:将自然数从1到100按某种方式排列起来,单击“输出”按钮Command1,在列表框List1中显示排列后的数表,运行结果如图所示。

  1. (1) 下列对象中不具有Caption属性的是(单选,填字母:A .Command1 /B .Form1 /C .List1)
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_Click()

    Const n = 10

    Dim i As Integer, j As Integer

    Dim d(0 To 100) As Integer

    For i = 1 To n

     For j = 1 To n

     If i = 1 Then

     d(j) = j ^ 2

     Else

     If j = 1 Then

           ①      

     Else If j < i

     d((i - 1) * n + j) = d((i - 2) * n + j) - 1

     Else

              ②          

     End If

     End If

     Next j

    Next i

    ‘在列表框List1中按每行10个输出数组d的所有元素,代码略

    End Sub

    ①处代码为,②处代码为

  3. (3) 程序中加框处代码有错,请改正。

    应改为

下列VB表达式中,可取到的最小值中,最小的为(    )
A . Rnd-99 B . Fix((-Rnd*45))*2-10 C . int((Rnd-Rnd)*100) D . -Int(Rnd*45)*2-10
分析完善程序。

假设银行的年存储利率为3%,如果现在存储10000元钱,问多少年后连本带利超过12000元。设定:连本带利=本金*(1+利率)年数。

假设n年后连本带息超过12000,根据题意得出数学关系式:10000*(1+3%)n>12000,求最小的n。

Dim s as single

Dim r as single

Dim n as integer

s=10000

r=0.03

n=0

Do while            

   n=n+1

s=s*(1+r)

Loop

Print n;”年后”:”连本带利超过”;s

根据上述回答下列问题

  1. (1) 本题采用的算法是(填写:解析法/穷举法/排序法/递归法)
  2. (2) 写出参考程序中空白处表达式
程序代码如下:

n = 0

x = 1

while x < 20:

 x = x*3

 n = n+1

print(x,n)

屏幕显示结果是(    )。

A . 27  3 B . 3  27 C . 20  3 D . 3  21
下列VB表达式的值等于2020的是(    )
A . Abs(It(-2020.11)) B . Len("2000")+20 C . (2020\1000+2200 Mod 1000)*10 D . ValMid("-2020",))+2000
Python表达式中,可以使用(   )控制运算的优先顺序。
A . 圆括号( ) B . 方括号[ ] C . 大括号{ } D . 尖括号< >
小王编写了一个实现文字查找及替换功能的VB程序,运行界面如图所示。文本框Text1中显示原文内容,在Text2中输入查找内容,Text3中输入替换内容,单击“全部替换”按钮Commiand1后,Text4中显示替换的结果,Text5中显示替换次数,Text6中显示“查找内容”在原文中的起始位置。

实现上述功能的VB程序如下,但加框处代码有误,请改正。

Private Sub Command1_Click( )

  Dim s As String,result As String,pos As String

  Dim count As Integer,i As Integer

  i=1:count=0

  result="":pos=""

  Do While i<=Len(Text1.Text)

    s=Mid(Text1.Text,i,Len(Text2.Text))

    If s=Text2.Text Then

      result=result+Text3.Text

      count=count+1

      pos=     ‘①

      i=i+Len(Text2.Text)

    Else

             ‘②

      i=i+1

    End If

  Loop

  Text4.Text=result

  Text5.Text=Str(count)

  Text6.Text=pos

End Sub

以上程序段运行时,为了实现上述功能,加框处代码应改正为:①;②

编写一个VB程序,功能如下:单击“随机数”按钮Command1,随机产生n个[10,50]范围的偶数。单击“计算”按钮Command2,在这n个随机数中找出四个数a,b,c,d,满足d=a+b+c,且d为所有满足条件组合中的最大值,如果存在符合要求的d,则在Text2中显示d的值,否则显示“no solution"。

例如:42、50、14、16、22、10、34、10、12、38这10个数中,最大的d为50,50=12+16+22。请回答下列问题:

  1. (1) 分析程序可知,生成随机数的事件处理过程名是
  2. (2) 实现功能的VB程序如下,请在划线处填入合适的代码。

    Dim a(1 To 20) As Integer

    Const n = 10

    Private Sub Command1_ Click)

        Dim i As Integer

        Randoni ze

        For i=1Ton

            a(i) =

            Text1.Text = Text1. Text + Str(a(i))

        Next i

    End Sub

    Private Sub Command2_ Click ()

        Dim i As Integer, j As Integer,t As Integer

        Dim left As Integer, right As Integer

        Dim ans As Integer, flag As Boolean

        flag = True

        '对数组a进行升序排序,代码略

        i=n

        Do While i >= 1 And flag

            j=i-1

            Do While j >= 1 And flag

               

                left = 1

                right = j- 1

                Do While

                    If ans > a(left) + a(right) Then

                        left=left+1

                    ElseIf ans < a(left) + a(right) Then

                        right = right-1

                    Else

                        Text2. Text = Str(a(i))

    flag = False

                    End If

                Loop

                j=j-i

            Loop

            

        Loop

        If flag Then

            Text2. Text ='no solution'

        End If

    End Sub

  3. (3) 程序中加框处代码有错,请改正。
小吉编制了一个python程序如下,但程序无法执行,你帮他找出程序中一共有几处错误(     )

1a=3

b=input()

c=a+b

print(“c”)

A . 1 B . 2 C . 3 D . 4
完善以下程序代码完成下列小题。

程序描述:计算两个浮点数a和b的相除的余数,a和b都是正数。这里余数(r)的定义是:a = k * b + r,其中k是整数, 0 <= r < b。代码如下:

a=                    ①     (input("请输入:"))

b=                    ①     (input("请输入:"))

k=                    ② 

r=                    ③

print(r)

①处的语句是,②处的语句是,③处的语句是

①A.int              B.float            C.a%b           D.a/b

②A.a**b              B.a//b            C.a%b           D.a/b

③A.a//b              B.a-kb            C.a-k*b            D.a+kb

程序中的变量是计算过程中要用的数据的
某学校开展了艺术节活动,数组a中存储了n个节目的编号和得分数据,数组存储结构如下图所示:

小明使用选择排序思想对上述n个节目按得分进行降序排序(得分相同的按编号升序排列),并依据得分插入各个节目的排名信息,处理后数组a的存储结构如下图所示:

程序运行时,单击命令按钮Command1后读取数据到数组a中并显示在列表框List1中,单击命令按钮Command2后将节目按照上述规则进行排序,并将排名结果显示在列表框List2中。实现上述功能的VB程序如下,请回答下列问题:

  1. (1) 已知窗体名称为Form1,要使程序加载时,窗体标题自动显示为“第15题程序”,则可在(单选,填字母:A .Form_ Click() / B .Form Load() / C .Form1_ Click() / D .Forml_ Load()) 事件过程中添加代码: Form1. Caption= "第15题程序"。
  2. (2) 请在划线处填入合适的代码。

    Const n = 20

    Dim a(1 To 3 * n) As Integer

    Private Sub Command1_Click ()

        ‘读取数据,存储在数组a中,并显示在列表框List1中。代码略

    End Sub

    Private Sub Command2_Click ()

        

            k=i

            For j=1 To i-1

                If a(2*j) < a(2*k) 0r  Then

                    k=j

                End If

            Next j

            a(3*i)=a(2*k)

            a(3*i-1)=a(2*k-1)

            

            a(2*k-1)=a(2*i-1)

        Next i

        List2. AddItem "第1名:编号”+ CStr(a(2)) + ",分数”+ Str(a(3))

        a(1) =1

        mc=1

        For i=2 To n

            If  Then mc=i

            List2. AddItem "第"+ Str(mc) + "名:编号" + CStr(a(3* i-1)) +",分数"+Str(a(3 * i))

            a(3*i-2)=mc

        Next i

    End Sub

  3. (3) 加框处代码有误,请改正。
最近更新