4.2 运用顺序结构描述问题求解过程 知识点题库

  已知数组a中的元素按非递减有序排列,在程序运行时显示在Text1中。编写程序实现如下功能:删除数组的重复元素,并更新数组的长度,在Text2输出新的数组元素值。程序运行界面如图所示。

  1. (1) 要是程序运行时,窗体Form1标题立即立即显示为“删除重复数组元素”,可在(单 选:A . Form_Load()/B . Form_click()/C . Command1_Click())事件过程中添Form1.Caption=”删除重复数组元素”语句来实现。
  2. (2) 为实现上述功能的VB程序如下,请在划线处补充缺失的代码。

    Const n = 20

    Dim a(1 To n) As Integer

    Dim lena As Integer

    '数组a的实际长度

    Dim s As String

    Private Sub Form_Load()

    '生成lena个长度的非递减序列,并输出到文本框text1中,代码略

    End Sub

    Private Sub Command1_Click()

        Dim i As Integer, j As Integer

        i = 1

        Do While i < lena

            If a(i) <> a(i + 1) Then

                i =

            Else

                For j = i + 1 To lena

                    a(j - 1) =

                Next j

                 

            End If

        Loop

        s = ""

        For i = 1 To lena

            s = s + Str(a(i))

        Next i

        Text2.Text = s

    End Sub

程序设计题:身份证的编码问题。中国大陆居民身份证号码由18位数字组成:第1至6位的数字为地址代码,表示某省某市某区或县;第7至14位的数字代表居民的出生年月日;第15至17位的数字代表同一辖区内、同年同月同日出生的顺序号,其中第17位数字表示性别,奇数为男性,偶数为女性;第18位数字代表校验码。校验码是0~10这十个数字中的任意一个,其中10用X表示。

校验码的计算方法如下:

①将身份证号码的前17位数字分别乘以对应的系数。对应关系如下:

号码位

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

系数

7

9

10

5

8

4

2

1

6

3

7

9

10

5

8

4

2

②将17位数字和系数相乘的结果累计求和;

③用所求的和除以11得到余数;

④用余数与身份证号码的最后一位校验码进行对应,对应关系如下:

余数

0

1

2

3

4

5

6

7

8

9

10

校验码

1

0

X

9

8

7

6

5

4

3

2

  1. (1) 小明身份证号码的前17位为33900520020808621,则他的第18位校验码为 。
  2. (2) 小明想设计一个Python程序用于身份证号码验证,实现如下功能:输入身份证号码,输出出生日期、性别,实现判断最后一位校验码是否正确。部分程序代码如下所示,请补全代码并上机调试。

    ID=input("请输入十八位身份证号码: ")#输入身份证号码

    sex={0:"女",1:"男",2:"女",3:"男",4:女,5:"男": 6:"女",7:"男"."8:"女",9:"男"}

    ID_ birth=ID[6:14]

    ID_ sex=ID[16]

    ID_ check=ID[17]

    #求出year,month,day

         ①  

    print("出生日期: "+year+"年"+ month+"月"+day+"日")

    print("性别:",   ②    )

    ID=list(ID)                    #把字符串转成列表

    ID=list(map(int, ID[0:17]))   #把前17个元素转成整型

    ID_ CHECK=["1","0'","X'","9“,"8","7”,"6“,"5”,"4","3","2"]

        ③    

    #用列表存储每一位权值

    #17位数字和系数相乘的结果累计求和

    #求余数

    #求验证码

    print("验证码是否正确:", check-= =ID_check)

趣味数字游戏。输入任意一个三位数,将两个这样的三位数相连组成一个六位数,该六位数依次除以7,11,13后得到的商就是原来的三位数。若将输入的三位数存储到变量a中,生成的六位数存储到变量b中,编写Python程序实现上述趣味验证,则下列语句不正确的是(    )
A . B . C . D .
在Python中运行下列程序,输出结果 (    )

for i in range (1,6):

    print(‘*’)

A . ****** B . * * * * * * C . * * * * *  D . *****
在Python中,若x=10, y=20,下面程序段执行后,变量x、y的值分别是(    )

x=y

y=x

A . 10、 10 B . 10、20 C . 20、 20 D . 20、 10
如果在Python中输入print("3+5=")并按下回车后,输出结果是(     )
A . 8 B . print(3+5) C . 3+5 D . 3+5=
赋值语句的格式是:“变量名=表达式”,功能是“将表达式的值保存到变量中”,“=”是赋值的意思。例如“X=1”的意义是(     )
A . 它与数学中的算式是一样的,没什么区别 B . X=1是一元一次方程 C . 求知数X的数值是1 D . 将数值1赋值给变量X
顺序控制结构的程序执行过程是(     )依次执行的。
A . 自上而下 B . 自下而上 C . 自外到内 D . 由内到外
某分段排序算法描述如下:

1)将原始数据按升序分成若干有序段。

2)将第1段和第2段进行合并,使得合并后的数据依旧有序,得到新的有序段。

3)将新的有序段再次和下一个有序段进行合并。

4)重复上述操作,直到全部数据变成一个有序段为止,排序结束。

如数据:1、3、9、4、5、7、2、6,第1段为1、3、9,第2段为4、5、7,将第1段和第2段合并,得到新的第1段为1、3、4、5、7、9。继续和下一段2、6进行合并,合并后段数变为1段,则排序结束。

编写VB程序,实现分段排序功能:在文本框Text1中输入数据总量,单击“数据生成”按钮Command1后,在列表框List1中显示原始数据,然后单击“分段排序”按钮Command2,在列表框List2中显示排序后的结果。程序运行界面如图所示。

图片_x0020_100014

请回答下列问题:

  1. (1) 若要清空列表框List1,下列代码正确的是(单选,填字母:

    A .List1.Clear / B .List1.List="" / C .List1.Text="" / D .List1.Caption="空白" )。

  2. (2) 实现分段排序功能的VB程序如下,请在划线处填入合适的代码。

    Dim a(1 To 1000) As Integer

    Dim n As Integer

    Private Sub Command1_Click()

    '输入数据总量n,随机生成n个数据保存在数组

    'a(1)~a(n)中,并在List1中显示数据,代码略

    End Sub

    Private Sub Command2_Click()

        Dim b(1 To 10000) As Integer

        Dim p1 As Integer, p2 As Integer, t1 As Integer, t2 As Integer

        Dim t As Integer, k As Integer, i As Integer, j As Integer

        p1 = 1

        t1 = leng(p1)

        p2 = p1 + t1

        Do While p2 <= n

            

            i = p1: j = p2: t = 1

            Do While i < p2 Or j < p2 + t2

                If j >= p2 + t2 Or i < p2 And a(i) < a(j) Then

                    b(t) = a(i): i = i + 1

                Else

                    b(t) = a(j): j = j + 1

                End If

                t = t + 1

            Loop

            For k = 1 To

                a(k) = b(k)

            Next k

            t1 = t1 + t2

             图片_x0020_100015

        Loop

        '在List2中输出数组a(i)的值,代码略

    End Sub

    Function Leng(ByVal p As Integer) As Integer

    '该函数返回数组a中数组下标p开始的升序有序段的长度,代码略

    End Function

  3. (3) 程序中加框处代码有错,请改正。
Python语句s1=[4,5,6]; s2=s1; s1[1]=0; print(s2)的运行结果是(       )
A .  [4,5,6] B .  [0,5,6] C .  [4,0,6] D .  以上都不对
程序运行后,键盘输入31,其输出结果为

s=int(input("请输入一个两位数:"))

s=s//6

print(s)

有如下python程序段:

a="Doing is better than saying ."

print(r"\n"+a[ :15])

该程序运行后,输出的结果是(   )

A . 直接输出:' \nDoing  is  better ' B . 直接输出:\nDoing  is  better  th C . 直接输出:\nDoing  is  better D . 先换行,然后在新的一行中输出:Doing  is  better
某Python程序段如下:

m= 153

a=m// 100

b=m//10%10

c=m%10

n=a**3+b**3+c*3

print (n)

运行该程序段,输出结果是

a=5:b=3

a=a+b:b=b+a

print a,b

这段程序的执行结果是(      )

A . 15   21 B . 5  8 C . 6   9 D . 8   11
输入两个数,交换后在窗体上输出这两个数.

PRIVATE SUB FORM_CLICK( )

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

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

    T=A

   

   

   

END SUB

运行如下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语句运行结果是:(    )

print(1+2==3)

A . 程序报错 B . True C . 3 D . 1+2==3
下列程序采用的是哪种算法结构(      )

a=3

b=5

s=a+b

print(s)

A . 循环结构 B . 选择结构 C . 顺序结构 D . 分支结构
程序代码如下:

>>>n=4

>>>print(n)

4

>>>n=n+1

>>>print(n)

n的值为(     )

A . 2 B . 3 C . 5 D . 6
有如下程序段:

n =2

s = n * n -2 * n

该程序段运行后,变量s的值是(    ) 

A . 0 B . 2 C . 4 D . 8
最近更新