实验四循环结构程序设计
时间:2025-07-14
时间:2025-07-14
单片机
实验四 循环结构程序设计
一、实验目的
1、熟练掌握 for 语句、while 语句、do-while语句实现循环的方法;
2、理解循环嵌套及其使用方法;
3、掌握 break语句与 continue语句的使用;
4、掌握用循环实现一些常用算法。
二、实验预习
1、认真阅读本章教材中循环控制部分。
2、编写好所需要的程序。
三、实验指导
1、输入一组正整数,统计其中奇数偶数个数,直到遇到-1为止。
(1)算法分析:可设一整型变量 x,循环的输入整数的值,若x%2==0即为偶数,否则是奇数。
提示:循环条件可在 while 语句后的括号中出现,也可以用 break语句控制。
(2)根据分析结果写出源程序。
程序一:
#include<stdio.h>
main( )
{
int x,xo=0,xj=0 ;/* 将偶数个数 xo与奇数个数 xj赋 0值 */
scanf("%d",&x);/* 先输入一个正整数 */
/* 输入不是-1时循环 */
while(x!=-1)
{
if(x%2==0)xo=xo+1 ;
else xj=xj+1 ;
scanf("%d",&x);
}/* 循环输入其余正整数 */
printf("xo:%d,xj:%d",xo,xj);
}
程序二:
#include<stdio.h>
main( )
{
int x,xo=0,xj=0 ;
/* 在循环内部用 break 语句控制循环条件 */
单片机
while(1)
{
scanf("%d",&x);
if(x==-1)break ;
if(x%2==0)xo=xo+1 ;
else xj=xj+1 ;
}
printf("xo:%d,xj:%d",xo,xj);
}
(3)在 c编辑环境下编辑源程序。
(4)编译,直到没有错误。
(5)运行,输入:
13 16 7 23 68 99 86 10
(6)查看结果,输出:
xo:3,xj:4
2、打印如下图案
*
***
*****
*******
(1)算法分析:从图案中找出行数,空格数,星号数间的关系如下:
行数 空格数 星号数
1 3 1
2 2 3
3 1 5
4 0 7
I 4-i 2*i-1
可用双重循环控制整个图案的输出。若用循环变量 i,j 分别控制外层,内层循环,则i 的取值从1 到4,表示行数,在每行中要确定前面空格个数和星号个数,空格个数是 4-i,星号个数是 2*i-1。
(2)根据分析结果写出源程序
#include <stdio.h>
main( )
{
int i,j ;/*定义循环控制变量 */
for(i=1;i<=4;i++)
单片机
{
for(j=1;j<=4-i;j++)
printf(" ");
/* 输出 4-i个空格 */
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}
(3)在 C编辑环境下编辑源程序。
(4)编译,直到没有错误。
(5)运行。因不需输入,故此程序运行时仅是屏幕闪一下就又回到编辑环境了。
(6)查看结果。输出题目要求的图案。
四、实验内容
1、在C 编辑环境下编辑实验指导中给出的程序,编译并运行。
2、独立完成如下题目:
(1)一球从 100 米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第 10次落地时,共经过多少米?第 10 次反弹多高?
(2)设定如下实验题目:打印下面的图案
*****
****
***
**
*
根据以上题目要求编程并上机调试运行。
五、实验报告要求
实验结束后,应整理实验报告,其内容应包括:
1、实验目的、题目
2、每个实验题目的设计思路
3、写出程序源代码
4、写出程序运行结果
5、对实验结果进行分析、总结
单片机
(1)
#include "stdio.h"
main()
{
int i;
double t,s;
for(i=1,s=100,t=100;i<10;i++) {
t=t/2.0;
s=s+2*t;
}
t=t/2.0;
printf("s=%f,t=%f",s,t); }
(2)
main( )
{
int i,j ;/*定义循环控制变量 */ for(i=1;i<=5;i++)
{
for(j=1;j<i;j++)
printf(" ");
/* 输出i-1个空格 */ for(j=1;j<=6-i;j++)
printf("*");
printf("\n");
}
}
下一篇:城市住宅区规划原理试题集锦