简介:这份工程热力学期末考试题PDF适合正在复习工程热力学、准备期末考核的工科学生使用,试题围绕热力学定律、热机效率、蒸汽动力循环、气体动力学等核心模块展开,题型包含判断题、填空题、问答题与计算题,从基本概念辨析到喷管流动计算均有覆盖。资源为单个PDF文档,共28KB,内容紧凑,可直接打印练习或对照答案解析自查。目前已有152人浏览学习,是期末冲刺阶段查漏补缺的实用资料。题目编排注重易错点,例如制冷系数与制冷量关系、可逆与不可逆过程熵变、再热循环目的、绝热节流温度变化等,可帮助读者澄清模糊概念;计算题部分给出完整解题步骤,涉及定体过程能量转换、熵产与作功能力损失、喷管出口参数求解,能够有效训练热力学综合分析能力。压缩包文件类型为PDF,仅含一份考试题文档,适合快速浏览和反复演练。
1. 工程热力学期末考试题PDF:公式密集、图表繁多的文档不该用Word硬排
“工程热力学期末考试题.pdf”这个文件名在课程群和FTP里很常见,但它的生成过程远没有下载一个文件那么轻松。工程热力学考卷里,能量方程、熵变积分、Rankine循环效率推导满篇都是上下标和积分号,再配上T-s图、p-v图和饱和蒸汽表,文档的排版复杂度立刻超过普通Word的承受上限。我见过不少助教用Word改考卷,改一个公式整体错位、插入一张图页码全乱、跨页表格断头是常态。这个场景真正需要的是一套结构化排版链路:公式分区管理、表格跨页可控、图片自动编号,最终输出干净规范的PDF。这篇文章把这条链路从头到尾捋一遍,适合要出卷的任课老师、期末整理复习资料的助教,以及想把工程热力学题库落到可打印PDF的工程技术人员。
2. 选型与原理:LaTeX/Typst的公式排版机制、图片嵌入和表格控制
2.1 为什么是LaTeX而不是Word:浮动体、公式编号和基线对齐
这个判断的依据不复杂:工程热力学期末考试题PDF这类文档,LaTeX是成本最低的答案,它解决的不只是“公式好看”,而是整份文档的稳定性。Word的公式对象和正文文字不在同一个排版平面上,改一个字号或插入一张图,公式与文字基线的对齐关系就可能整体错位;图片浮动位置不可控,分页符一变,公式编号跟着乱。LaTeX把这套逻辑彻底改掉:公式、表格、图片都是“对象”,内部有严格的基线规则,数学模式下的上下标和行距由排版内核统一计算,不存在“手动空格对齐”这种操作。
如果对LaTeX的宏包生态有顾虑,Typst是近几年值得关注的替代方案,语法更像脚本语言,编译速度快,公式书写也更直观。但工程热力学这类老课程的大量模板、TikZ图形库和中文支持方案都沉淀在LaTeX生态里,出卷场景求稳,我一般还是用LaTeX配XeLaTeX编译,中文用ctexart文档类一步到位。选型有一条简单判断标准:文档里超过20个公式或任何跨页表格,就不要在Word里继续挣扎,换排版工具的半小时成本远比改几十版格式低。
2.2 数学模式:上下标、积分符号和热力学符号的编码
LaTeX的公式不会乱,根源在于它区分文本模式与数学模式。数学模式下空格被忽略,间距由排版引擎根据符号类型自动决定;上下标用^和_显式声明,积分上下限、分子分母的层级关系都写进源代码,而不是靠肉眼对齐。工程热力学里最常用的几条公式编码方式是这样的:
\[ Q = \Delta U + W \] \[ \Delta S = \int_{1}^{2} \frac{\delta Q}{T} \] \[ \eta_t = 1 - \frac{T_2}{T_1} \]\Delta是希腊字母Δ的专用命令,\frac生成分数并自动调字号,\int_{1}^{2}把积分上下限放在积分号右上和右下。这里有一个新手常踩的坑:\delta是行内小写希腊字母δ,而热量微元在热力学教材里习惯写成正体δ以区分状态量微分的d,严谨做法是用\mathrm{\delta}或宏包提供的\diff命令控制。单位kJ、MPa这种量纲符号要用\mathrm{kJ}排成正体,与斜体的变量符号区分开,这是国标对量和单位的基本排版要求,也是Word里最容易忽略的细节。
2.3 图片与表格:T-s图、p-v图和饱和蒸汽表的嵌入方式
图表处理决定一份考卷的专业感。T-s图、p-v图如果用截图放进文档,打印出来锯齿和背景色块很刺眼,常见做法是先用Python的matplotlib把图渲染成PDF矢量格式,再嵌入LaTeX,缩放打印都不模糊。下面是一个生成T-s示意图的脚本:
import matplotlib.pyplot as plt import numpy as np s = np.linspace(0.1, 1.6, 200) t_high, t_low = 500.0, 300.0 fig, ax = plt.subplots(figsize=(6, 4)) ax.plot(s, np.full_like(s, t_high), 'k-', linewidth=1.2) # 上等温线 T1 ax.plot(s, np.full_like(s, t_low), 'k-', linewidth=1.2) # 下等温线 T2 ax.plot(s, t_low + (t_high - t_low) * np.exp(-s / 0.8), 'k--', linewidth=1.2) # 等熵线示意曲线 ax.set_xlabel('s / kJ/(kg·K)') ax.set_ylabel('T / K') ax.set_title('T-s 图示意图') plt.savefig('ts_diagram.pdf', bbox_inches='tight')脚本里的等熵线被简化成指数衰减曲线,只用于排版示意;正式考卷里需要画真实过程线时,应该用物性计算库查状态点数据再绘制。linewidth=1.2保证打印后线条清晰,bbox_inches='tight'自动裁剪空白边缘,避免插入文档后四周留白过多。嵌入LaTeX时用includegraphics,浮动体参数建议写成[htbp],意思是依次尝试当前位置、页顶、页底、独立页,由引擎自动选最优位置:
\begin{figure}[htbp] \centering \includegraphics[width=0.55\linewidth]{ts_diagram.pdf} \caption{T-s 图示意图} \label{fig:ts} \end{figure}表格部分,饱和蒸汽表这种长表在Word里跨页会丢表头,LaTeX用longtable宏包直接解决。节选一段饱和水与饱和蒸汽表的写法:
\begin{longtable}{ccccc} \caption{饱和水与饱和蒸汽表(节选)}\\ \toprule p/MPa & t_s/℃ & v'/(m³/kg) & h'/(kJ/kg) & h''/(kJ/kg) \\ \midrule \endfirsthead 0.1 & 99.63 & 0.001043 & 417.51 & 2675.14 \\ 0.5 & 151.86 & 0.001093 & 640.23 & 2748.59 \\ 1.0 & 179.88 & 0.001127 & 762.84 & 2777.67 \\ 3.0 & 233.85 & 0.001216 & 1008.47 & 2804.16 \\ \bottomrule \end{longtable}\endfirsthead配合\caption让表头只在第一页顶部完整出现,后续页自动重复表头,阅卷时翻页也不会丢掉字段含义。注意表内数据只是示意值,正式试卷必须以指定教材附带的蒸汽表为准。
3. 动手实现:把第一道热力学计算题排进最小LaTeX模板
3.1 最小可编译模板
工程热力学期末考试题PDF不需要花哨设计,但要控住三件事:页边距、公式编号和表格跨页。下面这个模板是我常用的起点:
\documentclass[12pt,a4paper]{ctexart} \usepackage{amsmath,amssymb} % 公式宏包 \usepackage{geometry} % 页面设置 \geometry{top=2cm, bottom=2cm, left=2.5cm, right=2cm} \usepackage{enumitem} % 题号列表控制 \usepackage{booktabs} % 三线表横线 \usepackage{longtable} % 跨页长表 \usepackage{graphicx} % 插图 \usepackage{tikz} % 自绘示意图 \setlength{\parindent}{2em} % 首行缩进 \begin{document} % 题干 \end{document}documentclass的12pt对应中文小四字号,适合打印批改;左侧留2.5cm是因为考卷通常要装订。amsmath提供align、equation等公式环境,booktabs让表格呈现标准的三线表样式。别小看\setlength{\parindent}{2em}这行,中文试卷题干一般要求首行缩进,不加的话段落顶格会显得松散。
3.2 热力学第一定律题型:能量方程和效率公式的写法
第一类必考题是热力学第一定律的应用,比如闭口系统吸热1200kJ、对外做功500kJ,求内能变化。题干和解题过程在LaTeX里写作:
\begin{enumerate}[label=\arabic*.] \item 某闭口系中工质由状态1变化到状态2,过程向外散热 $Q = -1200\,\mathrm{kJ}$,对外做功 $W = -500\,\mathrm{kJ}$, 求内能变化 $\Delta U$。 \end{enumerate} 由热力学第一定律能量方程: \[ Q = \Delta U + W \] 按本题符号约定,系统放热时$Q$取负值,外界对系统做功时$W$取负值: \[ \Delta U = Q - W = (-1200) - (-500) = -700\,\mathrm{kJ} \]这道题的关键在符号约定,比计算本身更容易丢分。\,在LaTeX里插入一个细空格,把数字和单位分开排版更规范;\mathrm{kJ}保证单位正体输出。实际出卷时我会把数值放进Python变量由模板生成,避免手写抄错,这个做法在第4章展开。
3.3 蒸汽表查表题与长表格排版
第二类高频题是查饱和蒸汽表求干度或过热度。这类题必须配数据表,表一旦超过半页就要用longtable。把2.3节的表格放在题目下方,题面这样写:
\begin{enumerate}[label=\arabic*.] \setcounter{enumi}{1} \item 压力 $p=0.5\,\mathrm{MPa}$ 的湿饱和蒸汽,干度 $x = 0.9$。查附表求该状态下蒸汽的比焓 $h$,并计算 2 kg 蒸汽所含的总热量。 \end{enumerate} 比焓计算式: \[ h = h' + x(h'' - h') \] 查表代入 $h' = 640.23\,\mathrm{kJ/kg}$,$h'' = 2748.59\,\mathrm{kJ/kg}$: \[ h = 640.23 + 0.9 \times 2108.36 = 2537.75\,\mathrm{kJ/kg} \]longtable在这道题上的价值很明显:如果表格跨页,普通tabular会从中间断开且不重复表头,考生翻页后不知道上一列对应哪个压力值;longtable配合\endfirsthead让每页开头重复表头,阅卷时不会因为表头缺失产生歧义。
提示:蒸汽表数据在不同教材版本里有细微差异,出题前务必和课程指定教材核对。题干里算出的数值与表格数据不一致时,优先检查干度定义和单位换算。
3.4 编译命令和输出体积控制
模板写好后,编译是一行命令的事。因为模板用ctexart支持中文,需要XeLaTeX编译:
latexmk -xelatex exam_1.texlatexmk会按依赖关系自动补齐两遍甚至三遍编译,公式编号和交叉引用不会出现“第一遍还没编号”的问题。生成的文件体积一般控制在1MB以内;如果PDF超过5MB,第一嫌疑是图片,把matplotlib的dpi降到150以下,或者改用PDF矢量格式导出。还有一个常见坑:ctexart默认是中文字体,如果老师要求标题用黑体,需要额外设置字体参数,字体文件缺失时编译日志通常会明确提示。
4. 批量出题:用Python脚本生成可打印的工程热力学期末试题PDF
4.1 模板与参数替换
期末出卷最耗时的是重复写结构相同的题目。一个高效做法是把LaTeX模板当字符串模板,用Python填充数字。下面脚本生成6道卡诺循环效率题:
import random from pathlib import Path random.seed(20240106) # 固定种子,保证同一题库可复现 template = r"""\documentclass[12pt,a4paper]{ctexart} \usepackage{amsmath,amssymb} \usepackage{geometry} \geometry{top=2cm,bottom=2cm,left=2.5cm,right=2cm} \usepackage{enumitem} \begin{document} \begin{enumerate}[label=\arabic*.] \item 某卡诺热机工作于高温热源 $T_1={T1}\,\mathrm{{K}}$ 和 低温热源 $T_2={T2}\,\mathrm{{K}}$ 之间,求其热效率。 \end{{enumerate}} \end{{document}}""" for i in range(6): t1 = random.randint(400, 600) t2 = random.randint(280, t1 - 50) # 保证T2严格小于T1 tex = template.format(T1=t1, T2=t2) Path(f"carnot_{i}.tex").write_text(tex, encoding="utf-8")关键在random.seed,种子固定后每次运行生成的6组数据完全一致,这对版本管理很重要,印刷版和电子版必须对应得上。Python字符串里{}是模板占位符,LaTeX数学模式本身的{}要写成{{ }}转义,漏一个花括号编译直接报错,这是最容易踩的坑。
4.2 试卷与答案卷分离输出
批量出题通常同时要空白卷和答案卷。常见做法是用一个数据字典驱动两套模板:
cases = [ {"p1": 10.0, "t1": 540, "p2": 0.005, "eta": 0.412}, {"p1": 12.5, "t1": 565, "p2": 0.006, "eta": 0.425}, ] problem_tpl = "电厂Rankine循环初参数为 {p1} MPa、{t1} ℃," \ "冷凝压力 {p2} MPa,求理论循环热效率" answer_tpl = "参考答案:η_t = {eta:.3f}" for i, case in enumerate(cases): paper = build_document(problem_tpl.format(**case)) answer = build_document( problem_tpl.format(**case) + "\n\n" + answer_tpl.format(**case) ) Path(f"paper_{i}.tex").write_text(paper, encoding="utf-8") Path(f"answer_{i}.tex").write_text(answer, encoding="utf-8")build_document是把3.1节模板包成公共函数,统一卷头和正文。答案卷的题号与空白卷一致,靠的是同一个case字典驱动两边,而不是各自写一遍题号。如果要同时生成答题卡,第三个模板复用同一份数据即可,三份文档题序永远对齐。
case里每个字段的含义如下:
| 字段 | 含义 | 示例值 |
|---|---|---|
| p1 | 锅炉出口压力 | 10.0 MPa |
| t1 | 过热器出口温度 | 540 ℃ |
| p2 | 冷凝压力 | 0.005 MPa |
| eta | 理论热效率 | 0.412 |
4.3 随机种子与重复题控制,批量编译
生成多个tex文件后,批处理编译:
for f in paper_*.tex answer_*.tex; do latexmk -xelatex -interaction=nonstopmode "$f" done-interaction=nonstopmode让编译在第一个错误时不挂起等待输入,日志保留所有错误信息。批量出题还要注意去重,两道题数值完全相同会出事故。我的做法是生成时把关键参数组合作hash存进集合,重复就重新随机。另一个常见问题是题目变长后跨页,导致答案页和试卷页不对齐;对于固定题数的卷子,我一般手动控制每题占一页或半页,比依赖自动分页省去后处理。
5. 成卷验证:编译日志、字体嵌入和公式渲染的三步检查
5.1 用编译日志定位公式与图片错误
latexmk默认只回显最终结果,出问题时先看与tex同名的log文件。搜索!开头的行是TeX传统错误标记。最常见的三类:Undefined control sequence是公式命令拼写错误,Missing $ inserted是数学模式没有闭合,Cannot determine size of graphic是图片路径或格式错误。工程热力学题目里用到\eta、\Delta这类命令前,先确认宏包已经加载;蒸汽表里出现摄氏度符号℃时,直接输出UTF-8可能报字符缺失,稳妥写法是$^\circ\mathrm{C}$。
5.2 检查字体嵌入和页数
PDF打印乱码大部分是字体没嵌入,用pdffonts检查:
pdffonts exam_1.pdf输出中每一行对应一种字体,最后一列“emb”如果是no,说明字体没嵌入,送到打印店可能缺字。中文字体未嵌入最常见的原因是ctexart编译时的字体子集没有正确生成,重跑一次XeLaTeX即可。页数用下面两个命令任意一个:
qpdf --show-npages exam_1.pdf pdfinfo exam_1.pdf | grep Pages我习惯两个都跑一遍,因为latexmk有时会留下中间文件干扰判断,直接看最终PDF页数最可信。
5.3 公式渲染的目检与版本留档
最后一道人工检查不能省:把PDF缩放到300%,逐页看公式上下标是否重叠、分数线是否被表格线遮挡。自动化很难替代这一步,因为公式间距是否正常经常要人眼判断。辅助检查可以这样把PDF转成PNG再和源tex对照:
pdftoppm -png -r 150 exam_1.pdf page生成的page-1.png等图片可以直接放进文档做版本比对。我一般会把带日期的终版PDF和对应的tex源码捆绑保存,文件名加日期后缀,期末答疑时学生说哪一题不清楚,翻出同名PDF就能精确对上。这个习惯看起来朴素,但在考试季能省掉大量翻找旧档的时间。
本文还有配套的精品资源,点击获取