菜单
本页目录

编程题

1.计算马铃薯销售金额(15分)

马铃薯也叫土豆,是一种常见的根茎类蔬菜,每个土豆根据重量可以分为以下四个等级:
A类(大土豆) 重量>=50克
B类 (中土豆) 50克>重量>=30克
C类(小土豆) 30克>重量>=20克
D类(微小土豆)重量<20克
不同类别市场批发价格也不同:
A类:1.5元/500克
B类:1.2元/500克
C类:1元/500克
D类:0.7元/500克
阿宝下乡研学期间发现土豆的分类和分拣通常由人工观察,进行大致分类。阿宝想,是否可以做一个自动分拣土豆机,根据土豆的重量结合机械手臂进行自动分拣。
你可以帮助阿宝编写这个程序吗?该程序需要实现以下功能:
(1)录入每个土豆的重量(用来模拟,称重后的读数);假定输入数据是合理范围(都是大于等于0的数字,为了便于计算,要求输入的数据都是整数)
(2)当录入0时,程序停止运行,并打印所有土豆售出后的销售额;(提醒大家,土豆的售价是以500克为单位,每个土豆的价格需要进行换算,换算公式为:每个土豆价格=每个土豆的重量*批发价/500)
(3)销售金额,最终结果保留2位小数
友情提示:
由于考试平台暂不支持eval()命令,同学们可以选用其他命令;当然如果您使用了,只要程序是正确的,我们阅卷时依然按照正常处理。

题目解析

我们来一起看看这个有趣的题目。阿宝想要做一个自动分拣土豆机,我们要帮他编写一个程序来模拟这个分拣过程,并且计算出所有土豆卖出去能得到多少钱。下面我们一步一步来理解这个题目。

1. 土豆的等级分类

土豆根据重量被分成了四个等级,就好像小朋友们根据身高被分成不同的小组一样。

  • A类(大土豆):重量大于等于50克,就像班级里个子比较高的小朋友。
  • B类(中土豆):重量小于50克但是大于等于30克,是中等个子的小朋友。
  • C类(小土豆):重量小于30克但是大于等于20克,是个子稍微小一点的小朋友。
  • D类(微小土豆):重量小于20克,就是班级里个子最小的小朋友。

2. 不同等级土豆的价格

不同等级的土豆,在市场上的批发价格是不一样的,就像不同大小的玩具价格不同一样。

  • A类土豆:每500克卖1.5元。
  • B类土豆:每500克卖1.2元。
  • C类土豆:每500克卖1元。
  • D类土豆:每500克卖0.7元。

3. 程序的功能

我们要编写的程序有两个主要功能:

  • 录入土豆重量:我们要一个一个地输入每个土豆的重量,就像给每个小朋友量身高一样。这里输入的重量都是大于等于0的整数。
  • 计算销售额:当我们输入0的时候,就表示我们已经把所有的土豆重量都输完了,这时候程序要停止运行,并且计算出所有土豆卖出去能得到多少钱。计算每个土豆的价格要用这个公式:每个土豆价格 = 每个土豆的重量 * 批发价 / 500。最后算出来的销售金额要保留两位小数,就像我们去超市买东西,价格一般都保留到分一样。

参考答案

# 初始化总销售额为0
total_sales = 0

while True:
    # 提示用户输入土豆的重量
    weight = int(input("请输入土豆的重量(输入0结束录入):"))
    # 如果输入的重量是0,停止录入
    if weight == 0:
        break
    # 根据土豆的重量判断等级,并计算价格
    if weight >= 50:
        # A类土豆,每500克1.5元
        price = weight * 1.5 / 500
    elif 30 <= weight < 50:
        # B类土豆,每500克1.2元
        price = weight * 1.2 / 500
    elif 20 <= weight < 30:
        # C类土豆,每500克1元
        price = weight * 1 / 500
    else:
        # D类土豆,每500克0.7元
        price = weight * 0.7 / 500
    # 把当前土豆的价格加到总销售额里
    total_sales += price

# 打印最终的总销售额,保留两位小数
print(f"所有土豆售出后的销售额为:{total_sales:.2f}元")

这个程序首先把总销售额初始化为0,然后进入一个循环,不断地让用户输入土豆的重量。当用户输入0的时候,循环就会停止。在循环里,程序会根据输入的土豆重量判断它属于哪个等级,然后计算出这个土豆的价格,把这个价格加到总销售额里。最后,程序会打印出所有土豆的总销售额,并且保留两位小数。这样,我们就完成了自动分拣土豆机的模拟程序啦!

2.处理单词中是否有重复(15分)

小龙同学有个神奇的优势:只要单词中的字母没有任何重复,他就能过目不忘。如果有重复,他则需要专门记忆。请写一段程序,输入一个单词,如果小龙能过目不忘(即:单词中没有重复的字母)则输出"yes",否则(即:单词中有重复的字母)输出"no"。
友情提示:
由于考试平台暂不支持eval()命令,同学们可以选用其他命令;当然如果您使用了,只要程序是正确的,我们阅卷时依然按照正常处理。
评分标准:
(1)有输入语句;(2分)
(2)对输入的词语有遍历处理;(2分)
(3)有识别是否有重复字符的程序;(4分)
(4)有条件语句;(2分)
(5)有输出语句;(2分)
(6)程序运行正确。(3分)

题目解析

1. 程序的输入

程序需要我们输入一个单词,这个单词就是我们要判断的对象,就好像我们要给小龙看的一个神秘代码,看看他能不能轻松记住。

2. 程序的处理过程

我们要对输入的这个单词进行检查,看看里面有没有重复的字母。这就好比我们要检查一串珍珠项链,看看有没有两颗一模一样的珍珠。为了完成这个检查,我们需要对单词里的每个字母都进行观察,也就是要遍历这个单词。

3. 程序的输出

根据检查的结果,程序要输出不同的信息。如果单词里没有重复的字母,就像项链里每颗珍珠都不一样,那么小龙就能过目不忘,我们的程序要输出 “yes”;如果单词里有重复的字母,就像项链里有两颗一样的珍珠,小龙就需要专门记忆,程序要输出 “no”。

参考答案

# (1)有输入语句
word = input("请输入一个单词:")

# 用于记录已经出现过的字母
seen_letters = []

# (2)对输入的词语有遍历处理
for letter in word:
    # (3)有识别是否有重复字符的程序
    if letter in seen_letters:
        # 发现重复字母
        result = "no"
        break
    else:
        # 将当前字母添加到已出现字母列表中
        seen_letters.append(letter)
else:
    # 遍历完单词都没有发现重复字母
    result = "yes"

# (4)有条件语句(在遍历过程中使用了条件判断)
# (5)有输出语句
print(result)

代码解释

  1. 输入语句:使用 input 函数让用户输入一个单词,并将其存储在变量 word 中。
  2. 遍历处理:使用 for 循环遍历 word 中的每个字母。
  3. 识别重复字符:使用一个列表 seen_letters 来记录已经出现过的字母。在遍历过程中,检查当前字母是否已经在 seen_letters 列表中,如果是,则说明有重复字母,将结果设为 “no” 并跳出循环。
  4. 条件语句:在 for 循环中使用 if 语句判断字母是否重复,同时使用 else 子句处理遍历完单词都没有发现重复字母的情况。
  5. 输出语句:使用 print 函数输出最终的判断结果。 通过以上步骤,程序可以正确判断输入的单词中是否有重复字母,并输出相应的结果。