实验2循环结构程序设计课案Word文档格式.docx
《实验2循环结构程序设计课案Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验2循环结构程序设计课案Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
stdio.h"
voidmain()
{
intm,counter=0;
while
(1)
{
printf("
请输入一个整数:
"
);
scanf("
%d"
&
m);
if(m<
0)
break;
=100)
counter++;
\n"
}
printf("
符合要求的整数个数为:
%d\n"
counter);
}
参考程序二
/*通过进行询问的方式决定是否继续输入下一个数据的程序*/
#include<
stdio.h>
intmain()
charask;
getchar();
if(m>
=0&
&
m<
继续输入下一个数据?
(Y/N)"
ask=getchar();
if(ask!
='
y'
ask!
Y'
)
}
⏹程序调试
这里只对“参考程序一”的调试数据进行设计。
该程序输入数据时,应考虑多种数据组合,对每一组数据察看并分析结果。
例如:
(3).输入的一组数据之间全部以空格分隔,只有最后一个数为负数,以回车键结束。
如:
16357–-10
(4).输入的一组数据之间全部以空格分隔,在负数之后又有正数数据,最后一个数不为负数,以回车键结束。
16357–-109617
(5).输入的一组数据之间全部以空格分隔,输入数据中有多个负数,以回车键结束。
16357–-109617–-877
(6).输入的数据中有大于100的整数。
16357–1096117–8726766
(7).数据之间既用空格分隔,也用回车键分隔。
763537622717
9667
9617–8771966982-1631
(8).每输入一个数据后均按回车键。
(9).输入的第一个数据即为负数。
(10).在输入的数据中使用数值很大的整数。
17667789876517899-10987
⏹在上面的“参考程序一”中,使用了常数“1”作为循环控制的条件,这是常用的循环控制方式。
请修改上面的程序,不使用常数循环条件,仍然使用while语句实现数据统计问题。
2.编写并调试程序,使用do-while循环控制语句实现数据统计问题。
intmain()
do
}while
(1);
return0;
⏹调试指导
/*用for循环控制语句实现的数据统计问题程序*/
#include<
intm,counter;
for(counter=0;
1;
注意:
for循环控制语句的一般格式通常有三个表达式,本参考程序中使用的
for循环控制语句在格式上只有两个表达式。
请读者注意学习这种用法。
⏹请修改程序,使用完整格式的for循环控制语句实现上面的数据统计问题。
(11).本实验内容是求解阶乘问题。
(12).求n!
用一个循环即可实现。
(13).求1+2!
的值,需要在求n!
程序之外增加一个外重循环。
/*求1+2!
+3!
程序*/
longints=1,t;
inti,j,n;
n="
n);
for(i=2;
i<
=n;
i++)
{
for(t=1,j=1;
j<
=i;
j++)
t*=j;
s+=t;
s=%ld\n"
s);
(14).输入一个不大的正整数,分析程序执行结果。
(15).输入一个零或者负数,分析程序执行结果。
(16).输入一个很大的正整数,分析程序执行结果。
(17).当程序结果不符合要求时,修改程序,直到对任何输入数据都能输出
正确的执行结果,或者给出一个明确的提示信息。
例如,当输入数据非法时,给出一个恰当的提示信息。
四、预习题(选择题)
1、下面程序段
intk=2;
while(k=0){printf(“%d”,k);
k--;
则下面描述中正确的是
A.while循环执行10次
B.循环是无限循环
C.循环题语句一次也不执行
D.循环体语句执行一次
2、以下程序段的循环次数是
for(i=2;
i==0;
)printf(“%d”,i--);
A.无限次
B.0次
C.1次
D.2次
3、下面程序的输出结果是
stdafx.h"
int_tmain(intargc,_TCHAR*argv[])
charc='
A'
;
intk=0;
do{
switch(c++){
case'
:
k++;
break;
B'
k--;
C'
k+=2;
D'
k%=2;
continue;
E'
k*=10;
default:
k/=3;
k++;
}while(c<
'
G'
);
printf("
k=%d"
k);
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;
A.741
B.852
C.963
D.875421
5、下述程序段的运行结果是
int_tmain(intargc,_TCHAR*argv[]){
inta=1,b=2,c=3,t;
while(a<
b<
c){
t=a;
a=b;
b=t;
c--;
%d,%d,%d"
a,b,c);
A.1,2,0
B.2,1,0
C.1,2,1
D.2,1,1
6、下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择
填空。
main()
{intm=0,n=0;
charc;
while((【】)!
’\n’)
if(c>
=’A’&
c<
=’Z’)m++;
=’a’&
=’z’)n++;
A.c=getchar()
B.getchar()
C.c==getchar()
D.scanf(“%c”,&
c)
7、下述语句执行后,变量k的值是
intk=1;
while(k++<
10);
A.10
B.11
C.9
D.无限循环,值不定
8、下面程序的输出结果是
intk=0,m=0,i,j;
for(i=0;
i<
2;
i++){
for(j=0;
j<
3;
j++)
k++;
k-=j;
m=i+j;
k=%d,m=%d"
k,m);
A.k=0,m=3
B.k=0,m=5
C.k=1,m=3
D.k=1,m=5
9、下面for循环语句
inti,k;
for(i=0,k=-1;
k=1;
i++,k++)
printf(“***”);
A.判断循环结束的条件非法
B.是无限循环
C.只循环一次
D.一次也不循环
10、执行语句for(i=1;
i++<
4;
后变量i的值是
A.3
B.4
C.5
D.不定