4.3.2 if…elif…else语句的应用 知识点题库

请编写Python程序,实现如下功能需求:

1)程序运行后,给出文字提示:"请输入一个正整数:"

2)输入一个整数n按回车后,程序输出从1-n所有整数中既是3的倍数又是5的倍数的数。

3)不要超过5行代码。

程序运行举例:

有如下VB程序段:

For i = 1 To 6

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

Next i

For i = 1 To 5

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

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

  Else

    a(i) = a(i) - 1

  End If

Next i

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

A . 9,9,8,7,5,3 B . 2,6,10,8,9,5 C . 9,6,7,3,11,8 D . 9,3,8,-1,7,2
以下程序段执行后,输出结果为(    )。

  m=29

  If m Mod 3 <> 0  Then

    Print m & “不能被3整除”

  Else

   Print m & “能被3整除”

  End If

A . n能被3整除 B . n不能被3整除 C . 29不能被3整除 D . 29能被3整除
杨辉三角是我国古代数学的成就之一,如图所示为杨辉三角前5行的数据排列。从图可知,杨辉三角当前行的数值可由前一行推导计算得到。现要求杨辉三角第n行的数据,编写的VB程序功能如下:在文本框Text1中输入n值(n≤30),单击按钮Command1后,在标签框Label1中输出第n行的数据。

实现上述功能的VB代码如下。

Private Sub Command1_Click()

 Dim pre(0 to 30)As Long, cur(0 to 30)As Long 

 Dim s As String, i As Integer, j As Integer

 n = Val(Text1.Text)

     ′I处

 For i = 1 To n

   s = “”

   For j = 1 To i

     cur(j)=     ′II处

     s = s & str(cur(j))& “ ”

   Next j

   For j = 1 To i

     pre(j)= cur(j)

   Next j

 Next i

 Label1.Caption = s

End Sub

方框处的代码会是以下四句中的某一句:

① cur(1)=1     ②pre(1)=1     ③pre(j-1)+ per(j+1)    ④pre(j-1)+ per(j)

程序中I、II方框处正确的选项是(      )

A . ①③ B . ①④ C . ②③ D . ②④
x和n都是正整数且x<=n,下列选项中,与语句“x=x Mod n +1”功能相同的是(    )
A . x=(x+1) Mod n B . C . D .
有如下VB程序段,该程序段执行后,变量x中存储的是(  )

k=1

For j=2 To 100

  If a(j)>a(k)Then k=j

Next j

x=a(k)

A . a(1)至a(100)中的最小值 B . a(1)至a(100)中的最大值 C . a(2)至a(100)中的最小值 D . a(2)至a(100)中的最大值
有如下Python程序段:

a="Welcome!"

if len(a)>9:

    y=a[0:2]

elif len(a)>5:

    y=a[3:7]

else:

    y=a[0:3]

该程序段运行后,变量y的值是

用Python程序实现圆面积的计算。若输入的圆半径为大于等于0的实数,则输出圆面积(保留两位小数);若输入的圆半径为负数,则输出“输入的圆半径为负”。为实现上述功能,请回答下列问题:
  1. (1) 划线处应填的代码为:

    PI=3.14159

    #命名常量

    radius =float(input("请输入圆半径:")

    if radius >= 0:

       

        prin("半径为"+str(radius)+ "的圆面积是"+str(area))

    else:

        print("输入的圆半径为负")

  2. (2) 调试程序发现,出现错误提示“IndentationError: expected an indented block" ,请说明错误的原因并改正。
某市实施交通管制,早晚高峰根据车牌号限行。车牌号一般由5个数字或字母组成。车牌号尾位为0和5的周五限行,1和9周一限行,2和8周二限行,以此类推。若尾位为字母,以字母前最后一位数字为准 。实现上述功能的Python程序代码如下:

string = input("请输入您的车牌:浙A ")

for i in range (          , -1):

if string[i]>== "0" and string[i]<="9":

   if string[i]=="0" or string[i]=="5":

     print("周五限行!")

    elif string[i]=="4" or string[i]=="6":

        print("周四限行!")

    elif string[]=="3" or string[i-="7":

        print("周三限行!")

    elif string[i]=="2" or string[i]=="8":

        print("周二限行!")

    elif string[i]=="1" or string[i]="9":

        print("周一限行!")

break

  1. (1) 划线处应填入的代码是(     )
    A . len(tring)-1,-1 B . len(tring),0 C . len(string)-1,0 D . 1,len(string)+1
  2. (2) 若车牌为“浙A 2P27P”,则程序中的for循环语句执行次。
  3. (3) 某景区节假日期间实行单双号限行措施:按车牌号最后一位阿拉伯数字(尾数为字母的,以字母前最后:一位数字为准)实行单号单日行驶双号双日行驶(单号为1,3,5,7,9,双号为2,4,6, 8,0)。请编写实现上述功能的Python程序。

    string = input("请输入您的车牌:浙A ")

       

某地区天然气价格如下表所示:

居民用户气价

阶梯分档

年用气量Nm3

气价(元/Nm3)

第一阶梯

0-360 (含)

3.00

第二阶梯

360-540 (含)

3.50

第三阶梯

540以上

4.50

小明为了计算家庭每年应缴费用,编写了一个VB程序,功能如下:在文本框Text1中输入每年使用的天然气用量,单击“计算”按钮Command1后,在文本框Text2中输出年缴天然气费用。程序运行界面如图所示。

  1. (1) 在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的属性。

    (单选,填字母:A .Text / B .Caption / C .Font)

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

    Dim price(1 To 3) As Double

        Private Sub Form_Load()

        '本过程读取天然气的单价存储在数组 price 中

        '代码略

    End Sub

    Private Sub Command1_Click()

        Dim num As Integer, s As String

        num = Val(Text1.Text)

        If num < 0 Then

            s = "请输入正确的数值!"

        ElseIf num <= 360 Then

            s = Str(num * price(1))

        ElseIf num <= 540 Then

            s = Str(360 * price(1) + )

        Else

            s = Str(360 * price(1) + (540 - 360) * price(2) + (num - 540) * price(3))

        End If

        Text2.Text=

    End Sub

  3. (3) 本程序的算法属于算法。(选填:解析/枚举)
下列程序用来判断一个单词是否是素单词:设定小写字母a-z对应的数字为1-26,大写字母A-Z对应的数字为27-52,将某个单词的所有字母按照其对应的数字求和,判断其和是否是素数,如果是输出“It is a prime word.”,反之则输出“It is not a prime word.”。如单词“Hello”,字母分别对应的数字为:34、5、12、12、15,其和为34+5+12+12+15=78,不是素数,因此单词“Hello”并不是素单词,在Label1中输出“It is not a prime word.”。(已知字母A的ASCII码值为65,a的ASCII码值为97)。程序运行界面如下图所示:

Private Sub Command1_Click( )

    Dim s As String, t As String, n As Integer

    Dim i As Integer, m As Integer

    s = Text1.Text

    n = Len(s)

    For i = 1 To n

        t = Mid(s,i,1)

        If t >= "A" And t <= "Z" Then

            m =        ①          

        ElseIf t >= "a" And t <= "z" Then

            m= m + Asc(t)- 96       ‘Asc(t)用于返回字符t的ASCII 码值

        End If

    Next i

    For i = 2 To m - 1

        If  Then Exit For

    Next i

    If       ②      Then

        Label1.Caption = "It is a prime word."

    Else

        Label1.Caption = "It is not a prime word."

    End If

End Sub

  1. (1) 请在划线处补充合适的代码。

     ② 

  2. (2) 加框处代码有误,请改正。
  3. (3) 若在Text1中输入单词Make,在label1中输出的结果是
运行下列Python程序,结果正确的是(      )

s="abcdefg"

c=len(s)       #len求字符串长度

for i in range(0,c):

    if i<2:

        print (chr(ord(s[i])+2),end=" ")          #ord()函数是chr()函数配对函数,将字符转ASCII值

    else:

        print(chr(ord(s[i]) + 3),end=" ")

A . c d f g h a B . c d f g h b  C . c d f g h # D . c d f g h c
小明去网吧上网,普通包间3元一小时,高级包间4元一小时,豪华包间6元一小时,他决定用函数计算上网费用,如下:函效中的两个参数分别对应的是                 , 豪华包间上网2小时的费用是        元。(     )

A . 上网时长  包间类型  12 B . 包间类型  上网时长  12 C . 上网时长  包间类型  8 D . 包间类型  上网时长  8
小王计划使用VB制作一个扫雷小游戏,他首先需要生成一个“雷区”:

①生成n*n的矩阵,其中计划埋雷m个,n和m的数据分别从text1和text2中获取(n<=10,m<=n)

②随机位置埋好地雷后(埋雷位置用X表示且埋雷位置不重复),未埋雷的位置显示该位置周围一圈地雷的数量。

程序代码如下:

Dim flag(0 To 200) As Boolean, a(0 To 200) As String

Dim n As Integer, m As Integer

Private Sub Command1_Click( )

    Dim s As String, x As Integer, k As Integer

    Dim i As Integer, j As Integer

    Randomize

    n = Val(Text1.Text): m = Val(Text2.Text)

    ‘初始化数组flag中各元素均为False,数组a中各元素值为字符"0",代码略

    For i = 1 To m

        x = Int(Rnd * (n ^ 2)) + 1

        If flag(x) = True Then i = i - 1 Else flag(x) = True

    Next i

    For k = 1 To n * n

        If flag(k) = True Then

            a(k) = "X"

        Else

            For i = (k - 1) \ n To (k - 1) \ n + 2

                For j =    ①  

                    If i = 0 Then Exit For

                    If flag((i - 1) * n + j) = True And j >= 1 And j <= n Then

                        a(k) =    ②  

                    End If

                Next j

            Next i

        End If

    Next k

    For i = 1 To n * n           ‘在列表框list1中输出矩阵

        s = s + "   " + a(i)

        If    ③    Then

            List1.AddItem s

            s = ""

        End If

    Next i

End Sub

根据上述代码,完成下列问题:

  1. (1) 上图框中位置未埋雷,且数字被遮挡,请问该位置中应填写的数字是
  2. (2) 请在划线处填上合适的代码。

     ② ③ 

调试程序。请阅读以下程序并写出运行结果。

score=int(input("请输入一个分数"))

if 100>=score>=90:

    print("A")

if 90>score>=80:

    print("B")

if 80>score>=60:

    print("C")

if 60>score>=0:

    print("D")

if score<0 or score >100:

    print("输入错误!")

阅读以下程序,该程序的运行结果为    。

score=int(input("请输入一个分数"))

if 100>=score>=90:

  print("A")

if 90>score>=80:

  print("B")

if 80>score>=60:

  print("C")

if 60>score>=0:

  print("D")

if score<0 or score >100:

  print("输入错误!")

键盘依次输入3和4,执行如下程序,则运行结果为(    )

a=int(input())

b=int(input())

if a%3==0:

  if b%2==0:

    c=a**b

  else:

    c=a*b

  else:

    c=a-b

print(c)

A . -1 B . 81 C . 12 D . 64
给定一个十进制整数n,求出从1到n的所有整数中出现“1”的个数。例如,n=2时,1,2出现1个“1”。n=12时,1,2,3,4,5,6,7,8,9,10,11,12,出现5个“1”。现编写一个程序,实现如下功能:输入整数n,执行程序后,输出该范围内出现“1”的个数。程序运行如下图所示。

请在画线处填入合适的代码:

n=int(input('请输入整数范围:'))

count=

i=1

while i <=n:

  x=i

  while x>0:

    if

      count+=1

      x//=10

print('该范围内1的个数有:',count)

有如下程序段,功能为判断a、b、c三条线段能否构成三角形。

a=int(input("请输入线段a的长度:"))

b=int(input("请输入线段b的长度:"))

c=int(input("请输入线段c的长度:"))

if             :

print("可以构成三角形")

else:

print("不可以构成三角形")

为实现上述程序功能,则划线处应填入的表达式是(     )

A . not (a + b <= c or a + c <= b or b + c <= a) B . a + b > c and a + c > b and b + c > a C . not (a + b <= c and a + c <= b and b + c <= a) D . a + b > c or a + c > b or b + c > a
我们平时所说的IP地址一般叫“点分十进制”。计算机在处理时,是根据32位二进制IP地址的前几位来判断IP地址类别的。如点分十进制IP地址“100.4.5.6”,实际上是32位二进制数“01100100 00000100 00000101 00000110”。下面的算法能实现对A、B、C三类IP地址的判断,请补全代码。

ip=input("输入32位二进制IP地址")

if ip[0]=="0":

    print("A类地址")

elif=="0":

    print("B类地址")

elif ip[2]=="0":

    print("C类地址")

else:

    print("其他类别")

请根据流程图补全程序代码。

最近更新