收藏 分销(赏)

第2章基本数据类型与简单程序设计.ppt

上传人:xrp****65 文档编号:14064319 上传时间:2026-06-17 格式:PPT 页数:56 大小:582.50KB 下载积分:10 金币
下载 相关 举报
第2章基本数据类型与简单程序设计.ppt_第1页
第1页 / 共56页
第2章基本数据类型与简单程序设计.ppt_第2页
第2页 / 共56页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,2,章 基本数据类型与简单程序设计,2.1 C,语言的基本数据类型,2.2,常量和变量,2.3,赋值语句,2.4,数据的输出,2.5,数据的输入,2.6,运算符和表达式,本章小结,2,。,1 C,语言的基本数据类型,类型标识符,名 称,字节数,范 围,i,nt,或,short,整型,2,-2,15,+2,15,-1,(,-3276832767,),l,ong,长整型,4,-2,31,+2,31,-1,(,-2147483648,2147483647,),c,har,字符型,1,-2,7,+2,7,-1,(,-128 +127,),float,浮点型(实型),4,10,-37,10,+38,(绝对值),double,双精度浮点型,8,10,-3,0,7,10,+3,0,8,(绝对值),常用标准数据类型,2,。,2,常量和变量,2,。,2,。,1,常量和符号常量,在程序的运行过程中,其值保持不变的量称为常量。,#define PI 3.1415926,此后,凡在文件中出现的,PI,均可用,3.1415926,来代替。,2,。,2,。,2,整型常量,除了我们比较熟悉的整型常量如:,100,、,0,、,-256,之外,,Turbo C2.0,中还有其他形式的整型常量。见表,2-2,。,例 子,说 明,-1234,int,型 十进制 整型常量,01234,int,型 八进制 整型常量(以,0,开头),0 x1234,int,型 十六进制 整型常量(以,0 x,或,0X,开头),0L,long,型 十进制 整型常量(以,l,或,L,结尾),例如:,0235,等于十进制数,157,,即,282+381+580=157,。,-0X23,等于十进制数,-35,。,任何类型的数据在计算机中都是以二进制补码形式存储的。,正数的补码等于其原码,而负数的补码等于其原码的反码,+1,。,例如:,0000 0000 0101 0011,表示,83,1111 1111 1010 1101,表示,-83,0000 0000 0000 0000 0000 0000 0101 0011,表示,83L,1111 1111 1111 1111 1111 1111 1010 1101,表示,-83L,2,。,2,。,3,浮点型常量,C,语言中的浮点类型主要分为单精度和双精度浮点型两种。,除了十进制数的浮点表示法(如,1234.56,)外,浮点数还可采用科学表示法:,1.23456e2 0.345E-3,出现在字母,e,(或,E,)之前的小数点,其左边和右边应有一位数字,在字母,e,(或,E,)之后必须是整数。,.123,、,1.34E1.2,均是非法的浮点数。,2,。,2,。,4,字符型数据,C,的字符常量是用单引号(即撇号)括起来的一个字符。,如,*,、,a,、,A,、,&,、,!,等都是字符常量。注意,,a,和,A,是不同的字符常量。,字符数据存放在内存时,并是不字符本身,而是字符的代码,称之为,ASCII,码。,部分字符对应的,ASCII,码,字符,回车,空格,*,+,0,1,2,3,9,ASCII,码,13,32,42,43,48,49,50,51,57,字符,A,B,C,Z,a,b,c,z,ASCII,码,65,66,67,90,97,98,99,122,常用的转义字符有:,n,换行符(将当前位置移到下一行开头),t,水平制表符(跳到下一个,位置),b,退格,r,回车(将当前位置移到本行开头),f,走纸,反斜杠,单引号,”,双引号,转义字符看起来是两个字符,实际上只能算一个字符。,也可以使用,加上一个,13,位的,8,进制数或,x,加上一个,12,位的,16,进制数表示的,ASCII,码值来表示转义字符,例如:,0,表示空字符,33,或,033,表示,ESC,(,27,),07,表示响铃,x0A,表示换行(,10,)。,2,。,2,。,5,变量,在程序的运行过程中,值可以改变的量称为变量。,每个变量都有一个名字,称为变量名。,每个变量均必须进行变量说明,指明变量的类型,如:,int k=50;,变量名和符号常量名的命名方法相同,都是用标识符表示。,标识符就是一个名字,其命名必须按照一定的规则进行,只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线,不允许使用数字。,如下面是合法的标识符。,Class_1,_abc1,id,a1b2,sum,total,下面是不合法的标识符:,a b/*,标识符不能含空格符 *,/,1a/*,标识符不能以数字打头*,/,#abc/*,标识符不能使用,#*/,xyz-1,/*,标识符不要把减号“,-”,和下划线“,_”,混淆 *,/,注意:大写字符和小写字符被认为是两个不同的字符。,如:,a1,和,A1,是两个不同的变量。,变量和符号常量的不同之处在于:变量的值可以改变,而符号常量则不行。,例,2-1,int i,j,k;,long a1,a2;,上面两行语句定义了,3,个,int,型变量,i,j,k,和,2,个长整型变量,a1,、,a2,。,例,2-2,float x1,x2;/*,定义,2,个单精度浮点型变量*,/,double z1,z2;/*,定义,2,个双精度变量 *,/,float x;,double y;,x=123456.789;/*,给变量赋初值 *,/,y=123456.789;,2,。,3,赋值语句,所谓赋值,就是将一个数据存入一个连续的具有若干存储单元的存储空间中,该存储空间有一个名字,就是前面介绍的变量名。,对一个变量进行定义后,这个变量如果没有进行赋值,它的值是不确定的。,2,。,3,。,1,赋值语句的格式与功能,一般形式:,变量,=,表达式;,功能:,首先计算赋值号“,=”,右边表达式的值,,然后将结果值送给赋值号“,=”,左边的变量。,例如:,g=9.8;,g=10+20-9;,“=”,不是等号,而是赋值号。,例,2-1,char c1,c2,;,c1=a;,c2=b;,上面定义了,2,个字符型变量,c1,c2,,一个字符型变量可存放一个字符。,将一个字符常量存放到一个字符变量中,实际上并不是把该字符本身放到内存中,而是将该字符的相应的,ASCII,码存放内存单元中。,C,语言字符型数据与整型数据之间可以通用。,例,2-2,#include ,main(),char c1=a,c2;,int k;,k=c1;/*,将字符型变量,c1,赋给整型变量,k */,c2=97;/*,将整数,97,赋给字符型变量,c2 */,printf(%c,%c,%d,c1,c2,c1);,/*,字符变量既可按字符形式输出,亦可按整型输出 *,/,printf(n%d,%c,k,k);,/*,整型变量既可按整型形式输出,亦可按字符型输出*,/,getch();,运行结果:,a,a,97,97,a,例,2-3,将小写字母转换成大写字母。,#include ,main(),char c1,c2;,int i,j;,c1=a;,c2=c1-32;/*c2=A */,printf(%c,%c,c1,c2);,getch();,运行结果:,a,A,2,。,3,。,2,赋值语句中的类型转换,“=”,左边变量与右边表达式的数据类型不一致时,,C,编译系统会自动实现数据类型的转换。,转换的原则是,将赋值号右边的表达式值的类型转换成与左边变量相同的类型后再赋值。,例如:,int a;long b;char c;,a=b;,/*long,型变量,b,的值变换成,int,型后再赋给,a */,b=a;,/*int,型变量,a,的值变换成,long,型后再赋给,b */,b=a+c;,/*int,型,a+c,的值变换成,long,型后再赋给,b */,当右边表达式值的类型比左边变量的类型要长时,会对右边的数据进行截取,仅取出与左边变量类型相同的长度,这意味着,会丢失高位字节或高位字。,例,2-4,main(),int a=350,b;,char c;,c=a;,b=c;,printf(%d,%d,%d,a,c,b);,getch();,运行结果为:,350,94,94,2,。,4,数据的输出,2,。,4,。,1,字符输出函数,putchar(),函数,putchar(),的功能是把一字节的代码值所代表的字符输出到显示器上。,常用格式如下:,putchar(c);,其中参数,C,可以是字符常量、变量或字符表达式。,例,2-5,字符输出函数,putchar(),的功能,#include ,main(),char c=A;,putchar(c);/*,输出字符,A */,putchar(n);/*,输出换行符*,/,putchar(#);/*,输出字符,#*/,getch();,2,。,4,。,2,格式化输出函数,printf(),格式化输出函数是按指定的格式完成输出过程。,一般使用形式如下:,printf(,输出格式串,表达式表,);,其中,输出格式串包含“格式符”或非格式符。“格式符”以,%,开头后面跟一个字母。,格式符见表,2-4,。,格式符,功能说明,%c,按字符形式输出,%d,按十进制整数形式输出,%o,按八进制整数形式输出,%x,按十六进制整数形式输出,%f,按浮点形式输出,默认,6,位小数,%m.nf,按浮点形式输出,显示宽度不小于,m,,,n,位小数,printf(),函数的功能是凡遇格式符,就将对应的表达式的值按指定格式输出到显示器上,凡遇非格式符,则原样输出。输出格式串中的转换说明符与表达式的个数必须相同,它们按各自的先后顺序,一对应,如图,2-2,所示。,例如:,a=100;,b=200;,printf(%d+%d=%d n,a,b,a+b);,输出结果为:,100+200=300,(换行),例,2-8,#include ,main(),float x1=123.5678,x2=-4567.789;,printf(x1=%f,x2=%f n,x1,x2);,printf(x1=%8.2f t x2=%8.2f n,x1,x2);,getch();/*,按任意键*,/,printf(%c%3c n,*,*);,printf(%d%3d n,11,22);,运行结果为,x1=123.567802,x2=-4567.789062,x1=123.57 x2=-4567.79,(按任意键后显示),*,11 22,2,。,5,数据的输入,数据的输入,一般是以键盘为处理对象的,从键盘接受字符和数据。,字符输入函数,getchar(),和输出函数,putchar(),,是以一个字节的字符代码为单位来完成输入输出过程的。在程序中使用这两个函数时,要求在程序开头包含头文件,stdio.h,。即,#include ,2,。,5,。,1,字符输入函数,getchar(),功能是接收从键盘上输入的字符。,在程序中使用这个函数输入字符时,可以用另一个变量接收读取的字符,例如:,c=getchar();,例,2-9,字符输入函数,getchar(),的功能,#include ,main(),char ch;,ch=getchar();,printf(ch=%c,ch=%d n,ch,ch);getch();,当执行到语句:,ch=getchar();,时,计算机就会等待用户击键,(,等待输入,),。,格式化输入函数,scanf(),scanf(),函数的功能是按指定的格式从键盘接受输入信息。,一般使用格式如下:,scanf(“,格式串”,地址表,);,“,格式串”中既可以含格式符,也可以含非格式符。,在输入时,,凡遇非格式符,要求原样输入,;,凡遇格式符,按指定格式输入数据。,输入格式符表,格式符,功能说明,%c,接收一个字符型数据,%d,接收一个整数型数据,直到遇到空格、,或回车符,%f,接收一个浮点型数据,例,2-10,从键盘上输入直径,d,的值,然后计算圆的面积,area,和周长,len,。,#define PI 3.1415926,main(),float d,area,len,r;,printf(,请输入直径的值:,);,scanf(%f,r=d/2;,area=PI*r*r;,len=2*PI*r;,printf(,半径,r=%f,面积,S=%f,周长,L=%f n,r,area,len);,2.6,运算符和表达式,将运算符和运算对象按一定规则连接起来就成为表达式,.,2.6.1,算术运算符,运算符,运 算,优先级,例 子,(),圆括号,1,5/,(,1,3,),*,乘法,3,7*3=21,/,除法,3,7/3,.0,=,2.333333,7/3=2,%,模除,3,7,%,3,=,1,+,加法,4,7,+,3,=,10,-,减法,4,7,-,3,=,4,说明:,1.,模除运算是两个整数相除后取余数;要求,%,两边必须是整型数据。,2.,若算术运算符两边均为整数,则结果仍为整数。,例:,7/3=21/2=0,3.,若参加运算的两个数中有一个数为实数,则结果为,double,型。,4.,每个运算符都有一个优先级。如乘除的优先级高于加减。,在表达式求值时,按运算符的优先级高低次序进行。如先乘除,后加减。,()可改变运算次序。,若在一个运算符对象两侧的运算符的优先级相同,则按规定的“结合方向”处理。,有些运算符的结合方向为“从右到左”,即“右结合性”。,2.6.2,自增、自减运算符,“,右结合性,”,,优先级为,2,。,“+”,为自增运算符,“,-”,为自减运算符。,自增、自减运算表达式的结合方向都是自右至左。,但,+k,与,k+,的不同之处在于,:,前者先执行,k=k+1,,然后再使用,k,的值;,而后者则先使用,k,的值,再执行,k=k+1,。,例,2-11,#include ,main(),int i,j,k;,k=30;,i=k+;,/*,先将,k,值,30,赋给,i,再使,k,值增,1,,此时,k=31,i=30 */,printf(i=%d,k=%d,i,k);,j=+k;,/*k,值先增,1,,再将,k,值赋于,i,,此时,k=32,i=32 */,printf(n j=%d,k=%d,j,k);,运行结果:,i=30,k=31,j=32,k=32,2.6.3,赋值运算符,“,右结合性,”,,优先级为,14,。,赋值运算符为“,=”,例,2-12,main(),float k,x,y;,x=(k=9.8)+7;,printf(k=%5.1f,x=%5.1f n,k,x);,y=k=9.8+7;,printf(k=%5.1f,y=%5.1f n,k,y);,运行结果:,k=9.8,x=16.8,k=16.8,y=16.8,2.6.4,逗号运算符,逗号运算符将两个表达式连接起来。其优先级,15,,最低。,格式:表达式,1,,表达式,2,功能:先求解表达式,1,,再求解表达式,2,。整个逗号表达式的值为表达式,2,的值。在很多情况下,使用逗号表达式只是想求出各个表达式的值。,例,2-13,main(),int i,j=0123;,/*,012,是八进制数,其等价的十进制数是,83,*/,i=0 x3a;,/*,0 x3a,是十六进制数,其等价的十进制数是,58,*/,printf(%d,%d n,i,j);,运行结果:,58,83,2.7,常用的数学函数,在使用数学函数之前,要求在程序开头包含头文件,math.h,,即:,#include ,以下函数的参数类型和函数值类型均为实型。,sqrt(x),求,x,的开平方,,x0,。,pow(x,y),求,xy,exp(x),求,ex,abs(x),求,x,的绝对值,,n,为,int,整型数。,fabs(x),求,x,的绝对值,,n,为,double,型浮点小数。,log(x),求,x,的对数,以,e,为底,,x0,。,log10(x),求,x,的对数,以,10,为底,,x0,。,sin(x),求,x,的正弦,,x,的单位为弧度。,cos(x),求,x,的余弦,,x,的单位为弧度。,tan(x),求,x,的正切,,x,的单位为弧度。,rand(),产生,032767,范围内的整数随机数。,例,2-14,:,输入一个正数,x,,求,x,的开平方。,#include ,main(),float x,y;,printf(input x:);,scanf(%f,y=sqrt(x);,printf(sqrt(%7.2f)=%7.2f n,x,y);,运行程序的结果是:,input x:81,sqrt(81.00)=9.00,例,2-15,:使用,pow,函数求幂,a,b,。,#include ,main(),float a,b;,scanf(%f%f,printf(a=%.1f,b=%.1f,a b=%.1f n,a,b,pow(a,b);,输入:,5 3,回车,输出:,a=5.0,b=3.0,a b=125.0,2.8,顺序结构程序设计应用实例,一个结构化程序有三种基本结构,就是顺序结构、选择结构、循环结构。,顺序结构是一组按书写顺序执行的语句。,顺序结构程序是按语句的书写顺序执行的,.,例,2-19,:已知三角形的两边,A,、,B,及其夹角,a,,求第三边,C,及面积,S,。,题目分析:根据三角形公式可知;,C=,S=ABsin,程序如下:,#define PI 3.1415926,#include ,main(),float a,b,c,s,alfa;,scanf(%f%f%f,alfa=alfa*PI/180;,c=sqrt(a*a+b*b-2*a*b*cos(alfa);,s=a*b*sin(alfa)/2;,printf(a=%.1f,b=%.1f,alfa=%.1fn,a,b,alfa);,printf(c=%.1f,s=%.1f n,c,s);,getch();,若输入:,5 8 30,,则输出:,a=5.0,b=8.0,alfa=0.5,c=4.4,s=10.0,本章小结,C,语言的基本数据类型有:,char,、,int,、,long,、,float,、,double,等几种。,计算机中没有无限大或无穷大的数。与整型不同的是,浮点运算无法表示百分之百的精确,它受到精度的限制。,使用运算符时,应特别注意运算符的优先级、结合方向和运算对象的类型。,末尾有分号的是表达式语句。末尾没有分号的是表达式。,注意基本输入、输出函数,getchar,、,putchar,、,scanf,、,printf,等的使用,特别是输入输出格式要求。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服