2022年c语言期末复习知识要点_第1页
2022年c语言期末复习知识要点_第2页
2022年c语言期末复习知识要点_第3页
2022年c语言期末复习知识要点_第4页
2022年c语言期末复习知识要点_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-2022【 2】 c 语言期末复习学问要点 一, 基本概念的基础学问( p5 ) . .构成 c 的基本单位是 函数 main 函数是 c 语言中的一个函数, c 语言写的程序,可以有多个函数构c 程序中 有且 成, 只有一个 main 函数,c 程序的执行总是从 main 函数开头,在 main 函数中终止; c 程序中注释可以显现在 任何空格可以显现 的地方 o注释的作用:帮忙懂得和备忘程序的功能 o注释方法两种: / /* */ o 注释书写位置:可以写在任何空格可以显现的地方,原就上,写在代码后面,不 影响程序的可读性 . c 语句都要用分号;终止 . 函数由函数的 首部和函

2、数体 构成 函数可. 以 嵌套调用 ,但是 不行以嵌套定义 函数. 之间的书写位置没有固定的要求 . 其他函数,只有被调用的时候, main 调用了它,它才会被执行; 二, 变量和常量( p22 ) 一 .常量是不行以转变的量 l 的是长 常量分为整型,实型,字符型 .整型常量分为: 十进制 :125;八进制 : 0125; 十六进制 :0 x12(后面加 整型常量) .实型常量分为: ( 小数), 1.23e+3(科学计数 ) o,可以省略小数点前的整数: .13 可以省略小数点后的小数: 5. omEn,科学计数法, e 前必需有数字, e 后必需是整字符型常量分为:字符常量 a,字符串常

3、量“ abcd”, 转义字符( p29) 数 o字符型: a字符常量,它可以存在一个字符变量中,它储备的是该字符的 ascii 码值,其实是一个整数,一个 ascii 码在内存中占用一个字节 o afjdslkgjfk: 字符串常量,它不行以存入一个字符变量中;那假如要表示或 者储备一个字符串,怎么办?字符数组来办 o 转义字符: . ddd:代表 1-3 位八进制数为 ascii 码值的那个字符;如 7 表示 ascii 码值为 7 的字符; 25 表示 ascii 码值为 21(十进制)的字符; 101 表示 ascii 码值为 65(十进制)的字符; 第 1 页,共 10 页. xhh:

4、代表 1-2 位十六进制数为 ascii 码值的那个字符;如 x41 表示 ascii 码值为 65(十进制, 4*16+1)的字符; . 输出一个 , 双引号 输出 双引号 ; o字符串长度判定:“ abcdn123”长度为 7;“ abcdn183”长度为 8 二 .算法的 5 个特性 变量是在程序执行过程中其值可以转变的量 三 .变量要 先定义,后使用 变量要分类型:类型准备变量储备在哪个区,占几个字节,可以参加什么运算 .变量有地址: &x .变量的值的获得(赋值,从键盘接收) 符号常量: 宏 四 .标识符命名规章: 变量命名,函数命名等都是 标识符 :数字,字母,下划线构成,其中 数

5、字不能开 头;关键字不行以用 来作为用户的标识符; . 下面标识符中完全合法的标识符是: . a )max _234 m4 4x . b )32a k-u int gfk . c) min printf k3 hj ( printf 是函数名不是关键字,语法上,可 以用来作标识符,但是猛烈建议不要使用库函数名作为标识符,简洁使代 码纷乱) 三, 运算符( p31 ) 一 算术运算符: +,-* ,/,( 除法 运算: 两个数都是整数,结果取整 5/9;求余 运 算:参加 运算的两个数 必需都是整数 ) 二 .+,-:变量的值自增 1 或者自减 1 +运算符:是使得 变量 的值 +1 .-运算符

6、:使得 变量 的值 -1 .+,-:只能用于变量的运算,不行以用于常量, 5+, x+ .+,-:参加运算的操作数是几个? 1 个,单目运算符 .c=a+; 里面有两个运算符, = 和 + :假如 +在变量的后面,先取变量的值付给 c,在将变量 a+1; 三 .c=+a;先将变量 a+1,再将运算后, a 的值给变量 c .whiley- for;x-,=,实际数据的宽度,补空格 .实际数据宽度,原样输出 .=原样输出 输入函数: scanf(p39)能处理任何类型的数据 十三 字符输出函数: putchar,只能处理字符类型的数据,并且处理的是单个字符 (p41) . .1. 作用: 输出一

7、个字符 2. 它的参数 c,可以是: 字符型变量 , 字符型常量 , 整形变量 ,整形常量 , 表达式 .int x=108; .char c=k; .putcharc;/字符型变量 .putcharn;/字符型常量 .putcharx;/整形的变量 .putchar100; /整形的常量 第 3 页,共 10 页十四 .putcharx+1; /表达式 字符输入函数: getchar,只能处理字符类型的数据,并且处理的是单个字符 1. 从键盘接收一个字符型的数据 .2. 函数的参数为空 3. 函数的返回值通常需要储备给另外一个变量 .例如: c=getchar; 四, 程序设计的基本结构 一

8、 .次序结构 定义: 有几个变量?都是什么类型? 输二 .入: 已知条件是什么?有几个?如何输入 运算: 程序要运算的量是什么?如何运算? .输出: 输出什么? .选择结构( p58) 单个分支的选择三 .结构 两个分支的选择结构:确定值问题 .三个分支的选择结构:一元二次方程求根问题 .多个分支的选择结构:分数等级问题 .if 的嵌套:出租车计费问题 .switch 语句 .switch 后面括号中的表达式 必需是整型或字符型数据 .case 后面的 常量不能重复 .case 后面的常量:可以是整型,字符常量case 8 或 case a .如: 一个 case 分支,可以有多条语句,要括起

9、来构成复合语.句 case 和 default 语句的次序没有要求,但要留break 的使用 . 意 . default 是可以省略不写 break 是用来终止 switch 语句的 if-else 配对原就: else 总是和离它最近的,未配对if 配成一对 的 循环结构,三种循环结构的比较 第 4 页,共 10 页while do while for ;循环变量增值) 循环变量赋初值; 循环变量赋初值; for (循环变量赋初值; 循环条件 while (循环条件) do 循环体语句 循环体语句 循环体语句 循环变量增值 循环变量增值 while (循环条件); n=1; n=1; for

10、 (n=1 ;n=100;n+) while (n=100) do s+=n; s+=n; s+=n; n+; n+; while (n=100); 初始条件为假,循环一次也不做 初始条件为假,循环体执行一次 初始条件为假,循环一次也不做 “循环条件”为 0,即是假;非 0,即是真;因此如有语句: for (n=1; 1;n+) s+=n; 循环为 死循环 ; 四 break 和 continue:终止循环,提速循环 五, 数组 一 .一维数组:储备一组数据类型相同的数; 1. 使用这些数据的话,就要引用数组元素, ai .2. 数组名除了作为一个名字存在,仍是 数组的首地址 ,也就是第一个元

11、素的地 址, a 等价于 &a0 ,输出地址,使用的格式把握符号是: %x ,%p (十六进制表 示) 二 .3. 数组中全部的元素地址是连续的 .定义 数据类型 数组名 元素的个数 .int a10; . 中, 不行以是变量 ,必需是常量或常量表达式,可以是符号常量: #define M 10 void main int aM; 可以 int x=5; int bx; 不行以 三 . 元素就有 a0,a1.a9, 但是在这个数组中, 没有 a10 这个元素 .初始化 1. 全部元素初始化: int a10=1,2,3,4,5,6,7,8,9,10; .2. 当你定义一个数组, 对全部元素都初

12、始化的时候,可以在定义的时候省略数组 .的长度 :int a =1,2,3,4,5; 3. 部分初始化: int a10=1,2,3; 第 5 页,共 10 页四 .4. 完全不进行初始化(数组元素的值是不确定): int a10;static,全局的: 0 接收 五 .fori=0;iai+1jiaohuan .k=1 i=0,.8 n-1-k .k=2i=0,. . 7 .k=3i=0-6.k=4i=0-5 .k=5 .fork=1;k10;k+ .fori=0;iai+1t=ai;ai=ai+1;ai+1=t; .#include.void main . .int i,j,t; .int

13、 a10; .fori=0; i10; i+.scanf%d,&ai;.forj=1; j10; j+.fori=0; iai+1t=ai;ai=ai+1;ai+1=t; .fori=0; i10; i+.printf%4d,ai; . 一维数组的地址关系 七 .a&a0 a+1&a1 a+2 &a2 a+3 &a3 a+i &ai 二维数组的地址 关系一:按行争辩 .int a1010;/ 初始化了,行号可以省略,但列号确定不行以省略 .a0 是第一行的数组名,是 第一行的地址 ,是 &a00 ; .a0+3 是第一行,第四个元素的地址,即 &a03 第 6 页,共 10 页. 结论: a0

14、+i 等价于 &a0i . a2+2 等价于 &a22 . 关系二:按列来争辩 . int a34; . 数组名是 a,是数组的首地址,是数组的第一个元素的地址 . 首地址是 a 等价 &a0 ,a+1 等价于 &a1 ,a+i 等价于 &ai int a=1,2,3,4; int b3=1,2,3,5,8,9; int c23=1,2,3,4,5,6,7,8,9 八 .字符数组 定义一维 .char c20; char k100; 初始化 .char c10=a,b,c,d,e,f,g,h,i,j; .char c=hello; .char c=hello; (字符数组长度:字符串的个数 +

15、1) 不行以的初始化: char c10 ;c=hello; (数组名是常量,不行以写在赋值左边) .从键盘接收 .1. scanf %c 格式:逐个处理字符数组元素,要使用循环 .2. scanf %s 格式:用数组名处理字符数组(不做边界检查) .scanf%s,f; /不需要使用循环,直接使用数组名 f 就可以用 %s格式来输入整个字符串 的 .1)系统会在接收的字符串的末尾加上字符串终止的标志字( 0) .2)至于输入字符串的长度是大于,等于,小于数组定义的长度,系 统并不做检查和治理; .3)合法的形式:是输入的字符串的长度要小于或等于数组的长度 -1. 留出一个元素,装 0 .3.

16、 getchar:逐个处理字符数组元素,要使用循环 .4. gets:gets数组名 ; 输出 .1. printf %c 格式:逐个处理字符数组元素,要使用循环 .2. printf %s 格式:不用循环,用数组首地址做函数参数 .printf%s,f; /不需要使用循环,直接使用数组名 f 就可以用 %s格式来输出整个字符串 的 .会从字符数组的第一个元素开头输出,遇到 0 终止; .3. putchar:逐个处理字符数组元素,要使用循环 .4. puts:puts 数组名 ; 字符串处理函数 .gets .puts 第 7 页,共 10 页. strlen:测量字符串长度,遇到 0终止

17、. strcat:连接两个字符串,两个参数,都可以是数组名,其次个参数仍可以 是字符串常量,例如 strcats1, ”hello ”; . strcpy:复制两个字符串,两个参数,都可以是数组名,其次个参数仍可 以是字符串常量,例如 strcpys1, ”hello ”; . strcmp:比较两个字符串,两个参数,都可以是数组名或字符串常量,如 果两个字符串相等,函数值为 0;否就非 0; 六, 函数 函数构成四要素,定义函数的时候,只要给出四要素,就完成定义 类型 名字(参数) 函数体 一 .类型 :即不行以在 1. 有返回值,类型尽量同返回值一样 二 .2. 无返回值,类型 void

18、名字:任凭起,最好见名知意 三 .参数:函数之间消息传递的载体; 1. 有没有? 四 2. 有几个 . .3. 什么类型? .函数体 五 .函数的功能(这个函数干什么) 调用函数的时候: .1. 函数值 .有没有返回值, .没有,这样调用: suma; .有,这样调用:要用一个变量来接收函数返回值, b=suma; 六 2. 参数 .有没有参数, .有几个?什么类型?实际参数要有确定的值,才可以调用函数; .函数的调用方式 嵌套调用: a 调用 b,b 调用 c;函数 可以嵌套调用,但不能嵌套定义 一个函数的函数体中定义另外一个函数; 七 .递归调用:一个函数 调用了它自身 ; 函数的值传递:

19、实际参数将它的值(可以是变量的值,也可以是变量的地址)传 递给形式参数; 第 8 页,共 10 页. 变量的值: 实参将变量的值传递给形参,形参的转变,不影响实参 . 传递的地址: 实参和形参拥有相同的地址,对形参地址中的修改,等同于对实参 的修改,如 数组名作为函数的参数 八 .变量的分类 全局变量: 在函数外部定义的变量,作用域:从定义的位置开头,直到文件末尾 九 .局部变量: 在函数内部定义的变量,作用域:从定义的位置开头,直到函数末尾 变量的储备类别 .auto:自动储备类别,变量的生存期为 本函数 的生存期;默认缺省的储备类型; .static:静态储备类别,变量的生存期为 整个程序

20、 ; .extern:扩展 register:寄存器 .七, 指针 一 .指针变量的定义 int *p1;二 .char *p2;.float *p3; .指针就是 地址 ,指针变量就是可以装地址的变量 指针变量的引用 三 .int a; int *p; p=&a; 指针变量 p 中装了整型变量 a 的地址,就可以说: p 指向了 a.指针变量与数组 int a10=1,2,3,4,5,6,7,8,9,10; int *p; 如有 p=a;就可以说: p 指向了数组 a,就 p里面是数组的首地址,即 a0的地址;就有如下关系 四 .a&a0 pa+1&a1 p+1a+2 &a2 p+2 a+3&a3 p+3 a+i &ai p+i p+i 等于 a+i 等价于 &ai 假如有 p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论