跳转至

难题练习 — 程序设计题

练习说明

  • 共 6 道程序设计题,难度高于模拟考试
  • 建议每题用时 15~20 分钟
  • 注意边界条件和异常处理

💻 程序设计题

第1题:学生成绩管理系统

题目: 编写程序实现学生成绩管理系统,功能包括:

  1. 添加学生(姓名、语文、数学、英语成绩)
  2. 删除学生(按姓名)
  3. 修改学生成绩(按姓名)
  4. 查询学生成绩(按姓名)
  5. 显示所有学生成绩
  6. 按总分从高到低排序
  7. 退出系统

要求: - 使用字典存储学生信息 - 输入验证:成绩范围0~100 - 菜单驱动的交互界面

示例交互:

Text Only
1
2
3
4
5
6
7
8
===== 学生成绩管理系统 =====
1.添加学生 2.删除学生 3.修改成绩 4.查询成绩 5.显示全部 6.成绩排序 0.退出
请选择: 1
姓名: 张三
语文: 85
数学: 92
英语: 78
添加成功!

第2题:文本统计分析

题目: 编写程序对一段英文文本进行统计分析:

  1. 统计英文字母个数、数字个数、空格个数、其他字符个数
  2. 统计每个英文字母出现的频率(不区分大小写),按频率从高到低输出
  3. 统计单词个数和平均单词长度
  4. 找出最长的单词

示例: 输入:"Hello World! Python 3.9 is great."

输出:

Text Only
1
2
3
4
5
6
7
8
字母: 23, 数字: 2, 空格: 5, 其他: 3
字母频率(从高到低):
o: 3
e: 2
l: 2
...
单词数: 5, 平均长度: 4.6
最长单词: Python

第3题:简易密码系统

题目: 实现一个简易的加密解密系统:

  1. 加密:将每个字母按密钥向后移动key位(凯撒密码),非字母字符不变
  2. 解密:将加密文本按密钥反向移动
  3. 支持0~25的密钥
  4. 大小写字母分别处理

示例:

Text Only
1
2
3
4
请选择操作: 1(加密)/2(解密): 1
输入明文: Hello World
输入密钥(0-25): 3
加密结果: Khoor Zruog

第4题:矩阵运算

题目: 编写程序实现矩阵的基本运算:

  1. 矩阵加法(同行同列矩阵相加)
  2. 矩阵乘法(A的列数=B的行数时)
  3. 矩阵转置
  4. 打印矩阵(整齐排列)

要求: - 矩阵用嵌套列表表示 - 检查矩阵维度是否兼容 - 不兼容时给出提示

示例:

Text Only
1
2
3
4
5
6
7
8
矩阵A:
1 2 3
4 5 6

矩阵A的转置:
1 4
2 5
3 6

第5题:简易计算器

题目: 编写程序实现一个支持括号的表达式计算器:

  1. 支持 +、-、*、/ 四则运算
  2. 支持括号改变优先级
  3. 支持负数
  4. 处理除零错误
  5. 循环输入,输入 q 退出

提示: 可以使用栈来实现,或使用 eval() 函数(但需要安全处理)

示例:

Text Only
1
2
3
4
5
6
7
8
请输入表达式: (3 + 5) * 2 - 4 / 2
结果: 14.0

请输入表达式: 10 / 0
错误: 除数不能为零

请输入表达式: q
退出计算器

第6题:文件处理与数据分析

题目: 编写程序读取学生成绩CSV文件,进行数据分析:

  1. 从文件读取学生数据(格式:姓名,语文,数学,英语)
  2. 计算每个学生的总分和平均分
  3. 计算每门课程的平均分、最高分、最低分
  4. 按总分排名并输出
  5. 将排名结果写入新文件

输入文件 scores.txt 示例:

Text Only
1
2
3
4
5
姓名,语文,数学,英语
张三,85,92,78
李四,90,88,95
王五,72,80,76
赵六,88,95,82

输出文件 rank.txt 示例:

Text Only
排名,姓名,语文,数学,英语,总分,平均分
1,李四,90,88,95,273,91.0
2,赵六,88,95,82,265,88.3
3,张三,85,92,78,255,85.0
4,王五,72,80,76,228,76.0

课程统计:
语文: 平均81.3, 最高92, 最低72
数学: 平均88.8, 最高95, 最低80
英语: 平均82.8, 最高95, 最低76