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

设计人口普查程序,用一个变量表示海南省的人口总数,这个变量的类型应是(   )
A . 整型 B . 实型 C . 长整型 D . 双精度型
下列VB表达式的值等于3的是(   )。
A . Sqr(2) + 1 B . Abs(-1) - 2 C . Asc("1") + 2 D . Len("-2") + 1
下列给出的赋值语句中正确的是(   )  
A . 4=M B . M=-M C . B=A=3 D . x+y=0
Int(196.555*100+0.5)/100的值是(  )。
A . 198 B . 199.6 C . 198.56 D . 196.56
下列VB表达式中,值最大的是(  )
A . 127Mod 20\2 B . Len(“4+5”) C . Int(Sqr(45) ) D . Asc(“a”)-Asc(“h”)
有如下VB程序段:

Dim i As Integer,sum As Integer

Dim a(1 To 6)As Integer,b(1 To 6)As Integer

Sum=0

a(6)=18:a(5)=7:b(6)=14:b(5)=16

For i=4 To 1 Step-1

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

  b(i)= b(i+2)-a(i)

  If b(i)Mod 3=0 Then sum=sum+b(i)

Next i

Text1.Text=Sir(sum)

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

A . 39 B . 30 C . -9 D . 12
在文本框Text1中输入一串字符串,单击“运行”按钮后,程序在列表框List1中输出该字符串的所有子串,程序运行界面如图所示,VB代码如下。

   s=Text1.Text

   For i=1 To Len(s)

       For j=    ①   

           List 1.AddItem   ②   

       Next j

   Next i

为实现上述功能,程序段两个划线处的语句分别为 (  )

A . ①i To Len(s)         ②Mid(s,i,j-i+1) B . ①1 To Len(s)-i+1     ②Mid(s,j,i) C . ①i To Len(s)-i+1     ②Mid(s,i,j-i+1) D . ①1 To Len(s)        ②Mid(s,j,i)
有如下VB程序段:

Randomize

a(0)=0:i=1

Do While i<= 7

  a(i) =Int(Rnd*10) *3+ 1

  If i Mod 2= 1 Then

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

  ElseIf a(i) Mod 2= 1 Then

    i=i-1

  EndIf

  i=i+1

Loop

该程序段执行后,a(1)-a(7)各元素的值可能为(  )

A . 7 10 7 4 20 16 44 B . 22 16 32 10 32 22 49 C . 28 4 14 16 44 28 41 D . 4 1 29 38 10 35
下列VB程序段运行完毕后,变量x的值为(   )。

x=2 : y=64

    Do while x<= Sqr(y)

    x=x+3

    Loop

A . 2 B . 5 C . 8 D . 11
一个六位二进制数1■■■■0,其中四位未知。设计算法,求所有符合上述形式的六位二进制数之和s(用十进制表示)。
  1. (1) 符合上述形式的六位二进制数共有(     )。
    A . 4个 B . 8个 C . 15个 D . 16个
  2. (2) 根据下表的分析思路,请将划线部分填写完整。

    二进制

    十进制

    第1个数

    10 000 0

    32+0

    第2个数

    10 001 0

    32+2

    ……

    最后1个数

    11 111 0

    32+

  3. (3) 小林根据上述思路,设计一段不完整的程序。请完善划线处内容,完成上述功能。

    Dim i As Integer, s As Integer

    i = 0: s = 0

    Do While

      

       i = i + 1

    Loop

    Print s

以下程序中,单击按钮“Command1”后,在Text1中随机生成了由数字0~9组成的20位随机数字。

同时,在Text2中对该数字进行“加密”,加密规则为:对于每一位数字,加上5,结果保留个位。程序运行界面如图所示。

  1. (1) 若要将按钮上的文本修改为“转换”,则应修改Command1对象上的属性。
  2. (2) 实现以上功能的VB程序如下,请在画线处填入合适的代码。

    Private Sub Command1_Click( )

        Dim s1 As String, s2 As String, c As String

        Dimi As Integer, s As Integer

        For i=1 To 20

            s1=s1+   ①   

        Next i

        Text1. Text=s1

        For i=1 To 20

            c=Mid(s1, i, 1)

            s=    ②   

            s2=s2 & s

        Next i

        Text2. Text=s2

    End Sub

    以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②

  3. (3) 若此程序仅生成4位数字7894,其他规则不变,则输出的结果为
利用for循环,分别计算1--100中奇数的和、偶数的和。

sum1=0

sum2=0

for i in range(1,100):

    if i%2==0:

        sum1+=i

    else:

        sum2+=i

print(sum1,sum2)

已知列表list1=[8,22,34,9,7],则python表达式len(list1)+min(list1)的值为(   )
A . 5 B . 34 C . 7 D . 12
给定一个正整数,要求将该数各个位上数字反转得到一个新数,如数字56020反转得到新数2065。有如下VB程序段:

n=Val(Text1.Text)

s=""

flag=True

Do While n>0

      ⑴ 

    n=n\10

    If Not flag Or x>0 Then

          ⑵ 

        flag=False

    End If

Loop

If s="" Then s ="0"

Labe 11.Caption=s

方框中(1)和(2)应填入的代码顺序为(    )

①x=nMod10^len(n)  ②x=nMod10  ③s=Str(x)+s  ④s=s+Str(x)

A . ①③ B . ②③ C . ①④ D . ②④
语句Print 5/4*6\5 Mod 2的输出结果是(    )
A . 0 B . 1 C . 2 D . 3
在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编如事件过程:

Private Sub Command1_Click()

    Dim array1(10, 10) As integer

    Dim i As integer, j As integer

    For i= 1 To 4

        For j= 2 To 5

            Array1(i, j)=i+j

        Next j

    Next i

    Text1.Text = array1(2, 5) + array1(3, 4)

End Sub

程序运行后,单击命令按钮,在文本框中显示的值是(    )

A . 15 B . 14 C . 13 D . 12
在窗体上有两个标签(Label1和Label2)一个命令按钮(Command1),单击命令按纽Command1,从键盘中输入学生姓名和成绩,统计并在标答中输出最高学生姓名和成绩及最低学生姓名和成绩。当从键盘中输入-1时,结束输人。程序代码如下,请补充完善程序。

Private Sub Commaadl Click()

    Dim xm As String,xmmax as String ,xmmin as String

    Dim cj As Single,cjmax As Single,cjmin As Single

    xm=InputBox("请输人学生姓名")

    cj=InputBox("请输人学生成绩")

    xmmax=xm

    cjmax=cj

    xmmin=xm

    cjmin=cj

    Do While

        If Then

            cjmax=cj

            xmmax=xm

        End if

        If Then

            cjmin = cj

            xmmin=xm

        End if

        xm=InputBox("请输人学生姓名")

        cj=InputBox("请输人学生成绩")

        Label1.Caption ="学生"&xmmax&"成绩最高”&cjmax

        Label2.Caption ="学生"&xmmin &“成绩最低"& ejmin

   

End Sub

某网站对信息进行加密解密,选择页面“index.html”如图1,加密页面“jia.html”如图2,解密页面“jie.html”如图3。在选择页面点击相应按钮,选择加密或解密。

图1

图2

图3

选择加密时,在明文文本框中输入明文,点击“加密”按钮,网页显示密文与对应的密钥。加密规则为打乱明文对应的索引作为密钥,再利用该索引逐个取明文字符连接成密文,例如:明文为“信息技术”,若被打乱的索引为[2,0,1,3],则密文为“技信息术”,密钥为“2,0,1,3”

选择解密时,在密文文本框中输入密文,密钥文本框输入密钥,点击“解密”按钮,网页显示明文。

  1. (1) 该网络应用属于架构。(单选,填字母:A . B/S架构,B . C/S架构)
  2. (2) 若待解密文本为“自息爱信也我己爱”,密钥为“2, 7, 1, 6, 4, 0, 3, 5”,则解密结果是
  3. (3) 实现该功能的python程序如下,请在划线处填入合适的代码:

    from flask import render_template,request,Flask

    import random

    app=Flask(__name__)  #创建应用实例

    @app.route('/')  #选择页面路由

    def index():

        return render_template('')

    #加密功能代码略,以下为解密代码:

    @app.route('/jiemi1/',methods=["GET","POST"])

    def jiemi1():

    wb=request.form["wb"] #利用request获取网页文本框内容,返回示例:“1,4,2,3,0”

    keyo=request.form["key"]  #变量wb存储密文,变量keyo存储密钥

        keyn=list(map(int,keyo.split(","))) #将字符串keyo转换为数值列表,示例:[1,4,2,3,0]

        result=""

    for i in range(len(keyn)):

    for j in range(len(keyn)):

    if :

                        break

            result+=wb[j]

        return render_template("jie.html",WB=wb,KEY=keyo,RESULT=result)

    if __name__=="__main__":

       

  4. (4) 根据上述描述与图1,则“天气”节点中的“多云”信息熵是
  5. (5) 实现求首次划分节点的程序如下,请在划线处填入合适的代码:

    def cal(lst): #计算样本lst的信息熵

    x,y,z=0,len(lst),0  #x表示该样本信息熵,y表示该样本数量,z表示某信息发生的概率

        num={}

    for i in lst:

    if i not in num:

              

            num[i]+=1

    for k in num:

            z=num[k]/y   #计算该信息发生的概率

    x-=z*log(z,2) #根据公式计算信息熵,log(b,a)等价于logab

        return x

    def check(x,y):

    #根据节点x,对样本y进行划分,返回示例:{'否': [1, 1, 0, 0, 1, 1, 1, 1], '是': [1, 1, 0, 1, 0, 0]}

    dic={'是否有风': ['否', '否', '否', '否', '否', '否', '否', '否', '是', '是', '是', '是', '是', '是'],

    '天气': ['多云', '多云', '晴', '晴', '晴', '雨', '雨', '雨', '多云', '多云', '晴', '晴', '雨', '雨'],

    '温度': [28, 27, 29, 22, 21, 21, 20, 24, 18, 22, 26, 24, 18, 21],

    '湿度': [78, 75, 85, 90, 68, 96, 80, 80, 65, 90, 88, 63, 70, 80],

    '是否前往': [1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0]}

    xm=list(dic.keys())

    entropy=cal(dic[xm[-1]])  #调用函数计算样本原始信息熵entropy

    #计算各节点信息增益

    m=0;p=""

    col=xm[:-1] #“是否前往”是结果项,不参与计算

    for i in col:

    size=len(dic[i]);entropy_1=0

        zyb=  #调用函数对样本按照当前节点进行划分

    for j in zyb: #根据划分情况逐个求子样本信息熵并按比例累加

    entropy_1+=len(zyb[j])/size*cal(zyb[j])

        zy=entropy-entropy_1

    print(i,"的信息增益:",zy)

    if zy>m: #计算最大信息增益与信息增益最大的节点

            m=zy

           

    print("信息增益最大的节点:",p)

在Python中,以下赋值语句格式不正确的是(     )。
A . x,y=y,z B . x,y=1,2 C . x=y=30 D . x+y=z
最近更新