程序设计基础
实验:循环综合练习
一、实验目的
1、掌握按照一定的格式输出相应的数据类型,能正确设计顺序结构的程序。
2.综合应用循环结构的控制语句:while语句、do…while语句、for语句的用法。
3.掌握break、continue语句的功能和语法格式并综合应用。
4.能够根据循环结构的要求正确选取循环语句来实现循环,掌握循环程序的执行过程。
二、实验原理
使用循环可以多次重复地执行多条语句,这里的“多条语句”称为循环体。在C语言中, 可以使用三种循环,分别是:while、do...while和for。
语法格式分别为:
1.do 语句 while (表达式);
2.while (表达式)语句
3.for ([表达式1];[表达式2];[表达式3])
语句
三、实验设备
Win系统电脑一台
四、实验过程(程序清单)
1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include<stdio.h>
int main(){
int i,j,k;
int count=0;
for(i=1;i<5;i++){
for(j=1;j<5;j++){
for(k=1;k<5;k++){
if(i!=j && i!=k && j!=k){
printf("%d%d%d\n",i,j,k);
count++;
}
}
}
}
printf("count=%d\n",count);
return 0;
}
2.输出9*9口诀表。
#include<stdio.h>
int main(){
int i=1,j=1;
for(i=1;i<=9;i++){
for(j=1;j<=2*i-1;j++){
printf("%d*%d=%d ",i,j,i*j);
}
printf("\n");
}
for(i=1;i<=9;i++){
for(j=1;j<=2*i-1;j++){
printf("%d*%d=%d ",j,i,j*i);
}
printf("\n");
}
return 0;
}
3.问题描述:求两个正整数的最大公约数和最小公倍数。
#include<stdio.h>
int main(){
int a,b,n1,n2,t;
printf("请输入两个数字:\n");
scanf("%d %d",&n1,&n2);
if(n1){
t=n1;
n1=n2;
n2=t;
}
a=n1;
b=n2;
while(b!=0){
t=a%b;
a=b;
b=t;
}
printf("这两个数的最大公约数是%d\n",a);
printf("这两个数的最小公倍数是%d\n",n1*n2/a);
return 0;
}
4.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include<stdio.h>
int main(){
char c;
int letters=0,space=0,digit=0,other=0;
printf("请输入一行字符:");
while ((c=getchar())!='\n'){
if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z'){
letters++;
}
else if(c==' '){
space++;
}
else if (c >= '0'&&c <= '9'){
digit++;
}else{
other++;
}
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符:%d\n",letters,space,digit,other);
return 0;
}
5.一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹,求它在第10次落地时共经过多少米,第10次反弹多高。
#include <stdio.h>
int main(){
// 总高度
double total_m = 100.0;
// 小球经历的米数
double total_sum = 0.0;
for (int i = 0; i < 10; i++)
{
total_sum += total_m;
total_m /= 2;
total_sum += total_m;
}
// 不需要计算第10次的反弹高度,所以减去
total_sum -= total_m;
printf("小球总共经历%lf米\n", total_sum);
printf("第10次反弹%lf米\n", total_m);
return 0;
}
6.输出以下菱形图案。
#include<stdio.h>
int main(){
int i=1,j=1,k;
for(i=1;i<=4;i++){
for(k=1;k<=6-i;k++){
printf(" ");
}
for(j=1;j<=2*i-1;j++){
printf("*");
}
printf("\n");
}
for(i=1;i<=3;i++){
for(k=1;k<=2+i;k++){
printf(" ");
}
for(j=1;j<=6-(2*i-1);j++){
printf("*");
}
printf("\n");
}
return 0;
}
五、实验结果(效果截图)
1.
2.
3.
4.
5.
6.
六、实验心得
1.保存代码的时候需要做详细的注释,方便复习查找。
2.记忆代码,多用电脑进行操作,加强记忆。
3.翻阅教材,加深印象。