读程序解题步骤做阅读程序题,首先要想方设法弄清楚程序的功能,每个题目总有一点“写作目的”。抓住了它,不仅答案变得容易了,而且对自己的结果也比较有信心。
1、从总体上通读程序,大致把握程序的目的和算法。
2、猜测变量的作用,跟踪主要变量值的变化(列表),找出规律。
3、将程序分段,理清每一小段程序的作用和目的。
4、看清输入,按照输出格式,写出结果。
5、带着到的结果回到程序进行检查。
几种方法a. 直接模拟
b. 先模拟几次循环后找规律
c. 直接看程序了解算法功能
d. 了解程序本质后换一个方法解决
e. 有时不知道算法可以通过观察猜出来
1、纯语法,模拟程序,求解(普及组一般1-2题,提高组1题)2、几种常用的算法的BT写法,一般算几个就知道了(还是得靠基础扎实,常用算法熟悉度高)(普及组1题,提高组1题)
3、数学方法求解,搞明白程序是在干什么事,就好做了(普及组0-1题,提高组1题)
4、找规律,代几个数(或先求一部分),把解排列好,卸除通项公式(数学知识要扎实)(普及组0-1题,提高组1题)
逆序输出1、(求字符的逆序)下面的程序的功能是输入若干行字符串,每输入一行,就按逆序输出该行,最后键入-1终止程序。
请将程序补充完整。
Program j401
type str1=string[100]
var line:str1kz:integer
procedure reverse(var s:str1)
var I,j:integert:char
begin
i:=1j:=length(s)
while (i<j) do begin
t:=s[i]s[i]:=s[j]s[j]:=t
_____①___________②______
end
end
begin
writeln(‘continue? -1 for end.’)
readln(kz)
while ( _____③______)do
begin
readln(line)
_____④_____
writeln(line)
writeln(‘continue? -1 for end.’)
readln(kz)
end
end.
①和②处之前是一个冒泡排序,所以应该把i递增、j递减,
即①inc(i)②dec(j)
题目中说以-1结束,所以③应填kz<>-1
之前的过程定义好了,所以④应填reverse(line)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)