方法:自顶向下逐步细化模块化5、作业画简单程序的NS图和PDL代码数据类型【教学目的】使学生对程序设计数据类型的较全面而深入的掌握教学重点】数据类型的存储空间、长度【教学难点】常量与变量的概念【教学方法】讲授式、讨论式、读书指导案例分析式新课内容】1、基本类型整型字符型实型(浮点型)单精度、双精度构造类型数组类型结构体类型共用体类型指针类型空类型2、常量与变量符号常量用一个标识符代表一个常量 #define PI 3.14159 main( ) {float r,s,area; scanf("%f",&r); s=2*PI*r; area=PI*r*r; printf("s=%7.2f,area=%7.2f",s,area); }变量的概念程序运行过程中其值可以改变的量,系统为程序中的每一个变量开辟一个存储单元,如: main( ) { int a,b; a=2; printf("a=%d\n",a); b=4; printf(“b=%d\n",b); }变量名标识符:用来标识变量名、符号常量名、数组名、函数名、文件名的有效字符序列。
关键字预定义标识符用户定义标识符字母或下划线开头,后跟字母、数字和下划线组成变量要先定义后使用3、整型常量三种形式表示:十进制:如 123 -60 0八进制:以0开始,如 0123十六进制:以0x开始,如0x123 main(){ int a=0123; printf(“a=%d\n”,a);}整型变量分类int 整型short int(或short) 短整型 long int(或long) 长整型 unsigned int 无符号整型 unsigned short 无符号短整型unsigned long 无符号长整型各类型数据长度、取值范围 所占位数 取值范围 int 16 -32768~32767 short 16 -32768~32767long 32 -21亿~21亿unsigned int 16 0~65535 unsigned short 16 0~65535 unsigned long 32 0~42亿 4、整型变量的定义所有的变量需先定义类型int a,b,c; /*指定a,b,c为整型变量*/unsigned count; /*指定lower为无符号整型变量*/long s;有些变量可以预先设置初值:int a=0,b,c; /*指定a,b,c为整型变量,a的初值为0*/int a=0,b=0,c=0; /*指定a,b,c为整型变量,a、b、c的初值为0*/5、整型数据的溢出main(){ int a,b;a=32767;b=a+1;printf(“%d,%d\n”,a,b);}main(){ int a=70000;printf(“a=%d\n”,a);}整型常量的类型main(){ unsigned a;a=-1u;printf(“a=%u\n”,a);}6、作业计算正方形面积浮点等数据类型【教学目的】使学生对程序设计数据类型的较全面而深入的掌握。
教学重点】数据类型的存储空间、长度【教学难点】常量与变量的概念【教学方法】讲授式、讨论式、读书指导案例分析式新课内容】1、实型常量小数形式:如 123.0 .123 0.0 12.5指数形式:如123e2 123E2main(){ float a;a=123e3;printf(“a=%e\n”,a);}实型变量1、分类 所占位数 取值范围float 单精度 32 -3.4*10-38 ~3.4*1038 double 双精度 64 -1.7*10-308 ~1.7*10308 long double长双精度 128 -1.2*10-4932 ~1.2*1049322、变量的定义float x,y; /*指定x,y为单精度实型变量*/double z; /*指定z为双精度实型变量*/3、字符型常量单引号括起来的一个字符如: ' a '字符常量可以象整数一样参与运算。
字符常量还有另外一种形式——转义字符形式转义字符 功能 转义字符 功 能 \a 响铃 \\ 反斜杠字符 \b 退一格 \' 单引号字符 \f 走纸换页 \" 双引号字符 \n 换行 \? 问号 \r 回车 \ooo 1~3位8进制数代表的字符 \t 横向跳格 \xhh 1~2位16进制数代表的字符 4、字符变量变量的定义char c1,c2; /*指定c1,c2为字符型变量*/2、字符型数据的存储以ASCII码存储,存储形式与整型一样,可以和整数进行运算main(){char c1,c2;c1=‘a’;c2=‘b’;c1=c1-32;c2=c2-32;printf(“%c,%c\n”,c1,c2);printf(“%d,%d\n”,c1,c2);}字符数据在内存中的存储形式及使用方法main(){ char c1,c2;c1=97;c2=98;printf(“%c,%c\n”,c1,c2);printf(“%d,%d\n”,c1,c2);c2=c2+1;printf(“%c,%d\n”,c2,c2);5、字符串常量双引号括起来的字符序列。
如"How are you","0"等字符串在存储时末尾被自动加上字符'\0'字符常量与只包含一个字符的字符串常量的区别例:不属于字符常量的是‘A’ “B”‘\n’‘\x72’例:合法的字符常量是“abc”‘\x43’‘ab’“\0”例:字符串“ab\n\012\\\””的长度是34612变量赋初值例:int a=3; float b=2.5; char c=‘a’;例:int a,b,c=5;7、作业计算圆的面积,PI=3.14159 各类数据间的混合运算【教学目的】掌握各种数据间混合计算类型转换的方法教学重点】强制类型转换【教学难点】转换优先级次序【教学方法】讲授式、讨论式、读书指导、案例分析式新课内容】1、C语言允许数据值从一种类型转换成另一种类型在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算转换的规则按图所示 高 double float long unsigned 低 int char, short 说明:横向向左的箭头表示当运算对象为不同类横向向左的箭头表示必定的转换,如字符型(char)数据和短整型(short)数据必定先转换成整型(int),以提高运算精度。
纵向的箭头表示当运算对象为不同类型时转换的方向型时转换的方向数据总是由低级别向高级别转换算术运算符和算术表达式基本算术运算符运算符的优先级和结合性自增、自减运算符算术运算符+(加法运算或正号运算符)-(减法运算或负号运算符)* (乘法运算符)/(除法运算符)% (求余运算符,或称模运算符)例:5%3 结果:22、运算符的优先级和结合性算术表达式用算术运算符和括号将运算量连接起来的式子称为算术表达式运算符有优先级和结合性在求表达式的值时,要按照优先级的高低依次计算如果运算符两侧优先级相同,则按规定的结合方向进行结合性例:main(){ int m=7,n=5;float a=49,b=10,x;x=m/2+n*a/b+1/2;printf(“x=%f\n”,x);}3、C语言提供一种“强制类型转换”运算符,将一个类型的变量强制转换为另一种类型一般形式为: (类型标识符)(表达式)例如: k=(int)((int)x+(float)i) /*得到整型数*/ (float)(x=85) /*得实型单精度数*/例:main(){ float x=3.6;int a;a=(int)x;printf(“x=%f,a=%d\n”,x,a);}例:main(){ float x=2.6,y=3.5,z;int a;z=(int)x+y;a=(int)(x+y);printf(“z=%f,a=%d\n”,a,z);}4、 作业P66 3.9 3.10各运算符【教学目的】掌握各种运算符的使用方法。
教学重点】++与――运算符的使用【教学难点】复合赋值运算符【教学方法】讲授式、讨论式、读书指导、案例分析式新课内容】1、 自增、自减运算符++运算符的作用是使变量的值增1运算符的作用是使变量的值减1常见的用法有:++i , --i 在使用i前,使i的值加(减)1i++ , i-- 在使用i后,使i的值加(减)1已知 i=5(1)j=i++; 例i=3;j=-i++;注意: 1)、自增和自减运算符只能用于变量,表达式(x+y)++是不合法的2)、自增和自减运算符的结合方向是“自右向左”如表达式 -i++ 等价于 -(i++)3)、(i++)+(i++)+(i++)结果?4)、(++i)+(++i)+(++i)结果?5)、i+++j是(i++)+j还是i+(++j)?6)、printf(“%d”,i,i++)结果例:i=3;j=4;k=5;m=(++i)+(--j)+(k--);2、赋值运算符和赋值表达式赋值运算符复合的赋值运算符赋值表达式赋值运算符简单的赋值就是把一个表达式的值赋给一个变量例如: i = 5 j = i + 1类型转换(1)float,doubleàint舍去小数部分,也不进行四舍五入。
例: int i=3.56;则i的值为32)intàfloat,double数值不变,但以浮点数形式存储例: float f=23; f的值为23.0000(3)doubleàfloat 截取其前面7位有效数字,但应该注意数值范围不能溢出 floatàdouble 数值不变,在内存中以64位存储4)charàint有两种情况:A:如果系统将字符处理为无符号数,或对unsigned char型变量赋值,则将字符的8位 放在int型的底8位,高8位为0例:main( ){ unsigned char c;c=‘\376’;printf(“%c,%d,%u\n”,c,c,c);}B. 如果系统将字符处理为带符号的量,若字符的最高位为0,则整型变量高8位补0;若字符最高位为1,则整型变量高8位补1 (即ASCII码在0~127之间,值不变;128~254之间,值为负值例:main( ){ char c;c=‘\376’;printf(“%c,%d,%u\n”,c,c,c);}(5)long,short,intàchar 只须将低8位原封不动送到char型变量main( ){ int i=289;char c=‘a’;c=i;printf(“%c,%d\n”,c,c);}(6)int à long intint 为正数时,long int 的高16位补0;int 为负数时,long int 的高16位补1;long int àint 则int只取长整型的低16位。
main( ){ int a;long int b=65536;a=b;printf(“a=%d\n”,a);}(7)unsigned int à long int 只需将高位补0,数值不变unsigned int à intunsigned long à longunsigned short à short因为字节数相同,所以内容原封不动不变;但应注意,当unsigned xx 型的最高位为1时,赋给xx型时,由于xx型的最高位为符号位,所以数据将变为负值main( ){ unsigned int a=32768;int b;b=a;printf(“b=%d\n”,b);}(8)int à unsigned intlong à unsigned longshort à unsigned short因为字节数相同,所以内容原封不动不变;但非unsigned型的符号位将做为unsigned型的数值计算main( ){ unsigned int a;int b=-1;a=b;printf(“b=%d\n”,a);}3、复合的赋值运算符在赋值符“=”之前加上其它运算符,可以构成复合的运算符。
例如:i + = 2 等价于 i = i + 2 a * = b + 5 等价于 a = a * (b + 5)x% = 3 等价于 x = x%34、赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式形式: 〈变量〉〈赋值运算符〉〈表达式〉 例如:x=3 y=x+3 对赋值表达式求解的过程是:将赋值运算符右侧的表达式的值赋给左侧的变量赋值表达式的值就是被赋值的变量的值结合性注意:一般形式的赋值表达式中的“表达式”又可以是一个赋值表达式如: a=b=8按照从右到左的结合性等价于a=(b=8)赋值表达式也可以包含复合的赋值运算符设a的值为6,计算a+=a-=a*a 先进行a*a的计算,结果为36 再进行a-=36的计算,相当于a=a-36=-30 最后进行a+=-30的计算,相当于a=a-30=-60 例:main( ){ int a,b,c,d,e;a=b=c=d=e=5;b+=a+3*a;c%=a-3;e=d*=a+3;a-=a*=a;printf(“a=%d,b=%d,c=%d,d=%d,e=%d\n”,a,b,c,d,e);5、逗号运算符和逗号表达式在逗号表达式中,逗号是一种运算符。
形式如下 表达式1,表达式2由逗号隔开的一对表达式从左向右进行计算,其求解过程为:先求解表达式1,再求表达式2,整个逗号表达式的值是表达式2的值逗号运算符是所有运算符中级别最低的例如 a=4*6,a+5 整个逗号表达式的值为29注意一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,例如: (a=4*6,a+5),a+6 整个表达式的值为30例:int n=3,m=3;执行语句 m=n++,m++,++n;后n的值---,m的值---34566、作业P67 3.11 3.12顺序程序设计【教学目的】掌握顺序程序设计的方法【教学重点】格式化输入与输出【教学难点】格式化输入的使用方法【教学方法】讲授式、讨论式、读书指导、案例分析式新课内容】1、赋值语句由赋值表达式加上一个分号构成,作用是将一个确定的值赋给一个变量格式:变量名=表达式;说明先计算,后赋值赋值语句中的“=”是赋值号而不是数学意义上的等号赋值号两侧的内容不能任意调换2、字符数据的输入输出字符输出函数格式:putchar(c)功能:将c值所对应的字符输出到标准输出设备上(一般为显示器)。
c可以是整型或字符型一次只能输出一个字符,也可以输出控制符,如 putchar('\n') 输出一个换行符,即光标 移到下一行 例:putchar(‘a\n’);错 改为putchar(‘a’);putchar(‘\n’);putchar(a,b); 错改为putchar(a);putchar(b);例: #include "stdio.h" main( ){char ch1,ch2;ch1=‘A’; ch2=‘B’;putchar(ch1);putchar(ch2);putchar(‘\n’); }运行程序,运行结果为ABputchar( )函数也可以输出转义字符,如:putchar(‘\101’) 即输出字符‘A’字符输入函数格式:getchar( )、功能: 从标准设备(一般是键盘)输入一个字符字符输入函数没有参数,函数值就是从设备输入的字符应注意空格和回车符也是字符,也可以被接受例:#include main( ){ char a,b,c,d;a=getchar(); b=getchar(); c=getchar(); d=getchar();putchar(a); putchar(b); putchar(c); putchar(d);}例3 从键盘输入三个大写字母,将其转换成小写字母输出。
#include "stdio.h" main( ){char c1,c2,c3;c1=getchar( ); c2=getchar( );c3=getchar( );c1=c1+32;c2=c2+32;c3=c3+32;putchar(c1);putchar(c2);putchar(c3); }3、格式输入输出1、格式输出函数格式:printf(格式控制,输出表列)功能:printf函数可以将任意类型的多个数据输出到标准输出设备上(一般为显示器)格式字符 含 义 d 十进制形式输出带符号整数(正数输出不带符号) o 八进制形式输出无符号整数(不输出前导0) x 十六进制形式输出无符号整数(不输出前导0x) u 十进制形式输出无符号整数 c 输出一个字符 s 输出一个字符串 f 小数形式输出单、双精度实数(隐含输出6位小数) e 指数形式输出单、双精度实数(数字部分有6位小数) g 当指数小于-4或大于给定的精度时用%e格式,否则用%f格式附加格式说明符格式字符 含 义 字母l 用于长整型,可加在格式符d,o,x,u之前 m(整数) 数据最小宽度 .n(整数) 对实数,表示输出n位小数;对字符串,表示截取的字符个数 — 输出的数字或字符在域内向左靠例:main( ){ int a,b;a=3;b=4;printf(“a=%d b=%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);printf(“%d,%d\n”,a,b);printf(“%d%d\n”,a,b);}例:main( ){ int a=123;b=4567;printf(“%d%d\n”,a,b);printf(“%2d%2d\n”,a,b);printf(“%4d%6d\n”,a,b);printf(“%-4d,%6d\n”,a,b);printf(“%-4d,%-6d,\n”,a,b);}除了X、E、G外,其它格式字符要求小写例:main( ){ int a=-654;printf(“|%6D|\n”,a);printf(“|%6d|\n”,a);}例:main( ){ int a=97;char b=‘b’;printf(“%%d a=%d\n%%c a=%c\n”,a,a);printf(“%%d b=%d\n%%c b=%c\n”,b,b);printf(“%%3c b=%3c\n”,b);}%d a=97%c a=a%d b=98%c b=b%3c b= b例4main( ){int a,b; float x; char c; a=123; b=-1; x=3.14; c ='A';printf("%d,%4d\n",a,a);printf("%d,%x,%o,%u\n",b,b,b,b);printf("%c,%d\n",c,c);printf("%f,%6.1f\n",x,x);}4、格式输入函数格式:scanf(格式控制,地址表列)功能:scanf函数可以从标准输入设备输入任意类型的多个数据(一般为显示器)。
注意:输入数不能规定精度当输入一串数据时,系统如何区分每个数据呢?(1)根据格式字符的含义分隔字符 sacnf("%d%c%f",&a,&b,&c);若输入数据: 120a45.6则 a=120,b='a',c=45.6(2) 系统按格式串指定的长度截取所需的数据 scanf("%3d%2d",&a,&b);输入数据 12345 则 a=123,b=45例:main( ){ int a;char b,c;scanf(“%3d%c%c”,&a,&b,&c);printf(“a=%d b=%c c=%c\n”,a,b,c);}例:main( ){ char a,b;scanf(“%3c%3c”,&a,&b);printf(“%3c%3c\n”,a,b);}(3) 用隐含的分隔符在输入数据中用空格或换行符分隔数据 scanf("%d%d%d",&a,&b,&c);输入数据 3 4 5或输入 3 4(回车) 5(回车)则a=3,b=4,c=5 (4) %后的“*”附加说明符,用来表示跳过它相应的数据。
scanf("%d,%*d,%d",&a,&b);如果输入 3,4,5则 a=3,b=5,第二个数据跳过不赋给任何变量5) 使用显示分隔符在格式说明符中还可以有其它字符,在输入字符时应输入与这些字符相同的字符 scanf("%d,%d,%d",&a,&b,&c);输入数据 3,4,5 scanf(”a=%d,b=%d,c=%d",&a,&b,&c);输入数据 a=3,b=4,c=5(6)用“%c”格式输入字符时,空格字符和转义字符都作为有效字符输入:scanf("%c%c%c",&c1,&c2,&c3);如果输入a b c则字符‘a’送给c1,空格送给c2,字符’b’送给c3注意:(1)输入时不能规定精度,如 scanf(“%6.1f”,&a)是不合法的2)格式控制之后是地址表列而不是变量表列scanf(“%d,%d”,&a,&b);是正确的,而scanf(“%d,%d”,a,b);是错误的6、作业P88 4.4 4.6 4.9 4.10选择结构程序设计【教学目的】掌握选择结构程序设计的方法。
教学重点】IF语句的语法与使用【教学难点】表达式的逻辑值判断结果【教学方法】讲授式、讨论式、读书指导、案例分析式新课内容】1、关系运算符和关系表达式关系运算符 关系表达式用关系运算符将两个表达式(可以是算术表达式、关系表达式、赋值表达式或逻辑表达式)连接起来的式子,称为关系表达式关系表达式的值为逻辑值“真”或“假”,以1代表“真”,以0代表“假”结合性例如:关系表达式“8==4”的值为“假”,表达式的值为0关系表达式“5>0”的值为“真”,表达式的值为1若a=5,b=3,c=1,则a>b>c的计算过程是: 先计算a>b,结果为真,值为1 再计算1>c,结果为假,值为0 f=b>c!=a的计算过程是: 先计算b>c,结果为1 再计算1!=a结果为1 最后将1赋值给f 例:main( ){ int a; a=5;printf(“%d\n”,a<0);}例:a=3; b=2; c=1; f=a>b>c f的值是多少?例:main( ){ int a;a=0;printf(“%d\n”,-1
C语言编译系统在给出逻辑结果时,以数值1代表“真”,以0代表“假”;但是在判断一个量是为“真”时,以非0代表“真”,以0代表“假”例如: ¬ 若x=10, 则 !x的值为0 若a=3, b=2, 则a&&b的值为1 ¯ 5&&0||8的值为1结合性例:a=4;b=‘B’;写出下列表达式是值!aa&&ba||ba&&!b||2逻辑运算符特点 在逻辑表达式的求解中并不是所有的运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行下一个运算符例如:1、a && b && c2、a || b || c当a=5,b=3,c=2,d=1,x=1,y=1则表达式(x=ab)&&(n=cb)&&(n==c>d);z=(m=a>b)||(n=c>d);z=(m=ad);z=(m=a
正确:x>-10&&x<10||x>100&&x<200错误:-10e!e&&(e==b)==(++c)!e&&e==(b==++c)a++&&e++&&e++a++&&e++||e++(a+c==b)==(b+d==a)||(c=b+a)>(d=c+d)(a+c==b)>(b+d==a)||(c=b+a)>(d=c+d)3、if语句1)、if语句的三种形式:if-else形式: if (表达式) 语句1; else 语句2;例如:if(x>y) printf(“%d”,x);else printf(“%d”,y);if形式:if (表达式) 语句;例如:if(x>y) printf(“%d”,x);else-if形式 if (表达式1) 语句1;else if (表达式2) 语句2; ……else 语句n;例如:if(x>0) y=1; else if(x==0) y=0; else y=-1;例: 从键盘输入两个整数,输出最大值。
main( ){ int a,b,max;printf(“please input a,b: ”);scanf(“%d%d”,&a,&b);if (a>b) max=a;else max=b;printf(“max=%d\n”,max);}例: 输入两个实数,由小到大输出main( ){ float a,b,t; scanf("%f%f",&a,&b); if (a>b) {t=a; a=b; b=t;} printf("%5.2f,%5.2f\n",a,b);}例: 输入三个实数,按由小到大顺序输出main( ){ float a,b,c,t; scanf("%f%f%f",&a,&b,&c); if (a>b) {t=a; a=b; b=t;} if (a>c) {t=a; a=c; c=t;} if (b>c) {t=b; b=c; c=t;} printf("%5.2f,%5.2f,%5.2f\n",a,b,c);}例: 对求三角形面积的程序进行改进,要求判断输入的三边能否构成三角形如果能构成三角形则计算面积,否则给出相应信息。
include "math.h"main( ){ float a,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); if (a+b>c&&b+c>a&&a+c>b) {s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%7.2f\n",area); } else printf(“input data error”);}例:判断从键盘输入的一个字符是什么样的字符include “stdio.h”main( ){ char c; printf(“please input a character: ”); c=getchar( ); if (c>=‘a’&&c<=‘z’) printf(“lower\n”); else if(c>=‘A’&&c<=‘Z’) printf(“upper\n”); else printf(“NO Letter\n”);}例5 给一个成绩,要求输出成绩等级90分及以上为‘A’,80-89分为’B’,70-79分为’C’,60-69分为’D’,60分以下为’E’。
main() { int s; scanf(“%d”,&s); if(s>=90) printf(“A\n”); else if(s>=80) printf(“B\n”); else if(s>=70) printf(“C\n”); else if(s>=60) printf(“D\n”); else printf(“E\n”); }例:main( ){ int a=1,b=2,c=3; if (a>b) a=b, b=c; c=a; printf(“%d,%d,%d\n”,a,b,c);}例:main( ){ int a=1,b=2,c=3; if (a>c); b=a; a=c; c=b; printf(“%d,%d,%d\n”,a,b,c);}例:main( ){ int a=1,b=2,c=3; if (a>c) b=a; a=c; c=b; printf(“%d,%d,%d\n”,a,b,c);}2)、嵌套的if语句在一个if语句中又包含了另一个if语句,称为if语句的嵌套。
例:#include “stdio.h”main( ){ char ch,c1,c2; printf(“Enter a character: ”); ch=getchar( ); if (ch>=‘a’&&ch<=‘z’) ch-=32; c1=ch-1;c2=ch+1; if (ch==‘A’) c1=ch+25; else if (ch==‘Z’) c2=ch-25; putchar(c1); putchar(ch); putchar(c2); putchar(‘\n’);}条件运算符和条件表达式条件运算符 ?:条件表达式的形式为: 表达式1?表达式2:表达式3先计算表达式1,若其值为非零,则结果为表达式2的值,否则就是表达式3的值结合性:从右到左例如: 设a=2,b=3,c=4,则 (1)m=a>b?a:b的值为3 (2)m=a>b?a:b>c?b:c 先计算b>c?b:c,结果为4 再计算m=a>b?a:4,结果为4 则m的值为4,整个表达式的值也为4 例:a=3;b=2;c=(--a==b++)?a--:++b;switch语句switch语句的基本格式:switch (表达式){ case 常量表达式1:语句1;[break;] case 常量表达式2:语句2;[break;] … … case 常量表达式n:语句n;[break;] default :语句n+1; }注意:当表达式的值与某一个case后面的常量表达式的值相等时,就执行该case后面的语句,都不相等时,就执行default后语句。
每个case的常量表达式的值必须互不相同各个case的出现次序不影响执行结果用break语句可以跳出switch结构例7输入两个运算量和一个运算符,完成加、减、乘、除运算,输出运算结果 #include"stdio.h" main( ){float x,y,z; char ch;printf(“\n Enter a calculation (x?y): ”);scanf(“%f%c%f”,&x,&ch,&y);switch(ch) { case '+':z=x+y;printf("x+y=%d",z);break; case '-':z=x-y;printf("x-y=%d",z);break; case '*':z=x*y;printf("x*y=%d",z);break; case '/': if (y= =0) printf("division by zero\n"); else {z=x/y; printf("x/y=%d",z);}break; default:printf("The error operator"); } }用if语句if (s<250) d=0;else if(s<500) d=0.02; else if (s<1000) d=0.05; else if(s<2000) d=0.08; else if(s<3000) d=0.1; else d=0.15; 例:switch语句的嵌套main( ){ int a=2,b=7,c=5; switch (a>0) { case 1: switch (b<10) { case 1:printf(“@”);break; case 0:printf(“!”);break; } case 0: switch(c==5) { case 0:printf(“*”);break; case 1:printf(“#”);break; default:printf(“%”);break; } default:printf(“&”);break; }printf(“\n”);}4、作业P111 5.3 5.4 5.6 5.7循环结构程序设计【教学目的】掌握循环结构程序设计的基本方法及语句的语法与使用。
教学重点】WHILE、FOR语句的使用【教学难点】循环的原理及理解【教学方法】讲授式、讨论式、读书指导、案例分析式新课内容】1、while语句格式:while(表达式) 语句;功能:while语句用来实现“当型”循环执行过程:首先判断表达式,当表达式的值为非0时,反复执行while中的语句while的常见用法i=1; 或 i=0;while (i<=n) i=1) 或i>0{~i--;}例: 编程计算 1+2+... +100main( ){ int i=1 ,sum=0; while(i<=100) { sum=sum+i; i++; } printf(“sum=%d\n",sum); }例:main( ){ int k=。