第四章 程序设计基础 知识点题库

下面VB程序的功能是:程序运行时,在文本框Text1中输入正整数n,单击命令“生成”按钮Command1后,在文本框2中输出n,n-1,…,2,1,2,…,n-1,n。若n=6,在文本框Text2中输出“6 5 4 3 2 1 2 3 4 5 6”。程序运行界面如图所示。

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

Private Sub Command1_Click()

 Dim i As Integer, n As Integer, s As String

 n = Val(Text1.Text)

 s = “”

 For i = 1 To     ‘①

  If i<= n Then

   s = s + Str(n - i + 1)

  Else

         ‘②

  End If

 Next i

 Text2.Text = s

End Sub

程序中①处应改为;

程序中②处应改为

采用拉锯式排序法对无序数组元素实现降序排序,即前一遍把最大的元素从右到左送到最左的位置,后一遍把最小的元素是从左到右送到最右的位置,实现该功能的VB程序段如下:

c = 1: s = 10

Do While c <= s

    For i = s To c + 1 Step -1
        If      Then

            t = a(i - 1): a(i - 1) = a(i): a(i) = t
        End If

    Next i
    For i=

        If     Then

            t = a(i + 1): a(i + 1) = a(i): a(i) = t
        End If

    Next i

    c = c + 1
    s = s - 1

Loop

上述程序段三个方框处的语句分别为(  )

A . ① a(i - 1) < a(i)   ② c +1 To s – c   ③ a(i) <a(i + 1) B . ① a(i - 1) > a(i)   ② c +2 To s – c   ③ a(i) >a(i + 1) C . ① a(i - 1) < a(i)   ② c +1 To s – c-1   ③ a(i) <a(i + 1) D . ① a(i - 1) > a(i)   ② c+ 2 To s – c+1   ③ a(i) >a(i + 1)
(加试题)

m=a(1):s=0

For i= 2 To 5   

    If a(i) >m The nm=a(i)

    s=s+m

    If a(i) <m The nm=a(i)

    s=s+m

Next i

数组元素a(1)到a(5)的值依次为“1,2,3,1,2”,执行该程序段后变量s的值为(  )

A . 9 B . 14 C . 18 D . 19
在VB程序设计中,变量的命名要遵循一定的规则。下列变量名合法的是(  )
A . as B . 2a C . a#2 D . china
有如下 VB 程序,它的输出结果是(   )。

S=0

  For i=1 To 10

    If i mod 2=0 Then S=S+i

  Next i

Print “S=”;S

A . S=0 B . S=25 C . S=30 D . S=5
分析解决问题。

在VB中常用的字符串截取函数有:

函数名

功能

示例

结果

Mid(s, m, n)

从字符串s的第m位开始,截取长度为n的字符

Mid(“ABCDEFG”,5,2)

“EF”

Left(s, n)

截取字符串s左边n个字符

Left(“ABCDEFG”,3)

“ABC”

Right(s, n)

截取字符串s右边n个字符

Right(“ABCDEFG”,2)

“FG”

假如某人身份证号码S=“370102199602190000”,如果需要根据此人身份证号码求出该人的“出生年月日”。下列表达式不能实现的是(    )。

A . Mid (s,7,8) B . Right (Left(s,14),8) C . Mid (s,7,4)+Mid(s,11,2)+Mid(s,13,2) D . Left (s,14)-Left(s,6)
有如下Visual Basic程序段:

Private Sub Command1_ Click ()

  Dim a(1 To 10) As Integer, i As Integer, k As Integer

  a(1)=1:a(2)=17:a(3)=8:a(4)=9:a(5)=18

  a(6)=15:a(7)=20:a(8)=13:a(9)=7:a(10)=11

  k=0

  For i= 2 To 9

    If(a(i)-a(i-1))*(a(i+1)-a(i))< 0 Then k=k+1

  Next i

  Text1. Text = Str (k)

End Sub

该程序段运行后后,文本框Text1中显示的内容是(   )

A . 6 B . 7 C . 8 D . 9
数组a中存储着某市2010年到 2019 年的GDP数值,编写VB程序,实现找出相邻两年GDP变化最大(即相邻两年GDP差值最大)的年份区间。若有多个符合要求的年份区间,只输出距今最近的年份区间。部分代码如下所示:

Dim i As Integer, imax As Integer

       ①  

For i = 3 To 10

   If Abs(a(i) - a(i - 1)) >=  ②  Then imax = i

Next i

Text1.Text = "GDP变化最大的年份区间是" + Str(imax + 2008) + "-" + Str(imax + 2009)

①、②应填入的代码为(   )

A . ①imax=1  ②Abs(a(i - 1) - a(i - 2)) B . ①imax=1  ②Abs(a(imax) - a(imax - 1)) C . ①imax=2  ②Abs(a(i - 1) - a(i - 2)) D . ①imax=2  ②Abs(a(imax) - a(imax - 1))2
有如下VB自定义函数,则下列参数值中,使函数返回值为1的是(  )

Function Leap(y As Integer)As Integer

  If y Mod 100=0 Then

    If y Mod 400=0 Then Leap=1 Else Leap=0

  Else

    If y Mod 4=0 Then Leap=1 Else Leap=0

  End If

End Function

A . 1900 B . 1951 C . 2006 D . 2020
下列VB程序段实现把文本框Text和Text2中输入的升序字符串合并成一个升序字符串,并在文本框Tex3中显示。

s1=Text1.Text: s2=Text2.Text

n=Len(s1): i=1: j= 1

Do While i<n+j-1 And j<=Len(s2)

    If Mid(s1, i, 1)<Mid(s2, j, 1) Then

           ①  

    Else

        s1= Mid(s1, 1, i-1)+Mid(s2, j, 1)+ Mid(s1, i, n+j-i)

           ②  

    End If

Loop

If    ③    Then s1=s1+Mid(s2, j, len(s2)-j+1)

Text2.Text=s1

横线①②③处的代码为(     )

A . j=j+1  i=i+1   j<=len(s1) B . i=i+1  j=j+1    j<=len(s1) C . j=j+1  i=i+1   j<=len(s2) D . i=i+1  j=j+1    j<=len(s2)
某压缩算法的基本思想是用一个数值和一个字符代替具有相同值的连续字符串。例如,输入字符串“RRRRGGBBBB”,压缩后为“5R2G6B"。小钱设计了以下Python程序来实现上述功能。

string-input("输入字符串:")

c=1

p=1

while p <= len(string)-1:

if       ①      

     c+= 1

else:

    s += str(c)+string[p-1]

          ②      

    p+=1

print("压缩后数据为:" ,s)

  1. (1) 请在程序划线处填入代码。

     ② 

  2. (2) 小钱运行程序后结果出错,如图所示,请帮他修改代码并说明原因。

    错误结果

    修改代码并说明原因

    输入字符串:RRRRRGGBBBBBB

    压缩后数据为: 5R2G

  3. (3) 将上述while语句改写为for语句。

用Python程序实现统计随机数出现的次数。若随机产生30个[0,9]的整数,统计数字0~9出现的次数。以下是部分Python程序段,请回答下列问题: .

import random

def check(a):

b=[0]*10     #初始化列表b,列表元素为10个0

for i in range(0,len(a)):

            ①        

return b

list=[0]*30

for i in range(0,30):

    num = random.randint(0,9)

           ②         

print(list)

print("0~9数字依次出现次数.:"       ③        )

  1. (1) check函数的功能是
  2. (2) 程序中划线处应填入的代码是什么?

     ② ③ 

在VB中,表达式6+Abs(-4)的执行结果是(    )
A . 4 B . 8 C . 10 D . 2
完善程序实现以下功能并保存。

输出数组的最大值。

arr1 =[12, 435, 76, 24, 78, 54, 866, 43]

 = -32768

for i in range(0,7):

    if arr1[i] > max1 : max1 =

print("最大值是:",)

input("运行完毕,请按回车键退出...")

下列不属于基本数据类型的是(    )
A . 浮点型 B . 整型 C . 布尔型 D . 复数类型
已知某数据加密方法如下:将字符的内码以字节为单位进行加密。将每个字节的后5位转换为十进制数,后面跟上“,”和该字节的前3个二进制位转换为十进制数,形成该字节的加密形式。例如:

内码(十六进制)

CA

B1

二进制

11001010

10110001

后5位十进制

10

17

前3位十进制

6

5

加密结果

10,6,17,5

按照上述规则,小明设计了一个解密的VB程序,功能如下:单击“解密”按钮,程序依次将文本框Text1中的字符提取,进行解密处理,并输出在文本框Text2中,程序效果如图a所示,请回答下列问题

  1. (1) 要改变Command1对象上的字体颜色,可以改变Command1对象的属性的属性值。(单选,填字母:A . Caption/B . Font/C . Forecolor/ D . Additem)。
  2. (2) 实现上述功能的VB程序段如下,请在划线处填入合适的代码。

    Private Sub Command1_Click()

        Const n = 100

        Dim s As String, ch As String, nm As String

        Dim p As Integer, i As Integer, k As Integer, t As Integer Dim a(1 To n) As Integer

        s = Text1.Text p = 0: k = 0

        For i = 1 To Len(s)

            ch = Mid(s, i, 1)

            If ch >= "0" And ch <= "9" Then

               

            Else

                If k Mod 2 = 1 Then

                   

                Else

                    a(k+1) = p

                End If

                k = k + 1:p = 0

            End If

        Next i

        a(k + 1) = p * 32 + a(k)

        For i =

            nm = nm + dtoh(a(i))

        Next i

        Text2.Text = nm

    End Sub

    Function dtoh(x As Integer) As String Const

        st1 = "0123456789ABCDEF"

        Do While x > 0

           

            x = x \ 16

        Loop

    End Function

  3. (3) 程序中加框处代码有错,请改正。
小明设计了将明文字符(大、小写字母)转为密文字符的加密算法,加密方法如下:输入需要加密的字符,如果是小写字母,则后移3位,例:“a”→“d”,“b”→“e”,……,若超过“z”则重新从“a”开始,即“x”→“a”;如果是大写字母,则前移1位,例:“B”→“A”,“C”→“B”,……,若加密字符为“A”则加密结果为“Z”(提示:“a”的ASCⅡ码为97,“A”的ASCⅡ码为65)

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

c=input("请输入需要加密的字符(大写或小写字母):")

if "a"<=c<="z":

  x=

  if x>122:

    

else:

  x=ord(c)-1

  if :

     x=90

print(c+"的加密字符为:",chr(x))

编程求1~50之间所有的奇数之和(for语句实现)
下列能表示“x不小于5且小于10”的逻辑表达式是(    )
A . x≥5 and x<10 B . 5≤x<10 C . x>=5 or x<10 D . 5<=x<10
下列代码的输出结果是 (    )

s=['seashell', 'gold', 'brown', 'purple', 'tomato']

print(s[2][1:4])

A . gold B . row C . gol D . rown
最近更新