实验2循环结构程序设计.docx

上传人:b****7 文档编号:25692988 上传时间:2023-06-11 格式:DOCX 页数:12 大小:17.39KB
下载 相关 举报
实验2循环结构程序设计.docx_第1页
第1页 / 共12页
实验2循环结构程序设计.docx_第2页
第2页 / 共12页
实验2循环结构程序设计.docx_第3页
第3页 / 共12页
实验2循环结构程序设计.docx_第4页
第4页 / 共12页
实验2循环结构程序设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

实验2循环结构程序设计.docx

《实验2循环结构程序设计.docx》由会员分享,可在线阅读,更多相关《实验2循环结构程序设计.docx(12页珍藏版)》请在冰豆网上搜索。

实验2循环结构程序设计.docx

实验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).输入一个数据后通过进行询问的方式决定是否继续输入下一个数据。

⏹参考程序

参考程序一

/*使用负数作为数据输入结束标志的程序*/

#include"stdio.h"

voidmain()

{

intm,counter=0;

while

(1)

{

printf("请输入一个整数:

");

scanf("%d",&m);

if(m<0)

break;

if(m<=100)

counter++;

printf("\n");

}

printf("符合要求的整数个数为:

%d\n",counter);

}

参考程序二

/*通过进行询问的方式决定是否继续输入下一个数据的程序*/

#include

intmain()

{

intm,counter=0;

charask;

while

(1)

{

printf("请输入一个整数:

");

scanf("%d",&m);

getchar();

if(m>=0&&m<=100)

counter++;

printf("继续输入下一个数据?

(Y/N)");

ask=getchar();

getchar();

if(ask!

='y'&&ask!

='Y')

break;

printf("\n");

}

printf("符合要求的整数个数为:

%d\n",counter);

}

⏹程序调试

这里只对“参考程序一”的调试数据进行设计。

该程序输入数据时,应考虑多种数据组合,对每一组数据察看并分析结果。

例如:

(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循环控制语句实现数据统计问题。

⏹参考程序

/*使用负数作为数据输入结束标志的程序*/

#include

intmain()

{

intm,counter=0;

do

{

printf("请输入一个整数:

");

scanf("%d",&m);

if(m<0)

break;

if(m<=100)

counter++;

printf("\n");

}while

(1);

printf("符合要求的整数个数为:

%d\n",counter);

return0;

}

⏹调试指导

调试数据仍参照上面给出的几种情况设计使用。

3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题。

⏹参考程序

/*用for循环控制语句实现的数据统计问题程序*/

#include

intmain()

{

intm,counter;

for(counter=0;1;)

{

printf("请输入一个整数:

");

scanf("%d",&m);

if(m<0)

break;

if(m<=100)

counter++;

printf("\n");

}

printf("符合要求的整数个数为:

%d\n",counter);

return0;

}

注意:

for循环控制语句的一般格式通常有三个表达式,本参考程序中使用的

for循环控制语句在格式上只有两个表达式。

请读者注意学习这种用法。

⏹请修改程序,使用完整格式的for循环控制语句实现上面的数据统计问题。

4.阶乘累加问题。

⏹编程分析

(11).本实验内容是求解阶乘问题。

(12).求n!

用一个循环即可实现。

(13).求1+2!

+3!

+…+n!

的值,需要在求n!

程序之外增加一个外重循环。

⏹参考程序

/*求1+2!

+3!

+…+n!

程序*/

#include

intmain()

{

longints=1,t;

inti,j,n;

printf("n=");

scanf("%d",&n);

for(i=2;i<=n;i++)

{

for(t=1,j=1;j<=i;j++)

t*=j;

s+=t;

}

printf("s=%ld\n",s);

return0;

}

⏹程序调试

(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、下面程序的输出结果是

#include"stdafx.h"

int_tmain(intargc,_TCHAR*argv[])

{

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("k=%d",k);

return0;

}

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*argv[]){

inta=1,b=2,c=3,t;

while(a

t=a;

a=b;

b=t;

c--;

}

printf("%d,%d,%d",a,b,c);

return0;

}

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++;

       if(c>=’a’&&c<=’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、下面程序的输出结果是

 

int_tmain(intargc,_TCHAR*argv[])

{

intk=0,m=0,i,j;

for(i=0;i<2;i++){

for(j=0;j<3;j++)

k++;

k-=j;

}

m=i+j;

printf("k=%d,m=%d",k,m);

return0;

}

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.不定

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1