已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二讲,C语言的基本语法,1,本讲主要内容,2,3,1、基本字符集,数字:0123456789字母:abczABCZ运算符:+-*/%=!=特殊符号:_(下划线)、回车(r)、换行(n)制表符(t)等,ASCII字符集,一、C语言的基本元素-1,4,2.标识符,标识符内容:常量名、变量名、数组名、类型名、存储方式名、函数名、文件名等。标识符规则:字母或_(下划线)开头,后面是字母、_(下划线)或数字组成的字符串,要求见名知意。,call_ntest39_string1abccall.n39test-string1c2.0,例,合法,非法,一、C语言的基本元素-2,5,标识符说明,(1)在C语言中,标识符中大小写字母是有区别的。程序中基本上都采用小写字母表示各种标识符,如变量名、数组名、函数名等。书写的各种语句也均用小写字母,而大写字母只用来定义宏名等,用的不多。(2)不同的系统对标识符的长度有不同的要求,有的要求为6个字符,有的允许使用8个字符,而VS2012的标识符有效长度不受限制。(3)除了少数情况下使用单个字符作标识符外(如:循环变量名),一般的应做到见名知意,以提高程序的可读性。如用sum表示和,score表示成绩,max表示最大等等。,6,3.关键字,autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile,又称标准标识符或保留字(32个),不能用关键字作标识符,由C语言系统定义,一、C语言的基本元素-3,7,4.运算符,进行运算处理的符号,(数组下标)、()、.、-(成员选择)-(负号)、(求反)、+(递增)、-(递减)、*(指针取值)、,一、C语言的基本元素-5,9,C语言把处理的数据进行分类,从数据的表示、取值范围和对应的操作等方面进行划分,形成不同的数据类型通过程序中数据类型的描述确定存放数据的空间大小,确保C程序中的每个数据都属于一个确定的、具体的数据类型。不同类型数据采取不同的存储形式;不同类型数据在内存中占有不同的存储空间;不同类型数据对应不同的取值范围;不同类型数据确定了允许对其进行不同的操作类型。,1、数据类型的含义,二、数据类型,10,二、数据类型,11,按照数据在程序中的取值分为两类:值保持不变-常量x=2+y值随程序运行变化-变量,基本数据类型,12,1、整型数据-1,整型数据包括整型常量和整型变量,13,类型说明符长度数的范围基本型int4字节-231231-1短整型short2字节-215215-1长整型long4字节-231231-1无符号整型unsigned4字节0232-1无符号短整型unsignedshort2字节0216-1无符号长整型unsignedlong4字节0232-1,整型变量的取值范围(在VS2010中),1、整型数据-2,14,有符号与无符号整型数的区别,则:unsigneda=232-1=4294967295,而inta=-1,则:unsigneda=215=32768,而inta=-215=-32768,15,1.求法:正数的补码与原码相同;负数的补码对原码除符号位外,按位变反,末位加1,即得补码。或者由反码加1也可求得补码。,+0补=-0补=0,数的补码表示,2.补码的表示范围当n=16时,补码的表示范围是:,+127补=0000000001111111-128补=1111111110000000,-128+127,由此可得补码表示范围的公式是,2n1(2n11),16,数的补码举例,问题:已知a=4,b=16,计算4-16,根据a补+b补=a+b补有:a+b补=+4补+16补,11110100,结果为负时得到负数的补码,需再求补得原码:10001100,16原=10010000,连同符号一起运算,解答,4补=00000100,16反=11101111,16补=11110000,-12,17,1)定义形式,三种形式,单精度双精度长双精度,floatdoublelongdouble,2)占存储空间,4816,字节,注意:实型常量不区分单精度和双精度!,2、实型数据-1,实型数据就是数学中的实数,一律作为有符号的数据使用。,18,4)输入输出形式%f,%lf,3)变量的取值范围,2、实型数据-2,19,实型数据在计算机中以指数形式存储,单精度float变量占四个字节。一个字节存放指数部分,三个字节存数值部分。,2-23、printf(%d,k+);输出3后,k的值为4,i=3;printf(%d,+i);,输出4,a)变量自身加(减)1:+与-,4)自增、自减运算符-1,42,b)只能用于变量,不能用于表达式和常量,(i+k)+,-3,c)优先级:2级,高于二元算术运算符,d)结合性:从右向左,例如-i+相当于-(i+),4)自增、自减运算符-2,43,voidmain()inta,b,s;a=5;b=5;s=a+b;printf(%d,%d,%dn,a,b,s);s=a+b;printf(%d,%d,%dn,a,b,s);s=+a+b;printf(%d,%d,%dn,a,b,s);s=-a+b;printf(%d,%d,%dn,a,b,s);s=a-+b;printf(%d,%d,%dn,a,b,s);s=a+b;printf(%d,%d,%dn,a,b,s);,4)自增、自减运算符-3,44,1.逗号运算符,(表达式1,表达式2,表达式n),用于连接几个表达式,2.求解过程,顺序求解几个表达式,3.优先级,逗号运算符的优先级最低,4.结合性,从左向右,5.逗号表达式,逗号表达式的值为最后一个表达式的值(表达式n的值),X=(a=4*5,a*2),a+6),a为?,20,x为?,26?,5)逗号运算符,45,逗号运算符应用举例,下面两个表达式是否相同?x=1+1,2+2;x=(1+1,2+2);用逗号表达式语句交换a和b两个变量中的数值:t=a,a=b,b=t;,46,格式:sizeof(表达式或数据类型)功能:求运算对象在内存中所占的字节数,求:printf(%d,%dn,sizeof(int),sizeof(char);,结果:4,1,求:printf(%d,sizeof(ASTn01212);,结果:10,6)sizeof运算符,47,a)隐式转换(自动完成的),(1)赋值表达式中的类型转换如果赋值运算符左侧变量的类型与右侧表达式的类型不一致,赋值时将进行自动转换。转换的原则:将右侧表达式的值转换成左侧变量的类型。,intx;floaty=5.3;x=y;,intx=5;floaty;y=x;,结果:x=5,结果:y=5.000000,7)数据类型转换与强制类型转换符,48,(2)算数运算表达式中的类型转换优先级低的向优先级高的转换(类型提升)类型提升方法:必定转换、操作时的转换,例如:inti;floatf;doubled;longe;表达式:10+a+i*f-d/e的结果为:double,数据类型转换与强制类型转换符,49,格式:(类型)表达式,(int)(10+a+i*f-d/e),将该结果强制转换为整型,例:inti;floatf;求:(int)f%i,取模运算要求运算分量是整数,所以先将f转换为整型(实际为使用f的整数部分),再做%运算,b)显式转换(强制转换),注意:在强制类型转换时,得到一个所需类型的中间值,原来变量的类型和值不发生变化。,数据类型转换与强制类型转换符,50,1)C中的基本数据类型,要掌握每一种类型的定义方式(关键字),在存储空间中所占的字节数,存储形式,取值范围。,2)C中的运算符的几个要点(功能、与运算分量的关系、优先级、结合性、运算结果的类型)。,3)算术运算符中的%只使用在int类型。,4)自增,自减运算的特点,灵活使用k+,+k。,数据类型与运算符总结,5)复合的赋值运算规则。,6)逗号运算表达式的值是最后一个表达式的值。,7)不同类型数据转换时的优先顺序。,8)算术运算、赋值运算、逗号运算的优先级。,9)常用转义字符的特点:ddd、xhhh等只占一个字节。,51,运算符的优先级和结合方向-1,52,运算符的优先级和结合方向-2,53,值得注意的几个问题,求:10%3=10%-3=-10%3=-10%-3=,11-1-1,2.自反赋值变量双目操作=表达式,功能,变量=变量双目操作表达式,inta=10,b=5;求:a*=b+1;printf(a=%dn,a);,a=a*(b+1)a=60,计算结果如下:,结论:表达式作为整体参加运算,1.取模(求余数),54,程序设计基本思想:任何事情都是一件一件完成的,编写程序也不例外。每件事情用一到多条语句实现,顺序书写出来就形成程序。程序的结构清晰、易读,可以提高程序设计质量和效率。程序基本结构分为三种:顺序结构选择结构循环结构,五、C语言基本的输入输出,程序结构,55,56,一般每个程序都要用到数据的输入输出。数据输入:通过外设将数据输入内存。数据输出:将内存的数据通过外设输出。,C语言的输入输出通过调用系统函数实现,这些输入输出函数一般存于stdio.h库文件。使用输入输出函数要用预译命令指出连接的库文件,程序编译连接时将其与用户程序相连。如:#include或#includestdio.h,1、输入输出的含义,57,2、格式输入输出函数,【例】输入一个整数半径,以单精度数形式输出圆的面积。,#includeintmain()intr;floats=0;printf(请输入圆的半径:);scanf(%d,58,格式:printf(格式控制串,输出表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1),输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明:%修饰符格式字符,用于指定输出格式普通字符或转义序列:原样输出,3、格式输出函数-1,59,inta=567;printf(“%d”,a);,inta=255;printf(“%x”,a);,inta=65;printf(“%o”,a);,inta=567;printf(“%u”,a);,chara=65;printf(“%c”,a);,printf(“%s”,“ABC”);,floata=567.789;printf(“%e”,a);,floata=567.789;printf(“%f”,a);,floata=567.789;printf(“%g”,a);,printf(“%”);,567,ff,101,567,A,ABC,5.677890e+002,567.789000,567.789,%,3、格式输出函数-2,说明:除X、E、G外,格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应,否则,若格式字符少,按其个数自左向右输出值,若格式字符多,多出的将输出不确定值.输出转换:格式字符与输出项类型不一致,自动按指定格式输出,但int与float不能互用。,60,附加格式说明符(修饰符),61,4、格式输入函数-1,格式:scanf(格式控制参数,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束返回值:正常,返回输入数据个数,地址表:变量的地址,常用取地址运算符charch;scanf(%d,例intx;charch;scanf(%d,执行:123输出:x=123,ch=10,例intx;charch;scanf(%d,执行:123输出:x=123,ch=10,66,例:scanf(%c%c%c,若输入abc则ac1,c2,bc3,例:scanf(%d%c%f,若输入1234a123o.26则1234a,ab,123c,输入分隔符的示例,67,格式:getchar()功能:从键盘读一字符返值:正常,返回读取的代码值;出错,返回EOF(-1),getchar函数,注意:getchar()函数没有参数,本身不能提供用于存放字符的变量,因此一般使用形式为:变量=getchar()利用getchar()读入字符时,不是读入一个字符后立刻响应,而是先读入缓冲区,待回车后再一并执行。通常用前置printf()函数加入提示信息。getchar()从键盘缓冲区中自左向右顺序读取数据的(这被称为数据流)。,5、字符输入函数,68,#includeintmain()charch1,ch2,ch3;ch1=getchar();/从键盘输入一个字符并存到ch1中getchar();/消除回车符的影响,即吃掉回车符号ch2=getchar();/从键盘输入一个字符并存到ch2中getchar();ch3=getchar();/从键盘输入一个字符并存到ch3中printf(%c%c%cn,ch1,ch2,ch3);return0;,getchar函数使用示例,69,6、字符输出函数,putchar函数(字符输出函数),功能:向显示器显示输出一个字符。格式:putchar(C);参数C:一个实参,可以是字符变量、整型变量、整型常量及整型表达式操作:输出C值,或整数对应的ASCII码所表示的字符正常,函数值为显示的代码值;出错,为EOF(-1),70,注:使用该函数必须将库函数stdio.h用预编译命令说明格式#includestdio.h或#include,例:#includeintmain()chara,b,c;a=B;b=O;c=Y;putchar(a);putch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数控铣削编程与加工 课件5-3高级技能训练三
- 公司培训计划制定及执行模板
- IT部门网络故障排查紧急处理手册
- 辽宁2026国家开放大学公共管理类-期末考试提分复习题(含答案)
- 2025 高中阅读理解之神秘奇幻风格剖析深化课件
- 临汾市吉县2025-2026学年第二学期五年级语文第七单元测试卷(部编版含答案)
- 承德市兴隆县2025-2026学年第二学期四年级语文期末考试卷(部编版含答案)
- 视图教学设计中职专业课-机械制图-机械制造技术-装备制造大类
- 凉山彝族自治州雷波县2025-2026学年第二学期四年级语文第七单元测试卷(部编版含答案)
- 桂林市恭城瑶族自治县2025-2026学年第二学期四年级语文期末考试卷(部编版含答案)
- 房车改装采购合同范本
- 电烙铁焊接基础培训课件
- 工程质量潜在缺陷保险项目风险评估报告
- 八年级数学上册线段的垂直平分线沪科版教案(2025-2026学年)
- 2025外交部所属事业单位招聘95人(公共基础知识)综合能力测试题附答案
- 安全环境职业健康法律法规文件清单(2025年12月版)
- 2025年山西药科职业学院单招综合素质考试题库附答案解析
- 校园图书馆安全检查记录表
- 机械制造技术基础 课件 5.2 影响机械加工精度的因素
- 产品经销协议书
- DB32∕T 5188-2025 经成人中心静脉通路装置采血技术规范
评论
0/150
提交评论