外观
2026-计算概论C-py作业1
题集链接
OpenJudge/计算概论C(py)/2026-计算概论C-py作业1共 5 题。题面、提示、易错点与完整参考解析均可直接查看,无需密码。
01:两整数求和
题目描述
输入两个整数,求这两个整数之和
输入
两行,每行一个整数
输出
两个整数的和
样例输入
text
3
6样例输出
text
9解题提示
本题知识点: 第 1 章《程序设计与 Python 导引》: input() 一次读取一行并返回字符串,print() 输出计算结果。第 2 章《基本数据类型》: 用 int() 把数字字符串转换为整数,再用 + 做数值加法。
- 题目给的是两行输入,先分别读取,再转换为整数;
input()读到的原始值是字符串。 - 可以按“读取两个数 → 计算总和 → 输出总和”的顺序组织程序。输出时只保留计算结果,不写说明文字。
- 除了样例
3和6,再用-2和5自测,检查代码是否真的参与运算。
这题是分两行输入,读取部分可以先写成:
python
a = int(input())
b = int(input())运算关键点: 这题要做数值相加:3 + 6 得到 9,而字符串相加 '3' + '6' 得到 '36'。两数转为整数后,只需把求和结果传给 print();不输出变量名或提示语。
易错点
- 字符串拼接: 直接把两次
input()的结果相加,会把3和6拼成36,而不是求和。 - 多余输出:
input('请输入数字:')会显示提示,print('和为', 结果)也会多出文字;判题只接受一个数。 - 只对样例有效: 把
9写死在输出里,或变量名拼错,换一组输入就无法得到正确结果。
题解
思路
将两行输入转成整数后相加。
知识点
输入函数与输出函数第1章程序设计与Python导引
数字类型-整型第2章基本数据类型
代码(徐志衡)
python
a = int(input())
b = int(input())
c = a + b
print(c)02:简单的A*B问题
题目描述
输入两个数A和B,求A*B。
输入
两行,第一行输入一个数A,第二行输入一个数B。A和B均为浮点数。
输出
一个浮点数,即A*B的值。要求结果保留两位小数。
样例输入
text
1
3.4样例输出
text
3.40解题提示
本题知识点: 第 2 章《基本数据类型》: float 表示带小数的数,* 做乘法;f 字符串中的 :.2f 固定显示两位小数,round() 返回数值而不会补齐末尾的零。
- 两个数都可能有小数,读取时要选择能处理小数的数值类型。
- 框架是“读取 A → 读取 B → 相乘 → 按两位小数输出”。先把乘法结果算出来,再处理显示格式。
- 用样例检查:
1 × 3.4的数值是3.4,但题目要求显示为3.40;这里的末尾0也是输出的一部分。
读取浮点数时,可先写:
python
a = float(input())
b = float(input())输出关键点: “保留两位小数”说的是显示格式,而不仅是数值精度。可以先单独试这段,再用于乘积:
python
value = 3.4
print(f"{value:.2f}") # 3.40round(value, 2) 返回的仍是数值,直接打印时不保证补齐末尾的 0。
易错点
- 精度不固定:
round(乘积, 2)得到数值后,直接打印可能显示3.4,少了要求的末尾0。 - 类型不合适: 用
int(input())读取3.4会报错;先格式化成字符串再转回浮点数,也会失去固定两位的效果。 - 格式外文字:
A*B=3.40、多余空格或中文提示都与只输出结果的要求不同。
题解
思路
将输入转成浮点数,相乘后保留两位小数。
知识点
输入函数与输出函数第1章程序设计与Python导引
数字类型-浮点型第2章基本数据类型
字符串格式化第2章基本数据类型
代码(徐志衡)
python
a = float(input())
b = float(input())
c = a * b
print(f'{c:.2f}')03:计算三角形的周长和面积(基础版)
题目描述
输入三条边长,算出三角形的周长和面积,结果均保留两位小数。
说明:本题系统测试用的输入数据均可以构成三角形。
输入
三行,每行一个整数,表示边长。
输出
输出二行: 第一行为周长; 第二行为面积。
样例输入
text
3
4
5样例输出
text
12.00
6.0解题提示
本题知识点: 第 1 章《程序设计与 Python 导引》: 按“输入—计算—输出”拆分程序,导入 math 模块并调用开平方函数。第 2 章《基本数据类型》: 用变量保存周长、半周长和面积等中间结果,使用乘法、减法及小数输出格式。
- 读入三条边
a、b、c。先求周长,再令半周长p = 周长 ÷ 2。 - 面积可用海伦公式:
√[p(p-a)(p-b)(p-c)]。先把括号内四项相乘,再开平方;题目保证能构成三角形。 - 分两行输出。周长固定显示两位小数;面积参照题面样例
6.0,按数值四舍五入到两位,而不是强行补成6.00。
计算与格式关键点: 先求周长、再求半周长,最后用海伦公式求面积;不要把公式中的半周长与周长混用。输出上,周长 12 应显示为 12.00,面积 6 的样例却显示为 6.0。可以对比:
python
print(f"{12:.2f}") # 12.00
print(round(6.0, 2)) # 6.0易错点
- 面积格式: 不少提交把面积也写成固定的
.2f,于是样例中的6.0变成6.00;这里要区分“数值保留两位”和“总显示两位”。 - 公式细节: 把半周长误用成周长、漏掉某个
(p-边长),都会使面积不对。 - 函数和输出: 把
sqrt拼错,或将周长与面积写在同一行,会分别造成运行/编译错误和格式错误。
题解
思路
周长是三边之和;面积用海伦公式计算,并按题面格式输出。
知识点
数字类型-数据运算-算数运算符第2章基本数据类型
字符串格式化第2章基本数据类型
代码(徐志衡)
python
a = int(input())
b = int(input())
c = int(input())
x = float(a + b + c)
print(f'{x:.2f}')
p = x / 2
y = (p * (p - a) * (p - b) * (p - c)) ** 0.5
print(round(y, 2))04:计算两点之间距离
题目描述
从键盘输入两点的坐标(x1,y1)(x2,y2),计算两点之间的距离(结果保留两位小数)
输入
4行,每行1个数(可以是小数),分别是x1,y1,x2,y2
输出
两点之间的距离(结果保留两位小数)
样例输入
text
0
0
3
5样例输出
text
5.83解题提示
本题知识点: 第 1 章《程序设计与 Python 导引》: 把两点坐标作为浮点数读入,调用数学模块中的开平方函数。第 2 章《基本数据类型》: 用减法求坐标差、用 ** 2 求平方,并用 f 字符串固定显示两位小数。
- 在纸上先写好输入顺序:第 1 行
x1、第 2 行y1、第 3 行x2、第 4 行y2。每行都可能有小数。 - 分别求横坐标差与纵坐标差;距离是“两个差的平方之和再开平方”。
- 输出时固定显示两位小数。可用
(0,0)与(3,5)检查得到约5.83,再换一组不含 0 的坐标检查读取顺序。
四行输入对应四个坐标,顺序可以先固定下来:
python
x1 = float(input())
y1 = float(input())
x2 = float(input())
y2 = float(input())计算关键点: 先分别形成横、纵坐标差,再用勾股关系求距离:
text
横坐标差 = x1 - x2
纵坐标差 = y1 - y2
距离 = √(横坐标差² + 纵坐标差²)开平方前要先把两个差分别平方;最后才按两位小数显示。
易错点
- 坐标读反: 有些代码依次命名为
x1、x2、y1、y2,与题面的x1、y1、x2、y2不同;样例中前两项都是 0,容易掩盖这个问题。 - 丢失小数: 把每行都按整数读取,遇到浮点输入会报错。
- 距离公式或格式: 只输出平方和、漏开平方,或没有固定两位小数,都会得到不同的结果。
题解
思路
使用两点距离公式,注意四行输入依次为 x1、y1、x2、y2。
知识点
数字类型-数据运算-算数运算符第2章基本数据类型
字符串格式化第2章基本数据类型
代码(徐志衡)
python
x1 = float(input())
y1 = float(input())
x2 = float(input())
y2 = float(input())
d = ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5
print(f'{d:.2f}')05:字符菱形
题目描述
给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。
输入
输入只有一行, 包含一个字符。
输出
该字符构成的菱形。
样例输入
text
*样例输出
text
*
***
*****
***
*解题提示
本题知识点: 第 2 章《基本数据类型》: 字符串用 * 重复、用 + 拼接;课件的字符三角形也是“行首空格 + 重复字符”的构造。本题把同一方法用于固定的五行。
- 先观察图形的五行:字符个数依次是
1、3、5、3、1;行首空格数依次是2、1、0、1、2。 - 可以把每行想成“若干空格 + 若干个输入字符”。先形成这五行,再逐行输出;不需要在字符之间插空格。
- 用不同于
*的字符试一次,并逐行与样例对齐,尤其检查最左侧字符出现的位置。
构造关键点: 五行可用两组对应数字表示:前导空格数 [2, 1, 0, 1, 2],字符数 [1, 3, 5, 3, 1]。逐行把“空格重复指定次数”和“输入字符重复指定次数”拼在一起即可;这是构造图形的框架,字符本身不能写死。
易错点
- 写死样例: 直接打印星号图案,而不读取输入字符,换成其他字符就错。
- 行数和结构: 按一般菱形循环写成九行,或把同一行的字符隔开成
* * *,不符合题目要求的五行。 - 空格: 行首空格少一个、多一个,或者额外输出空白行,在统计中反复造成 Wrong Answer/Presentation Error。
题解
思路
按每行 1、3、5、3、1 个字符输出菱形,并保留行首空格。
知识点
字符串类型第2章基本数据类型
字符串格式化第2章基本数据类型
代码(陈旭峥)
python
# Solution 2
c = input()
print(" " + c + " ")
print(" " + c + c + c + " ")
print(c + c + c + c + c)
print(" " + c + c + c + " ")
print(" " + c + " ")