算法及程序语言基础 知识点题库

编写VB程序,实现如下功能:在文本框Text1中输入当天对应的星期,文本框Text2中输入天数,单击“推算”按钮Command1,推算出相应天数后的星期情况,并在标签Label1中输出结果。界面如图所示。

  1. (1) 程序界面中共有类对象。

  2. (2) 为实现上述功能,请在画线处填入合适的代码。

      Private Sub Command1_Click()

        Dim x As String,xq As String,num As Integer

        Dim i As Integer,h As Integer,f As Boolean

        x=”一二三四五六日”

        xq=Text1.Text

        num=    ①   

        f=False:i=1

        Do While i<=7 And f=False

          If xq=Mid(x,i,1)Then

             h=i:f=True

          End If

          i=i+1

        Loop

        r=(h+num) Mod 7

        If r=0 Then

           Label1.Caption=“星期日”

        Else

           Label1.Caption=“星期”+    ②  

        End If

      End Sub

     ②

  3. (3) 若当天是“星期五”,在文本框Text2中输入“166”,单击“推算”按钮后,标签Label1中显示的内容是

在 Visual Basic 中,关系表达式 x/y=x\y 为真,则说明(  )
A . x不能被y整除 B . x与y一定不相等 C . x与y一定相等 D . x 能被y整除
有如下VB程序段:

For i=1 To 8

    d(i)= In(Rnd*10)

Next i

For i= 2 To 8

    If i Mod 2=0 And d(i)> d(i-1)Then

        d(i)=d(i-1)+1

    ElseIf i Mod 2= 1 Then

        If d(i)>d(i-2) Then

            t=d(i): d(i)=d(i-2): d(i-2)=t

    End If

Next i(  )

A . 8 8 7 1 3 5 0 1 B . 9 0 8 3 5 6 0 1 C . 6 2 5 4 7 8 2 3 D . 9 10 6 7 5 3 2 2
数组a中存储了无序的数组元素,为了使a数组中的元素存储为左右交替上升,小赵依据选择排序思想设计了如下VB程序算法,为了实现上述功能,划线处应填入的代码为(  )

L = 1: R = n

Do While L < R

imin_1 = L: imin_2 = R

    For i = L + 1 To R

        If a(i) < a(imin_1) Then

           imin_2 = imin_1

           imin_1 = i

        ElseIf a(i) < a(imin_2) Then

           imin_2 = i

        End If

    Next i

    If imin_1 <> L Then t = a(imin_1): a(imin_1) = a(L): a(L) = t

    ____________________

    If imin_2 <> R Then t = a(imin_2): a(imin_2) = a(R): a(R) = t

    L = L + 1: R = R - 1

Loop

A . If imin_1 = L Then imin_1 = imin_2     B . If imin_1 = L Then imin_2 = imin_1 C . If imin_2 = L Then imin_1 = imin_2   D . If imin_2 = L Then imin_2 = imin_1
有如下程序段: 

Dim s(1 To 81) As Integer, I As Integer, j As Integer, C As Integer, temp As Integer

  c=0 : s(1) = 0

  For i = 1 To 9

    For j = 1 To i

    temp = s(j * i)

    s(j * i) = j * i

    If temp <> s(j * i) And s(j * i) Mod 9 = 0 Then c =c + 1  

  Next j

Next i

该程序段运行后,变量c的值为(   )

A . 9 B . 10 C . 11 D . 12
阅读程序,写出运行结果

Dim n As Integer

n=Val(InputBox(“n=”))

Do While n Mod 2=0

    n=n\2

Loop

Print n

程序运行时,输入24,输出n的值是:

Pygame自带了一个监听类循环,不断检查用户的操作,这个循环在程序运行过程期间持续工作。仔细阅读理解如下代码填写下划线处内容

while True:

  for event in pygame.event.get():    # 

     if event.type==pygame.QUIT:          #  

       sys.exit()                  #退出程序

        if event.type==pygame.MOUSEBUTTONDOWN:     #

运行下列程序,正确的结果是

s=0

for i in range (1 5):

    s=s+i

print("i=",i,"s=",s)

请在空格处填写正确的代码,使程序完善。

实现功能:用辗转相除法求解两个正整数的最大公约数。

x = int(input('请输入第一个正整数:'))

y = int(input('请输入第二个正整数:'))

m = max(x,y)            #找出x,y中的最大值

n = min(x,y)            #找出x,y中的最小值

r = m%n                 #求得最大值除以最小值后的余数

while r!=0:           #如果余数不等0,则进行以下循环

    m =           #把最小值赋给m

    n =          #把余数赋给n

    r = m%n             #求得最大值除以最小值后的余数

print('这两个数的最大公约数为:',)

input("运行完毕,请按任意键退出....")

以下关于算法的描述正确的是(    )
A . 计算方法 B . 计算公式 C . 计算机程序 D . 解决问题的步骤
如果在Python中输入print("3+5=")并按下回车后,输出结果是(     )
A . 8 B . print(3+5) C . 3+5 D . 3+5=
下列VB表达式的值为False的是(      )
A . 8 Mod 10 \ 5 = 0 B . Int(Rnd * 50) Mod 2 * 2 < 4 C . Mid("1234", 3, 2) > "234" D . "Abc" < "ABCD"
张文同学使用VB编写了一个程序用来求半径为r(通过Text1输入)的圆面积(π取值3.14),该程序如下。请帮助他修改程序中的错误。

Private Sub Command1_ Click( )

    Dim pi As Single

    Const pi=3. 14

    Text2.Text=2 pi*Text1.Text

    Text3.Text=pi*Text2.Text*Text2.Text

End Sub
①删除程序中多余的语句;
②修改语句“Text2.Text=2 pi*Text1.Text”行中的错误;
③修改语句“Text3.Text=pi*Text2.Text*Text2.Text”行中的错误;
④使用常用工具栏中的“保存工程”按钮保存文件。

某VB程序功能:输入正整数n,单击命令按钮Command1后,则会衍生出一串有规律的数字,形式为“1 2 3…n-1 n n-1…3 2 1 ”。例如n=6时,显示的数字串为“1 2 3 4 5 6 5 4 3 2 1 ”。

Private Sub Command1_Click()

  Dim a As intger, i As intger, s As String

  n = Val(Text1.Text)

  s = ""

  For i = 1 To 2 * n - 1

    If i > n Then     ①      Else      ②      

  Next i

  text2.Text = s

End Sub

为实现以上功能,①②处分别填写(    )

A . ①s=Str(2*n-i)     ②s=Str(i) B . ①s=s+Str(2*n-i)   ②s=s+Str(i) C . ①s=s+Str(2*n-1)   ②s=s+Str(2*n) D . ①s= Str(2*n-1)    ②s= Str(2*n)
Python表达式len('Hello2021!')+ abs(3**2-10)的值为(     )
A . 14 B . 13 C . 11 D . 9
Python程序运行时,从键盘输入的内容默认是(   )数据类型
A . 字符串 B . 整数 C . 浮点数 D . 都不是
有如下VB程序段:

Dim a(1 To 6) As Integer

For i=1 To 6

    a(i)= Int(Rnd * 4)+1

    If a(i) Mod 2=0 And i Mod 2=0 Then

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

    End If

    s=s+Str(a(i))

Next i

执行该程序段后,变量s的值可能是(    )

A . 242221 B . 333126 C . 043513 D . 323117
输入两个数,交换后在窗体上输出这两个数.

PRIVATE SUB FORM_CLICK( )

    A=VAL(INPUTBOX(“请输入第一个数”))

    B=VAL(INPUTBOX(“请输入第二个数”))

    T=A

   

   

   

END SUB

小明为了将十进制数转化为k进制数(k值范围在2到16之间),设计如下界面程序:在文本框Text1中输入一个十进制数,在文本框Text2中输入整数k,单击“运行”按钮Command1,程序将十进制转化为k进制值,并在标签Label1中输出结果。请回答下列问题:

  1. (1) 程序窗体中“运行”所用的控件是(选项A . ;B . ;C . ;D . )。
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_ Click()

      Dim d As Integer, k As Integer, r As Integer

      Dim s As String, c As String

      d= Val(Text1. Text)

      k= Val(Text2. Text)

      s=" "

      Do While d>0

        r=d Mod k

        If r>=10 Then

          c= Mid(“ABCDEF”,,1)

        Else

          c=str(r)

        End If

        s=

        d=d\ k

      Loop

      Label1. Caption=“结果为:”+s

    End Sub

  3. (3) 运行该程序,在文本框Text1中输入“28”,文本框Text2 中输入“16”,单击“运行”按钮,则Label1显示的内容为是
执行第4次循环后,a,b的值分别是(     )

A . 2,14 B . 3,14 C . 11,13 D . 13,14
最近更新