PTA Python作业4循环结构

目录


判断题

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执行如下语句,程序陷入死循环状态。

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

(T)

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

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

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

1-10在循环中continue语句的作用是退出循环的当前迭代。(T)

单选题

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

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以下程序的输出结果是:

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

A.花豹

B.猎豹

C.雪豹

D.猎豹 花豹 美洲豹 雪豹

2-3有如下代码:

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

以上代码输出的结果是?

A.输出一次 4。

B.输出四次 4。

C.输出无数次4。

D.语法错误。

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

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

如下猜数游戏中,横线处分别填写( )

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.10

B.4

C.5

D.15

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

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,请问小明共有几次猜大,几次猜小,最终有没有猜对?

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.9

B.10

C.11

D.以上都不对

2-10下面代码中循环结束后,count的值是()

count = 0
while count<5:
    count +=2

A.6

B.5

C.4

D.0

编程题

7-1 最大公约数

作者 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+=1

'''n=eval(input())
for i in range(0,n):
    a,b=map(eval,input().split())
    a,b=max(a,b),min(a,b)
    n=b
    while 1:
        if (a%n==0 and b%n==0):
            break
        else:
            n+=-1
    print(n)
    i+=1
'''
'''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+=1
'''

7-2 指定范围内的素数

作者 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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年11月7日
下一篇 2023年11月7日

相关推荐