版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第程序设计基础知识第一页,共33页。优选第程序设计基础知识第二页,共33页。1.1变量变量:在程序运行过程中值可以改变的量定义变量的目的是要求计算机在内存中为数据开辟存储空间假设内存是512MB,既有512*1024*1024个存储单元(每个字节为一个单元),每个存储单元都有一个编号,里面可以存放数据不同类型的数据所占据空间的大小也不同数据与内存的关系如同房客与宾馆之间的关系每个变量要具备3个要素:变量名变量的数据类型变量的值第三页,共33页。标识符标识符:为函数、变量等取的符号化的名称标识符的命名规则:1)由字母,数字,下划线组成,以字母或下划线开头。(不同的系统对标识符的长度的规定不同)
例如:sum,_t1_2,n5等2)C语言的关键字不能作为标识符32个关键字,如int、long、if等详见教材3)C的标识符区分大小写,如Sum和sum是不同的4)变量名取名尽量做到“见名知意”
第四页,共33页。变量名变量名名除了遵循标识符规定外,还需要注意以下规则:1)在同一个函数体内,变量名不能重复定义2)所有变量的定义语句必须放在函数体的最开始处3)变量要强制定义,即变量要先定义后使用4)尽量避免定义与库函数中函数名同名的变量,如printf、scanf等,容易造成混乱第五页,共33页。变量的定义方法变量定义的语法格式:变量类型
变量名列表;例如:inta,b;unsignedintc,d;
longf;变量定义的同时还可以为变量指定初始值例如:inta=5;第六页,共33页。数据类型基本数据类型整型:int,short,unsigned,signed2字节
long4字节字符型:char,unsignedchar,signedchar1字节实型单精度型:float4字节双精度型:double8字节
longdouble10字节枚举类型:enum构造类型数组结构体共用体指针类型空类型第七页,共33页。示例1-1:求计算式35+80的值#include<stdio.h>voidmain(){
}整形变量
inta,b,c;a=35;b=80;c=a+b;printf("value=%d\n",c);第八页,共33页。本程序的其他写法:
inta=35,b=80;a=a+b;printf("value=%d\n",a);
inta;a=35+80;printf("value=%d\n",a);
inta,b;a=35;b=80;a=a+b;printf("value=%d\n",a);
inta=35,b=80,c;c=a+b;printf("%d+%d=%d\n",a,b,c);第九页,共33页。使用int型数据,要注意允许值的范围,当超过取值范围后会发生溢出例1-2:整形变量的溢出#include<stdio.h>voidmain(){shortinta;a=32767;a=a+1;printf("Resultis:%d\n",a);}运行结果为:Resultis:-32768第十页,共33页。char每一个字符变量只能存放一个字符在内存中存放的是该字符的ASCII码值字符数据的运算字符数据可以进行加减乘除等各种运算,参加运算的数据是该字符对应的ASCII码值。字符数据可以和整型数据相互通用,可以彼此赋值字符变量第十一页,共33页。示例1-3:#include<stdio.h>voidmain(){
charc1,c2;
c1='a';c2='b'+1;
printf("%c,%c\n",c1,c2);
printf("%d,%d\n",c1,c2);}输出结果:a,c97,99第十二页,共33页。1.2常量常量:在程序运行过程中值不变的量。包括:1)整型常量2)实型常量3)字符常量4)字符串常量5)符号常量6)const常量(新的C标准适用)第十三页,共33页。1)整型常量默认为十进制:如123,-456八进制:以0开头,如012十六进制:以0x或0X开头,如0X12、0x7B默认为int型末尾加l或L表示long型,如:123L、0x7AL默认为signed型末尾加u或U表示unsigned型,如:123u、0x7AU第十四页,共33页。2)实型常量只能用十进制表示:1)小数方式:如12.3,-4.56,.252)指数方式:数+e或E+指数,如1.2e3,23.4E-4,而,.e2,E4均不合法3)默认为双精度类型末尾加f或F表示单精度,如1.2f,-2.3F第十五页,共33页。3)字符常量1)由一对单引号括起来的一个字符如:'a','A'注意区分:'5'和5:'5'表示字符5,5表示整数52)转义字符:单引号括起来的是以\开头加其他字符,用来表示特殊字符如:'\n'表示换行'\t'表示水平制表符
'\''一个单引号'\"'一个双引号
'\\'一个反斜线'\0'空字符
'\ddd'八进制ASCII码代表的字符,如'\101'
'\xhh'十六进制ASCII码代表的字符,如'\x41'第十六页,共33页。4)字符串常量一对双引号括起来的多个字符如:"hello"、"Howareyou!"区分字符串和字符:字符串常量除了包含双引号中的所有字符,还隐含一个特殊字符'\0'如"a"实际包含'a'和'\0'两个字符,其中'\0'用来标识一个字符串的结束,输出时没有任何显示。请思考'0'、'\0'、"0"的区别第十七页,共33页。5)符号常量给常量值取名(遵循标识符的命名规则)增加了程序的可维护性和可读性符号常量仍然是常量,值在程序运行中不可改变为区别变量,符号常量通常用大写字母表示“定义”符号常量使用编译预处理指令#define格式:#define符号常量名常量值如:#defineMAX_VALUE35编译预处理命令在编译时完成,将符号常量用值来替换,因此常量值后面不要加分号第十八页,共33页。例1-4:求圆的面积#include<stdio.h>#definePI3.1415926voidmain(){floatr,area;printf("Inputthecircle'sradius:");scanf("%f",&r);area=PI*r*r;printf("Theareais:%f\n",area);}第十九页,共33页。6)const常量新的C语言规范中,允许在定义变量之前加上const修饰符,将定义一个具有特定数据类型、具有符号化名称的常量程序在运行时,系统在内存中为const常量分配存储空间const常量的定义格式:const数据类型常量名=常量值;例如:constfloatPI=3.1415926;const常量通过C语句来定义,只能在定义的时候赋初值,在程序运行过程中,不能修改该常量的值第二十页,共33页。1.3算术运算符与算术表达式算数运算符示例+3+5
、+10-3-5
、-1.9*
5.6*6/5/3、5.0/3、5/3.0、5.0/3.0
(两个整数相除,结果也是整数。如:5/3=1)(分子或分母为实型,结果为double型)%(模运算符即求余运算符)
9%4结果为1(9整除4后的余数)(只适用于整型数据)第二十一页,共33页。算术表达式用算术运算符和扩号将运算对象连接起来并且符合C语言规则的式子叫算术表达式运算对象包括常量,变量,函数例如:a*b/c-1.5+'a'算术运算符的优先级和结合性优先级:先*/%、再+-如x-y%4尽量通过添加括号()明确优先级关系结合性左结合,即对同等优先级的运算符,从左向右第二十二页,共33页。1.4赋值运算符与赋值表达式赋值运算符:=作用:将右边的数据、变量或表达式的值赋给左边的变量赋值表达式:赋值运算符前加上其它运算符构成的运算符
赋值方法:变量=表达式注意:左侧必须是变量,不能是表达式例如:a=a+1;合法,含义是将变量a所对应的值取出来,加1运算后,将运算结果写回a对应的内存单元;赋值表达式的值为a的值例如:a+1=2;不合法,=左边是表达式第二十三页,共33页。优先级:低于算术运算符先计算=右边的表达式,再执行赋值运算结合性:右结合(自右至左)例如:a=b=c=5;合法例如:a=b=3=c=5;不合法变量赋值与变量赋初值是不同的,比较:变量赋初值:inta=5;变量赋值:inta;a=5;类型转换若赋值运算符两侧数据类型不一致,系统要自动进行类型转换:赋值运算符右边的类型向左边的类型转换
表达式计算时也存在数据类型转换第二十四页,共33页。各种数值型数据间的混合运算整型、实型、字符型(与整型数据通用)数据间可以进行混合运算。但在进行运算时,不同类型的两个数据运算前要先转换成同一类型,再运算。这种转换是系统自动进行的,称为自动类型转换(隐含转换)。转换规则如图第二十五页,共33页。说明:图中横向向左的箭头表示必定进行的转换。例如:两个float型数据进行运算时,要先转换为double型数据。
两个char型数据进行运算时,要先转换为int型数据纵向的箭头表示当参加运算的对象类型不同时进行类型转换的方向例如:double型数据和int型数据进行运算时,int型数据要转换为double型再运算不同类型的数据转换是从低级向高级数据类型转化的。多个类型不同的数据进行运算时,不是一次性的将所有数据全部转化为同一类型后运算,而是按照运算顺序的需要一步一步进行的例如:有doubled;floatf;inti;longe;表达式10+‘a’+i*f-d/e的求解方式在自动类型转换过程中,数据在转换过程中,精度不提高,也不改变原变量的类型,只是改变了值的表现形式第二十六页,共33页。强制类型转换为了解决自动类型转换所带来的“不确定性”,可以采用强制类型转换,在赋值之前将表达式的计算结果强制转换为某种类型,再赋值给某个变量形式:(类型名)(表达式)例如:(double)a
/*将a的值转换成double类型*/(int)(x+y)
/*将x+y的值转换成int类型*/(float)(5%3)/*将5%3的值转换成float类型*/说明:类型转换,仅仅是为了本次运算或赋值的需要而对变量的数据长度进行一时性的转换,并不能改变数据说明时对该变量规定的数据类型第二十七页,共33页。复合算数赋值运算符赋值运算符与算术运算符的组合,有5个:+=、-=、*=、/=、%=基本使用格式为: 变量算术运算符=表达式 它等价于:变量=变量算术运算符表达式例如:表达式a+=2等价于a=a+2例如:表达式a*=3+5相当于a=a*(3+5)第二十八页,共33页。1.5自加、自减、逗号运算符自加++和自减--是独特高效的运算符,也很容易混淆使变量的值加一或加一单目运算符,操作对象只能是变量不能是表达式或常量常用于整型数据的运算前缀方式:将++或--放在变量的前面功能:先执行变量与1相加或相减的运算,将运算结果写回变量,最后取该变量的值参与运算例如:x=++y;等价于y=y+1;x=y;后缀方式:将++或--放在变量的后面功能:先取出变量的值参与运算,运算完成后,再执行变量与1加或减的运算,最后将运算结果写回变量中例如:x=y++;等价于x=y;y=y+1;第二十九页,共33页。逗号运算符逗号,用于连接多个表达式组合成一个表达式,整个表达式称为逗号表达式逗号表达式的一般形式为:表达式1,表达式2,表达式3……结合性:左结合逗号表达式从左至右,逐个计算每个表达式的值,直到完成最后一个表达式的计算,最后一个表达式的值作为整个逗号表达式的值优先级:最低例如:3+5,6+8a=3*5,a*4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026二上数学物体细分类情境课件
- 2026二上数学第五单元趣味课件
- 医用耗材挂网计价单位管理总结2026
- 2026北师大二下一分有多长核心素养课件
- 天津市特殊建设工程消防设计文件编制指南-民用建筑篇 (2026年版)
- 骨代谢指标临床解读2026
- 以太网工业化-工业通信简单化
- 传统文化-猜谜语
- AI算力与高速互连升级:全球高频高速板市场进入高价值增长周期
- 物料堆放围挡施工方案
- 2026秋季学期新教材译林版(三起)六年级上册英语Unit 1 Try your best 教案(3课时)
- 2026年秋季开学第一课:新时代青年使命
- 绵阳英才中学2025初一入学语文分班考试真题含答案
- 新二升三暑假英语26个字母每日一练过关练22天
- 2026秋西师大版小学数学五年级(新教材)上册教学计划附教学进度表
- 2026年高校行政管理岗招聘笔试典型试题及要点含答案
- 光伏施工方案范文模板
- 2026年时事政治考试题库及答案(100题)
- 2026智慧灯杆商业化模式评估及城市更新与基础设施REITs报告
- 2023-2024学年广西南宁二中高一(下)期末生物试卷
- 健身房安全应急预案
评论
0/150
提交评论