Skip to content
课程资料归档 · 2024 / 2025 秋季学期。历史安排与截止日期仅供查阅。

题集链接

OpenJudge/计算概论C(py)/2025-计算概论C-py作业2

01:小树生长

题目描述

一棵小树高x米,如果每个月长高0.1米,一年(12个月)之后它有多高?如果它每个月长高10%,一年之后有多高?

输入
小树原来的身高height

输出
两行
每个月长高0.1米时一年后的身高h1(四舍五入保留一位小数)
每个月长高10%时一年后的身高h2(四舍五入保留两位小数)

题解

思路

知识点

数字类型-浮点型第2章基本数据类型

代码

01:两整数求和

python
h = int(input())
h1 = h + 0.1 * 12
# **(幂运算)的运算符级别高于 *(乘法运算),因此不需要对幂运算使用括号
h2 = h * (1 + 0.1) ** 12
print(f'{h1:.1f}')
print(f'{h2:.2f}')

02:秒转时分秒

题目描述

输入一个以秒为单位的时间,换算成时分秒显示

输入
100

输出
0:1:40

题解

思路

知识点

数字类型-浮点型第2章基本数据类型

代码

02:秒转时分秒

python
a = int(input())
h = a // 3600
m = (a % 3600) // 60
s = a % 60
print(f'{h}:{m}:{s}')

03:求三个数的和

题目描述

输入三个整数或小数,输出它们的和

如果结果是整数,就保留小数点后面一位的0

请注意:本题应该用float对三个数进行转换

输入
​输入三个整数或小数

输出

题解

思路

知识点

数字类型-浮点型第2章基本数据类型

代码

03:求三个数的和 Solution 1

python
# Solution 1
# 使用 map 函数将输入的字符串转换为浮点数 float类型
x, y, z = map(float, input().split())
a = x + y + z
# 强烈推荐使用 is_integer() 方法判断浮点数是否为整数
if a.is_integer():
    print(f'{a:.1f}')
else:
    print(a)

03:求三个数的和 Solution 2

python
# Solution 2
# 使用 for 循环将输入的若干个数字存储在列表中
l = [float(x) for x in input().split()]
# 使用 sum 函数计算列表中所有元素的和
a = sum(l)
# print()函数会自动将是整数的浮点数保留一位小数,因此对于本题不需要特判结果是否为整数
print(a)

04:计算句子中的单词个数

题目描述

输入一句英文句子,求这句话中的单词的个数

输入
teacher assistance is so handsome

输出
5

题解

思路

知识点

数字类型-浮点型第2章基本数据类型

代码

04:计算句子中的单词个数

python
s = input().split()
print(len(s))

05:反向输出一个三位数

题目描述

将一个三位数反向输出。

输入
一个三位数n。

输出
反向输出n。

题解

思路

知识点

数字类型-浮点型第2章基本数据类型

代码

05:反向输出一个三位数 Solution 1

python
# Solution 1
s = input()
# .reverse()是原地修改列表,然而字符串是不可变的,所以字符串没有.reverse()方法
# reversed()函数反转字符串会生成新的变量的迭代器,通过 .join()方法将字符拼接为字符串
t = "".join(reversed(s))
print(t)

05:反向输出一个三位数 Solution 2

python
# Solution 2
s = input()
# 通过切片实现字符串的反转
print(s[::-1])

06:字符串中的整数求和

题目描述

输入两个长度为3的字符串,每个串前两个字符是数字,后一个字符是字母。 求这两个串中的整数的和

输入
一行,两个字符串

输出
两个字符串中整数的和

题解

思路

知识点

数字类型-浮点型第2章基本数据类型

代码

06:字符串中的整数求和

python
a, b = input().split()
# 通过切片取字符串前两位并用 int()函数转换为整数
x = int(a[:2])
y = int(b[:2])
print(x + y)

07:字母加密

题目描述

英文小写字母构成一个封闭的环,输入密钥n,在环上按顺时针方向移动n步,得到加密后的字母。注意,密钥的取值范围不仅限于0~26。如输入英文小写字母a,密钥3,则加密后的字母为d;输入英文小写字母z,密钥1,则加密后的字母为a。输入英文小写字母a,密钥27,则加密后的字母为b。

输入
两行
第一行是英文小写字母
第二行是密钥

输出
加密后的字母

题解

思路

知识点

数字类型-浮点型第2章基本数据类型

代码

07:字母加密

python
c = input()
n = int(input())
# 字符 a-z 在 Unicode 中的编码是按顺序且连续排列的
# 先计算输入字符相对于字符 'a' 的偏移量
offset = ord(c) - ord('a')
# 再计算输入字符移动 n 步后的偏移量,因为是循环移动,所以需要取余数 26
newOffset = (offset + n) % 26
# 最后将偏移量加上字符 'a' 的编码,得到加密后的字符
print(chr(ord('a') + newOffset))

07:字母加密

python
alphabet = "abcdefghijklmnopqrstuvwxyz"
key = int(input())
cha = input()
pos = alphabet.find(cha)
pos = (pos + key) % len(alphabet)   # 求模的目的:处理加上密钥后的位置超出26的情况
new_char = alphabet[pos]   # 索引方式访问字符串
print(new_char)

贡献者:陈旭峥 徐志衡 上次修改:2025/10/16


课程资料由授课教师、助教与同学共同积累。