2022年c语言程序设计 2.pdf
《2022年c语言程序设计 2.pdf》由会员分享,可在线阅读,更多相关《2022年c语言程序设计 2.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1c 语言程序设计听课笔记:01演变历史: CPL-BCPL-B-C面向机器的高级语言C语言的特点:1语言简洁,紧凑,使用灵活2 运算符丰富3 具有数据类型构造能力4 具有很强的流程控制结构 5 语言生成的代码质量高6 可移植性较好(显著的特点)7 语言限制不够严格程序设计语言的构成:数据,运算,控制结构,存储管理,运算环境数据:提供用于加工的各种类型的初等数据项和数据结构运算:为数据提供一组有效的数据运算控制结构:为一系列被执行的基本运算提供控制运算顺序的机构存储管理:动态,静态运算环境:内部,外部程序设计语言的实现:(1) 翻译或编译:1编译程序 : 高级语言源程序- 机器语言目标程序2
2、汇编程序:汇编语言源程序 - 机器目标语言程序3 装配程序:机器语言源程序- 机器语言目标程序(2) 软件模拟:高级语言源程序- 运行结果字符集:1数字: 0-9 2 字母: A-Z,a-z3 特殊字符: - ,#,、,(,)等4 运算符: +,- ,/,% 等保留字 :1 类型说明和定义保留字:chai,int,short等 2 存储类说明保留字:auto,resgister,static,extern3特定字:用在预处理程序中,define,undef,include.标示符:保留字, 特定字,一般标示符,一般标示符:用来标识变量名,常量名,函数名,数组名,类型名,文件名等的符号名字:(1
3、)标识符其结构定义:以字母(包括下划线)开头的字母数字串注意:书写标识符时有大小写区别,标示符的长度无统一规定C语言以左大括号开头以右大括号结束,分号前的语句表示C语言的输出字符c 语言程序设计听课笔记:02一、整形数据的类型:a)整型常量:整型常量即整常数,有十进制、八进制和十六进制整数。十进制数:一串连续的数字表示,最高位为非零。八进制数:以数字零开头。十六进制数:以数字零和字母x 开头, a-f 不区分大小写。b)整型变量:分为有符号和无符号两种,所有整型变量在使用前必须加以说明和定义有符号的整型变量分为三种:标准整型(int) 、短整型( short )和长整型( long ),其值可
4、正可负。无符号的亦可分为三种:标准整型(unsignedint) 、短整型( unsignedshort )和长整型( unsignedlong ) ,其值不能为负。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 2? int 、short和 long 区别主要是表示的整数范围不同,用一个机器字来存放一个int 型数据。且int 、short和long型整数的字长满足:shortintlong。其中 :int占 16 位,即两
5、个字节。short占 16 位,即两个字节。long 占 32 位,即四个字节。16 位处理的数的范围:-3276832767正整数:以原码形式存放在内存中,16 位是正数范围为032767负整数:以补码方式存放在内存中补码的求法:1. 原码除符号位其余位均取反+1 ;2. 用模减去绝对值。补码还原十进制:除符号位其余位取反后转化成十进制数,将结果-1 ,还原出十进制数二、字符型数据a)字符型常量:1. 由一对单引号引起来的单个字符 (可打印)2. 转义序列: 反斜线后跟特定的字符(不可打印) ,作为一个字符对待,如其后的字符不能和构成转义序列,则 被忽略。n换行符r回车符,回到此行的开头,并
6、不换行tTab 键,一次性输入多个空格b退格符,光标向回走f换页符,到下一页的开始输出符号输出单引号 0空字符,不是空格,ASCII码中 =0ddd13位 8 进制数字0 xff12位 16 进制数字PS:ASCII码是2进制7位有效,占8位,所以对于8进制来说需要3位,对于16进制来说需要2位c 语言程序设计听课笔记:03b)字符型变量:由保留字char来说明(格式为charc1,c2 ;)其中c1 、c2 中只能各存放一个字符标准输入输出函数stdio.h(putchar:将键盘输入的字符显示在显示器上、getchar:用户从键盘输入字符给变量)? 字符数据在计算机内部是以一个字节(8 位
7、)的二进制形式表示的,所以对要处理的字符通常先进行编码(整数型,但是对于有无符号,没有特别规定),对一个char 型变量赋值一个名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 3整型值时,可能是ASCII码printf中的参数可以有多个,但第一个参数必须是字符串,我们称其为格式串(可显示字符直接显示,n 之类的控制字符则产生相应的动作)。常用的转换符有:%d输出的是十进制整型%c 输出的是字符型%f 输出的是浮点型%s 输出的
8、是字符串型( C 语言中用数组实现)0 是字符串结束的标志。char 型可参与任何整数运算,但是必须转化成ASCII码后进行数字字符 整数值:基准字符0,任意数字字符X- 0=X(数值)字符量可以参加关系运算( 之类),但是必须转化成ASCII码后进行字符量可以参加逻辑运算(&之类),但是必须转化成ASCII码后进行c)字符串常量(字符串无变量):用一对双引号括起来的零个或多个字符的序列。字符串常量 “x”内存中占2 个字节( “x”=x/0)字符串两边的双引号是字符串的分界符,而不是字符串的一部分,双引号的ASCII码值是 042 ,要输出双引号 042eg :The ais an inde
9、fart.The042a042is an indefart.字符串中所含的字符个数称字符串的长度(不包含结尾的0 )。例如: “XYZ ” 的长度为3, “”的长度为0,称为空串。但是字符串所占的空间为长度+1 (包含结尾的 0 )转义系列也可以出现在字符串中,但只是作为一个字符串来看待。三、浮点型数据分为浮点型常量和浮点型变量。a)浮点型常量:分为非指数型和指数型两种。非指数型是不带指数部分的实数型常数指数型常数是指带有指数部分的实数:e(E)之前必须有数字,之后的指数必须为整数,且不能插入空格。b)浮点型变量:通过保留字float来说明(格式为floatx, y, z;)c 语言程序设计听
10、课笔记:04? 十进制含有小数的转化为二进制的方法:整数部分和小数部分分别转化为二进制,中间用点连接, 这种小数表示方法将小数点放置最后(没有小数点),或者最前面(可忽略小数点),则可剔除小数点的问题所以任意一个二进制实数N 总可以表达成N=S*2P(P 次方)( P、S 为 有符号 二进制整数, P 称阶码, S 称尾数并约定其中没有小数点或可忽略小数点),可假设存储时P 占 8 位(若指数为负,存储时取其补码,用100000000(8 位模)减绝对值即可),S 占 24 位(具体S、P 占的位数并无硬性规定)浮点型数据在内存中一般占4 个字节( 32 位: 24 位尾数 +8 位阶码),
11、7 位精度,浮点型输出时,小数点留6 位整型数据占两个字节(16 位)四、双精度数据双精度变量:双精度一般占8 个字节( 64 位: 48 位尾数 +16位阶码), 17 位精度( C 中浮点常量通常以双精度存放和表示)双精度变量通过保留字double来说明(格式为doublea, b;)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 4复习:整型数据: inta, b; (内存中占2 个字节 16 位)字符型数据:chara
12、, b; (内存中占1 个字节 8 位)可参与整数运算浮点型数据:floata, b; (内存中占4 个字节 32 位,以阶码和尾数表示)双精度数据:doublea, b; (内存中占8 个字节 64 位)五、变量的初始化变形说明完之后到使用之前,要赋初值六、变量的存储类变量的两个属性:存在性:变量都具有一个数据类型并以一定方式存在在内存中可见性:在其作用域(作用域指该变量有定义的程序部分)中是可见的(活动的),出了作用域则不再可见变量的以上两个属性以四个变量存储类决定:自动的( auto ):每一次从程序中进入某个函数时,函数中的这个变量的值总会取初始化的值寄存器( register):用到
13、计算机的寄存器,硬件变量静态的( static ):下次进入这个函数时,函数中的这个变量绕过初始化的部分,取上次这个函数结束时的值外部的( extern):全局变量c 语言程序设计听课笔记:05a)自动变量:由保留字auto 说明( auto可省略)是局部变量,每进入一次函数体,就赋一次指定的初值(在进行编译前必须赋值),作用域局限于所在函数或块b)寄存器变量:在变量说明前面加保留字register来完成是局部变量,用法和作用域同自动变量,变量保留在CPU 的寄存器中,占用固定的存储空间,只是对编译程序的一种建议(希望为寄存器变量),不是强制的,一般用于系统开发寄存器变量无地址,不能进行求地址
14、运算寄存器变量的说明应尽量靠近使用的地方,用完尽快释放(有限的硬件资源)c)静态变量:在变量说明前面加保留字static来完成静态局部变量生存期延长到程序运行 结束(不止是函数结束),不一定赋初值,编译时对无值的赋予0,用法和作用域同自动变量d)外部变量:函数外部任意位置定义的全局变量 (作用域:从 定义位置起 到整个源文件结束;生存期:整个程序的运行期间)外部变量与局部变量同名时,外部变量被摒弃每个引用外部变量的函数,都应对外部变量用extern加以说明第三章运算一、运算符算术运算符名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
15、- 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 5关系运算符逻辑运算符位运算符赋值运算符条件运算符?:逗号运算符,指针运算符*&求字节数符sizeof (数据类型)强制类型()成员运算符-其他二、算术运算符a)基本算术运算符:C 中算术运算符的先后顺序(单步运算优先级高于双步运算):- (负号)*/+- (减号)运算符优先级从高到低,从左至右b)模运算符 % :二元运算符,优先级同和结合方向同* /两侧操作数为整型数据,n%m结果为 n/m的余数,余数符号与被除数一致c)赋值运算符:二元运算符,做操作数必须为变量,右操作数可以为常量、
16、变量、表达式赋值表达式可以出现在其他表达式中,右侧也可为赋值表达式“ =”的结合方式从右至左算术运算符优先级高于赋值运算符复合的赋值运算符:+=-=*=/=d)+- 运算符(使对象加1 或者减 1)单目运算,运算变量可以是整型或者实型变量,不能是常量或表达式优先级和结合方向:+-(一元复)从右到左*/%从左至右+- (二元减)从左至右构成形式:前缀(+a,-a )后缀( a+,a- ),前缀值是运算之后的,后缀值是运算之前的,但a 的值相同eg : a=3+a,表达式的值为4,a=4a+,表达式的值为3,a=4c 语言程序设计听课笔记:06eg : i=3j=i+*+i+i-*-ij=3*4+
17、3*2=18先同时运行 +i和-ie)混合运算中的类型转换名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - 6当运算符两边的操作数类型不同时,其中一个要进行类型转换和另一个保持一致后,才能进行运算转换过程中遵循就高不就低 的原则: 即级别低的操作数先转换成和级别高的操作数类型一致,然后再运算, 结果的数据类型和级别高的一致(字节多级别高,这样定义不会损失精度)具体关系:高double-float|long|unsigned低in
18、t-char,short强制类型转换表达式(高级别向低级别转换时使用,低级别向高级别转换由系统自动完成): (类型)(表达式),此表达式只转换离自己最近的数,表达式可不带括号ps :使用强制类型转换表达式时,若浮点型向整型转化,小数点后的数直接舍去,不存在四舍五入类型转换也发生在赋值运算符的两边,且不管赋值运算符右边的表达式的结果类型如何,一律转换为左边变量的类型,然后再赋给左边的变量类型的提升:将低级类型转换成高级的(增加二进制位),精度不损失类型的下降:将高级类型转换成低级的(截断和舍入二进制位),一般会造成精度的损失f)逗号表达式结合方式:由左至右优先级最低,从第一个表达式开始计算,一直
19、到最后一个表达式,且逗号表达式的值为最后一个表达式的值,但不能前面的表达式不求而直接求最后一个eg :( i=3,i+,-i,i+5)i=10c 语言程序设计听课笔记:07% 取余第四章C 语句及控制结构1、C 语句分为四类1) 、空语句:;作用:循环体和转向点2) 、表达式语句功能:表达式求值函数调用语句也属于表达式语句的一个特例,如:ch=getchar();putchar(ch);printf(%dn,5);3) 块(复合语句)语句组4)控制语句:条件、循环一、关系运算符关系表达式值是逻辑值,1 真, 0 假名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
20、 - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - 7二、逻辑运算符& 优先级高于 |三、说明1、将一个量作为逻辑量来判断真假值是,非零真,零假2、逻辑运算符的操作数,可以是任何类型的数据3、若 & 前的表达式是0,或 | 前的表达式是1,则不用执行后面的表达式,这种现象称为短路1。条件分支语句1、简单 ifif()putchar()语句也可以是块:if()if( 条件 ).1.;.2.;若条件成立,执行1,再执行2;不成立,执行2 。c 语言程序设计听课笔记:08b)块 ifif (表达式)语句 1else
21、语句 2c)if-else-if语句if (表达式1)语句 1elseif (表达式 2)语句 2else if (表达式n)语句 nelse语句 n+1ps :嵌套使用if 语句时, else 只和其前面最接近它的if 配对如果让其和最外层if 配对,必须用块来显示地标界输入函数scanf (“ 格式串 ” ,&变量名);d)条件运算符?:(三目运算符)表达式 1 ?表达式2 :表达式3若表达式1 的值非 0,则结果为表达式2 的值,否则为表达式3 的值常用来构成一个赋值语句ps :条件运算符?:的优先级仅比赋值运算符和逗号运算符高,所以一般应该加括号使用五、循环名师资料总结 - - -精品
22、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - 81、while循环a)while循环while (表达式)语句条件满足时执行循环体,不满足时结束循环转去执行下一条语句。Ctrl+break键可以结束程序中的死循环ps : while循环是 “ 先判断,后执行” ,若一开始表达式就不满足,则语句永远不会被执行循环条件一定要有不满足的时候,避免死循环循环体若包含一个语句以上,应组成复合语句b)break语句可中断循环,跳出循环执行下面的语句,常与if 语句
23、一起使用c 语言程序设计听课笔记:09c)continue语句跳出本次循环体直接进行下一轮循环(个别情况不处理时使用)2、do-while(直到型循环 )do语句while (表达式)ps :先执行,后判断,至少执行一次循环体, break和 continue在 do-while语句中也起相同的作用3、for 循环用于定长循环(循环次数确定),也可以用于变长循环,完全可取代while循环。for (e1 ;e2 ;e3 )语句a)e1 :循环变量初始化b)e2 :循环条件测试(成立执行语句)c)e3 :循环控制变量的增量操作c 语言程序设计听课笔记:10六、 goto语句及语句标号(不提倡使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年c语言程序设计 2022 语言程序设计
限制150内