循环结构程序设计
实验4 循环结构程序设计
一、实验目的
⑴ 掌握while语句、do-while语句和for语句的功能,能够用这些语句实现循环结构程序设计。
⑵ 掌握循环语句嵌套使用的基本形式,能够用循环语句实现多重循环。
⑶ 掌握在循环结构程序中使用break语句和continue语句改变程序流程的方法。 ⑷ 能够用循环实现累加、累乘、穷举、迭代等常用算法。 (5) 学会程序调试(课堂举例讲解)
二、实验内容和实验要求
1.练习题一
⑴ 编写程序,求100以内的奇数和,即:sum=1+3+5+ … +99 ⑵ 程序代码
#include using namespace std; int main() { int n,sum; n=1; sum=0; while(n
(3) 运行结果(贴图)
(4) 将while循环语句改为do-while循环语句,程序代码: #include using namespace std; int main() { int n,sum; n=1; sum=0; do { sum=sum+n; n=n+2;} while(n
2.练习题二
(1) 完成课本P70页的程序题3 (2) 源代码
#include using namespace std; int main() { char ch; int let,dig,spa,oth; let=dig=spa=oth=0;
cout='A'&&ch='a'&&ch='0'&&ch
(3) 运行结果贴图
3.练习题三
(1)完成课本P70页程序题1 (2)源代码
#include using namespace std; int main() { int n,m[6],k,i,j=0; cout>n; k=n; while(n!=0)
{m[j]=n%10; n=n/10; j++;} cout
(3)运行结果贴图
4.练习题四
⑴ 编程序,输出以下图形 ① ********* ② *****
****
*******
***
***** **
* ***
*
③
1 13 135 1357 13579
④
A BBB CCCCC DDDDDDD CCCCC BBB A
⑵ 要求
应该使用双重循环。外循环体中包含两个并列的for循环语句,分别控制每行输出的空格符和非空格字符(如:星号);用cout
⑶ 程序代码
#include
using namespace std; int main() { int i,j; for(i=1;i0;j--) cout0;j--) cout0;j--) cout0;j--) cout0;j--) cout
⑷ 运行结果(贴图)
⑸ 运行结果
⑹ 思考题及问题
① 如果输出10行的图形,应如何修改程序? #include using namespace std; int main() { int i,j; for(i=1;i0;j--) cout0;j--) cout
}
}
cout
for(i=1;i0;j--) cout
for(j=1;j
cout
for(i=1;i0;j--) cout0;j--) cout
return 0;
② 如果输出图形向右平移25个字符位置,程序应该如何修改? #include using namespace std; int main() { int i,j; for(i=1;i0;j--) cout0;j--) cout0;j--)
}
cout
cout
for(i=1;i
{ for(j=30-i;j>0;j--) cout0;j--) cout
return 0;
三、自测练习
1.自测练习一
编写一个程序,统计输出各位数之和为9,且能被5整除的五位数的个数。 源代码:
#include using namespace std; int main() { int a,b,c,d,i,j; j=0; for(i=1000;i
j++;
}
cout
return 0;
}
运行结果(贴图):
问答题:表述“n能被5整除”的条件表达式唯一吗?试写出2种以上。
第一种:
第二种:
2.自测练习二
编写一个程序,求s=1+(1+2)+(1+2+3)+„+(1+2+3+„+n)的值。
源代码:
#include
using namespace std;
int main()
{
int n,m,s,i;
cout
cin>>n;
m=0;
s=0;
for(i=1;i
{m=m+i;
s=s+m;}
cout
return 0;
}
运行结果(贴图):
3.自测练习三
编写一个程序,求s=4!+6!+8!。
源代码:
#include
using namespace std;
int main()
{
int m,s,p,q;
q=0;
for(m=4;m
{
for(s=1,p=m;p>=1;p--)
s=s*p;
q=q+s;
}
cout
return 0;
}
运行结果(贴图):
4.自测练习四
编写一个程序,求出1~1000之间的所有完全数。所谓完全数是指:该数的各因子之和正好等于该数本身,如6=1+2+3。
源代码:
#include
using namespace std;
int main()
{
int m,n,i;
for(n=6;n
{
for(m=0,i=1;i
{
if(n%i==0)
m=m+i;
}
if(m==n)
cout
}
return 0;
}
运行结果(贴图):
5.自测练习五(作业题验证)
计算π的近似值,π的计算公式为:
224262(2n)2
π=2⨯⨯⨯⨯ ⨯⨯1⨯33⨯55⨯7(2n-1)⨯(2n+1)
要求:精度为10-5,并输出n的大小
源代码:
#include
#include
using namespace std;
int main()
{
float n,m,s,p,t;
m=2.0;
n=0.0;
p=1.0;
do
{
n=n+1;
s=p;
p=(n*2)*(n*2)/(2*n-1)/(2*n+1);
t=m;
m=m*p;
}
while((m-t)>0.00001);
cout
cout
return 0;
}
运行结果(贴图):
6.自测练习六(课堂测验验证)
用do while循环输出两个数的最大公约数和最小公倍数
代码:
#include
#include
using namespace std;
int main()
{
int x,y;
int m,n,r,g;
cout
cin>>x>>y;
m=abs(x);
n=abs(y);
if(m
{
r=m;
m=n;
n=r;
}
do
{
r=m%n;
m=n;
n=r;
}
while(r!=0);
cout
g=abs(x)*abs(y)/m;
cout
return 0;
}
运行结果(贴图)