C语言N02 C语言基本数据类型 2学时+2学时_第1页
C语言N02 C语言基本数据类型 2学时+2学时_第2页
C语言N02 C语言基本数据类型 2学时+2学时_第3页
C语言N02 C语言基本数据类型 2学时+2学时_第4页
C语言N02 C语言基本数据类型 2学时+2学时_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页C语言N02C语言基本数据类型2学时+2学时第二章基本数据类型

本章课程共2学时其中:授课2学时,上机2学时

2.1基本数据类型类型符号关键字(signed)int(signed)short(signed)long所占位数161632数的范围

P45-32768(-215)~32767(215-1)-32768(-215)~32767(215-1)-2147483648(-231)~2147483647(231-1)

有整型无

unsignedintunsignedshortunsignedlong

161632

0~65535(216-1)0~65535(216-1)0~4294967295(232-1)

有实型有有无

floatdoublecharunsignedchar

326488

3.4e-38~3.4e381.7e-308~1.7e308-128(-27)~127(27-1)0~255(28-1)2

字符型2022-6-27

2.2常量:程序运行时值不能转变的量P39符号常量:用标识符代表的常量/*符号常量举例E*02_01.c*/#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf(total=%d,total);}宏定义预处理指令,不是C语句

整型常量12,-22435,0313,0*121

实型常量3.14,1.2e-8,3.6E+9

字符常量A,‘E,‘+,‘\101,‘\*EF,‘\n

径直常量:径直用数值表示的常量2022-6-27

字符串常量“China”,“Hellow”,3“”

三种整型径直常量的表示方式十进制符号:0~9,+,123,-456

八进制十六进制

以0开头,后面跟符号:0~7,以0*开头,后面跟符号:0~9,a~f,A~F

0123,0110*123,0*ff

整型径直常量的类型的确定原那么:(1)依据其值所在范围确定其数据类型(2)在整常量后加字母l或L,认为它是longint型常量(2)在整常量后加字母u或U,认为它是unsignedint型常量例:判定以下三个整型径直常量的存储方式和类型(1)12315(2)123L(3)-12345u2022-6-274

实型径直常量的表示形式小数形式指数形式0.12,.34,-.56,123.12.3e3,123E2,1.23e4需要要有小数点E或e前需要有数字E或e后需要为整数

实型径直常量的类型的确定原那么:(1)默认为双精度double型(2)在实型常量后加字母f或F,认为它是浮点型(float)常量

2022-6-27

字符常量:用单引号括起来的单个一般字符或转义字符

如:‘aA?\n\101字符常量的值:该字符的ASCII码值如:‘A—65,‘a—97,‘0—48,\n—10转义字符:反斜线后面跟一个字符或一个代码值表示转义字符\n

含义换行

转义字符\t

含义制表符

例转义字符举例main(){printf(\101\*42C\n);printf(Isay:\Howareyou?\\n);printf(\\CProgram\\\n);printf(Turbo\'C\');}

\v\r\a

垂直制表符回车响铃

\b\f\\

退格换页反斜线

\\ddd

单引号3位8进制数

\”\*hh

双引号2位16进制数

2022-6-27

运行结果:(屏幕显示)ABCIsay:”Howareyou?”\CProgram\TurboC

字符串常量:用双引号(“”)括起来的字符序列每个字符串尾自动加一个‘\0’作为字符串结束标识hellow\0\0

字符常量与字符串常

量不同

a

a

“a”

a

\0

例:判断以下常量所占内存空间大小(1)'a'(2)China

答:(1)'a'为字符常量,所占空间为1字节(2)China为字符串常量,所占空间为字符数5+1=6字节2022-6-277

2.3变量:内存中具有特定属性的单元P41变量的理解aEFh23

–变量代表一个存储单元–变量具有肯定的数据类型–变量有一个可以标识的名字用于安排内存

合法标识符作为变量名称

数据类型变量1[,变量2,…,变量n];

例:右侧程序中有哪些错误?main()

{inta,b=2;c=2.3;变量data应在开始处定义floatdata;a=1;可以在定义的时候赋初值data=(a+b)*1.2;printf(“data=%f\n”,data);2022-6-27}变量c未定义

基本数据类型变量整型变量一般占2字节short≤int≤long用sizeof(类型标识符)测量

实型变量

字符型变量

float:占4字节,提供7字符变量存放字符位有效数字ASCII码double:占8字节,char与int数据间可进15~16位有效数字行算术运算

例:a=D;/*a=68;*/*=A+5;/**=65+5;*/s=!+G/*s=33+71;*/

没有字符串变量,用字符数组存放2022-6-279

变量和常量定义的一个例子

例/*E*02_04.c*/#definePRICE12.5main(){intnum=3;floattotal;charch1,ch2=D;

宏定义变量定义

total=num*PRICE;输出结果ch1=ch2-A+a;printf(“total=%f,ch1=%c\n”,total,ch1);}2022-6-27

运行结果:total=37.500000,ch1=d

2.4基本数据类型的数据的输入输出P65留意:–C程序中没有输入输出指令–C程序中的输入输出由特定的函数来实现字符输出:putchar()

如何掌控这四个函数?(1)了解功能

数据输出格式输出:printf()字符输入:getchar()格式输入:scanf()

(2)了解应用格式(3)了解输入参数(4)知道返回值11

数据输入

2022-6-27

例m.n例inta=1234;floatf=123.456;charch=a;printf(“%8d,%2d\n”,a,a);printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f);printf(“%3c\n”,ch);运行1234,1234结果:123.456001,123.456001,123.5,123.46,1.2e+02a例staticchara[]=“Hello,world!”;printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a);运行结果:Hello,world!Hello,world!HelloHelloHel

2022-6-27

例-

例inta=1234;floatf=123.456;staticcharc[]=“Hello,world!”;printf(“%8d\n%-8d\n”,a,a);printf(“%10.2f\n%-10.1f\n”,f,f);printf(“%10.5s\n%-10.3s\n”,c,c);运行结果:12341234123.46123.5HelloHel

2022-6-27

例0、+例inta=1234;floatf=123.456;printf(“%08d\n”,a);printf(“%010.2f\n”,f);printf(“%+08d\0+8d\n”,a);printf(“%+010.2f\0+10.2f\n”,f);

//00001234//0000123.46//000+1234//+0001234//000+123.56//+000123.56

例#例inta=123;printf(“%o,%#o,%

*,%#*\n”,a,a,a,a);//173,0173,7B,0*7B例l例longa=65536;printf(“%d,%8ld\n”,a,a);//0,6553600000000000000010000000000000000142022-6-27

格式化输入的要点例字符串输入的截取例scanf(“%3c%2c”,c1,c2);输入abcde那么‘ac1,dc2数字输入的截取scanf(“%4d%2d%2d”,yy,mm,dd);输入19991015那么1999yy,10mm,15dd空格和回车作结束分隔scanf(“%2d%*3d%2d”,a,b);输入1234567那么12a,67b

例屏蔽符*的应用例scanf(“%3d%*4d%f”,k,f);输入12345678765.43那么123k,8765.43f例其它字符原样输入scanf(“%d,%d”,a,b)输入3,4那么3a,4b

例其它字符原样输入scanf(“a=%d,b=%d,c=%d”,a,b,c);输入a=12,b=24,c=36那么12a,24b,36c其中空格对应

2022-6-27

例其它字符原样输入scanf(“%d:%d:%d”,h,m,s);输入12:30:45那么12h,30m,45s

留意:此处不可少!

2.5不同类型间的数据转换隐式转换转换场合运算转换赋值转换输出转换函数调用转换

P54

intma*(int*,inty)inta;{floatf=1.2;}i=(int)*;例:charch;inti;floatf;doubled;longl;a=f;inta=65;charch='A';floatf=6.57;……printf(“*=%f,i=%d”,*,i);a的值为printf(a=%c,ch=%d,f=%d,a,ch,f);inta;?}-(f+i)+10+a+i*f-d/lch/I+f*d1输出结果:a=A,ch=65,f=6a=ma*(3.14,'A');结果:*=3.600000,i=32022-6-27

例unsigned(int)(*+y)例main(){float*;(int)*+y(double)(3/2)inti;低intchar,short(int)3.6*=3.6;

高doublefloat显式转换(强制转换)形式:(类型名)(表达式)得到所需类型的中间变量,long原变量类型不变

2.6算术运算符与算术表达式包括符号–基本算术运算符:+-*/%–自增和自减运算符:++-例例5/2=2-5/2.0=-2.5例5%2-5%21%105%15.5%2=1=-1=1=0()j=3;j=3;j=3;j=3;a=3;a=3;

P52

学习运算符时掌控什么?1.目:运算对象的个数2.功能3.优先级

4.结合方向(难点)k=++j;k=j++;printf(“%d”,++j);printf(“%d”,j++);b=5;c=(++a)*b;b=5;c=(a++)*b;//j=4,k=4//j=4,k=3//4//3//a=4,c=20//a=4,c=15

例-i++-(i++)i=3;printf(“%d”,-i++);//-32022-6-27

例j+++k;(j++)+k;17

2.7赋值运算符和赋值表达式包括符号

P59

例3=*-2*y;()a+b=3;()

–基本运算符:=–复合运算符:+=-=*=/=%====^=|=例a=3;d=func();c=d+2;a+=3a=a+3**=y+8*=**(y+8)*%=3*=*%3例那么

floatf;inti;i=10;f=i;f=10.0例inti;i=2.56;//结果i=2;

例:a=12;a+=a-=a*a;//a=-264等价于a=a+(a=a-(a*a))

例inta=2;a%=4-1;a+=a*=a-=a*=3;//a=0等价于a=a+(a=a*(a=a-(a=a*3)))例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表达式值为5,

a,b,c值为5//b=5,a=11//表达式值为11,c=6,a=11//表达式值10,a=10,b=4,c=6//表达式值5,a=5,b=10,c=2

2022-6-27

2.8逗号运算符和逗号表达式例a=3*5,a*4//a=15,表达式值60a=3*5,a*4,a+5//a=15,表达式值20*=(a=3,6*3)//赋值表达式,表达式值18,*=18*=a=3,6*a//逗号表达式,表达式值18,*=3a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);//1,2,3printf(“%d,%d,%d”,(a,b,c),b,c);//3,2,3

例:/*E*02_05.c*/#includestdio.hmain(){int*,y=7;floatz=4;*=(y=y+6,y/z);printf(*=%d\n,y=%d,*,y);}2022-6-27

运行结果:*=3,y=1319

第二章基本数据类型

本章课程共2学时其中:授课2学时,上机2学时

2.1基本数据类型类型符号关键字(signed)int(signed)short(signed)long所占位数161632数的范围

P45-32768(-215)~32767(215-1)-32768(-215)~32767(215-1)-2147483648(-231)~2147483647(231-1)

有整型无

unsignedintunsignedshortunsignedlong

161632

0~65535(216-1)0~65535(216-1)0~4294967295(232-1)

有实型有有无

floatdoublecharunsignedchar

326488

3.4e-38~3.4e381.7e-308~1.7e308-128(-27)~127(27-1)0~255(28-1)2

字符型2022-6-27

2.2常量:程序运行时值不能转变的量P39符号常量:用标识符代表的常量/*符号常量举例E*02_01.c*/#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf(total=%d,total);}宏定义预处理指令,不是C语句

整型常量12,-22435,0313,0*121

实型常量3.14,1.2e-8,3.6E+9

字符常量A,‘E,‘+,‘\101,‘\*EF,‘\n

径直常量:径直用数值表示的常量2022-6-27

字符串常量“China”,“Hellow”,3“”

三种整型径直常量的表示方式十进制符号:0~9,+,123,-456

八进制十六进制

以0开头,后面跟符号:0~7,以0*开头,后面跟符号:0~9,a~f,A~F

0123,0110*123,0*ff

整型径直常量的类型的确定原那么:(1)依据其值所在范围确定其数据类型(2)在整常量后加字母l或L,认为它是longint型常量(2)在整常量后加字母u或U,认为它是unsignedint型常量例:判定以下三个整型径直常量的存储方式和类型(1)12315(2)123L(3)-12345u2022-6-274

实型径直常量的表示形式小数形式指数形式0.12,.34,-.56,123.12.3e3,123E2,1.23e4需要要有小数点E或e前需要有数字E或e后需要为整数

实型径直常量的类型的确定原那么:(1)默认为双精度double型(2)在实型常量后加字母f或F,认为它是浮点型(float)常量

2022-6-27

字符常量:用单引号括起来的单个一般字符或转义字符

如:‘aA?\n\101字符常量的值:该字符的ASCII码值如:‘A—65,‘a—97,‘0—48,\n—10转义字符:反斜线后面跟一个字符或一个代码值表示转义字符\n

含义换行

转义字符\t

含义制表符

例转义字符举例main(){printf(\101\*42C\n);printf(Isay:\Howareyou?\\n);printf(\\CProgram\\\n);printf(Turbo\'C\');}

\v\r\a

垂直制表符回车响铃

\b\f\\

退格换页反斜线

\\ddd

单引号3位8进制数

\”\*hh

双引号2位16进制数

2022-6-27

运行结果:(屏幕显示)ABCIsay:”Howareyou?”\CProgram\TurboC

字符串常量:用双引号(“”)括起来的字符序列每个字符串尾自动加一个‘\0’作为字符串结束标识hellow\0\0

字符常量与字符串常

量不同

a

a

“a”

a

\0

例:判断以下常量所占内存空间大小(1)'a'(2)China

答:(1)'a'为字符常量,所占空间为1字节(2)China为字符串常量,所占空间为字符数5+1=6字节2022-6-277

2.3变量:内存中具有特定属性的单元P41变量的理解aEFh23

–变量代表一个存储单元–变量具有肯定的数据类型–变量有一个可以标识的名字用于安排内存

合法标识符作为变量名称

数据类型变量1[,变量2,…,变量n];

例:右侧程序中有哪些错误?main()

{inta,b=2;c=2.3;变量data应在开始处定义floatdata;a=1;可以在定义的时候赋初值data=(a+b)*1.2;printf(“data=%f\n”,data);2022-6-27}变量c未定义

基本数据类型变量整型变量一般占2字节short≤int≤long用sizeof(类型标识符)测量

实型变量

字符型变量

float:占4字节,提供7字符变量存放字符位有效数字ASCII码double:占8字节,char与int数据间可进15~16位有效数字行算术运算

例:a=D;/*a=68;*/*=A+5;/**=65+5;*/s=!+G/*s=33+71;*/

没有字符串变量,用字符数组存放2022-6-279

变量和常量定义的一个例子

例/*E*02_04.c*/#definePRICE12.5main(){intnum=3;floattotal;charch1,ch2=D;

宏定义变量定义

total=num*PRICE;输出结果ch1=ch2-A+a;printf(“total=%f,ch1=%c\n”,total,ch1);}2022-6-27

运行结果:total=37.500000,ch1=d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论