4.1.4 Python的函数 知识点题库

以下是牛顿迭代程序,认真阅读,填写横线内容。

import math

a=float(input("请输入方程系数a:"))

b=float(input("请输入方程系数b:"))

c=float(input("请输入方程系数c:"))

d=b*b-4*a*c

if :

    x1=(-b+math.sqrt(d))/(2*a)

    x2=(-b-math.sqrt(d))/(2*a)

    print("方程有两个不同的解",x1,x2)

elif :

    x1=-b/(2*a)

    print("方程有两个相同的解",x1)

else:

print("方程无解")

有Python程序段如下:

import pandas as pd

df1=pd. DataFrame([[10, 20], [30, 40]], columns=['A','B'])

df2=pd. DataFrame([50, 60], [70, 80]], columns=['A',B'])

df=df1. append(df2,ignore_ index= True)

print(df)

该程序段运行后输出结果为(    )

A . B . C . D .
有VB程序段如下:

s1 = Text1.Text

s2 = ""

For i = 1 To Len(s1)

    c = Mid(s1, i, 1)

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

        c = Chr((Asc(c) - Asc("0") + 1) Mod 10 + Asc("0"))

        s2 = s2 + c

    ElseIf c >= "A" And c <= "Z" Then

        c = Chr(Asc(c) + 32)

        s2 = c + s2

    End If

Next i

Text2.Text = s2

执行该程序段,在文本框Text1中输入“GoLand,19”,则文本框Text2中显示的内容为(    )

A . lg20 B . lg210 C . 210,dnalog D . 210,goland
某垃圾分类VB程序功能如下:在文本框Text1中输入一串字符(数据用逗号分隔,以逗号结尾),单击“统计”按钮Cmd1后,程序实现计算干、湿垃圾的重量及总重量(单位:斤)。输入字符串中的前后两个数字字符为一组,第一个数字字符代表垃圾种类,1表示干垃圾,2表示湿垃圾,第二个数字字符代表该垃圾的重量。例如:输入字符串“2,1,1,12,”,程序统计结果为干垃圾12斤,湿垃圾1斤,总重量13斤。程序运行界面如图所示。

  1. (1) Cmd1对象属于类(单选,填字母:A .Form / B .Label / C .TextBox / D .CommandButton)
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Cmd1_Click()

        Dim s As String, s1 As String, t As Integer, i As Integer

        Dim k As Integer, bh As Integer, w As Integer

        Dim w1 As Integer, w2 As Integer

        s = Text1.Text: k = 1: t = 0: bh = 0      'bh存储当前垃圾的垃圾编号

        w1 = 0: w2 = 0

        For i = 1 To Len(s) s1 = Mid(s, i, 1)

            If  Then

                t = t * 10 + Val(s1)

            Else

                If Then

                    bh = t

                Else

                    If bh = 1 Then

                        w1 = w1 + t

                    Else

                        w2 = w2 + t

                    End If

                   

                End If

                k = k + 1

               

            End If

        Next i

        List1.AddItem "干垃圾共" + Str(w1) + "斤"

        List1.AddItem "湿垃圾共" + Str(w2) + "斤"

        Label3.Caption = "总重量共有" + Str(w) + "斤"

    End Sub

  3. (3) 程序中加框处代码有错,请改正。
小王设计一个VB程序以实现对随机数n(2位正整数),进行二进制转换,结果在标签Label1上输出。部分程序代码如下:

n=  ①   

Do while  ②  

    tmp=n mod 2

      ③  

      ④ 

Loop[

Label1.Caption=s

则为实现上述功能,正确的代码顺序应该是(    )

A . B . C . D .
以下程序的功能是(      )

dim X AS double

X=inputbox(“x=”)

if X<0 then

    X=-X

endif

print X

A .   输入X,输出X的相反数 B .   输入X,输出X的绝对值 C .   输入X,输出X的平方根 D .   输入X,判断其是否小于0,并输出X
小美在研究自定义货币系统,她想知道和自己定义的任意货币系统等价,同时面额种数最少的货币系统中有多少种面额。例如,和{3,6,10,19}等价的货币系统中,面额种数最少的是{3,10},即可用{3,10}表示{3,6,10,19}中的任意数。

在寻找等价货币系统时,小美发现了如下规律:

1)与给定货币系统等价的货币系统必定是该货币系统的子集;

2)如果货币系统中的某个面额可以被其他货币表示时,该面额是无效的;

为此,小美按照如下方法构造最小等价货币系统B:先将原货币系统A的所有面额升序排序,每次把A中可以被B中的货币表示的面额删去后,将A中的最小面额放入B中。以此类推。基于此方法,小美编写了如下程序,在文本框Text1中输入给定的货币系统,单击按钮Command1后,在标签Label1中输出与其等价的货币系统的最小面额种数,在标签Label2中输出该货币系统。程序运行界面如图所示。

  1. (1) 若给定货币系统为{4,6,8,14,22},则与其等价的面额种数最少的货币系统为
  2. (2) 按此要求编写的程序如下,请在划线处填入合适的代码。

    Private Sub Command1_Click()

        Dim s As String, tmp As String, c As String

        Dim n As Integer, i As Integer, j As Integer, ans As Integer

        Dim a(1 To 100) As Integer, b(1 To 10000) As Boolean

        '数组b(i)用于表示值i能否用已经放入新货币系统中的面额来表示

        '此段程序用于将给定货币系统存储在a数组中并将其元素个数存储在变量n中

        s = Text1.Text

        tmp = "": n = 0

        For i = 1 To Len(s)

            c = Mid(s, i, 1)

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

               

            ElseIf tmp <> "" Then

                n = n + 1

                a(n) = Val(tmp)

                tmp = ""

            End If

        Next i

        For i = 1 To n - 1

            For j = n To i + 1 Step -1

                If  Then

                    t = a(j): a(j) = a(j - 1): a(j - 1) = t

                End If

            Next j

        Next i

        ans = 0: s = "{"

        For i = 1 To a(n)

            b(i) = False

        Next i

        For i = 1 To n

            If Not b(a(i)) Then

                ans = ans + 1

                If ans <> 1 Then s = s + ","

                s = s + CStr(a(i))     'Cstr函数用于将数值变量转为字符串变量并去除首位空格

                

                For j = a(i) + 1 To a(n)

                    If b(j - a(i))= True  Then b(j) = True

                Next j

            End If

        Next i

        s = s + "}"

        Label1.Caption = "与之等价的最小货币系统面额种数为" + Str(ans)

        Label2.Caption = "其为" + s

    End Sub

有如下VB程序段:

s = "PYTHON"

t = "8421"

result = ""

For i = 1 To Len(t)

    x = Val(Mid(t, i, 1))

    y = (x - 1) Mod Len(s) + 1

    result = result + Mid(s, y, 1)

Next i

Text1.Text = result

执行上述程序段后,文本框Text1中显示的是

A . PYHY B . PTPT C . TPTP D . YHYP
下列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函数中,返回值类型均为String的是(   )
A . Len/Str B . Asc/Mid C . Chr/Str D . Sqr/Abs
LZW编码是一种自适应词典编码,通过建立一个字典,实现字符的编码。假设输入的字符串中仅有小写字母和空格,编码方法如下:

⑴初始时,建立一个空字典,把26 个小写字母加入字典中。26 个小写英文字母编码为 1-26,字母“a”的编码为 1,字母“b”的编码为2,其它字母的编码依次增加。

⑵从字符串第一个位置开始扫描,若遇到空格(空格用“*”表示),则得到一个单词,截取该单词并存入变量中。

⑶若该单词在字典中,则取出该单词在字典中的编码值;否则,依次取出该单词中各字母在字典中的编码值,(编码值之间用一个空格分隔),同时产生该单词的编码(编码为字典中的最大编码值加1),加入字典中。

⑷继续扫描字符串,截取单词,并按照步骤⑶的方法进行处理,直至整个字符串编码完毕。字符串“ab ab”LZW编码过程如图所示。

  1. (1) 如果字符串为“ab bb bb”,则其LZW编码为
  2. (2) 请在划线处填入合适的代码。

    Dim pos As Integer, a(1 To 100)As String

    Private Sub Form_Load()

        '将字母“a”至“z”依次存入数组元素a(1)到a(26)

    End Sub

    Function judge(ss As String) As Integer            '判断字典中是否有ss这个单词

        Dim i As Integer judge = 0

        For i = 27 To pos

            If a(i) =Then judge = i

            Exit For

            End If

        Next i

    End Function

    Private Sub Command1_Click()

        Dim s As String, i As Integer, j As Integer, k As Integer, ch As String, word As String, result As String, Dim id As Integer, idletter As Integer

        s = Text1.Text pos = 26: i = 1

        Do While i <= Len(s)

            j = i

            Do While Mid(s, j, 1) <> " "

                j = j + 1

                If j > Len(s) Then Exit Do

            Loop

            word = Mid(s, i, j - i)

            If Len(word) = 1 Then            '单个字母的单词

                result = result + Str(Asc(word) -Asc("a") + 1)

            Else

                id = judge(word)

                If id = 0 Then               '新的单词

                    For k = 1 To Len(word)                   '依次处理该单词中的各个字母编码

                        ch = Mid(word, k, 1)

                       

                    Next k

                    pos = pos + 1              '对该单词编码

                    a(pos) = word

                Else             '词典中存在该单词

                    result = result + Str(id) End If

            End If

            If j < Len(s) Then result = result + " *"

           

        Loop

        Text2.Text = result

    End Sub

有如下VB程序段:

s1 = "00100100" : s2 = "" : flag = True

For i = Len(s1) To 1 Step -1

    ch = Val(Mid(s1, i, 1))

    If flag Then

        s2 = Str(ch) + s2

        If ch = 1 Then flag = False

    Else

        s2 = Str(1 - ch) + s2

    End If

Next i

Label1.Caption = s2

执行该程序段后,标签Label1中显示的内容是(   )

A . 1 1 0 1 1 0 1 1 B . 1 1 0 1 1 0 0 1 C . 1 1 0 1 1 1 0 0 D . 1 1 0 1 1 0 0 0
Python 标准库 math 中用来计算平方根的函数是,取大于等于x的最小的整数值函数是,求绝对值的函数是
完善代码并保存。

实现功能:从键盘输入10个学生的测试成绩,输出最高分和最低分。

cj=[]

for i in range(0,):

    x=float(input("请输入一个数"))

    cj.append()

print(max(cj), min())

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

有如下VB程序段:

For i = 1 To 5

    a(i)= Int(Rnd * 10)

Next i

For i = 2 To 5

    If a(i) < a(i -1) And a(i) Mod 2 = 1 Then

        a(i) = a(i) + 1

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

        a(i) = a(i -1) -1

    End If

Next i

执行程序后,a数组各元素不可能是(    )

A . 6,6,4,3,3 B . 0,-1,9,8,4 C . 4,3,5,8,7 D . 0,1,3,2,0
小林编写了一个用于1至9之间整数加减乘除运算的小程序,具体功能如下:在文本框Text1中输入一个算术表达式(该表达式仅包含1至9之间的整数和加减乘除运算符,其中最后一个运算符肯定是乘或除,且乘或除运算符的前和后一个运算符仅可能为加减或没有),单击“计算”按钮Command1,将运算结果显示在Label2中。程序运行界面如图所示,实现上述功能的VB程序如下,请回答下列问题:

  1. (1) 将窗体标题更改为“简单算术运算",应修改窗体的属性的属性值。
  2. (2) 请在划线处填入合适的代码。

    Private Sub Command1_ Click()

        Dims As String, c As String, i As Integer

        Dim sum As Single, sum1 As Single, sum2 As Single, k As Integer,j As Integer

        s = Text1.Text : sum2=0:k= 1

        For i= 1 To Len(s)

            c=

            If c= "*" Or c= "/" Then

                If c="*" Then

                    sum = Val(Mid(s,i+ 1, 1)) * Val(Mid(s,i- I, 1))

                Else

                    sum = Val(Mid(s, i- 1, 1))/ Val(Mid(s,i+ 1,1))

                End If

                j=i-2

                Do While

                    c = Mid(s,j, 1)

                    If c="+" Then sum1 = Val(Mid(s,j-1, 1)) + sum

                    If c="-" Then sum1 = Val(Mid(s,j- 1, 1)) - sum

                    sum=sum1

                    j=j- 1

                Loop

                If k=1 Then

                    sum2 = sum2 + sum

                Else

                    c= Mid(s, k, 1)

                    If c =“+" Then sum2 = sum2 + sum

                    If c="" Then sum2 = sum2 - sum

                End If

                k=

            End If

            sum=0

        Next i

        Label2.Caption = sum2

    End Sub

  3. (3) 加框处的代码有错误,请改正。
已知由字母组成的字符串s,现要实现如下功能:将字符串s中的字母按照26个英文字母顺序依次输出(重复出现的字母只需输出一次)。如s="Congratulate",输出结果为"aceglnortu",为实现上述功能,在横线处填入的代码应该是(    )

Dim a(1 To 26)As Integer

    s=Text1. Text

    For i=1 To Len(s)

           ①      

        If c>="A" And c<="Z" Then c=Chr(Asc(c)+32)

            ②    

    Next i

    For i=1 To 26

        If a(i)<> 0 Then Label1.Caption= Label1.Caption+     ③    

Next i

A . ①c=Mid(s,i,1)   ②a(Asc(c)-96)=a(Asc(c)-96)+1   ③Chr(96+i) B . ①c=Mid(s,i,1)   ②a(i)=a(i)+1   ③Chr(a(i)) C . ①c=Mid(s,i,1)   ②a(Asc(c)-96)=a(Asc(c)-96)+1   ③Chr(a(i)) D . ①c=Mid(s,i,1)   ②a(i)=a(i)+1   ③Chr(96+i)
在一个整数序列中找第k小的字母,若有相同的字母,则位置靠前的字母名次靠前,如有字母序列为“A,B,A,D,C”则第1小的字母为A在第1个位置,第2小的字母为A在第3个位置,笫3小的字母是B,在第2个位置,第4小的字母是C,在笫5个位置,笫5小的字母是D,在第4个位置。编写一个VB程序实现如下功能,程序启动时随机产生n个A-G之间的随机大写字母,在文本框Text2中输入整数k(k<=n),单击“查找第k小的字母”按钮Commandl后,在文本框Text3上显示笫k小的字母位置。程序运行界面如下图所示。

  1. (1) 若要清空文本框 Text1 中的内容,能实现该功能的语句是 (单选,填字母:A .Text1.Caption=""/B . Text1.Text=""/C . Text1.Clear)
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Const n = 20

    Dim i As Integer

    Dim a(1 To n) As String

    Private Sub Form_Load()

        Randomize

        For i = 1 To n

            a(i) =

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

        Next i

    End Sub

    Private Sub Command1_Click()

        Dim k As Integer, count As Integer

        Dim b(0 To 7) As Integer

        k = Val(Text2.Text)

        For i = 1 To n

           

        Next i

        i = 1

        Do While i < 7 And b(i) < k

           

            i = i + 1

        Loop

        Key = i

        count = 0

        For i = 1 To n

            If a(i) = Chr(Key + 64) Then count = count + 1

            If count = Then Exit For

        Next i

        Text3.Text = "第" + Str(k) + "小的字母是:" + Chr(Key + 64) + ";位置是:" + Str(i) End Sub

  3. (3) 程序中加框处有错,请改正。
运行如下python程序代码,如果输入5,那么输出为(    )

def f(a,b):

result=a*b

s=a+b

return result

a=int(input("a="))

b=10

s=f(a,b)

print(s)

A . 程序报错 B . s C . 15 D . 50
下列Python程序段功能为:随机生成省会城市的测试题目及相应答案。运行结果如图所示。

import random

dict={"北京市":"北京","上海市":"上海","河北省":"石家庄",…    #dict中存储中国34个省级行政区及其省会城市

sf=list(   ⑴   )

sh=list(   ⑵   )

sj=random.randint(0,33)        #生成[0,33]之间的整数

zd=sh[sj]

del sh[sj]             #删除列表 sh 中的第 sj项

xx=random.sample(sh,3)+[zd]      #随机产生列表 sh 中的 3 项,与 zd 连接成新列表xx #对列表xx 中的内容进行随机排序

random.shuffle(xx)        

print("%s 的省会城市是? "%(   ⑶   ))

for i in range(4):

print(‘%s.%s’%(‘ABCD’ [i],xx[i]))

print(‘本题参考答案为: %s’%(‘ABCD’[   ⑷   ]))

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

①dict.values()

②dict.keys()

③sh[sj]

④sf[sj]

⑤xx.index(zd)

⑥xx[zd]

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

A . ①②④⑤ B . ①②③⑥ C . ②①④⑥ D . ②①④⑤
最近更新