第一章 算法初步课时练习题及答案.docx

上传人:b****5 文档编号:6872293 上传时间:2023-01-11 格式:DOCX 页数:25 大小:261.23KB
下载 相关 举报
第一章 算法初步课时练习题及答案.docx_第1页
第1页 / 共25页
第一章 算法初步课时练习题及答案.docx_第2页
第2页 / 共25页
第一章 算法初步课时练习题及答案.docx_第3页
第3页 / 共25页
第一章 算法初步课时练习题及答案.docx_第4页
第4页 / 共25页
第一章 算法初步课时练习题及答案.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

第一章 算法初步课时练习题及答案.docx

《第一章 算法初步课时练习题及答案.docx》由会员分享,可在线阅读,更多相关《第一章 算法初步课时练习题及答案.docx(25页珍藏版)》请在冰豆网上搜索。

第一章 算法初步课时练习题及答案.docx

第一章算法初步课时练习题及答案

第一章算法初步

Ⅰ学习目标

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与圆x2+y2=1的位置关系的算法.

12.写出求解二元一次方程组

的算法步骤.

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类(D)5类

3.程序框图如图1所示,输出的结果为()

图1

(A)2,5(B)4,7(C)2,4(D)1,2

4.程序框图如图2所示,输出的结果为()

图2

(A)2(B)9(C)3(D)1

5.程序框图如图3所示,当a=1,b=-3时输出的结果为()

(A)0,-1(B)2,-4(C)

(D)-2,4

图3

二、填空题

6.用流程图表示求解不等式ax>b(a≠0)的算法时,判断框内的内容可以是_________.

7.在表示求解一元二次方程的算法中,需要使用选择结构,因为__________________.

8.如图4,当a=-1时,框图的输出结果是______.

图4

9.如图5,框图的输出结果是______.

图5

10.如图6所示框图,设火车托运重量为p(kg)的行李时,每千克的费用标准为

则图中①②处分别填的内容为:

①______;②________________.

图6

三、解答题

11.已知函数f(x)=|x-3|,程序框图(图7)表示的是给出x值,求相应函数值的算法.请将该框图补充完整.写出①②两处应填的内容.

图7

12.观察所给算法的流程框图(图8),说明它表示的函数.如果输入数字1,则输出的数字是什么?

图8

Ⅲ拓展性训练

13.设计一个求任意实数的绝对值的算法,并画出流程图.

14.已知三个实数a,b,c,试给出寻找这三个数中最大数的一个算法,并画出该算法的流程图.

测试三程序框图

(二)

Ⅰ学习目标

理解三种逻辑结构,会读逻辑框图,尝试写出程序框图.

Ⅱ基础性训练

一、选择题

1.下列关于框图的逻辑结构说法正确的是()

(A)用顺序结构画出“求点到直线的距离”的程序框图是唯一的

(B)条件结构中不含顺序结构

(C)条件结构中一定含有循环结构

(D)循环结构中一定包含条件结构

2.已知函数

在由给定的自变量x计算函数值f(x)的算法中,应该至少包含以下基本逻辑结构中的()

(A)顺序结构、循环结构(B)条件结构、循环结构

(C)顺序结构、条件结构(D)顺序结构、循环结构

3.下列四个说法中正确的有()

①任意一个算法都离不开顺序结构

②算法程序框图中,根据条件是否成立有不同的流向

③循环体是指按照一定条件,反复执行某一处理步骤

④循环结构中一定有条件结构,条件结构中一定有循环结构

(A)1个(B)2个(C)3个(D)4个

4.要解决下面四个问题,只用顺序结构画不出其流程图的是()

(A)计算1+2+…+10的值(B)当圆的面积已知时,求圆的周长

(C)给定一个数x,求其绝对值(D)求函数f(x)=x3-3x的值

5.算法:

S1m=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+…+2007和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,则其面积

,其中p=

 

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.已知数列{an}满足:

a1=1,a2=3,对于任意的n≥3,有an=3an-1-2an-2.求该数列的前n项和.

 

7.写出一个用二分法求方程x3+x2-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)

(C)2(D)

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)

(B)

(C)

(D)

5.如果如图5程序框图的输出结果为-18,那么在判断框①中表示的“条件”应该是()

图5

(A)i≥9

(B)i>9

(C)i≥8

(D)i>11

6.函数

求值的程序框图如图6所示,则空白处需要填的语句为:

①_________;②_________;③_________.

图6

7.如图7是一个算法的程序框图,当输入的值为5时,则其输出的结果是______.

图7

8.阅读流程图8填空:

①最后一次输出的i=______;②一共输出i的个数为______个.

图8

9.分别写出图9和图10的运行结果:

图9______;图10______.

图9图10

参考答案

第一章算法初步

测试一

1.C2.B3.B4.C5.D

6.-x<-1,x>17.已知一个数的13%,求这个数8.

9.1010.5

11.S1求出原点到直线ax+by+c=0的距离

S2比较d与圆的半径r=1的大小,

若d>r,则直线与圆相离;若d=r,则直线与圆相切;若d<r,则直线与圆相交.

12.S1判断a是否为0,若是,则执行S4,若不是,则执行S2.

S2解出

S3将

代入x+y=2,解出

S4输出方程组的解.

若a=0,则输出“方程组无解”;否则,输出方程组的解

13.解:

设该顾客的购物款为x元.

根据题意,x>882.

如果x<1000,则0.9x=882,解得x=980;

如果x≥1000,则0.85x=882,解得x≈1037.65;

所以,该顾客的购物款是980元或1037.65元.

14.

测试二

1.C2.B3.A4.B5.C

6.a>0,或a<0

7.当方程根的判别式∆≥0时,方程有实根;当方程根的判别式∆<0时,方程没有实根.

8.“是负数”9.12,2110.①0.3*p②0.3*30+0.5*(p—30).

11.x<3,y=x-3.或x≤3,y=x-3.

12.流程框图表示的是下面的函数:

输出的数字是3.

13.S1输入x

S2如果x≥0,则y←x;否则y←-x

S3输出y.

14.S1输入a,b,c

S2x←a

S3如果b>x,则x←b;否则,执行S4

S4如果c>x,则x←c;否则,执行S5

S5输出x

测试三

1.D2.C3.C4.C5.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

S5N=2004+n

S6输出N.

测试四算法语言

1.a=input("底面边长a=");

1=input("侧棱长l=");

//注:

这里应该对输入数据的合理性作出判别.

h=sqrt(1^2-(sqrt

(2)/2*a)^2);//计算棱锥的高

V=a^2*h/3;//计算棱锥的体积

disp(V,"正四棱锥的体积为");

2.[法一]

x=input("x=");

y=2*x-3;//计算y=f(x)

y=2*y-3;//计算y=f(f(x))

disp(y);

[法二]

//定义函数f(x)=2*x-3

functiony=f(x)

y=2*x-3;

endfunction

//下面可直接调用f(x)

x=input("x=");

y=f(f(x));//与代数中的表达方式一样

disp(y);

3.disp("请输入三角形的三条边长:

");

a=input("a=");

b=input("b=");

c=input("c=");

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.fori=1∶9

if((10*i+3)*6528==(30+i)*8256)then

disp(i,"这个数字是:

");

break;

end;

end;

5.[法一]用for语句实现

S=0;

an=1;

fori=1∶100

an=an*i;

S=S+an;

end;

disp(S,"1!

+2!

+3!

+…+100!

=");

[法二]用while语句实现

S=0;

an=1;

i=1

whilei<=100

an=an*i;

S=S+an;

i=i+1;

end;

disp(S,"1!

+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)

functiony=f(x)

y=x^3+x^2-2*x-2;

endfunction

//用户输入初始区间的左右端点

disp("请输入实根所在初始区间[a,b]:

");

a=input("a=");

b=input("b=");

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)thenbreak;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("a=");

if(a==0)then

disp("系数a不能为0!

");

abort;

end;

b=input("b=");

c=input("c=");

disp("请输入区间的左右端点:

");

x1=input("x1=");

x2=input("x2=");

if(x1>=x2)thenbegin

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("a=");

b=input("b=");

c=input("c=");

x1=input("x1=");

x2=input("x2=");

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.C2.C3.A4.C5.A

6.y=-1;x=0?

;y=07.28.57,89.6,5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1