2026高考数学全国一卷真题全解(含Python代码实现)
📚 目录
一、选择题(1-8题)
二、多选题(9-11题)
三、填空题(12-14题)
四、解答题(15-19题)
五、参考答案解析与代码
一、选择题:本题共8小题,每小题5分,共40分。
在每小题给出的四个选项中,只有一项是符合题目要求的。
1. 样本数据 6, 8, 4, 5, 12 的中位数为
A. 5
B. 6
C. 8
D. 9
2. 已知平面向量 不共线,且 ,则
A.
B.
C.
D.
3. 已知集合 ,,则
A.
B.
C.
D.
4. 曲线 在点 处的切线方程为
A.
B.
C.
D.
5. 已知抛物线 和 均经过点 ,则 的焦点与 的焦点之间的距离为
A. 12
B.
C. 6
D.
6. 已知函数 的最大值为1,则
A.
B. 1
C.
D. 2
7. 一百零八塔位于宁夏回族自治区青铜峡市,以其独特的建筑格局和深远的历史文化闻名遐迩。该塔群共有108座塔,依山势自上而下排成12行,将第 行中塔的座数记为 ,其中 ,,,且 是一个首项为7、公差为2的等差数列。将 分为6组,每组2个数,使得每组的2个数之和可构成一个项数为6且公差为 的等差数列。则
A. 2
B. 4
C. 6
D. 8
8. 设 为空间中64个点构成的集合。点 ,记样本空间 。从 中随机取一个点,定义随机变量 如下:对 中的每个点 ,令 。则 的数学期望为
A.
B.
C. 0
D.
二、选择题:本题共3小题,每小题6分,共18分。
在每小题给出的选项中,有多项符合题目要求。全部选对的得6分,部分选对的得部分分,有选错的得0分。
9. 设 ,则
A.
B.
C.
D.
10. 在空间中, 为两个定点,动点 到直线 的距离为2,动点 到直线 的距离为1,若二面角 为 ,则
A.
B.
C. 当 时, 平面
D. 当 平面 时,
11. 已知圆 ,圆 ,圆 。直线 与 均有两个交点。记 被 截得弦长为 ,则
A. 可以取任意实数
B. 满足 的直线 共有3条
C. 满足 的直线 多于3条
D. 当 时, 的最大值为
三、填空题:本题共3小题,每小题5分,共15分。
12. 双曲线 的离心率为 ______。
13. 已知 是偶函数, 在区间 单调递增。则 ______, ______。
14. 设实数 满足:存在数列 ,使得对于任意 ,均有 ,且 中有某连续9项 是公比为 的等比数列。则 的最大值为 ______。
四、解答题:本题共5小题,共77分。
解答应写出必要的文字说明、证明过程或演算步骤。
15.(本小题满分13分)
如图,在直三棱柱 中,,。 分别为 的中点。
(1)证明: 平面 ;
(2)设 ,直线 与平面 所成的角为 45°,求直线 到平面 的距离。
16.(本小题满分15分)
已知在 中,,,。
(1)求 ;
(2)设 两点满足: 在 的延长线上,,。若 ,求 。
17.(本小题满分15分)
设整数 ,某同学用一个球进行投篮练习,至多投篮 次,当且仅当投中1次时或 次均未投中时,停止练习。设该同学每次投中的概率为 $p(0<p<1)$,各次投中与否相互独立。记 $x$="" 为停止练习时该同学的投篮次数。<="" p="">
(1)当 , 时,求 的分布列;
(2)设 均为自然数:
(i) 当 时,求 ;
(ii) 当 时,证明:。
18.(本小题满分17分)
已知椭圆 的左焦点为 ,离心率为 。
(1)求 的方程;
(2)设 为坐标原点,过 且斜率大于0的动直线 与 交于 两点,其中 在第三象限,直线 与 交于另一个点为 。
(i) 若 的面积为 的面积的3倍,求 的方程;
(ii) 求 的最小值。
19.(本小题满分17分)
已知函数 的定义域为 ,且当 时,。对于任意 ,定义集合 。
(1)若当 时,,求 ;
(2)若 是奇函数,,且 ,证明:;
(3)设 满足:①若 ,则 ;②当 $0<x<1$ 时,$f(x)
(i) 证明:;
(ii) 证明: 在区间 单调递增。
参考答案与解析
一、选择题
1. 中位数计算
- 思路:排序数据4,5,6,8,12,中间数为第3个6
deffind_median(data):
sorted_data = sorted(data)
n = len(sorted_data)
if n % 2 == 1:
return sorted_data[n//2]
else:
return (sorted_data[n//2-1] + sorted_data[n//2]) / 2
data = [6, 8, 4, 5, 12]
print("中位数:", find_median(data)) # 输出: 6
print("\n=== 答案 ===")
print("正确选项: B")
2. 平面向量基本定理
import sympy as sp
# 定义向量符号
a, b = sp.symbols('a b', commutative=False) # 向量不交换
x, y = sp.symbols('x y')
# 方程: 2a + yb = xa - 3b
# 移项得: (2 - x)a + (y + 3)b = 0
# 由于a, b不共线,系数必须都为0
eq1 = sp.Eq(2 - x, 0) # a的系数
eq2 = sp.Eq(y + 3, 0) # b的系数
solution = sp.solve((eq1, eq2), (x, y))
print(f"解: {solution}") # 输出: {x: 2, y: -3}
print(f"x={solution[x]}, y={solution[y]}") # 输出: x=2, y=-3
print("\n=== 答案 ===")
print("正确选项: A")
3. 集合与三角函数
import sympy as sp
# ========== 第3题:集合与三角函数 ==========
# 题目:已知集合A和B,求A∩B
# 定义符号
x = sp.Symbol('x')
# 计算集合A的元素
sin_val = sp.sin(7 * sp.pi / 6) # sin(7π/6)
cos_val = sp.cos(5 * sp.pi / 3) # cos(5π/3)
tan_val = sp.tan(5 * sp.pi / 4) # tan(5π/4)
print("=== 集合A的元素 ===")
print(f"sin(7π/6) = {sp.simplify(sin_val)}") # -1/2
print(f"cos(5π/3) = {sp.simplify(cos_val)}") # 1/2
print(f"tan(5π/4) = {sp.simplify(tan_val)}") # 1
# 集合B的元素
B_elements = {-sp.sqrt(3)/2, -sp.Rational(1, 2), 1}
print(f"\n集合B = {{{-sp.sqrt(3)/2}, {-sp.Rational(1, 2)}, 1}}")
# 将集合A转换为数值
A_elements = {sp.simplify(sin_val), sp.simplify(cos_val), sp.simplify(tan_val)}
print(f"集合A = {A_elements}")
# 求交集
intersection = A_elements & B_elements
print(f"\nA ∩ B = {intersection}")
# 判断哪个选项正确
print("\n=== 选项验证 ===")
option_A = {-sp.sqrt(3)/2, -sp.Rational(1, 2)}
option_B = {-sp.sqrt(3)/2, 1}
option_C = {-sp.Rational(1, 2), 1}
option_D = {-sp.sqrt(3)/2, -sp.Rational(1, 2), 1}
print(f"A: {{-√3/2, -1/2}} = {option_A}, 判断: {intersection == option_A}")
print(f"B: {{-√3/2, 1}} = {option_B}, 判断: {intersection == option_B}")
print(f"C: {{-1/2, 1}} = {option_C}, 判断: {intersection == option_C}")
print(f"D: {{-√3/2, -1/2, 1}} = {option_D}, 判断: {intersection == option_D}")
print("\n=== 答案 ===")
print("正确选项: C")
4. 导数几何意义
import sympy as sp
x = sp.Symbol('x')
y = 5*x + 8*sp.ln(x)
dy = sp.diff(y, x) # 导数 y' = 5 + 8/x
x0 = 1
slope = dy.subs(x, x0) # 在x=1处的斜率
y0 = 5*1 + 8*sp.ln(1) # y(1) = 5
# 切线方程: y - y0 = slope*(x - x0)
print(f"切线斜率: {slope}") # 输出: 13
print(f"切线方程: y = {slope}x + ({y0 - slope*x0})") # 输出: y = 13x - 8
print("\n=== 答案 ===")
print("正确选项: D")
5. 抛物线焦点
import math
import sympy as sp
# 点(4, 8)在两条抛物线上
# C1: y^2 = 2p1x => 64 = 8p1 => p1 = 8
p1 = 8
# C2: x^2 = 2p2y => 16 = 16p2 => p2 = 1
p2 = 1
# 焦点坐标
f1 = (p1/2, 0) # (4, 0)
f2 = (0, p2/2) # (0, 0.5)
# 两点间距离
distance = math.sqrt((f1[0]-f2[0])**2 + (f1[1]-f2[1])**2)
print(f"焦点距离: {sp.nsimplify(distance)}") # 输出: sqrt(65)/2
print("\n=== 答案 ===")
print("正确选项: D")
6. 函数最值
import sympy as sp
x, a = sp.symbols('x a')
f = (x + 2) / sp.exp(x + a)
df = sp.diff(f, x) # 导数
# 求极值点: df = 0
critical_point = sp.solve(df, x)[0] # x = -1
# 最大值为1,代入x=-1
max_value = f.subs(x, critical_point)
a_value = sp.solve(max_value - 1, a)[0]
print(f"a = {a_value}") # 输出: a = 1
print("\n=== 答案 ===")
print("正确选项: B")
7. 等差数列应用
# 生成12行塔数
towers = [1, 3, 3, 5, 5] + list(range(7, 20, 2))
print("塔数:", towers) # [1, 3, 3, 5, 5, 7, 9, 11, 13, 15, 17, 19]
total = sum(towers) # 108
# 求公差d,设6组和构成等差数列,首项m,公差d
# 6m + 15d = 108 => 2m + 5d = 36
# 尝试d=4,则m=8
d = 4
m = 8
group_sums = [m + i*d for i in range(6)]
print("分组和:", group_sums) # [8, 12, 16, 20, 24, 28]
print(f"公差d = {d}") # 输出: d = 4
print("\n=== 答案 ===")
print("正确选项: B")
8. 数学期望
- 思路:确定总点数、剔除指定点后剩余样本数;分析每一维坐标取值的总和特征;计算所有样本点的总和;代入期望公式计算,得出答案
# U集合:每个维度取{-2, -1, 1, 2},共4^3=64个点
# 每维各值出现次数相同,总和为0
import sympy as sp
total_sum = 0# 64个点的总和为0
# 剔除点P(1,1,1)后,总和变为-3
remaining_sum = total_sum - (1+1+1) # -3
remaining_count = 64 - 1# 63
expectation = remaining_sum / remaining_count
print(f"E(X) = {sp.nsimplify(expectation)}") # 输出: -1/21
print("\n=== 答案 ===")
print("正确选项: A")
二、多选题
9. 复数运算
import sympy as sp
z = sp.Symbol('z')
# 设 z = 3 + 2i
z_val = 3 + 2*sp.I
# A. 共轭复数
conjugate_z = sp.conjugate(z_val)
print(f"A. 共轭复数: {conjugate_z}") # 3 - 2*I
# B. 模
mod_z = sp.Abs(z_val)
print(f"B. 模: {mod_z}") # sqrt(13)
# C. 平方
z_squared = sp.simplify(z_val ** 2)
print(f"C. z^2: {z_squared}") # 5 + 12*I
# D. (z+3)/(z-i)是否为实数
result = sp.nsimplify((z_val + 3) / (z_val - sp.I))
print(f"D. (z+3)/(z-i): {result}") # 2
print(f"D是否为实数: {result.is_real}") # True
print("\n=== 答案 ===")
print("正确选项: ACD")
10. 空间几何
import sympy as sp
# ========== 第10题:空间几何 ==========
# 题目:A,B为定点,C到AB距离为2,D到AB距离为1,二面角C-AB-D为60°
# 定义符号
t, x1, x2, u1, u2, v1, v2 = sp.symbols('t x1 x2 u1 u2 v1 v2', real=True)
# ===== Step 1: 设定坐标系 =====
# A(0,0,0),AB为x轴
# C(x1, u1, u2),到AB距离为2,故u1² + u2² = 4
# D(x2, v1, v2),到AB距离为1,故v1² + v2² = 1
# 二面角为60°,故(u1v1 + u2v2) = |u||v|cos60° = 2*1*1/2 = 1
print("=== 坐标系设定 ===")
print("A(0,0,0),AB为x轴")
print("C(x₁, u₁, u₂),满足u₁² + u₂² = 4")
print("D(x₂, v₁, v₂),满足v₁² + v₂² = 1")
print("二面角60°,故u₁v₁ + u₂v₂ = 1")
# ===== Step 2: 分析选项 =====
print("\n=== 选项分析 ===")
# 选项A: ∠CAD ≥ 60°?
print("\nA: ∠CAD ≥ 60°?")
print("取x₁ = x₂ = t")
# 向量AC = (t, u1, u2),向量AD = (t, v1, v2)
# cos∠CAD = (AC·AD) / (|AC| |AD|)
dot_product = t*t + u1*v1 + u2*v2
AC = sp.sqrt(t**2 + u1**2 + u2**2)
AD = sp.sqrt(t**2 + v1**2 + v2**2)
cos_CAD = dot_product / (AC * AD)
# 代入条件u1²+u2²=4, v1²+v2²=1, u1v1+u2v2=1
cos_CAD_simplified = sp.simplify((t**2 + 1) / sp.sqrt((t**2 + 4) * (t**2 + 1)))
print(f"cos∠CAD = (t²+1) / √[(t²+4)(t²+1)] = √[(t²+1)/(t²+4)]")
# 分析当t变化时cos∠CAD的范围
print("当t变化时,(t²+1)/(t²+4) = 1 - 3/(t²+4) ∈ [1/4, 1)")
print("cos∠CAD ∈ [1/2, 1),即∠CAD ∈ (0°, 60°]")
print("∠CAD可以小于60°,故A错误")
# 选项B: CD ≥ 3?
print("\nB: CD ≥ 3?")
# CD² = (x1-x2)² + (u1-v1)² + (u2-v2)²
CD_squared = (x1-x2)**2 + (u1-v1)**2 + (u2-v2)**2
# 展开: (x1-x2)² + u1² - 2u1v1 + v1² + u2² - 2u2v2 + v2²
# = (x1-x2)² + (u1²+u2²) + (v1²+v2²) - 2(u1v1+u2v2)
# = (x1-x2)² + 4 + 1 - 2*1 = (x1-x2)² + 3
CD_squared_simplified = (x1-x2)**2 + 3
print(f"CD² = (x₁-x₂)² + (u₁-v₁)² + (u₂-v₂)²")
print(f" = (x₁-x₂)² + 4 + 1 - 2 = (x₁-x₂)² + 3")
print(f"CD = √[(x₁-x₂)² + 3] ≥ √3")
print("故B正确")
# 选项C: 当AB⊥CD时,CD⊥平面ABD?
print("\nC: 当AB⊥CD时,CD⊥平面ABD?")
print("AB方向向量为(1,0,0),CD向量为(x2-x1, v1-u1, v2-u2)")
print("AB·CD = x2-x1 = 0,故x1 = x2")
print("此时CD·AB = 0(已垂直)")
print("CD·AD = (0, v1-u1, v2-u2)·(x1, v1, v2) = v1(v1-u1) + v2(v2-u2)")
print(" = v1² + v2² - (u1v1 + u2v2) = 1 - 1 = 0")
print("CD⊥AD,又CD⊥AB,故CD⊥平面ABD,C正确")
# 选项D: 当AB⊥平面ACD时,AC⊥AD?
print("\nD: 当AB⊥平面ACD时,AC⊥AD?")
print("AB⊥平面ACD,故x1 = x2 = 0")
print("此时AC = (0, u1, u2),AD = (0, v1, v2)")
print("AC·AD = u1v1 + u2v2 = 1 ≠ 0")
print("AC与AD不垂直,故D错误")
print("\n=== 答案 ===")
print("正确选项: BC")
11. 圆与直线
- 公式:弦长(d为圆心到直线距离),点到直线距离公式
import sympy as sp
# ========== 第11题:圆与直线 ==========
# 题目:三个圆C₁(-1,0), C₂(1,0), C₃(0,√3),直线L:kx-y+b=0
# 定义符号
k, b, q, u, v = sp.symbols('k b q u v', real=True)
# ===== Step 1: 计算圆心到直线的距离 =====
# 直线方程: kx - y + b = 0
# 距离公式: d = |Ax + By + C| / sqrt(A² + B²)
# C₁(-1,0)到L的距离
d1 = sp.Abs(k*(-1) - 0 + b) / sp.sqrt(k**2 + 1)
# C₂(1,0)到L的距离
d2 = sp.Abs(k*1 - 0 + b) / sp.sqrt(k**2 + 1)
# C₃(0,√3)到L的距离
d3 = sp.Abs(k*0 - sp.sqrt(3) + b) / sp.sqrt(k**2 + 1)
print("=== 圆心到直线的距离 ===")
print(f"d₁ = |b - k| / √(1+k²)")
print(f"d₂ = |b + k| / √(1+k²)")
print(f"d₃ = |b - √3| / √(1+k²)")
# 令 q = √(1+k²)
q_expr = sp.sqrt(1 + k**2)
print(f"\n令 q = √(1+k²)")
print(f"d₁ = |b - k| / q")
print(f"d₂ = |b + k| / q")
print(f"d₃ = |b - √3| / q")
# ===== Step 2: 弦长公式 =====
# Sᵢ = 2√(r² - dᵢ²),半径r=1
S1 = 2 * sp.sqrt(1 - d1**2)
S2 = 2 * sp.sqrt(1 - d2**2)
S3 = 2 * sp.sqrt(1 - d3**2)
print(f"\n=== 弦长公式 ===")
print(f"S₁ = 2√(1 - d₁²)")
print(f"S₂ = 2√(1 - d₂²)")
print(f"S₃ = 2√(1 - d₃²)")
# ===== Step 3: 分析选项 =====
print("\n=== 选项分析 ===")
# 选项A: k可以取任意实数?
print("\nA: k可以取任意实数?")
# 要求|dᵢ| < 1,当k=-1/√3时分析矛盾
k_val = -1/sp.sqrt(3)
q_val = sp.sqrt(1 + k_val**2)
print(f"若k = -1/√3,则q = √(1 + 1/3) = √(4/3) = 2/√3")
print(f"条件|b - k| < q 和 |b - √3| < q 矛盾,故A错误")
# 选项B: 满足S₁=S₂=S₃的直线有3条
print("\nB: 满足S₁=S₂=S₃的直线有3条?")
print("由|b - k| = |b + k| = |b - √3|")
print("由|b - k| = |b + k|得b=0或k=0")
print("若k=0,则b=√3/2;若b=0,则k=±√3")
print("共3条直线满足条件,故B正确")
# 选项C: 满足S₁+S₂+S₃=3的直线多于3条
print("\nC: 满足S₁+S₂+S₃=3的直线多于3条?")
print("取b=0,记u = |k|/√(1+k²)")
print("则S₁+S₂+S₃ = 4u + 2√(1-3u²)")
print("解方程4u + 2√(1-3u²) = 3")
# 解方程
eq_c = sp.Eq(4*u + 2*sp.sqrt(1 - 3*u**2), 3)
solutions_c = sp.solve(eq_c, u)
print(f"解得u = {solutions_c}")
print("对应k有4条直线,故C正确")
# 选项D: 当b=0时,S₁+S₂+S₃的最大值
print("\nD: 当b=0时,S₁+S₂+S₃的最大值为2√21/3?")
print("S = 4u + 2√(1-3u²),令v=√(1-3u²)")
print("则3u² + v² = 1,S² ≤ (16/3 + 4)(3u² + v²) = 28/3")
print("当u=2/√21时取等号,S_max = 2√21/3,故D正确")
# 计算最大值
max_S = 2 * sp.sqrt(21) / 3
print("\n=== 答案 ===")
print("正确选项: BCD")
三、填空题
12. 双曲线离心率
import sympy as sp
# 双曲线方程: 5x² - 6y² = 1
# 标准形式: x²/(1/5) - y²/(1/6) = 1
x, y = sp.symbols('x y')
a_squared = sp.Rational(1, 5)
b_squared = sp.Rational(1, 6)
c_squared = a_squared + b_squared
a = sp.sqrt(a_squared)
c = sp.sqrt(c_squared)
e = c / a
print(f"离心率e = {sp.simplify(e)}") # sqrt(66)/6
13. 三角函数性质
import sympy as sp
x, a, theta = sp.symbols('x a theta')
# f(x) = 2*sin(a*x + theta)
f = 2 * sp.sin(a*x + theta)
# 偶函数条件: f(-x) = f(x)
eq = sp.Eq(f.subs(x, -x), f)
solutions = sp.solve(eq, theta)
print(f"theta可能值: {solutions}") # [pi/2, 3*pi/2]
# 选择theta = 3*pi/2
theta_val = 3 * sp.pi / 2
f_with_theta = f.subs(theta, theta_val)
print(f"f(x) = {sp.simplify(f_with_theta)}") # -2*cos(a*x)
# 计算f(2*pi/3)
result = f_with_theta.subs(x, 2*sp.pi/3)
print(f"f(2π/3) = {sp.simplify(result)}") # -2*cos(2*a*pi/3)
# 当a=-2时
print(f"a=-2时, f(2π/3) = {sp.simplify(result.subs(a, -2))}") # 1
14. 数列与等比数列
- 思路:先求数列通项,分析连续9项构成等比数列的条件
import sympy as sp
# ========== 第14题:数列与等比数列 ==========
# 题目:已知 S_n = n² + n,求数列中连续9项构成等比数列时q的最大值
# Step 1: 求数列通项
n = sp.Symbol('n')
S_n = n**2 + n
a_n = sp.simplify(S_n - S_n.subs(n, n-1))
print(f"数列通项: a_n = {a_n}") # a_n = 2n
# Step 2: 分析连续9项构成等比数列的条件
# 根据数学解法:
# - 9个连续位置至少含两个相邻的完整三项块
# - 相邻完整块之和之比是 q^3
# - 最早相邻完整块是 B_2=4, B_3=6
# - 故 q^3 ≤ 6/4 = 3/2
# Step 3: 建立方程 q^3 = 3/2
q = sp.Symbol('q', positive=True)
eq = sp.Eq(q**3, sp.Rational(3, 2))
print(f"\n根据分析建立方程: q³ = 3/2")
# Step 4: 求解方程
solutions = sp.solve(eq, q)
print(f"方程的解: {solutions}")
# Step 5: 筛选正实数解并找到最大值
positive_real_solutions = []
for sol in solutions:
try:
val = float(sol)
if val > 0:
positive_real_solutions.append((sol, val))
except:
continue
print(f"\n正实数解: {positive_real_solutions}")
if positive_real_solutions:
max_q = max(positive_real_solutions, key=lambda x: x[1])
print(f"\n★ q的最大值: {sp.simplify(max_q[0])}")
print(f" 数值近似: {max_q[1]:.6f}")
else:
print("未找到正实数解")
# Step 6: 验证答案
print(f"\n验证: ({max_q[0]})³ = {sp.simplify(max_q[0]**3)}")
四、解答题
考点:线面平行证明、空间角与距离
公式:线面平行判定定理、空间向量
思路:
(1)利用中位线证明,进而证明线面平行
(2)建立空间直角坐标系,求平面法向量,计算距离
考点:解三角形、相似三角形
公式:正弦定理、余弦定理、相似三角形性质
思路:
(1)用余弦定理求,再用正弦定理求,进而求
(2)由得相似,利用勾股定理求
(2)(i)
考点:离散型随机变量分布列、条件概率
公式:独立事件概率,条件概率
思路:
(1)分析停止条件,计算各概率
(2)(i) 表示前k次均未投中;(ii)利用条件概率公式证明
(2)(i)
(ii)
考点:椭圆方程、直线与椭圆位置关系、最值
公式:椭圆标准方程、焦点坐标、点到直线距离、三角形面积
思路:
(1)由焦点和离心率求
(2)(i)设直线方程,联立椭圆,利用面积关系求斜率;(ii)用向量或几何方法求角的正切值
考点:函数性质、集合与函数综合
公式:奇函数定义、函数单调性定义
思路:
(1)代入,解不等式,分和分段解不等式求得集合
(2)利用奇函数性质和单调性证明集合包含关系
(3)(i)用反证法证明,结合题干条件推出矛盾;(ii)利用单调性定义和已知条件证明
结语
Good Luck!🤞