PTA Python 作业四

目录

        选择题

        单选题

        编程题

                        7-1 最大公约数

                        7-2 指定范围内的素数

                        7-3 鸡兔同笼


判断题

1-1 不管是单层循环还是多层循环,只要执行到break语句,所有循环立即结束。(F)

1-2 在Python循环中,对于带有else子句的循环,如果因为执行了break语句而退出的话,会执行else子句的代码。(F)

1-3 在Python循环中,使用for i in range(10) 和 for i in range(10,20),控制循环次数是一样的。(T)

1-4 在循环结构中,break用来结束当前当次循环语句,但不跳出当前的循环体。(F)

1-5 无论while循环表达式判断结果是真是假,循环体至少执行一次。(F)

1-6 执行如下语句,程序陷入死循环状态。(T)

while True:
    
    print("我爱学python")

 1-7 while循环的判断条件可以是任何表达式,任何非零、或非空(null)的值均为True。(T)

1-8 在Python语言里,循环结构必须有else子句。(F)

1-9 在Python循环中,continue语句的作用是:退出循环的当前迭代,开启下一轮循环。(T) 


选择题

2-1 以下程序的输出结果是:(A

sum = 1.0
for num in range(1,4):
   sum+=num
print(sum)

A.7.0

B.6

C.7

D.1.0

2-2 以下程序的输出结果是:(D

cat =[“狮子”,“猎豹”,“虎猫”,“花豹”,“孟加拉虎”,“美洲豹”,“雪豹”]
for s in cat:
    if “豹” in s:
        print(s,end=' ')
        continue

 A.花豹

B.猎豹

C.雪豹

D.猎豹 花豹 美洲豹 雪豹

2-3 有如下代码:

while 4 == 4:
    print('4')

 以上代码输出的结果是?(C

A.输出一次 4。

B.输出四次 4。

C.输出无数次4。

D.语法错误。

2-4 以下哪一项不是无限循环语句?(B

A.

while True:
    print("hello")

B. 

while "123"==123:
    print("hello")

C. 

while "abc">"ABC":
    print("hello")

D.

while 1<2:
    print("hello")

2-5 如下猜数游戏中,横线处分别填写( D

import random
num1=random.randint(1,100)
n=5
while n>0:
    num=int(input())
    if num<1 or num>100:
        print("请输入1到100之间的整数")
        __________
    if num<num1:
        print("猜小了")
    elif num==num1:
        print("猜对了")
        __________
    else:
        print("猜大了")
    n=n-1
print("游戏结束")

 A.break break

B.break continue

C.continue continue

D.continue break

2-6 这个程序的输出结果为:

a=10  
while a<4: 
    a=5           
print(a)     

请问程序的输出结果为:(A

A.10

B.4

C.5

D.15

2-7 在一次聚会上,有10个人围成一圈做报数游戏,10个人分别按照1~10的顺序编号,已知小明的编号为7,下面的代码为报数的规则,那么当轮到小明报数时,小明需要说什么?(A

number=7
while True:
      number=number%6
      if number==1:
            print("我喝茶")
            break
      else:
            print(number)
            break

 A.我喝茶

B.7

C.6

D.1

2-8 有两个人做猜数字游戏,只有7次猜的机会,如果其中一个人猜的数字比另一个人预设的数字大,则会得到反馈“猜大了”,如果猜的数字比预设数字小,则会得到反馈“猜小了”,猜中了会得到反馈“你赢了“,如果7次都没有猜中,则会得到反馈“你输了”。仔细阅读下面这段代码,小明猜的数字分别为:35 10 14 16 28 25 23,请问小明共有几次猜大,几次猜小,最终有没有猜对?(A

count =1
a=2
b=4
while True:
      number=a**2+b**2+a*b/2+a*b%2
      guess=int(input())
      if guess>number:
            print("猜大了")
      elif guess<number:
            print("猜小了")
      elif guess==number:
            print("你赢了")
            break
      count=count+1
      if count>10:
           print("你输了") 
           break

A.没有猜对,猜大了3次,猜小了4次

B.猜对了,猜大了2次,猜小了3次

C.没有猜对,猜大了5次,猜小了2次

D.猜对了,猜大了1次,猜小了1次

2-9 下面程序中 ,i的循环终值是(A )。

A.9

B.10

C.11

D.以上都不对


编程题

7-1 最大公约数

        分数 :20           作者:usx程序设计类课程组           单位:绍兴文理学院

求两个正整数m,n的最大公约数(Greatest Common Divisor,简称GCD)。要求定义一个函数求最大公约数。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入2个整数m,n(0<m,n<109)。

输出格式:

对于每组测试,输出m,n的最大公约数。

输入样例:
2
63 36
20 15
输出样例:
9
5
提示:

为避免超时,宜用高效的算法,例如欧几里德算法(辗转相除法)。

n=eval(input())
for i in range(0,n):
    a,b=map(eval,input().split())
    a,b=max(a,b),min(a,b)
    while a%b!=0:
        temple = a %b
        a = b
        b = temple
    print(b)
    i=i+1

7-2 指定范围内的素数 

        分数 :20           作者:python备课组           单位:福州大学至诚学院

编程实现输出指定范围内的素数,素数之间以空格间隔。指定范围由用户输入指定。

输入格式:

输入两个整数a,b(系统保证这两个整数大于等于2,小于等于10000,且a<=b),用逗号间隔。

输出格式:

输出[a,b]所有素数,素数之间用一个空格间隔。

输入样例:
100,150
输出样例:
101 103 107 109 113 127 131 137 139 149 
a,b=map(eval,input().split(","))
for n in range(a,b+1):
    for i in range(2,n):
        if n%i==0:
            break
    else:
        print(n,end=(" "))

7-3 鸡兔同笼

        分数 :20           作者:python备课组           单位:福州大学至诚学院

鸡兔同笼问题,输入脚数,头数,输出鸡数和兔数。

输入格式:

输入两个以逗号分隔的整数,表示脚数和头数。

输出格式:

在一行输出鸡数和兔数,两个整数之间以空格分隔

输入样例:

在这里给出一组输入。例如:

94,35
输出样例:

在这里给出相应的输出。例如:

23 12
a,b=map(eval,input().split(","))
for n in range(0,a//2+1):
    if 2*n+(b-n)*4==a:
        print(f"{n} {b-n}")
        break

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值