实验2循环结构程序设计解析.docx
- 文档编号:3791420
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:10
- 大小:18KB
实验2循环结构程序设计解析.docx
《实验2循环结构程序设计解析.docx》由会员分享,可在线阅读,更多相关《实验2循环结构程序设计解析.docx(10页珍藏版)》请在冰豆网上搜索。
实验2循环结构程序设计解析
实验2循环结构程序设计
一、实验目的
1.学习循环语句for、while和do-while语句的使用方法。
2.学习用循环语句实现各种算法,例如穷举法、迭代法等。
3.进一步熟悉C语言集成环境的使用方法
二、实验内容
1.用while循环实现数据统计问题。
:
从键盘输入一批任意数量的整数,统计其中不大于100的非负数数值的个数。
2.编写并调试程序,使用do-while循环控制语句实现上面的数据统计问题。
调试数据仍参照上面给出的几种情况设计使用。
3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题。
4.阶乘累加问题。
编写程序,求1+2!
+3!
+...+n啲值。
三、实验指导
1.用while循环实现数据统计问题。
■编程分析
由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不确定的。
在进行程序设计时,确定循环控制的方法是本实验的一个关键问题。
循环控制条件可以有多种确定方法:
(1)•使用一个负数作为数据输入结束标志。
(2)•输入一个数据后通过进行询问的方式决定是否继续输入下一个数
据。
■参考程序
参考程序一
/*使用负数作为数据输入结束标志的程序V
#includeHstdio.hH
voidmain()
{
intm,countei-0;
while(l)
{
printf(H请输入一个整数:
”);
scanf(”%d”,&m);
if(m<0)
break;
if(m<=100)
counter++;
printf("\nH);
}
printf("符合要求的整数个数为:
%d\n”,counter);
}
参考程序二
/*通过进行询问的方式决定是否继续输入下一个数据的程序*/
#include
intmain()
intm,counter=0;
charask;
while(l)
printf(H请输入一个整数:
M);
scanf("%d",&m);
getchar();
if(m>=0&&m<=100)
counter++;
printf(“继续输入下一个数据?
(Y/N)”);
ask=getchar();
getchar();
if(ask!
=y&&ask!
二Y)
break;
printfC'Xn");
)
printf("符合要求的整数个数为:
%d\n",counter);
}
■程序调试
这里只对”参考程序一”的调试数据进行设计。
该程序输入数据时,应考虑多种数据组合,对每一组数据察看并分析结果。
例如:
(1)•输入的一组数据之间全部以空格分隔,只有最后一个数为负数,以
回车键结束。
如:
16357-10
(2)•输入的一组数据之间全部以空格分隔,在负数之后又有正数数据,最后一个数不为负数,以回车键结束。
如:
16357-109617
⑶•输入的一组数据之间全部以空格分隔,输入数据中有多个负数,以回车键结束。
如:
16357-109617-877
⑷•输入的数据中有大于100的整数。
如:
16357-1096117-8726766
(5).数据之间既用空格分隔,也用回车键分隔。
如:
763537622717
9667
9617-8771966982-1631
(6)•每输入一个数据后均按回车键。
(7)・输入的第一个数据即为负数。
(8)•在输入的数据中使用数值很大的整数。
如:
17667789876517899-10987
■在上面的"参考程序一”中,使用了常数T作为循环控制的条件,这是常用的循环控制方式。
请修改上面的程序,不使用常数循环条件,仍然使用while语句实现数据统计问题。
2.编写并调试程序”使用do-while循环控制语句实现数据统计问题。
■参考程序
/*使用负数作为数据输入结束标志的程序V
#include
intm,counter二0;
do
{
printf("请输入一个整数:
");
scanf("%d"f&m);
if(m<0)
break;
if(m<=100)
counter++;
printf(-\n");
}while(l);
printf("符合要求的整数个数为:
%d\n",counter);
return0;
}
■调试指导
调试数据仍参照上面给出的几种情况设计使用。
3.编写并调试程序”使用for循环控制语句实现上面的数据统计问题。
■参考程序
/*用for循环控制语句实现的数据统计问题程序V
#include
intmain()
intm,counter;
for(counter=0;l;)
printf(n请输入一个整数:
J;
scanf(u%d",&m);
if(m<0)
break;
if(m<=100)
counter++;
printf("\n");
}
printf("符合要求的整数个数为:
%d\n",counter);
return0;
}
注意:
for循环控制语句的一般格式通常有三个表达式,本参考程序中使用的
for循环控制语句在格式上只有两个表达式。
请读者注意学习这种用法。
■请修改程序,使用完整格式的for循环控制语句实现上面的数据统计问
题。
4.阶乘累加问题。
■编程分析
(1)・本实验内容是求解阶乘问题。
(2)•求n!
用一个循环即可实现。
⑶•求1+2!
+3!
+・・・+n!
的值,需要在求n!
程序之外增加一个夕卜重循
环。
■参考程序
/*求1+2!
+3!
+…+n!
程序*/
#include
intmain()
{
longints=l,t;
int
printf("n=");
scanf("%d”,&n);
for(i=2;i<=n;i++)
{
for(t=l,j=l;j<=i;j++)
t*=j;
printf(Hs=%ld\n'\s);
return0;
}
■程序调试
(1)•输入一个不大的正整数,分析程序执行结果。
(2)・输入一个零或者负数,分析程序执行结果。
(3)•输入一个很大的正整数,分析程序执行结果。
(4)•当程序结果不符合要求时,修改程序,直到对彳刊可输入数据都能输
正确的执行结果,或者给出一个明确的提示信息。
例如,当输入数据非法时,给出一个恰当的提示信息。
四、预习题(选择题)
1、下面程序段intk=2;
while(k=0){printf(w%d,\k);k—;}
则下面描述中正确的是
A.while循环执行10次
B.循环是无限循环
C.循环题语句一次也不执行
D.循环体语句执行一次
2、以下程序段的循环次数是
for(i=2;i==0;)printf(H%dH,i-);
A.无限次
B.0次
C.1次
D.2次
3、下面程序的输出结果是
甘include"stdafx・h〃
int_tmain(intargc,_TCHAR*argvl])
charc='A';intk=0;
do{
switch
(C++)
{
case
'A':
k++;break;
case
•B*:
k—;
case
'C':
k+=2;break;
case
•D*:
k%=2;continue
case
'E':
k*=10;break;
default:
k/=3;
k++;
}while(c
G');
printf
return
(〃k=%dSk);
0;
A.
k二3
B.
k=4
C.
k二2
D.
k二0
4、下面程序的输出结果是int_tmain(intargc,_TCHAR*argv[]){
intx=9;
for(;x>0;x--){if(x%3=0){printf(d”,--x);
continue;
}
}
return0;
}
A.741
B.852
C.963
D.875421
5、下述程序段的运行结果是int_tmain(intargc,_TCHAR*argvU){
intd二l,b二2,c=3,t;
while(a
t=a;
a二b;
b=t;
c——;
}
printfC%d,%d,%d",a,b,c);
return0;
}
A.1,2,0
B.2,1,0
C.1,2,1
D.乙1,1
6、下面程序的功能是从键盘输入一组字符z从中统计大写字母和小写字母的个
数,选择填空。
main()
{intm=0zn=0;
charc;
while((【】)!
W)
{
if(c>='A*&&c<='Z')m++;
if(c>=a'&&c<='z')n++;
}
}
A.c=getchar()
B.getchar()
C.c==getchar()
D.scanf(“%c",&c)
7、下述语句执行后z变量k的值是_
intk=l;
while(k++<10);
A.10
B.11
C.9
D.无限循环,值不定
8、下面程序的输出结果是
int_tmain(intargc,_TCHAR*argvU){
intk二0,m=0,i,j;
for(i二0;i<2;i++){
for(j=0;j<3;j++)k++;
k-=j;
}
m二i+j;
printfCk=%d,nF%d",k,m);
return0;
}
A.k=0,m=3
B.k=0,m=5
C.k=l,m=3
b.二5
9、下面for循环语句
inti,k;
for(i=0,k=-l;k=l;i++,k++)
printfC'***0);
A.判断循环结束的条件非法
B.是无限循环
C.只循环一次
D.—次也不循环
10、执行语句for(i=l;i++<4;);后变量i的值是
A.3
B.4
C.5
D.不定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 循环 结构 程序设计 解析