大一上期C语言实验报告5 循环控制语句

更新时间:2024-03-11 17:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

程序设计基础实验报告

实验5

成都工业学院·计算机工程学院 《程序设计基础》实验报告

实验名称 学院 姓名 任课老师 实验5 循环控制语句 计算机工程学院 专业班级 学号 实验时间 计算机科学与技术1班 90分钟 1. 实验目的

(1) 熟练掌握while语句、do?while语句和for语句格式及使用方法,

掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用三种循环语句实现循环结构;

(2) 掌握简单、常用的算法,并在编程过程中体验各种算法的编程技

巧;

(3) 进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

2. 实验内容

(1)输出两个整数m和n,求它们的最大公约数和最小公倍数。 要求:

①画出算法流程图,从键盘输入m和n; ②对负数和零可不做考虑;

③运行程序,对m>n、m

(2)输出1000以内最大的10个素数以及它们的和。 要求:

① 由于偶数不是素数,可以不对偶数处理; ② 画出算法流程图;

③ 输出形式为:素数1+素数2+素数3+...+素数10=总和值。

??21111

(3)根据公式=2+2+2+?+2,求出π的值

6123??

要求:

① 画出算法流程图

② 以变量pi表示?,并将其定义为单精度类型,变量n定义为整形 ③ 计算当n的取值分别为20、50、100、200时的?的值 ④ 输出?值以及总的项数n,输出格式为“n=值,pi=值” (4)输入一串字符(以回车键结束),统计其中数字、大写字母、小写字母以及其他字符的个数。 要求:

① 画出算法流程图,通过键盘输入字符串; ② 在输出字符串之前给出相应提示;

1

程序设计基础实验报告

实验5

③ 按照数字、大写字母、小写字母及其他字符数的顺序输出结果

3. 流程图

4. 源程序

(1)求最大公约数和最小 公倍数 #include void main() {int m,n,a,b,d,i=2; printf(\two number:\ scanf(\ a=(m>n)?m:n; b=(m>n)?n:m; d=a; while((a%b)!=0) {a=d*i; i++;} printf(\ (2)求1000内最大的10个素数之和 #include void main() {int n,r,i,k=0,a[10],sum=0; for(n=997;n>0;n-=2) {for(i=2;i<=n-1;i++) {r=n%i; if(r==0) break;} if(i>=n) {a[k]=i;sum=sum+a[k];k++; if (k==10)break; continue;} else continue;} printf(\素数%d+素数%d+素数%d+素数%d+素数%d+素数%d+素数%d+素数%d+素数%d+素数%d+=%d\\n\8],a[9],sum);} 2

程序设计基础实验报告

实验5

π值 (3)计算 #include #include void main() {int n,i;float pi=0; scanf(\i=n; do{pi+=1/pow(n,2);n--;} while(n!=0); pi=sqrt(6*pi); printf(\(4)统计字符串中各种类型数据的个数 #include void main() {char ch[200];int i,a=0,b=0,c=0,d=0; gets(ch); for(i=0;ch[i]!='\\0';i++) {if(ch[i]>='0'&&ch[i]<='9')a++; else if(ch[i]>='A'&&ch[i]<='Z')b++; else if(ch[i]>='a'&&ch[i]<='z')c++; else d++;} printf(\5. 运行结果

(1)求最大公约数和最小公倍数

(2)求1000内最大的10个素数之和

(3)计算π值

3

程序设计基础实验报告

实验5

(4)统计字符串中各种类型数据的个数

6. 出现问题及解决办法

(1) 求最大公约数和最小公倍数时,为定义变量d,直接写成

while((a%b)!=0){a=a*i; i++;}运算结果出错,原因是a的值一直在变化,后来就增加变量d,写成while((a%b)!=0){a=d*i;i++;},运算就正确了。

(2)求1000内最大的10个素数之和时,sum未赋初值,照成sum=sum+a[k]

语句错误,后来将0赋值给sum;判断语句的最后写成elsebreak,造成循环语句提前结束,后经过查阅,了解break和continue语句的用法,将elsebreak修改成elsecontinue

(3)编写统计字符串中各种类型数据的个数的程序时将for(i=0;ch[i]

!='\\0';i++)中的’\\0’写成’\\n’,导致运算错误。解决方法:先查阅得知字符串是以’\\0’,表示字符串的结束,’\\n’是换行符,转义序列的一种

7. 实验心得

通过编写不同的程序,以及自己的调试,掌握了for,while,do?while三种循环控制语句的基本使用方法,以及循环结构的嵌套使用,学会了语法错误和逻辑错误的检查方法。还了解了break,continue语句的用法,如何使用gets函数输入字符串。

4

本文来源:https://www.bwwdw.com/article/o908.html

Top