C语言程序设计复习知识总结 孙亚飞
更新时间:2024-05-09 20:02:01 阅读量: 综合文库 文档下载
C语言程序设计复习知识总结 孙亚飞
第一章 软件工程概述及程序设计基础
1、“冯-诺依曼”计算机 “存储程序原理”
一条计算机指令完成一个基本操作 : 操作码+操作数 软件:程序(一组精心编排的指令)+数据+文档 2、软件工程: 问题定义 可行性研究 需求分析 总体设计 详细设计 编码 测试
编码: 编辑→(源程序.c)→ 编译→ (目标程序,二进制代码.obj) → 连接→(可执行程序.exe) →测试运行 3、程序设计语言
机器语言(二进制代码) 汇编(符号语言) (C C++ C# JAVA) 4、程序设计方法(思想)
面向过程的结构化程序设计方法 :“自顶向下,逐步求精” 三种基本结构:顺序 选择 循环 程序=算法+数据结构
算法特征:确定性 有穷性 一个或多个输出 零个或多个输入 有效性 面向对象的程序设计方法: 对象 属性 方法 类 5、常用算法
累加 累乘 求最大值或最小值 求两数的最小公倍数或最大公约数(辗转相除法) 交换两个数 查找
符号化 高级语言
第二章 C语言概述
1、程序基本单位:函数
2、标识符:变量名、函数名、标号
只能由字母(大小写敏感)、数字、下划线组成,且第一个字符只能为字母或下划线
第三章 数据类型及表达式
1、标示符:字母、数字或下划线组成,对大小写敏感,且第一个字母只能为字母或下划线,不能使用关键字作为标示符。
32个关键字:Auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
2、数据类型:char int float double 字节: 1 2 4 8
整型数据:?八进制:由数字0开头?十六进制:由数字0和字母x开头 int short :2 long :4
浮点型数据:?十进制小数形式:必须包含小数点和数字 如 .314,0. ?指数形式:e(或E)前必须有数字,e之后的指数必须为整数 如 1E-3 0E0
float(4B,有效位6~7)double(8B,有效位15~16) 默认为double类型 字符型数据:字符常量用单引号括起来表示
转义字符: \\n换行 \\b退格 \\t水平制表,即横向跳格
\\’单引号 \\ddd 1-3位八进制数代表的字符 \\xhh 1-2位十六进制数代表的字符
\\f 换页 \\r 回车 \\v垂直制表 \\”双引号 \\0空 ,表示字符串常量的结束
字符也可用反斜线加八或十六进制ASCII码表示,如‘\\101’同‘A’ 字符串常量 双引号
3、/:除法运算,如5/3,整数相除为整数,小数部分舍去
%求余 只能用于整数相除求余,结果符号和被除数相同 -5%3 //-2 4、强制类型转换
(类型名)(表达式) 如:a=(double)10
第四章 语句及程序流程控制
1、结构化程序设计三种基本结构:顺序、选择、循环 2、基本输入输出函数:putchar getchar printf scanf
字符输出函数 putchar(c); //c为字符型或整型的常量或变量,只能一个 字符输入函数 getchar(); //括号内不能有内容,输入的字符不能带单引号 格式输出函数 printf(格式控制,输出表);
//格式控制为用双引号括起来的格式控制转换字符串,有三种形式?格式说明:由“%”后跟格式字符组成。
格式字符 d o x u c s f e g
常用形式 %[-][0]带符号十进制输出整数 [m][1]d 无符号八进制整数(不输出前导符0) %o 无符号十六进制整数(不输出前导符0x) %x 无符号十进制 %u 字符形式输出一个字符 %[m]c %[-][m]输出字符串 [.n]s %[-][0]以小数点形式输出单、双精度实数,隐含输出6位小数 [m][.n]f %[-][m]标准指数形式输出单、双精度实数,数字部分为6位小数 [.n]e 选f或e中宽度较小的输出实数,不输出无意义0 %g 说明
附加格式说明字符 说明 — 左对齐 0(数字) 输出空位用0填充 m(一个正整数) 输出数据字段宽度,if实际位数大于m,按实际;小于m,补0或空格 .n(一个正整数) 实数,表示输出n位小数;字符串,表示截取字符个数 l(字母) 输出长整形整数 如果想输出字符“%”,应在“格式控制中”用连续两个“%”表示 格式输入函数 scanf(格式控制,地址表)
//格式控制同printf,地址表由地址组成,&为取地址运算符 格式字符不用u,附加格式说明字符常用形式%[*][m][l]格式字符 *表示本输入项在输入后不赋给相应的变量,即跳过它对应的数据 3、条件表达式
表达式1?表达式2:表达式3 4、多分支选择语句 switch(表达式) {
case 常量表达式1:语句1; ........
case 常量表达式n:语句n; default:语句n+1; }
break 加在必要的case分支语句后,可跳出switch结构;用在循环体中,可立即终止所在循环
多case执行相同语句,前面相同语句可省,不加分号,但不能合写为一行 5、循环结构:while do....while for
break; //只能用于switch和循环语句,对于多重循环,只能退出包含该语句的那一层结构
continue;//终止本次执行,继续下一次循环
第五章 数组
1、C语言的数据类型分为基本数据类型(字符型、整型、实型)、构造数据类型(数组类型、结构体类型、公用体类型)、指针类型和空类型。 2、一维数组
类型名 数组名 [数组长度]
存放字符串的字符数组可简写,如 char str[6]=”hello” 注意:字符串结束标志‘\\0’也是一个元素 例:int a[10];//a+i就表示a[i]的地址&a[i] 3、二维数组中a[i][j]地址的表示:
&a[i][j] a[i]+j &a[0][0]+4*i+j a[0]+4*i+j //设一行中有4个元素 4、字符数组初始化时,如果初始化表达式少于数组宽度,剩余位自动置为空字符,即是字符串的结束标志。 5、字符串的输入输出
printf scanf gets puts getchar putchar gets和puts只有一个参数,就是一个内存地址 6、标准字符串处理函数 #include
(1)strlen(s) 统计字符串s中字符的个数(不含终止符‘\\0’),返回字符串s 的
长度
(2)strcpy(s1,s2) 把字符串s2中的内容拷贝到字符串s1 中去,返回s1 strncpy(s1,s2,n) 把s2中前n个字符拷贝到s1中,返回s1 注:不会自动拷入字符串结束标志,需手动给s1放置字符串结束标志
(3)strcat(s1,s2) 把s2 的内容连接到s1后,s1成为一个新串,返回s1
strncat(s1,s2) 把s2中前n个字符内容连接到s1后,返回s1,如果n超过s2 实际长度,以实际长度为准
(4)strcmp(s1,s2) 比较s1和s2的大小,返回:s1>s2,返回正数;s1=s2,返回0;s1 (5)mencmp(s1,s2,n) 比较s1和s2前n个字节,返回:s1>s2,返回正数;s1=s2,返回0;s1 注:如果两字符串相同且n大于字符串长度,memcmp会继续比较字符串结束标志后面的内存单元,直到不相等或达到次数n;而strcmp只要比到字符串结束标志就会结束。 (6)memcpy(s1,s2,n) 将s2中前n个字符拷贝到s1中,返回s1 menmove(s1,s2,n) 将s2中前n个字符拷贝到s1中,返回s1 区别如:char s[]=”hello,world”; memmove(s+2,s,10); //结果为“hehello,worl” 考虑内存区域重叠问题 memcpy(s+2,s,10); // 结果为“hehehehehehe” s[12]=’\\0’; (7)Memset(s,c,n) 把字符串s中前n个字节内容设置为c (8)strlwr(s) 把字符串s中大写字母转换为小写字母 strupr(s) 把字符串s中小写字母转换为大写字母 补充:sizeof(s)求数组s占用的空间字节数 第六章 函数 1、定义函数的变量注意:形参变量名不能重复,每个变量名必须单独定义;函数内定义的变量名不能与形参列表变量名重名;函数体内变量定义语句必须写在函数体开头部分 函数类型一般默认为int 型 2、形参:定义函数时 实参:调用函数时 实参 形参 主调函数 被调函数 返回值 Return语句: 函数终止执行,并且返回到调用此函数的语句 3、局部变量:在函数内定义的变量,其作用范围局限于此函数内部 全局变量:定义在任何函数之外的变量,作用范围是从定义处直到文件末尾 同名时,局部变量优先使用 4、C语言的变量有4种存储类别: auto(自动变量) 只能在函数中定义,只有局部变量能定义 static(静态变量) 从被分配存储空开始,直到程序结束才被释放,局部和全局变量都可定义 如:static int c=3; register(寄存器变量) 只允许局部变量和少量形参定义;地址不可访问;类型必须为int、char、和指针型。频繁使用的变量放在寄存器中可以提高程序的执行效率 extern(外部变量) 只能用于全局变量的声明。在全局变量定义处之前访问 该变量,可用extern声明,扩展全局变量的作用域。注:在多文件中使用外部变量时,要考虑该变量的值可能在其他文件中被修改 5、内部函数:一个函数只能在本文件中可见而不能被其他文件调用 static 类型标识符 函数名(形参表) 外部函数:可以被其他文件调用,extern可省。在需要调用外部函数的文件中,必须先使用extern关键字声明外部函数的原型 第七章 预处理命令 1、编译预处理命令:放在函数之外,以“#”开头并且末尾不加分号的命令 预处理:指在编译前所做的处理,由预处理程序负责完成 C提供多种预处理功能:如宏定义(#define)、文件包含(#include)、条件编译 2、“宏”:用一个标识符来表示一个字符串。被定义为“宏”的标识符称为“宏名” “宏代换”或“宏展开”:编译预处理时,所有宏名用字符串去代换,分为有参和无参两种 3、#undef M //终止宏M的作用域 宏定义不占用运行时间,只占用编译时间,而函数则占用运行时间 4、条件编译(3种) #ifdef 标识符 #ifndef 标识符 #ifdef 常量表达式 程序段1 程序段1 程序段1 #else #else #else 程序段2 程序段2 程序段2 #endif #endif #endif 第八章 指针 1、存储器中的一个字节称为一个内存单元,内存单元的编号称为地址,通常把这个地址称为指针。存放地址的变量称为指针变量,一个指针变量的值就是某个内存单元的地址(指针)。 指针:一个变量的地址 指针变量:专门存放变量地址的变量 2、指针变量定义 类型说明符 *变量名 //*表示这是一个指针变量,类型说明符表示该指针变量所指向的变量的数据类型。 3、指针变量的赋值只能赋予地址。 & :地址运算符 * :指针运算符(或“间接访问运算符”),表示指针变量所指的变量,其后必须跟指针变量。 注:在指针变量说明中,*是类型说明符,表示其后的变量是指针类型;而表达式中出现的*则是一个运算符,表示指针变量所指的变量。 4、动态存储分配的几个相关函数 malloc(size)在内存的动态存储区中分配一个长度为size的连续存储空间,返回值是指针(指向字符),值是该分配区域的起始地址。如果此函数未能成功执行,则返回0。 calloc(n,size) 分配n个长度为size的连续空间,返回分配域的起始地址(指向字符)。 free(ptr) 释放由ptr指针变量(指向字符型的指针变量)指向的内存区域。 5、移动指针:指针变量加或减一个整数,功能:使指针变量指向相邻的存储单元 指针比较:两个指针指向同一个对象,可以进行<,<=,>,>=,==,!=等关系运算。 6、字符串常量是在内存中一段连续空间存放,字符串中每个字符占一个字节存放空间。 7、指针可以指向一个函数,一个函数在编译时被分配一个入口地址,这个地址就称为函数的指针。 指向函数的指针定义: 类型说明符(*指针变量名)(函数形参);//函数形参可省 如 char(*p)() 返回指针的函数定义 类型名 *函数名(参数表) 如char *m(a,b); 8、指针数组:若干指向同类对象的指针构成的数组 类型名 *数组名[数组长度] 如:float *p[10] 指向指针的指针:指针变量指向指针变量,其内容为某指针变量的地址 类型说明符 **指针变量名 第九章 结构体、公用体和枚举类型 1、结构体(struct)把不同类型的数据组织在一起并构造成一种新的数据类型 共用体(union)又称联合体,使几种不同类型的变量公用一段存储空间 枚举(enum)列举变量的取值范围,用此类型定义的变量只能取已列举的值 2、结构体类型定义 struct 结构体名 //结构体名可省 {类型名 结构体成员名1; ........ 类型名 结构体成员名n; }; 从关键字至右花括号之间的部分称为结构区分符,它是类型区分符的一种,用于指定结构的类型 结构体类型变量的定义 ?单独定义 ?混合定义 ?使用typrdef定义
正在阅读:
C语言程序设计复习知识总结 孙亚飞05-09
最新情侣道歉短信精选02-10
圣诞节,短信02-24
2018年圣诞节短信祝福语02-24
世界上最有名的17句话经典语录02-10
Baugptn经济管理分院实习大纲目录07-09
童年精彩片段02-10
圣诞经典短信02-10
固然造句02-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 复习
- 语言
- 总结
- 知识
- 孙亚飞
- DEAP计算Malmquist马奎斯特指数方法
- 机油冷却喷嘴生产项目可行性研究报告
- 江苏省2013公务员招录考试专业参考目录 - 图文
- ZigBee芯片厂商及应用前景分析
- 江苏省高级人民法院关于补充修改《关于当前经济审判工作中若干问
- 高三数学训练:统计与概率:(附答案)
- HullFund8eCh03ProblemSolutions
- 医院内外网部署方案
- 山东驾校一点通模拟考试c1 2016-37813
- 东莞市某线路板废水处理方案 - 图文
- 新编英语语法教程 第32讲 练习参考答案
- 桥梁工程招标文件范本
- 钢结构课程设计范例
- 消防系统调试及试运行方案0902
- 专业分包安全生产管理责任协议书-起重机械
- 发那科弧焊机器人
- 万科集团全套项目限额管理标准(非常全 非常实用)
- 教师个人成长档案
- 多靶点pCRISPR载体改良版(单子叶植物用)使用方法2014-10-26(P)副
- 三五九旅烈士名录