模块2C程序数据描述与计算电子课件 C语言程序设计案例教程.pptx
《模块2C程序数据描述与计算电子课件 C语言程序设计案例教程.pptx》由会员分享,可在线阅读,更多相关《模块2C程序数据描述与计算电子课件 C语言程序设计案例教程.pptx(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计案例教程模块2 C程序数据描述与计算分析C语言对客观事物的数据描述和计算处理。建立课程小组成员的成绩表。假设学生成绩表如表21所示,试对各列数据进行适当类型的常量、变量描述与表达式的计算处理。任务描述模块2 C程序数据描述与计算(1)明确采用哪种类型的常量描述数据。(2)明确采用哪种类型的变量描述数据。(3)明确采用什么样的表达式来处理数据。(4)完成2位同学4个任务(t1,t2,t3,t4)的输入,计算每位同学任务的平均分(avg)并输出。(1)能够熟练地根据数据处理需求描述合适数据类型的常量,定义合适数据类型的变量。(2)能够熟练地根据数据处理需求正确编写表达式。(3)能够应
2、用某种C集成编译器进行C程序的编辑、编译和执行。(4)能够根据系统提示进行操作、检错和纠错,培养自我学习的能力。(5)培养严肃、严格和严谨的工作作风,表达式编写和代码编写一丝不苟。任务目标模块2 C程序数据描述与计算#include main()int t1,t2,t3,t4,i=1;float avg;printf(请输入第%d位同学4个任务的成绩:,i);scanf(%d%d%d%d,&t1,&t2,&t3,&t4);/*输入4个任务成绩*/avg=(float)(t1+t2+t3+t4)/4;/*求4个任务的平均成绩*/printf(%d 刘延运%4d%4d%4d%4d%6.1fn,i,
3、t1,t2,t3,t4,avg);/*输出学生的信息*/i+;printf(请输入第%d位同学4个任务的成绩:,i);scanf(%d%d%d%d,&t1,&t2,&t3,&t4);源代码展示模块2 C程序数据描述与计算avg=(float)(t1+t2+t3+t4)/4;printf(%d 孙燕%4d%4d%4d%4d%6.1fn,i,t1,t2,t3,t4,avg);源代码展示源代码展示程序运行结果如图2-1所示。模块2 C程序数据描述与计算首先分析成绩表中的各个数据项,学生名字选用字符串原样输出,4个任务成绩(t1、t2、t3、t4)定义为整型,平均成绩(avg)定义为实型。在计算平均成
4、绩时由于4个任务总分(t1+t2+t3+t4)为整型,为了保证平均分得到合理的实数,采用强制转换(float)(t1+t2+t3+t4)。对每个学生的数据处理语句基本一致,用i+来计数学生人数。C语言的数据结构是以数据类型的形式出现的。在C语言中,每个数据都属于一个确定的数据类型,不同类型的数据在数据表示形式、合法的取值范围、占用内存空间大小以及可以参与的运算等方面有所不同。运算符是程序中完成各种操作的操作码,C语言中运算符的种类很多,本模块重点介绍常用的算术运算符、赋值运算符、自增自减运算符等。程序分析2.1 常量与变量在C语言中基本数据有常量和变量之分,它们分别属于不同的数据类型。在程序中
5、对用到的所有数据都必须指定其数据类型,常量可以不经说明而直接引用,变量则必须先定义后使用,而要标识一个常量或变量,必须采用合法的标识符。2.1.1标识符任何一种语言,都有自己的符号、单词以及语句的构成规则。C语言作为计算机的一种程序设计语言,也有自己的字符集、标识符以及命名规则。用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。1.关键字C语言系统设置特定含义、专门用途的字符序列称为关键字。关键字不能作为其他用途,只能小写。例如,用来说明变量类型的标识符int、double以及if语句中的if、else等都已有专门的用途,它们不能再用作变量名和函数名。2.1.
6、1标识符2.预定义标识符所谓的预定义标识符,是指在C语言中预先定义并具有特定含义的标识符,如C语言提供的库函数的名字(如printf)和预编译处理命令(如define)等。C语言允许把这类标识符重新定义另作他用,但这将使这些标识符失去预先定义的原意。鉴于目前各种计算机系统的C语言都一致地把这类标识符作为固定的库函数或预编译处理中的专门命令使用,因此为了避免误解,建议用户不要把这类预定义标识符另作他用。3.用户标识符2.1.1标识符由用户根据需要定义的标识符称为用户标识符,又称为自定义标识符。用户标识符一般用来给常量、变量、函数、数组、类型、文件等命名。用户标识符命名规则如下。(1)只能由字母、
7、数字和下划线组成,且第一个字符必须为字母或下划线。(2)有大小写之分,如sum、SUM和Sum是3个不同的标识符。在C程序中,变量名使用小写,常量名用大写,但不绝对。(3)ANSI C没有限制标识符长度,但各个编译系统都有自己的规定和限制。有的系统取8个字符,Turbo C则允许32个字符。2.1.1标识符(4)标识符不能与“关键字”同名,最好也不与“预定义标识符”同名。(5)标识符命名应当有一定的意义,做到见名知义,以增加程序的可读性。最好使用英文单词及其组合,便于记忆和阅读,尽量少用汉语拼音来命名。例如:合法的用户标识符:a1、x2、s_1、s_2、_3、ggde2f_1。不合法的用户标识
8、符:df 1、1a、dsina、s*b、+d。2.1.2常量在程序的运行过程中,其值不能改变的量称为常量。1.常量的类型在C语言中,有整型常量、实型常量、字符型常量和字符串常量等。整型常量还可以进一步分为短整型常量、长整型常量等。整型常量和实型常量又称为数值型常量,它们有正负之分。基本整型常量只用数字表示,不带小数点,如12、0、-3为整型常量。实型常量必须用带小数点的数表示,如4.6、-1.23为实型常量。a、A为字符型常量,abc和hello是字符串常量。2.符号常量2.1.2常量在C程序中可以用一个符号名代表一个常量,称为符号常量。这个符号常量必须在程序中指定,并符合标识符的命名规则。用
9、define定义时,前面必须以“#”开头,命令行最后不加分号。为了区别于一般的变量名,符号常量通常用大写字母。【例2-1】计算圆的面积。程序代码如下。#include#define PI 3.14159main()2.1.2常量float r,area;r=5.0;area=PI*r*r;printf(area=%fn,area);程序执行结果如下。area=78.539750程序中使用“#define”命令行定义PI代表一串字符3.14159。在对程序编译时,凡程序中出现PI的地方,编译程序均用3.14159来替换。使用符号常量有如下好处。(1)含义清楚,见名知意。(2)修改方便,一改全改。
10、2.1.3变量在程序的运行过程中,其值可以改变的量称为变量。程序中用到的所有变量都必须有一个名字作为标识,变量的名字由用户定义。关于变量的使用,要注意以下几点。(1)变量名必须符合标识符命名规则,一个变量实质代表内存中的某个存储单元。变量名在程序运行过程中不会改变,变量的值可以改变。(2)C语言中的变量必须“先定义,后使用”。对变量的定义通常放在函数体内的前部,但也可以放在函数的外部或复合语句的开头。只有声明过的变量才可以在程序中使用,这使得变量名的拼写错误容易发现。声明的变量属于确定的类型,编译系统可方便地检查变量所进行运算的合法性。在编译时根据变量类型可以为变量分配相应的存储空间。(3)像
11、常量一样,变量也有整型变量、实型变量、字符型变量等不同类型。2.2 基本数据类型在C语言中基本数据有常量和变量之分,它们分别属于不同的数据类型。在程序中对用到的所有数据都必须指定其数据类型,常量可以不经说明而直接引用,变量则必须先定义后使用,而要标识一个常量或变量,必须采用合法的标识符。2.2.1整型数据1.整型数据的分类C语言中整型数据有短整型(short int)、基本整型(int)、长整型(long int)、无符号型(unsigned)。若不指定变量为无符号型,则变量隐含为有符号型(signed)。表2-2列出了ANSI标准定义的整型数据类型。Turbo C的规定与此表一致。2.2.1
12、整型数据不同的编译系统或计算机系统对这几类整型数所占用的字节数有不同的规定。C标准没有具体规定各类整数类型所占用的字节数,只要求long型数据长度不短于int型,short型不长于int型。具体如何实现,由各计算机系统自行决定。例如,Turbo C中的short、int都是16位,long是32位;而Visual C+中的int、long都是32位,short是16位。2.2.1整型数据2.整型常量值为整数的常量称为整型常量,简称为整常量或整数。它包括正整数、负整数和零。C语言中的整型常量有以下3种表示形式。(1)十进制:就是通常意义下的十进制整常数。例如,123、-456、0。(2)八进制:
13、以0开头,后面跟几位数字(由数字07组成)。例如,0123=(123)8=(83)10;-011=(-11)8=(-9)10。(3)十六进制:以0 x或0X开头,后面跟几位数字(数字由09、AF组成)。例如,(0 x123)16=(291)10,(-0 x12)16=(-18)10。2.2.1整型数据整型常量有短整型、基本整型、长整型和无符号型等不同类型。整型常量后可以用u或U明确说明数据为无符号整数,用l或L明确说明为长整型数。例如,011L表示长整型的八进制数,代表十进制数9,在计算机中占4字节;011表示整型的八进制数,也代表十进制数9,但在计算机中占2字节。3.整型变量整型变量可以分为
14、短整型、基本整型、长整型和无符号型等不同类型。例如:short s;/*定义s为短整型变量*/int i,j,k;/*定义i、j、k为基本整型变量*/2.2.1整型数据long n;/*定义n为长整型变量*/定义以上语句后,编译程序会为s、i、j、k、n分别开辟相应字节的空间,而没有在存储单元中存放任何值。此时变量中的值是无意义的,称变量值“无定义”。C语言规定,可以在定义变量的同时给变量赋初值,也称为初始化。例如:int i,j,s=0;/*定义i、j、s为整型变量,s初始化为0*/2.2.2实型数据1.实型数据的分类C语言中的实型数据有单精度(float)、双精度(double)和长双精度
15、(long double)三类。有关规定如表2-3所示。ANSI C没有具体规定每种类型数据的长度、精度和数值范围,由C编译系统自定。表2-3列出的是微机上常用的C编译系统(如Turbo C,Borland C)的情况。2.2.2实型数据注意C语言中实型与数学中实数的区别。数学中实数的值是无限的,而实数在计算机中使用有限的存储单元存储,所以值是有限的。另外,数学中的精度可以是任意的,甚至是无限的,而计算机只能以有限个有效位表示精度。程序设计者可根据值域和精度的实际需要,选用适当的实型类型。2.实型常量实型常量又称为实数或浮点数。在C语言中,实型常量只能用十进制表示,有以下两种表示形式。(1)十
16、进制小数形式。由数字和小数点组成(必须有小数点),如123.0、.123(只有小数位)、123.(只有整数位)、0.0。2.2.2实型数据(2)指数形式,又称科学表示法。这种表示形式包含数值部分和指数部分,数值部分的表示方法同十进制小数,指数部分是一个可正可负的整型数,这两部分用字母e或E连接起来。这种形式类似于数学中的指数形式。在数学中,一个数可以用幂的形式来表示,如123103,在C语言中,123e3、1.23E5都是它的合法表示。使用指数形式表示很大或很小的数比较方便。使用实型常量需要注意以下几点。(1)字母e或E之前必须有数字,e后面的指数必须为整数。例如,e3、2.1e3.5、.e3
17、、e都不是合法的指数形式。2.2.2实型数据(2)规范化的指数形式。这种形式要求在字母e或E之前的小数部分,小数点左边应当有且只有一位非0数字。例如,2.3478e2、3.0999E5、6.46832e12都是规范化的指数形式。用指数形式输出实数时,都是按规范化的指数形式输出的。(3)许多C编译系统将实型常量作为双精度实数来处理,这样可以保证较高的精度,缺点是运算速度降低。在实数的后面加字符f或F,如1.65f,使编译系统按单精度处理实数。3.实型变量C语言中的实型变量分为单精度型(float)、双精度型(double)和长双精度型(long double)。2.2.2实型数据对于每一个实型变
18、量也都应该先定义后使用,可以在定义变量的同时进行初始化。例如:float a,b;/*定义a、b为单精度型变量*/double x,y,z;/*定义x、y、z为双精度型变量*/double t=1.0,s=0;/*定义变量t、s为双精度型变量,同时进行了初始化*/由于实型数据的存储是有误差的,使用时要注意以下几点。(1)不要试图用一个实数精确表示一个大整数,因为浮点数是不精确的。(2)实数一般不判断“相等”,而是判断接近或近似。(3)避免直接将一个很大的实数与一个很小的实数相加或相减,否则会“丢失”小的数。(4)分析数据,根据需要选择数据类型是单精度还是双精度。2.2.3字符型数据在处理数据时
19、,经常会遇到像姓名、性别和住址等具有文本特征的数据,这些数据属于字符型数据。1.字符常量用单引号括起来的单个字符为字符常量。例如:合法的字符常量:a,A,5,0,,。不合法的字符常量:a(双引号不合法)、abc(超过1个字符不能用单引号)。字符常量在内存中占1字节,存放的是字符的ASCII码值。字符常量A的值为65,字符常量a的值为97。2.转义字符常量转义字符是以“”开头的具有特殊含义的字符,这些字符常量也必须括在一对单引号内。例如,n代表回车换行。表2-4列出了C语言中的转义字符。2.2.3字符型数据使用转义字符需要注意以下几点。(1)转义字符常量,如n、101、141只代表一个字符。(2
20、)反斜线后的八进制数可以不用0开头,如101代表的就是字符常量A。(3)反斜线后的十六进制数只能由小写字母x开头,不允许用大写字母X,也不能用0 x开头,如x41代表字符常量A。3.字符串常量2.2.3字符型数据字符串常量是由双引号括起来的一串字符,如How are you?CHINAa。C语言规定:在每个字符串的结尾加一个字符串结束标志,以便系统据此判断字符串是否结束。C语言规定以0(ASCII码为0的字符)作为字符串结束标志。注意字符常量与字符串常量的区别。例如,a字符型常量占1字节,而a字符串常量占2字节;abn是字符串常量,占4字节;代表一个空串,占1字节存放0。字符串只能是常量,C语
21、言中没有字符串变量。4.可对字符量进行的运算字符数据以ASCII码存储的形式与整数的存储形式类似,这使得字符型数据和整型数据之间可以通用(当作整型量)。例如:B-A=66-65=1 a+1=97+1=bA+32=65+32=97=ab-32=98-32=66=B/*大小写字母之间的转换*/9-0=57-48=94+0=4+48=52=4/*数字字符与整数值之间的转换*/2.2.3字符型数据字符量还可以进行关系运算。例如,Aa,值为真。因为在ASCII码表中,A的值为65,小于a的值97。5.字符型变量字符型变量用来存放字符数据,同时只能存放一个字符。在C语言中,字符型变量用关键字char进行定
22、义,在定义的同时也可以初始化。例如:char c1,c2,c3;char ch=A;所有编译系统都规定以1字节来存放一个字符,或者说,一个字符型变量在内存中占1字节。当把字符放入字符型变量时,字符型变量中的值就是该字符的ASCII码值,这使得字符型数据和整型数据之间可以通用(当作整型量)。具体表现为如下几点。(1)可以将整型数据赋值给字符型变量,也可以将字符数据赋值给整型变量。(2)可以对字符数据进行算术运算,相当于对它们的ASCII码进行算术运算。2.2.3字符型数据(3)一个字符数据既可以以字符形式输出,也可以以整数形式输出。【例2-2】大小写字母的转换。程序代码如下。#include m
23、ain()char c1,c2,c3;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(n%c,%cn,c1,c2);2.2.3字符型数据printf(%d,%d n,c1,c2);程序运行结果如下。A,B65,66程序的作用是将两个小写字母转换为大写字母。在ASCII码表中,小写字母比对应的大写字母的ASCII码大32,所以直接减32实现从小写字母到大写字母的转换;第一个printf函数将字符以字符形式输出,第二个printf函数将字符以整数形式输出。2.3 C语言的运算符和表达式C语言的运算符非常丰富,除了提供一般高级语言的算术运算符、关系运算符和逻辑运算符外,还提供赋
24、值运算符、位操作运算符、自增自减运算符等,甚至数组下标、函数调用都作为运算符。本节主要介绍算术运算符、赋值运算符、自增自减运算符和逗号运算符。2.3.1算术运算符和算术表达式1.算术运算符常见的算术运算符包括+、-、*、/、%和正负号。它主要对数值型数据进行一般的算术运算,其运算规则、运算对象、结合性如表2-5所示。2.3.1算术运算符和算术表达式有关算术运算符需要说明以下几点。(1)除法运算符/,如果两个整数相除,那么结果为整数,如5/3的结果为1,舍去小数部分。如果两个运算对象中至少有一个是实型,那么结果就是实型。(2)如果参加+、-、*、/运算的两个数有一个为实数,则结果为double型
25、,因为所有实数都按double型进行计算。(3)求余运算符%,要求两个操作数均为整型,结果为两数相除所得的余数。求余也称为求模。一般余数的符号与被除数符号相同。例如,8%5=3,-8%5=-3,8%-5=3。(4)双目运算符优先级,*、/、%同级,+、-同级,并且前三个高于后两个。2.算术表达式算术表达式是指用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语言语法规则的表达式。运算对象可以是常量、变量、函数等。例如,a*b/c-1.5+a。2.3.1算术运算符和算术表达式需要注意的是,C语言算术表达式与数学表达式的书写形式有一定的区别,具体如下。(1)C语言算术表达式的乘号(*)不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模块2C程序数据描述与计算电子课件 C语言程序设计案例教程 模块 程序 数据 描述 计算 电子 课件 语言程序设计 案例 教程
限制150内