二级c笔记。
1) c语言源程序必须经过编译生成目标文件才能被计算机识别执行。预处理命令行都必须以#开始,结尾不加分号,预处理命令可以放在程序中的任意位置,在程序中凡是以#开始的语句都是预处理命令行。
2) c源程序经过程序编译之后生成一个后缀为“.obj”的二进制文件(称为目标文件)。然后由称为“连接程序”的软件包文件与c语言提供的各种库函数连接起来生成一个后缀为“.
exe”的可运行文件。
3) 程序设计应该简单易懂,语句结构应该简单直接,不应该为提高效率而把语句复杂化。
4) 在c语言中,函数定义是平行的,函数不能嵌套定义,即函数之间没有从属关系。虽然函数之间可以相互调用,但main()函数不能被调用。c程序从main()函数开始执行,当main()数执行完毕时,整个程序就结束了。
一个c程序中必须有且只能有一个由“main”命名的主函数,其它函数由用户自主命名。c语言在函数名后面不能有分号。函数定义不可以嵌套,但是函数调用可以嵌套。
5) scanf()函数输入的字符串中不能含有空格(因为scanf函数以按回车和空格键作为字符串输入结束标志);gets函数则没有限制。
6) printf函数在输出时,是根据格式说明符的个数输出的,如果函数有多余的项不予输出;如果有输出项少于格式说明符,则出错,不能输出正确的结果。printf函数中格式说明符之前插入的任何字符都按原样输出。对于printf函数,有两个%说明,第一个%后面的内容要按原样输出。
7) 常见字符串操作函数:ⅰ、strcpy函数。其格式为:
strcpy(字符数组名,“字符串”);作用:将字符串复制到字符数组中且自动加“\0”。ⅱstrcat函数。
其格式为:strcat(字符数组名1,字符数组名2);。作用:
将第二个字符串的内容连接到第一个字符串的后边。ⅲ、strcmp函数。其格式为:
strcmp(字符串1,字符串2);。作用:比较两个字符串的大小。
若相等,返回值为0。若1﹥2返回值为一正整数(为串中不同字符的ascii码差值)。若1﹤2,则返回值为一负整数。
ⅳ、strlen函数。其格式为:strlen(字符串);。
作用:计算以‘\0’结尾的字符串长度,并且返回字符串的长度,结尾字符‘\0’不计算在内。若在程序中要使用这四个函数,需要包含头文件“
8) 产生随机数标准函数random(),其调用格式为:random(n)。其调用结果是返回一个0~n-1之间的随机数。
9) 位置指针重返文件头函数rewind()的调用形式是:rewind(fp)。其功能是:使fp指定的文件的位置指针重新定位到文件开始位置。
10) 关于参数的几点说明:①形参只有当函数被调用时才临时分配存储单元。②实参一定要有确定的值。
③实参和形参的类型应相同。④参数的传递是通过调用来完成的,且传递方向是由实参向形参单向传递。⑤对形参内容的修改不会影响到实参的内容。
⑥采用地址传递方式的实参一般为变量地址、数组名和指针变量。同样,接受地址值的形参变量也只能是数组名和指针变量。⑦形参也属于局部变量。
11) 如果想在定义之前使用全局变量,可以用extern加以说明,则可扩大全局变量的作用域。
12) 静态变量。编译系统为静态变量分配固定的存储空间。静态变量被重复使用时,其职会被保留。
其定义的形式为:static﹙类型说明符﹚﹙变量名﹚;。其赋初值是在编译时完成的。
在程序运行期间不再执行。static可以用在函数内部或者函数外部。
13) 寄存器变量定义形式:register﹙类型说明符﹚﹙变量名﹚;。由于寄存器变量不在内存中,没有地址,所以不能对它进行取地址运算。
14) 在c语言中文件指针实际上是指向一个结构体类型的指针,一般称这个结构体类型名为file,可以用此类型名来定义文件指针。定义文件类型指针变量的一般形式为:file *指针变量名;。
15) 文件由数据流的形式组成,可以按数据存放的形式分为二进制文件和文本文件,c语言既能读写文本文件,又能读写二进制文件。
16) asciic规定了标准输入/输出函数库,用fopen()函数来实现打开文件。其一般形式为:fopen(文件名,使用文件方式);。
文件使用方式”说明:方式“r”为以输入方式打开一个文本文件;方式“a+”为以读/写方式打开一个文本文件,保留文件中原有的数据;方式“w+”为以读/写方式建立一个新的文本文件;方式“r+”为以读/写方式打开一个文本文件。
17) 函数fwrite的调用形式为:int fwrite(*pt,unsigned n ,file *fp);其功能是把pt所指向的n*size个字节输出到fp所指文件中,第二次调用该函数时,从文件的第一个位置开始写入,之前已有的会被覆盖掉,如果第二次写入的长度没有第一次的长,则后面短出的部分保留原样。
18) dfd图(数据流图)是以图形的方式描述在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,它是需求分析阶段的图形工具。数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构成:包括4个方面,即加工、数据流、存储文件、源和潭。
数据流图中带箭头的线段表示数据流,沿箭头的方向传递数据的通道,一般在旁边标注数据流名。盒式图(n-s)、问题分析图(pad图)和pdl(伪码)是详细设计的常用工具。
19) 数据字典是各类数据描述的集合,它通常包括5个部分①数据项:是数据的最小单位。②数据结构:
是若干数据项有意义的集合。③数据流:可以是数据项,也可以是数据结构,表示某一处理过程的输入或输出。
④数据存储,处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件。
20) 程序设计语言仅仅使用顺序,选择和循环三种基本控制结构就足以表达出各种其他形式结构的程序方法。
21) 软件调试主要采用3种方法:a.强行排错发。b.回溯法。c.原因排除法。
22) 耦合可以分为下列几种,(耦合度由高到低)。内容耦合-公共耦合-外部耦合-控制耦合-标记耦合-数据耦合-非直接耦合。
23) 内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能关系。内聚有如下种类,它们之间的内聚度由弱到强排列:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。
24) 面向对象设计方法,基本原理:使用现实世界的概念抽象地思考问题从而自然的解决问题。其特点包括:标识唯一性,多态性,模块独立性,继承和多态性。
25) 对象有如下特征:标识唯一性、分类性、多态性、封装性模块独立性好。
26) 逻辑结构设计的任务包括从e-r图向关系模式转换和逻辑模式规范化及调整,实现。
27) e-r图由实体、实体的属性和实体之间的联系3个要素组成,28) 二叉树是由n≥0个结点的有限集合构成,二叉树可以是空集合。二叉树性质:ⅰ二叉树第i(i≥1)层上至多有2的i-1次方个结点。
ⅱ对于任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。一个结点所拥有的后件个数称为树的节点度。;在具有n个结点的满二叉树,其非叶子结点数为int(n/2),而叶子结点数等于总结点数减去非叶子结点数。
29) 线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在屋里位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此不需要另外开辟空间来保存元素之间的关系。
30) c语言中的变量可以在使用之前的任何位置进行定义,一个c语言源程序可以由一个或多个源程序组成,但仅可以有一个main函数。
31) 标识符可以由字母,数字,和下划线组成,并且第一个字符必须为字母或下划线。
32) 八进制数以0开头,取值范围为0~7。
33) c语言允许typedef说明一种新类型名,其一般形式为:typedef 类型名标识符。typedef语句的作用仅仅是使“标识符”来代表已存在的“类型名”,并未产生新的数据类型。
原有类型名依然有效。
34) 宏替换有两类:简单的字符替换和带参数的宏替换。ⅰ、宏定义仅仅是符号替换,不是赋值语句,因此不做语法检查;ⅱ、为了区别程序中其他的标识符,宏名的定义通常用大写字母,但不是必须用大写;ⅲ、双引号**现的宏名不替换;ⅳ、使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。
ⅴ、带参数的宏定义是按#indefine命令行中指定的字符串从左到右进行转换。ⅵ、如果提前结束宏名的使用,程序中可以使用#undefine;ⅶ在进行宏定义时,宏定义能层层置换,能够嵌套。
35) 数据块输入/输出函数的调用形式为:fread(butter,size,count,fp). fread函数参照说明:
“butter”是一个指针,对fread来说,它是读入数据的存放地址;“size”是要读写的字节数;“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。
36) 算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
37) 对于长度为n的有序线性表,在最坏的情况下,二分法查找只需比较㏒ 2 n,而顺序查找需要比较n次。冒泡排序和简单插入排序都需n(n-1)/2次;希尔排序所需要的比较次数为o(n1.5);堆排序需要的比较次数为o(nlog2n);。
38) 将属性、操作相似的对象归为类,也就是说。类是具有共同属性、共同操作性质的对象的集合,是已经定义了的关于对象的特征、外观和行为的模板。属性用于描述对象的状态,方法用于表示对象的行为,基于同一个类产生的两个对象是可以分别设置自己的属性值的。
39) 软件生命周期:软件产品从提出、实现、使用维护到停止使用退役的过程。划分为8个阶段:可行性研究与计划、需求分析、概要设计、详细设计、实现、综合测试、确认测试、使用与维护。
40) ‘023’只代表一个字符,‘\xab’是以两位十六进制数ab表示的ascii码字符,只代表一个字符。
41) 算法复杂度:ⅰ时间复杂度,执行算法所需要的计算工作量。ⅱ空间复杂度,执行这个算法所需要的内存空间。
42) 序言性注释常位于程序开头部分,它包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。功能性注释一般嵌在源程序体之中,用于描述其后的语句或程序的主要功能。注释是给人看的,对程序的运行和编译不起作用,可以在程序的任何位置。
“/和“*/必须成对出现,,按语法规定不可再嵌套“/*或“/*
43) 数据库概念设计的目的是分析数据间内在语言关联,在此基础上建立一个数据的抽象模型。
44) 数据库设计的目的实质是设计出满足实际应用需求的实际关系模型。数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:提高数据的共享性,使多个用户能够同时访问数据库中的数据:
减小数据的冗杂,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。数据库设计目前一段采用生命周期法,大致分为:需要分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。
在数据库设计中采用上面几个阶段中的前四个阶段,并且重点以数据结构和模型设计为主线。
C语言笔记
第一课时。c语言标准格式。include vidomain 以 开头的语句称为预处理指令。include语句不是必须的,但是如果一旦有该语句就必须把它放在文件开始处是standared input output header的缩写standared 标准input 输入output 输出header...
C语言笔记
c语言算法和数据类型。整型。基本类型 字符型注释 基本类型的特点是其不可实型 单精度型以再分解为其他类型双精度型数组型。数据结构 构造型 结构体型共用体型指针型空类型。一 常量。define 语句不以分号结尾,它可以放在源 的任何位置。不过在定义常量时,只有在它定义后的源 中才有效。是一个修饰符,在...
c语言笔记
1.if中别忘了 而不是 2.写完程序别忘了检查前后大括号 小括号是否完全照应。3.遇到几分之几的分数可以方程两边同时乘以一个数来消去分母。4.写指针题时看准指针对应的是行还是列。例 int a 4 3 int p a 0 列指针。int ptr 3 a 行指针。5.考虑好哪些量会随着循环不断改变。...