想考计算机二级c语言,
发布网友
发布时间:2022-04-28 12:31
我来回答
共4个回答
热心网友
时间:2023-01-27 03:03
计算机二级C语言公共基础知识手册
1.算法的时间复杂度是指执行算法所需要的计算工作量.算法的工作量由算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数.
2.算法的空间复杂度是指算法执行过程中所需要的存储空间,存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间.
3.一个算法通常由两种基本要素组成:一是对数据对象的运算和操作;而是算法的控制结构.
4算法设计基本方法主要包括有列举法、归纳法、递推、递归和减半递推技术.
5.数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构).、
6.数据处理是指对数据集合中的各元素以各种方式进行运算,包括插入、删除、查找、更改等运算,也包括对数据元素进行分析.
7.数据元素是指相互有关联的数据元素的集合.
8.前驱和后继关系是数据元素之间的一个基本关系,但前驱个后继关系所表示的实际意义随具体对象的不同而不同.一般说来,数据元素之间的任何关系都可以用前驱和后继关系来描述.
9.常用的存储结构有顺序链接、索引等存储结构.而采用不同的存储结构,其数据处理的效率是不同的.
10.在数据结构中,没有前驱的结点称为根结点;没有后继的结点称为终端结点(叶子结点);数据结构中除了根结点与终端结点外的其他结点一般称为内部结点.
11.在数据结构中,结点几结点的相互关系有线性结构和非线性结构.
12.线性结构(线性表):非空数据结构满足(1)有且只有一个根结点;(2)每个结点最多有一个前驱,也最多有一个后继.
在一个线性结构中插入或删除任何一个结点后还应该是线性结构,若删除或插入后不是线性结构,则该数据结构不能称为线性结构.
13.线性表是最简单、最常用的一种数据结构.有一组数据元素组成.在稍微复杂的线性表中,一个数据元素可以由若干个数据项组成,在这种情况下,常把数据元素称为记录,含有大量记录的线性表就称作文件.
14.非空线性表如与如下结构特征(1)有且只有一个根结点A1,它无前驱;(2)有且只有一个终端结点AI,它无后继;(3)除根结点与终端结点外,其他所有结点有且只有一个前驱,也只有一个后继.线性表中结点的个数N称为线性表的长度.当N=0时,称其为空表.
15.在计算机中存放线性表,一种最简单的方法是顺序存储,也称顺序分配.
16.线性表的顺序存储结构具有以下两种基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的. 在线性表的存储结构中,其前后继两个元素在存储空间中是紧邻的,且前驱元素一定存储在后继元素的前面.
17.假设线性表中第一个数据元素的存储地址是ADR(AI),每一个数据元素占K个字节,则线性表中第I个元素AI在计算机存储空间中的存储地址是ADR(AI)=ADR(A1)+(I-1)K.
18.在栈中,允许插入与删除的一端叫做栈顶,而不允许插入与删除的另一端叫做栈底.栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素.既栈是按照"先进后出"(FILO.FIRST IN LAST OUT)或"后进先出"(LIFO,LAST IN FIRST OUT).因此,栈也被叫做"先进后出"或"后进先出"表.栈具有记忆作用.
19.栈是一种特殊的线性表.
20.栈的基本运算有三种:入栈(会出现"上溢"错误)、退栈(会出现"下溢"错误)和读栈顶元素.
21.队列是指允许在一端进行插入、在另一端进行删除的线性表.允许插入的一端叫做队尾,通常用一个称为尾指针(REAR)的指针指向队尾元素.既尾指针总是指向最后被插入的元素;允许删除的一端称为排头(对头),通常也用一个排头指针指向排头元素的前一位置。显然,最先插入的元素将最先能够被删除,最后插入的元素最后才能被删除。因此,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则。在队列中,对尾指针REAR与派头指针FRONT共同反映了队列中元素动态变化的情况。
22。往队列的对尾插入一个元素称为入队运算,从队列的排头删除一个元素的运算称为退队运算。
23。循环队列主要有两种基本运算:入队运算和退队运算。每进行一次入队运算,队尾指针就进一;每进行一次退队运算,排头指针就进一。
24递归算法一般需要利用栈来实现。
25。在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点(既前驱或后继)。
26。数据结构作为计算机的一门学科主要讨论和研究三方面的问题:数据的逻辑结构;数据的存储结构;对各种数据进行的运算。
27。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(物理结构)。线性链表属于存储结构。
28,在线性单链表中,每一个结点只有一个指针域,由这个结点只能找到后继结点,但不能找到前驱结点,必须从头指针开始重新寻找。
29。为了弥补线性单链的这个缺点,在某些应用中,对线性链表中的每个结点设置两个指针,一个称为左指针(LLINK),用以指向前驱结点,另一个称为右指针(RLINK),用以指向后继结点,这样的线性链表称为双向链表。
30。栈也是线性表,也可以采用链式存储结构。
在实际应用中,带链的栈可以用来收集计算机存储空间中所以空闲的存储结点,这种带链的栈称为可利用栈。
31。线性链表的插入是指在链式存储结构下的线性表中插入一个新元素。
为了要在线性链表中插入一个新元素,首先要给该元素分配一个新结点,以便用于存放该元素的值。新结点可以从可利用栈中取得。然后将存放新元素值的结点连接到线性链表中指定的位置。
32。在线性链表中删除一个元素后,不需要移动表的数据元素,只须改变被删除元素所在结点的前一个结点的指针域即可。
33。循环链表中设置了一个表头结点,因此,在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的统一;
在对循环链表进行插入和删除的过程中,实现了空表与非空表的同意。
34。二叉树的遍历可以分三种:前序遍历,中序遍历,后序遍历。
前序遍历:1,访问根结点;2,前序遍历左子树;3,前序遍历右子树;
中序遍历:1,中序遍历左子树;2,访问根结点;3,中序遍历右子树;
后序遍历:1,后序遍历左子树;2。后序遍历右子树;3,访问根结点。
35。满二叉数:除最后一层外,每一层上的所有结点都有两个子结点。也就是说,在满二叉树中,每一层上的结点数都达到最大值,既在满二叉树的第K层上有2的K次方减1个结点,且深度为M的满二叉树有2的M次减1个结点。
36。在树结构中,一个结点所拥有的后继个数称为该结点的度。在树中,所有结点中最大的度称为树的度。
37.完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。更确切的说,从根结点算起,对二叉树的结点自上而下、自坐至右用自然数进行连续编号,则深度为M、且有N个结点的二叉树,当且仅当其每一个结点都与深度为M的满二叉树中编号从1到N的结点一一对应,称为完全二叉树。
38。满二叉树是完全二叉树,而完全二叉树一般不是满二叉树。
39。如果按从上到下、从左到右顺序存储完全二叉树的各结点,则很容易确定每一个结点的父结点、左子结点和右子结点的位置。
40。二分法查找只适用与顺序存储的有序表。此有序表指线性表中的元素按值非递减排列。对于长度为N的有序线性表,在最坏的情况下,二分查找只需要比较LOG下2上N次,而顺序查找需要 比较N次。
41,虽然顺序查找的效率不高,但有两种情况必须用该方法:1,线性表为无序表2。采用链式存储结构
42。假设线性表的长度为N,则在最坏情况下,冒泡发需要比较次数为N(N-1)/2,从前往后和从后往前个需要N/2遍的扫描。
43。堆排序的方法对较大规模的线性表来说是很有效的。在最坏情况下,他需比较的次数是O(nlog下2上n)。堆排序时间复杂度最小,
44。队排序方法如下:1,先将一个无序序列建成堆;2,将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。不考虑已经换到最后的那个元素,只考虑前N-1个元素构成的子序列。显然,该子序列已不在是堆,但左右子树仍为堆,可调整为堆,反复,直到剩下的子序列为空为止。
45,快速排序发也是一种互换类的排序方法,比冒泡发速度快,可实现通过一次交换而消除多个逆序。
46,快速排序基本思想如下:从线性表中选取一个元素,设为T,将线性表中小于T的元素移到前面,而前面大于T的数移到后面,结果就将线性表分成两部分(两个子表),T插入到其分界线的位置,这个过程称为线性表的分割。这样,前面子表中的所有元素均不大于T,后面所以元素均不小于T。若对分割后的各子表在按上述方法进行分割,一直持续下去,直到所以子表为空为止,此时的线性表就变成了有序表。因此,快速排序发的关键是对线性表进行分割,并对各分割出的子表进行分割。
47,简单插入排序法中,每次比较后最多移掉一个呢序。因此,他与冒泡排序法相同,在最坏情况下,需要N(N-1)/2次比较。
48,希尔排序法属于插入类排序,但他对简单插入排序作了较大改进。选择类排序法主要有简单选择排序法和堆排序法;交换类排序法主要有,冒泡排序法和快速排序法;插入类排序法主要有简单插入排序法和希尔排序法。
49,源程序文档化时应注意考虑:符号名的命名、程序注释和视觉组织。注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,它给出程序的整体说明,主要描述内容包括:程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期、修改日期等。 功能性注释的位置一般嵌在源程序体之中,主要描述其后的语句或程序做什么。
50,在编写程序时,开发者需注意数据说明的风格,以便使程序中的数据说明更易于理解个维护。 程序编写要作到清晰第一,效率第二。
51,当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性。
52,程序的易读性是结构话程序设计最重要的特点。
53,按结构化设计方法设计的程序具有以下特点:1,程序易于理解、使用和维护,程序员采用结构化编程方法,便于控制、降低程序的复杂性,因此便于编写程序。2,提高了编程的效率,降低软件开发的成本。3,结构化程序设计选用的每个控制结构只允许有一个入口和一个出口,
54,模块是指执行某一个特定任务(也可以是实现某一特定的抽象数据类型)的数据结构和程序代码。一个模块有他的外部特征和内部特征。外部特征包括模块的接口和模块的功能;内部特征包括模块的局部数据和实现该模块的程序代码。调用一个模块时只需知道它的外部特征即可。
热心网友
时间:2023-01-27 04:21
如果是想通过计算机等级考试 就买一本全国计算机等级考试二级试题认真做就可以了 当然也要加强上机实践。
怎样才能学好C语言
第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。
第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的indows, Unix, Linux, Mac, os/2,没有一个里外的,如果你不懂C语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。
第三:很多新型的语言都是衍生自C语言,C++,Java,C#,J#,perl...哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。
那么究竟怎样学习C语言呢?
1:工欲善其事,必先利其器
这里介绍几个学习C语言必备的东东:
一个开发环境,例如turbo C 2.0,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C++,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。
一本学习教程,现在C语言教材多如牛毛,但推荐大家使用《C语言程序设计》谭浩强主编 第二版 清华大学出版社,此书编写的很适合初学者,并且内容也很精到。
除此以外,现在有很多辅助学习的软件,毕竟现在是Window时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。我向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,还有题库测试环境,据说有好几千题,甚至还有一个windows下的trubo C,初学者甚至不用装其它的编译器,就可以练习编程了,非常适合初学者。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。
2:葵花宝典
学习计算机语言最好的方法是什么?答曰:读程序。
没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止,祝贺你,你快入门了。
3:登峰造极
写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。
是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些io函数罢了。那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三种方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的《数据结构》清华大学出版社,希望每一个想成为程序设计高手的人研读此书。
编译软件,对于新手来说VC++6.0简单易操作
下载地址
http://hi.baidu.com/%D3%A5%DE%C4/blog/item/2a8d0df7180b9b4c342acc5e.html
谭浩强《C程序设计》上机试题可以下载
http://hi.baidu.com/%D3%A5%DE%C4/blog/item/1b8c968f649f4e639e2fb49c.html
其他C语言资料参考书,如趣味一百例
http://hi.baidu.com/%D3%A5%DE%C4/blog/item/019bcafefade81c2b58f3159.html
基础C视频教程
http://hi.baidu.com/%D3%A5%DE%C4/blog/item/31e3eac0cc57f3d738db495f.html
郝斌C语言视频
http://hi.baidu.com/%D3%A5%DE%C4/blog/item/df9b5a26c00bc1b84623e894.html
热心网友
时间:2023-01-27 05:56
你好 ,你可以选择在我们这里报名。只考笔试 不用考上机。通过率百分之百。你可以了解一下
热心网友
时间:2023-01-27 07:47
不用,直接拿着小册子背就行了,然后就是做题,做多了就基本涵盖了所有题目了。