第三章 算法的程序实现 知识点题库

【加试题】小明编写了一个输出十进制与二进制数对应表的VB程序。程序运行时,单击“输出”按钮Command1后,在列表框List1中输出运行结果如图所示。实现上述功能的VB代码如下,但横线处代码有错,请改正。

Dim b(4) As Integer         '数组b按位存储二进制数,数组类型为整型,元素个数为4个

Private Sub pprint(m As Integer) 

'本过程打印输出一行十进制数m和对应的二进制数

'代码略

End Sub

Private Sub Command1_Click()

  Dim i As Integer, j As Integer                                        

  List1.Clear                                                               

  List1.AddItem "十进制数      二进制数"                          

  For i = 1 To 4                                          

      b(i) = 0                                                   

  Next i

  For i = 0 To 15                                    

      Call pprint(i)                                    

      j =   1                '(1)         

      b(j) = b(j) + 1                  

      Do While  b(j) = 0     '(2)  

         b(j) = 0                            

         j = j - 1                          

         b(j) = b(j) + 1              

      Loop                                  

  Next i                                

End Sub

 ⑵ 

在VB中,表达式(26 Mod 4)+4的值是 (   )
A . 2 B . 6 C . 10 D . 3
已知 a=30,b=10,c=3,则表达式 int(sqr(a))mod b\c的值为(  )
A . 1 B . 2 C . 0 D . 1.67
“字符串合并”程序实现功能:在文本框Text1中输入字符串1,在文本框Text2中输入字符串2,单击“合并”按钮Command1,按如下规则依次从中取出各字符进行合并,合并后的结果显示在标签对象Label3中。

合并规则如下:

⑴当字符串1的长度大于字符串2的长度时,将字符串2中的各个字符从左侧依次插入到字符串1中的各字符后方。例如字符串1为“abcdef”,字符串2为“123”时,合并后的字符串为“a1b2c3def”

⑵当字符串2的长度大于等于字符串1的长度时,将字符串1中的各个字符从右侧依次插入到字符串2中的各个字符后方。例如字符串1为“abcd”,字符串2为“12345”时,合并后的字符串为“12d3c4b5a”。

程序运行界面如图所示。

  1. (1) 要使程序运行时,窗体Form1标题显示“字符串合并”,可在Form_Load事件过程中添加语句(单选,填字母:A .Fom1. Caption=“字符串合并”/B .Label3. Caption=“字符串合并”C .Text1. Text=“字符串合并”)。
  2. (2) 实现上述功能的VB程序如下,请在画线处填入合适的代码。

    Private Sub Commandl_Click ()

    Dim sl As String, s2 As String, ans As String

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

        s1=Text1. Text

        s2=Text2. Text

        m=Len (s1)

        n=Len (s2)

        If m>n Then

            For i=1 To n

                ans=ans+Mid (sl, i, 1)+Mid (s2, i, 1)

            Next i

            ans=ans +Mid (sl, i, m-n)

        Else

            For i=1 To m

                ans=   ①   +Mid (s1, i, 1)+ans

            Nest i

            ans=Mid (s2, 1, n-m)+ans

          ② 

        Label3. Caption=“合并为”+ans

    End Sub

     ② 

  3. (3) 若在文本框Text1中输入“Word”,在文本框2中输入“Min”,单击“合并”按钮后,标签Label3中显示的内容是
某网络服务平台要求新注册的用户名必须以字母开头,同时包含字母、数字和下划线,长度为6~18个字符。编写一个VB程序,判断用户名的合法性,具体功能如下:在文本框Text1中输入用户名,单击“检测”按钮,在文本框Text2中输出结果。程序界面如图所示。

  1. (1) 由下面代码可知运行界面中“检测”按钮的对象名是
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码

    Private Sub Btn_Click ()

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

      Dim n1 As Integer, n2 As Integer, n3 As Integer

      n1 =0:n2=0:n3=0

      s=Text1. Text

        ① 

      ch=Mid (s, 1, 1)

      If n<6 Or n>18 Then Text2. Text=“不合法”:Exit Sub′退出当前子程序

      If Not (ch>=“a”And ch<=“z”Or ch>=“A”And ch<=“Z”)Then

        Text2. Text=“不合法”:Exit Sub

      End If

      For i=2 To n

        ch= Mid (s, I, 1)

        If ch>=“a”And ch<=“z”Or ch>=“A”And ch<=“Z”Then

          n1=n1+ 1

        Elself ch>=“0”And ch=“9”Then

          n2=n2+1

        ElseIf ch=“_”Then

          n3=n3+1

        End If

      Next i

      If   ②   Then Text2. Text=“不合法”Else text2. Text=“合法”

    End Sub

     ② 

  3. (3) 若文本框Text1中输入的内容为“XWang”,单击“检测”按钮后,文本框Text2中显示的内容是
有如下 Visual Basic程序段:

Dim a(1 To 10)As Integer

a(1) = 1: a(2) = -1

For i = 3 To 10

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

Next i

Text1 Text = str (a(5))

该程序段运行后,Text1中显示的值是(  )

A . 0 B . -1 C . -2 D . -7
玫瑰花数是一个四位正整数,该数每一位上的数字4次方之和等于它本身。如:1634=14+64+34+44,小张设计VB程序用于找出所有可能的玫瑰花数,程序运行界面如下图所示。

  1. (1) 在窗体中要显示玫瑰花图像(文件名为flower.bmp),需添加图像框image1,并设置其属性(单选,填字母:A .Image/B .Pictrue/C .Caption/D .Text)的值为“flower.bmp”。
  2. (2) 为实现上述功能,请在划线处填入合适的代码。

    Private Sub Command1_Click()

     Dim sum As Integer, a As Integer, b As Integer

     Dim i As Integer, c As Integer, d As Integer

     List1.Clear

     sum = 0      '玫瑰花个数

     For i = 1000 To 9999

    a = i Mod 10     '求个位上的数字

     b =①       '求十位上的数字

     c = i \ 100 Mod 10       '求百位上的数字

     d = i \ 1000         '求千位上的数字

     If a ^ 4 + b ^ 4 + c ^ 4 + d ^ 4 = i Then

     List1.AddItem Str(i)

    End If

     Next i

     Label1.Caption = "玫瑰花个数为:" + Str(sum)

    End Sub

  3. (3) 解决该问题主要采用的算法是
以下程序段执行后,输出结果为(    )。

  m=29

  If m Mod 3 <> 0  Then

    Print m & “不能被3整除”

  Else

   Print m & “能被3整除”

  End If

A . n能被3整除 B . n不能被3整除 C . 29不能被3整除 D . 29能被3整除
在VB中,用变量ID存储学生的学籍号(如“20190305”),则变量ID的数据类型应定义为(   )
A . Integer B . Single C . String D . Date
在Python中,表达式(21%4)+5的值是(    )
A . 2 B . 6 C . 10 D . 3
利用Python求100以内所有能被3整除的正整数,代码如下:

图片_x0020_100004

则下列程序第3行的横线应该填(    )

A . i=i*3 B . i=i%3 C . i%3==0 D . i/3==1
在Python中,合法的标识符是(      )
A .  _ B .  3C    C .  it’s    D . (全是小写字母)str
下列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"
COD(化学需氧量)是衡量水质污染程度的重要指标之一,污水处理时根据污水的COD指标来计算COD去除剂的投放量。

程序界面如图1所示,在本框Text1中输入COD指标,单击“计算投放量”按钮(Command1)后,程序根据COD指标计算出合适的COD去除剂投放量,并在标签Label3中输出计算结果。

污水处理厂根据COD指标投放COD去除剂的标准如下表所示:

当前COD指标X

根据COD指标应投放COD去除剂的剂量

X<50

10

X≥50并且X≤500

X>500

3X

图 1

图2

  1. (1) 在设计界面时,应使用图2所示“控件工具箱”中的(填写相应编号)添加“计算投放量”按钮。
  2. (2) 为实现上述功能,请在划线处填入合适代码。

    Private Sub Command1_Click( )

        Dim x As Single,s As Single

        x =Val(Text1. Text)

        If x < 50 Then

            s=10

        ElseIf 

           

        Else

            s=3*x

        End If

        Label3. Caption= 

    End Sub

学习了Python绘制图形操作后,信息小组接到了编程演示的任务。为此,小组同学编写了一段代码,绘制出多个不同颜色的圆形。

代码如下:

import turtle

turtle. bgcolor("black")

colors=["red", "green", "blue", "yellow"]

for x              range(100):

turtle. pencolor(colors[x%4])

turtle. circle(x)

turtle. left(90)

请分析任务,完成下列题目。

  1. (1) 程序中横线处应填写            
    A . Print B . Input C . In D . Colors
  2. (2) 程序中x%4的作用是            
    A . 计算x乘以4的结果 B . 计算x除以4的整数部分 C . 计算x除以4的小数部分 D . 计算x除以4的余数
  3. (3) 执行此程序,绘制出圆形的总颜色数是(________)。
    A . 1 B . 4 C . 5 D . 100
  4. (4) 执行此程序,绘制出圆形的总个数是            
    A . 1 B . 4 C . 99 D . 100
  5. (5) 此程序属于程序设计结构中的            
    A . 顺序结构 B . 分支结构 C . 循环结构 D . 跳转结构
编写一个VB程序,实现如下功能:在文本框Text1中输入一个偶数n,判断该数在10步之内通过以下计算过程后能否回到初始值。计算步骤如下:

1)将n乘以3后加1产生一个新的数

2)对产生的新数循环执行如下操作:新数是偶数时,用新数除以2;新数是奇数时,用新数乘以3后加1

譬如,以2为初始值,则计算过程如下。2→7→22→11→34→17→52→26→13→40→20→ 10→5→16→8→4→2。数字2不能在10步之内回到初始值。

界面如图所示,回答下列问题:

  1. (1) 若要把窗体的标题名称由“Form1”改为“数值猜想”,应改变窗体的属性。
  2. (2) 完成上述功能的程序代码如下,请在划线处填入合适的代码

    Private Sub Command1_Click()

        Dim n As Integer, t as Integer ,m as Integer ,s as String

       

        t = n * 3 + 1

        m = 1

        s = ""

        Do While

            s = s + Str(t)

            If t Mod 2 = 0 Then

                t = t \ 2

            Else

                t = t * 3 + 1

            End If

            m = m + 1

        Loop

        If n = t Then

            Label1.Caption = s + Str(n)

        Else

            Label1.Caption = "该数10步之内无法实现!"

        End If

    End Sub

  3. (3) 按照以上VB程序的计算方法,若在文本框Text1中输入4,能否在10步之内回到初始数。(选填:能/否)
语句Print 5/4*6\5 Mod 2的输出结果是(    )
A . 0 B . 1 C . 2 D . 3
已知a(1)到a(6)的初值依次为“5、6、7、8、9、10”,在文本框Text1中输入4,执行以下程序段后a数组各元素的值为“9、10、5、6、7、8”,则①②划下线处填空选项为(    )

n=6

k=Val(Text1.Text)

For j=i-1 To n

    temp= a(i)

    For j=i-1 To   ①   Step-1

        a(j+ 1) = a(j)

    Next j

    a(   ②   )= temp

Next i

A . ①i-k   ②j+1 B . ①i-k+1   ②j+1 C . ①i-k   ②j D . ①i-k+1   ②j
一个程序中出现了for i in range(2,8,2)这样一个语句,循环体会执行几次(   )。
A . 1 B . 2 C . 3 D . 4
利用Flask和Sqlite模块,编写相应的Python程序与网页代码,来模拟用户登录验证过程。功能是:运行Python程序,启动浏览器并输入相应网址,在网页中输入用户名、密码,与数据库中的数据进行比对,若正确则在浏览器中显示成功信息,否则显示“用户名或密码错误!”。存储用户名、密码的数据表中共有三个字段,依次表示序号、用户名、密码。input.html网页与success.html网页内容如下:

<html><head><title>输入账号密码</title></head> <body>

<form action="/deal_request" method="get">

请输入账号:<input type="text" name="usr" ><br>

请输入密码:<input type="password" name="psd"><br> <input type="submit" value="提交" />

</form>

</body></html>

<html><head><title>Welcome</title></head>

<body>

<h1>登录成功!</h1><br>

<h1>欢迎你:        ①         </h1><br>

</body></html>

编写的 Python 程序如下:

from flask import Flask, render_template, request

import sqlite3

      ②        = Flask(_name_)

@app.route('/')

def input():

return render_template('input.html')

@app.route('/deal_request',  methods = ['GET'])

def deal_request():

get_usr = request.args.get('usr')

get_psd = request.args.get('psd')

if check(get_usr, get_psd):

  return render_template('succes.html',  name=get_usr)

else:

  return '用户名或密码错误!'

def check(name, psd):

db=sqlite3.connect('login.db')

cur=       ③            #创建游标对象

cur.execute('select * from users')

data=cur.fetchall()

for rec in data:                                    #比对用户名与密码

  if rec[ 1]==name and rec[2]==psd:

    return True

  else:

    return False

if _name_ == '_main_':

app.run(host=' 127.0.0. 1 ',  port=5000,  debug=False)

请完成下列题目:

  1. (1) 在浏览器中输入地址:http://127.0.0. 1:5000 ,则访问的网页是
  2. (2) 若登录成功后,在浏览器中文字“欢迎你:”的后面显示当前用户名,则划线①处的代码是
  3. (3) 要实现上述功能,完善划线②、③处代码。

  4. (4) 若本机IP地址为192.168.0.1,若要使同网段内其他计算机可以访问上述服务,则需将加框处的IP地址改为
最近更新