高中数学第一章算法初步1.2基本算法语句教材习题点拨新人教B必修3创新

高中数学第一章算法初步1.2基本算法语句教材习题点拨新人教B必修3创新
高中数学第一章算法初步1.2基本算法语句教材习题点拨新人教B必修3创新

高中数学第一章算法初步 1.2 基本算法语句教材习题点拨新人

教B版必修3

练习A

本节的练习只要求写出计算程序或结果,有条件的同学可使用带有储存功能的计算器计算或在计算机上运算.

1.下列Scilab程序运行后,a,b,c各等于多少?

(1)a=3;b=-5;c=8;a=b;b=c;

print(%io(2),a,b,c);

(2)a=3;b=-5;c=8;a=b;b=c;c=a;

print(%io(2),a,b,c);

解:(1)c=8 b=8 a=-5

(2)c=-5 b=8 a=-5

2.已知函数f(x)=x3,求f(13).

解:x=13;

y=x*x*x;

print(%io(2),y);

3.写出求平行四边形面积公式的程序:

S=ah(a为一边的长,h为其上的高).

并写出每步程序语句的作用.

解:a=input(“along=”);//输入一边长

h=input(“high=”);//输入这边上的高

S=a*h;//把a*h的值赋给S

print(%io(2),S);//输出面积

4.任给三个正数,求它们的算术平均数,并写出每步程序语句的作用.

解:a=input(“a=”);//输入第一个正数

b=input(“b=”);//输入第二个正数

c=input(“c=”);//输入第三个正数

aver=(a+b+c)/3;//把表达式(a+b+c)/3的值赋值给变量aver

print(%io(2),aver);//输出aver的值

练习B

1.用公式法求方程x2-3x+2=0的两个根.

解:程序:a=1;b=-3;c=2;

d=b*b-4*a*c;

t =sqrt(d);

x1=(-b +t)/(2*a);

x2=(-b -t)/(2*a);

print(%io(2),x1,x2);

2.用公式法解方程组????? x +y =-13x -y =13.

解:a11=1;a12=1;a21=3;a22=-1;

b1=-1;b2=13;

D =a11*a22-a21*a12;

x1=(b1*a22-b2*a12)\D ;

x2=(b2*a11-b1*a21)\D ;

print(%io(2),x2,x1);

3.任给一个三角形的底和高,求这个三角形的面积.

解:h =input(“h=”);

a =input(“a=”);

S =12*a*h ;

print(%io(2),S);

4.任给两点的坐标,求这两点的距离.

解:x1=input(“x1=”);

y1=input(“y1=”);

x2=input(“x2=”);

y2=input(“y2=”);

a =(x1-x2) (x1-x2)+(y1-y2) (y1-y2);

h =sqrt(a);

print(%io(2),h);

练习A

1.任给一个实数,求它的绝对值.

解:a =input(“a=”);

if a >=0

x =a ;

else

x =-a ;

end

print(%io(2),x);

2.任意给三个数,求它们中的最大数.

解:a=input(“a=”);

b=input(“b=”);

c=input(“c=”);

if a>b

max=a;

else

max=b;

end

if c>max

max=c;

end

print(%io(2),max);

3.用生成随机数命令rand( )生成一些随机数,如果生成的数大于等于0.5,输出数1,否则输出数0.

解:x=rand();

if x>=0.5

v=1;

else v=0;

end

print(%io(2),x,v);

练习B

1.任给一个正数,求它的自然对数.

解:a=input(“a=”);

if a<=0

print(%io(2),“输入错误”);

else

y=log(a);

print(%io(2),y);

end

2.已知三个实数,求它们中的最小数.

解:a=input(“a=”);

b=input(“b=”);

c=input(“c=”);

if a<b

min=a;

else

min=b;

end

if c<min

min=c;

end

print(%io(2),min);

3.某商店对顾客购买货物款数满500元,减价3%,不足500元不予优惠.输入一顾客购物的款数,计算出这个顾客实交的货款.

解:m=input(“m=”);

if m>=500

m=m* 0.97;

end

print(%io(2),m);

4.已知函数

1,1

0,11

1,1

x

y x

x

<-

?

?

=-≤≤

?

?->

?

给出x的值,计算出y的值.

解:x=input(“x=”);if x<-1

y=1;

else

if x<=1

y=0;

else

y=1;

end

end

print(%io(2),y);

练习A

1.求1+2+3+…+10,并显示每次循环结果,并写出程序中每一步的作用.

解:S=0;//设定初值

for i=1:1:10 //设定i的初值,步长,终值

S=S+i //循环计算,并显示每次循环结果

end

S //显示最终结果

2.求小于100的所有正偶数的和.

解:S=0;

for i=2:2:98

S=S+i;

end

S

3.计算300×(1+0.05)8.

解:M=300;

for i=1:1:8

M=M*(1+0.05);

end

M

4.求0.1+0.2+0.3+…+0.9+1.

解:S=0;

for i=0.1:0.1:1.0

S=S+i;

end

S

练习B

1.求小于100的所有正奇数的和.求出一共进行了多少次循环,并显示前5次循环结果.

解:S=0;

j=0;

for i=1:2:99

S=S+i;

j=j+1;

if j<=5,S

end

end

disp(“number of cycles is”)

print(%io(2),S ,j);

2.求所有立方小于10 000的正整数.

解:j =1;

while j*j*j <10 000

print(%io(2),j);

j =j +1;

end

3.求1+12+13+…+19+110.

解:S =0;

for i =1:1:10

S =S +1/i ;

end

S

4.计算1+2+22+23+ (263)

解:S =0;

M =1;

for i =1:1:64

S =S +M ;

M =2*M ;

end

S

习题1-2A

1.任给三个变量a ,b ,c 赋值,求下列算式的值:

(1)a +b +c ;

(2)4a +b +3c ;

(3)b 2-4a c ;

(4)(a +b )÷c .

解:(1)a =input(“a=”);

b =input(“b=”);

c =input(“c=”);

s =a +b +c ;

print(%io(2),s);

(2)a=input(“a=”);

b=input(“b=”);

c=input(“c=”);

s=4*a+b+3*c;

print(%io(2),s);

(3)a=input(“a=”);

b=input(“b=”);

c=input(“c=”);

s=b*b-4*a*c;

print(%io(2),s);

(4)a=input(“a=”);

b=input(“b=”);

c=input(“c=”);

s=(a+b)/c;

print(%io(2),s);

2.任给一个自变量的值,求下列函数值:

(1)f(x)=3x4-5x3+1;

(2)f(x)=x5-x2.

解:(1)x=input(“x=”);

y=3*x*x*x*x-5* x* x* x+1;

print(%io(2),y);

(2)x=input(“x=”);

y=x*x*x*x*x-x*x;

print(%io(2),y);

3.已知圆半径为10.945,求圆的面积.解:r=10.945;

S=%pi*r*r;

print(%io(2),S);

点评:程序中用%pi表示π.

4.求所有平方后小于1 000的正整数.解:j=1;

while j* j<1 000

j,j=j+1;

end

5.已知m,n是两个正整数,求满足m+n<10的所有正整数对m,n.

解:for m=1:1:8

for n=1:1:8

if m+n<10

print(%io(2),m,n);

end

end

end

习题1-2B

1.任给一个圆锥的底面半径r和高h,求圆锥的体积V.

解:r=input(“r=”);

h=i nput(“h=”);

V=%pi*r*r*h/3;

print(%io(2),V);

(其中%pi表示π)

2.设个人月收入在5 000以内的所得税的档次为(单位:元):

0<x≤1 0000%

1 000<x≤3 000 10%

3 000<x≤5 000 25%

请您设计一算法,输入某人的月收入,计算他应交的个人收入所得税,并画出相应框图.解:x=input(“x=”);

if x>5 000,disp(“exceeding limit”)

else

if x>0 and x<=1 000

y=0;

else

if x<=3 000

y=x 0.1;

else

y=x 0.25;

end

end

end

print(%io(2),y);

3.求1-12+13-14+…+199-1100.

解:S =0;

for i =1:1:100 if mod(i,2)==1 S =S +1/i ; else

S =S -1/i ; end

end

print(%io(2),s);

相关主题
相关文档
最新文档