一个数据结构FOR循环题目
2008-09-08 20:24
253 查看
FOR i:= n DOWNTO 1 DO {语句1}
BEGIN
x:=x+1; {语句2}
FOR j:=n DOWNTO i DO {语句3}
y:=y+1; {语句4}
END;
语句1执行的频度为 ____ ;语句2执行的频度为 ____ ;语句3执行的频度为 ____ ;语句4执行的频度为 ____
-------------------
解答:(文凭所做,仅供参考)
题目程序为是PASCAL语言,
其中的FOR循环为:
递减型FOR循环 FOR 循环控制变量:=循环初值 DOWNTO 循环终值 DO 循环语句
递减型FOR循环与递增型FOR循环基本相同,只是循环控制变量每次递减。
故,此段程序等价于(C语言版):
for(i=n;i>=1;i--)//{语句1}
{
x=x+1;//{语句2}
for(i=n;i>=1;i--)//{语句3}
y=y+1;//{语句4}
}
----------
提示:
1、for语句的书写格式:
for(e1;e2;e3)
statement
首先,运行e1,它通常是赋值语句,然后对e2求值,它通常是一个比较。如果e2的值为false,则结束循环。
如果e2的值为true,则执行statement。最后,执行e3,它通常是赋值语句,然后控制转移到对e2再次求值。
2、频度=执行次数;
3、每次FOR循环执行N+1次;
显然,{语句1}:FOR循环执行N+1次,FOR语句的执行顺序如提示1所讲;
{语句2}:当外层FOR循环执行到N+1次,已经终止,其内的语句执行N次;
{语句3}:内层FOR循环执行1+2+3+...+N+N=n(n+3)/2,其中最后相加的一项N,是由于外层循环每执行一次,
内部FOR循环便要多判断一次,因此当外层循环执行N次后,相应内部FOR循环便要多判断N次;
其中判断操作为每执行一次,要判断N是否还>=1?
{语句4}:内层FOR循环执行1+2+3+...+N=n(n+1)/2,这是实际执行次数;
因为综上所述,正确答案为:
语句一 n+1
语句二 n
语句三 n(n+3)/2
语句四 n(n+1)/2
查其出处(【北方交通大学 1999 二、4(5分)】但无解答)
BEGIN
x:=x+1; {语句2}
FOR j:=n DOWNTO i DO {语句3}
y:=y+1; {语句4}
END;
语句1执行的频度为 ____ ;语句2执行的频度为 ____ ;语句3执行的频度为 ____ ;语句4执行的频度为 ____
-------------------
解答:(文凭所做,仅供参考)
题目程序为是PASCAL语言,
其中的FOR循环为:
递减型FOR循环 FOR 循环控制变量:=循环初值 DOWNTO 循环终值 DO 循环语句
递减型FOR循环与递增型FOR循环基本相同,只是循环控制变量每次递减。
故,此段程序等价于(C语言版):
for(i=n;i>=1;i--)//{语句1}
{
x=x+1;//{语句2}
for(i=n;i>=1;i--)//{语句3}
y=y+1;//{语句4}
}
----------
提示:
1、for语句的书写格式:
for(e1;e2;e3)
statement
首先,运行e1,它通常是赋值语句,然后对e2求值,它通常是一个比较。如果e2的值为false,则结束循环。
如果e2的值为true,则执行statement。最后,执行e3,它通常是赋值语句,然后控制转移到对e2再次求值。
2、频度=执行次数;
3、每次FOR循环执行N+1次;
显然,{语句1}:FOR循环执行N+1次,FOR语句的执行顺序如提示1所讲;
{语句2}:当外层FOR循环执行到N+1次,已经终止,其内的语句执行N次;
{语句3}:内层FOR循环执行1+2+3+...+N+N=n(n+3)/2,其中最后相加的一项N,是由于外层循环每执行一次,
内部FOR循环便要多判断一次,因此当外层循环执行N次后,相应内部FOR循环便要多判断N次;
其中判断操作为每执行一次,要判断N是否还>=1?
{语句4}:内层FOR循环执行1+2+3+...+N=n(n+1)/2,这是实际执行次数;
因为综上所述,正确答案为:
语句一 n+1
语句二 n
语句三 n(n+3)/2
语句四 n(n+1)/2
查其出处(【北方交通大学 1999 二、4(5分)】但无解答)
相关文章推荐
- 一个题目说明for循环过程(经典!)
- for循环的一个例子
- 不用repeater datalist 打印数据 直接从后台直接打印 一个for 循环打印表格两列多行
- C#中for,foreach,while等循环的一个缺点
- 2.2 在不使用运算符&&或|| 的条件下编写一个与上面的for循环语句等价的循环语句。
- 使用FOR循环语句在屏幕上输出一个由星号组成的直角三角形
- .写一个方法,用一个for循环打印九九乘法表
- 使用 For 循环的自动索引功能创建数组y1=sin(x/10)和y2=cos(x/10),(x=0-99),并分别用一个波形图和一个波形图表来进行显示。
- 练习2-2 在不使用运算符&&或|| 的条件下编写一个与上面的for循环语句等价的循环语句
- 一个for循环实现九九乘法表
- 请教:for循环里嵌套了一个if判断
- Python高级编程-如何在在一个for循环中迭代多个可迭代对象
- 深入应用c++11读书笔记--使用c++11让程序更简洁、更现代-2.自己实现一个支持范围for循环的类~
- for循环一个容易被忽视的问题
- 【编程之美题目】电话号码对应英语单词(非递归办法控制for循环个数)
- implode函数把数组元素组合为一个字符串,挺好用的,省的写一个FOR循环了
- 遇到一个很有趣的问题,while(ture)或者for循环出现异常,继续执行还是跳出异常
- 转载一个图数据结构题目
- GO语言基础-for语句特性,字符串循环的一个小问题
- 一个shell for循环与case结合的脚本(监控程序状态)