计算机二级公共基础知识>>C语言>>第一弹

written by: 东篱下の悠然

我在考前一个月刷题过程中碰到的较为生疏的理论知识,在此汇总。方便自己复习,也希望对你有帮助~

  1. 程序流程图中带有箭头的线段表示控制流,数据流图中带有箭头的线段是数据流
  2. 结构化程序设计的基本原则:模块化,自顶向下,逐步求精,限制使用goto语句
  3. 软件设计模块划分应遵循 (高内聚低耦合)
  4. 在软件开发过程中,需求分析阶段产生的主要文档是(软件需求规格说明书(是后续设计,编码的重要参考文档))【可行性分析阶段产生可行性分析报告;总体设计阶段产生概要设计说明书;概要设计阶段产生集成测试计划;】
  5. 算法的有穷性是指(运行时间)
  6. 对长度为n的线性表排序,最坏情况下,堆排序比较(n * log2n次),其他排序都是n(n - 1)/2
  7. 栈,先进后出方式组织数据,即FILO
  8. 数据库设计中,将E-R图转换成关系数据模型的过程属于(逻辑设计阶段),即把图形关系反映到数据库中设计出表
  9. 数据库关系运算:“自然连接”是两个相同的属性组合并,并去掉重复的属性列;“笛卡尔积”是用集合中的元素为第一元素,另一集合的元素为第二元素构成有序数对;“交”、“并”运算与数学集合中规则相同
  10. 数据库不同表之间关键字的选择:分别选择源表的主键
  11. C语言中非执行语句不会被编译;C语言构成的指令序列为C源程序,经编译后形成.obj的二进制的目标文件;最后由“连接程序”把此obj文件与各种库函数连接起来形成.exe的可执行文件
  12. 八进制整形常量用0打头;十六进制用0x、0X;小数形式表示的实型常量一定有小数点;指数形式用e或E表示以10为底的幂数,且e或E后面一定要且只要整数;二进制数中没有二,八进制数中没有八……
  13. 大写的关键字可以做标识符使用,INT,FOR…
  14. 取模运算符%是二元运算符,左结合性,只能对整形的量运算,其他类型都不行
  15. 表示回车,在程序中可算作一个字符输入,若不需要可用getchar();吞掉一个。
  16. 逻辑运算符不规定数据类型,也可以是任意合法的表达式
  17. if-else之间不能有单独的语句
if(a = 1) b = 2;
	c = 3;
else d = 4; //会在这一行有 编译错误 的提示
  1. swich 语句里的case,没有break是不会停下的!就算default也会执行!
  2. 随机数的产生:n = rand(); 小于5的随机数产生:n = rang()%5;
  3. exit()函数:所在头文件:stdlib.h;功能: 关闭所有文件,终止正在执行的进程。exit(x)(x不为0)都表示异常退出;exit(0)表示正常退出
  4. 不能把整数赋给指针变量
  5. 给指针赋值NULL要用stdio.h头文件
  6. char a[20]; scanf("%s", a);不能输入空格;gets(a);可以输入空格
  7. for循环第一次执行是 无条件执行
  8. static:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在整个程序运行期间都不释放;auto:函数中的局部变量 数据存储在动态存储区中,调用时自动分配结束调用时自动释放空间;register:C语言允许将局部变量的值存放在CPU中以提高效率,叫”寄存器变量“,只有局部自动变量和形式参数可以做寄存器变量;extern:外部变量 或全局变量,作用域在定义处开始到本程序文件的末尾。所以,auto和register是只有使用时才占用内存单元。

  1. 结构体做实参时,可以实现传值调用;结构体做形参时,实参也是用结构体变量名实现传值调用,实参是把拷贝一个”副本“给形参,在子函数中改变形参值对调用函数的值没影响
  2. 预处理命令以”#“开头;它不是可执行命令,在函数之外书写;一般但不一定要放在源文件起始位置;预处理命令可以实现宏定义和条件编译等功能
  3. b = a >> 3;是将变量a根据它的类型转成二进制再右移三位(前面空缺的位用0补齐),再转换成十进制赋给变量b;<< 为左移;
  4. fread():读取二进制文件的函数,原型:fread(void *buffer, size_t size, size_t count, FILE *stream);
    功能:从一个文件流中读数据,读取count个元素,每个元素size个字节,若调用成功则返回count
    buffer:接收数据内存的首地址,大小是size * count字节,代表输入数据存放的地址
    size:元素的大小,单位是字节
    count:元素的个数,每个元素size字节
    stream:输入流
  5. 有序线性表为“顺序存储”时才能用二分查找,长度为n的有序线性表最坏情况要比较log2n次,而顺序查找要n次
  6. 链式存储的每个节点有“数据域”和“指针域”,增加了存储量,但空间不要求一定连续
  7. 软件开发中 需求分析阶段可以使用的工具有数据流图DFD图、数据字典DD、判定树、判定表
  8. 面向对象的方法中,“对象”的一些基本特点:标识的唯一性,分类性,多态性,封装性,模块独立性好
  9. 数据管理技术发展的三阶段:人工管理,文件管理,数据库系统管理
  10. switch(expr1)中expr1不能用浮点类型或long类型,也不能为一个字符串;case后的常量表达式必须与expr1类型一致
  11. typedef定义了新的类型名后,原名仍然有效;typedef可以为各种类型起别名,但不能给变量起别名
  12. 当对文件读/写完毕后必须将它关闭,否则可能造成数据丢失;打开一个已经存在的文件并进行写操作后,原有文件的全部数据不一定被覆盖,也可以对源文件进行追加操作;在一个程序中当对文件进行写操作后,不用先关闭文件在打开…可以直接读取第一个数据,用fseek函数进行重新定位即可;C语言中的文件是“流式文件”,但这个概念与存取数据顺序无关,C语言文件可以进行随机读写。这里引用一下“流式文件”的概念:来自百度知道

流式文件是指的C语言中对文件的处理方式。
在C语言中,处理文件时,每次的读写操作并不是直接操作存储器上的物理空间的,而是先会读出/写入到一个缓冲区中,实际的编程中,这个缓冲区是隐式的,并不会被编程人员显示获知。这种操作的方式就被称为流式文件,简称流文件。
需要注意的是,这个概念与文件实际存储的内容无关,所以不要和存储类型中的流式文件和记录式文件文件混淆。无论是哪种文件,在C语言中都是流文件形式处理的。

  1. 栈,队列,循环队列都是采用线性表的数据结构;不同的是,栈是先进后出的线性表FILO,队列是先进先出的线性表FIFO,循环队列是线性结构的线性表(用线性表模拟圆环)。
  2. 栈 支持子程序调用,因为只能在一端进行操作,主程序调用子函数时首先保存主程序当前的状态,在转去执行别的程序(或本程序 即递归),最终把子程序执行结果返回到主程序中离开的位置继续向下执行,这种调用符合栈的特点。
  3. 二叉树基本性质3:任意一棵二叉树中,度为零的叶节点总比度为二的节点多一个。二叉树基本性质
  4. 编译软件,汇编程序,操作系统都属于系统软件,其他都是应用软件。
  5. 冒泡,简单插入,简单排序最坏情况需要N(N-1)/2,堆排序最坏N*log2N.
  6. 软件测试的目的是发现错误,不涉及改正错误;
  7. 程序调试的基本步骤:错误定位,修改设计和代码,排除错误,进行回归测试,防止引进新错误。
  8. 程序测试也叫排错也叫dedug
  9. 软件测试的基本准则:所有测试都应追溯到需求,严格执行测试计划,排除测试的随意性,充分注意测试中的集群现象,程序员应避免检查自己的程序,穷举测试不可能,妥善保存测试计划等文件。
  10. 数据库应用系统的核心问题是:数据库设计。
  11. 关系运算:选择:筛选符合条件的行;投影:筛选符合条件的列;连接:把两个表连成一个表
  12. E-R图转换为关系模式时,实体和联系都可以表示为“关系”,属性可以转换为关系属性
  13. 结构化程序是由顺序,分支,循环三种基本结构组成,可以解决简单的和复杂的问题
  14. C语言是一种结构化程序设计语言,结构化程序设计提倡模块化的设计方法
  15. C源程序中整型常量可以用八进制,十进制,十六进制等形式表示,但不包括二进制
  16. 宏替换没有类型限制;宏定义写在花括号外边,作用域为其后的程序,通常在文件的最开头;宏名一般为大写,但不一定为大写;宏展开占用编译时间,不占用运行时间;函数调用占用运行时间,包括分配内存、保留现场 、值传递、返回值。
  17. double a; *p = &a;定义语句的星号是个说明符; 定义语句中的p只能用double类型变量的地址。

(前三套)

发布了9 篇原创文章 · 获赞 3 · 访问量 868

猜你喜欢

转载自blog.csdn.net/wenya13/article/details/104423095