第二讲数据与数据类型副本.ppt

上传人:sccc 文档编号:5988292 上传时间:2023-09-11 格式:PPT 页数:43 大小:434.04KB
返回 下载 相关 举报
第二讲数据与数据类型副本.ppt_第1页
第1页 / 共43页
第二讲数据与数据类型副本.ppt_第2页
第2页 / 共43页
第二讲数据与数据类型副本.ppt_第3页
第3页 / 共43页
第二讲数据与数据类型副本.ppt_第4页
第4页 / 共43页
第二讲数据与数据类型副本.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《第二讲数据与数据类型副本.ppt》由会员分享,可在线阅读,更多相关《第二讲数据与数据类型副本.ppt(43页珍藏版)》请在三一办公上搜索。

1、第二章 变量与计算问题,教材:石跃祥 C语言程序设计教程主讲:王冬丽2012年2月23日,2.1变量与数据类型,变量:在程序运行过程中,其值可以改变的量命名规则:以标识符来命名。即一个或多个字母(大写或小写)、数字或下划线的字符序列,且第一个字符必须是字母或下划线举例:如总和用sum,计数用count(做到见名知义)!注意:1 变量不能用C语言的关键字来命名 2不能与C标准库函数名同名 3大小写敏感,2.1变量与数据类型,例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above

2、$123,2.1变量与数据类型,数据类型:任一变量都与一确定的数据类型相对应。这个类型决定了该变量的取值范围、相关内存的大小、数据的组织形式以及可以应用其上的操作集。所以程序员不但关心变量的表现形式,还关心变量的(当前)值和它的取值范围以及能对它施加什么样的运算。,数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作,2.1变量与数据类型,2.1变量与数据类型,数据类型前面还可以加修饰符,以便更准确地适应需求修饰符:signed(有符号)、unsigned(无符号)、long(长符型)、short(短符型)signed char char unsigned int long

3、int short double,short int short 短整型,整型,字符型,实型,有,无,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:,floatdouble区别,2.1变量与数据类型,signed int 与 unsigned int在占用字节数是一样的不同的是signed int 有一个位用来表示符号位,以来区分数的正负,而unsigned int 没有这一符号位,2.2定义变量与初始化,变量定义变量必须先定义后才能被引用。变量定义的基本格式是:数据类型名 变量名;,举例:int i;/*定义i为整型变量*/float price;/*定义price

4、为单精度实型变量*/,一个语句可定义多个变量:int i,j,k;,/*定义了三个整型变量i,j和k*/,2.2定义变量与初始化,变量初始化一个变量被定义后,其值是不确定的。如果要确保变量在定义后就具有确定的值,就需要在定义的同时为变量指定一个初始值,我们称之为给变量初始化。格式为:变量数据类型名 变量=表达式;,举例:int a=2,b,c=4;float data=3.67;char ch=A;int x=1,y=1,z=1;int x=y=z=1;,2.2定义变量与初始化,下列这三个定义语句完全等价。):int isum;/*int总是隐含为带符号*/signed int isum;si

5、gned isum;下面这两个定义语句完全等价。unsigned short int isum;/*无符号短整型*/unsigned short isum;直接引用未初始化的变量是个常见的错误,可能还很难发现。所以,在大多数情况下,定义变量的同时进行初始化是一个明智的方法。,2.2定义变量与初始化,变量定义位置:一般放在函数开头,例2 float a,b,c;c=a%b;,例1 int student;stadent=19;,/Undefined symbol stadent in function main,/Illegal use of floating point in function

6、 main,main()int a,b=2;a=1;data=(a+b)*1.2;float data;printf(“data=%fn”,data);,2.3 变量赋值,赋值表达式的格式:变量=表达式对变量的赋值是一个覆盖的过程举例:price=0.5;/将0.5赋值给price count=100;/将100赋值给count sum=price*count;/将price与count乘积赋值给sum,#include int main()int a=0;int b=1;int c=6;int d;c=a+b;d=c-8;printf(“d=%dn,d);,2.3 变量赋值整型变量赋值,整型

7、变量赋值例 int i;i=2.56;/结果i=2;,例:a=b=c=5 a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2),2.3 变量赋值实型变量赋值,实型变量float:占4字节,提供7位有效数字double:占8字节,提供1516位有效数字,/*本程序考察实数表示的误差*/#include int main()float r1,r2;/*定义变量 r1,r2为单精度型*/double x1,x2;/*定义变量 x1,x2为双精度型*/r1=12345.12345678;/*为r1赋值,以下语句类似*/r2=123.123456789;x1=12345

8、.123456789;x2=1234567891234.123456789;printf(r1=%ftr2=%fnx1=%ftx2=%fn,r1,r2,x1,x2);,程序输出为:r1=12345.123047 r2=123.123459 x1=12345.123457 x2=1234567891234.123500,2.3 变量赋值字符型变量赋值,字符变量的取值是字符常量,即单个字符。字符变量的类型名是char。字符值是以 ASCII码的形式存放在变量的内存单元之中的。举例:char a,b=b;可以把字符变量看成是整型量,char与int数据间可进行算术运算。语言允许对整型变量赋以字符值,

9、也允许对字符变量赋以整型值在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。,/*本程序说明字符型量可以作算术运算(字符型变量赋值例1)*/#include int main()char chA,chB,cha=a,chb=98;chA=cha-32;/*将小写字母a转换为大写字母A*/chB=chb-32;/*将小写字母b转换为大写字母B*/printf(cha=%c,cha=%dn,cha,cha);printf(chb=%c,chb=%dn,cha,cha);printf(chA=%c,chA=%dn,chA,chA);printf(chB=%c,chB=%dn,chB,

10、chB);程序输出:cha=a,cha=97 chb=b,chb=98 chA=A,cha=65 chB=B,chB=66,/*本程序说明字符型量可以作算术运算(字符型变量赋值例2)*/#include#define PRICE 12.5 main()int num=3;float total;char ch1,ch2=D;total=num*PRICE;ch1=ch2-A+a;printf(“total=%f,ch1=%cn”,total,ch1);,运行结果:total=37.500000,ch1=d,隐式转换什么情况下发生运算转换-不同类型数据混合运算时赋值转换-把一个值赋给与其类型不同

11、的变量时输出转换-输出时转换成指定的输出格式函数调用转换-实参与形参类型不一致时转换运算转换规则:不同类型数据运算时先自动转换成同一类型,附加:不同类型数据间的转换,char ch;int i;float f;double d;,ch/i+f*d-(f+i),例1,一般形式:(类型名)(表达式)例:(int)(x+y)(int)x+y(double)(3/2)(int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变,例 main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,i=3,精度损失

12、问题,显式转换(强制转换),2.4 输入函数 scanf(),通过终端输入(如键盘、鼠标等),也称为标准输入(standard input),直接向终端输出(如显示器、打印机等),也称为标准输出(standard output)。C语言本身没有提供输入输出语句,C语言中的所有I/O操作都是通过函数调用来实现,而这些并非C语言一部分的输入输出函数均以目标级程序的方式提供,并存放在一个C标准函数库中。每一个标准库都有一个相应的头文件,该头文件包含了该库中所有函数的函数原型及其相关信息。在调用这些库函数时,要用预处理命令“#include”将有关的“头文件”包括到用户源程序中。标准输入输出库函数对应

13、的头文件是“stdio.h”。stdio是standard input&output的缩写。因此,读者在调用标准输入输出库函数时,你的源程序开头应该有如下编译预处理命令:#include,#include,#include#include#include 一般会把用来#include 的文件的扩展名叫.h,称为头文件。#include文件的目的是把多个编译单元(c文件或cpp文件)公用的内容,单独放在一个文件里减少整体代码尺寸;或者提供跨工程公共代码,标准库头文件,标准输入输出头文件,标准数学函数库文件,2.4 输入函数 scanf(),格式输入函数的一般格式scanf(”格式控制字符串”,地

14、址列表);格式控制字符串规定了数据的输入格式,是以%开头的字符串地址列表是在变量名前加上地址操作符,地址列表,非格式字符,格式说明,2.4 输入函数 scanf(),常见错误scanf(%d,%fn”,这样做是不合法的,输入数据时不能规定精度,错误检查!把scanf里面除了%d%f%i%c 等等之类的模板之外的所有东西都去掉!,d 输入十进制整数(有符号)u 输入无符号的十进制整数o 输入八进制整数x 输入十六进制整数c 输入单个字符s 输入字符串,以非空字符开始,遇第一个 空白字符结束f 输入十进制小数e 以标准指数形式输入,2.4 输入函数 scanf()scanf格式字符,l 加在d、o

15、、x、u前:输入长整型 加在f、e 前:输入双精度型L 加在f、e 前:输入long double型h 加在d、o、x 前:输入短整型m 表示数据占用的宽度*本输入项在读入后不赋给相应的变量,2.4 输入函数 scanf()scanf附加格式说明符,#include main()int a,b;printf(Please input a and b:);scanf(%2d%*2d%2d,Please input a and b:,a=12,b=56,a+b=68,123456,2.4 输入函数 scanf()例1,#include main()int a,b;printf(Please inp

16、ut a and b:);scanf(%2d%*2d%2d,Please input a and b:,a=12,b=5,a+b=17,12345a,2.4 输入函数 scanf()例1,#include main()int a,b;scanf(%d%d,问题1:当要求程序输出结果为 a=12,b=34时,用户应该如何输入数据?,12 34,2.4 输入函数 scanf()输入数据的格式控制(例2),#include main()int a,b;scanf(%d%d,问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为:12,34时,应修改程序中的哪条语句?怎样修改?,scanf(%d,

17、%d,2.4 输入函数 scanf()输入数据的格式控制(例2),#include main()int a,b;scanf(%d%d,问题3:语句scanf(%d%d,时,用户应该如何输入数据?,a=12,b=34,2.4 输入函数 scanf()输入数据的格式控制(例2),#include main()int a,b;scanf(%d%d,问题4:限定用户输入数据为以下格式为 1234 同时要求程序输出结果为a=12,b=34,scanf(%2d%2d,2.4 输入函数 scanf()输入数据的格式控制(例2),#include main()int a,b;scanf(%d%d,问题5:限定

18、用户输入数据为以下格式为1234 同时要求程序输出结果为a=12,b=34,scanf(%d%d,2.4 输入函数 scanf()输入数据的格式控制(例2),#include main()int a,b;scanf(%d%d,问题6:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入,scanf(%d%*c%d,2.4 输入函数 scanf()输入数据的格式控制(例2),基本算术运算符:+-*/%结合方向:具有左结合性优先级:-*/%-+-(2)(3)(4)说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据,例 5/2=-5

19、/2.0=,例 5%2=-5%2=1%10=5%1=5.5%2,2,-2.5,1,-1,1,0,(),2.5 算术运算符,作用:使变量值加1或减1种类:前置+i,-i(先执行i+1或i-1,再使用i值)后置 i+,i-(先使用i值,再执行i+1或i-1),例 j=3;k=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,自增、自减运算符+-,2.5 算术运算符,说明:+-不能用于常量和

20、表达式,如5+,(a+b)+-结合方向:具有右结合性优先级:-+-*/%-+-(2)(3)(4),例1-i+i=3;printf(“%d”,-i+);,-(i+),/-3,2.5 算术运算符,例2+i+,+(i+),2.6 数学函数,使用说明:,1.表中函数的自变量取值应有意义。sqrt(1)sqrt(-1)asin(0.5)asin(2)2.以上函数的返回值均为双精度型。3.使用数学函数时应在该程序中加上预处理命令:#include,用于按指定格式向标准输出设备(屏幕)输出。有两种形式:,printf(字符串);,例如,下面的语句:printf(How are you!n);是在屏幕上输出这

21、样一行:How are you!,这种形式的输出并没有指定输出格式。,2.7输出函数pringtf(),“格式控制串”是由0个或多个格式转换说明组成的一个字符串序列。(见15页,表1-1),printf(“%d”,a);,printf(%d%f,a,x);,printf(a=%d,b=%d,a+b=%dn,a,b,a+b);,printf(“a=%-d,x=%+8.2f,x+y=%Lfn,a,x,x+y);,左对齐,正数也要加正号,输出共占8位,其中小数占两位,输出为long double型,另一种形式是:,printf(格式控制串,参数表),本章小结,变量算术运算符输入函数输出函数数学函数,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号