ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:48.46KB ,
资源ID:20741709      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20741709.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言学习笔记悉心整理Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言学习笔记悉心整理Word文件下载.docx

1、 顺序是自右到左。 复合赋值运算符:+= -= *= /= %= = &= = |= 以+=为例:a+=b等效于 a=a+b; 结合顺序也是从右向左强制类型转换符号 如:(int) x;将该表达式的值强制转换成int型自增、自减:+ - +i,i+,-i,i +i 先将i的值加1,再使用i i+ 先使用i的值,再将i的值加1 例子:k=(i+)+(+i)+(i+) 等效于 i=i+1,k=i+i+i,i=i+1,i=i+1 k=(+i)+(+i)+( +i) 等效于 i=i+1, i=i+1, i=i+1,k=i+i+i逗号运算符:“,”优先级最低的符号 形式:表达式1,表达式2,表达式n 运

2、算顺序,从左向右,最后最右边表达式n的值是整个逗号表达式的值关系表达式及运算符关系运算,结果只能是“真”或者“假”。关系运算符含义优先级6=7!逻辑运算逻辑运算符&与|有一些较为特殊的属性,由&与|连接的表达式按从左到右的顺序进行求值,并且,在知道结果值为真或假后立即停止计算。根据定义,在关系表达式或逻辑表达式中,如果关系为真,则表达式的结果值为数值 1;如果为假,则结果值为数值 0。逻辑非运算符!的作用是将非 0 操作数转换为 0,将操作数 0 转换为 1。条件运算在表达式 expr1 ? expr2 : expr3 中,首先计算 expr1,如果其值不等于 0(为真),则计算 expr2

3、的值,并以该值作为条件 表达式的值,否则计算 expr3 的值,并以该值作为条件表达式的值。位运算C 语言提供了 6 个位操作运算符。这些运算符只能作用于整型操作数,即只能作用于带符号或无符号 char、short、int、long 类型: 按位与(AND)| 按位或(OR) 按位异或(XOR) 左移 右移 按位求反运算符优先级与求值次序 () . 从左至右 + + * (type) sizeof 从右至左* / % 从左至右+ 从左至右 从左至右= 从左至右= ! 从左至右| 从左至右| 从左至右:= += = *= /= %= &= = |= m则m取n值,只输出字符串左端的n个%-m .

4、ns同上 右补空格 f格式符 %f按7位有效数输出,不管输出的数是否有效 都有6位小数 %m.nf总域宽m(含小数点),n为小数位数,m足够大左补否则实际输出 %-m.nf同上 右补 e格式符 以指数形式输出实数 %e系统自动给出宽度,13列,小数8位,其中小数位6位,小数点前一位非零数,指数部分5位 e+000形式显示 %m.ne %-m.ne m为总宽,n小数位数默认值为6 g格式符 输出实数,根据数值的宽度自动选取f或者e格式中输出宽度较短的, 且不输出无意义的0数据输入字符数据的输入函数名输入方式函数原型getchar()有回显,需按回车stdio.hgetche()有回显,不需回车c

5、onio.hgetch()无回显,不需回车scanf()的使用 scanf(“格式控制字符串”,地址列表); 地址:变量名字 两个格式说明之间无其他符号时候,输入数据时以空格、回车或TAB来分隔数据 若在格式符之间有其他字符,必须原样输入 格式也可以控制宽度,按自左而右截取,但是不能规定小数位数 scanf()没有%u格式,整数一般用d实数用f选择结构程序设计if-else语句 if-else 语句用于条件判定,其语法如下所示:if 表达式语句 1else语句 2其中 else 部分是可选的。该语句执行时,先计算表达式的值,如果其值为真(即表达式的值 为非 0),则执行语句 1;如果其值为假(

6、即表达式的值为 0),并且该语句包含 else 部分, 则执行语句 2。建议在有 if 语句嵌套的情况下使用花括号。在 C 语言中我们会经常用到下列结构:if (表达式)语句else if (表达式)这种 if 语句序列是编写多路判定最常用的方法。其中的各表 达式将被依次求值,一旦某个表达式结果为真,则执行与之相关的语句,并终止整个语句序 列的执行。同样,其中各语句既可以是单条语句,也可以是用花括号括住的复合语句。switch结构switch (表达式)case 常量表达式: 语句序列default:每一个分支都由一个或多个整数值常量或常量表达式标记。如果某个分支与表达式的值匹配, 则从该分支

7、开始执行。各分支表达式必须互不相同。如果没有哪一分支能匹配表达式,则执行标记为 default 的分支。default 分支是可选的。如果没有 default 分支也没有其它分 支与表达式的值匹配,则该 switch 语句不执行任何动作。各分支及 default 分支的排列次序是任意的。在 switch 语句中,case的作用只是一个标号,因此,某个分支中的代码执行完后,程序将进入下一分支继续执行,除非在程序中显式地跳转。跳出switch语句最常用的方法是使用break语句与return语句。循环结构程序设计while 循环和for循环 while (表达式)语句在 while 循环语句中,首

8、先求表达式的值。如果其值非 0,则执行语句,并再次求该表达式的值。这一循环过程 一直进行下去,直到该表达式的值为 0 为止,随后继续执行语句后面的部分。 for (表达式 1; 表达式 2; 表达式 3)它等价于下列 while 语句: 表达式 1;while (表达式 2) 表达式 3;与表达式 3 是赋值表达式或函数调用,表达式 2 是关系表达式。这 3 个组成部分中的任何部分都可以省略,但分号必须保留。如果在 for 语句中省略表达式 1 与表达式 3,它就退化成了 while 循环语句。如果省略测试条件,即表达式 2,则认为其值永远是真值,因此,下列for 循环语句:for (;) .

9、是一个无限循环语句,这种语句需要借助其它手段(如 break 语句或 return 语句)才能终止执行。do-while循环 do-while 循环的语法形式如下:dowhile (表达式);在这一结构中,先执行循环体中的语句部分,然后再求表达式的值。如果表达式的值为真, 则再次执行语句,依此类推。当表达式的值变为假,则循环终止。break 语旬与 continue 语旬break 语句可用于从 for、while 与 do-while 等循环中提前退出,就如同从 switch 语句中提前退出二样。break 语句能使程序从 switch 语句或最内层循环中立即跳出。continue 语句用于

10、使 for、while和 do-while 语句开始下一次循环的执行。在 while 与 do-while语句中,continue 语句的执行意味着立即执行测试部分;在 for 循环中,则意味着使控制转移到递增循环变量部分。continue 语句只用于循环语句,不用于 switch 语句。某个循环包含的 switch 语句中的 continue 语句,将导致进入下一次循环。goto语句C 语言提供了可随意滥用的 goto 语句以及标记跳转位置的标号。最常见的用法是终止程序在某些深度嵌套 的结构中的处理过程,例如一次跳出两层或多层循环。这种情况下使用 break 语句是不能达 到目的的,它只能从

11、最内层循环退出到上一级的循环。下面是使用 goto 语句的一个例子:for ( . ).if (disaster)goto error;error:/* clean up the mess */标号的命名同变量命名的形式相同,标号的后面要紧跟一个冒号。标号可以位于对应的goto 语句所在函数的任何语句的前面。标号的作用域是整个函数。数组一维数组一维数组的定义 类型说明符 数组名 常量表达式; 说明:常量表达式是数组长度,不能用变量表示,可用符号常数或常量表达式;数组名与变量名不能重复;允许一个类型下说明多个变量和数组;数组名是数组的首地址,即a=&a0。一位数组的初始化 类型说明符 数组名常量

12、表达式 =值,值,值;可以只给部分元素赋值;只能对元素逐个赋值,不能对数组整体赋值;对全部元素赋值时,可以不定义数组长度,系统自动根据初值个数来决定数组长度;未赋值时候元素值随机。数组元素的引用 数组名下标表达式下标表达式可为常量、表达式、变量,取值范围0元素个数-1,不能越界;只能对数组的元素进行操作。二维数组二维数组的定义 类型说明符 数组名常量表达式1常量表达式2; 例如 int b33;在内存中顺序为b00b01b02b10b11b12b20b21b22 元素按行排列;二维数据可以看做一维数组的数组。二维数组的初始化 int a23=1,2,3,7,8,9或int a23=1,2,3,

13、7,8,9 int a 3=1,2,3,7,8,9或int a 3=1,2,3,7,8,9自动计算行数,但是列数不可以省略。 int a23=1,2,5相当于int a23=1,2,0,5,0,0自动将少的值赋为0.二维数组的引用 数组名下标1下标2; 俩下标必须放在俩括号内;下标可以是表达式、常量、变量,不能越界。字符数组定义、初始化、引用 定义 char c10;、char c510; 初始化 char str=c,h,i,n,a或char str5=c,h,i,n,a以字符常量的形式初始化 char str10 =c,h,i,n,a char str=“china”以字符串形式初始化,相

14、当于char str6=“china”字符串和字符串结束标志 C中没有字符串变量,所以处理字符串常常用字符数组来实现,字符数组相当于字符串变量。 对字符串常量,系统会自动在末尾加0作为结束标志。 对字符数组,有时候加0,有时候不加0,见上初始化。字符数组的输入输出 逐个 for(i=0;i20;i+) scanf(%c,&stri); i+)printf(“%c”,stri);说明:若输入的字符数小于循环数,按回车后会继续等待输入,回车、空格均算字符;若输入字符数大于循环数,则取前面的;输入为缓冲读,接受到回车,scanf才读数据。 整个scanf(“%s”,&str);printf(“%s”

15、,str);输入时候不能含空格,否则会认为该字符串已经输入完成;自动加结束标志。常用字符串处理函数 stdio.h gets(str) 从键盘输入字符串存入str数组,可含空格,回车结束 puts(str)将str中字符输出到显示器,直到0,会将0转换为n输出。 string.h strlen(str) 求字符串长度,不包括0,返回长度值strcat(str1,str2)将str2字符串连到str1后面,从str1的0处开始。strcpy(str1,str2)str2复制到str1中 strcmp(str1,str2)比较俩字符串。相等返回0,1大返回正数,2大返回负数(绝对值都是ASCII码

16、差值)。比较规则:按字符的ASCII码值大小,知道出现第一个不同的字符,即由第一个不同字符的大小决定所在串的大小。 函数函数概述模块化程序设计 分而治之; 函数本质:独立完成任务,可以调用其它函数,内部工作对外不可见。 main函数开始,main函数结束,main函数可以调用其它函数,不可被调用。函数的分类 库函数、用户定义函数; 有返回值函数(必须定义返回值类型)、无返回值函数(void); 无参函数、有参函数。函数的定义及调用函数定义 无参函数: 类型标识符 函数名() 声明部分 语句 有参函数: 类型标识符 函数名(类型名 形参1,类型名 形参2,) 空函数 函数名()用于扩充功能预留。

17、函数不能嵌套定义;形参必须分别定义类型。函数参数传递 实参是函数调用时候括号里的参数,参数传递是单向的,由实参到形参;只有被调用时,函数的形参才会分配内存空间,函数完成后释放内存空间;形参的值变化不会影响到实参;实参形参的顺序、数量、类型必须一致;实参可以使变量、常量、表达式,但必须有确定值;形参说明两种方式: int max(x,y) int x,y; int max(int x, int y)函数的返回值 通过return函数返回值: return 表达式;或者 return ()表达式; return函数终止函数的执行,返回表达式的值,每个函数只能执行一个return语句; 无retur

18、n语句的函数返回值不确定; 返回值应该和函数的定义类型一致,若不一致,强制转换为函数类型。 无返回值定义为void,默认是int型。函数调用和参数传递函数的调用 函数名 (实参列表);或者 函数名(); 调用方式: printf(”);作为独立语句 r=max(a,b)+min(c,d);作为表达式 x=max(max(a,b),min(c,d);作为函数的参数函数声明与函数原型 函数必须存在才能被调用,库函数要包含相应的头文件;函数在调用之前要声明,声明格式: 类型标识符 函数名(类型名 形参1,类型名 形参2,); 形参名字无所谓; 声明只是告诉编译系统该函数的一些信息,以便进行语法检查,

19、注意区分与函数定义的区别。 下列情况不需声明即可调用:函数定义出现在主调用函数之前;如果在所有函数定义之前、文件的开始、函数的外部已经预先声明了,那不需再声明;库函数不需声明,包含相应的头文件即可。函数的嵌套调用 不允许嵌套定义,允许嵌套调用,即函数定义中又调用了别的函数。数组作为函数参数数组元素作函数实参数组元素作为实参,可以看做是普通变量,不要求形参也是下标变量,而且传递的是值,遵循参数单向传递。数组名作为函数参数数组名可以做形参、实参;系统不为形参数组分配地址,实参向形参只是传送地址,这样被调函数可以实现对主调函数数组的操作。例如: float aver(float a) 函数体void

20、 main() float score10,av; av= aver(score); 形参数组和实参数组类型必须一致;长度可不同,形参长度可不定义,只传递首个地址。函数的递归调用函数的递归调用是指一个函数在它的函数体内,直接或间接地调用它自身。直接递归调用:在调用hs函数过程,又调用hs函数;间接递归调用:在调用hs1函数的过程中,调用了hs2函数,而在调用hs2函数的过程中又调用了hs1函数。防止无终止运行,必须有终止递归的条件。递归调用两个阶段: 递推阶段:将原问题分解为新的子问题,最终达到已知的条件 回归阶段:从已知条件出发,逐一求值回归,最终达到递推的开始处,完成递归调用。变量的作用域

21、及其存储类型局部变量局部变量是指在程序块或者函数内定义的变量(内部变量),只能被定义它的程序块或者函数访问,函数或程序块结束执行时,系统收回其内存空间。C中的局部变量:函数体内定义的变量(包括main函数);复合语句中定义的变量;形参。访问变量有同名时,采用局部有限的原则;不同函数的局部变量名字可相同。全局变量 在函数外部定义的变量;也称外部变量。 作用域:从定义开始到文件结束。优点:增加函数间数据联系的渠道,从函数得到一个以上的返回值,减少函数实参与形参耳朵个数,减少内存空间以及传递数据时的时间消耗。缺点:不符合模块化程序设计的原则(函数是一个封闭的整体),使得函数的移植性、通用性、可读性降低;各个函数都可能改变全局变量的值,容易出错;长时间占用存储单元。外部变量的声明:在外部变量的定义之前如果需要引用,那就需要声明 extern a;声明只是说明有这个外部变量,只有定义外部变量时候才分配内存单元;声明可以出现多次,定义只能出现一次。外部变量与局部变量同名时候,局部变量会屏蔽全局变量(局部优

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1