1、任务一任务一 输出输出“GAME OVER”【行动目标】u掌握C程序的结构和书写规则u掌握Win-TC的使用方法u能够编写包含输出语句的简单C程序u了解计算机系统组成、进制转换等知识【任务描述】开发一个最简单的游戏退出界面,在屏幕上显示“GAME OVER”,这将是大家接触的第一个C程序。通过这个任务,大家将了解C程序的结构和Win-TC操作,掌握如何编写、编译和运行C程序【任务分析】开发C程序,首先要具备开发和运行环境,第一个任务要完成Win-TC的安装,这是编辑、编译和运行C程序的前提条件;第二个任务要在Win-TC中编写C程序,完成在屏幕上显示“GAME OVER”的功能;第三任务是在W
2、in-TC中编译和运行该程序。【任务实施】1.1 任务任务1:安装:安装Win-TC目前,经常使用的是Windows环境下的C语言程序编辑软件Win-TC。双击安装文件,按照导航一步一步完成安装操作,双击Win-TC图标运行后,将打开如下窗口:“Hello,world”是Win-TC提供的第一个简单C程序,下面一起来体验下如何编写一个简单的C程序。【例例1 1】简单的简单的C C程序程序 函数头部函数头部函数体开始标志函数体开始标志C C语句语句函数体结束标志函数体结束标志问题:函数是由什么组成?问题:函数是由什么组成?【任务实施】【任务实施】子函数子函数show()show()主函数主函数m
3、ain()main()调用函数调用函数show()show()1.1.一个一个C C程序由一个或多个函数组成,其中必须有一个用程序由一个或多个函数组成,其中必须有一个用 “mainmain”命名的主函数。命名的主函数。2.2.每个函数由头部和函数体每个函数由头部和函数体 两部分组成。两部分组成。3.3.每个每个C C语句以语句以“;”(分号)结尾。(分号)结尾。4.4.可在程序的任何位置用可在程序的任何位置用“/*/”对对C C程序作注释。程序作注释。5.5.习惯上,书写习惯上,书写C C程序时均使用小写英文字母。程序时均使用小写英文字母。6.C6.C程序一般都采用缩进格式的书写方法。程序一般
4、都采用缩进格式的书写方法。重点重点编辑编辑连接连接编译编译运行运行调试调试*.C.C*.exe.exe注意注意WIN-TCWIN-TC程序的编辑、调试和运行程序的编辑、调试和运行主函数名主函数名对程序的注释对程序的注释从键盘输入三个整从键盘输入三个整数赋给变量数赋给变量x,yx,y和和z z定义变量定义变量x,y,zx,y,z和和sumsum显示变量显示变量sumsum的值的值计算计算x+y+z,x+y+z,并将结并将结果赋给变量果赋给变量sumsummainmain()/()/*计算三个整数的和计算三个整数的和 */int int x,y,z,sum;x,y,z,sum;scanfscanf
5、(d,d,d,d,d,&x,&y,&z);d,&x,&y,&z);sum=x+y+z;sum=x+y+z;printf printf(sum=(sum=d dnn,sum);sum);1.1.常量常量 整型常量整型常量 7 7、-24-24、0 0 实型常量实型常量 3.14159263.1415926 字符型常量字符型常量 A A、a a、1 1 字符串字符串 “Huxxia Institute of Computer TechnologyHuxxia Institute of Computer Technology”2.2.变量变量 在程序运行时,其值可变的量被称为变量。在程序运行时,其值
6、可变的量被称为变量。变量分为变量分为整型变量、实型变量和字符型变量整型变量、实型变量和字符型变量。3.3.变量的定义格式:变量的定义格式:intint、floatfloat、charchar等等变量名只能由字母、数字和下划线变量名只能由字母、数字和下划线三种字符组成,且第一个字符必须三种字符组成,且第一个字符必须为字母或下划线。(区分大小写)为字母或下划线。(区分大小写)例如:例如:int x,y,sumint x,y,sum;float a1,a2float a1,a2;char ch_1char ch_1;注意注意标识符、关键字标识符、关键字4.4.变量的初始化:在定义变量的同时对变量预先
7、设置初值。变量的初始化:在定义变量的同时对变量预先设置初值。例如,执行语句例如,执行语句:int num=20;int num=20;float pi=3.14;float pi=3.14;char c1,c2=char c1,c2=M M;变量变量numnum、pipi、c2c2的初值分别为的初值分别为2020、3.143.14和字符和字符M M。注意注意变量要先定义、后使用。变量要先定义、后使用。定义变量定义变量x,y,zx,y,z和和sumsum1.1.格式输出函数格式输出函数 printf()printf()函数函数 由格式控制符由格式控制符%和格式字符实现和格式字符实现变量或表达式变
8、量或表达式例如:例如:printf(printf(“Game OverGame Over”);printf(printf(“%d%d”,sum),sum);printf(printf(“sum=%dnsum=%dn”,sum),sum);2.2.格式控制:格式控制:例如:例如:printf(printf(“sum=sum=%d%dnn”,sum),sum);printf(printf(Total Number is Total Number is%d%d,Price isPrice is%f%fnn,total,price),total,price);【例例%d%d以整数格式输出以整数格式输出
9、x x的值的值nn为转义字符,输出时将为转义字符,输出时将光标移到下一行的开始处光标移到下一行的开始处%c%c单个字符单个字符,%s,%s代表字符串代表字符串;与与”%m.nf%m.nf 表示以小数形式输表示以小数形式输出出,输出结果共占输出结果共占m m位,其位,其中小数部分占中小数部分占n n位。如果输位。如果输出结果不足出结果不足m m个字符,则在个字符,则在其左其左/右边以空格补足。右边以空格补足。结果占结果占4 4位位,不足前面补空格不足前面补空格显示变量显示变量sumsum的值:的值:sum=xxxsum=xxx四、编写简单程序四、编写简单程序输入、输出函数输入、输出函数四、编写简
10、单程序四、编写简单程序输入、输出函数输入、输出函数3.3.格式输入函数格式输入函数scanfscanf()()功能功能从键盘输入数据,并存入相应变量的存储单元。从键盘输入数据,并存入相应变量的存储单元。与与printf()printf()函数的格式控制函数的格式控制类似,常用类似,常用%d%d、%f%f、%c%c、%s%s等等由取地址运算符由取地址运算符 取出取出变量的存储单元的起始地址变量的存储单元的起始地址例如:例如:scanf(scanf(“%d%d”,&x);,&x);scanf(scanf(“%d,%d,%d%d,%d,%d”,&x,&y,&z);,&x,&y,&z);【例例5 5】
11、输入格式控制符的应用输入格式控制符的应用 main()main()int a,b;float c,d;char e;int a,b;float c,d;char e;scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);scanf(%f,%f,&c,&d);scanf(%f,%f,&c,&d);scanf(%c,&e);scanf(%c,&e);printf(%d+%d=%dn,a,b,a+b);printf(%d+%d=%dn,a,b,a+b);printf(%f-%f=%fn,c,d,c-d);printf(%f-%f=%fn,c,d,c-d);printf(%cn,e)
12、;printf(%cn,e);当二个当二个%d%d之间没有分隔符时,之间没有分隔符时,相应的二个输入数据之间也相应的二个输入数据之间也必须用空格分隔必须用空格分隔当二个当二个%f%f之间用逗号分隔时,之间用逗号分隔时,相应的二个输入数据之间也相应的二个输入数据之间也必须用逗号分隔必须用逗号分隔四、编写简单程序四、编写简单程序输入、输出函数输入、输出函数从键盘输入三个整数赋给变量从键盘输入三个整数赋给变量x,yx,y和和z z三、三、编写简单的程序编写简单的程序编写程序:编写程序:从键盘上输入长方形的长和从键盘上输入长方形的长和宽的值,求长方形面积。宽的值,求长方形面积。四、编写简单程序四、编写
13、简单程序提示:定义三个整型变量,分别代表长、宽和面积;提示:定义三个整型变量,分别代表长、宽和面积;从键盘上输入二个数,分别代表在长和宽;从键盘上输入二个数,分别代表在长和宽;计算面积;计算面积;在屏幕上输出长方形的面积值。在屏幕上输出长方形的面积值。【知识拓展】1.计算机系统组成计算机系统组成计算机系统包括硬件系统和软件系统两大部分。硬件是指组成计算机的各种物理设备,也就是我们在“认识计算机”中所介绍的那些看得见,摸得着的实际物理设备。它包括计算机的主机和外部设备。具体由五大功能部件组成,即:运算器、控制器、存储器、输入设备和输出设备。【知识拓展】这五大部分相互配合,协同工作。其简单工作原理
14、为,首先由输入设备接受外界信息(程序和数据),控制器发出指令将数据送入(内)存储器,然后向内存储器发出取指令命令。在取指令命令下,程序指令逐条送入控制器。控制器对指令进行译码,并根据指令的操作要求,向存储器和运算器发出存数、取数命令和运算命令,经过运算器计算并把计算结果存在存储器内。最后在控制器发出的取数和输出命令的作用下,通过输出设备输出计算结果。【知识拓展】图1-3 计算机系统组成【知识拓展】2数据存储与进制转换数据存储与进制转换(1)存储器工作原理存储器由半导体集成电路构成,集成电路包括上亿个脉冲电路单元(二极管元件),二极管元件如同开关,有两种稳定的工作状态:“导通”状态,即“有”电脉
15、冲(用1表示);“截止”状态,即“无”电脉冲(用0表示)。所有数据在计算机中都将用“1”、“0”来表示。(2)计算机中的数制数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。计算机中经常使用十进制、二进制、八进制和十六进制,但在计算机内部,不管什么样的数都使用二进制形式来表示。【知识拓展】基数:每种数制中数码的个数称为该数制的基数。如十进制中有10个数码,基数是10;二进制中有两个数码0和1,基数是2。进制:在数制中有一个规则,就是N进制一定是“逢N进一”。如十进制就是“逢十进一”,二进制就是“逢二进一”。具体数制表示如下表所示:。【知识拓展】(3)进制之间的转换图1-4 计算
16、机进制转换【知识拓展】3高级语言程序设计高级语言程序设计当两个或者更多的人相互对话的时候,会在他们之间发生一件很普通的事情语言。同样,计算机与人沟通时也需要语言,其中,机器语言由二进制码组成,它可以直接操纵计算机的硬件,但现在极少使用。目前,用于与计算机沟通的语言多为高级语言,高级语言有很高的可移植性,用高级语言编写的程序叫做高级语言源程序,必须翻译成机器语言目标程序才能被计算机执行。高级语言的翻译有两种方式:编译方式和解释方式。【知识拓展】编译方式:编译程序把高级语言源程序翻译成目标程序,执行时运行目标程序。解释方式:在运行高级语言源程序时,由解释程序对源程序边翻译边执行。C语言是一门面向用
17、户的高级语言,C语言中的程序要通过编译后才能够运行。【知识拓展】4C语言的发展历史及特点语言的发展历史及特点C语言是由美国贝尔实验室的Dennis Ritchie程序员开发的,它是贝尔实验室Ken Thompson开发的B语言(Combines Programming Language)的继承。它的特点如下:(1)简洁紧凑、灵活方便(2)运算符丰富(3)数据结构丰富(4)C是结构式语言【知识拓展】(5)C语法限制不太严格、程序设计自由度大(6)C语言允许直接访问物理地址,可以直接对硬件进行操作(7)C语言程序生成代码质量高,程序执行效率高(8)C语言适用范围大,可移植性好 总之,C语言对程序员
18、要求较高。程序员使用C语言编写程序会感到限制少,灵活性大,功能强,可以编写出任何类型的程序。【作业】编程题编程题1编写一个C程序,打印出消息“This is my first program in C.”。请小组呈现程序的功能及结构,简述main()、printf()、;、/*/的含义与用法?感谢您的关注!任务二任务二 计算总成绩与平均分计算总成绩与平均分【行动目标】u区分常量与变量,掌握变量的使用u掌握C基本数据类型u掌握算术运算和赋值运算的运算法则u能够编写包含键盘输入、计算和显示输出等操作的简单C程序【任务描述】编写一个计算总成绩与平均分的C程序,实现从键盘输入Jack的三门课程的成绩,
19、在屏幕上自动显示这三门课程的总成绩与平均分。通过这个任务,掌握C程序中的变量、算术运算符、赋值运算符及表达式,输入函数和输出函数的使用方法。【任务分析】任务1是完成输入功能,即将Jack的三门程课的成绩存储到计算机中;任务2是计算Jack的总成绩和平均分;任务3是在屏幕上输出Jack的总分和平均分。【例例1 1】求圆的周长求圆的周长#define PI 3.1415926#define PI 3.1415926 main()main()float r;float r;printf(Please Input Radius:n);printf(Please Input Radius:n);scan
20、f(%f,&r);scanf(%f,&r);printf(The Circumference of Circle:%fn,printf(The Circumference of Circle:%fn,2 2*PIPI*r r););getch();getch();通过通过#define定义符号常定义符号常量量PI为为3.1415926符号常量符号常量PIPI(大写)(大写)一、符号常量一、符号常量注意注意基本基本数据数据类型类型整型整型单精度型单精度型主要数据类型主要数据类型构造数据类型构造数据类型指针类型指针类型实型实型字符型字符型数组类型数组类型结构体类型结构体类型双精度型双精度型intc
21、harfloatdouble二、数据类型与变量二、数据类型与变量charfloatdouble关建字关建字取值范围(字符的取值范围(字符的ASCIIASCII码值)码值)占字节数占字节数charchar0 02552551 1字节字节ASCIIASCII码:码:A-65A-65、B-66B-66、C-67C-67 a-97 a-97、b-98b-98、c-99c-99 0-48 0-48、1-491-49、2-50 2-50 二、数据类型与变量二、数据类型与变量CharChar字符型字符型a-A=32;a-A=32;%c%d%c%d二、数据类型与变量二、数据类型与变量【例例2 2】从键盘上输入
22、一个小写字母,并把它变为大写字母。从键盘上输入一个小写字母,并把它变为大写字母。main()main()char c1;char c1;printf(Please Input a char:n);printf(Please Input a char:n);scanf(%c,&c1);scanf(%c,&c1);printf(The new char:%cn,c1);printf(The new char:%cn,c1);getch();getch();#include 编译预处理编译预处理从键盘输入一个字符从键盘输入一个字符在屏幕上输出一个字符在屏幕上输出一个字符c1=c1-32;c1=c1-
23、32;/*c1=getchar();c1=getchar();*/*putchar(c1);putchar(c1);*/#include#include 1.1.+-*/%三、算术运算表达式三、算术运算表达式/的两种用法:的两种用法:(1 1)整数除法(整除)整数除法(整除):当被除数和除数都是整型:当被除数和除数都是整型数据时,数据时,“/”/”运算的结果为运算的结果为整型。整型。(2 2)实数除法:当被除)实数除法:当被除数和除数中至少有一个是实数和除数中至少有一个是实数型数据时,数型数据时,“/”/”运算的结运算的结果为实数型。果为实数型。%只用于整数;只用于整数;x%y x%y 的值就
24、是的值就是x x除以除以y y的余数。的余数。【例3 3】从键盘上输入一个三位整数(100-999100-999),分别输出它的百位、十位和个位数的数值。main()/main()/*分别输出三位数的个位、十位和百位分别输出三位数的个位、十位和百位 */int a,b,c,x;int a,b,c,x;/*a a是百位、是百位、b b是十位、是十位、c c是个位是个位 */printf(please input 100-999:);printf(please input 100-999:);scanf(%d,&x);scanf(%d,&x);printf(%3d,%3d,%3dn printf(
25、%3d,%3d,%3dn,a,b,c);a,b,c);c=x%10;c=x%10;b=(x/10)%10;b=(x/10)%10;a=(x/10)/10;a=(x/10)/10;a=x/100;a=x/100;b=(x%100)/10;b=(x%100)/10;c=(x%100)%10;c=(x%100)%10;【例例4 4】将两个变量中的数据进行交换将两个变量中的数据进行交换 main()main()int x,y,z;int x,y,z;scanf(scanf(“%d,%d%d,%d”,&x,&y);,&x,&y);printf(printf(“Two nums:%d,%dnTwo num
26、s:%d,%dn”,x,y);,x,y);getch();getch();1.1.赋值运算符赋值运算符 =x=10=x=10+=x+=10+=x+=10 -=x-=10 -=x-=10 *=x=x*=10=10 /=x/=10 /=x/=10%=x%=10%=x%=10四、赋值运算表达式四、赋值运算表达式注意注意 x=x+10 x=x+10 x=x-10 x=x-10 x=x x=x*1010 x=x/10 x=x/10 x=x%10 x=x%10(1 1)赋值是将右边的值赋给左边的变量;)赋值是将右边的值赋给左边的变量;(2 2)C C语言允许多重赋值:语言允许多重赋值:a=b=c=x+8a
27、=b=c=x+8;(3 3)复合赋值运算时先计算右边表达式,再进行复合赋值复合赋值运算时先计算右边表达式,再进行复合赋值:y+=x+5:y+=x+5。1.1.自增、自减运算符自增、自减运算符+、-+i:+i:在使用在使用i i之前之前,先执行先执行i+=1,i+=1,使使i i的值加的值加1 1(先加)(先加)-i:-i:在使用在使用i i之前之前,先执行先执行i-=1,i-=1,使使i i的值减的值减1 1(先减)(先减)i+:i+:在使用在使用i i之后之后,执行执行i+=1,i+=1,使使i i的值加的值加1 1(后加)(后加)i-:i-:在使用在使用i i之后之后,执行执行i-=1,i
28、-=1,使使i i的值减的值减1 1(后减)(后减)五、自增、自减运算表达式五、自增、自减运算表达式说明说明自增、自减运算符常用于自增、自减运算符常用于循环结构和指针变量循环结构和指针变量。【例例5 5】自加、自减运算符的应用。自加、自减运算符的应用。main()main()int i=10,j;int i=10,j;float pi=3.14,pa;float pi=3.14,pa;j=i+;j=i+;pa=+pi;pa=+pi;printf(j=%d,pa=%fn,j,pa);printf(j=%d,pa=%fn,j,pa);printf(i=%d,pi=%fn,printf(i=%d,p
29、i=%fn,i+,-i+,-pipi););getch();getch();j=10;i=11;j=10;i=11;pi=4.14;pa=4.14pi=4.14;pa=4.14输出是输出是11,11,但是但是i=12i=12pi=3.14pi=3.14五、自增、自减运算表达式五、自增、自减运算表达式【例6 6】写出程序运行结果 main()main()int x=6,y;int x=6,y;printf(x=%dn,x);printf(x=%dn,x);y=+x;y=+x;printf(x=%d,y=%dn,x,y);printf(x=%d,y=%dn,x,y);y=x-y=x-;-;prin
30、tf(x=%d,y=%dn,x,y);printf(x=%d,y=%dn,x,y);程序运行结果:复习复习x=6x=6x=7,y=7x=7,y=7x=6,y=7x=6,y=7前置运算:先增减、后运算前置运算:先增减、后运算后置运算:先运算、后增减后置运算:先运算、后增减提示提示 各级运算符优先级:括号括号自增、自减自增、自减逻辑非逻辑非算术运算符算术运算符关系运算符关系运算符逻辑与逻辑或逻辑与逻辑或赋值运算符赋值运算符五、自增、自减运算表达式五、自增、自减运算表达式注意注意【任务实施】2.1 任务任务1:输入三门课程的成绩:输入三门课程的成绩一个人想把钱存在银行中,会有一个帐号,每个帐户仅对应
31、一个ID号。无论什么时候想取出钱,只要提交这个ID号,银行的系统就能识别帐户里的钱。在C语言中,可以把数据存放在存储器中(相当于银行),为了识别出数据存放的位置,可以先为存储的地方命名(相当于银行中的帐户),这个名字称作变量(相当于帐户ID号)。无论什么时候需要使用这个数据,变量名都可以帮助计算机识别该变量存放在什么位置,并把变量的值提取出来用于运算。【任务实施】scanf()输入函数的格式输入函数的格式与printf()相类似,C语言提供了输入函数scanf(),用来接收使用者从键盘输入的数据。scanf()函数的格式如下:scanfscanf(格式控制(格式控制,地址表)地址表)其中,sc
32、anf()函数要使用一些辅助输入的格式控制符,格式控制符是表示接收不同数据类型的特殊符号,例如:“%d”、“%f”、“%c”等等,所有的格式控制符都必须包含在双引号中。【任务实施】地址表是在变量名前加“&”,例如:&x、&y、&z等等,其中“&”是一个强制地址符号,x、y、z分别是变量名。当用户从键盘上输入数据时,scanf()函数就会判断该输入字符是否属于指定的数据类型,如果是则将其存入由编译器给它在内存中分配的位置。【任务实施】2.2 任务任务2:计算:计算Jack的总成绩和平均分的总成绩和平均分在C语言中运算符和表达式是最基本的构成部分,没有运算符和表达式,就不能编写出C语言的任何程序。
33、数据处理是程序的核心部分,是程序处理的对象,在数据处理中各种运算又是最主要部分,运算符是施加给这些数据的操作。表达式是由常量、变量、函数和运算符所有组成的。在本项目中,计算总成绩是求和,计算平均分是除法运算,在C语言中完成这些操作要使用算术运算符和赋值运算符的相关知识。【任务实施】2.3 任务任务3:在屏幕上显示总成绩和平均分:在屏幕上显示总成绩和平均分printf()函数的调用格式为:printf(“格式化字符串”,参量列表)其中,格式化字符串包括两部分内容:(1)一部分是正常字符,这些字符将按原样输出;(2)另一部分是格式化规定字符,以“%”开始,后跟一个或几个规定字符,用来确定输出内容格
34、式。【任务实施】参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用“,”分隔,且顺序要一一对应。printf()函数的更多用法会在后面的任务中深入学习。最终,计算总成绩与平均分的程序如下:#include“stdio.h”main()int cj1=0;/*定义并初绐化cj1 */int cj2=0;/*定义并初绐化cj2 */int cj3=0;/*定义并初绐化cj3 */float sum=0;/*定义并初绐化sum */float aver=0;/*定义并初绐化aver*/printf(Please enter Jacks achievemen
35、ts:n);scanf(%d%d%d,&cj1,&cj2,&cj3);sum=cj1+cj2+cj3;aver=sum/3.0;printf(sum=%d,average=%fn,sum,aver);getch();【知识拓展】1 1scanf()scanf()函数在接收字符数据的方法函数在接收字符数据的方法当使用scanf()函数连续输入多个字符时,存在一个问题。例如:#include“stdio.h”main()char c1,c2;scanf(“%c”,&c1);scanf(“%c”,&c2);printf(“c1 is%c,c2 is%c”,c1,c2);getch();【任务实施】运
36、行该程序,从键盘输入一个字符A后回车(要完成输入必须回车),在执行scanf(“%c”,&c1)时,给变量c1赋值A,但回车符仍然留在缓冲区内,执行输入语句scanf(“%c”,&c2)时,变量c2输出的是一空行。如果输入AB后回车,那么输出结果为“c1 is A,c2 is B”。要解决以上问题,可以在第二个输入函数前加入清除函数fflush(),这个函数的功能是清空输入缓冲区。修改后的程序如下:【任务实施】#include“stdio.h”main()char c1,c2;scanf(“%c”,&c1);fflush(stdin);scanf(“%c”,&c2);printf(“c1 is
37、%c,c2 is%c”,c1,c2);getch();感谢您的关注!任务三 计算球体的周长与体积【行动目标】u区分常量与变量,掌握符号常量的使用u能够根据实际情况选用适当的数据类型u掌握算术运算和赋值运算的运算法则【任务描述】在生活中会有接触到很多球形的物体,例如,足球、篮球、乒乓球、网球等,这些都是生活中最常见的。编写一个计算球体体积的C程序,实现从键盘输入球体的半径,计算并输出该球体的体积。【任务分析】本任务也可以拆分成3个子任务,任务1是完成输入功能,即将球体的半径存储到计算机中;任务2是计算周长与体积;任务3是在屏幕上输出计算结果。【任务实施】3.1 方案方案1按照项目流程图,可以编写
38、出程序如下:#include“stdio.h”main()float radius=0;/*半径*/float circum=0;/*周长*/float volume=0;/*体积*/printf(“please enter radius:n”);【任务实施】3.1 方案方案1scanf(“%f”,&radius);circum=2*3.1415926*radius;volume=4.0/3*3.1415926*radius*radius*radius;printf(circum=%f,volume=%f,circum,volume);getch();【任务实施】1程序中的常量程序中的常量常量
39、是在程序运算过程中不变的量。常量在程序中经常直接出现。在上面的程序中,radius、length、volume是定义的浮点型变量,3.14159265、4.0是浮点型常量,2、3是整型常量,“please enter radius:”是字符串,n是特殊字符。可见对应各种数据类型,有整型常量、浮点型常量、字符型常量、字符串常量及特殊字符常量。在C语言中,整型常量是一个整数,它可以为正也可以为负。浮点型常量(又称实型常量)必须至少含有一个数字和小数点。它可以为正也可以为负。【任务实施】字符型常量是用单引号括起来的单个字符、单个数字或者单个特殊字符,例如:A、1、n等,一个字符型常量中最多只能存储一
40、个字符,其长度为1。字符串是用双引号括起来的多个字符,例“hello,world”。此外,C语言提供了一些特殊字符常量,称为“转义字符”,即反斜线后面跟一个字符或一个代码值表示。例如:n代表换行符。转义字符将在后面的项目中深入学习。【任务实施】2常量与变量的区别常量与变量的区别常量:在程序执行过程中,其值不发生改变的量称为常量。变量:在程序执行过程中,其值可变的量称为变量。在程序中,常量是可以直接引用的,而变量则必须先声明后使用。常量与变量的本质区别,在于程序中的常量不占用任何存储空间,编译后不再更改。而变量在程序运行时可以随时改变,定义变量时,要先给变量分配存储单元,变量名对应一段存储空间。
41、程序要先定义变量的类型,决定占用的内存空间,才能通过变量对内存修改、存取。【任务实施】3项目方案项目方案1中存在的问题中存在的问题在上面的程序中,多次出现了 值3.1415926,如果想修改 值时要逐个修改,现有的程序不是科学的解决方案。遇到这样的问题,可以引入一个符号常量来优化上面的程序。【任务实施】3.2 方案方案2:符号常量的使用:符号常量的使用C语言中,常用一个标识符来代表一个常量,称为符号常量。符号常量在使用之前要先定义,定义格式如下:#define#define 符号常量名符号常量名 常量常量其中,符号常量名用于标识符,习惯上用大写字母,常量可以是数字常量,也可以是字符。例如:de
42、fine PI 3.1415926【任务实施】引入符号常量的好处有:(1)使用符号常量可以将复杂的常量定义为简明的符号常量,使得书写简单,而且不易出错。(2)便于修改程序,如程序中圆周率的精度要提高,只要修改符号常量的定义,而不需修改程序中每个出现圆周率的地方。(3)由于符号常量通常具有明确的含义,一见符号常量便可知道所表示的常量意义,可增加可读性和移植性。【任务实施】现在把上面的程序改写如下:#include“stdio.h”#define PI 3.1415926main()float radius=0;/*半径*/float circum=0;/*周长*/float volume=0;/
43、*体积*/printf(“please enter radius:n”);【任务实施】scanf(“%f”,&radius);circum=2*PI*radius;volume=4.0/3*PI*radius*radius*radius;printf(circum=%f,volume=%f,circum,volume);getch();【任务实施】符号常量一旦在定义后,不能在程序中进行赋值。例如:在上面的程序中不能再给符号常量PI重新赋值。符号常量实际上是一个宏定义命令,通过这个宏定义将常量定义为一个符号常量。在C语言程序中用符号常量代替常量,在编译时首先将符号常量被所定义的常量替换后才进行编
44、译,这个过程称为宏替换。【知识拓展】1C语言的数据类型语言的数据类型【任务实施】(1)基本数据类型)基本数据类型基本数据类型最主要的特点是,其值不可以再分解为其它类型。C语言中的基本数据类型有字符型char、整型int、短整型short int、长整型 long int、无符号型 unsigned、无符号长整型 unsigned long、单精度实型 float、双精度实型double。基本类型的分类及特点:类型说明符 所占字节 数的范围字符型char 1 -27(27-1)基本整型int 2 -215(215-1)【任务实施】类型说明符 所占字节 数的范围短整型short int 2 -21
45、5(215-1)长整型 long int 4 -231(231-1)无符号型 unsigned int 2 0(216-1)无符号长整型 unsigned long 4 0(232-1)单精度实型 float 4 10-37 1038双精度实型 double 8 10-307 10308【任务实施】(2 2)构造数据类型)构造数据类型构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在C语言中,构造类型有:数组类型、结构类型、联合类型。【任务实施】(3 3)指针类型
46、)指针类型指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个量在内存储器中的地址。(4 4)空类型)空类型在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定的数据类型的,应在函数定义及函数声明中说明。但是,也有一类函数,调用后并不需要向调用者返回函数值,这种函数可以定义为“空类型”。其类型说明符为void。【任务实施】2浮点型数据的表示方法浮点型数据的表示方法C语言中的浮点数有两种表示形式:(1)十进制小数形式它由数字和小数点组成(注意必须有小数点),例如:0.123、123.、123.0、0.0都是十进制小数形式。(2)指数形式例如:123e3、123E
47、3都代表123*103。注意字母e(或E)之前必须有数字,且e后面的指数必须为整数,如e3、2.1e3.5、e3、e 等都不是合法的指数形式。【任务实施】一个浮点数可以有多种指数表示形式。例如123.456e0、12.3456e1、1.23456e2、0.123456e3、0.0123456e 4、0.00123456e5等。其中的1.23456e2称为“规范化的指数形式”。即在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。例如2.3478e2、3.099E5、6.46832E12都属于规范化的指数形式,而12.908e10、0.4578E3、756e0则不属于
48、规范化的指数形式。一个浮点数在用指数形式输出时,是规范化的指数形式输出的。例如:若指定将实数5689.65按指数形式输出,输出的形式是5.68965e+003。【小组讨论与呈现作业】一、程序阅读题,指出程序中的错误,并调试运行。一、程序阅读题,指出程序中的错误,并调试运行。#include“stdio.h”#define PI 3.14159#define RI 5.5main()float fs=0;RI=6;fs=PI*RI*RI;printf(“Area=%f”,fs);getch();【小组讨论与呈现作业】二、编程题二、编程题1编写程序,求一个圆的面积,圆的半径要求从键盘输入。要求定义
49、符号常量PI=3.1415926。2已知三角形三边,编写程序求三角形面积。提示:(1)如果三角形的三个边长分别是a,b,c,则面积A的计算方法是:注意在C程序中如何表达这些数学表达式。(2)在程序中将使用sqrt()开平方根函数,要在程序中包含“math.h”文件。)()(2cSbSaSSAcbaS感谢您的关注!任务四 制作日历【行动目标】u掌握转义字符的使用方法,能够根据实际情况选用适当的转义字符u能够使用输出函数编写简单的界面【任务描述】设计并制作当月的日历。通过这个任务,大家将熟练掌握输出函数和转义字符的使用方法。【任务分析】我们可以先在纸上画出当月的日历,然后再使用输出函数分行输出。【
50、任务实施】4.1 设计日历的样式设计日历的样式在上图的日历是一共有9行,即要使用9个printf()输出函数,每个printf()输出函数输出一行内容,其中:第一行显示:|=2012-09=|第二行显示:|SUM MON TUE WED THU FRI SAT|第三行显示:|1|第四行显示:|2 3 4 5 6 7 8|【任务实施】第五行显示:|9 10 11 12 13 14 15|第六行显示:|16 17 18 19 20 21 22|第七行显示:|23 24 25 26 27 28 29|第八行显示:|30|第九行显示:|=|【任务实施】在每行的输出内容中,注意到:1每行中都包括一些要原