《c语言2循环体.pdf》由会员分享,可在线阅读,更多相关《c语言2循环体.pdf(14页珍藏版)》请在金锄头文库上搜索。
1、第 1 页 广 州 大 学 实验报告 学院商学院 专业 班级 姓名 学号 课程名称c 语言程序设计 项目名称循环结构程序设计 实验时间 2012 年3 月30 日 第 2 页 学院商学院 年级 专 业 班 姓名成绩 课程 名称 C 语言程序 设计 实验项目 名称 循环结构程序设 计 指导教师 签名 一 实验目的 1 学习循环语句 for while 和 do while语句的使用方法 2 学习用循环语句实现各种算法 例如穷举法 迭代法等 3 进一步熟悉 C语言集成环境的使用方法 二 实验原理 算法分析 包括流程图 本实验的内容为 1 用 while 循环实现数据统计问题 从键盘输入一批任意数量
2、的整数 统 计其中不大于 100 的非负数数值的个数 实现上述功能的算法如下 实验2循环结构程序设计实验报告 开课实验室 2 0 1 2 年3 月3 0 日 第 3 页 线 装 订 开始 i 0 输出 输入 一个整数 字样 输入 m的值 m0 i c n 输出 符合要求 的整数个数 为 i 的值 结束 输入 c的值 No Yes Yes No 第 4 页 2 编写并调试程序 使用do while 循环控制语句实现上面的数据统 计问题 调试数据仍参照上面给出的几种情况设计使用 开始 结束 i 0 输出 输入任意 整数 字样 输入 a的值 输入一 个字符 a 100 a 0 i i 1 c n 输
3、出 符合要求 的整数个数 为 i的值 Yes No Yes No Yes No 第 5 页 3 编写并调试程序 使用for 循环控制语句实现上面的数据统计问题 开始 结束 i 0 输出 输入任意 整数 字样 输入 a的值 输入一 个字符 a0 i i 1 c n 输出 符合要求 的整数个数 为 i的值 yes No Yes No 装 订 线 第 6 页 4 阶乘累加问题 编写程序 求1 2 3 n 的值 第 7 页 三 实验过程原始记录 数据 图表 计算等 用 while 循环实现数据统计问题 从键盘输入一批任意数量的整数 统计其中不 大于 100 的非负数数值的个数 由于输入数据个数是不确定
4、的 因此每次执行程序时 循环次数都是不确定的 在进行程序设计时 确定循环控制的方法是本实验的一个关键问题 循环控制条件 可以有多种确定方法 1 使用一个负数作为数据输入结束标志 2 输入一个数据后通过进行询问的方式决定是否继续输入下一个数据 线 订 装 第 8 页 人工分析 include stdafx h int main int argc char argv int a b 整型 float d e 浮点型 char c1 c2 字符型 double f g 双精度浮点型 long m n 长整型 unsigned int p q 无符号整型 a 61 b 62 d 5 67 e 6 78
5、 c1 a c2 b c1 97 c2 98 f 1234 56789 g 0 123456789 m 50000 n 60000 p 32768 q 40000 printf a d b d nc1 c c2 c n a b c1 c2 输出 a 61 b 62 c1 a c2 b printf d f e f n d e 输出具 6 位小数的实数d 5 670000 e 6 780000 printf f f g f n f g 输出具 6 位小数的实数f 1234 567890 g 0 1234567 printf m ld n ld np u q u n m n p q 输出 m 50
6、000 n 60000 p 32768 q 40000 return 0 第 9 页 装 订 线 针对以上程序进行的研究分析 1 将程序中的第二 第三个printf语句修改为如下形式 然后运行程序 察看结果 printf d 6 2f e 6 2f n d e printf f 15 6f g 15 10f n f g 2 将上述两个printf语句进一步修改为如下形式 然后运行程序 察看结果 printf d 6 2f te 6 2f n d e printf f 15 6f tg 15 10f n f g 3 将程序的第10 15 行修改为如下语句 a 61 b 62 c1 a c2 b
7、f 1234 56789 g 0 123456789 d f e g p a m 50000 q b n 60000 运行程序 并分析结果 第 10 页 分析 int a b float d e char c1 c2 double f g long m n unsigned int p q a 61 b 62 a 61 b 62 c1 a c2 b c1 97 b 98 f 1234 56789 g 0 123456789 f 1234 56789 g 0 123456789 d f e g d 1234 56789 e 0 123456789 p a m 50000 q b n 60000
8、p a m 50000 q b n 60000 printf a d b d nc1 c c2 c n a b c1 c2 输出整数a 61 b 62 字符 c1 a c2 b printf d f e f n d e 输出具 6 位有效数字的实数 d 1234 560000 e 0 123457 printf f f g f n f g 输出具 6 位小数的实数f 1234 567890 g 0 123457 printf m ld n ld np u q u n m n p q 输出 m 50000 n 60000 p 50000 q 1 修改 1 中的程序 不使用赋值语句 而用下面的sc
9、anf 语句为 a b c1 c2 d e 输入数据 scanf d d c c f f 请按照程序原来中的数据 选用正确的数据输入格式 为上述变量提供数据 使用如下数据输入格式 为什么得不到正确的结果 输入数据 61 62 a b 5 67 6 78 第 11 页 装 订 线 输入数据 1 2a3 4 5 输入数据 61 62 a b 5 67 6 78 正确输入应该为 61 62ab 5 67 6 78 分析 scanf d d c c f f printf a d b d nc1 c c2 c n a b c1 c2 c1 c2 都是以字符型输入和输出的 而空格的ASC 代码是 32 如
10、果在输入 62 后再 加空格键 输出的c1 应该是空格 电脑继续往下读空格键后是a 所以 c2 应该等于 a 同理 d 读进的是空格 e 读进的是 b 4 进一步修改 中使用的程序 使f 和 g 的值用 scanf 函数输入 第 12 页 scanf d d c c f f scanf lf lf m 50000 n 60000 p 32768 q 40000 2 进一步修改上面的程序 使其他所有变量的值都改用scanf 函数输入 scanf d d c c f f scanf lf lf scanf ld ld u u 3 修改 5 中的程序 使c1 c2 的数据用getchar 函数输入
11、用putchar 函数输 出 4 可按照如下方法修改程序 将程序中的 scanf d d c c f f 语句用以下四个语句 替换 scanf d d c1 getchar c2 getchar scanf f f 使用与 5 相同的数据输入格式输入数据 请分析 使用如下格式为a b c1 c2 输入数据时会出现什么结果 运行程序 验证所分析的结论 输入数据格式 61 62 a b 第 13 页 Input a b c1 c2 d 61 62ab5 67 6 78 Input f g 1234 567890 0 1234567890 Input m n p q 50000 60000 3267
12、8 40000 输入数据格式 61 62 a b 分析结果 a 61 b 62 c1 a c2 空格 运行结果 装 订 线 第 14 页 五 附录 自己实现的源代码 1 include stdafx h int main int argc char argv int A B C A 1 B 2 C B B A A C printf A d B d n A B return 0 2 include stdafx h int main int argc char argv char a scanf c printf a d n a a 是所输入数的ASC 代码 return 0 六 联系方式 e mail