人教高中数学最难的-关于重心和垂心的高中数学题
北京市西城区教辅资料-学习探究诊断-高中数学
必修3全册练习及参考答案
第一章 算法初步
测试一 算法与程序框图概念
Ⅰ 学习目标
1.了解算法思想及算法的意义.
2.了解框图的概念,明确框图符号的意义.
Ⅱ
基础性训练
一、选择题
1.下列程序框通常用来表示赋值、计算功能的是(
)
(A) (B) (C) (D)
2.算法的有穷性指的是(
)
(A)算法是明确和有效的 (B)算法能够在有限步内完成
(C)算法的每个操作步骤是可执行的 (D)用数字进行四则运算的有限过程
3.对算法理解正确的是( )
(A)一种解题方法
(B)基本运算及规定的运算顺序构成的完整的解题步骤
(C)计算的方法 (D)一种语言程序
4.算法中,每一步的结果有( )
(A)一个或两个 (B)任意多个
(C)确定的一个 (D)两个
*5.有一堆形状大小相同的珠子,其中只有一粒重量比其他的珠子重
,其余所有珠子重量相
同.一个同学利用科学的算法,仅两次利用天平就找出了这颗最重的珠子,则这堆
珠子
最多有( )
(A)6粒 (B)7粒 (C)8粒 (D)9粒
二、填空题
6.完成不等式2x+3<3x+2的算法过程:
(1)将含x的项移项至不等式的左边,将常数项移至不等式的右边,得____________;
(2)在不等式两边同时除以x的系数,得____________.
7.阅读流程图(图1),试写出流程图所给出的算法含义:__________________.
图1
8.写出图2中顺序框图的运算结果____________.
图2
9.写出图3中顺序框图的运算结果____________.
图3
10.“判断整数n(n>2)是否为质数”的算法可以按如下步骤进行:
S1
给定大于2的整数n.
S2 令i=2.
S3 用i除n,得到余数r.
S4 判断余数r是否为0.若为0,则不是质数,结束算法;否则将i的值增加1仍用i
表示.
S5 判断i是否大于n-1.若是,则是质数,结束算法;否则返回第三步.
现设给定的整数为35,则算法结束时i的值是______.
三、解答题
11.
写出判断直线ax+by+c=0与圆x
2
+y
2
=1的位置关系的算法.
12.写出求解二元一次方程组
?
?
ax?1
的算法步骤.
?
x?y?2
13.在某商场购物时,商场会按顾客购物款的数额的大小分别给予不同的优惠
折扣.计算顾
客应付货款的算法步骤如下:
S1 输入购物款x.(购物款以元为单位)
S2 若x<250,则折扣率d=0;
若
250≤x<500,则折扣率d=0.05;
若
500≤x<1000,则折扣率d=0.10;
若 x≥1000,则折扣率d=0.15;
S3 计算应付货款T=x(1-d);
S4 输出应付货款T.
现已知某顾客的应付货款是882元,求该顾客的购物款是多少元.
14.输入直角三角形两直角边长度,输出第三条边长度,画出此题的顺序框图.
测试二 程序框图(一)
Ⅰ 学习目标
理解三种逻辑结构,会读逻辑框图,尝试写出程序框图.
Ⅱ 基础性训练
一、选择题
1.程序框图中“处理框”的功能是( )
(A)赋值
(B)计算
(C)赋值或计算 (D)判断某一条件是否成立
2.尽管算法千差万别,但程序框图按其逻辑结构分类只有( )
(A)2类
(B)3类 (C)4类
3.程序框图如图1所示,输出的结果为( )
图1
(A)2,5 (B)4,7 (C)2,4
4.程序框图如图2所示,输出的结果为( )
图2
(A)2
(B)9 (C)3
5.程序框图如图3所示,当a=1,b=-3时输出的结果为(
)
(A)0,-1 (B)2,-4
(C)
?
1
2
,
?
3
4
(D)5类
(D)1,2
(D)1
(D)-2,4
图3
二、填空题
6.用流程图表示求解不等式ax>b
(a≠0)的算法时,判断框内的内容可以是_________.
7.在表示求解一元二次方程的算
法中,需要使用选择结构,因为__________________.
8.如图4,当a=-1时,框图的输出结果是______.
图4
9.如图5,框图的输出结果是______.
图5
10.如图6所示框图,设火车托运重量为p(kg)的行李时,每千克的费用标准为
(P?
30kg),
?
0.3P
则图中①②处分别填的内容为:①______;②
y?
?
?
0.3?30?0.5(P?30)(P?30kg),
_____
___________.
图6
三、解答题
11.已
知函数f(x)=|x-3|,程序框图(图7)表示的是给出x值,求相应函数值的算法.请
将该框图
补充完整.写出①②两处应填的内容.
图7
12.观察所给算法的流程框图(图
8),说明它表示的函数.如果输入数字1,则输出的数字
是什么?
图8
Ⅲ 拓展性训练
13.设计一个求任意实数的绝对值的算法,并画出流程图.
14.已知三个实数a,b,c,试给出寻找这三个数中最大数的一个算法,并画
出该算法的流
程图.
测试三 程序框图(二)
Ⅰ
学习目标
理解三种逻辑结构,会读逻辑框图,尝试写出程序框图.
Ⅱ
基础性训练
一、选择题
1.下列关于框图的逻辑结构说法正确的是( )
(A)用顺序结构画出“求点到直线的距离”的程序框图是唯一的
(B)条件结构中不含顺序结构
(C)条件结构中一定含有循环结构
(D)循环结构中一定包含条件结构
2.已知函数
f(x)?
?
?
x,x?0,
在由给定的自变量x计算函数值f(x)的算法中,应该至少包
?x,x
?0,
?
含以下基本逻辑结构中的( )
(A)顺序结构、循环结构
(B)条件结构、循环结构
(C)顺序结构、条件结构 (D)顺序结构、循环结构
3.下列四个说法中正确的有( )
①任意一个算法都离不开顺序结构
②算法程序框图中,根据条件是否成立有不同的流向
③循环体是指按照一定条件,反复执行某一处理步骤
④循环结构中一定有条件结构,条件结构中一定有循环结构
(A)1个 (B)2个
(C)3个 (D)4个
4.要解决下面四个问题,只用顺序结构画不出其流程图的是( )
(A)计算1+2+…+10的值 (B)当圆的面积已知时,求圆的周长
(C)给定一个数x,求其绝对值 (D)求函数f(x)=x
3
-3x的值
5.算法:S1 m=a;
S2 若b<m,则m=b;
S3
若c<m,则m=c;
S4 若d<m,则m=d;
S5 输出m.
则输出的m为( )
(A)a,b,c,d中的最小值
(B)a,b,c,d中的最大值
(C)d (D)a
二、填空题
6.程序框图中的“处理框”的功能是____________.
7.有如图1所示的程序框图,该程序框图表示的算法功能是____________.
图1
8.如图2所示是求小于等于1000所有正偶数的和的程序框图,则空
白处①应为_________;
②应为___________.
图2
9.如图3所示表示的是计算前10个奇数倒数之和的算法的程序框图,其中判断框内应填入
的条件是
___________.
图3
三、解答题
10.给出如图4所示的
程序框图.在执行上述框图表达的算法后,输出的S,i的值分别是
多少?
图4
11.写出表示解方程ax+b=0(a,b为常数)的一个程序框图.
Ⅲ 拓展性训练
12.设计求S=1+3+5+…+2
007和T=1×3×5×…×2007的一个算法,并画出相应的
流程图.
13.某工厂2004年的生产总值为200万元,技术革新后,预计以后每年的生产总值比
上一
年增加5%,问最早需要到哪一年年生产总值超过300万元,写出算法并画出相应的程
序
框图.
测试四 算法语言
Ⅰ 学习目标
了解算法语言,尝试用算法语言实现一些算法.
Ⅱ 基础性训练
1.编写一个输入底面边长和侧棱长,求正四棱锥体积的程序.
2.已知函数f(x)=2x-3,编写一段程序,用来求f[f(x)]的值.(其中,x值由用户输入)
3.给出三个正数a,b,c,问能否构成一个三角形,若能则求其面
积.请设计一个程序解
决该问题.
(注:已知三角形三边分别为a,b,c,则其面积
S?
=
p(p?a)(p?b)(p?c)
,其中p
a?b?c
)
2
4.已知等式“□3×6528=3□×8256”中,方
框内是同一个数字,请设计程序,用尝试的
方法求出满足等式的一个数字.
5.请编写一个程序,计算1!+2!+3!+4!+…+100!
(注:其中4
!=1×2×3×4,5!=1×2×3×4×5,…,100!=1×2×3×…×100)
Ⅲ 拓展性训练
6.已知数列{a
n
}满
足:a
1
=1,a
2
=3,对于任意的n≥3,有a
n
=3
a
n
-
1
-2a
n
-
2
.求该数列
的前n项和.
7.写出一个用二分法求方程x
3
+x
2
-2x-2=0在某个区间上的近似解的程序.要求:初始
区间和计算精度都能
在运行中指定.
8.求二次函数在给定区间上的最值.
测试五 逻辑框图综合测试
一、选择题
1.找出乘积为528的两个相邻偶数,流程图如图1,其中填充①②处语句正确的选择是( )
图1
(A)S=i*(i+2),输出i,i-2
(B)S=i*i+2,输出i,i-2
(C)S=i*(i+2),输出i,i+2
(D)S=i*(i-2),输出i+2,i
2.如图2所示的算法流程图中,第三个输出的数是( )
图2
(A)1 (B)
3
2
(C)2 (D)
5
2
3.阅读流程图3,若输入的a,b,c分别为21,32,75,则输出的a,b,c分别是(
图3
(A)75,21,32 (B)21,32,75
(C)32,21,75 (D)75,32,21
4.如图4,程序框图所进行的求和运算是(
)
)
图4
(A)
1?
1
2
???
1
10
(B)
111
2
?
4
???
18
(C)
1
2
?
1
4
???
1
20
(D)
1?
1
3
???
1
19
5.如果如图5程序框图的输出结果为-18,那么在判断框①中表示的“条件”应该是(
图5
(A)i≥9
(B)i>9
(C)i≥8
(D)i>11
?
?1,x?0
6.函数
y?
?
?
0,x?0
求值的程序框图如图
.
6所示,则空白处需要填的语句为: <
br>?
?
1,x?0
①_________;②_________;③_____
____.
)
图6
7.如图7是一个算法的程序框图,当输入的值为5时,则其输出的结果是______.
图7
8.阅读流程图8填空:①最后一次输出的i=______;②一共输出i的个数为______个.
图8
9.分别写出图9和图10的运行结果:图9______;图10______.
图9 图10
北京市西城区教辅资料-学习探究诊断-高中数学
必修3全册练习及参考答案
第一章 算法初步
测试一
1.C 2.B 3.B 4.C 5.D
6.-x<-1,x>1 7.已知一个数的13%,求这个数 8.
11.S1
求出原点到直线ax+by+c=0的距离
d?
5
9.10 10.5
2
.
|c|
a?b
22
S2
比较d与圆的半径r=1的大小,
若d>r,则直线与圆相离;若d=r,则直线与圆相切;若d<r,则直线与圆相交.
12.S1 判断a是否为0,若是,则执行S4,若不是,则执行S2.
S2
解出
x?
S3 将
x?
1
.
a
11
代入x+y=2,解出
y?2?
.
aa
S4 输出方程组的解.
1
?
x?,
?
?
a
若a=0,则输出“方程组无解”;否则,输出方程组的解
?
1
?
y?2?.
?
a
?
13.解:设该顾客的购物款为x元.
根据题意,x>882.
如果x<1000,则0.9x=882,解得x=980;
如果x≥1000,则0.85x=882,解得x≈1037.65;
所以,该顾客的购物款是980元或1037.65元.
14.
测试二
1.C 2.B 3.A 4.B 5.C
6.a>0,或a<0
7.当方程根的判别式?≥0时,方程有实根;当方程根的判别式?<0时,方程没有实根.
8.“是负数” 9.12,21 10.①0.3*p
②0.3*30+0.5*(p—30).
11.x<3,y=x-3.或x≤3,y=x-3.
12.流程框图表示的是下面的函数:
?
1?2x,x??3
?
y?
?
7,x??3
?
1?2x,x??3
?
输出的数字是3.
13.S1 输入x
S2 如果x≥0,则y←x;否则y←-x
S3 输出y.
14.S1 输入a,b,c
S2 x←a
S3
如果b>x,则x←b;否则,执行S4
S4 如果c>x,则x←c;否则,执行S5
S5 输出x
测试三
1.D 2.C 3.C
4.C 5.A
6.赋值或计算
7.从小到大连续n个正整数乘积大于1000时,计算出最小的自然数n.或其他等价的回答.
8.S=S+i,i=i+2
9.n≤10?
10.3205,51
11.
12.S1
赋值S=1,T=1
S2 赋值i=3
S3 赋值S=S+i,赋值T=T×i
S4 赋值i=i+2
S5 若i≤2007,则执行S3
S6
输出S,T.
13.S1 赋值n=0,a=200,r=0.05
S2
年增量T=ar
S3 年产量a=a+T
S4
若a≤300,那么n=n+2,重复执行S2
S5 N=2004+n
S6
输出N.
测试四 算法语言
1.a=input(底面边长a=;
1=input(侧棱长l=;
注:这里应该对输入数据的合理性作出判别.
h=sqrt(1^2-(sqrt(2)2*a)^2); 计算棱锥的高
V=a^2*h3; 计算棱锥的体积
disp(V,正四棱锥的体积为;
2.[法一]
x=input(=;
y=2*x-3; 计算y=f(x)
y=2*y-3; 计算y=f(f(x))
disp(y);
[法二]
定义函数f(x)=2*x-3
function y=f(x)
y=2*x-3;
endfunction
下面可直接调用f(x)
x=input(=;
y=f(f(x)); 与代数中的表达方式一样
disp(y);
3.disp(请输入三角形的三条边长:;
a=input(=;
b=input(=;
c=input(=;
if(a+b>c)&(a+c>b)&(b+c>a)then
p=(a+b+c)2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
disp(S,三角形面积为;
else
disp(不能构成三角形!;
end;
4.for i=1∶9
if((10*i+3)*6528==(30+i)*8256)then
disp(i,这个数字是:;
break;
end;
end;
5.[法一]用for语句实现
S=0;
an=1;
for
i=1∶100
an=an*i;
S=S+an;
end;
disp(S,!+2!+3!+…+100!=;
[法二]用while语句实现
S=0;
an=1;
i=1
while i<=100
an=an*i;
S=S+an;
i=i+1;
end;
disp(S,!+2!+3!+…+100!=;
6.a_n_2=1;
a_n_1=3;
n=input(要求前多少项的和呢?请输入n=;
S=0;
如果只要求前1项或2项的和,则不需要用到递推关系
if(n==1)then
S=a_n_2;
elseif(n==2)then
S=a_n_2+a_n_1;
end;
如果n大于2,则要用递推关系
i=3;
while(i<=n)
a_n=3*a_n_1-2*a_n_2;先由递推关系求出下一项
S=S+a_n;
然后累加到和S中
a_n_2=a_n_1;
原来的第(n-1)项在下一轮循环中将变成第(n-2)项
a_n_1=a_n;
原来的第n项在下一轮循环中将变成第(n-1)项
i=i+1;
项的脚标增1(表示下一轮循环要计算下一项了)
end;
printf(前%d项和为:%d,int(n),int(S));
7.定义函数f(x)=x^3+x^2-2x-2
方程f(x)=0有三个实数解:-sqrt(2),-1,sqrt(2)
function y=f(x)
y=x^3+x^2-2*x-2;
endfunction
用户输入初始区间的左右端点
disp(请输入实根所在初始区间[a,b]:;
a=input(=;
b=input(=;
ya=f(a);
yb=f(b);
用户输入计算精度
d=abs(input(请输入计算精度(输入的越小精度越高,但计算花费的时间就越多):;
下面通过二分法求符合精度的近似解
x=0;
err=%f;
while(abs(b-a)>=d)
x=(a+b)2;
y=f(x);
if(y==0)then break;end; 若此时x的值正好是方程的解,则退出循环
if(y*ya<0)then
b=x;
yb=f(b);
elseif(y*yb<0)then
a=x;
ya=f(a);
else
err=%t;
break;
end;
end;
if(err==%t)then
disp(计算中出现问题,可能是在您输入的初始区间中没有实根.;
else
printf(方程的近似解为:x=%f.,x);
end;
8.[法一]
disp(请依次输入f(x)=ax^2+bx+c的系数;
a=input(=;
if(a==0)then
disp(系数a不能为0!;
abort;
end;
b=input(=;
c=input(=;
disp(请输入区间的左右端点:;
x1=input(=;
x2=input(=;
if(x1>=x2)then begin
disp(区间端点输入错误!;
abort;
end;
x0=-b(2*a); 对称轴
if(a>0)then
如果开口朝上
if(x0<x1)then
如果对称轴在给定区间的左侧,则
min_v=a*x1^2+b*x1+c;
在x=x1处取得最小值
max_v=a*x2^2+b*x2+c;
在x=x2处取得最大值
elseif(x0<(x1+x2)2)then
如果对称轴在区间[x1,x2]的左半部分,则
min_v=a*x0^2+b*x0+c;
在顶点处取得最小值
max_v=a*x2^2+b*x2+c; 在x=x2处取得最大值
elseif(x0<x2)then
如果对称轴在区间[x1,x2]的右半部分,则
min_v=a*x0^2+b*x0+c;
在顶点处取得最小值
max_v=a*x1^2+b*x1+c; 在x=x1处取得最大值
else
如果对称轴在区间[x1,x2]右侧,则
min_v=a*x2^2+b*x2+c;
在x=x2处取得最小值
min_v=a*x1^2+b*x1+c;
在x=x1处取得最大值
end;
else
如果开口朝下
if(x0<x1)then
如果对称轴在给定区间的左侧,则
max_v=a*x1^2+b*x1+c;
在x=x1处取得最大值
min_v=a*x2^2+b*x2+c;
在x=x2处取得最小值
elseif(x0<(x1+x2)2)then
如果对称轴在区间[x1,x2]的左半部分,则
max_v=a*x0^2+b*x0+c;
在顶点处取得最大值
min_v=a*x2^2+b*x2+c; 在x=x2处取得最小值
elseif(x0<x2)then
如果对称轴在区间[x1,x2]的右半部分,则
max_v=a*x0^2+b*x0+c;
在顶点处取得最大值
min_v=a*x1^2+b*x1+c; 在x=x1处取得最小值
else
如果对称轴在区间[x1,x2]右侧,则
max_v=a*x2^2+b*x2+c;
在x=x2处取得最大值
min_v=a*x1^2+b*x1+c;
在x=x1处取得最小值
end;
end;
printf(最小值=%f,n最大值=%f,min_v,max_v);
[法二]
(为[法一]的简化版)
a=input(=;
b=input(=;
c=input(=;
x1=input(=;
x2=input(=;
x0=-b(2*a); 对称轴
if(x0<x1)then 如果对称轴在给定区间的左侧,则
v1=a*x1^2+b*x1+c; 在x=x1处取得最小值
v2=a*x2^2+b*x2+c; 在x=x2处取得最大值
elseif(x0<(x1+x2)2)then
如果对称轴在区间[x1,x2]的左半部分,则
v1=a*x0^2+b*x0+c;
在顶点处取得最小值
v2=a*x2^2+b*x2+c; 在x=x2处取得最大值
elseif(x0<x2)then
如果对称轴在区间[x1,x2]的右半部分,则
v1=a*x0^2+b*x0+c;
在顶点处取得最小值
v2=a*x1^2+b*x1+c; 在x=x1处取得最大值
else
如果对称轴在区间[x1,x2]右侧,则
v1=a*x2^2+b*x2+c;
在x=x2处取得最小值
v2=a*x1^2+b*x1+c;
在x=x1处取得最大值
end;
if(a>0)then
printf(最小值=%f,n最大值=%f,v1,v2);
else
printf(最小值=%f,n最大值=%f,v2,v1);
end;
测试五
1.C 2.C 3.A 4.C 5.A
6.y=-1;x=0?;y=0
7.2 8.57,8 9.6,5