文档介绍:第三章C程序的流程设计
一、教学的目的与要求
掌握顺序、选择、循环三类程序流程控制语句,以及转移语句,能够正确使用它们编程。
二、 重点与难点:
if语句中的条件表达式,if语句中if-else的匹配关系,if语句的嵌套;switc
printf( “请输入每公里每吨货物的基本运费”);
scanf("%f ”,&p);
printf("请输入货物重”);
scanf("%f ”,&w);
printf("请输入公里数”);
scanf("%f ”,&s);
switch((int)(s/250))
(
case 0: d=0; break;
case 1: d=; break;
case 2:
case 3: d=; break;
case 4:
case 5:
case 6:
case 7: d=; break;
case 8:
case 9:
case 10:
case 11: d=; break;
default: d=;
}
f=p*w*s(1-d);
printf("基本运费是:%f” ,f);
}
详解:
1、多个case可共用一组执行语句,必须写成如下的形式:
case 4:
case 5:
case 6:
case 7: d=; break;
case后面只能有一个常量,把上式改写成case 4,5,6,7: d=; break;的形式是错误的。
2、switch后面括孤内的“表达式”必须是整型表达式或字符型表达式,也可以是枚举型数据, 对于swith来说,关键是把原始数据转换为易表达的形式。
例6:请读以程序写出程序的输出结果。
#include<stdio h>
main()
(
int x=1,y=0,a=0,b=0;
switch(x)
(
case 1:
switch(y)
(
case 0: a++;break;
case 1: b++;break;
}
case 2:
a++;b++;break;
}
printf("a=%d,b=%d”,a,b);
}
答案:a=2,b=1
详解:此程序是switch的嵌套结构,在此程序中break跳出内层switch结构,接着执行外层 switch的case 2后的语句。
例7:写出下面程序的运行结果是()
main()
(
int i;
for(i=1;i<=5;i++)
switch(i%5)
(
case 0: printf("*”); break;
case 1: printf("#”); break;
default: printf("\n”);
case 2: printf("&”);
}
}
答案:#&
&
&*
详解:default可放在 case语句的前面,也可以放在case语句的后面,当i%5不等于0,1,2 时,将执行default后的语句printf( "\n”);执行完成后没有break,将继续执行case 2后的语 句 printf( "&” );
第三节循环型程序设计
1、while 语句
while语句用来实现”当型”循环结构,其一般形式如下:
欢迎共阅
while(条件表达式)循环体语句
例8:设有程序段:
int k=10;
while(k=0) k=k-1;循环体执行( )次。
答案:0
答案解析:在此程序的while结构中,条件表达式k=0的结果永远为0即为假,所以循环执行 的次数为0。
例9:下面程序段的运行结果是()
x=y=0;
while(x<15) y++,x+=++y;
printf("%d,%d”,y,x);
答案:8, 20
例10、设有程序段
t=0;
while(printf("*”))
( t++;
if(t>3) break;
}循环执行( )次
答案:4
答案解析:while结构中的条件表达式printf("*”)的值为输出数据的个数,在此例中, printf("*”)的结果为1,即为真。
2、do-while 语句
do-while语句的特点是先执行循环体,然后判断循环条件是否成立,其一般形式为:
do(
循环体语句
}while(条件表达式);
例11、若有如下语句
int x=3;
do {printf("%d\n”,x-=2);}
while(--x);
则上面程序段输出结果是()。
答案:1
例12、以下程序段循环执行几次。
x=-1;
do
( x=x*x;} while(!x);
答案:1
例13、下面程序