Python语言程序设计 习题4

一、选择题

1.关于while循环和for循环的区别,下列叙述中正确的是(    C  )。

A.while语句的循环体至少无条件执行一次,for语句的循环体有可能一次都不执行

当不满足whlie语句和for语句的条件时,是一次也不执行循环体的,do-while语句至少无条件执行一次循环体

B.while语句只能用于循环次数未知的循环,for语句只能用于循环次数已知的循环

咋用看自己,不特殊指定咋用

C.在很多情况下,while语句和for语句可以等价使用

D.while语句只能用于可迭代变量,for语句可以用任意表达式表示条件  p71

while也可以用任意表达式表示条件

2.设有程序段:

k=10
while k:
    k=k-1
    print(k)

则下面描述中正确的是(  A    )。

A.while循环执行10次               B.循环是无限循环

C.循环体语句一次也不执行           D.循环体语句执行一次

3.以下while语句中的表达式“not E”等价于(   A   )。

while not E:
    pass

A.E==0              B.E!=1           C.E!=0      D.E==1

题干中,E为0时,表达式是True,非0时,是False

判断选项,A满足条件;B为1是是False,非1是True;C为0是False,非0非True;D为1是True;非1是False

4.有以下程序段:

n=0
p=0
while p!=100 and n<3:
    p=int(input())
    n+=1

while循环结束的条件是(   D   )。

A.P的值不等于100并且n的值小于3

B.P的值等于100并且n的值大于等于3

C.P的值不等于100或者n的值小于3

D.P的值等于100或者n的值大于等于3

注意!这里有一个条件不满足就退出循环

5.以下for语句中,不能完成1~10的累加功能的是(    A  )。

A.for i in range(10,0):sum+=i

B.for i in range(1,11):sum+=i

C.for i in range(10,0,-1):sum+=i

D.for i in (10,9,8,7,6,5,4,3,2,1):sum+=i

p22 range函数:步长默认是1,所以在A中,没有指定步长,结果是0

6.对下列语句不符合语法要求的表达式是(     D )。
 

for var in (填代码):
print(var)

A.range(0,10)          B."Hello"           C.(1,2,3)    D.5

D:

 int类型的对象是不可迭代的

7.下面Python循环体执行的次数与其他不同的是(   A   )。

A.i=0                          B.i=10

    while i<=10:                   while i>0:

        print(i)                       print(i)

        i+=1                           i-=1

C.for i in range(10):          D.for i in range(10,0,-1):

        print(i)                       print(i)

除了A是11次,其他的都是10次

8.下列for循环执行后,输出结果的最后一行是(   C   )。
 

for i in range(1,3):
    for j in range(2,5):
        print(i*j)

A.2          B.6            C.8       D.15

range(a,b)是生成的一个a--b-1的数,所以最后i=2,j=4

9.关于下列for循环,叙述正确的是(    D  )。

for t in range(1,11):
    x=int(input())
    if x<0:continue
    print(x)

A.当x<0时整个循环结束           B.x>=0时什么也不输出

C.print()函数永远也不执行       D.最多允许输出10个非负整数

当x<0时,只是continue,不是break,所以不会结束循环

10.下列说法中正确的是(   D   )。

A.break用在for语句中,而continue用在while语句中

B.break用在while语句中,而continue用在for语句中

C.continue能结束循环,而break只能结束本次循环

D.break能结束循环,而continue只能结束本次循环
break语句与continue语句在两个循环中都可以用

二、填空题

1.当循环结构的循环体由多个语句构成时,必须用   缩进对齐     的方式组成一个语句块。

2.执行下列程序后的输出结果是     ,其中while循环执行了     1  次。

i=-1
while i<0:
    i*=i
print(i)

3.以下while循环的循环次数是(  无限次  )。

i=0
while i<10:
    if i<1:continue
    if i==5:break
    i+=1

4.执行下列程序后,k的值是(    36  )。

k=1
n=263
while n:
    k*=n%10
    n//=10

5.执行循环语句for i in range(1,5,2):print(i),循环体执行的次数是    2    。

i=1;i=3

6.循环语句for i in range(-3,21,4)的循环次数为     6   。

7.要使语句for i in rang(        ,-4,-2)循环执行15次,则循环变量i的初值应当为    25或26   。

count=0
for i in range(25,-4,-2):
    count+=1
    print(i,end=' ')
print()
print(count)

count=0
for i in range(26,-4,-2):
    count+=1
    print(i,end=' ')
print()
print(count)

8.执行循环语句for i in range(1,5):pass后,变量i的值是    4    。

p78  pass语句是一个空语句

9.一个循环结构的循环体又包括一个循环结构,称为    循环嵌套    或    多重循环    结构。

10.下列程序的输出结果是(   8   )。
 

s=10
for i in range(1,6):
    while True:
        if i%2==1:
            break
        else:
            s-=1
            break
print(s)

只要i是偶数s就减一

三、问答题

1.什么叫循环结构?举例说明其应用。

在一定条件下重复执行某些操作的控制结构称为循环结构,它由循环体及循环条件两部分组成,被重复执行的语句称为循环体,决定是否继续重复的表达式称为循环条件。

循环结构有while语句和for语句

while语句:

(1)while语句的一般格式
 

while 表达式:    
        语句块

(2)使用else子句

在while循环语句中使用else子句,

else中语句的执行:

a.while语句结束后执行后续的else语句(不管是否执行循环体)

b.如果遇到brenk, else语句就不再执行

for语句

(1)一般格式:

for 目标变量 in 序列对象:
    语句块

(2)rang的应用

for i in range(5):
    print(i,end=' ')

程序输出结果如下: 0 1 2 3 4 

2.下列程序的输出结果是什么?如果将语句“print(s)”与语句“pass”缩进对齐,则输出结果是什么?通过比较两次输出结果,可以得到什么结论?

s=10
for i in range(1,6):
    pass
print(s)

 对齐:

s=10
for i in range(1,6):
    pass
    print(s)

在循环语句中我们要注意缩进对齐。不同符对齐方式得出的结果可能会不一样

3.break语句和continue语句的区别是什么?

break语句用在循环体内,迫使所在循环立即终止,即跳出所在循环体,继续执行循环结构后面的语句。

break:停止循环

在循环结构中执行continue语句时,立即结束本次循环,重新开始下一轮循环。

continue:跳过本次循环

4.对于累加求和问题一定要设置累加变量的初值,而且初值都为0,这种说法对吗?用具体程序说明自己的判断。

不一定都赋值为0,根据情况而定。有时候赋值其他初值更为便捷,大部分时候赋初值0。

5.用while语句改写下列程序。
 

s=0
for i in range(2,101,2):
    s+=i
print(s)
s=0
i=2
while i<101:
    s+=i
    i+=2
print(s)

  • 15
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值