第4章 控制结构习题(含答案及解析)

第4章  控制结构习题(含答案及解析)
第4章  控制结构习题(含答案及解析)

第4章控制结构习题

一、选择题。

1.关于程序设计所要求的基本结构,以下选项中描述错误的是( )

A)循环结构

B)分支结构

C)goto 跳转

D)顺序结构

正确答案: C

解析:为了表示更复杂的处理逻辑,在Python程序中存在三种基本结构,它们分别是:顺序结构;分支结构;循环结构。

2.下面代码的输出结果是

for s in “HelloWorld”:

if s==“W”:

continue

print(s,end="")

A)Hello

B)World

C)HelloWorld

D)Helloorld

正确答案: D

解析:Python通过保留字for实现“遍历循环”,for语句的循环执行次数是由遍历结构体中元素的个数确定的。遍历循环可以理解为从要遍历的结构中逐一提取元素,并赋值给循环变量,对于所提取的每个元素执行一次循环体。Python 提供了两个保留字:break和continue,用来辅助控制循环执行。continue语句只结束本次循环,而不终止整个循环的执行。

3.关于Python循环结构,以下选项中描述错误的是()

A)遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range()

函数等。

B)break用来跳出最内层for或者while循环,脱离该循环后程序从循环代码后继续执行

C)每个continue语句只有能力跳出当前层次的循环

D)Python通过for、while等保留字提供遍历循环和无限循环结构

正确答案: C

解析:continue用来结束当前当次循环,但不跳出当前循环;

每个break语句只有能力跳出当前层次的循环。

4.以下程序的输出结果是:()

for i in "CHINA":

for k in range(2):

print(i, end="")

if i == 'N':

break

A)CCHHIINNAA

B)CCHHIIAA

C)CCHHIAA

D)CCHHIINAA

正确答案: D

解析:每个break语句只有能力跳出当前层次的循环。

5.执行以下程序,输入qp,输出结果是:( )

k = 0

while True:

s=input('请输入q退出:')

if s == 'q':

k += 1

continue

else:

k += 2

break

print(k)

A) 2

B)请输入q退出:

C) 3

D) 1

正确答案: A

解析:s值为 'qp', if s == 'q'为False,执行else语句块。

6. 执行以下程序,输入”93python22”,输出结果是:( )

w = input(‘请输入数字和字母构成的字符串:’)

for x in w:

if '0'<= x <= '9':

continue

else:

w.replace(x,'')

print(w)

A) python9322

B) python

C) 93python22

D) 9322

正确答案: C

解析:'0'的ASCII是48,‘9’的ASCII是57,小写字母的ASCII都大于等于97,所以,循环到‘python’的字母时,执行else语句,但是,关于 string 的replace 方法,需要注意 replace 不会改变原 string 的内容。

7.以下选项,不属于程序流程图基本元素的是:( )

A)循环框

B)连接点

C)判断框

D)起止框

正确答案: A

解析:程序流程图主要由起止框、判断框、处理框、输入/输出框、连接点、流向线和注释框7种基本元素构成。

8.以下关于循环结构的描述,错误的是( ):

A)遍历循环使用for <循环变量> in <循环结构>语句,其中循环结构不能是文件

B)使用range()函数可以指定for循环的次数

C) for i in range(5)表示循环5次,i的值是从0到4

D)用字符串做循环结构的时候,循环的次数是字符串的长度

正确答案: A

解析:遍历循环,可以是计数循环、字符串遍历循环、列表遍历循环、文件遍历循环和字典遍历循环等。

9. for或者while与else搭配使用时,关于执行else语句块描述正确的是( )

A)仅循环非正常结束后执行(以break结束)

B)仅循环正常结束后执行

C)总会执行

D)永不执行

正确答案: B

解析:在Python中,for循环可以和else语句一起使用,其中,for循环中的语句和普通的for语句没有区别,else中的语句会在循环正常执行完成的情况下执行,所谓循环正常执行完成,即for 循环里的语句没有被 break 语句打断。

10.下面代码的输出结果是( )

for n in range(400,500):

i = n // 100

j = n // 10 % 10

k = n % 10

if n == i ** 3 + j ** 3 + k ** 3:

print(n)

A)407

B)408

C)153

D)159

正确答案: A

解析:range(400,500) 函数可创建一个从 400开始到 499的整数列表。

“//”为取整除运算符,返回商的整数部分(向下取整)。

“%”为取模运算符,返回除法的余数。

11.给出下面代码:

a = input("").split(",")

x = 0

while x < len(a):

print(a[x],end="")

x += 1

代码执行时,从键盘获得:Python语言,是,脚本,语言

则代码的输出结果是( )

A)执行代码出错

B)Python语言,是,脚本,语言

C)Python语言是脚本语言

D)无输出

正确答案: C

解析:split() 通过指定分隔符对字符串进行切片,返回分割后的字符串列表。

print默认是打印一行,结尾加换行,end=""末尾不换行。

12.以下程序的输出结果是:( )

s=''

ls = [1,2,3,4]

for l in ls:

s += str(l)

print(s)

A)1,2,3,4

B)4321

C)4,3,2,1

D)1234

正确答案: D

解析:str返回一个对象的string格式,“+”将字符串拼接。

13.以下关于程序控制结构描述错误的是:( )

A)单分支结构是用if保留字判断满足一个条件,就执行相应的处理代码

B)二分支结构是if-else根据条件的真假,执行两种处理代码

C)多分支结构是用if-elif-else处理多种可能的情况

D)在Python的程序流程图中可以用处理框表示计算的输出结果

正确答案: D

解析:在Python的程序流程图中用输入/输出框表示计算的输出结果。

14.ls = [1,2,3,4,5,6], 以下关于循环结构的描述,错误的是:( )

A)表达式 for i in range(len(ls)) 的循环次数跟 for i in ls 的循环次数是一样的

B)表达式 for i in range(len(ls)) 的循环次数跟 for i in range(0,len(ls)) 的循环次数是一样的

C)表达式 for i in range(len(ls)) 的循环次数跟 for i in range(1,len(ls)+1) 的循环次数是一样的

D)表达式 for i in range(len(ls)) 跟for i in ls 的循环中,i 的值是一样的

正确答案: D

解析: for i in range(len(ls)),i从0开始循环,for i in ls ,i从1开始循环。

15.以下程序的输出结果是:( )

j = ''

for i in "12345":

j += i + ','

print(j)

A)1,2,3,4,5

B)12345

C)‘1,2,3,4,5,’

D)1,2,3,4,5,

正确答案: D

解析: j += i + ',' ,将字符串 "12345"的各字符用“,”拼接起来。

16.以下程序的输出结果是:( )

a = 30

b = 1

if a >=10:

a = 20

elif a>=20:

a = 30

elif a>=30:

b = a

else:

b = 0

print('a={}, b={}'.format(a,b))

A)a=30, b=1

B)a=30, b=30

C)a=20, b=20

D)a=20, b=1

正确答案: D

解析:在Python语言中,多分支结构依次判断第一个结果为真的条件,执行该条件下的语句块,结束后跳过整个if-elif-else结构,执行后面的语句。如果没有任何条件成立,else下面的语句块将被执行。

17.以下程序的输出结果是:( )

x= 10

while x:

x -= 1

if not x%2:

print(x,end = '')

else:

print(x)

A)86420

B)975311

C)97531

D)864200

正确答案: D

解析: x从10开始循环,if not x%2,x能被整除时,执行 print(x,end = ''),当x循环到0时,执行else后面的语句。

18.以下关于分支和循环结构的描述,错误的是:( )

A)python 的在分支和循环语句里使用例如 x<=y<=z 的表达式是合法的

B)分支结构的中的代码块是用冒号来标记的

C)while 循环如果设计不小心会出现死循环

D)二分支结构的<表达式1> if <条件> else <表达式2> 形式,适合用来控制程序分支

正确答案: D

解析:<表达式1> if <条件> else <表达式2>是二分支结构的紧凑形式,适用于简单表达式的二分支结构。

19.以下关于程序控制结构描述错误的是:( )

A)分支结构包括单分支结构和二分支结构

B)二分支结构组合形成多分支结构

C)程序由三种基本结构组成

D)Python 里,能用分支结构写出循环的算法

正确答案: D

20. 以下关于循环结构的描述,错误的是:( )

A)遍历循环的循环次数由遍历结构中的元素个数来体现

B)非确定次数的循环的次数是根据条件判断来决定的

C)非确定次数的循环用 while 语句来实现,确定次数的循环用 for 语句来实现

D)遍历循环对循环的次数是不确定的

正确答案: D

解析: Python通过保留字for实现“遍历循环”,之所以称为“遍历循环”,是因为for语句的循环执行次数是由遍历结构体中元素的个数确定的。

21.以下程序的输出结果是:( )

for i in "the number changes":

if i == 'n':

break

else:

print( i, end= "")

A)the umber chages

B)thenumberchanges

C)theumberchages

D)the

正确答案: D

解析:break用来跳出其所在层的for或while循环。

22.以下程序的输出结果是:( )

t = "Python"

print(t if t>="python" else "None")

A)Python

B)"python"

C)t

D)None

正确答案: D

解析:字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同就比第二个字符串,以此类推,需要注意的是空格的ascii码是32,空(null)的ascii码是0,大写字母和小写字母的ASCII 不同。大写字母的ASCII比小写字母的ASCII小。

23.以下程序的输出结果是:( )

for i in range(3):

for s in "abcd":

if s=="c":

break

print (s,end="")

A)abcabcabc

B)aaabbbccc

C)aaabbb

D)ababab

正确答案: D

解析:break用来跳出其所在层的for或while循环。

24.以下代码段,不会输出A,B,C,的选项是:( )

A)

for i in range(3):

print(chr(65+i),end=",")

B)

for i in [0,1,2]

print(chr(65+i),end=",")

C)

i = 0

while i < 3:

print(chr(i+65),end= ",")

i += 1

continue

D)

i = 0

while i < 3:

print(chr(i+65),end= ",")

break

i += 1

正确答案: D

解析:D选项输出“A,”,break跳出其所在层的while循环。

25.下面代码的输出结果是( )

for s in "abc":

for i in range(3):

print (s,end="")

if s=="c":

break

A)aaabccc

B)aaabbbc

C)abbbccc

D)aaabbbccc

正确答案: B

解析:break跳出其所在层的for循环。

26.下面代码的输出结果是( )

for s in "abcd":

for i in range(3):

print (s,end="")

if s=="c":

Break

A)aaabccc

B)aaabbbc

C)abbbccc

D)aaabbbcddd

正确答案: D

解析:break跳出其所在层的for循环。可与第25题比较学习。

27.关于Python循环结构,以下选项中描述错误的是( )

A)遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range()函数等

B)break用来结束当前当次语句,但不跳出当前的循环体

C)continue只结束本次循环

D)Python通过for、while等保留字构建循环结构

正确答案: B

解析:break 语句一般会结合 if 语句进行搭配使用,表示在某种条件下,跳出循环体。如果使用嵌套循环,break 语句将跳出当前层循环。

28.关于 Python 的分支结构,以下选项中描述错误的是( )

A)分支结构使用 if 保留字

B)Python 中 if-else 语句用来形成二分支结构

C)Python 中 if-elif-else 语句描述多分支结构

D)分支结构可以向已经执行过的语句部分跳转

正确答案: D

解析:循环结构是程序根据条件判断结构向后反复执行的一种运行方式;分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式。

29.下列有关break语句与continue语句不正确的是( )

A)当多个循环语句彼此嵌套时,break语句只适用于最里层的语句。

B) continue语句类似于break语句,也必须在for、while循环中使用。

C) continue语句结束循环,继续执行循环语句的后继语句。

D) break语句结束循环,继续执行循环语句的后继语句。

正确答案: C

解析:Python提供了两个保留字:break和continue,用来辅助控制循环执行。break用来跳出其所在层的for或while循环,脱离该循环后程序从循环代码后继续执行。continue语句只结束本次循环,而不终止整个循环的执行。

30.关于程序的控制结构,哪个选项的描述是错误的?( )

A) 流程图可以用来展示程序结构

B) 顺序结构有一个入口

C) 控制结构可以用来更改程序的执行顺序

D) 循环结构可以没有出口

正确答案: D

解析:三种基本结构具有以下共同的特点:(1)只有一个入口;(2)只有一个出

口;(3)结构体内的每一部分都有机会被执行到;(4)结构体内不存在死循环。

二.程序分析题。

1.下面程序的执行结果是______________。

s = 0

for i in range(1,101):

s += i

if i == 10:

print(s)

break

else:

print(1)

答案:55

解析:在Python中,for循环可以和else语句一起使用,else中的语句会在循环正常执行完成的情况下执行,所谓循环正常执行完成,即for 循环里的语句没有被 break 语句打断。此题,在 i == 10时,执行break语句,跳出循环,else语句不执行。

2.下面程序的执行结果是______________。

k=4

n=0

while n

n=n+1

if n%2==0:

continue

k=k-1

print("k=%d,n=%d" % (k,n))

答案:k=2,n=3

解析:continue语句只结束本次循环,而不终止整个循环的执行。

3.下面程序的执行结果是__________________。

s = 0

for i in range(1,101):

s += i

else:

print(1)

答案:1

解析:此题,for循环正常结束后,执行else语句。

4. 下面程序的执行结果是______________。

w = "python"

if '0'<= x <= '9':

print(x)

else:

print(w.replace(x,'null'))

答案:pythonull

解析:'0'的ASCII是48,‘9’的ASCII是57,小写字母的ASCII都大于等于97,所以,if条件不成立,执行else语句。

三.编程题。

1.编程求 200 以内能被 17 整除的最大正整数。

答案:

for i in range(200,0,-1):

if i%17 == 0:

print(i)

break

else:

print('no exist')

2.编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。

答案:

x =int(input("请输入一个年份:"))

if (( x%400)==0) or (x%4==0 and not x%100==0):

print('Yes')

else:

print('No')

3. 某自然数除它本身之外的所有因子之和等于该数,则该数被称为完数。请输出1000以内的完数。

答案:

for i in range(2,1001):

s = i

for j in range(1,i):

if i%j == 0:

s -= j

if s == 0:

print(i)

4.计算小于 100 的最大素数。

答案:

for n in range(100, 1, -1):

for i in range(2, n):

if n%i == 0:

break

else:

print(n,end=' ')

break

相关主题
相关文档
最新文档