计算机二级C语言考前背诵
全国计算机二级C语言最重要的知识点总结
全国计算机二级C语言最重要的知识点总结计算机二级C语言考试是对学生掌握C语言基础知识以及应用能力的综合考试。
以下是全国计算机二级C语言最重要的知识点总结。
一、基础知识点(约占30%)1.基本语法:C语言的基本结构、关键字、标识符、注释等。
2.变量和数据类型:整型、浮点型、字符型、指针等。
3.运算符和表达式:算术运算符、关系运算符、逻辑运算符等。
4.控制语句:条件语句(if-else语句、switch语句)、循环语句(for循环、while循环)、跳转语句(break语句、continue语句)。
5.数组和字符串:一维数组、二维数组、字符数组、字符串处理等。
二、函数(约占20%)1.函数的定义与调用:函数的声明、定义、调用。
2.函数的参数传递:值传递、地址传递。
3.函数的返回值:返回值类型、返回值的使用。
4.递归函数:递归函数的原理与应用。
三、指针(约占15%)1.指针的定义与初始化:指针变量的定义、指针的初始化。
2.指针的运算:指针的加减运算、指针的比较运算。
3.指针和数组:指针与一维、二维数组的关系。
4.指针和函数:指针作为函数的参数、指针作为函数的返回值。
四、文件操作(约占15%)1.文件的打开和关闭:文件的打开模式、文件指针的移动。
2.文件的读写操作:字符的读写、字符串的读写、二进制文件的读写。
3.文件的管理:文件的重命名、删除文件、创建文件夹等。
五、结构体(约占10%)1.结构体的定义:结构体成员的类型和名称。
2.结构体的初始化:结构体变量的初始化、结构体指针的初始化。
3.结构体的访问:点运算符、箭头运算符的使用。
六、动态内存管理(约占10%)1.内存的分配和释放:malloc函数、calloc函数、realloc函数。
2.内存的操作:内存的读写、内存的拷贝。
3.内存泄漏和野指针:内存的释放、野指针的产生和解决方法。
七、综合应用(约占5%)1.数组和字符串处理:冒泡排序、选择排序、字符串操作(拷贝、连接、比较)等。
计算机二级C语言 复习 背诵知识点
韬略天下复习资料计算机二级 C 语言知识点(复习专用)1. C 语言的基本构成和格式 #include “stdio.h” main() { int a,b,sum;/* 定义变量*/ a=10; /*把整数 10 赋值给变量 a*/ b=20; /*把整数 20 赋值给变量 b*/ sum=a+b; /*把两数之和赋值给变量 sum*/ printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*输出计算结果*/ } (1).C 程序由函数组成,一个程序必须且只能有一个主函数(main()),C 程序总是从主函数开始执行, 在主函数中结束。
(2).定义函数时函数名后必须有一对小括号,函数体必须放在一对花括号内,在函数体中,函数体有 两个部分:定义部分和执行部分。
定义语句必须出现在执行语句之前,我们先定义了 a,b,sum,然后才 给它们赋值。
(3).C 语言中每条语句都以分号“; ”结束,分号时 C 语句的一部分。
即使是程序的最后一个语句也 不例外。
分号是语句结束的标志。
(4). 一行可以写多条语句,一条语句也可以分在多行上写,但是,不能将一个整体分开。
例如:i nt 是错误的,而 int 正确。
(5). C 语言的注释必须放在“/*”和“*/”之间, “/”和“*”之间不允许有空格。
“/*”和“*/”之间 不允许再插入“/*”或“*/” 。
注释可以出现在程序中的任意位置。
注释部分不被执行。
(6).C 语言程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。
但是 过于“自由”的程序书写格式往往使人们很难读懂程序,初学者应该从一开始就养成好的习 惯,是程序便于阅读。
2. 标识符(1) 标识符只能由字母、数字和下划线组成。
(2) 标识符的第一个字符必须是字母或下划线。
(3) 标识符的大小写字母是有区别的,如 abc 和 ABC 是两个完全不同的标识符。
二级c语言整理背诵版本2
背诵的内容
1、取别名:可能考
2、预处理:一定会考
3、全局变量:可能考
4、static:一定会考
5、分配对象:可能会考
6、函数指针:可能会考
7、递归调用:一定会考
单单:单引号里面有单个!是合理的字符。
字符是单引号…a‟,字符串是双引号“a”。
两大近亲:1、整型和字符型2、数组和指针
三名主义:核心纲领:名称表示地址
1、数组名:表示第一个数组元素的地址。
2、字符串名:表示第一个字符的地址。
3、函数名:表示函数入口地址。
脱衣服法则:a[2] 变成*(a+2) a[2][3] 变成*(a+2) [3] 再可以变
成*(*(a+2)+3)
ASCII:每一个字符对应一个数字。
…a‟为97 …A‟为65 …0‟为48
生小孩符号:“^” 考试重点
break:一刀两断。
continue:继续重头再来。
移动不动:*p++ 是地址变化。
(*p)++ 是地址不变,数值会变化。
数星星:*p 和**q 的考查。
做死的循环:关键是找出循环体是哪个!
while(i<100){ sum=sum+i; i++;
} do{
sum=sum+i;
i++;
}while(i<100)
for(i=0; i<100; i++)
sum=sum+i;
越跳越开心:二位数组名a[2][3]中的a、**p二级指针p、(*p) [2]中的p都是行指针。
行指针加1,表示跳一行!。
计算机二级考试C语言知识点总结
计算机二级考试C语言知识点总结(完全针对考试大纲)概述总体上必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1)、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2)、每个C语言程序中main函数是有且只有一个。
3)、在函数中不可以再定义函数。
4)、算法的是一定要有输出的,他可以没有输入。
5)、break可用于循环结构和switch语句。
6)、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
全国计算机等级考试二级C语言笔试高频考点
文件的关闭:使用 fclose()函数,需要 提供文件指针
打开方式:r(只读 )、w(只写)、 (追加)、r+(读 写)、w+(写读) 、+(追加读写)
错误处理:使用 ferror()函数和 clererr()函数进行 错误检测和清除
文件的读写操作
文件的打开和关闭:使用fopen()和fclose()函数 文件的读写:使用fred()和fwrite()函数 文件的定位:使用fseek()函数 文件的随机读写:使用fgetc()和fputc()函数 文件的格式化读写:使用fscnf()和fprintf()函数 文件的缓冲区管理:使用setbuf()和setvbuf()函数
文件操作
05
文件的基本概念
文件:存储在磁盘上的一组相关数据的集合 文件类型:文本文件、二进制文件、数据文件等 文件名:标识文件的唯一名称,由字母、数字、下划线组成 文件路径:定位文件的路径,包括绝对路径和相对路径
文件的打开与关闭
文件的打开:使用 fopen()函数,需要 提供文件名和打开 方式
调试技巧与注意事项
• 使用断点调试:设置断点,逐步执行代码,查看变量值和程序状态 • 使用单步调试:逐行执行代码,查看变量值和程序状态 • 使用打印语句:在关键位置插入打印语句,查看变量值和程序状态 • 使用调试工具:使用调试工具,如Visul Studio的调试器,查看变量值和程序状态 • 注意变量类型和范围:避免变量类型不匹配和越界访问 • 注意逻辑错误:避免逻辑错误,如条件判断错误、循环控制错误等 • 注意函数调用和参数传递:避免函数调用错误和参数传递错误 • 注意内存管理:避免内存泄漏和野指针错误 • 注意代码规范和命名规则:遵守代码规范和命名规则,提高代码可读性和可维护性
计算机二级C语言备考资料
计算机二级C语言备考资料计算机二级C语言考试是一门具有实践性和理论性的科目,是计算机专业学生必修的必修课程之一。
考生需全面了解C语言编程基础知识,熟练掌握C语言程序设计方法,加强对问题解决的实际应用能力,能够独立完成复杂的程序设计任务。
备考计算机二级C语言考试,需要系统而全面的学习和复习,以最好的状态应对考试。
以下是本文总结的备考资料:一、C语言基础知识C语言是编程语言中的经典之作,备考时需要大量掌握与C语言相关的基础知识,包括:程序设计基础,C语言常量、变量和数据类型的定义,表达式和运算符,C语言控制语句(if…else、switch…case、for、while等),数组和字符串,指针和函数的应用。
要理解C语言的本质和基本语法,掌握各种数据类型的定义、赋值、转换和运算、掌握程序的基本结构。
二、C语言程序设计方法1.模块化程序设计方法模块化程序设计是将整个程序分成若干个模块,每个模块实现一个功能,模块之间通过参数传递和返回值等方式实现数据的传递与共享。
模块化程序设计有助于提高程序的可读性、可维护性和扩展性。
备考时需要理解模块化程序设计的原理,掌握模块化设计的方法和技巧。
2.结构化程序设计方法结构化程序设计是指在程序语言的要求下,按照自然语言的表达方法建立程序结构。
相对于传统程序设计方案来说,其有优秀的可读性、可维护性和可移植性。
结构化程序设计方法主要是包括三个结构:顺序结构、选择结构和循环结构。
三、常见的编程技巧1.递归编程技巧递归是一种重要的编程技巧,被广泛应用于C语言程序设计中。
递归能够简化很多问题的解决方式,提高程序的效率和可读性。
备考时需学会理解递归的定义和实现方式,并能够熟练运用。
2.动态内存分配技巧动态内存分配是计算机编程中非常重要的技巧,可以提高程序的灵活性和运行效率。
备考时需要学会深入理解动态内存分配的原理,熟练掌握malloc和free函数的应用。
3.宏定义技巧宏定义是C语言程序设计中非常实用的编程技巧,能够提高程序的可读性和减少代码量。
计算机二级c语言历年常考知识点精粹
历年常考知识点精粹考点一算法复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
算法的空间复杂度是指执行这个算法所需要的时间。
考点二线性结构与非线性结构一般将线性结构分为两大类型:线性结构与非线性结构。
一个非空的线性结构满足两个条件:(1)有且只有一个根节点;(2)每一个节点最多有一个前件,也最多有一个后件。
不满足线性结构条件的数据结构是非线性结构。
栈、队列、双向链表都是线性结构,树、二叉树是非线性结构。
考点三栈和队列1.栈先按照“先进后出”或“后进先出”的原则组织数据。
2.栈的基本运算有三种:入栈、退栈与读栈顶元素。
3.列队是允许在一端进行插入、而在另一端进行删除的线性表,他又被称为“先进先出”或“后进后出”的线性表。
考点四树和二叉树树是一种简单的非线性结构。
结点的度:在树结构中,每一个结点所拥有的后件的个数。
树的度:树的最大层数。
二叉树是一种特殊的树形结构,每个结点最多只有两棵子树,且有左右之分不能互换。
二叉树的性质:(1)在二叉树的第k层,最多有2k-1(k≥1)个结点。
(2)深度为m的二叉树最多有2m-1个结点。
(3)在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
考点五查找方法1. 顺序查找是指在一个给定的数据结构中查找某个特定的元素。
在下列两种情况下只能用顺序查找。
(1)如果线性表为无序表,则不管是顺序存储结构还是链式存储结构,只能用顺序查找。
(2)即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。
2. 二分法查找只适用于顺序存储的有序表。
对于长度为n的有序线性表,在最坏的情况下,二分查找只需要比较㏒2n次。
考点六交换类排序法1.冒泡排序法:在最坏的情况下,冒泡排序需要比较的次数为n (n-1)/2。
2.快速排序法:任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排序元素分为左右两个子序列,左序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列进行排序,直至整个序列有序。
计算机二级C语言程序必背
计算机二级C语言程序必背1、/*输出9*9口诀。
共9行9列,i控制行,j控制列。
*/#include <stdio.h>main(){int i,j,result;for (i=1;i<10;i++){ for(j=1;j<10;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/}printf("\n");/*每一行后换行*/}}2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?兔子的规律为数列1,1,2,3,5,8,13,21....*/main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){ printf("%12ld %12ld",f1,f2);if(i%2==0) printf("\n");/*控制输出,每行四个*/f1=f1+f2; /*前两个月加起来赋值给第三个月*/f2=f1+f2; /*前两个月加起来赋值给第三个月*/}}3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
*/#include "math.h"main(){int m,i,k,h=0,leap=1;printf("\n");for(m=101;m<=200;m++){ k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0){leap=0;break;}if(leap) /*内循环结束后,leap依然为1,则m是素数*/{printf("%-4d",m);h++;if(h%10==0)printf("\n");}leap=1;}printf("\nThe total is %d",h);}4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。
全国计算机二级考试C语言(最全复习资料)
全国计算机二级考试C语言(最全复习资料)全国计算机二级考试C语言(最全复习资料)C 语言,是一种通用的高级计算机编程语言,广泛应用于软件开发和系统编程。
而全国计算机二级考试则是衡量个人计算机应用能力的重要考试之一。
对于考生来说,准备充分的复习资料是非常重要的。
在这篇文章中,我将为大家提供最全面的 C 语言复习资料,帮助考生更好地备战全国计算机二级考试。
一、基础知识1. C 语言简介:C 语言的历史背景,应用领域等。
2. C 语言的基本语法:变量、数据类型、运算符、控制语句等。
3. 输入和输出:scanf、printf等输入输出函数的使用方法。
4. 数组和字符串:一维数组、多维数组、字符串处理等。
二、函数与指针1. 函数的定义和调用:函数的作用与优势,函数的定义、声明和调用方法。
2. 函数参数传递:值传递和引用传递,指针作为函数参数的使用。
3. 指针的概念和基本操作:指针的定义与初始化,指针的运算,指针与数组的关系等。
4. 动态内存分配:malloc、free等动态内存管理函数的使用方法。
三、结构体与文件操作1. 结构体的定义和使用:结构体的成员变量、结构体数组等。
2. 文件的读写操作:文件的打开、读写与关闭,文件指针的移动等。
3. 文件的顺序读写和随机读写:顺序读写和随机读写的区别与应用。
4. 文件的二进制读写和文本读写:二进制文件和文本文件的区别与使用方法。
四、高级特性1. 位运算:位运算符的使用,位运算在计算机中的应用。
2. 内存管理:静态存储、自动存储、动态存储的概念与区别。
3. 结构体与共用体:结构体和共用体的定义与使用,二者之间的区别。
4. 预处理器:宏定义、条件编译等预处理器的基本概念与使用方法。
五、实践应用1. 综合练习:包括通过 C 语言实现常见算法和数据结构等综合练习题。
2. 项目开发:参与一个小型项目开发,锻炼实际编程能力。
以上是全国计算机二级考试C语言复习资料的基本框架。
考生可以根据自己的实际情况进行针对性的学习和练习。
C语言二级考试重点
C语言最重要的知识点总体上必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch) (结构化程序设计)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e-1 就是合法的,等价数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
二级C语言考点精解知识点速记
(5)符号常量
在 C 语言程序中,用一个符号名来代表
一个常量,称为符号常量。
注意:这个符号名必须在程序中进行特
别的“指定”,并符合标识符的命名规则。
2.变量
所谓“变量”是指在程序运行过程中,
可以改变的值。通俗而言,数学公式 x+5=y
中,x、y 都可以看作一个变量。
程序中用到的所有变量都必须遵循以下
考点 3 常量和变量
1.常量 所谓常量是指在程序运行过程中,其值
不能被改变的量。 在 C 语言中,常量分为 5.种.:整型常量;
实型常量;字符常量;字符串常量;符号常量。 整型常量和实型常量又称数值型常量,
它们有正值和负值的区分。两者的区别是: 整型常量只用数字表示,不带小数点,例如,
12、-1、0 等。实型常量必须用带小数点的数 表示,例如,3.14159、-2.71828 等。
C 程序书写格式的基.本.习.惯.有:① 一行 内可以写几个语句,一个语句可以分写在多行 上;② 每个语句和数据定义的最后必须由一 个分号“;”结束(分号是 C 语句的一部分, 不是语句之间的分隔符)。
4.C 语言的风格 C 语言的风格主要有:C 语言简洁、紧
凑,使用方便、灵活;运算符丰富。C 语言 的运算符包含的范围很广泛,共有 34 种运 算;数据结构丰富,具有现代化语言的各种 数据结构;用函数作为程序模块以实现 C 程 序的模块化;C 语言允许直接访问物理地址, 能进行位操作,能实现汇编语言的大部分功 能,可以直接对硬件进行操作;生成目标代 码质量高,程序执行效率高;用 C 语言写的 程序可移植性好(与汇编语言相比)。 5.标识符
部二进制位用作存放数本身,而不包括符号。
如 int a 就是表示把变量 a 定义为基本型变
二级c重点
C语言最重要的知识点总体上必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节= 八个位.5)一定要记住二进制如何划成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机二级考前背诵【正确的复习方法】其实计算机二级并不难,大多为记忆性的知识,需要灵活运用的很少。
所谓万变不离其宗,因此教材应至少通读两遍,把该记住(如变量、函数等)的都记牢,并不断复习巩固。
参考资料则不宜过多过杂,题海战术不是最有效的,可根据考试大纲,对所做题型进行适当分类整理。
注:下面分为四个部分进行组织。
文中标注了三个星号的,表示非常重要,基本每次考试都必考;标注了两个幸好的或者一个星号的,也比较重要,很容易考到。
出现在[]括号中的内容,表示要很精确的背下来。
第一部分算法与数据结构 (历年比例41%)1、算法◆问题处理方案的正确而完整的描述称为【算法】。
算法分析的目的是,分析算法的效率以求改进。
算法的基本特征是【可行性】、【确定性】、【有穷性】和拥有足够情报。
◆算法的有穷性是指:算法程序的运行时间是有限的。
◆算法的复杂度是衡量算法好坏的度量,分为【时间复杂度】和【空间复杂度】。
★★时间复杂度是指执行算法所需要的【计算工作量】;算法的空间复杂度是指算法执行过程中所需的【存储空间】。
◆算法时间复杂度或空间复杂度中的一项的值,没有办法推出另一项的值。
2、数据结构◆数据结构分为【逻辑结构】和【存储结构】。
线性结构和非线性结构属于逻辑结构;顺序、链式、索引属于存储结构(物理结构)。
循环队列属于【存储结构】。
★数据的存储结构又称为物理结构,是数据的逻辑结构在计算机存储空间中的存放形式。
◆一个逻辑结构可以有多种存储结构,且各种存储结构影响数据处理的效率。
程序执行的效率与数据的存储结构密切相关。
◆数据结构分为线性结构和非线性结构,带链的队列属于【线性结构】。
◆线性表的存储结构主要分为顺序存储结构和链式存储结构。
顺序存储结构的存储一定是连续的,链式存储的存储空间不一定是连续的。
◆有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。
◆队列是一种特殊的线性表,循环队列按照【先进先出】原则组织数据。
循环队列是队列的【顺序】存储结构。
◆数据的独立性分为【物理独立】性和【逻辑独立性】。
当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序可以不用修改,称为【物理独立性】。
3、栈和队列★★栈是一种特殊的线性表,是只能在一端进行插入和删除的线性表,特点是FILO(FirstIn Last Out)。
★★栈是【先进后出】的线性表;栈具有记忆作用;对栈的插入与删除操作中,不需要改变【栈底指针】。
假定让元素1、2、3、A、B依次入栈,则出栈的顺序是:B、A、3、2、1。
◆栈与队列都是线性结构,树是非线性结构。
支持子程序调用的数据结构是【栈】。
◆栈与队列的共同点是,都只允许在【端点处】插入和删除元素。
◆栈只能顺序存储的描述是错误的。
栈可以有【顺序和链式】两种存储方式。
★★队列是允许在一段插入,在另一端进行删除的线性表,其特点是【先进先出】。
◆循环队列中元素的个数是由队头指针和队尾指针共同决定。
循环队列的头指针为front,尾指针为rear,容量为maxSize,则循环队列中元素的个数是【(rear-front+maxSize) mod maxSize】。
4、线性链表◆线性链表是线性表的链式存储结构。
用链表表示线性表的优点是【便于插入和删除操作】。
◆线性链表的存储空间不一定连续,且个元素的存储顺序是任意的。
5、树与二叉树◆在树结构中,一个结点所拥有的后件(继)的个数称为该结点的度,所有结点中最大的度称为树的度。
二叉树各结点的度只可能取值0、1、2,不可能是其它值。
换言之,知道了度为1结点数量的前提下,叶子结点或度为2的结点中知道其一,就可以求出总的结点数。
★★★下面关于计算结点数量的几个性质,非常重要:(1)对任意的二叉树,叶子结点的数量,比度为2的结点数量多一个(换言之,已知叶子结点的数量,减去1则是度为2的结点数量;已知度为2的结点数量,加上1就是叶子结点数量) (2)完全二叉树如果有N个结点,当N为奇数的时候,叶子结点数为(N+1)/2,此时二叉树只有度为0的叶子结点及度为2的结点,没有度为1的结点;当N为偶数的时候,叶子结点的数量为N/2。
(注意条件,必须是完全二叉树,当然包括满二叉树)(3)满二叉树第K层上的结点数量为2K-1;深度为K的满二叉树,结点总数为2K-1。
上述的计算公式,关键要能够应用,例如,深度为7的满二叉树,度为2的结点数量是多少?既然是满二叉树,叶子结点的数量就是第7层的结点数量,也就是26,可以算出叶子结点为64,因此度为2的结点数是63(叶子结点数减去1)。
★★★二叉树的前序遍历、中序遍历、后续遍历:前中后三个词是相对于根来讲的,前序是【根-->左-->右】,中序是【左-->根-->右】,后续是【左-->右-->根】。
具体操作为:先序遍历(D L R): 访问根结点,按先序遍历左子树,按先序遍历右子树。
中序遍历(L D R): 按中序遍历左子树,访问根结点,按中序遍历右子树。
后序遍历(L R D): 按后序遍历左子树,按后序遍历右子树,访问根结点。
下面以中序遍历为例,来讲解实际的解题方法:对一棵树,将根结点下的左子树用一个椭圆圈起来,右子树也用一个椭圆圈起来。
之后,在左子树上标记上1,在根结点标记上2,在右子树上标记上3。
对在左边椭圆内的左子树,现在把它单独拿出来分析。
把它的左子树圈起来标上1.1,根结点标记上1.2,右子树标上1.3。
按照上述方法依次往下,直到树不能拆分,然后按照“左-->根--->右”的顺序写出结点的访问先后即可。
6、查找技术◆对于长度为n的线性表,顺序查找最坏情况下需要比较n次。
(对数据是否有序没有要求)。
◆顺序查找最好情况下查询次数是1,最坏情况下是n,平均为(1+n)/2。
★★对于长度为n的有序线性表,二分法最坏情况下只需要比较log2n次。
(数据必须有序)◆能用二分法进行查找的是【顺序存储的有序线性表】。
7、排序技术★★对于长度为n的线性表,【冒泡排序、快速排序、简单插入排序、简单选择排序】这四种排序方式在最坏情况下的比较次数相同,都是【n(n-1)/2】。
堆排序的效率最高,是【nlog2n】。
★★希尔排序最坏情况下需要次比较【n1.5】。
希尔排序属于【插入类排序法】。
◆已知数据表A中每个元素距最终位置不远,为节省时间,应该采用的算法是【直接插入排序】。
选择排序、插入排序、快速排序、归并排序中对内存要求最大的是【归并排序】。
第二部分软件工程基础1、软件工程基本概念★★软件是包括【程序】、【数据】及【相关文档】的完整集合,软件是一种逻辑产品。
软件工程三要素包括【方法、工具和过程】,其中【过程】支持软件开发的各个环节的控制和管理。
◆软件工程的核心思想:把软件产品当作是一个工程产品来处理,强调在软件开发过程中应用【工程化】原则。
◆从工程管理角度,软件设计一般分为两步完成,它们是【概要设计】和【详细设计】。
★★软件生命周期可分为多个阶段,一般分为【定义】阶段、【开发】阶段和【维护】阶段,编码和测试属于【开发阶段】。
◆需求分析阶段产生的主要文档是【软件需求规格说明书】。
软件需求的规格说明书应该有完整性、无歧义性、正确性、可验证性、可修改性等特征,其中最重要的是【正确性】。
2、结构化分析与设计★★需求分析的分发有:【结构化】需求分析方法,【面向对象】的分析方法。
DFD是【需求分析阶段】可以使用的工具之一。
◆结构化分析的常用工具:数据流图(DFD);数据字典;判定树;判定表。
◆在结构化分析使用数据流图(DFD)时候,利用【数据字典】对其中的图形元素进行确切的解释。
【数据字典】是结构化分析的核心。
◆典型的数据流类型有两种,【交换性】和【事务型】。
◆常见的过程设计工具有:图形工具(程序流程图、N-S,PAD,HIPO)、表格工具(判定表)、语言工具(PDL伪码)。
◆内聚性是模块内部的联系,耦合性模块之间的相互联系的紧密程度。
★★★追求目标是:模块的内聚程度要高,模块间的耦合程度要尽量弱。
即高内聚低耦合。
★★程序流程图中带有箭头的线段表示的是【控制流】。
【平行四边形】代表输入输出,【矩形】代表处理,菱形代表【判断】(注意,数据流图中的箭头,代表【数据流】)。
◆符合结构化原则的三种基本控制结构是:【顺序结构】,【选择结构】和【循环结构】。
3、软件测试与维护★★软件测试的目的是尽可能多的发现程序中的错误,但是不包括改正错误。
(软件调试的目的才是改正错误)★★软件测试分为静态测试和动态测试,其中【静态测试】是指不执行程序,只对程序文本进行检查。
软件的动态测试主要包括【黑盒测试】和【白盒测试】。
◆黑盒测试的方法有等价类划分法,边界值分析法,错误推测法,因果图;白盒测试主要方法有逻辑覆盖、基本路径测试。
(考试时给出一种方法的名字,你要知道属于白盒还是黑盒) 【白盒测试】的原则之一是保证所测模块的每一个独立路径至少要执行一次。
白盒测试将程序看做是【路径的集合】。
◆软件测试一般按照四个步骤进行:单元测试,集成测试,验收测试和系统测试。
集成测试应该在【单元测试】之后进行。
◆在模块测试中,需要为每个被测试的模块设计【驱动模块】和【承接模块】。
其中,驱动模块的作用是将测试的数据传给被测试的模块,并显示结果。
◆【测试用例】是为某个目标而编制的一组测试输入、执行条件及预期结果。
测试用例包括输入值集和【输出值集】。
★★诊断和改正程序中的错误称为【程序调试】(或软件调试),通常也称为Debug。
软件调试可分为【静态调试】和【动态调试】。
◆在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程称为【软件维护】。
注意软件维护不属于软件生命周期【开发阶段】的任务。
第三部分数据库设计基础1、数据库系统基本概念◆数据库设计的根本目标是要解决【数据共享问题】。
在数据库管理技术发展的三个阶段中,数据共享最好的是【数据库系统阶段】。
数据独立性最高的阶段是【数据库系统阶段】。
◆数据库系统与文件系统的区别是前者具有【特定的数据模型】。
◆数据库系统常见的数据模型有层次模型,网络模型和【关系模型】。
★★数据库系统的核心是【数据库管理系统】。
◆DBS包括DB和DBMS。
完整讲,数据库系统DBS由数据库DB、数据库管理系统DBMS、数据库管理员DBA、硬件平台和软件平台组成。
◆数据库应用系统的核心是【数据库维护】。
◆数据库系统的三级模式结构:内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式;概念模式处于中层,它放映了设计者的数据全局逻辑要求,与软硬件环境无关;外模式处于最外层,它反映了用户对数据的要求。
◆在数据库系统中,用户所见的数据模式为【外模式】。
◆数据库设计的四个阶段是:需求分析、概念设计、【逻辑设计】和【物理设计】。