测验4: 程序的控制结构

目录

一、单项选择题

二、程序设计题

1.四位玫瑰数

2.100以内素数之和

一、单项选择题

1.

for var in ___:
    print(var)

哪个选项不符合上述程序空白处的语法要求?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.range(0,10)

B.(1,2,3)

C.{1;2;3;4;5}

D."Hello"


C

for .. in .. 中 in 的后面需要是一个迭代类型(组合类型),常见:

【1】由 range() 函数产生的数字序列

【2】字符串

【3】列表

【4】文件

注意:d = {} :空字典

        d = {"a": 1, "b": 2, "c": 3}:用键值对存储数据

2.

for i in range(0,2):
    print(i)

哪个选项是以上程序的输出结果?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.1

B.0 1 2

C.1 2

D.0 1


D

range(0, 2) 等效于 range(2),也等效于range(0, 2, 1),输出两个值:0和1

Python range() 函数 | 菜鸟教程 (runoob.com)

3.

k=10000
while k>1:
    print(k)
    k=k/2

哪个选项给出了上述程序的输出次数?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.1000

B.13

C.15

D.14


D

4.哪个选项是程序的三种基本结构?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.顺序结构,跳转结构,循环结构

B.过程结构,循环结构,分支结构

C.过程结构,对象结构,函数结构

D.顺序结构,循环结构,分支结构


D

无对象结构、跳转结构、过程结构等说法。

顺序结构:按照线性顺序依次执行

循环结构:根据条件判断是否向后反复执行

分支结构:根据条件判断向前执行哪条路径

5.哪个选项关于循环结构的描述是错误的?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.条件循环和遍历循环结构都是基本的循环结构

B.循环是一种程序的基本控制结构

C.死循环无法退出,没有任何作用

D.循环是程序根据条件判断结果向后反复执行的一种运行方式


C

死循环能够用于测试性能,形式上的死循环可以用break来退出,例如:

x = 10
while True:
    x = x - 1
    if x == 1:
         break

死循环是有其作用的。

6.关于Python语句P=-P,哪个选项的描述是正确的?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.P等于它的负数

B.给P赋值为它的负数

C.P=0

D.P的绝对值


B

Python中的=是赋值符号,==是判断相等性的等于符号。

7.哪个选项是用来判断当前Python语句在分支结构中?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.引号

B.大括号

C.缩进

D.冒号


C

缩进表达层次关系。

引号""用来表示字符串,

大括号{}通常用来表示字典或集合,

冒号:用来表示键值对,也用在Python的分支结构中,如if或elif语句和函数定义中。但它们并不直接用来判断当前Python语句在分支结构中

8.哪个选项是下面代码的执行结果?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

for s in "PYTHON":
    if s=="T":
        continue
    print(s,end="")

A.TT

B.PYTHON

C.PYHON

D.PY


C

continue只结束本次循环,但不终止整个循环的执行。

这段代码它for循环遍历字符串"PYTHON"中的每个字符,

当字符为"T"时,使用continue语句跳过当次循环,即循环体中下面没执行的print语句不再执行,

然后它继续当前的for循环,往之后遍历着字符走

9.哪个选项是random库中用于生成随机小数的函数?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.randrange()

B.random()

C.getrandbits()

D.randint()


B

randint()、getrandbits()、randrange()都产生随机整数,random()产生0到1之间的随机小数。

函数随机整数取值范围
randint(a, b)[a, b]
getrandbits(k)k比特长
randrange(m, n[, k])[m, n) 之间以k为步长

10.关于try-except,哪个选项的描述是错误的?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.用于对程序的异常进行捕捉和处理

B.表达了一种分支结构的特点

C.NameError是一种异常类型000000000000000000000000000000000000000000000000000000000000000000000

D.使用了异常处理,程序将不会再出错


D

使用了异常处理,程序可能运行不会出错,但逻辑上可能出错。程序错误是一个大概念,不仅指代码运行错误,更代表功能逻辑错误。

基本语法格式

try:
    <语句块1>
except <异常类型>:
    <语句块2>

try语句块中包含可能会出现异常的代码,except语句块中包含对异常的处理方式。当try语句块中的代码出现异常时,程序会跳转到对应的except语句块中执行异常处理代码。

有缩进表达层次关系,体现分支结构。

二、程序设计题

1.四位玫瑰数

描述

四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。

输入输出示例

输入输出
示例 1
输出仅表示格式,不表示对错
1111
2222
3333

 提交代码

【1】四位数i,a, b, c, d分别表示i的千,百,十,个位,用//与%求得

for i in range(1000,10000):
    a = i // 1000
    b = i % 1000 // 100
    c = i % 100 // 10
    d = i % 10
    s = pow(a,4)+pow(b,4)+pow(c,4)+pow(d,4)
    if s == i:
        print(i)
        #等效print(i,end="\n") 
        #end参数来指定在打印结束时要添加的字符,默认情况下是换行符

注意:

 

【2】四位数i,将 i 转换为字符串,再利用序号取出每位,之后用eval()转换为整数

for i in range(1000, 10000):
    t = str(i)
    s = pow(eval(t[0]),4) + pow(eval(t[1]),4) + pow(eval(t[2]),4) + pow(eval(t[3]),4)
    if s == i :
        print(i)

2.100以内素数之和

描述

求100以内所有素数之和并输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

素数指从大于1,且仅能被1和自己整除的整数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

提示:可以逐一判断100以内每个数是否为素数,然后求和。

输入输出示例

输入输出
示例 1
1234(这是示例,不是真实输出)

 提交代码

def isPrime(digit):
    for i in range(2, digit):
        if digit % i == 0:
            return False
    return True

s = 0
for i in range(2,100):
    if isPrime(i):
        s += i
print(s)
#自定义了一个isPrime函数,用于检查一个数字是否为质数
#终止条件可以为:
# i<=digit**0.5  ( i<digit**0.5+1 )
# i<=digit//2  ( i<digit//2+1 )
# i<digit

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值