茂名市 2021 年高中信息技术学科素养展评

没事干,发一下去年去比赛的题目。

目录

第一题 30分

第二题 30分


第一题 30分

题目:

        “姐姐,乘除法运算太难了,有什么办法能熟练掌握吗?”今年
读小学四年级的表弟向李红求救。为了提高表弟的运算能力,李红所
在的编程兴趣小组决定开发小学生数学测试系统。请你参考样例的功
能及要求,完成程序的编写及调试。程序代码文件以“题 1”命名,
保存到桌面个人文件夹中。


程序运行参考样例

茂名市 2021 年高中信息技术学科素养展评_第1张图片

 下面是要求

内容 要点 分值

功能

选择

界面

提供菜单选择“1.两位整数的乘法运算。2.两
位整数的除法运算。3.退出”并能根据不同的选择
进入不同的功能。
5
2

数 内
的 整
数 乘
法 练
习 系
统 设
1.由用户输入练习的题目数量 n(3 2.自动产生乘数与被乘数(要求:乘数和被乘数均
为不超过 99 的 2 位整数,每题练习乘数和被乘数
自动随机变化)。
3.用户输入答案:(1)答案正确,出现提示信息
“回答正确,你真厉害”,进入下一题;(2)回
答错误,出现提示信息“回答错误,继续加油”,
进入下一题。
4.统计用户正确答题数及正确率(正确率=(正确
答题数/总练习题数)*100,按“四舍五入”方式
进行取整),当正确率 95%以上,显示“你真优秀!”,
当正确率在 80%-95%之间,显示“非常不错!”,
当正确率在 60%-80%之间,显示“加油,你可以更
好!”当正确率小于 60%,显示“加油,你一定可
以的!”。
17
2

数 内
的 整
数 除
法 练
习 系
统 设
1.由用户输入练习的题目数量 n(3 2.自动产生被除数和除数(要求:两个数均为不超
过 99 的整数,且两数是整除关系,每题练习被除
数和除数自动随机变化)。
3.用户输入答案:(1)答案正确,出现提示信息
“回答正确,你真厉害”,进入下一题;(2)回
答错误,出现提示信息“回答错误,继续加油”,
进入下一题。
4.统计用户正确答题数及正确率(正确答题数/总
练习题数)*100,按“四舍五入”方式进行取整),
当正确率 95%以上,显示“你真优秀!”,当正确
率在 80%-95%之间,显示“非常不错!”,当正确
率在 60%-80%之间,显示“加油,你可以更好!”当
正确率小于 60%,显示“加油,你一定可以的!”。
5
退 出
功 能
当用户选择 3 时,程序结束运行。 3

要求2和要求3是一样的,先写要求2,只要写出了要求2,那么这题就过了。

来看看要求2。

小要求1是范围,小要求2是用random里的模块来随机生成数字。小要求3和4直接过。

当时在比赛的时候,我写完笔试部分时还有大概70分钟。然后在上机操作这里第一题就卡了差不多半小时。。  被题目数量卡住了。

                                                

小问题,想到了for循环,在for那里设置数量,如果到了就跳出。            

 茂名市 2021 年高中信息技术学科素养展评_第2张图片

 其他的都不是问题,要求3其实就是要求2,把乘改成除就完事了

其实还有随机生成,我是没想到random的。

代码如下:

from random import randint
while True:
    xuan_zhe = int(input("1.两位整数的乘法运算。\n2.两位整数的除法运算。\n3.退出\n请选择:"))
    if xuan_zhe == 1:
        c_x = int(input("欢迎使用两位整数的乘法运算练习\n请输入练习题目的数量:"))
        print(c_x)
        if c_x > 3 and c_x < 100:
            correct_num = 0
            for i in range(c_x):
                cheng = randint(10,99)
                bei_cheng = randint(10,99)
                print("{} * {} = ".format(cheng,bei_cheng))
                shur = int(input("请输入答案:"))
                if shur == cheng*bei_cheng:
                    print('回答正确,你真厉害')
                    correct_num += 1
                else:
                    print('回答错误,继续加油')
            correct_rate = (correct_num/c_x)*100
            if correct_rate >= 95:
                print("你真优秀!")
            elif correct_rate >= 80 and correct_rate < 95:
                print("非常不错!")
            elif correct_rate >= 60 and correct_rate < 80:
                print("加油,你可以更好!")
            else:
                print("加油,你一定可以的!")
        else:
            print("数量为:3-100之间。请重新输入数量:")
    elif xuan_zhe == 2:
        cc_x = int(input("欢迎使用两位整数的除法运算练习\n请输入练习题目的数量:"))
        print(cc_x)
        if cc_x > 3 and cc_x < 100:
            correct_num = 0
            for i in range(cc_x):
                bei_chu = randint(10, 99)
                chu = randint(2, 99)
                print("{} / {} = ".format(bei_chu, chu))
                shur = int(input("请输入答案:"))
                if shur == bei_chu / chu:
                    print('回答正确,你真厉害')
                    correct_num += 1
                else:
                    print('回答错误,继续加油')
            correct_rate = (correct_num / cc_x) * 100
            if correct_rate >= 95:
                print("你真优秀!")
            elif correct_rate >= 80 and correct_rate < 95:
                print("非常不错!")
            elif correct_rate >= 60 and correct_rate < 80:
                print("加油,你可以更好!")
            else:
                print("加油,你一定可以的!")
        else:
            print("数量为:3-100之间。请重新输入数量:")
    elif xuan_zhe == 3:
        print("程序运行结束")
        break

第二题 30分

题目:

        小金同学学完了进制转换后,对课后的不同进制数的加减法(如:
“1110B+10D-30H=”)很是头疼,爱动脑筋的小金突发奇想,能不
能用程序来完成这些作业呢?请帮小金完成代码编写。要求:输入加
数分别为二进制数、十进制数或十六进制数,输出和为十进制数。(程
序代码文件以“题 2”命名,保存到桌面个人文件夹中)。

输入输出样例:

茂名市 2021 年高中信息技术学科素养展评_第3张图片

 

注意看要求:输入加
数分别为二进制数、十进制数或十六进制数,输出和为十进制数。

但是写完第一题剩下的时间不多了,第二题都没写完,回到学校才写出来的。。

茂名市 2021 年高中信息技术学科素养展评_第4张图片 

但是,我只是去看题目的,没想要奖

茂名市 2021 年高中信息技术学科素养展评_第5张图片

我的奖,我的荣誉证书

 

这题其实没什么好想的,判断输入的进制,然后计算就好了。

代码如下:

while True:
    expression = input("请输入加数分别为二进制数、十进制数或十六进制数的表达式:")
    if expression.find('B') != -1:
        b_num = int(expression[:expression.find('B')],2)
    else:
        b_num = 0
    if expression.find('D') != -1:
        d_num = int(expression[expression.find('B')+1:expression.find('D')])
    else:
        d_num = 0
    if expression.find('H') != -1:
        h_num = int(expression[expression.find('D')+1:expression.find('H')],16)
    else:
        h_num = 0
    result = b_num + d_num - h_num
    print("{}={}D".format(expression,result))

原题目可以看我的资源。

你可能感兴趣的:(python,数据结构,算法,python,比赛)