第4单元 计算与问题解决 知识点题库

语句  “ i=3:s=1/(i-3)”  无法执行,原因是它违反了算法特征中的(   )
A . 有穷性 B . 唯一性 C . 可行性 D . 确定性
【加试题】小林和小王合作编写一个查询英语单词的VB程序:小林编写一个过程,单击“读取数据库”按钮Command1,从一个数据库中读取英语单词和中文含义,分别保存在a数组和b数组中。并显示在List1中;小王编写另一个过程,在文本框Text1中输入要查询的单词,单击“查询”按钮Command2,将查询单词的中文含义显示在Text2中,程序界面如图所示。

  1. (1) 分析程序,“英语单词”和“中文含义”被保存在数据表中。
  2. (2) 按此要求编写的程序如下,请在画线处填入合适的代码。

    Const n=3500               ’存储单词的总数

    Dim a(1 To n)As String      ’依次存储每个英语单词

    Dim b(1 To n) As Strin9    ’依次存储每个英语单词的中文含义

    Private Sub Command1_Click()

      Dim Conn As New ADODB.Connection

      Dim rs As New ADODB.Recordset

      Dim strSQL As String

    conn.ConnectionString=“Provider=Microsoft.ACE.OLEDB.12.0;Data source=”&App.Path&“\dictionary1.accdb”

      strSQL=”select*from list”

      conn.Open

      Set rs.ActiveConnection=conn

      rs.Open strSQL

      num=0

      Do While Not rs.EOF

           num=num+1

           a(mum)=rs.Fields(“英语单词”)

           b(num)=rs.Fields(“中文含义”)

           rs.MoveNext

      Loop

      rs.Close

      conn.Close

      Set rs=Nothing

      Set conn=Nothing

      For i==1 To n

             List1.AddItem a(i)+“  ”+b(i)

      Next i

      End Sub

      Private Sub Command2_Click()

      Dim s As String

      S=Text1.Text

      If search(s)=-1 Then

              Text2.text=“找不到该单词”

      Else

              Text2.Text=   ①  

      End If

      End Sub

      Function search(key As String)As Integer

      Dim i,j As Integer

      Dim mid1,mid2 As Integer

      i=1:j=n

      search=-1

      Do While i<=j

           mid1=Int(j+(j—i)/3)

           mid2=Int(j-(j-i)/3)

           If key=a(mid1)Then

                search=mid1

                Exit Do

           ElseIf key<a(mid1)Then

                j=mid1-1

           ElseIf key=a(mid2)Then

                search=mid2

                Exit Do

           Elself key>a(mid2)Then

                i=mid2+1

           Else

                i=mid1+1

                   ②  

           End If

     Loop

    End Function

        ②  

任意一个大于或等于4的偶数,都可以用两个素数之和表示,这就是哥德巴赫猜想。如:4=2+2,6=3+3,8=3+5, 10=5+5,12=5+7,98=19+79。

编写一个验证哥德巴赫猜想的VB程序:程序运行时,在文本框Text1中输入一个大于或等于4的偶数,单击“验证”按钮Command1后,如果哥德巴赫猜想验证成功,则在文本框Text2中显示“Yes”,并在列表框List1中显示用两个素数表示该偶数的等式,否则显示“No”。程序运行效果如图所示。

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

Function judge(x As Integer)As Boolean

 ‘函数judge的功能是判断整数x是不是素数,若是素数则返回True,否则返回False

 Dim j As Integer

 judge=True

 j=2

 Do While j<=x-1 And judge=True

If x Mod j=0 Then

judge=False

Else

j=j+1

End If

 Loop

End Function

Private Sub Command1_Click()

 Dim n As Integer, p As Integer, q As Integer, flag As Boolean

 n=Val(Text1.Text)

 p=1

 flag=False

 Do While  And p<n    ‘

 p=p+1

      ‘

If judge(p)And judge(q)Then

Text2.Text=“Yes”

flag=True

List1.AddItem Str(n)+“=”+Str(p)+“+”+Str(q)

  End If

 Loop

 If flag=False Then

Text2.Text=“No”

End Sub

某对分查找算法的VB程序段如下:

t=“”: i=0 : j=9 : key=62: f=False

Do While i<=j And Not f

    m=Fix((i+j) / 2)

    t=t+Str(rn)

    If a(m)=key Then

        f=True

    Elself a(m) > key Then

         i=m+1

         t=t+“→”

    Else

        j=m-1

        t=t+“←”

    End If

Loop

数组元素a⑹到a⑼的值依次为“99, 94, 90, 87, 78, 70, 63, 56, 45, 36”,执行该程序段,t的值是(  )

A . “4→7←5→” B . “4→ 7← 5→ 6→” C . “4→7←5→6” D . “4→ 7← 5”
子串判断:一个字符串中任意个连续的字符组成的子序列称为该字符串的子串。例如字符串“ABC”和“BCD”等都是字符串“ABCDE”的子串。小王编写了一个判断子串的程序,其功能如下:在文本框Text1中输入字符串S1,在文本框Text2中输入字符串S2。单击按钮 Command1后,在标签Label1上显示判断的结果:S1是不是S2的子串。运行界面如图所示,请回答下列问题。

  1. (1) 程序窗体中没有使用的控件是(选填字母:A . /B . /C . /D .
  2. (2) 实现上述功能的VB程序如下。请在划线处填入合适的代码。

    Private Sub Command1 _Click ( )

    Dim s1 As String, s2 As String

    Dim c1 As Integer, c2 As Integer

    Dim flag As Boolean

    s1= Text1. Text s2= Text2 Text

    c1 = Len(s1):c2= Len(s2)

    flag= False

    For i=1 To c2-c1+1

        If   ①    Then

            flag True

                 ‘Exit For用于退出Fox循环

        End If

    Next i

    If   ②   Then

        Label1. Caption=s1+ “是”+s2+ “的子串!”

    Else

        Label1. Caption=s1+ “不是”+s2+ “的子串!”

    End If

    End Sub

     ② 

  3. (3) 假设上面的程序代码全部正确填写,此时若将代中加框处的代码“Exit For”语句删除,其他代码保持不变,则(选填:会/不会)影响程序的最终运行结果。
某对分查找算法的VB程序段如下:

i = 1: j = 6: k = 0

key = Val(Text1.Text)

Do While i<= j

k = k + 1

m = Int((i + j)/2 + 0.5)

If key = a(m) Then Exit Do

  If key < a(m) Then j = m - 1 Else i = m + 1

Loop

文本框Text1中输入27,执行该程序段后,k的值为2,则a(1)到a(6)各元素可能的值是(   )

A . 12,45,27,31,78,95 B . 15,27,56,61,73,89 C . 89,73,61,56,35,27 D . 13,31,47,56,73,80
要将显示一个有背景色的窗口改为显示一个有背景图片的窗口应将*处改为两句,请填写在下划线处。

screen.fill((255,255,0))    #窗口填充黄色*

               #加载背景图像

                #将背景图画在窗口

pygame.display.update()        #窗口刷新

不能用算法描述“输出所有完全平方数”,是因为该任务不符合算法特征中的(    )
A . 有穷性 B . 有0个或多个输入 C . 确定性 D . 有1个或多个输出
2018年我国流通领域重要生产资料市场价格数据的示例如图所示。编写Python程序,统计每个产品的最高价格和平均价格。

请回答下列问题:

  1. (1) 数据文件“data.asv"包含的数据列有,本次分析主要涉及的数据列有
  2. (2) 实现上述功能的Python程序如下,在划线处填入合适的代码。

    import pandas as pd

    df= pd. read _csv("data.csv")

    df_ g=

    df_ max=df_ _g["价格(元)"].max( )

    df_ mean=

    print(df_ max)

    print(df_ mean)

某DataFrame对象df,包含“商品编码”“销售价格”“销售日期”等数据列。下列语句中,能将df对象中的数据以“商品编码"为关键字降序排序的是(    )
A . df.sort_ index( axis=1, ascending=True) B . df.sort _values('商品编码', ascending =False) C . df.sort _values('商品编码', ascending=True, inplace=True) D . df.sort_ values('商品编码', ascending=False, inplace=True)
编写VB程序,实现在文本中统计以某字母开头的单词总数,并依次输出查找到的每个单词。程序功能如下:文本框Text1中输入文本(单词间用空格、“,”、”.”分隔),文本框Text2中输入开头字母,单击“查找”按钮Commmand1后,标签Label1中显示符合条件的单词总数,列表框List1中依次输出每个单词,程序运行界面如图所示。

  1. (1) 要使程序运行时,窗体Form1标题栏自动显示“统计指定字母开头的单词”,可在(单选,填字母:A .Form Load) /B .Form _Click(/ C .Command1 Click() 事件过程中添加相关语句来实现。
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

    Private Sub Command1_ Click()

        Dim i As Integer, j As Integer, n As Integer, flag As Boolean

        Dim st As String, szm As String, ch As String, word As String, tmp As String

        st = Text1. Text

        szm = Text2. Text

        flag = True: n=0

        For i=1 To Len(st)

           

            If ch = szm And flag = True Then

                n=n+1: word = ch

                For j=i+1 To Len(st)

                    tmp = Mid(st, j, 1)

                    If tmp<>””And tmp <>”.”And tmp <>“,” Then

                       

                    Else

                        List1. AddItem Str(n) +“.”+ word

                        i=j

                        Exit For

                    End If

                Next j

            ElseIf ch=“” Or ch=“,” Or ch= “.”Then

               

            Else

                flag = False

           End If

        Next i

        Label1.Caption=“字母”+ szm +“开头的单词总数:”+ str(n)

    End Sub

在Python模块库中有大量模块可供使用,要想使用这些文件,就需要用(    )语句把指定模块导入当前程序中。
A . move B . in C . import D . print
下列关于算法的特征描述不正确的是(     )。
A . 有穷性:算法必须在有限步之内结束 B . 确定性:算法的每一步必须有确切的含义 C . 输入:算法至少有一个输入 D . 输出:算法至少有一个输出
尼克斯彻定理:任何一个大于等1的整数的立方等于一串连续奇数之和,如:13=1,23=3+5,33=7+9+11。编写一个VB程序验证尼克斯彻定理,程序运行时,在文本框Text1中输入一个于等于1的整数,单击“验证”按钮Command1,在文本框Text2中显示验证结果,运行界面如图所示。

实现上述功能的VB代码如下,请完善代码:

Private Sub Command1_Click()

    Dim n As Integer, i As Integer, t As Integer, sum As Long, s As String

    n=Val(Text1.Text)

    For i=1 To n^3 step 2           '变量i表示连续奇数的首个整数

        sum=0:t=i:flag=False

        Do While sum<n^3 And flag= False

            sum=

            t=t+2

            If Then flag=True

        Loop

        If flag=True Then Exit For

    Next i

    s=Str(n)+ "^"+Str(3)+ "="

    Do While sum>0

       

        If sum= 0 Then

            s=s+Str(i)

        Else

            s=s+Srt(i)+ "+"

        End If

        i=i+2

    Loop

    Text2.Text=s

End Sub

下列VB程序段功能为:字符串s1、s2仅由字母组成,长度相同,在忽略大小写的情况下判断两者是否相同,结果显示在Label1中。

For i = 1 To Len(s1)

c1 = Mid(s1, i,1): c2 = Mid(s2, i, 1)

    If  Then

       If  Then Exit For      '退出For循环

       If  Then Exit For

       If  Then Exit For

    End If

Next i

If i > Len(s1) Then Label1.Caption =“相等” Else Label1.Caption =“不相等”

上述程序段中方框处可选语句为:

①Abs (Asc(c1) - Asc(c2)) <> 32 ②c1 <> c2

③c1 >= "a" And c2 >= "a" ④c1 <= "Z" And c2 <= "Z"

则(1)(2)(3)(4)处语句依次可为(      )

A . ①②③④ B . ①③④② C . ②①④③ D . ②④③①
某对分查找算法的VB程序段如下:

Key = Val(Text1.Text)

i=1:j=10

Do While i<= j

    m= (i+j)\ 2

    s= s+Str(a(m)\ Key)

    If a(m) > Key Then j= m- 1 Else i=m+1

Loop

Text2.Text = s

数组元素a(1)到a( 10)的值依次为“2,3,5,8,9,10,13,17,19,20”。在文本框Text1中输入待查找的整数,执行该程序段,则文本框Text2中显示的内容可能的是(    )

A . 2  1  1 B . 0  1  1  1 C . 0  0  1  0 D . 0  2  0  1
以下程序导入python的math模块,使用math模块下的函数对输入的实数进行向下取整,具体代码如下:

       ①     

n = input("请输入一个实数:")

       ②     

print(n3)

请完善该代码,上述划线处可选的语句为:(   )

A . ① import math ;② n3=math.floor(float(n)) ; B . ① import math;② n3=floor(float(n)) ; C . ① import math ;② n3=math.sqrt(float(n)) ; D . ① from math import ceil ;② n3=ceil(float(n)) ;
现有18枚硬币,18枚硬币中有一个是伪造的,并且那个伪造的硬币比真的硬币要轻。有一台用来比较两组硬币重量的仪器,使用递归及分治法设计一个算法,找出那枚伪造的硬币。阅读下列程序代码。

def check3(a,right,left):

    b=(left-right+1)//3

    if right==left:

        index=right+1

        return index

    elif right+1==left:

        if a[right] < a[left]:

            index=right+1

            return index

        else:

            index=left+1

            return index

    else:       

        if sum(a[right:right+b]) == sum(a[right+b:right+2*b]):

            return check3(a,right+2*b,left)                       

        elif sum(a[right:right+b]) > sum(a[right+b:right+2*b]):   

            return check3(a,right+b,right+2*b-1)                

        else:

            return check3(a,right,right+b-1)                   

a = [1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1]

index1=0

right0 = 0

index1= check3(a,right0,len(a))

print("你要找的假币在第",index1,"个位置")

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

假设列表a中,0表示伪造的硬币,下列说法正确的是(     )

A . 此程序递归部分为三分法递归查找伪造的硬币 B . sum(a[right:right+b])==sum(a[right+b:right+2*b])表示第二组的重量与第三组重量相同 C . 此程序递归部分为二分法递归查找伪造的硬币 D . 以上都不对
下列VB程序运行时,单击命令按钮Command1后,文本框Text1中显示的内容是,文本框Text2显示的内容是

Private Sub Command1_ Click( )

    Dim a(1 To 6) As Long,i As Integer

    a(1)=1

    a(2)= 1

    For i=3 To 6

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

    Next i

    Text1. Text=Str(a(6))

    Text2. Text= Str(i)

End Sub

numpy是Python中的一个科学计算包,它包含很多数学函数,下列可以创建一个等差数列的函数是(      )
A . average函数 B . arange函数 C . sum函数 D . sqrt函数
最近更新