版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
会计学1C程数据类型及表达式变量命名的注意事项:编译系统将大写字母和小写字母认为是两个不同的字符。建议变量名的长度最好不要超过8个字符。在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的英文单词(或其缩写)作标识符。要求对所有用到的变量作强制定义,也就是“先定义,后使用”。例:判断下列标识符号合法性sumSumM.D.JohndayDate3days
student_name#33lotus_1_2_3chara>b_above$123第1页/共35页3.2数据类型C语言的基本数据类型有4种:数据类型长度int(整型)float(单精度浮点型)double(双精度浮点型)char(字符型)4Byte=16bit4Byte=32bit8Byte=64bit1Byte=8bit还有4种构造类型:数组、结构体(struct)、共同体(union)、枚举(enum)第2页/共35页3.3常量常量定义:程序运行时值不能改变的量,即常数。分类:符号常量:用标识符表示具体值定义格式:一般用大写字母直接常量:直接写出具体值整型常量实型常量字符常量字符串常量#define
标识符常量值第3页/共35页C语言规定:所有变量在使用前必须先定义3.4变量变量是指程序执行过程中,其值可以改变的量。变量有一个名字,称为变量名,用标识符表示。变量的定义格式:
如:inta,b,c;floatx,y,z;
charch;变量的定义一般写在函数开头,同时定义多个变量用逗号隔开。类型名变量名,变量名,...,变量名;第4页/共35页编译程序根据变量定义为其分配指定字节的内存单元…...地址inta=1,b=-3,c;abc2字节2字节2字节地址地址…...内存1-3随机数变量概念:其值可以改变的量变量名与变量值变量定义的一般格式:
数据类型变量1[,变量2,…,变量n];<>变量初始化:定义时赋初值例:inta,b,c;floatdata;决定分配字节数和数的表示范围合法标识符例:inta=2,b,c=4;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;
intx=y=z=1;变量的使用:先定义,后使用例1intstudent;stadent=19;//Undefinedsymbol‘statent’infunctionmain
例2floata,b,c;c=a%b;//Illegaluseoffloatingpointinfunctionmain
变量定义位置:一般放在函数开头main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%f\n”,data);}变量定义可执行语句main(){inta,b=2;a=1;floatdata;data=(a+b)*1.2;printf(“data=%f\n”,data);}Ch2_005.c第5页/共35页3.5整型数据3.5.1整型常量三种表示形式:十进制整数:由数字0~9和正负号表示。
如123,-456,0八进制整数:由数字0开头,后跟数字0~7表示。
如0123,011十六进制整数:由0x或0X开头,后跟0~9,a~f,A~F表示。
如0x123,0Xff长整型常量:789L、017L、0x12aL(用l或L引出)第6页/共35页3.5整型数据3.5.2整型变量整型变量用于存放整型数据。根据数值的表示范围整型可以为整型(int)、短整型(short)、长整型(long)三种。这三种整型都默认为有符号型(signed),有符号型即可以是正数、负数和0。也可以根据需要,将整型指定为无符号型(unsigned),此时整型变量只能存放非负数。上面提到的short、long、signed、unsigned都是一些类型修饰符,用于补充说明变量的特性例a=‘D’;/*a=68;*/x=‘A’+5;/*x=65+5;*/s=‘!’+‘G’/*s=33+71;*/第7页/共35页3.6浮点型数据
3.6.1浮点型常量两种表示形式:十进制小数形式:必须带小数点 如0.123,.123,123.0,0.0,123.指数形式:e或E之前必须有数字;指数必须为整数
如12.3e3,123E2,1.23e4,e-5,1.2E-3.5实型常量的类型细分: 默认为double型,例如3.14就是double类型 后面加f或F认为是float型,例如3.14f就是float类型例a=‘D’;/*a=68;*/x=‘A’+5;/*x=65+5;*/s=‘!’+‘G’/*s=33+71;*/第8页/共35页3.6浮点型数据3.6.2浮点型变量 浮点型分为单精度型(float)和双精度型(double)两种。float型数据占用4个字节(32bits)存储单元,提供的有效数字是6~7位;double型数据占用8个字节(64bits)存储单元,提供的有效数字是15~16位。
第9页/共35页3.7字符型数据3.7.1字符常量定义:
用单引号括起来的单个字符或转义字符
如:
‘a’
、
‘?’
、‘A’
、‘\n’
、‘\”’转义字符:
反斜线\后跟一个字符或一个代码值,用于表示特殊符号。详情见表2-4字符常量在存储器中的值就是其ASCII码值第10页/共35页12字符常量定义:用单引号括起来的单个普通字符或转义字符.
字符常量的值:该字符的ASCII码值<转义字符及其含义:转义字符含义\n\v\r\a\‘\ddd\t\b\f\\\“\xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如‘\101’-----------‘A’‘\012’-----------’\n’‘\376’-----------’’‘\x61’-----------’a’‘\60’-----------’0’‘\483’----------()例:‘A’-------’\101’-------’\x41’--------65<如‘A’——65,‘a’——97,
‘0’——48,‘\n’——10如‘a’‘A’‘?’‘\n’‘\101’转义字符:反斜线后面跟一个字符或一个代码值表示例转义字符举例(ch2_001.c,ch2_004.c)
main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");}运行结果:(屏幕显示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’例main(){printf(“Y\b=\n”);}运行结果:屏幕显示:=打印机输出:¥第11页/共35页3.7字符型数据3.7.2字符串常量字符串常量定义:
用双引号括起来的字符序列
如:
“hello,world”
“A”
“”存储:
每个字符串尾自动加个‘\0’作为字符串结束标志注意:
字符常量和字符串常量是两个不同的概念hello,world\0A\0\0第12页/共35页<字符常量与字符串常量不同aa\0例‘a’“a”例空串“”\0例:charch;ch=“A”;例:charch;ch=‘A’;第13页/共35页3.7字符型数据3.7.3字符型变量字符型变量在内存中占一个字节,由于存储的是字符的二进制ASCII码,与整型数据存储方式类似,字符型数据和整型数据可以相互运算。注意,字符串常量不允许赋值给字符型变量,C语言也没有专门的字符串变量。要在内存中存取字符串,只能使用数组或指针。
第14页/共35页3.8变量的初始化C语言允许在定义变量时直接对其赋值main(){
int
x,y;x=10;y=20;
…
}main(){
int
x=10,y=20;
…
…}第15页/共35页3.9运算符和表达式3.9.1算术表达式1.算术运算符 (1)+
加法运算符,或表示正值,如3+2,+1
(2)-
减法运算符,或表示负值,如3-2,-8
(3)* 乘法运算符,如4*5
(4)/
除法运算符,如5/3
(5)%
求余运算符,如5%3C语言规定:两个整数相除的结果整数,小数部分被舍去。
例如:7/3的结果值是2不是2.5,而7.0/3的结果是2.5。%运算符只能用于整数相除求余,运算结果的符号与被除数相同。第16页/共35页除#include<stdio.h>main(){
floatdiv;div=1/2;
printf(“%f\n”,div);}当除号两边都是整型量时,叫做整除,运算结果只保留整数部分。当除号任何一边有实型量时,运算结果是实数。#include<stdio.h>main(){
floatdiv;div=1./2;
printf(“%f\n”,div);}运行结果:0.000000运行结果:0.500000第17页/共35页余#include<stdio.h>main(){printf("%d\n",3%5);
printf("%d\n",5%3);
printf("%d\n",3%-5);
printf("%d\n",5%-3);
printf("%d\n",-3%5);
printf("%d\n",-5%3);}3=0*5+33232-3-25=1*3+23=0*-5+35=-1*-3+2-3=0*5-3-5=-1*3-2%
要求两侧均为整型数据5.5%3第18页/共35页余#include<stdio.h>main(){
intnum;
scanf(“%d”,&num);num=10*(num%10)+(num/10);
printf(“%d”,num);}#include<stdio.h>main(){
intnum,i,j;
scanf(“%d”,&num);i=num/10;j=num%10;num=10*j+i;
printf(“%d”,num);}此程序把输入的两位整数进行十位和个位的互换。例如:输入25,输出52。第19页/共35页3.9运算符和表达式3.自增、自减运算符 自增、自减运算符的作用是将变量的值增加1或者减少1。自增运算符是++自减运算符是--只能对变量使用,不能用于常量和表达式作前缀时是先运算、后引用作后缀时是先引用、后运算说明:++--不能用于常量和表达式,如5++,(a+b)++++--结合方向:自右向左优先级:-++-------->*/%----->+-
(2)(3)(4)i=j=3;x=i++;y=++j;i:4j:4x:3y:4建议:++和--语句如非特殊需要,请单独一行使用如:x++;--k;
第20页/共35页自增、自减运算符
例-i++-(i++)i=3;printf(“%d”,-i++);//-3
例j+++k;(j++)+k;例-i++i=3;printf(“%d”,-i++);例j=3;k=++j;j=3;k=j++;j=3;printf(“%d”,++j);j=3;printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=4第21页/共35页3.9运算符和表达式3.9.2赋值表达式简单赋值运算符符号:=格式:变量标识符=表达式功能:将一个数据(常量或表达式)赋给一个变量复合赋值运算符种类:+=-=*=/=%=《=》=&=^=|=含义:exp1op=exp2exp1=exp1opexp2a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3第22页/共35页结合方向:自右向左赋值语句左侧必须是变量,
不能是常量或表达式赋值的转换规则:使赋值号右边表达式值自动转换成其左边变量的类型赋值运算符和表达式a=3;b=4;a=b;3=x-2*y;a+b=3;floatf;inti;i=10;f=i;则f=10.0inti;i=2.56;则i=2第23页/共35页说明:结合方向:自右向左优先级:14左侧必须是变量,不能是常量或表达式赋值表达式的值与变量值相等,且可嵌套赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例3=x-2*y;a+b=3;例
floatf;inti;i=10;f=i;则
f=10.0例inti;i=2.56;//结果i=2;例: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=5//表达式值11,c=6,a=11//表达式值10,a=10,b=4,c=6//表达式值5,a=5,b=10,c=2语言程序设计Ca+=3a=a+3x%=3x=x%3第24页/共35页说明:结合方向:自右向左优先级:12左侧必须是变量,不能是常量或表达式赋值表达式的值与变量值相等,且可嵌套赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例:a=12;a+=a-=a*a例:inta=2;a%=4-1;a+=a*=a-=a*=3;<>//a=-264等价于a=a+(a=a-(a*a))//a=0等价于a=a+(a=a*(a=a-(a=a*3)))第25页/共35页赋值表达式的值与变量值相等,且可嵌套例: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=5//表达式值11,c=6,a=11//表达式值10,a=10,b=4,c=6赋值运算符和表达式例:a=12;a+=a-=a*a例:inta=2;a%=4-1;a+=a*=a-=a*=3;//a=-264等价于a=a+(a=a-(a*a))//a=0等价于a=a+(a=a*(a=a-(a=a*3)))第26页/共35页3.9运算符和表达式3.9.3逗号运算符和表达式
用逗号将多个表达式连接起来,又称为“顺序求值运算符”。整个表达式的值是最后那个逗号之后表达式的值请求下列表达式的值:3+4,6a=(a=3,6*3)a=a=3,6*3a=3,a+=2,a+3a=3*5,a*4(a=3*5,a*4),a+56a=1818a=318a=58a=1560a=1520第27页/共35页3.10数据类型转换3.10.1隐式转换整型、实型和字符型数据之间可以混合运算。例如:
10+’a’+1.5-8765.1234*’b’
不同数据类型之间运算会进行自动类型转换,规则如下:intchar,shortunsignedlongdoublefloat低高必定的转换运算对象类型不同时转换的方向第28页/共35页charch;inti;floatf;doubled;ch/i+f*d-(f+i)doubleintdoubledoubledoubleintdoubledoubledouble第29页/共35页10+’a’+1.5-8765.1234*’b’
进行10+’a’
的运算:将’a’
转换成整数97,得到和为107。进行107+1.5的运算:将107转换成double型,得到和为108.500000。进行8765.1234*’b’
的运算:将‘b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一的变调练习题
- 二零二五年度重型吊车安全责任及运输合同3篇
- 压疮的预防及护理课件
- 射箭游戏-数学
- 2024年浙江宇翔职业技术学院高职单招职业适应性测试历年参考题库含答案解析
- 2024年济源职业技术学院高职单招职业适应性测试历年参考题库含答案解析
- 《科幻小说赏析与写作》 课件 -第三章 “太空歌剧”的探索与开拓-《2001太空漫游》
- 2024年河南工业贸易职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 二零二五年租赁权转让及配套设备协议范本3篇
- 2024年沧州职业技术学院高职单招语文历年参考题库含答案解析
- 2023年重症医学科护理工作计划
- 人教版八年级上册地理全册单元测试卷(含期中期末试卷及答案)
- 年会抽奖券可编辑模板
- 感染性疾病标志物及快速诊断课件(PPT 134页)
- YC∕T 273-2014 卷烟包装设计要求
- 2022年煤矿地面消防应急预案范文
- 高中化学必修二第三章第一节认识有机化合物课件
- 水上抛石护坡施工方案
- 4PL的供应链整合及其对区域发展的借鉴意义
- 物料提升机基础方案
- 840dsl常用参数
评论
0/150
提交评论