ID: 20378854

高中信息技术浙教版(2019)必修1数据与计算:3.3.1 解析算法及其程序实现-课后练习(含答案)

日期:2024-11-22 科目:信息技术 类型:高中试卷 查看:14次 大小:29370B 来源:二一课件通
预览图 1/1
高中,解析,练习,课后,实现,程序
  • cover
作业练习 课程基本信息 学科 信息技术 年级 高二 学期 秋季 课题 3.3.1 解析算法及其程序实现 教科书 书 名:《数据与计算》教材 -出卷网-:浙江教育-出卷网- 学生信息 姓名 学校 班级 学号 作业练习 1、田径运动员技术等级国家标准规定,男子100米项目电子计时成绩等级如下: 等级名称国际级运动健将运动健将一级运动员二级运动员成绩(秒)≤10.25<10.50< 10.93< 11.74 现要求编写程序实现如下功能:输入100米的成绩(秒),输出与该成绩对应的等级名称。 用Python语言编写的程序如下,请回答下列问题。 x = eval(input("请输人100米的成绩:")) if__ ①_____: y="国际级运动健将” elif x<10.50: y="运动健将" elif____②_____: y="-级运动员" elif x<11.74: y="二级运动员" else: y="二级运动员以下" print("100米成绩:”,x,"等级名称为:"y)0时址 (1)当输人100米的成绩为10.25,则程序输出等级名称为 _____ (2)请在程序划线处填人合适的代码。 划线①处应填人的语句为:_____ 划线②处应填人的语句为:_____ 2、现要求编写程序实现如下功能:输人正整数n,输出一个有规律的数字串,形式为“1 2 3…n-1 n n-1…3 2 1例如n=6时,显示的数字串为“1 2 3 4 5 6 5 4 3 2 1”。按此要求编写的程序如下,但加框处代码有错,请改正。 n=int(input("Please in put n:")) s=”” for i in range(1 , 2 * n + 1): #改错① if i>n: s = s + str( 2 * n – 1 )+"" #改错② else: s = s + str(i) + "" print(s) 3、编写程序,实现如下功能:输入一个十六进制数,输出该十六进制数对应的十进制数,程序运行效果如图 请输入十六进制数:3F 3F H → 63 D 请输入十六进制数:1b 输入有误! 实现上述功能的程序如下,请回答下列问题: s= input(”请输入十六进制数:") b= len(s) flag= True ans= 0 for i in range(O,b): c=s[i] if c>="0" and c<="g": ans = ans* 16+ord(c)-ord("0") elif c>="A" andc<="F": _____①_____ else: _____②_____ break if flag: print(s," H→",str(ans),"D") else: print("输入有误!") (1)程序运行时,输入"10D",输出的结果为_____。 (2)请在程序划线处填入合适的代码 (1)划线①处应填入的语句为:_____ (2)划线②处应填入的语句为: _____ 参考答案: 1.(1)国际级运动健将 (2) ①x< = 10.25 ②x<10.93 解析(1)根据成绩与等级表可知,程序输出等级名称为“国际级运动健将”。(2)根据语句y="国际级运动健将"可知,条件为x<=10.25;根据语句y="一级运动员"可知条件x<10.93。 2.①range(1,2* n)或range(1,2* n,1) ②s+str(2*n-i) 解析 数字串“123…n-1 n n-1…321”共有2*n- 1个,并且从1开始,因此range的初值为1,终值为2*n,步长为1,(1,2* n)数字字符,①处代码修改为range(1,2* n)或①range(1,2* n,1);当i>n时,输出的数字串是逐渐递减的,因此②处代码修改为s+str(2* n-i)。 3.(1)10D H - 269 D (2) ①ans=ans*16+ord(c)- ord("A")+10 或ans=ans*16+ord(c)-55 ②flag = False 解析 (1)输入十六进制数为“10D”,十六进数10D转换为十进制数为269,因此输出的结果为:10DH +269D, (2)程序①处表示十六进制位置上是字母的情况,则将该字母转换为对应的数值,可用该字母的ASCII减去字母“A"的ASCI值再加上10,大写字母A的ASCII值为65,也可直接写为ord(c)-55,因此①处应填入的代码为ans- ans* 16+ ord(c)- ord("A")+ 10或ans=ans*16+ord(c)-55,如果输入的不是数字或不是“A- F"的大写字母,则输入有误,最后根据flag的值来输出结果,因此当输入有误时,将flag赋值为False,故②处应填入的语向为flag=False ... ...

~~ 您好,已阅读到文档的结尾了 ~~