C语言数据类型与基本输入输出.pptx
第二节 常量u什么是常量?有几类?常量是指在程序过程中不可以改变的量(1)可以分为:字面常量:是从该常量本身就可以知道该量的大小及类型。如 3.14159,3,“123”,。符号常量:是用一个字符来表示一个常量#define PI 3.14159(2)根据数据类型也可分:整型常量、实型常量、字符常量和字符串常量。(3)标识符第二章 数据类型 C语言程序设计高职教材第1页/共59页整型常量 整型常量有三种表示:(1)十进制表示法:如 23,127,-256,35535(2)八进制表示法 如 0123,020,-054等(3)十六进制表示法 如 0 x10,0 xff,0 x1000,0 xffff,-0 xab注意事项1、在以前数学里,一个数前面加零对结果没有影响,但C语言中,前面加零与不加零完全不一样。如012,12是二个不同的数。2、如093是一个非法的数第二章 数据类型 C语言程序设计高职教材第2页/共59页实型常量 二种表示方法:(1)小数表示:如123.34(2)指数表示:尾数用e表示指数 如-1.32e3(规范化的指数形式)23.4e-2(非规范化的指数形式)第二章 数据类型 C语言程序设计高职教材第3页/共59页(3)实型常量的类型(必须知道)u实型常量不定义类型,系统按照双精度处理。f=2.45678*4523.65 若在数的后面加f,如1.65f,按单精度处理。u实型常量可赋给float,double,long double变量。第二章 数据类型 C语言程序设计高职教材第4页/共59页字符常量(1)普通字符常量 就是用单撇号括起来的一个字符或者其ASCII码。(2)转义字符常量 该字符代表的意义不能直接从字符的表面看得出来。有其另外的意义。第二章 数据类型 C语言程序设计高职教材如 A,a,1,*等也可以用ASCII码表示 65,97,49第5页/共59页转义字符常量(P24)(掌握)第二章 数据类型 C语言程序设计高职教材字符形式字符形式 含含 义义 ASCII代码代码(P324表)表)n它是一个字符,代表换行它是一个字符,代表换行 10t跳到该行下一个跳到该行下一个8的倍数位置的倍数位置 9b删格,删除前面一个字符删格,删除前面一个字符 8r回车,不换行回车,不换行 13f换页,将当前位置换到下页开头换页,将当前位置换到下页开头 12反斜杠符号反斜杠符号 92单引号单引号 39”双引号双引号 ”34ddd1到到3位位8进制数代表的字符进制数代表的字符xhh1到到2位位16进制数代表的字符进制数代表的字符第6页/共59页字符常量使用举例 main()printf(“HinnNice to meet youn”);printf(“HibbNice to meet youn”);printf(“hitNicettotmeettyoun”);printf(“to be deletedrLeaning C is a wonderful experiencen”);printf(“x41101”);输出结果:第二章 数据类型 C语言程序设计高职教材第7页/共59页输出结果:第二章 数据类型 C语言程序设计高职教材第8页/共59页字符串常量的表示(掌握)(1)用双引号括起来表示字符串常量 如“nice”,“Learning C is a wonderful exeperience for me”(2)引号里面可以是普通字符常量和转义字符常量第二章 数据类型 C语言程序设计高职教材第9页/共59页(3)字符串常量在内存的存放方式占据内存中的连续一片空间,其实际内存单元是字符个数加1,额外多一个是用来存放0,这是一个非常特殊的字符,其实不存在该字符,所有用它来表示字符串的结束,所以0是字符串的结束符。0-ASCII码为0的字符。如:“Hello”第二章 数据类型 C语言程序设计高职教材Hello0第10页/共59页标识符一、标识符:用来定义对象名称1、标识符的有效长度:1-32字符。一般不超过8个。2、标识符的第一个字符必须是26个字母和下划线。后继字符可以是26个字符,10个数字和下划线3、选择标识符时尽量做到:见名知意。第二章 数据类型 C语言程序设计高职教材第11页/共59页第三节 变量(重要)(1)变量:其值在程序过程中可以发生变化的量。(2)有关变量的几点说明:每个变量只能属一个类型每个变量都先说明,后使用每个变量都分配给一个内存单元,因此每个变量都有地址。(3)变量的取名规则(同标识符)规则1:只能用以下字符来取变量名 26个字符,10个数字和下划线规则2:第一个字符必须是26个字母和下划线规则3:不能与一些关键字同名原则:见名知意(例子)第二章 数据类型 C语言程序设计高职教材第12页/共59页基本数据类型的变量分类(重点)u整型变量u实型变量u字符型变量第二章 数据类型 C语言程序设计高职教材第13页/共59页整型变量(1)整型数据在内存中以补码形式存放。(了解)(2)每一个整型变量在内存中占2个字节,例如:int i;i=10;十进制10(2)若i=-10;负数的补码为该数的绝对值的二进制按位取反再加1。第二章 数据类型 C语言程序设计高职教材0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0二进制1010,存放情况:第14页/共59页 整型变量的分类-整型类型(掌握)TC中short 2,int 2,long 4带符号和不带符号:可以在int short,long之前加unsigned和signed表示不带符号和带符号。取值范围不同(可参考P19)不指定符号,则默认signed。第二章 数据类型 C语言程序设计高职教材整型整型 类型类型内存占用内存占用(位)(位)取值范围取值范围int(基本整型)基本整型)2个字节个字节16位位32768+32767Short(短)(短)2个字节个字节 long (长)(长)4个字节个字节32位位-231+231-1第15页/共59页整型变量的定义和使用:(变量使用前必须先定义)例题2-4main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%,b+u=%dn”,c,d);第二章 数据类型 C语言程序设计高职教材/*将变量u定义为无符号整型数据*/*不同类型数据混合运算*/第16页/共59页不同类型数据间的混合运算规则(1)各类数值型数据可以混合运算。(2)不同类型数据运算是要进行类型转换:转换的原则是按运算次序从低类型到高类型,同类型直接进行运算。第二章 数据类型 C语言程序设计高职教材doublefloatLong unsingedintchar,short高低第17页/共59页整形数据的溢出 例题2-7 main()int a,b;a=32767;b=a+2;printf(“%d,%dn”a,b);第二章 数据类型 C语言程序设计高职教材第18页/共59页实型变量(掌握)(1)实型变量在内存中的存放形式:一个实型数据在内存中占4个字节,通常24位表示小数,8位表示指数,小数部分位愈多,精度愈高。,指数部分愈多,表示数值范围愈大。(2)实型变量的分类:第二章 数据类型 C语言程序设计高职教材 实型类型实型类型内存占用内存占用有效数字有效数字取值范围取值范围float(单精度)单精度)4个字节个字节 67位位10-37 1038 (指数指数8位位)double(双)(双)8个字节个字节 1516位位10-307 10308(11位位)long double(长双)(长双)10个字节个字节 1819位位10-4931 1049321(15位位)第19页/共59页 实型变量的定义和使用:(变量使用前必须先定义)例题2-8 main()float a,b;a=3.142;b=1.414;printf(“a+b=%fn”,a+b);printf(“a-b=%fn”,a-b);第二章 数据类型 C语言程序设计高职教材第20页/共59页字符变量(掌握)(1)在内存中占1个字节。(2)其中每个变量可以存放一个字符 (只能是一个字符)。(3)字符在内存中以 ASCII的二进制形式存放的。(4)字符变量的定义:char x1,x2;(5)字符变量的赋值:x1=a;x2=b;第二章 数据类型 C语言程序设计高职教材Char是字符变量类型说明符第21页/共59页C语言中字符类型的特殊之处(1)字符与整型数相似,可以与数值型的数进行加减乘除运算。(2)字符可以以整数形式输出其ASCII码(3)在C语言字符型与整数型的区别不严格第二章 数据类型 C语言程序设计高职教材第22页/共59页字符数据和整型数据的通用(1)字符数据以字符形式输出:将存储单元中的ASCII码转换成字符,再输出。占1个字节(2)字符数据以整型数据形式输出,直接将ASCII码以整型数据输出。占29个字节(3)例题第二章 数据类型 C语言程序设计高职教材第23页/共59页例题2-9 amain()char c1,c2;c1=97;c2=98;printf(“%c%cn,c1,c2);printf(“%d%dn,c1,c2);第二章 数据类型 C语言程序设计高职教材例题2.9bmain()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c%cn,c1,c2);以字符的格式输出以十进制整数的格式输出整数赋给字符型变量字符赋给字符型变量大小写字母转换第24页/共59页字符串变量字符串变量要用数组来实现,在数组那一章讲第二章 数据类型 C语言程序设计高职教材第25页/共59页第四节 数据的基本输入与输出基本输入输出分三类:单字符输入与输出:格式输入与输出:字符串输入与输出:第二章 数据类型 C语言程序设计高职教材第26页/共59页单字符数据的输入和输出(1)putchar()字符输出函数:向终端输出1个字符(2)getchar()字符输入函数:从终端输入一个字符第三章 顺序结构 C语言程序设计高职教材#include main()char a,b,c;a=O;b=K;c=!;putchar(a);putchar(b);putchar(c);例题2-10#include main()char c;c=getchar();putchar(c);例题2-11向终端输出变量a的值输入字符并将它赋给变量c第27页/共59页格式输入和输出1、格式输出函数:printf()函数 一般格式:printf(格式控制,输出列表);如:printf(“max=%dn”,max);说明输出列表可以没有,但格式控制不能没有。输出列表是要输出的内容,要用逗号分隔开,可以是变量、常量、表达式和函数等都可 float a=23;printf(“%f%f%f%fn”,a,23,a*b+12,sqrt(4)格式控制用双引号括起来。第三章 顺序结构 C语言程序设计高职教材第28页/共59页 格式控制用控制输出格式,其目的是为了好看和实用。它有二部分普通字符(包括转义字符)与格式控制符普通字符是按原样输出,不进行任何改变处理的。printf(“max=%d n”,max);格式控制符是输出内容按一定格式输出并进行相应的转换。第三章 顺序结构 C语言程序设计高职教材max=是普通字符。n也是普通字符。%d 是格式控制符,把max里的值按整数输出。第29页/共59页 格式控制符%d按整数输出%c按字符输出%f 按浮点数串输出%s按字符串输出 P53%e按指数输出%o按八进制输出%x 按十六进制输出%u按不带符号数输出第三章 顺序结构 C语言程序设计高职教材第30页/共59页%d 格式符%d:按整型数据的实际长度输出。%md:m指定的输出字段的长度,如果数据小于m,左端补空格。大于则按实际位数输出。%ld:输出长整型数据。%mld:指定输出长度m。例题2-12 main()int a=1234,b=12;long int c=123456;printf(“%d,%3d,%ldn”,a,b,c);第三章 顺序结构 C语言程序设计高职教材第31页/共59页%s格式符:%ms:输出的字符串占 m列,如字符串本身长度大于m,则突破m的限制,将字符串全部输出,若串长小于 m,则左补空格。%-ms:若串长小于 m,则在m列范围内,字符串向左靠,右补空格。%m.ns:输出占m列,但只取字符串中左端n个字符,并输出在m列的右侧,左补空格。%-m.ns:输出占m列,但只取字符串中左端n个字符,并输出在m列的左侧,右补空格。第三章 顺序结构 C语言程序设计高职教材第32页/共59页例题2-18main()printf(“%3s,%7.2s,%.4s,%5.3sn”,”CHINA”,”CHINA”,”CHINA”,”CHINA”);输出结果:P53第三章 顺序结构 C语言程序设计高职教材第33页/共59页%f 格式符%f:不指定宽度,全部输出。一般6位小数%m.nf:指定输出的数据占m列,其中有n位小数,若数值长度小于m,则左端补空格。%-m.nf:与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。P19 例题2-13、2-14第三章 顺序结构 C语言程序设计高职教材第34页/共59页2、格式输入函数:scanf()函数 一般形式:scanf(“格式控制“,输入项地址列表);例子2-20 第二章 数据类型 C语言程序设计高职教材 main()int a,b,c,d,e,f;scanf(“%d%d%d”,&a,&b,&c);scanf(“%d,%d,%d”,&d,&e,&f);printf(“%d%d%d%d%d%dn”,a,b,c,d,e,f);&取地址符号。第35页/共59页格式说明1、scanf(“%3d%3d”,&a,&b);2、scanf(“%2d%*3d%2d”,&a,&b);3、scanf(“%d:%d”,&a,&b);另外:其他一些说明,见教材P23-24第二章 数据类型 C语言程序设计高职教材%md指定宽度,系统自动截取*跳过有字符:则输入相应的字符第36页/共59页第二章 数据类型 C语言程序设计高职教材第37页/共59页2.6 变量赋初值(掌握)变量赋初值又叫做初始化,表示该变量在开始时的值。是指在定义变量的同时,给变量赋值。如 int a=3;float f=13.323;char x=Z;不合法:int a=b=c=3;在运行时执行第二章 数据类型 C语言程序设计高职教材第38页/共59页2.7 各类数值型数据间的混合运算(1)各类数值型数据可以混合运算。(2)不同类型数据运算是要进行类型转换:转换的原则是按运算次序从低类型到高类型,同类型直接进行运算。第二章 数据类型 C语言程序设计高职教材doublefloatLong unsingedintchar,short高低第39页/共59页类型转换例子(1)int i;float f,double d;long e;10+a+i*f-d/e(2)float sum;int a=1,b=3;sum=1.0*a/b+1.0*a/b+1.0*a/b;(3)转换是自动进行的第二章 数据类型 C语言程序设计高职教材第40页/共59页2.8算术运算符与算术表达式(重点)2.8.1基本运算符介绍:P325 有以下几类:(1)算术运算符:+,-,*,/(2)关系运算符:,=,=,=,!=(3)逻辑运算符:&,|,!(4)位运算符:,&,|,(5)赋值运算:=第二章 数据类型 C语言程序设计高职教材第41页/共59页(6)条件运算:?,:(7)逗号运算符:,(8)指针运算符:*,&(9)求字节数运算符:sizeof(10)强制类型转换运算符:(类型)(11)分量运算符:.,-(指向结构体成员)(12)下标运算符:(13)其他:函数调用运算符()第二章 数据类型 C语言程序设计高职教材第42页/共59页2.8.2 算术运算符与算术表达式(1)基本运算符号+加 -减 *乘 /除%(求余,只对整型数据,如7%4的值为3,可以用来判断2数是否整除,if(a%b=0;)其他:sqrt,An=pow(A,n),Sin,cos,Exp,Log运算符存在优先级运算规则:从左到右,先高后低。第二章 数据类型 C语言程序设计高职教材第43页/共59页(2)运算符的结合性 当一个运算对象的两侧的运算符的优先级相同,到底先算左边的还先算右边的,因此决定的结合方向,如果先左后右的,称为左结合性,从右到左的称右给合性。一般算术运算符是左结合性,从左到右的。第二章 数据类型 C语言程序设计高职教材第44页/共59页(3)强制类型转换在数值或变量前加一个类型符,可以把该数从一个变量变成另一个变量。例float sum;int a=1,b=3;sum=1.0*a/b+1.0*a/b+1.0*a/b;也可以:sum=(float)a/b+(float)a/b+(float)a/b第二章 数据类型 C语言程序设计高职教材第45页/共59页(4)自增(+)与自减(-)运算(重点掌握)+i,-i;(在使用i之前,先使i的值增(减)1)i-,i+;(在使用i之前,先使i的值增(减)1)意义:i+(或+i)都代表 i=i+1,它的意义即为该变量i里面的内容增加1;i-(或-i)都代表 i=i-1,它的意义即为该变量i里面的内容减1.第二章 数据类型 C语言程序设计高职教材第46页/共59页使用条件自加与自减只用整型变量上,即排除以下三种情况:非整型变量。如float f1=2;f1+;表达式上不能用。int a=3,b=5;(a+b)+;常量上不能用 3+;第二章 数据类型 C语言程序设计高职教材第47页/共59页举例main()int a=3,b=3,i,j;i=+a;j=b+;printf(“a=%d i=%d n”,a,i);printf(“b=%d j=%dn”,b,j);第二章 数据类型 C语言程序设计高职教材a=a+1;i=a;j=b;b=b+1;第48页/共59页结果:第二章 数据类型 C语言程序设计高职教材第49页/共59页2.9 赋值运算符与赋值表达式(掌握)2.9.1赋值运算符(1)赋值运算符:=(2)功能:把右边的值赋给左边。(3)一般形式:变量=表达式;(或*内存地址=表达式),(4)运算次序:先算=号右边表达式,再赋值给左边的变量。不能:(3+a)=b*4;a=b=c=23;a=(b=(c=23);第二章 数据类型 C语言程序设计高职教材第50页/共59页2.9.2类型转换(赋值表达式自动类型转换)(1)实型数据赋给整型变量,舍弃小数部分。(2)整型数赋给实型变量,数值不变,但以浮点数形式存储到变量中。(3)将double型数赋给float型变量,取前7位有效数。(4)字符型数(1字节)赋给整型变量(2字节),放入低8位。P38第二章 数据类型 C语言程序设计高职教材第51页/共59页 2.9.3复合赋值运算符a=a+b a+=ba=a-b a-=ba=a/b a/=b;a=a*b a*=ba=a%b a%=b运算次序从右到左例a=12 a+=(a=a-a*a);-132第二章 数据类型 C语言程序设计高职教材第52页/共59页2.9.4赋值表达式(1)形式:变量 表达式称为赋值表达式。将整个式子的值,赋给变量。(2)例如:a=b=c=5(不能:int a=b=c=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)第二章 数据类型 C语言程序设计高职教材第53页/共59页2.10 逗号运算符与逗号表达式(需知)(1)在C语言中,逗号也是一个运算符。(2)一般形式:表达式1,表达式2,.,表达式n,(3)运算次序:先左后右,从左到右。(4)整个表达式的值:是最后的表达式的值。如:d=a=3,b=5,c=23;整个表达式的值:23(5)逗号运算级别最低第二章 数据类型 C语言程序设计高职教材第54页/共59页习题和作业P42书面:2.6 2.9 2.10 2.12上机:2.7 2.10第二章 数据类型 C语言程序设计高职教材第55页/共59页变量取名例子1.判断变量名的合法性:Sum,average,_total,Class,day,month,M.D.John,Studen_name,tan,#33,3D64,ab lotus_1_2_2,$123 2.变量名长度:看系统情况。通常不超过32个字节。第二章 数据类型 C语言程序设计高职教材第56页/共59页关键字(P325)变量取名不能与关键字相同,共32个。int,float,double,char,long,signed,short,unsigned,void,do,for,while,switch,if,else,case,sizeof,breakauto,const,continue,default,exten,regist,returnunion,volatile,typedef,enum,static,struct,goto第二章 数据类型 C语言程序设计高职教材第57页/共59页补码求法:(了解)(1)正数的补码和其原码的形式相同(2)负数的补码为该数的绝对值的二进制按位取反再加1。例如-10的补码。10取反加1得-10的补码第二章 数据类型 C语言程序设计高职教材0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 1 1 1 1 1 1 1 1 1 1 0 1 0 11 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0第58页/共59页谢谢您的观看!第59页/共59页