C语言二级笔记

快速排序最坏情况下蜕化为冒泡排序,在最坏情况下,对长度为n的线性表排序,冒泡排序需要比较的次数为n(n-1)/2。

关于前序中序后序

E-R图不能描述算法

如果a是实型变量,a=10是可以的,但是不能说实型变量中可以存放整数

这题我傻了 居然选了0

关于指针传参

这种题不要被吓到,很简单

关于程序员计算器的使用

异或(^)对应xor

这种题目没有学过 先记录下来把,以后可能会用到

  • 在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流

  • 有穷性是指运行时间是有限的

  • 线性表排序:快速,冒泡,直接插入排序最坏情况下都是n*(n-1)/ 2,堆排序是nlong2n

  • 将E-R图转化成关系数据模型的过程属于逻辑设计阶段

  • 只有两行时 选择少行 投影少列
    自然连接多列

  • C语言每条可执行语句和非执行语句最终都将被转换成二进制的机器指令是错的(非执行语句不会被编译,不会生成二进制的机器指令)

  • c源程序经过c语言编译程序之后生成一个后缀为.obj的二进制文件(目标文件),最后要由连接程序把.obj文件与c语言提供的各种库函数连接起来生成一个后缀为.exe的可执行文件

  • 八进制整型常量凉的开头数字是0 十六进制是0x 像是028这种是不行的

  • vc6中 int4个字节,double8个字节

  • 有的题目很迷惑人的,比如for(k=1;k<3;k++);后面一个表达式,没看清题目就错了

  • 像这种就是典型的倒序操作

  • 在c语言中,只有在使用时才占用内存单元的变量,存储类型是
    auto和register

  • fread(buffer,size,count,fp)
    buffer是一个内存块的首地址,代表读入数据存放的地址

  • 在被调用函数中改变形参值对于调用函数中的实参没有影响。

  • 二分查找最坏情况下比较O(log2n) 顺序n次

  • 链式存储结构既可以针对线性结构也可以针对非线性结构

  • 在需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD ,判定树与判定表。

  • x=2时,2*x,x+=2 答案是4 ;选项中逗号表达式先计算第一表达式2x .然后计算表达式x+=2的值, 即x=x+2即4 , 整个逗号表达式为第二个表达式的值4,

  • (x-y)?(x++) :(y++)中的条件表达式(x-y)等价的是(x- y<0||x - y>0)

  • 让我们选正确的语句的时候,我们经常只关注里面的内容对不对,其实还有分号使用的错误。看题目一定要仔细

  • char ss[6][20]; ss[1]= “right?” ;是错的 但是char *ss[6]; ss[1]= “right?” ;
    是对的

  • 在一个C源程序文件中所定义的全局量,其作用域为( )。由具体定义位置和extern说明来决定范围

  • 关键字typede的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型。

  •   main(
          int*a,*b, *c ;
          a= b=c= (int *)malloc(sizeof(int)) ;
          *a=1 ; *b=2 , *c=3;
          a=b ;
          print("%d , %d , %d\n", *a, *b, *c) ;
          }
    

    最后答案都为3.

  • 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行.

  • 某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是( 6)。(度为0的节点总比度为1的节点多1)

  • 软件测试不包括改正错误

  • 数据库应用系统中的核心问题是 数据库的设计

    int a, b, c ;
    a=10; b=50; c=30;
    if(a>b)a=b, b=c; c=a;
    printf("a= %d b= %d c= %d\n", a,b,c ;

程序的输出结果是(10 50 10 )。一眼看过去if没加括号嘛,执行b=c,c=a结果又有个坑,那是个逗号 所以只执行了c=a这句话。

  • 做了三套发下题目真的很喜欢在循环后面加个分号迷惑人还有很多关于形参实参的

  • 计算字符串长度

   int fun(char *s) {
       char *t=s ;
       while(*t+ +) ;
       t--;
       return(t-s) ;
   }
  • a的ascii码值:79
    A的ascii码值:65
  • 算法的空间复杂度值算法在执行过程中需要的内存空间

这是一张程序流程图

  • E-R图中,矩形表示实体,椭圆表示属性,菱形表示联系

  • 任何一个c程序都是从主函数开始,主函数结束

  • strlen遇到\0结束

  • gets和getchar都是从终端读入字符串

  • 继承是指类之间共享属性和操作的机制。

    { int g; char h; }T;

这里面T是结构体类型,可用T定义结构体变量

  • 循环链表和双向链表都是线性结构的数据结构

  • 线性结构应满足:有只有一个根结点,每个结点最多有一个前件 ,也最多有一个后件。所以只有一个根结点的数据结构不一定是线性结构

  • 软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。主要活动阶段是:可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护,没有市场调研这个环节

  • 数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、破和完善的。

  • 算法一定要有输出

  • char a[20]=“abcd\0efg\0”,b[]=ijk;那么strcat(a,b)后输出a为abcdijk

  • 文件是由数据序列构成,可以构成二进制文件或文本文件

  • C语言中没有逻辑类型,所以“若只处理真假两种逻辑,应使用逻辑类型”这句话是错的。

  • 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

语句if(i)i++;中的条件表达式i等价于什么?
A、i==0
B、i!=1
C、i!=0
D、-i
C,只要条件表达式不为0,即为真。
cc 12345
sizeof cc 6

gets会产生覆盖问题
所有的线性结构都可以采用顺序存储结构
-12U U表示正整数 所以错误
0.3L L修饰正整数 所以错误
关系数据库的键是指能唯一标识元组的属性或属性集合
软件系统总体结构图的作用是 描述软件系统结构的图形
所有线性结构都可以采用顺序存储结构

实体联系模型 E-R图中 菱形表示联系 矩形表示实体 椭圆表示属性
整型变量可以存放实数 但存放较大实数时,会有误差,
实型数的数值范围比整数大,所以实型可以精确存放一个整数
数据库中产生数据不一致的原因是数据冗余
C语言没有子程序的概念
[解析]软件系统总体结构图中,扇入是指调用一个给定模块
的模块个数:扇出是指由一个模块真接调用的其他模块数,深
度指控制的层数,原子模块指树中位于叶子结点的模块。

集成测试
集成测试时将模块组装成程序通常采用两种方式:非
增量方式组装和增量方式组装。非增量方式也称为一次性组装
方式。将测试好的每一个软件单元一 次组装在一 起再进行整体
测试。增量方式是将已测试好的模块逐步组装成较大系统,在
组装过程中边连接边测试,以发现连接过程中产生的问题。增
方式包括自顶向下、自底向上、自顶向下与自底向上相结合
的混合增量方法。

strcat

数据库管理系统是在操作系统支持下的系统软件
原地工作指 执行算法时所使用的额外空间固定

[解析]循环链表是线性表的一种链式存储结构, 循环队列是
队列的一种顺序存储结构。 因此D选项叙述错误。’

[解析]单元测试主要针对模块的5个基本特征进行:模块接
]测试,局部数据结构测试,重要的执行路径的检查,检查模
块的错误处理能力,影响以上各点及其他相关点的边界条件测
试。 单元测试不应涉及的是模块的执行路径

[解析]白盒测试法主要有逻辑覆盖、基本路径测试等。盒
测试方法主要有等价类划分法、边界值分析法、错误推测法和
因果图等。基本路径测试根据软件过程性描述中的控制流确定
程序的环路复杂性度量,用此度定义基本路径集合,并由此
导出一组测试用例对每一条独立执行路径进行测试。 因此基本
路径测试属于动态测试。
故本题选择C选项。
,在添加注释时,注释内容必须放在符
号“/*
和"/" 之间,"/” 和“"/" 必须成对出
现,"/”与之间不可以有空格,选项A正确;注释可以
用英文,可以用中文,可以出现在程序中任意合适的地方, 选
项B正确;注释部分只是用于阅读,对程序的运行不起作用
选项C正确;使用"/
" 和“/" 的注释之间不可再嵌
套“/
”和"*/”,选项D错误,本题答案为D。

数据流图应遵循以下构造规则和注意事项:
①对加工处理建立唯一、 层次性的编号,且晦个加工处理通常要求既有输入又有输出。
②数据存储之间不应有数据流。
③数据流图的一致性。即输入输出、读写的对应。
④父图、子图关系与平衡规则。相邻两层DFD之间具有父子关
系,子图代表了父图中某个加式的详细描述,父图表示了子图
间的接口。子图个数不大于父图中的处理个数。所有子图的输
入输出数据流和父图中相应处理的输入输出数据流必须-致。

y=10 printf y-- =10
程序流程图是详细设计阶段使用的表达工具
对象的成分 数据或属性 和方法或操作

树中的节点数等于树中所有结点的度之和+1

将e-r图转换成关系数据库模型的过程属于逻辑设计阶段
E-R图中表示实体联系的图形是菱形

需求分析阶段的任务有 需求获取 需求分析 编写需求规格说明书 需求评审

int(*f)(int ) f是指向函数的指针变量 该函数具有一个int类型的形参

c语言标识符 关键字 预定义标识符 用户标识符

判断回文
int c=1
char*p
用for循环将p指到最后一个字母
用for循环q-- str++
如果不同c=0
return c

个数 rear-front
单元测试不应涉及的是模块的执行路径

预处理是在编译之前进行的
基类型不同的指针变量所加1减1跨越的字节数是不同的
为了建立一个关系 首先要构造数据的逻辑关系

在带链栈中(把栈组织成一个单链表),入栈和出栈过程中栈底指针不变 栈顶指针随之变化

前序中序后序?
表中每一行称为一个记录 也称元组不是关系

完全二叉树 若结点总数为偶数,则有一个度为1的结点 若结点总数为奇数,没有度为1的结点

strlen遇到\0结束

gets读入一段字符 读入的数据从起始覆盖_x001D_,原来的东西也没了可以读入空格

typedef
循环队列队头指针可以大于也可以小于队尾指针
getchar用于从终端读入字符不是从磁盘文件读入
文件由数据序列构成
概念模式是数据库系统中全局数据逻辑结构的描述

二叉树是非线性结构
线性结构不能用存储空间判断
位运算的对象只能是整形或字符型数据
白盒测试方法测试用例应根据内部逻辑

具有两个根节点的数据结构一定是非线性结构

形参实参分别占用不同的存储单元
函数形参的值可以传回给对应的实参

%8.6f 表示输出宽度为8(包括小数点),小数点后面保留6位小数
char str[]={‘s’,‘t’,‘r’,’\0’}若定义字符串 \0是必须的

位运算的对象只能是整型或字符型数据
关系模式属于逻辑设计
将E-R图转换成关系数据模型的过程属于逻辑设计阶段

两个根节点的数据结构一定属于非线性结构
有两个以上叶子节点的数据结构一定属于非线性结构
buffer代表一个指针 指向读入数据要存放的地址

数据库中存储的是 数据以及数据之间的联系
算法的描述有伪代码 流程图 N-S结构图等 E-R是实体联系模型
一个关系就是一个二维表
只要是用户定义的标识符,都有一个有效的作用域
使用typedef定义新类型名后 新类型与原类型名实际上是等价的
整形常量和数值型常量都是数值型常量
链表结点中具有两个指针域的数据结构可以是线性结构也可以是非线性结构_x001D_

关系数据库中 记录存取一个实体信息的数据单位

xor 异或 全零全1为0
and是与 有零是零
or 有一是1
fputc(ch ,fp)
软件工程三要素方法 过程 工具

满二叉树
第i层节点数 2^(i-1)
总结点 2^i-1

函数说明语句
int fun(int,int);
函数指针定义语句
int (*f)(int,int);
若要使函数指针指向函数fun的入口地址 则应为 f=fun;
注意 函数名也是一个指针
结构体变量中的成员可以是简单变量 数组或指针变量

++p ++和优先级相同 自右向左结合 为p所指的值加1
(*p)++中括号不能少
计算器中的not为~

在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符

由&& ||构成的逻辑表达式都有短路现象
只能在循环体内和switch语句体内使用break

在一个函数体内的复合语句中定义的变量在本复合语句块范围内有效
宏替换没有数据类型限制
宏展开不占运行时间,只占编译时间

一条c语句对应转换成一条机器指令
表示实体间联系的是二维表
用于表示实体间联系的是二维表
形参必须是变量
实参可以是常量 变量或表达式

顺序表中查找最大项最坏情况下比较次数为n-1 顺序查找法最坏情况下比较次数为n 快速排序在最坏情况下需要进行n(n-1)/2

每个c程序文件中不一定必须有main函数 每个c程序中必须有一个man函数
c程序的函数中不能定义另一个函数

整数类型可以无误差的表示自然数
c语言中没有逻辑类型

一个关系中应有一个或者多个候选关键词
关系数据库管理的关系是若干个二维表
二进制不能在c源程序文件表示

对象间的通信靠消息传递

用于现实世界中事物的特征 在实体联系模型中使用属性描述

树形结构 层次模型
每一行称为一个元组或记录 每一列称为一个字段或属性

二维表中可能有若干个键 它们称为改表的候选码
快速排序在最坏情况下退化为冒泡排序
数据库概念设计阶段得到的结果是ER模型
循环队列 二维数组采用顺序存储结构
向量 二维表 矩阵都为线性结构
数据流图DFD支持软件系统功能建模
同一个关系模型的任意两个元组值不能全相同

do while 循环和条件表达式执行次数一样 while多一次
线性结构的存储结点也可以有多个指针

循环链表是线性表的一种链式存储结构结构
循环队列是队列的一种顺序存储结构

只要是sizeof(一个指针)都是四

链式存储的优点有插入与删除效率高
有序表可以用链接存储方式存储在不连续的存储空间

逻辑运算符两侧运算对象可以是任意合法的表达式

没有根节点的或没有叶子结点的数据结构一定是非线性结构

有多个指针域的链表有可能是线性结构(双向链表)
快速排序和冒泡排序比较n*(n-1)/2
顺序查找和寻找最大项在最坏情况下n
用于对客观世界中复杂事物的结构及它们之间的联系进行描述的是概念数据模型

快速排序每一次数据元素的移动会产生新的逆序的排序方法是快速排序
只有在使用时才占用内存变量的是auto和register

栈是先进后出 后进先出
考虑数据库实现的数据模型是逻辑数据模型

队列是先进先出
每个二维表称为一个关系
实体和联系都可以转化为关系
数据的逻辑结构和存储结构不是一一对应的

函数体必须由{开始
结构化设计方法的原则有 自顶向下 逐步求精 模块化 限制goto
面向对象设计方法 封装性 继承性 多态性

面向对象方法的是 对象 类 封装 继承 多态和消息等概念来构造

对象的基本特征 标识唯一性 分类型 多态性 封装性 模块独立性好

预定义标识符可用作用户标识符 但失去原有含义

若二叉树中所有的结点值均大于其左子数上的所有结点值 且小于右子树上的所有节点值,则该二叉树遍历序列中有序的是中序
没有继承性
类是对一类具有相同的属性和方法对象的抽象
类具有对象的特征 是关于对象的抽象描述
考虑数据库实现的数据模型的是逻辑数据模型

复杂事物结构及它们之间联系进行描述的是概念数据模型

循环队列是队列的顺序存储结构

非线性结构可以采用顺序存储结构
满二叉树与完全二叉树均为非线性结构 但可以按照层次进行顺序存储
在线性表的顺序存储结构中 其存储空间连续 各元素所占的字节数相同 元素的存储结构和逻辑结构一致

希尔排序 快速排序每经过一次数据交换后能消除多个逆序
最坏情况下时间复杂度最高的是希尔排序
二分查找 log2 n
二分查找只适用于顺序存储的有序线性表
二分查找的线性表必须用顺序存储结构 线性表是有序表
带链的栈与队列是线性结构
寻找最大项比较次数n-1
二叉链表是一种非线性结构
是否为线性机构与指针域个数无关 双向链表有两个指针域但它是线性结构
双向链表可以有多个指针域所以线性结构的存储结点也可以有多个指针
快速排序最坏情况下退化成冒泡n(n-1)/2
程序可以作为算法的一种描述方法
时间复杂度是执行算法所需要的基本运算次数
有序线性表即可以采用顺序存储结构也可以采用链式存储结构
带链栈空的条件是top=bottom=NULL
带链栈中 栈顶指针变化 栈底不变

数据库系统中的数据模型有三个要素 数据结构 数据操作和数据的约束条件
ER图中 表示实体的图形是矩形 椭圆表示属性

scanf可以作为用户标识符(不能包含头文件stdio.h)
auto不行
程序模块化可以提高运行效率是错的
可以降低程序复杂度

L只能修饰整数
‘/s’输出后仍是原英文字母

\ddd表示三位八进制代表的一个ascii字符
一个任务中 单独编写的每个模块可以独立运行是错的
除了包含main函数的模块 其他模块都不可以单独运行

注意sum写0还是0。0
C语言标识符的长度因系统而异

开发阶段包括 分析设计和实施两类任务
分析设计包括需求分析总体设计详细设计
实施包括编码和测试两个阶段

白盒 逻辑覆盖测试 基本路径测试

结构化方法软件需求分析工具主要有数据流图DFD 数据字典DD 判定树 判定表
继承是指类之间共享属性和操作的机制

软件测试实施步骤 单元测试 集成测试 确认测试 系统测试
字符常量可以参加任何整数运算
A的ascii码 65
若要求从键盘读入空格字符的字符串应使用函数gets

不能用字符串常量对字符数组名进行整体赋值操作

一个变量作用域的开始位置完全取决于变量定义语句的位置

scanf可以作为用户标识符

需求分析阶段的任务是软件系统功能 需求获取 需求分析 编写需求规格说明书 需求评审

          能准确的确定软件系统必须做什么和必须具备哪些功能的阶段
          主要功能是确定软件系统的功能

系统总体结构图支持软件系统的详细设计是错的
支持软件系统的详细设计的有 程序流程ns图以及PAD图
b已经有值了 再 gets(b) 会覆盖

数据流图中带有箭头的线段表示的是数据……
数据流图包括加工 数据流 存储文件 源和潭
耦合 内容耦合 公共耦合 外部耦合 控制耦合 标记耦合 数据耦合 非直接耦合 没有异构耦合

16进制H

软件功能分解属于总体设计阶段
整型变量可以存放实数 但又误差

程序流程图中带箭头的线段表示的是控制流
检查软件产品是否符合需求定义的过程称为确认测试

软件测试实施的步骤是 单元测试 集成测试 确认测试/验收测试和系统测试
测试完调试 调试完再测试称为回归测试
软件调试方法 强行排错法 回溯法 原因排除法
有且只有一个根节点的数据结构可能是线性结构也可能是非线性结构
在线性单链表中,可以从任何一个结点开始遍历到所有结点是错的 只能遍历到其后的结点

用高级语言编写的程序称为源程序

fputc将一个字符写到磁盘上去

数据操纵语言负责增删改

单元测试不应涉及的内容是模块的执行路径
单元测试主要针对模块的5个基本特征进行 模块接口测试,局部数据结构测试 重复的执行路径的检查 检查模块的错误处理能力 影响以上各点及其他相关点的边界条件测试

需求分析阶段产生的主要文档是软件需求规格说明书
链式存储结构中每个节点都由数据域和指针两部分构成 增加了存储空间

树中节点数等于树中所有结点的度之和+1

最坏二分 log2n 顺序n
堆排序 nlog2n
冒泡 快速 简单插入 简单选择在最坏情况下比较次数均为n*(n-1)/2

凡是以#开头的行 都被称为编译预处理命令行

黑盒测试,设计测试用例主要根据程序外部功能

宏替换不占用程序的运行时间

'“abcd” 长度为4 空间为5

只有两行时选择少行 投影少列

自然连接多列
int不能定义为用户标识符
采用表结构来表示数据及数据间联系的模型是 关系模型 关系模型采用二维表来表示简称表

算法的时间复杂度和空间复杂度与算法所处理数据的存储空间有直接关系
算法的时间复杂度与算法程序执行的具体时间是不一样的
软件测试的实施过程主要有4个步骤 单元 集成 确认系统测试

数据库实现的数据模型是逻辑数据模型0

w打开只写文件 若文件存在则长度清为0
fgets(str,n,fp)的功能是从fp所指的文件中读取长度不超过n-1的字符串存入指针str所指的内存
同一个关系模型的任意两个元组值不能完全相同
“”是合法的字符串常量 \0
在对指针进行加减运算时 数字1表示1个存储单元的长度
函数递归调用使用栈区来递归 需要指出递归结束的条件
全局变量的存储类别可以是静态类
中序和后序遍历相同的话 前序与他们相反 只有左子树

注意sizeof和strlen
fputc(ch , fp) 把ch放到fp
char reco =fputc(‘a’,fp)
reco=fputc(‘d’,fp)
则文件内有ad
把一个字符写到磁盘上去 不覆盖
自动向下走一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值