第一章 算法初步
1.1 算法与程序框图
1.1.1 算法的概念
1.下面的结论正确的是 【 】
A.一个程序的算法步骤是可逆的 B.一个算法可以无止境地运算下去的
C.完成一件事情的算法有且只有一种 D.设计算法要本着简单方便的原则
2.下面对算法描述正确的一项是 【 】
A.算法只能用自然语言来描述 B.算法只能用图形方式来表示
C.同一问题可以有不同的算法 D.同一问题的算法不同,结果必然不同
3.下面哪个不是算法的特征 【 】
A.抽象性 B.精确性 C.有穷性 D.唯一性
4.算法的有穷性是指 【 】
A.算法必须包含输出 B.算法中每个操作步骤都是可执行的
C.算法的步骤必须有限 D.以上说法均不正确
5.早上从起床到出门需要洗脸刷牙(5min)、刷水壶(2min)、烧水(8min)、泡面(3min)、吃饭(10min)、听
广播(8min)几个步骤,从下列选项中选最好的一种算法 【 】
A.S1 洗脸刷牙、S2 刷水壶 、S3 烧水、S4 泡面、S5 吃饭、S6 听广播
B.S1 刷水壶、S2 烧水同时洗脸刷牙、S3 泡面、S4 吃饭、S5 听广播
C. S1 刷水壶、S2 烧水同时洗脸刷牙、S3 泡面、S4 吃饭同时听广播
D.S1 吃饭同时听广播、S2 泡面;S3 烧水同时洗脸刷牙;S4 刷水壶
6.看下面的四段话,其中不是解决问题的算法是 【 】
A.从济南到北京旅游,先坐火车,再坐飞机抵达
B.解一元一次方程的步骤是去分母、去括号、移项、合并同类项、系数化为 1
C.方程 2 1 0x 有两个实根
D.求 1+2+3+4+5 的值,先计算 1+2=3,再计算 3+3=6,6+4=10,10+5=15,最终结果为 15
7.写出求 1+2+3+4+5+6+…+100 的一个算法.可运用公式 1+2+3+…+ n = ( 1)
2
n n 直接计算.
第一步______①_______;
第二步_______②________;
第三步 输出计算的结果.
8.写出 1×2×3×4×5×6 的一个算法.
1.1.2 程序框图
1.算法的三种基本结构是 【 】
A. 顺序结构、模块结构、条件结构 B. 顺序结构、循环结构、模块结构
C. 顺序结构、条件结构、循环结构 D. 模块结构、条件结构、循环结构
2.给出以下四个问题,
①输入 x , 输出它的相反数; ②求面积为 6 的正方形的周长;
③在三个不等实数 , ,a b c 中,求一个数的最大数 ;
④求函数
1, 0( ) 2, 0
x xf x x x
的函数值。
其中不需要用条件语句来描述其算法的有 【 】
A 1 个 B 2 个 C 3 个 D 4 个
3 用二分法求方程 022 x 的近似根的算法中要用哪种算法结构 【 】
A 顺序结构 B 条件结构 C 循环结构 D 以上都用
4.在输入语句中,若同时输入多个变量,则变量之间的分隔符号是 【 】
A.逗号 B.空格 C.分号 D.顿号
5. 下列程序执行的目的是 【 】
6.在程序语言中,下列符号分别表示什么运算 * ;\ ;∧ ;SQR( ) ;ABS( )?
7.下列程序运行后,a,b,c 的值各等于什么?
(1)a=3 (2)a=3
b=-5 b=-5
c=8 c=8
a=b a=b
b=c b=c
PRINT a,b,c c=a
END PRINT a,b,c
END
8.写出下列程序运行的结果.
(1) a=2 (2)x=100
i=1 i=1
WHILE i<=6 DO
a=a+1 x=x+10
PRINT i,a PRINT i,x
i=i+1 i=i+1
WEND LOOP UNTIL x=200
END END
9.某次考试,满分 100 分,按规定:x≥80 者为良好,60≤x68
PRINT S
END
3.将两个数 a =8,b =7 交换,使 a =7, b =8,使用赋值语句正确的一组 【 】
A. a =b ,b = a B. c =b ,b = a , a = c
C. b = a , a =b D. a = c , c =b ,b = a
4.给出四个输入语句、输出语句和赋值语句
⑴输出语句 输出 a ;b ; c (2)输入语句 输入 x =3
(3)赋值语句 3=B (4)赋值语句 A=B=2
则其中正确的个数是 【 】
A.0 个 B. 1 个 C. 2 个 D. 3 个
5.下面一段程序执行后输出结果是 。
程序: A=2
A=A*2
A=A+6
输出 A
6. 写出图 1、图 2 中程序框图的运行结果:
(1)图 1 中输出 S=_______________;
(2)图 2 中输出 a =_______________.
7. 设计一个算法,计算一个学生数学、语文、英语三门课的平均成绩。
8. 设计一个算法,交换两个变量 A 和 B 的值,并输出交换前后的值。
1.2.2-1.2.3 条件语句和循环语句
1.下面为一个求 30 个数的平均数的程序,在横线上应填充的语句为 【 】
s=0
i=1
DO
INPUT“x=”,x
s=s+x
开始
输入 a ,b
2a
4b
a bS b a
输出 S
结束
开始
输入 R
/ 2b R
2a b
输出 a
结束
图 1 图 2
i=i+1
LOOP UNTIL____________
a=s/30
PRINT a
END
A 30i B . 30i C . 30i D . 30i
2.执行下边的程序框图,若 8.0p ,则输出的 n 为 【 】
A .3 B . 2 C . 4 D .5
3 如果右边程序执行后输出的结果是 132,那么在程序 until 后面的“条件”应为 【 】
A. i > 11 B. i >=11 C. i 0 THEN
y=1
ELSE
IF x=0 THEN
y=0
ELSE
y=-1
END IF
END IF
PRINT “y 的值为:”;y
END
9. (1)该算法使用了当型循环结构,因为是求 30 个数的和,故循环体应执行 30 次,其中 i 是计数
变量,因此判断框内的条件就是限制计数变量 i 的,故应为 30i .算法 中的变量 p 实质是表示参与求和
的各个数,由于它也是变化的,且满足第 i 个数比其前一个数大 1i ,,第 1i 个数比其前一个数大 i,故
应有 ipp ;
(2) ① 处应填 30i ?;②处应填 ipp ;(3)程序如右图所示:
1.3 算法案例
1.C 2.B 3.55(8)
4.用辗转相除法求 8251 与 61 05 的最大公约数.
8251 = 6105×1 +2146 6105 = 2146×2+1813
2146=1813×1+333 1813=333×5+148
i=1
p=1
s=0
WNLIE I=80?
结束
------
输出良好
Y
输入 x
x>=60?
输出及格 输出不及格
N
NY
333=148×2+37 148=37×4+0
所以 8251 与 6105 的最大公约数是 37.
5. (1)101111011(2)=1×28+0×27+1×26+1×25+1×24+1×23+0×22+1×21+1=379.
(2)53(8)=5×81+3=43.
余数43
21
10
5
2
1
2
2
2
2
2
2
0
1
1
0
1
0
1
∴53(8)=101011(2)
6. 每一趟都从头开始,两个两个地比较,若前者小,则两数位置不变;否则,调整这两个数的位置.
第一趟的结果是:6 3 8 18 21 54 67
完成 3 次交换.
第二趟的结果是:3 6 8 18 21 54 67
完成 1 次交换.
第三趟交换次数为 0,说明已排好次序,即 3 6 8 18 21 54 67.
7. 先把函数整理成
f(x)=((((0.00833x+0.04167)x+0.16667)x+0.5)x+1)x+1,按照从内向外的顺序依次进行.
x=-0.2
a5=0.00833 V0=a5=0.008333
a4=0.04167 V1=V0x+a4=0.04
a3=0.016667 V2=V1x+a3=0.15867
a2=0.5 V3=V2x+a2=0.46827
a1=1 V4=V3x+a1=0.90635
a0=1 V5=V4x+a0=0.81873
∴f(-0.2)=0.81873.
8. 设物共 m 个,被 3,5,7 除所得的商分别为 x、y、z,则这个问题相当于求不定方程
27
,35
,23
zm
ym
xm
的正整数解.
m 应同时满足下列三个条件:(1)m MOD 3=2;(2)m MOD 5=3;
(3)m MOD 7=2.因此,可以让 m 从 2 开始检验,若 3 个条件中有任何一个不成立,则 m 递增 1,一
直到 m 同时满足三个条件为止.
程序:m=2
f=0
WHILE f=0
IF m MOD 3=2 AND m MOD 5=3
AND m MOD 7=2 THEN
PRINT “物体的个数为:”;m
f=1
ELSE
m=m+1
END IF
WEND
END
作 者 于华东
责任编辑 庞保军