计算机二级C语言知识点大全,弄懂这些题集所含知识点稳过(一)

综合题集知识点一

以下是备考计算机二级C语言冲刺阶段总结的题集中所含的知识点!踏踏实实弄懂每一个知识点,就稳了。

2020年11月6日星期五
补充:不出所料,一次性顺利通过,虽然还是有点不太满意。可能是自己当时考完太过自信。选择题有两三道涉及的知识点一无所知,另外的可能就是会的但因为粗心做错了,编程题大概率是满分,扣分也可能只是扣在修改题,因为当时做完回想了下好像还有其他答案。
在这里插入图片描述
在这里插入图片描述
2020年8月9日星期日

二叉树遍历可以分为3种:
1.前序遍历(访问根节点在访问左子树和访问右子树之前);
2.中序遍历(访问根节点在访问左子树和访问右子树两者之间);
3.后序遍历(访问根节点在访问左子树和访问右子树之后)。

一个非空的数据结构如果满足以下两个条件:
1.有且只有一个根节点;
2.每一个节点最多有一个前件,也最多有一个后件;
称为线性结构,也称线性表,可以采用线性存储和链式存储,其中链式存储空间不连续。

双向链表节点有两个指针域:指向前一个节点的指针和指向后一个节点的指针,也是线性结构。

顺序存储结构中可能根节点不唯一,故可能不是线性结构。

栈是所有的插入与删除都限定在表的同一端进行的线性表;
队列是指允许在一端进行插入,而在另一端进行删除的线性表。

算法的时间复杂度是指执行算法所需的计算工作量,它与使用的计算机、程序设计语言以及算法实现过程无关;
算法的计算工作量是用算法所执行的基本运算次数来度量的;
算法的空间复杂度是指执行过程中所需要的内存空间;

计算机软件由两部分组成:
1.机器可执行的程序和数据(程序、数据);
2.机器不可执行的,与软件开发、运行、维护、使用等相关的文档(相关文档)。
软件生命周期分为:软件定义期、软件开发期、运行维护期。
软件设计属于软件开发期任务,通常又分为概要设计和详细设计两个阶段;给出软件的结构、模块的划分、功能的分配以及处理流程。
需求分析属于软件定义期;

黑盒测试是把程序看成一只黑盒子,测试者完全不了解,或不考虑程序的结构和处理过程。它根据规格说明书的功能来设计测试用例,检查程序的功能是否符合规格说明的要求。

常用的黑盒测试方法和技术有:
等价类划分法;
边界值分析法;
错误推测法;
因果图;

白盒测试的主要技术有:
逻辑覆盖测试(语句覆盖、路径覆盖、判断覆盖、条件覆盖);
基本路径测试;

一般来说,实体集之间必须通过联系来建立连接关系,分为3类:
1.一对一联系(1:1);
2.一对多联系(1:m);
3.多对多(m:n);

关系模型中可以有3类完整性约束:
1.实体完整性约束:保证关系中的每个元组都是可识别的和唯一的,关系数据库中所有表都必须有主键,不允许出现无主键值得记录、主键值相同的记录;
2.参照完整性约束:参照完整性约束是描述实体之间的联系的,一般是指多个实体或关系之间的关联关系;定义外键与被参照主键之间的引用规则;
3.用户定义完整性约束:也称为域完整性或语义完整性,是针对某一具体应用领域定义的数据约束条件,指明关系中属性的取值范围,防止属性的值与应用语义矛盾;

数据模型按照不同的应用层次分为以下3种类型:
1.概念数据模型:着重于对客观世界复杂事物的描述及对它们内在联系的刻画;
2.逻辑数据模型:是面向数据库系统的模型,着重于在数据库系统一级的实现;
3.物理数据模型:是面向计算机物理实现的模型,此模型给出了数据模型在计算机上物理结构的表示;

字符串长度:
1.包含转义字符:”\”Name\Address\n”,长度为14,其中“\””、“\”、“\n”为转移字符,转义字符只记作一个字符;
2.不包含转义字符:”abcNM*a”,strlen求其长度为7,sizeof求其长度为8;
strlen 不包含转义字符’\0’,指的是字符串长度;
Sizeof 包含转义字符’\0’,指的是内存大小;

2020年8月10日星期一

栈是先进后出的原则组织数据,所以入栈最早的最后出栈。

在循环队列中只需队头指针和队尾指针两个指针来共同反映队列中元素的动态变化情况。

当有序线性表为顺序存储时才能用二分法查找。对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较log2n次,顺序查找需要比较n次。

链式存储结构既可以针对线性结构也可以针对非线性结构;链式存储结构中每个节点都由数据域与指针域两部分组成,增加了存储空间。

数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般在旁边标注数据流名。
程序流图中标有名字的箭头表示控制流。

需求分析阶段可以使用的工具有数据流图(Data Flow Diagram,简称DFD)、数据字典(Data Dictionary,简称DD)、判定树、判定表。

面向对象方法中,对象的基本特点:
1.标识唯一性:一个对象通常可由对象名、属性和操作三部分组成;
2.分类性:指可以将具有相同属性和操作的对象抽象成类;
3.多态性:指同一个操作可以是不同对象的行为,不同对象执行同一操作产生不同的结果;
4.封装性:从外面看只能看到对象的外部特性,对象的内部对外是不可见的;
5.模块独立性好:由于完成对象功能所需的元素都被封装在对象内部,所以模块独立性好;

数据库管理发展至今经历了三个阶段:
1.人工管理阶段;
2.文件系统阶段;
3.数据库系统阶段;
其中,数据库系统阶段结构简单、使用方便、逻辑性强且物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位。

关系间的9种运算(具体样例见CSDN收藏C语言学习):
1.笛卡尔积:两个关系属性不相同,两个关系中除属性一行外都要相乘;
2.自然连接:两个关系属性部分相同,相同属性列中具有相同元素的一行提出来;
3.交:两个关系属性相同,两个关系同一行元素相同的一行提出来;
4.并:两个关系属性相同,把两个关系同一行元素不相同的一行合并,同一行元素相同的一行保持不变,并不重复;
5.差:两个关系属性相同,把两个关系同一行元素相同的一行减去;
6.除:笛卡尔积的逆运算;
7.连接:是笛卡尔积添加条件的情况;
8.选择运算:减少行;
9.投影运算:减少列;

一个C语言程序可以进行多种算法的实现,对算法的个数没有规定。

C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。

C语言取模(余)运算符“%”(属于二目运算符)的左右两个操作数均应为整数(正整数、负整数)。

逗号表达式:先计算第一表达式,后计算第二表达式;整个逗号表达式为第二表达式的值。

条件表达式:x=表达式1?表达式2: 表达式3
含义:先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x;若表达式1的值为0(假),则求解表达式3,将表达式3的值赋给x。

*t++=s++是先执行t=*s,然后才进行t=t+1,s=s+1。

字符串是一个特殊的数组,字符型指针变量的变量名指向的是数组的首地址,也就是字符串的第一个字符。

全局变量的作用域是从声明处到文件的结束。

关键字typedef的作用只是将C语言中的已有数据类型作了置换(使用一个新的名字),并不是增加新的类型。

宏定义不是C语句,末尾不需要分号。

&按位与:如果两个相应的二进制位都为1,则该位的结果为1,否则为0;
|按位或:两个相应的二进制位中只要有一个为1,该位的结果值为1;

当对文件的读或写操作完成之后,必须将它关闭,否则可能导致数据丢失。

打开一个已存在的文件进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。

在一个程序中对文件进行了写操作后,不用先关闭该文件再打开,也能读到第1个数据,可以用fseek()函数进行重新定位即可。

2020年8月11日星期二

一个非空的数据结构如果满足以下两个条件:
1.有且只有一个根节点;
2.每个节点最多有一个前件,也最多有一个后件;
则称为线性结构,在数据结构中习惯称为线性表;

循环链表是链表,循环队列属于队列,队列只能在队尾入队,在排头退队,链表可以在任何位置插入、删除。

白盒测试又称为结构测试或逻辑驱动测试,它允许测试人员利用程序内部的逻辑结构及有关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试。

对长度为n的线性表排序,最坏情况下时间复杂度:
1.二分法查找:O(log2n);
2.顺序查找:O(n);
3.分块查找:与分块规则有关;
4.哈希查找:O(1),因其通过计算HashCode来定位元素位置,所以只需一次即可;

满二叉树:在一棵二叉树中,如果有分支节点都存在左子树和右子树,并且所有叶子结点都在同一层上,则这样的二叉树称作满二叉树。
完全二叉树:如果一棵具有n个结点的二叉树的结构与满二叉树的前n个结点的结构相同,这样的二叉树称作完全二叉树。
满二叉树一定是完全二叉树。

简单的程序设计步骤为:确定数据结构、确定算法、编码、调试、整理文档;
Scanf()函数中,%d对应的参数是整数型地址;%f对应的参数是float型地址;%lf对应的参数是double型地址;
格式化字符串中,如果输入地址有多个,应该用逗号隔开。

C语言的数值表示中,e和E都表示“10的幂次”,前面必须有底数,后面必须接整数。

注释可以出现在程序任何位置;注释中间不能嵌套另一个注释;注释内容不影响程序编译。

Switch case语句,default只有在其它情况都不满足的情况下才执行,如果没有break语句则按顺序执行。

Typedef 类型名 新类型名

fopen函数使用’w’模式写文件

fread()函数用法是fread(void *buffer,int size,int n,FILE *fp),其中buffer为指针类型,应该传入指针类型的值,FILE *fp的值为fp。

^按位异或:转二进制后计算

指针变量和普通变量一样,使用之前不仅需要定义,而且必须赋予具体的值。

2020年8月12日星期三

在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。

二叉树中,度为0的节点数等于度为2的节点数加1。

关系模型采用二维表来表示,即每个二维表称为一个关系。

C语言程序总是从main函数开始执行,main函数的位置可以放在开始,也可以放在中间,也可以放在最后。

单目运算符:只有一个运算对象,如!、~、++、–、-(负号)、(指针运算符)、&(取地址运算符)、sizeof(长度运算符);
二目运算符:含两个运算对象,如
(乘法运算符)、/(除法运算符)、%(取余运算符)、<<、>>等等;
三目运算符:含三个运算对象,只有?:一个,称之为条件运算符。

sizeof是C语言中的一个操作符(operator),不是函数调用,其作用是返回一个对象或者类型所占的内存字节数

Feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),函数返回值为非零值,未读到文件的末尾则函数的返回值为0。

->(指向运算符)和.(成员运算符)优先级相同,熟悉它们在结构体中的等价关系。

2020年8月13日星期四

结构化程序设计的思想(基本原则)包括:
1.自顶向下;
2.逐步求精;
3.模块化;
4.限制使用goto语句;

结构化程序的三种基本控制结构:
1.顺序;
2.选择;
3.循环(重复);

软件设计中模块划分应遵循的准则是高内聚低耦合、模块大小规模适当、模块的依赖关系适当等。

需求分析阶段产生的主要文档是软件需求规格说明书。
需求分析阶段的工作可分为4个方面(包括确定软件的功能):
1.需求获取;
2.需求分析;
3.编写需求规格说明书;
4.需求评审;
算法的有穷性是指算法程序的运行时间是有限的。

对长度为n的线性表排序,最坏的情况下,各种排序方法需比较的次数:
1.快速排序:n(n-1)/2;
2.冒泡排序:n(n-1)/2;
3.直接插入排序:n(n-1)/2;
4.堆排序:n(log2n);

C语言程序的模块化通过函数来体现。
表示关系式x≤y≤z的C语言表达式是(x<=y)&&(y<=z)。

2020年8月14日星期五

双向链表与二叉链表均是有两个指针域的链表。

数据库管理系统为完成主要功能提供了相应的数据语言:
1.数据定义语言,该语言负责数据的模式定义与数据的物理存取构建;
2.数据操纵语言,该语言负责数据的操纵,包括查询与增、删、改等操作;
3.数据控制语言,该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能;

计算机认识自己的母语----机器语言,即0和1代码组成的二进制指令或数据。
C语言是一种高级语言,计算机不能直接运行C源程序和其它高级语言以及汇编语言(低级语言)编写的源程序,需经过编译后才能接收运行。

逻辑与(&&)运算符遵循“短路求值”策略,即只有在紧靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数。
If语句条件表达式为逻辑与(&&)时,若左操作数为0,则已经可以确定整个逻辑与表达式的结果为0,因此有操作数无需再求解。

有关地址和指针的说法:
通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量。
常数的地址存储在内存的常量区,常量区存储的都是常量,值都是不可修改的,所以直接取常量的地址赋给指针变量没有任何意义,C语言也不允许这样做,编译会出错。
表达式的值存储在临时变量中,内存中存在专门用来存储临时变量的区域,对这块地址进行操作也是没有意义的,C语言不允许这样做,编译会出错。
可以取一个指针变量的地址,但是指针变量的地址属于指针,只能赋值给指针类型的指针变量。

C语言函数说明(声明)的位置:
对被调用函数的说明(声明)有两种方式:
1.内部说明(声明):在调用函数内对被调用函数所作的声明称为内部说明(声明),也称为局部说明(声明);
2.外部说明(声明):在调用函数外对被调用函数所作的说明(声明)称为外部说明(声明),如果说明在程序最前端,外部说明(声明)又称为全局说明(声明);
函数说明(声明)是指利用它在程序的编译阶段对调用函数的合法性进行全面检查。

函数中的形参属于局部变量;
在函数内部定义的变量只能在函数范围内使用;
在不同的函数中可以使用相同名字的变量;
在函数外部定义的变量只在从定义的位置开始到所在源文件结束这个区域内的函数才可以调用,不能被位于它之前的函数访问。

2020年8月15日星期六

自增运算符++的优先级高于指针运算符*的优先级。
如:
Int *N;
*N=0;
实现指针变量加1的方法:
1.*N=*N+1;
2.(N)++;
如果是
N++,则打印出的变量N的值为0。

C语言求平方根的方法一般有两种经典算法:
1.迭代法:(迭代变量)直接或间接地不断由旧值递推出新值的过程;
2.递归法:一个过程或函数在其定义或说明时又直接或间接调用自身的一种方法;
以下是C语言使用递归法求平方根的代码:

#include <stdio.h>
#include <math.h>
/**********found**********/
double fun(double a, double x0)
{   double   x1, y;
    x1=(x0+ a/x0)/2.0;
/**********found**********/
    if( fabs(x1-x0)>=0.00001 )             //0.00001=pow(10,-5)
	  y=fun(a,x1);
    else  y=x1;
    return  y;
}
main( )
{   double  x;
    printf("Enter x: "); scanf("%lf",&x);
    printf("The square root of %lf is %lf\n",x,fun(x,1.0));
}

以下是C语言使用迭代法求平方根的代码:

#include <stdio.h>
#include <math.h>

main( )
{   double  x,y=1.0,k;

	do
	{
		printf("Enter x: "); scanf("%lf",&x);
	}while(x<0);

	do
	{
		k=y;
		y=(y+x/y)/2.0;
	}while(fabs(k-y)>=0.00001);            //0.00001=pow(10,-5)

    printf("The square root of %lf is %lf\n",x,y);
}

变量在使用前一定记得给它初始化(赋值)。

后续还有综合题集知识点二、综合题集知识点三、综合题集知识点四、综合题集知识点五

整理不易,对你有帮助的话给个一键三连,谢谢

  • 16
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日,当刮目相待

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值