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