C程序设计讲座_第1页
C程序设计讲座_第2页
C程序设计讲座_第3页
C程序设计讲座_第4页
C程序设计讲座_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

会计学1C程序设计讲座3.1

C的数据类型

变量要先说明,后使用。

变量的定义包括

数据类型

存储类型作用域

C程序设计

第三章数据类型、运算符与表达式返回主菜单第1页/共56页其值不可以再分解为其它类型,利用这些数据类型还可以生成更复杂的数据结构,如表、栈、队列等根据已定义的一个或多个数据类型用构造的方法来定义其值用来表示某个量在内存储器中的地址其类型说明符为void第2页/共56页3.2

常量与变量常量:其值不能被改变的量称为常量,常量被分为不同的类型直接常量

整型常量实型常量字符常量

符号常量,用标识符表示

#definePRICE30

C程序设计

第三章数据类型、运算符与表达式12、0、-34.6、-1.23‘a’、‘b’例3.1返回主菜单第3页/共56页标识符:用来表示变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。字母、数字、下划线。标识符的长度有一定的限制。区分大小写第4页/共56页例3-1符号常量的使用#definePRICE30#include<stdio.h>voidmain(){ intnum,total; num=10; total=num*PRICE; printf(“total=%d\n”,total);}符号常量名一般情况都用大写形式表示,而变量名都用小写形式表示第5页/共56页变量:代表内存中具有特定属性的一个存储单元,用来存放数据(不同于符号常量,可以任意赋值)a变量名(标识符)3变量值存储单元返回主菜单区分变量值与变量名用来存放一些初始值、计算的中间结果或最终结果。第6页/共56页变量的作用变量的命名规则:知名见意变量的强制定义规则

可以使程序中的变量使用不发生错误

在编译时就可对该变量分配内存确定了对这个变量所能进行的操作

第7页/共56页3.3

整型数据

整型常量的表示方法十进制整数八进制整数十六进制整数整型变量内存中的存放形式整型变量的分类整型变量的定义整型数据的溢出

C程序设计

第三章数据类型、运算符与表达式例3.3例3.2返回主菜单第8页/共56页0000000000001010例i=10例i=-101111111111110110第9页/共56页类型说明符数的范围字节数基本型int-32768~32767即-215~(215-1)2无符号基本型unsignedint0~65535即0~(216-1)2短整量shortint-32768~32767即-215~(215-1)2无符号短整型unsignedshortint0~65535即0~(216-1)2长整型longint-2147483648~2147483647即-231~(231-1)4无符号长整型unsignedlong0~4294967295即0~(232-1)4整型变量的分类第10页/共56页例3-2整型变量的定义与使用#include<stdio.h>voidmain(){ inta,b,c,d; unsignedu; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d”,c,d);}a+u=22,b+u=-14第11页/共56页例3-3整型数据的溢出#include<stdio.h>voidmain(){ inta,b; a=32767; b=a+1; printf(“%d,%d”,a,b);}32767,-32768第12页/共56页3.4实型数据实型常量的表示方法十进制数形式指数形式

实型变量内存中的存放形式实型变量的分类实型数据的舍入误差

C程序设计

第三章数据类型、运算符与表达式实型常数不分单、双精度,都按双精度double型处理

0.0、25.0、5.789

2.1E5、3.7E-2

例3.4返回主菜单第13页/共56页+.3141591数符小数部分指数实数3.14159在内存中的存放形式:第14页/共56页类型说明符比特数(字节数)有效数字数的范围单精度float32(4)6~710-37~1038

双精度double64(8)15~1610-307~10308

长双精度longdouble

128(16)18~1910-4931~104932

实型变量的分类第15页/共56页float型的数据提供7位有效数字double型的数据提供15~16位的有效数字第16页/共56页程序清单main()

{

floatx;

x=7.1234567890;

printf("%20.18f",x);

}7.123456954956054690_

第17页/共56页程序清单main()

{

doubley;

y=7.12345678901234567890;

printf("%20.18f",y);

}7.123456789012345250_第18页/共56页程序清单main()

{

floatx;

doubley;

x=123456.789; y=123456.789;

printf("%f,%f",x,y);

}123456.789062,123456.789000_

/*只能将123456.7七位有效数字赋值给x*/

/*能将全部数位赋值给y*/第19页/共56页3.5字符型数据字符常量字符变量字符数据在内存中的存储形式及使用方法字符串常量

C程序设计

第三章数据类型、运算符与表达式‘a’、‘b’转义字符定义charc1,c2;返回主菜单第20页/共56页C语言中规定有另一类字符常量,它们以\开头,被称作转义字符。我们前面已多次遇到的‘\n’这个符号,它表示换行符号。这些转义字符只有几个很常用,如'\n'、'\t'、'\''、'\\'。

第21页/共56页转义字符及其含义转义字符转义字符的意义ASCII代码 \n回车换行10 \t横向跳到下一制表位置9 \b退格8 \r回车13 \f走纸换页12 \\反斜线符"\"92 \'单引号符39\”双引号符34 \a鸣铃7 \ddd1~3位八进制数所代表的字符 \xhh1~2位十六进制数所代表的字符例3.5C语言中还规定有另一类字符常量,它们以\开头,被称作转义字符。第22页/共56页例3.5转义字符的使用#include<stdio.h>{ printf(“abc\tde\rf\tg\n”); printf(“h\ti\b\bjk\n”);}打印结果:fabcgdehjik显示结果:fgdehjk第23页/共56页存放字符的ASCII码,而不是字符本身一个字符数据既可以以字符形式输出,也可以以整数形式输出字符数据和整型数据可以相互赋值例3.6例3.7第24页/共56页字符数据在内存中的存储形式ASCII码‘x’120‘y’1210111100001111001a=‘x’b=‘y’第25页/共56页例3.6程序清单main()

{

charx1,x2;

x1=97;x2=98;

printf("%c,%c",x1,x2);

}a,b输出字符的使用格式第26页/共56页例3.7大小写字母的转换main()

{

charx1,x2;

x1=‘a';x2=‘b';

x1=x1-32;

x2=x2-32;

printf("%c,%c",x1,x2);

}A,B允许字符数据与整数直接进行算术运算第27页/共56页inti;charc;i=‘a’;C=97;如果ASCII码值为128--255,用%d输出时则显示负数第28页/共56页字符常量与字符串常量的比较形式字符数内存空间字符常量‘

’单个一个字节字符串常量“

”一个或多个字符串中字节数加1第29页/共56页"x"在在内存中的表示为‘x’在在内存中的表示为x\0xC语言中没有专门的字符串变量\0为系统自动加上第30页/共56页一般形式:

C程序设计

第三章数据类型、运算符与表达式3.6

变量赋初值类型说明符变量1=值1,变量2=值2,……;

例如:inta=3;可以定义变量的时候同时赋值intb,c=5;可以给一部分变量赋值floatx=3.2,y=3f,z=0.75;charch1='K',ch2='P';返回主菜单赋值符号变量赋初值就是在定义变量的同时,给变量赋一个值。

第31页/共56页3.7

各类数值型数据间的混合运算自动转换(由系统自动完成)强制类型转换

C程序设计

第三章数据类型、运算符与表达式一般形式:(类型说明符)(表达式)

例如:(float)a把a转换为实型

(int)(x+y)把x+y的结果转换为整型

返回主菜单字符型数据在内存中是按数值方式存放的。而整型数据和实型数据肯定也是按数值方式存放的。在这种前提下,这三种类型的数据实际上是可以进行混合运算的。

第32页/共56页自动转换规则intchar,shortdoublelongunsigned1)若参与运算量的类型不同,则先转换成同一类型,然后进行运算2)转换按数据长度增加的方向进行,以保证精度不降低3)所有的浮点运算都是以双精度进行的4)char型和short型参与运算时,必须先转换成int型5)在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。低高float第33页/共56页3.8

算术运算符和算术表达式C运算符简介算术运算符和算术表达式

C程序设计

第三章数据类型、运算符与表达式返回主菜单第34页/共56页C运算符的分类算术运算符+-*/%关系运算符><==>=<=!=逻辑运算符!&&||位运算符<<>>~|∧&赋值运算符=及其扩展赋值运算符条件运算符?:逗号运算符,指针运算符*&求字节数运算符sizeof强制类型转换运算符(类型)分量运算符.->下标运算符[]其他如函数调用运算符()第35页/共56页算术运算符和算术表达式

C程序设计

第三章数据类型、运算符与表达式算术表达式运算符的优先级与结合性强制类型转换运算符自增、自减运算符例3.8第36页/共56页用算术运算符号和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为算术表达式。运算对象包括常量、变量、函数等。看下面的例子:

3+4.5*a-b*4/3

第37页/共56页例3.8强制类型转换main()

{

doublex;

inty;

x=33.3;

y=(int)x;

printf("%f,%d",x,y);

}33.300000,33在进行强制类型转换时,要产生一个临时数据,这个临时数据的类型是指定的类型,而原始数据的类型不会发生变化。第38页/共56页

++是自增运算符

--是自减运算符

++k的具体含义是:先使k的值加1,然后再使用k的值。

k++的具体含义是:先使用k的值,然后再使k的值加1。多用于循环语句中第39页/共56页例子:

k=1;

j=++k;

j的值被赋成2

k=1; j=k++;

j的值被赋成1

第40页/共56页注意:1、自增运算符(++)和自减运算符(--)都只能用于变量,而不能用于常量或表达式。因为常量的值是不允许改变的,而表达式的值实际上也是一个常量。

2、++、--和负号运算符(-)的优先级别是一样的,但比算术运算符的优先级别高。3、++、--的结合方向是“自右向左”的。如:-i++第41页/共56页运算符的优先级与结合性优先级运算符含义要求运算对象的个数结合方向++自增运算符1(单目运算符)自右至左2

--自减运算符

(类型)类型转换运算符3*乘法运算符2(双目运算符)自左至右/除法运算符%求余运算符4+加法运算符2(双目运算符)自左至右-减法运算符第42页/共56页3.9赋值运算符和赋值表达式赋值运算符类型转换复合的赋值运算符赋值表达式

C程序设计

第三章数据类型、运算符与表达式变量=表达式x=a+b、a=8返回主菜单例3.9第43页/共56页类型转换规则:1)实型赋予整型,舍去小数部分。2)整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。3)float型与double型4)字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中。有两种情况:系统将字符处理为无符号字符类型系统(如TruboC++)将字符处理为带符号的第44页/共56页总结:按存储单元的存储形式直接传送。5)将一个int,short,long型数据赋给一个char型变量时,只将低8位原封不动地送到char型变量,即截断。0010000100000001c=‘!’00100001i=289第45页/共56页1111111000000000c=‘\376’11111110i:第46页/共56页1111111011111111c=‘\376’11111110i:符号扩展:保持数值不变

第47页/共56页复合的赋值运算符变量双目运算符=表达式a+=5

a=a+5x*=y+7

x=x*(y+7)

r%=p

r=r%p+=,-=,*=,/=,%=,<<=,>>=,&=,∧=,|=第48页/共56页赋值表达式<变量><赋值运算符><表达式>“表达式”又可以是一个赋值表达式例如:a=b=5b=5和a=bprintf(“%d”,a=b);第49页/共56页

我们再来看几个例子:a=b=c=5

/*整个表达式的值为5,abc的值也为5*/

a=5+(c=6) /*整个表达式的值为11,a的值为11,c的值为6*/

x=(y=4)+(z=3) /*整个表达式的值为7,x的值为7y的值为4z的值为3*/

x=(y=4)/(z=3) /*整个表达式的值为整数1(这可是除

温馨提示

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

评论

0/150

提交评论