2.2 做出判断的分支 知识点题库

表达式SQR(3︿2) MOD 7的值为
有如下VB程序段:

Dim s(1 To 100) As Integer

Dim b(1 To 100) As Integer

Dim c As Integer

  a(1) = 0: a(2) = 2: b(1) = 1: b(2) = 2: c = 0

  For i = 2 To 6  

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

    b(i + 1) =b(i) ^ 2 /b(i - 1)

    c =c +a(i + 1) +b(i + 1)

  Next i

Label1.Caption = Str(c)

该程序运行后,Label1中显示的内容是(  )

A . 46 B . 88 C . 164 D . 76 
某地2017.1~2017.2月的日期及日最高气温据保存在数据库中。要求根据日最高气混,找出两个月中连续降温的次数、最长降温天数及其日期。小刘为此编写了VB程序,程序运行后,单击按钮Command1后,在Label1和Label2上输出运行结果。实现上述功能的VB代码如下,但加框处有错,请改正。

Dim a (1 To 59) As String    '依次存2017.1~2017.2月的日期数据

Dim b (1 To 59) As Integer    '依次存2017.1~2017.2月的日最高气温数据

Private Sub Form Load()

'从数据库中按2017.1~2017.2的日期次序,取日期和日最高气温数据,分别存储在数组a和b中,代码略

End Sub

Private Sub Command1_Click()

Dim d As Integer, n As Integer, dmax As Integer, m As Integer

n= 0: d= 1: dmax =1

For i= 2 To 59

If Then      '①

d=d+1

Else

 d=1

End If

If d =2 Then n=n+1

If d > dmax Then

dmax=d

m=i

End If

Next i

Label1.Caption="连续降温次数" & Str(n)

Label2.Caption="连续最长降温日期为" & & "—" & Str(a(m))     '②

End Sub

在VB中,将一个二进制数转化成十六进制的自定义函数代码如下,请在程序划线处填入合适的代码。

Function btoh(s As String)As String

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

Dim str As String, j As Integer

str="0123456789ABCDEF"

i= Len(s)

Do While i >=1

If    ①     Then

s1= Mid(s, i-3, 4)

Else

s1 = Mid(s; 1, i)

End If

t=0

For j =1 To Len(s1)

t=    ②  

Next j

btoh = Mid(str, t + 1, 1)+btoh

i=i-4

Loop

End Function

 ② 

   round( )函数的作用是实现
VB程序中的赋值语句“x=x+1”是合法的。
某VB程序段如下:

For i=1To n

    h(i)=Int(Rnd * 20 + 1)

    num(i)=1:ans=0

    For j=1 To i

        If h(j) < h(i) And num(j) >=num(i) Then

            num(i)=num(j) + 1

        end if

      next j

Next i

执行该程序段后,在下列选项中,num (1)~num (8)各元素值可能的是(    )

A . 2,1,1,2,2,3,4,4 B . 1,1,2,3,2,2,1,3 C . 1,2,4,2,5,6,7,8 D . 1,1,1,1,1,1,3,2
用VB编写寻找自然数中第n个素数的程序,具体功能如下:在文本框Text1中输入正整数n,单击“寻找”Command1按钮后,在Label1中显示结果。程序运行界面如下图所示。

  1. (1) 程序启动后,窗体的标题栏显示“寻找第n个素数”,Form_Load事件处理过程中应添加语句            (单选,填字母)
    A . Form1="寻找第n个素数" B . Form1.Name="寻找第n个素数" C . Form1.Caption="寻找第n个素数" D . Form1.Text="寻找第n个素数"
  2. (2) 请在下划线处填入合适的代码

    Private Sub Command1_Click()

      Dim n As Integer, i As Integer

      Dim s As Integer, x As Integer, f As Boolean

      n= Val(Text1.Text)

      f= False: s=0

      i=2

      Do While    ①  

        For x=2 To i\2

          If i Mod x=0 Then Exit For     ‘Exit For用于退出For循环

        Next x

        If    ②    Then

          s=s+1

          If  Then      ‘③

            Label1.Caption= "第"& Str(n) & "个素数为:"& Str()

            f= True

          End If

        End If

        i=i+1

      Loop

    End Sub

     ② 

  3. (3) 加框处代码有错误,请改正。
有如下 VB 程序段:

s1 = "abcde" j = 1

s2 = "a"

For i = 1 To Len(s1)

  j = (j + 2) Mod Len(s1) + 1 s2 = s2 + Mid(s1, j, 1)

Next i Text1.Text = s2

执行该程序段后,文本框Text1中输出的内容是(   )

A . acebda B . Acdeab C . Adbeca D . adaceb
有如下程序,从数据库获取成绩,单击“读取数据”按钮将n个非降序数保存在数组cj(1)~cj(n)中,并将成绩显示在列表框中。在文本框中输入成绩key,单击“查找”按钮,在标签中显示大于等于该成绩的学生人数。

  1. (1) 界面中“查找”按钮的对象名为
  2. (2) 实现上述功能的 VB 程序如下,请在划线处填入合适的代码

    Dim cj(1000) As Integer, n As Integer

    Private Sub btncmd1_Click( )

    Dim i As Integer, j As Integer

    Dim k As Integer ,tmp As Integer

    For i = 2 To n

      tmp = cj(i)

      j = BinarySearch

      For k = i To j + 1 Step -1

        cj(k) = cj(k - 1)

      Next k

      cj(k) = tmp

    Next i

    For i = 1 To n

      List1.AddItem Str(cj(i))

    Next i

    End Sub

    Private Sub btncmd2_Click()

    Dim i As Integer

    i = BinarySearch(Val(Text1.Text), 1, n)

    Label2.Caption = "共有" ++ "位同学大于等于该成绩。"

    End Sub

    Function BinarySearch(key As Integer,i As Integer,j As Integer) As Integer

    Dim m As Integer

    Do While i <= j

    m = (i + j) \ 2

      If cj(m) >= key Then

        j = m - 1

      Else

        i = m + 1

      End If

    Loop

    BinarySearch =

    End Function

    Private Sub Form_Load()

    '从数据库获取n个成绩存储在 cj(1) ~cj(n)组中,代码略

    End Sub

小轩的绿色出行花费:某著名旅游城市H市为了鼓励大家采用公共交通方式绿色出行,推出了一种地铁换乘公交车的优惠方案,方案具体细则如下:

①在搭乘一次地铁后可以获得一张优惠票,有效期为45分钟,在有效期内可以消耗这张优惠票,免费搭乘一次票价不超过地铁票价的公交车。在有效期内指开始乘公交车的时间与开始乘地铁的时间之差小于等于45分钟,即:t_bus-t_ subway <=45

②搭乘地铁获得的优惠票可以累积,即可以连续搭乘若干次地铁后再连续使用优惠票搭乘公交车。

③搭乘公交车时,如果可以使用优惠票一定会使用优惠票;如果有多张优惠票满足条件,则优先消耗获得最早的优惠票。

小轩同学编写了VB程序计算最近公共交通出行的费用,程序运行时,在文本框Text1中输人小轩的公共交通出行记录(各数之间以逗号分隔),单击“获取数据”按钮Command1将数据按顺序存储在数组a中并在List1中显示。其中第i条出行记录乘坐的交通工具存储在数组元素a(3*i-2)中,0代表地铁,1代表公交车;第i条记录乘车的票价存储在数组元素a(3*i-1)中;第i条记录开始乘车的时间(距0时刻的分钟数)存储在数组元素a(3* i)中。如小轩最近6条乘车记录的数据为0,5,1,0,20,16,0,7,23,1,18,31,1,4,38,1,7,68在数组a中的存储结构如下表所示。

a(1)

a(2)

a(3)

a(4)

a(5)

a(6)

……

a(16)

a(17)

a(18)

0

5

1

0

20

16

……

1

7

68

单击“计算”按钮Command2,则在标签Label2中显示小轩同学的公共交通出行总费用。程序运行界面如图所示。

  1. (1) 若小轩的出行数据如上表所示,则小轩此次出行总花费为。(填数字)
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

    Const maxn= 1005

    Dima(1 To 3 * maxn) As Integer

    Dim ticket(1 To 3 * maxn) As Integer

    Dim i,n,k,x,y,cost As Integer

    Dim tail,head As Integer

    Dim s As String

    Dim found As Boolean

    Private Sub Command1_Click()

        s= Text1.Text

        k= 1

        For i=1 To L en(s)

            c= Mid(s,i,1)

            If c="," Then k=k+1 Else

        Next i

        '将各条出行数据输出在列表框List1中,代码略

    End Sub

    Private Sub Command2_ Click()

        head=1:tail= 1

        For i=1 To k\ 3

            If a(3 * i-2)=0 Then

                cost= cost+a(3 * i-1)

                ticket(3 * tail)=a(3 * i)+45

                

                tail= tail+1

            Else

                Do While head < tail And ticket(3 * head) < < a(3 * i)

                    head= head+1

                Loop

                

                If found= False Then cost=cost+a(3 * i-1)

            End If

        Next i

        Label2.Caption= Str( cost)

    End Sub

    Function pd(x As Integer, y As Integer) As Boolean

        pd= False

        For j=x Toy

            If ticket(3 * j-1) >=a(3 * i-1) And ticket(3 * j-2)=0 Then

                pd=True

    ticket(3 * j-2)=1

                Exit Function

            End If

        Next j

    End Function

已知6月份10位技术考试成绩:

1

2

3

4

5

6

7

8

9

10

78

88

89

90

83

76

75

98

100

65

技术老师想统计出80分(含80)以上的人数,请完善程序,代码如下:

a=[78,88,89,90,83,76,75,98,100,65]

sum=0

for i in range(n):

    if a[i]>=80:

print(sum)

执行上述程序段后,输出的内容是

顺序结构程序的执行顺序是(    )
A . 由外到内 B . 自上而下 C . 自下而上 D . 由内到外
在列表listaue中添加订单号”y5617”,正确的是(    )
A . listaue[]=“y5617” B . append(“y5617”) C . listaue[“y5617”] D . listque.append(“y5617”)
程序分析题:算法设计与程序实现

已知a、b、c分别为三角形的三条边长,利用海伦公式求三角形面积 , 其中编程实现:输入边长a,b,c,如果能构成三角形,输出面积,否则输出“No Answer !”

def cal( ):

a=int(txtl.get())

b=int(txt2.get())

c=int(txt3.get())

if:                  :

  p= (atb+c)/2

  s=math. sqrt (p*(p-a)*(p-b)*(p-c))

  txt4.insert (0,str(s))

else:

  txt4.insert (0."No Answer!")

  1. (1) 利用海伦公式求三角形面积的算法是(填写:解析法/查找法/穷举法/排序法)。
  2. (2) 填写出参考程序中空白处的表达式                 (填写字母: A/B/C/D)。
    A . a+b>c or  a+c>b  and  b+c>a B . a+b>c or  a+c>b  or   b+c>a C . a+b>c  and  a+c>b  or  b+c>a D . a+b>c  and  a+c>b  and  b+c>a
利用身份证号码可以推算出年龄,性别以及相应的生肖。其中18位身份证号码中的7-10位表示出生年份,年龄为当年年份减去出生年份的值。而生肖为出生年份整除12所得余数与下表所对应的值取得。

4

5

6

7

8

9

10

11

0

1

2

3

  1. (1) 实现上述功能的部分程序代码如下,请在划线处填入合适的代码。

    ID=input("请输入18位身份证号: ")

    sx=[’鼠’,’牛’,’虎’,’兔’,’龙’,’蛇’,’马’,’羊’,’猴’,’鸡”,’狗’,’猪’]

    #计算年龄:

    year=int(ID[6:10])                # 取出身份证中的出生年份

    age=    # 计算该身份证主人当年年龄(取2021)

    #判断性别:

    F_ sex-int( )               # 取出身份证中用于判断性别的第  17  位数字字符

    If  # 判断性别的的数字 奇数 为 男性 , 偶数 为 女性

    sex="男"

    else:

    sex="女"

    #判断生肖:

    F_ sx=()%12

    anl=sx[F_ sx]

    print("年龄是: ",age,"性别是: ",sex,"生肖是: ", an1)

  2. (2) 在上述程序代码中,变量year的数据类型为             
    A . 整型 B . 实型 C . 字符串型 D . 布尔型
  3. (3) 以下代码与程序加框处代码功能相同的有             
    A . int[ID(16)] B . int(ID[:-1]) C . int(ID[-2:-3:-1]) D . int(ID[-2:-1]) E . int(ID[16]) F . int(ID[17:18])
判断身份证校验位是否正确

第一步:将身份证号码的第1位数字与7相乘;将身份证号码的第2位数字与9相乘;将身份证号码的第3位数字与10相乘;将身份证号码的第4位数字与5相乘;将身份证号码的第5位数字与8相乘;将身份证号码的第6位数字与4相乘;将身份证号码的第7位数字与2相乘;将身份证号码的第8位数字与1相乘;将身份证号码的第9位数字与6相乘;将身份证号码的第10位数字与3相乘;将身份证号码的第11位数字与7相乘;将身份证号码的第12位数字与9相乘;将身份证号码的第13位数字与10相乘;将身份证号码的第14位数字与5相乘;将身份证号码的第15位数字与8相乘;将身份证号码的第16位数字与4相乘;将身份证号码的第17位数字与2相乘。

第二步:将第一步身份证号码1~17位相乘的结果求和,全部加起来。

第三步:用第二步计算出来的结果除以11,这样就会出现余数为0,余数为1,余数为2,余数为3,余数为4,余数为5,余数为6,余数为7,余数为8,余数为9,余数为10共11种可能性。

第四步:如果余数为0,那对应的最后一位身份证的号码为1;如果余数为1,那对应的最后一位身份证的号码为0;如果余数为2,那对应的最后一位身份证的号码为X;如果余数为3,那对应的最后一位身份证的号码为9;如果余数为4,那对应的最后一位身份证的号码为8;如果余数为5,那对应的最后一位身份证的号码为7;如果余数为6,那对应的最后一位身份证的号码为6;如果余数为7,那对应的最后一位身份证的号码为5;如果余数为8,那对应的最后一位身份证的号码为4;如果余数为9,那对应的最后一位身份证的号码为3;如果余数为10,那对应的最后一位身份证的号码为2。

余数列表

0

1

2

3

4

5

6

7

8

9

10

校验码对照表

1

0

X

9

8

7

6

5

4

3

2

B2  某男性公民公民身份号码本体码为44052418800101001,其校验码字符值仍可按B1各步骤与方法计算如下:

=28+36+0+ 25+16+16+2+8+48+0+0+9+0+5+0+0+2=195

195÷11=17 , 即(ai×Wi)(mod 11)为8。

查表2得出校验码字符值ai为4。

该男性公民的公民身份号码为440524188001010014。

  1. (1)  如果身份证的前17位是34052419800101001,则该身份证的校验位是
  2. (2) 实现上述功能的代码如下,请在划线处填入合适的代码,使程序正常运行。

    def check(s):

    s1=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]

    s2='10X98765432'

    k=0 

    for i in :

    k=k+int(s[i])*s1[i]

    return 

    sfz=input('请输入身份证号:') 

    if t !=18:

    print('位数有误,请重新输入!')

    else:

    if sfz[-1]=='x':

    sfz=sfz[:-1]+"X"

    if :

    print('合法身份证号')

    else:

    print('非法身份证号')

  3. (3) 实现上述功能的代码如下,但加框处代码有错,请改正。
4的立方使用python语言怎么表示(    )
A . 4*3 B . 4**3 C . 43 D . 4**2
“幸运儿”属于哪种数据类型(     )
A . 数值型 B . 日期型 C . 字符型 D . 字节型
下面是“反转三位数. py”,正确答案是(   )。

请填空完善该程序,实现功能:输入一个任意三位整数,将它反转输出,例如369反转成963。

x=  ①  (input("请输入一个任意三位整数:"))

ge=  ②  

shi=x//10%10

bai=  ③  

  ④  =ge*100+shi*10+bai

print(y)

A . ①float   ② x%10    ③ x//10     ④y B . ①float   ② x%100   ③ x//100    ④x C . ①int     ② x%100   ③ x//10     ④x D . ①int     ② x%10    ③ x//100    ④y
最近更新