试验循环结构程序设计课案_第1页
试验循环结构程序设计课案_第2页
试验循环结构程序设计课案_第3页
试验循环结构程序设计课案_第4页
试验循环结构程序设计课案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验 2 循环结构程序设计实验目的1. 学习循环语句 for 、while 和 do-while 语句的使用方法。2. 学习用循环语句实现各种算法,例如穷举法、迭代法等。3. 进一步熟悉 C 语言集成环境的使用方法实验内容1. 用 while 循环实现数据统计问题。 :从键盘输入一批任意数量的整数,统 计其中不大于 100 的非负数数值的个数。2. 编写并调试程序,使用 do-while 循环控制语句实现上面的数据统计问题。 调试数据仍参照上面给出的几种情况设计使用。3. 编写并调试程序,使用 for 循环控制语句实现上面的数据统计问题。4.阶乘累加冋题。编写程序,求1+2 ! +3! +n!

2、的值。三、 实验指导1.用while循环实现数据统计问题。编程分析由于输入数据个数是不确定的, 因此每次执行程序时, 循环次数都是不确定 的。在进行程序设计时, 确定循环控制的方法是本实验的一个关键问题。 循环控 制条件可以有多种确定方法:(1) . 使用一个负数作为数据输入结束标志。(2) . 输入一个数据后通过进行询问的方式决定是否继续输入下一个数据。参考程序/* 使用负数作为数据输入结束标志的程序 */#include "stdio.h"void main()int m,counter=0;while(1)printf(" 请输入一个整数: ");

3、scanf("%d",&m);if(m<0)break;if(m<=100)counter+;printf("n");printf("符合要求的整数个数为:dn",counter);参考程序二/* 通过进行询问的方式决定是否继续输入下一个数据的程序 */#include <stdio.h>int main()int m,counter=0;char ask;while(1)printf(" 请输入一个整数: ");scanf("%d",&m);getcha

4、r();if(m>=0&&m<=100)counter+;printf(" 继续输入下一个数据? (Y/N)");ask=getchar();getchar();if(ask!='y'&&ask!='Y')break;printf("n");printf("符合要求的整数个数为:dn",counter);程序调试这里只对“参考程序一”的调试数据进行设计。该程序输入数据时,应考虑多 种数据组合,对每一组数据察看并分析结果。例如:(1) . 输入的一组数据之间全部

5、以空格分隔,只有最后一个数为负数,以回车键结束。如:16 35 7 -10(2) . 输入的一组数据之间全部以空格分隔,在负数之后又有正数数据,最后一个数不为负数,以回车键结束。如:16 35 7 -10 96 17(3) . 输入的一组数据之间全部以空格分隔,输入数据中有多个负数,以回车键结束。如:16 35 7 -10 96 17 -87 7(4). 输入的数据中有大于 100 的整数。如:16 35 7 -10 96 117 -87 267 66(5) . 数据之间既用空格分隔,也用回车键分隔。如:76 35 376 22 71796 6796 17 -87 719 66 98 2 -1

6、6 31(6) . 每输入一个数据后均按回车键。(7) . 输入的第一个数据即为负数。(8) . 在输入的数据中使用数值很大的整数。如:17 66778 98765 17 899 -109 87在上面的“参考程序一”中,使用了常数“1 ”作为循环控制的条件,这是常 用的循环控制方式。请修改上面的程序,不使用常数循环条件,仍然使 用 while 语句实现数据统计问题。2. 编写并调试程序,使用 do-while 循环控制语句实现数据统计问题。参考程序/* 使用负数作为数据输入结束标志的程序 */#include <stdio.h>int main()int m,counter=0;d

7、oprintf(" 请输入一个整数: "); scanf("%d",&m);if(m<0)break;if(m<=100)counter+;printf("n");while(1);printf("符合要求的整数个数为:dn",counter);return 0;调试指导调试数据仍参照上面给出的几种情况设计使用。3. 编写并调试程序,使用 for 循环控制语句实现上面的数据统计问题。 参考程序/* 用 for 循环控制语句实现的数据统计问题程序 */#include<stdio.h>

8、int main()int m,counter;for(counter=0;1;)printf(" 请输入一个整数: ");scanf("%d",&m);if(m<0)break;if(m<=100)counter+;printf("n");printf("符合要求的整数个数为:dn",counter);return 0;、I 、+ :注意:for 循环控制语句的一般格式通常有三个表达式,本参考程序中使用的for 循环控制语句在格式上只有两个表达式。请读者注意学习这种用法。 请修改程序,使用完整

9、格式的 for 循环控制语句实现上面的数据统计问 题。4. 阶乘累加问题。编程分析(1). 本实验内容是求解阶乘问题(2).求n!用一个循环即可实现。(3).求1+2 ! +3! +n!的值,需要在求n!程序之外增加一个外重循环。参考程序/* 求 1+2!+3!+n!程序 */#include <stdio.h>int main()long int s=1,t;int i,j,n;printf("n=");scanf("%d",&n);for(i=2;i<=n;i+)for(t=1,j=1;j<=i;j+)t*=j;s+=

10、t;printf("s=%ldn",s);return 0;程序调试(1) . 输入一个不大的正整数,分析程序执行结果。(2) . 输入一个零或者负数,分析程序执行结果。(3) . 输入一个很大的正整数,分析程序执行结果。(4) . 当程序结果不符合要求时,修改程序,直到对任何输入数据都能输出正确的执行结果,或者给出一个明确的提示信息。例如,当输入数据非法时,给出一个恰当的提示信息。四、预习题(选择题)1下面程序段int k=2;while (k=0) printf(-“ d” ,k);k则下面描述中正确的是A. while循环执行10次B. 循环是无限循环C. 循环题语句

11、一次也不执行D. 循环体语句执行一次2、以下程序段的循环次数是 for (i=2; i=0; ) printf( “ d”;,A. 无限次B. 0次C. 1次D. 2次3、下面程序的输出结果是 #i nclude "stdafx.h"int _tmain( int argc, _TCHAR* argv)char c= 'A'int k=0;do A.B.C.D.k=3k=4k=2k=0switch(c+) case'A':k+ ;break ;caseB:k-;caseC:k+=2 ;break ;case'D':k%=2 ;

12、con ti nuecase'E':k*=10 ;break ;default :k/=3 ;k+;while (c<'G')Jprintf ("k=%d",k);return 0;F面程序的输出结果是 int _tmain( int argc, _TCHAR* argv) 一 一int x=9;for (; x>0; x-) if (x%3=0) printf(“ %d ,-x);continue ;return 0;A.741B.852C.963D.8754215、下述程序段的运行结果是 int _tmain( int arg

13、c, _TCHAR* argv) int a=1,b=2, c=3, t;while (a<b<c) t=a;a=b;b=t;c-;printf( "%d,%d,%d:a,b,c); return 0;A. 1,2,0B. 2,1,0C. 1,2,1D. 2,1,16、下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个 数,选择填空。mai n () int m=0,n=0;char c;while (【】)! n ')if (c>='A'&& c<='Z') m+;if (c>=&

14、#39;a'&& c<='z ') n+;A. c=getchar()B. getchar()C. c=getchar()D. scanf(“ %c” ,&c)7、下述语句执行后,变量k的值是 int k=1;while (k+<10);A. 10B. 11C. 9D. 无限循环,值不定8、下面程序的输出结果是 int _tmain( int argc, _TCHAR* argv) 一 一int k=0,m=0,i,j;for (i=0; i<2; i+) for (j=0; j<3; j+) k+ ;k-=j ;m = i+j ;printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论