1
实验三 控 制 结 构
一、实验目的
通过实验掌握结构化程序设计的基本思想方法,C语言的基本控制结构和控
制转移语句。
二、实验要求
1.掌握形成控制结构语句的使用方法,熟练运用。
①选择结构语句: if语句,switch语句;
②循环结构语句: for语句,while语句,do-while语句。
2.掌握控制转移语句的正确使用方法,并在编程中能灵活使用,通过编程
掌握在什么情况下使用下列语句。
① 限定转向语句:break语句,continue语句,return语句。
② 无条件转向语句:goto语句。
3.编写实验报告(三)。
三、实验内容
3-1 阅读下面程序(S3-1.C),说明该程序的功能,写出执行过程及结果。
源程序S3-1.C
#include "stdio.h"
main()
{
int day;
printf ("请输入要查询的星期:\n");
scanf ("%d",&day);
if (day==1)
printf("上午:英语,数学,政治,体育 下午:法律\n");
else if (day==2)
printf("上午:物理,计算机,美术 下午:音乐\n");
else if (day==3)
printf("上午:英语,数学,语文 下午:锻炼\n");
else if (day==4)
printf("上午:计算机,物理,形势 下午:班会\n");
else if (day==5)
printf("上午:写作,实习 下午:听力\n");
else if (day==6 ||day==7)
printf("休息\n");
2
else
printf("非法输入\n");
}
3-2 将程序S3-1.C用switch语句改写并实现。
3-3 求水仙花数。如果一个3位数的个位数、十位数和百位数的立方和等于该
数自身,则称该数为水仙花数。编程(S3-3.C)求出所有水仙花数,并写
出输出结果。
3-4 如果程序的执行结果是:
* 1 2 3 4 5 6 7 8 9
1 1
2 2 4
3 3 6 9
4 4 8 12 16
5 5 10 15 20 25
6 6 12 18 24 30 36
7 7 14 21 28 35 42 49
8 8 16 24 32 40 48 56 64
9 9 18 27 36 45 54 63 72 81
试编写打印该九九乘法表的程序(S3-4.C)。
3-5 阅读下面的程序(S3-5.C),试说明程序的功能和运行结果?
源程序S3-5.C
#include<stdio.h>
main()
{
int t,n,i,j,k;
static int count,sum;
printf("请输入一个短整型数: ");
scanf("%d",&n);
t=n;
do{
t/=10;
count++;
}while(t!=0);
t=n;
for(i=count;i>1;i--)
{ k=1;
for(j=1;j<i;j++)
3
k=k*10;
t=n/k;
n=n-k*t;
printf("%d%c",t, '+');
sum=sum+t;
}
sum+=n;
printf("%d=%d\n",n,sum);
}
3-7 完善程序S3-7.C。输入一串字符,以“#”符号作为输入结束标志,显示其中
字母和数字的个数,写出程序的执行过程和结果。
源程序S3-7.C
main()
{
char ch;
int ch_num, dig_num;
ch_num=dig_num=0;
do
{
} while (ch!= ′#′);
printf("The number of chars is%d。\n",ch_num);
printf("The number of digital is%d。\n",dig_num);
}