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); }