当前位置:首页 » 编程语言 » 二级c语言复习

二级c语言复习

发布时间: 2023-05-31 01:31:31

‘壹’ c语言2级复习题,哪位高手帮帮忙

1.main()(主函数薯余陆数顷)
2.不固定
3.mani() main()
4.函数名 参数
5.__ __
6.256 分多行书写
7.// 或 /毁贺* */
8. .c .cpp
9. .obj
10. .exe
11. 输出

1. A 2.A 3.A 4.B 5.A
呵呵

‘贰’ 计算机二级c语言知识点

2017计算机二级c语言知识点精选

计算机二级C语言考试内容是什么?为帮助大家更好备考3月计算机考试,我为大家分享计算机C语言二级考试知识点如下:

第一章 数据结构与算法

1.1 算法

1.算法的基本概念

(1) 概念:算法是指一系列解决问题的清晰指令。

(2) 4个基本特征:可行性、确定性、有穷性、拥有足够的情报。

(3) 两种基本要素:对数据对象的运算和操作、算法的控制结构(运算和操作时问的顺序)。

(4) 设计的基本方法:列举法、归纳法、递推法、递归法、减半递推技术和回溯法。

2.算法的复杂度

(1) 算法的时间复杂度:执行算法所需要的计算工作量。

(2) 算法的空间复杂度:执行算法所需的内存空间。

1.2 数据结构的基本概念

数据结构指相互有关联的数据元素的集合,即数据的组织形式。其中逻辑结构反映数据元素之间逻辑关系;存储结构为数据的逻辑结构在计算机存储空间中的存放形式,有顺序存储、链式存储、索引存储和散列存储4种方式。

数据结构按各元素之间前后件关系的复杂度可划分为:

(1) 线性结构:有且只有一个根节点,且每个节点最多有一个直接前驱和一个直接后继的非空数据结构。

(2) 非线性结构:不满足线性结构的数据结构。

1.3 线性表及其顺序存储结构

1.线性表的基本概念

线性结构又称线性表,线性表是最简单也是最常用的一种数据结构。

2.线性表的顺序存储结构

元素所占的存储空间必须连续。

元素在存储空间的位置是按逻辑顺序存放的。

3.线性表的插入运算

在第i个元素之前插入一个新元素的步骤如下:

步骤一:把原来第n个节点至第i个节点依次往后移一个元素位置。

步骤二:把新节点放在第i个位置上。

步骤三:修正线性表的节点个数。

在最坏情况下,即插入元素在第一个位置,线性表中所有元素均需要移动。

4.线性表的删除运算

删除第i个位置的元素的步骤如下:

步骤一:把第i个元素之后不包括第i个元素的n-i个元素依次前移一个位置;

步骤二:修正线性表的结点个数。

1.4 栈和队列

1.栈及其基本运算

(1) 基本概念:栈是一种特殊的线性表,其插入运算与删除运算都只在线性表的一端进行,也被称为“先进后出”表或“后进先出”表。

栈顶:允许插入与删除的一端。

栈底:栈顶的另一端。

空栈:栈中没有元素的栈。

(2) 特点。

栈顶元素是最后插入和最早被删除的元素。

栈底元素是最早插入和最后被删除的元素。

栈有记忆作用。

在顺序存储结构下,栈的插入和删除运算不需移动表中其他数据元素。

栈顶指针top动态反映了栈中元素的变化情况

(3) 顺序存储和运算:入栈运算、退栈运算和读栈顶运算。

2.队列及其基本运算

(1) 基本概念:队列是指允许在一端进行插入,在另一端进行删除的线性表,又称“先进先出”的线性表。

队尾:允许插入的一端,用尾指针指向队尾元素。

排头:允许删除的一端,用头指针指向头元素的前一位置。

(2) 循环队列及其运算。

所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。

入队运算是指在循环队列的队尾加入一个新元素。

当循环队列非空(s=1)且队尾指针等于队头指针时,说明循环队列已满,不能进行人队运算,这种情况称为“上溢”。

退队运算是指在循环队列的队头位置退出一个元素并赋给指定的变量。首先将队头指针进一,然后将排头指针指向的元素赋给指定的变量。当循环队列为空(s=0)时,不能进行退队运算,这种情况称为“下溢”。

1.5 线性链表

在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。

在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。

1.6 树和二叉树

1.树的基本概念

树是简单的非线性结构,树中有且仅有一个没有前驱的节点称为“根”,其余节点分成m个互不相交的有限集合T1,T2,…,T}mm,每个集合又是一棵树,称T1,T2,…,T}mm为根结点的子树。

父节点:每一个节点只有一个前件,无前件的节点只有一个,称为树的根结点(简称树的根)。

子节点:每~个节点可以后多个后件,无后件的节点称为叶子节点。

树的度:所有节点最大的度。

树的深度:树的最大层次。

2.二叉树的定义及其基本性质

(1) 二叉树的定义:二叉树是一种非线性结构,是有限的节点集合,该集合为空(空二叉树)或由一个根节点及两棵互不相交的左右二叉子树组成。可分为满二叉树和完全二叉树,其中满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树。二叉树具有如下两个特点:

二叉树可为空,空的二叉树无节点,非空二叉树有且只有一个根结点;

每个节点最多可有两棵子树,称为左子树和右子树。

(2) 二叉树的基本性质。

性质1:在二叉树的第k层上至多有2k-1个结点(k≥1)。

性质2:深度为m的二叉树至多有2m-1个结点。

性质3:对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。

性质4:具有n个结点的完全二叉树的深度至少为[log2n]+1,其中[log2n]表示log2n的整数部分。

3.满二叉树与完全二叉树

(1) 满二叉树:满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。满二叉树在其第i层上有2i-1个结点。

从上面满二叉树定义可知,二叉树的每一层上的结点数必须都达到最大,否则就不是满二叉树。深度为m的满二叉树有2m-1个结点。

(2) 完全二叉树:完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。

如果—棵具有n个结点的深度为k的二叉树,它的每—个结点都与深度为k的满二叉树中编号为1~n的结点——对应。

3.二叉树的存储结构

二叉树通常采用链式存储结构,存储节点由数据域和指针域(左指针域和右指针域)组成。二叉树的链式存储结构也称二叉链表,对满二叉树和完全二叉树可按层次进行顺序存储。

4.二叉树的遍历

二叉树的遍历是指不重复地访问二叉树中所有节点,主要指非空二叉树,对于空二叉树则结束返回。二叉树的遍历包括前序遍历、中序遍历和后序遍历。

(1) 前序遍历。

前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。前序遍历描述为:若二叉树为空,则执行空操作;否则①访问根结点;②前序遍历左子树;③前序遍历右子树。

(2) 中序遍历。

中序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。中序遍历描述为:若二叉树为空,则执行空操作;否则①中序遍历左子树;②访问根结点;③中序遍历右子树。

(3) 后序遍历。

后序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。后序遍历描述为:若二叉树为空,则执行空操作;否则①后序遍历左子树;②后序遍历右子树;③访问根结点。

1.7 查找技术

(1) 顺序查找:在线性表中查找指定的元素。

(2) 最坏情况下,最后一个元素才是要找的元素,则需要与线性表中所有元素比较,比较次数为n。

(3) 二分查找:二分查找也称折半查找,它是一种高效率的查找方法。但二分查找有条件限制,它要求表必须用顺序存储结构,且表中元素必须按关键字有序(升序或降序均可)排列。对长度为n的有序线性表,在最坏情况下,二分查找法只需比较log2n次。

1.8 排序技术

(1) 交换类排序法。

冒泡排序:通过对待排序序列从后向前或从前向后,依次比较相邻元素的排序码,若发现逆序则交换,使较大的元素逐渐从前部移向后部或较小的元素逐渐从后部移向前部,直到所有元素有序为止。在最坏情况下,对长度为n的线性表排序,冒泡排序需要比较的次数为n(n-1)/2。

快速排序:是迄今为止所有内排序算法中速度最快的一种。它的基本思想是:任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元索的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。最坏情况下,即每次划分,只得到一个序列,时间效率为O(n2)。

(2) 插人类排序法。

简单插入排序法:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。在最坏情况下,即初始排序序列是逆序的情况下,比较次数为n(n-1)/2,移动次数为n(n-1)/2。

希尔排序法:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序。待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。

(3) 选择类排序法。

简单选择排序法:扫描整个线性表。从中选出最小的元素。将它交换到表的最前面;然后对剩下的子表采用同样的方法,直到子表空为止。最坏情况下需要比较n(n-1)/2次。

堆排序的方法:首先将一个无序序列建成堆;然后将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。不考虑已经换到最后的那个元素,只考虑前n-1个元素构成的子序列,将该子序列调整为堆。反复做步骤②,直到剩下的子序列空为止。在最坏情况下,堆排序法需要比较的次数为0(nlog2n)

第二章 程序设计基础

2.1 程序设计方法与风格

(1)设计方法:指设计、编制、调试程序的方法和过程,主要有结构化程序设计方法、软件工程方法和面向对象方法。

(2)设计风格:良好的'设计风格要注重源程序文档化、数据说明方法、语句的结构和输入输出。

2.2 结构化程序设计

1.结构化程序设计的原则

结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。。

(1)自顶向下:即先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。

(2)逐步求精:对复杂问题,应设计一些子目标做过渡,逐步细化。

(3)模块化:把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块;

(4)限制使用GOT0语句。

2.结构化程序的基本结构与特点

(1)顺序结构:自始至终严格按照程序中语句的先后顺序逐条执行,是最基本、最普遍的结构形式。

(2)选择结构:又称为分支结构,包括简单选择和多分支选择结构。

(3)重复结构:又称为循环结构,根据给定的条件,判断是否需要重复执行某一相同的或类似的程序段。

结构化程序设计中,应注意事项:

(1)使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑。

(2)选用的控制结构只准许有一个人口和一个出口。

(3)程序语言组成容易识别的块,每块只有一个入口和一个出口。

(4)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现。

(5)语言中所没有的控制结构,应该采用前后一致的方法来模拟。

(6)尽量避免GOT0语句的使用。

2.3 面向对象的程序设计

面向对象方法的本质是主张从客观世界固有的事物出发来构造系统,强调建立的系统能映射问题域。

对象:用来表示客观世界中任何实体,可以是任何有明确边界和意义的东西。

类:具有共同属性、共同方法的对象的集合。

实例:一个具体对象就是其对应分类的一个实例。

消息:实例间传递的信息,它统一了数据流和控制流。

继承:使用已有的类定义作为基础建立新类的定义技术。

多态性:指对象根据所接受的信息而作出动作,同样的信息被不同的对象接收时有不同行动的现象。面向对象程序设计的优点:与人类习惯的思维方法一致、稳定性好、可重用性好、易于开发大型软件产品、可维护性好。

第三章 软件工程基础

3.1 软件工程基本概念

1.软件的定义与特点

(1)定义:软件是指与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档和数据。

(2)特点。

是逻辑实体,有抽象性。

生产没有明显的制作过程。

运行使用期间不存在磨损、老化问题。

开发、运行对计算机系统有依赖性,受计算机系统的限制,导致了软件移植问题。

复杂性较高,成本昂贵。

开发涉及诸多社会因素。

2.软件的分类

软件可分应用软件、系统软件和支撑软件3类。

(1)应用软件是特定应用领域内专用的软件。

(2)系统软件居于计算机系统中最靠近硬件的一层,是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。

(3)支撑软件介于系统软件和应用软件之间,是支援其它软件的开发与维护的软件。

3.软件危机与软件工程

软件危机指在计算机软件的开发和维护中遇到的一系列严重问题。软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序,包括软件开发技术和软件工程管理。

4.软件生命周期

软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。

在国家标准中,软件生命周期划分为8个阶段①软件定义期:包括问题定义、可行性研究和需求分析3个阶段。②软件开发期:包括概要设计、详细设计、实现和测试4个阶段。③运行维护期:即运行维护阶段。

5.软件工程的原则

软件工程的原则包括:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。

3.2 结构化分析方法

需求分析的任务是发现需求、求精、建模和定义需求的过程,可概括为:需求获取、需求分析、编写需求规格说明书和需求评审。

1.常用的分析方法

结构化分析方法:其实质着眼于数据流,自顶向下,逐层分解,建立系统的处理流程。

面向对象分析方法。

2.结构化分析常用工具

结构化分析常用工具包括数据流图、数字字典(核心方法)、判断树和判断表。

(1)数据流图:即DFD图,以图形的方式描绘数据在系统中流动和处理的过程,它只反映系统必须完成的逻辑功能。是一种功能模型。

符号名称作用:

箭头代表数据流,沿箭头方向传送数据的通道

圆或椭圆代表加工,输入数据经加工变换产生输出

双杠代表存储文件,表示处理过程中存放各种数据文件

方框代表源和潭,表示系统和环境的接口

(2)数据字典:结构化分析方法的核心。数据字典是对所有与系统相关的数据元素的一个有组织的列表。以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。

(3)判定树:使用判定树进行描述时,应先从问题定义的文字描述中分清判定的条件和判定的结论,根据描述材料中的连接词找出判定条件之问的从属关系、并列关系、选择关系,根据它们构造判定树。

(4)判定表:与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合引发的,使用判定表比较适宜。

3.软件需求规格说明书

软件需求规格说明书是需求分析阶段的最后成果,是软件开发的重要文档之一。

(1)软件需求规格说明书的作用:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。

(2)软件需求规格说明书的内容:①概述;②数据描述;③功能描述;④性能描述;⑤参考文献;⑥附录。

(3)软件需求规格说明书的特点:①正确性;②无歧义性;③完整性;④可验证性;⑤一致性;⑥可理解性;⑦可修改性;⑧可追踪性。

3.3 结构化设计方法

1.软件设计的基本概念和方法

软件没计是一个把软件需求转换为软件表示的过程。

(1)基本原理:抽象、模块化、信息隐藏、模块独立性(度量标准:耦合性和内聚性,高耦合、低内聚)。

(2)基本思想:将软件设计成由相对独立、单一功能的模块组成的结构。

2.概要设计

(1)4个任务:设计软件系统结构、数据结构及数据库设计、编写概要设计文档、概要设计文档评审。

(2)面向数据流的设计方法:数据流图的信息分为交换流和事物流,结构形式有交换型和事务型。

3.详细设计的工具

详细设计的工具包括:

图形工具:程序流程图、N-S、PAD、HIPO。

表格工具:判定表。

语言工具:PDL(伪码)。

3.4 软件测试

1.目的

为了发现错误而执行程序的过程。

2.准则

所有测试应追溯到用户需求。

严格执行测试计划,排除测试的随意性。

充分注意测试中的群集现象。

程序员应避免检查自己的程序。

穷举测试不可能。

妥善保存设计计划、测试用例、出错统计和最终分析报告。

3.软件测试技术和方法

软件测试的方法按是否需要执行被测软件的角度,可分为静态测试和动态测试,按功能分为白盒测试和黑盒测试。

(1)白盒测试:根据程序的内部逻辑设计测试用例,主要方法有逻辑覆盖测试、基本路径测试等。

(2)黑盒测试:根据规格说明书的功能来设计测试用例,主要诊断方法有等价划分法、边界值分析法、错误推测法、因果图法等,主要用于软件确认测试。

4.软件测试的实施

软件测试是保证软件质量的重要手段,软件测试是一个过程,其测试流程是该过程规定的程序,目的是使软件测试工作系统化。

软件测试过程分4个步骤,即单元测试、集成测试、验收测试和系统测试。

单元测试是对软件设计的最小单位——模块(程序单元)进行正确性检验测试。

单元测试的目的是发现各模块内部可能存在的各种错误。

单元测试的依据是详细的设计说明书和源程序。

单元测试的技术可以采用静态分析和动态测试。

3.5 程序的调试

(1)任务:诊断和改正程序中的错误。

(2)调试方法:强行排错法、回溯法和原因排除法。

第四章 数据库设计基础

4.1 数据库系统的基本概念

(1) 数据(Data):描述事物的符号记录。

(2) 数据库(DataBase):长期存储在计算机内的、有组织的、可共享的数据集合。

(3) 数据库管理系统的概念

数据库管理系统(DataBase Management System,DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、数据控制及保护和数据服务等。为完成以上6个功能,DBMS提供了相应的数据语言;数据定义语言(负责数据的模式定义与数据的物理存取构建);数据操纵语言(负责数据的操纵);数据控制语言(负责数据完整性、安全性的定义)。数据库管理系统是数据库系统的核心,它位于用户和操作系统之间,从软件分类的角度来说,属于系统软件。

(4) 数据库技术发展经历了3个阶段。

人工管理阶段→文件系统阶段→数据库系统阶段

(5) 数据库系统的特点:集成性、高共享性、低冗余性、数据独立性、数据统一管理与控制等。

(6) 数据库系统的内部机构体系:三级模式(概念模式、内模式、外模式)和二级映射(外模式/概念模式的映射、概念模式/内模式的映射)构成了数据库系统内部的抽象结构体系。

4.2 数据模型

数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,描述的内容有数据结构、数据操作和数据约束。有3个层次:概念数据模型、逻辑数据模型和物理数据模型。

(1) E—R模型:提供了表示实体、属性和联系的方法。实体间联系有“一对一”、“一对多”和“多对多”。

(2) E-R模型用E-R图来表示。

(3) 层次模型:利用树形结构表示实体及其之问联系。其中节点是实体,树枝是联系,从上到下是一对多关系。

(4) 网状模型:用网状结构表示实体及其之间联系。是层次模型的扩展。网络模型以记录型为节点,反映现实中较为复杂的事物联系。

(5) 关系模型:采用二维表(由表框架和表的元组组成)来表示,可进行数据查询、增加、删除及修改操作。关系模型允许定义“实体完整性”、“参照完整性”和“用户定义的完整性”三种约束。

键(码):二维表中唯一能标识元组的最小属性集。

候选键(候选码):二维表中可能有的多个键。

主键:被选取的一个使用的键。

4.3 关系代数

(1) 关系代数的基本运算:投影、选择、笛卡尔积。

(2) 关系代数的扩充运算:交、连接与自然连接、除。

4.4 数据库设计与管理

1.数据库设计概述

基本思想:过程迭代和逐步求精。

方法:面向数据的方法和面向过程的方法。

设计过程:需求分析→概念设计→逻辑设计→物理设计→编码→测试→运行→进→步修改。

2.数据库设计的需求分析

需求收集和分析是数据库设计的第一阶段,常用结构化分析方法(自顶向下、逐层分解)和面向对象的方法,主要工作有绘制数据流程图、数据分析、功能分析、确定功能处理模块和数据间关系。

数据字典:包括数据项、数据结构、数据流、数据存储和处理过程,是对系统中数据的详尽描述。

3.数据库的设计

(1) 数据库的概念设计:分析数据问内在的语义关联,以建立数据的抽象模型。

(2) 数据库的逻辑设计:从E-R图向关系模型转换,逻辑模式规范化,关系视图设计可以根据用户需求随时创建。实体转换为元组,属性转换为关系的属性,联系转换为关系。

(3) 数据库的物理设计:是数据在物理设备上的存储结构与存取方法,目的是对数据库内部物理结构作出调整并选择合理的存取路径,以提高速度和存储空间。

4.数据库管理

数据库管理包括数据库的建立、数据库的调整、数据库的重组、数据库的安全性与完整性控制、数据库故障恢复和数据库的监控。

;

‘叁’ 计算机二级C语言考试技巧

全国计算机等级考试二级C语言上机考试具有三种题型:程序填空、程序修改和程序设计,其中程序填空30分没拍,程序修改30分,程序设计40分。[1]从以往的机试的情况来看,许多考生在程序设计题目上失分比较严重,而程序设计题占总分值的40%,一旦答错,如果程序填空和程序修改又不能取得满分的话,就不能通过上机考试。
2007年9月,教育部考试中心对现有的全国计算机等级考试大纲进行了改革,二级C语言上机考试时间由60分钟增加到了90分钟,编程环境由以前的TC2.0改为VC++6.0。[2]本文根据对近几年来二级C语言上机考试中的程序设计题进行归类总结,提出相应的策略,并对考生应对2007新大纲以后的C语言上机环境给出一些建议。
2 对以往考试的分析
历年的全国计算机等级考试中二级C语言上机考试程序设计题目全部出自于由南开大学出版社编写南开100题,每次考试教育部考试中心会对题库做相应的改动,增加一些新的题型或题目,考试中,考生随机抽取一套进行测试。笔者对2005年4月至2007年9月2004版新大纲以后的6次手慧考试中的程序设计题目进行了总结,将这些题目一共分成了6大类,对每种类型的题目进行了分析。
2.1 对一维数组和字符串的操作
该类型的题目在以往的机试中所占比例最大,为40%,考生应对该知识点做全面的复习和掌握。一维数组可以分为数值型和字符型,其中数值型数组的数据类型为整型和实型,字符型数组的数据类型为字符型,我们通常会把字符型数组叫做字符串,但是应该注意字符型数组与字符串之间是存在区别的,也就是’\0’结束标志问题。
在复习该部分的时候,考生应该掌握以下两个问题:
(1)对一维数组的操作
对一维数组进行操作的时候,不可避免的要访问相关的数组元素,毕察答在C语言中访问数组元素一般采取单层循环的方法进行遍历,假设数组长度为n,数组下标是在0到(n-1)之间的,考生应该牢固掌握在一维数组中求最大值、最小值,移动元素,查找特定值,存储数组元素的方法。
(2)对字符串的操作
该类问题是每次考试的重点和难点,特别是将字符串同指针结合起来以后,难度就更大了。考生在解决此类问题是应特别注意字符串的结束标志’\0’,它不仅仅用来作为字符串的结束标志,而且在对字符串进行操作的时候,它也是循环的结束标志。考生在复习该部分的时候,应该注意这样的几个基本问题:大小字母转换、奇偶数判别、删除或添加指定的字符和字符的移动。此外,考生应该牢固掌握指针的特性及字符串操作函数的使用和实现方法,特别是字符串连接函数与求子串函数,在以往的考试中多次要求考生自己编写,考生应对该知识点做重点掌握。
2.2 数值计算
该类型的题目在历年的机试中占22%,考查的机率也非常高。该类题目一般给定一个数列计算公式,然后要求考生编写一个函数类实现求数列的前n项的值、累加和或者积。在解决该类的问题,首先要找到给定数列的变化规律,然后根据其变化规律来编写一个单层或者双层的循环来求其相应的值。在编写程序的过程中,往往还会用到一些数学函数,如:sqrt()、fabs()、pow()等,考生应该牢固掌握math.h中的一些常用数学函数的功能和使用方法。另外,还应该注意数据类型之间的区别,特别是float和int类型,不同的数据类型产生的运算结果也是不一样的。
2.3 对结构体的操作
该部分对非计算机专业的学生来说是一个难点,因为结构体在《数据结构》这门课程中应用最为广泛,但考生忽视对该知识点的复习,但在以往的机试中,有17%的题目是属于该类型。考生在复习这部分的时候,首先应注意结构体成员的两种不同的引用方法:结构体变量和指向结构体的指针,也就是结构体成员运算符’.’和指向运算符’->’,在编程的过程中,往往会涉及到结构体数组,其实这类数组除了数据类型是结构体以外,其它的特性和普通数组是一样的,结构体除了定义、赋值和初始化以外,它的其它操作和普通变量也是一样的,包括在结构体数组(记录)中进行查找、删除、求最大最小值等操作,我们应该用对待普通变量的方法来解决结构体的问题,这样的话,难度就可以大幅度的降低。
2.4 对二维数组的操作
该类问题在历年的机试中占16%,考生应对二维数组的数组元素的遍历方法、存储方式、矩阵转换等问题做重点掌握。在C语言中,访问二维数组的数组元素一般采用双层循环的方法实现,因为二维数组具有两个下标:行下标与列下标;二维数组可以按行或者按列转化成一维数组进行存储;对二维数组进行行列转换的时候,要将行下标和列下标进行互换。考生还应该掌握上三角矩阵、下三角矩阵的特性,在考试中,该知识点也有所涉及。
2.5 数制转换
该部分在以往的机试中占11%,包括两类问题:一是整数合并,二是类型转换。在复习该部分时,考生应该注意C语言中int型、long型、float型和double型数据所占的存储空间的大小和精度,注意’%’(模)运算和’/’(除法)运算的特点,特别应该灵活的使用模运算与除法运算求数据相应位数上的数值。掌握强制类型转换的方法以及按规定的位数保留小数的方法。
2.6 素数
该部分在历年的机试中占6%,考生应该牢固掌握素数的基本概念和判断素数的方法。特别需要考生注意的是整数1不是素数,所以在判断素数的时候,应该从2开始,到(n-1)结束,能够除尽的不是素数,不能除尽的是素数。判断素数问题是C语言中的一个基本算法,不仅会在程序设计中会考到,而且往往在程序填空和程序改错中也会有所涉及,因此,考生应对该知识点认真复习。
3 程序设计中应注意的问题
3.1 熟悉编程环境
根据2007年9月教育部考试中心颁布的新大纲,二级C语言的编程环境由TC2.0改为VC++6.0,考生应该熟练掌握VC++6.0的使用方法,虽然VC支持鼠标操作,但是考生还是应该掌握几个常用快捷方式来提高编程效率。特别要注意在对程序进行改动以后要保存,要进行编译连接生成可执行(.exe)文件。
3.2 养成良好的程序设计风格
二级C语言机试中的程序设计题,一般来说程序都比较简短,源代码一般不超过5行,在题目指定的函数内编写程序。考生在答题的时候尽量采用易于理解而且比较简单的代码来解决问题,注意不要改动函数的参数,语句的界符“{}”也应该具有层次性的缩进,必要时,使用一定的注释来帮助自己理解程序。
3.3 谨慎使用指针
指针是C语言的精华,也是机试考查的重点内容,指针的使用非常灵活,在使用的指针的时候一定要注意对其进行初始化,所谓初始化也就是给指针一个初值,没有初值的指针是很危险的,除了一定得不到正确答案外,如果指针越界,容易引起死机。如果死循环带来的死机是“假死”,大部分可以用“Ctrl+Break”来恢复,但指针越界引起的死机却是真死,请考生一定要牢记。[3]
3.4 熟练掌握循环结构
循环结构的程序是程序设计中涉及最多的知识点,根据以上的分析,我们可以看出几乎每一类题目都会涉及到使用循环来解决问题,因此考生应该掌握循环结构的特征和使用方法,以达到能够熟练使用的目标。应该引起注意的是,在编制循环结构程序的时候考生应该尽量使用“for”循环和“while”循环,避免使用“do……while”循环和“goto”语句,因为“for”循环和“while”编写出来的循环程序易于理解,不容易出错。
3.5 沉着应战,认真细心
二级C语言上机考试时间有限,虽然从以前的60分钟改为了90分钟,但是相对于其它语种的上机考试来说,二级C语言的上机时间还是非常紧迫的。考生在答题的过程中应该保持一个良好的心态和平静的心情,遇到问题的时候不能慌乱,最好能够在机试时带一张草稿纸和一支笔,在编程之前先画出程序的流程图来明确解题思路。在遇到程序错误时一定要根据错误代码检查相应位置,检查的过程中应该认真仔细,确保能够解决问题。
4 结束语
二级C语言上机考试是各语种级别中考生最多的,但每年的通过率都不高,主要的原因是考生的重视程度不够,上机操作的次数过少,很多应该掌握的却没有掌握,缺乏考试经验等。希望每位参加考试的考生能认真对待,积极备考。相信本文能够助参加二级C语言上机考试的考生一臂之力。

‘肆’ 计算机二级考试C语言知识点归纳

2017年计算机二级考试C语言知识点归纳

计算颂悄机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。下面是2017年计算机二级考试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位系统。碰到这种情况,不要去管,一样做题。

掌握整型一般是两个字节, 字符型是一个字节,

双精度一般是4个字节就可以了。

5)转义字符的考查:

在程序中 int a = 0x6d,是把一个十六进制的数给

变量a 注意这里的0x必须存在。

在程序中 int a = 06d, 是一个八进制的形式。

在转义字符中,’x6d’才是合法的,0不能写,

并且x是小写。

‘141’是合法的。

‘108’是非法的,因为不可卖樱笑以出现8。

转义字符意义 ASCII码值(十进制)

a 响铃(BEL) 007

 退格(BS) 008

f 换页(FF) 012

换行(LF) 010

回车(CR) 013

水平制表(HT) 009

v 垂直制表(VT) 011

\ 反斜杠 092

? 问号字符 063

' 单引号字符 039

" 双引号字符 034

空字符(NULL) 000

ddd 任意字符三位八进制

xhh 任意字符二位十六进制

6)算术运算符号的优先级别:

同级别的有的是从左到右,有的是从右到左。

7)强制类型转换:

一定是(int)a 不是 int(a),注意类型上

一定有括号的。

注意(int)(a+b)和(int)a+b 的区别。

前是把a+b转型,后是把a转型再加b。

8)表达式的考查:

是表达式就一定有数值。

赋值表达式:表达式数值是最左边的数值,

a=b=5;该表达式为5,常量不可以赋值。

自加、自减表达式:假设a=5,++a(是为6),

a++(为5);

运行的机理:++a 是先把变量的数值加上1,

然后把得到的数值放到变量a中,然后再用这

个++a表达式的数值为6,而a++是先用该表达

式的数值为5,然后再把a的数值加上1为6,

再放到变量a中。 进行了++a和a++后在下面的

程序中再用到a的话都是变量a中的6了。

考试口诀:++在前先加后用,++在后先用后加。

逗号表达式:优先级别最低 ;表达式的数值

逗号最右边的那个表达式的数值。

(2,3,4)的表达式的数值就是4。

9)位运算的考查:

会有一到二题考试题目。

总的处理方法:几乎所有的'位运算的题目

都要按这个流程来处理(先把十进制变成

二进制再变成十进制)。

例1:char a = 6, b;

b = a<<2; 这种题目的计算是先要把a的十进

制6化成二进制,再做位运算。

例2:一定要记住,

例3:在没有舍去数据的时候,<<左移一位表示

乘以2;>>右移一位表示除以2。

10)018的数值是非法的,八进制是没有8的,

逢8进1。

11)%符号两边要求是整数。不是整数就错了。

12)两种取整丢小数的情况:

1、int a =1.6;

2、(int)a;

第二章

1)printf函数的格式考查:

%d对应整型;%c对应字符;%f对应单精度等等。

宽度的,左对齐等修饰。

%ld对应 long int;%lf 对应double。

2)scanf函数的格式考察:

注意该函数的第二个部分是&a 这样的地址,不是a;

Scanf(“%d%d%*d%d”,&a,&b,&c);跳过输入的

第三个数据。

3)putchar ,getchar 函数的考查:

char a = getchar() 是没有参数的,从键盘得到

你输入的一个字符给变量a。

putchar(‘y’)把字符y输出到屏幕中。

4)如何实现两个变量x ,y中数值的互换

(要求背下来)

不可以把 x=y,y=x; 要用中间变量 t=x;x=y;y=t。

5)如何实现保留三位小数,第四位四舍五入

的程序,(要求背下来)

x=(int)(x*1000+0.5)/1000.0

这个有推广的意义,注意 x = (int)x 这样是

把小数部分去掉。

第三章

特别要注意:c语言中是用非0表示逻辑真的,

用0表示逻辑假的。

1)关系表达式:

表达式的数值只能为1(表示为真),

或0(表示假)

当关系的表达是为真的时候得到1。

如 9>8这个是真的,所以表达式的数值就是1;

2)逻辑表达式:

只能为1(表示为真),或0(表示假)

a) 共有&& || ! 三种逻辑运算符号。

b) !>&&>|| 优先的级别。

c) 注意短路现象。考试比较喜欢考到。

d) 要表示 x 是比0大,比10小的方法。0

不可以的(一定记住)。是先计算0

结果为1或则0;再用0,或1与10比较得到的

总是真(为1)。所以一定要用(0

示比0大比10小。

3)if 语句

else 是与最接近的if且没有else的相组合的。

4)条件表达式:

表达式1 ?表达式2 :表达式3

注意是当非0时候是表达式2的数值,当为0是

就是表达式2的数值。

考试口诀:真前假后。

5)switch语句:

a)一定要注意有break 和没有break的差别,

没有break时候,只要有一个case匹配了,剩下

的都要执行,有break则是直接跳出了swich语句。

b)switch只可以和break一起用,不可以

和continue用。

第四章

1)三种循环结构:

a)for(); while(); do- while()三种。

b)for循环当中必须是两个分号,千万不要忘记。

c)写程序的时候一定要注意,循环一定要有结束

的条件,否则成了死循环。

d) do-while()循环的最后一个while();的分号一定

不能够丢。(当心上机改错)

2) break 和 continue的差别

记忆方法:

break:是打破的意思,(破了整个循环)所以

看见break就退出真个一层循环。

continue:是继续的意思,(继续循环运算),

但是要结束本次循环,就是循环体内剩下的语句

不再执行,跳到循环开始,然后判断循环条件,

进行新一轮的循环。

3)嵌套循环

就是有循环里面还有循环,这种比较复杂,要一层

一层一步一步耐心的计算,一般记住两层是处理

二维数组的。

4) while((c=getchar())!=’ ’)和

while(c=getchar() !=’ ’)的差别

先看a = 3 != 2 和(a=3)!=2 的区别:

(!=号的级别高于=号 所以第一个先计算 3!=2)

第一个a的数值是得到的1;第二个a的数值是3。

考试注意点: 括号在这里的重要性。

第五章

函数:是具有一定功能的一个程序块;

1) 函数的参数,返回数值(示意图):

main()

{

int a = 5,b=6,c;

c = add(a,b);

printf(“%d”,c);

}

调用函数

a,b是实参

整个函数得到一个数值就是

Add函数的返回数值。

int add ( int x,int y)

{

int z;

z=x+y;

return z;

}

被调用函数

x,y是形式参数

函数返回数值是整型

z就是这个add函数计算后得到的结果,就是函数

返回给主程序的返回数值。

程序是在从上往下顺序执行,当碰到了函数add后,

把a,b的数值穿给调用函数,程序暂时中断等待返回数值。

当得到了返回数值后,再顺序的往下执行

2)一定要注意参数之间的传递

实参和形参之间 传数值,和传地址的差别。(考试的重点)

传数值的话,形参的变化不会改变实参的变化。

传地址的话,形参的变化就会有可能改变实参的变化。

3)函数声明的考查:

一定要有:函数名,函数的返回类型,函数的参数类型。

不一定要有:形参的名称。

第六章

指针变量的本质是用来放地址,而一般的变量是放数值的。

int *p 中 *p和p的差别:

*p可以当做变量来用;*的作用是取后面地址p里面的数值

p是当作地址来使用。

*p++ 和 (*p)++的之间的差别:改错题目中很重要

*p++是 地址会变化。

(*p)++ 是数值会要变化。

三名主义:(考试的重点)

数组名:表示第一个元素的地址。数组名不可以自加,

他是地址常量名。(考了很多次)

函数名:表示该函数的入口地址。

字符串常量名:表示第一个字符的地址。

第七章

1一维数组的重要概念:

对a[10]这个数组的讨论。

1、a表示数组名,是第一个元素的地址,也就是

元素a[10]的地址。

2、a是地址常量,所以只要出现a++,或者

是a=a+2赋值的都是错误的。

3、a是一维数组名,所以它是列指针,也就是

说a+1是跳一列。

对a[3][3]的讨论。

1、a表示数组名,是第一个元素的地址,也就是

元素a[10]的地址。

2、a是地址常量,所以只要出现a++,或者

是a=a+2赋值的都是错误的。

3、a是二维数组名,所以它是行指针,也就

是说a+1是跳一行。

4、a[0]、a[1]、a[2]也都是地址常量,不可以对

它进行赋值操作,同时它们都是列指针,a[0]+1,

a[1]+1,a[2]+1都是跳一列。

5、注意a和a[0] 、a[1]、a[2]是不同的,它们的

基类型是不同的。前者是一行元素,后三者是一列元素。

二维数组做题目的技巧:

如果有a[3][3]={1,2,3,4,5,6,7,8,9}这样的题目。

步骤一:把他们写成:

第一列第二列第三列

a[0]à 1 2 3 ->第一行

a[1]à 4 5 6—>第二行

a[2]à 7 8 9->第三行

步骤二:这样作题目间很简单:

*(a[0]+1)我们就知道是第一行的第一个元素往后

面跳一列,那么这里就是a[0][1]元素,所以是1。

*(a[1]+2)我们就知道是第二行的第一个元素往后面

跳二列。那么这里就是a[1][2]元素,所以是6。

一定记住:只要是二维数组的题目,一定是写成如

上的格式,再去做题目,这样会比较简单。

数组的初始化,一维和二维的,一维可以不写,

二维第二个一定要写

int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。

但int a[4][]={2,3,4}非法。

二维数组中的行指针

int a[1][2];

其中a现在就是一个行指针,a+1跳一行数组元素。

搭配(*)p[2]指针

a[0],a[1]现在就是一个列指针。a[0]+1 跳一个数组

元素。搭配*p[2]指针数组使用

还有记住脱衣服法则:

a[2] 变成 *(a+2) a[2][3]变成 *(a+2)[3]再

可以变成 *(*(a+2)+3)

;

‘伍’ 计算机二级C语言考试要怎么复习

1、理论考试一共60分。
(1)计算机基础题20分,主要为大学计算机信息技术这门课所学计算机基础知识,全部为单选题,每题1分。
(2)C语言知识题40分。单选题10分(每题1分),一般考的都是基础知识;填空题30分,每空1分,其中5分为基础知识填空,25分为语言运用填空(比如:递归、排序、二维数组、单链表等知识点读程序填写题)。
2、上机考试一共40分,分两道题。
(1)改错题(18分):一般为4个错误,包括语法错误(如数组的声明与初始化错误、函数定义错误等)、运行错误(如缺少头文件)、逻辑错误(如==写成=号,给字符数组名赋值等)。
(2)编程题(22分):编程题一般要求编写两个函数,涉及到算法的应用(比如:排序、回文数问题等)。一般编程题考得最多的是数字处理问题,一般只能平时多积累,多上机编程与调试。
二、如何准备二级C语言考试
其实二级考试目前趋势:考点越来越广,而题目难度越来越简单。
1、重视理论考试中计算机基础知识的20分题目
该部分占总分的20%(20分),占理论考试分的33.3%(20/60分)。由于该部分知识是当年计算机一级考试题目,且都是单选题。这些分比C语言部分拿起来更容易,因此,一定要重视计算机基础知识题,复习时只要将大学计算机信息技术期末考试前老师发的题库好好做,弄懂了,争取拿到18-20分。
2、C语言理论知识准备。应有计划针对考点地做一些往年的二级考试真题。重要的考点包括:递归、二维数组、结构体、排序与查找、字符串处理、单链表、递推法、穷举法、方程求根、静态局部变量、变量作用域、宏定义与宏替换等。
3、上机考试准备。
(1)应将学校C语言课程实验中做过的程序全部弄懂,也就是会自己根据题目变化能再编写出来。
(2)要多找一些往年的真题来调试,不断体会其中错误之处的提示;往年的编程题应该找来自己编编,如果实在编不出来也没关系,就对照着答案看,看懂了,自己再关上书编写出来也可以。
(3)平时应该好好积累一些基本功能实现的小程序编写方法,这些小程序可以称为“基本动作”,而上考试编程题往往会利用2-3个这样的基本动作进行有机整合就能编写出来。这些“基本动作”包括:判断素数、判断回文数、判断水仙花数、直接选择排序、二分查找、求反序数、同一数组元素逆置、求某数的(真)因子之和、字符串中插入/删除字符或子串、单链表的建立、单链表的查找/检索、单链表的输出、单链表中插入/删除一个结点、一或二维数组找极值(最大值或最小值)、进制转换(如:十进制整数转换成二进制,八、十六进制与二进制互相转换)、求最大公约数和最小公倍数等。
(4)做改错题时,一定要利用好上机考试前那几分钟,可以好好看看改错题(注意试卷发给你后不要去看其他的,只看改错的程序),如果能找出几个错误,应该很好。此时找错误应从:函数形参与实参的对应,主函数中字符串或数组定义与初始化部分,字符串赋值、比较等处找错误。开始输入程序时,不要求快,一定要准确,不然因你自己输入造成的错误会给你后面调试程序造成很大麻烦。
(5)编程题编写的过程:先编写主函数,因为主函数比较简单,有些比如打开文件、写文件、关闭文件部分是固定的,另一按题目要求一步步写应该很容易写出主函数;其次再编程自定义函数,编写时一定要注意这样的顺序:从框架到填写每个空,这样大空填成小空,填着填着就编得差不多了。

‘陆’ 计算机二级C语言做题技巧

2017年计算机二级C语言做题技巧

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。下面是我整理的关于计算机二级C语言做题技巧,欢迎大家参考!

1. 把C++当成一门新的语言学习(和C没啥关系!真的。)

2. 看《Thinking In C++》,不要看《C++变成死相》;

3. 看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;

4. 不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;

5. 不要放过任何一个看上去很简单的我程问题——他们往往并不那么简单,或者可以引伸出很多知识点;

6. 会用Visual C++,并不说明你会C++;

7. 学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;

8. 如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;

9. 看Visual C++的书,是学不了C++语言的;

10. 浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?

11. 浮躁的人容易问:我到底该学什么;——别问,学就对了;

12. 浮躁的人容易问:XX有钱途吗;——建议你去抢银行;

13. 浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!

14. 浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行销乎;

15. 浮躁的人分两种:a)只观望而不学的.人;b)只学而不坚持的人;

16. 把时髦的技术挂在嘴边,还不如把过时的技术记在心里;

17. C++不仅仅是支持面向对象的程序设计语言;

18. 学习编程最好的方法之一就是阅读源代码;

19. 在任何时刻亏如悉都不要认为自己手中的书已经足够了;

20. 请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;

21. 看得懂的书,请仔细看;看不懂的书,请硬着头皮看;

22. 别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;

23. 请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;

24. 不橡销要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;

25. 和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;

26. 请看《程序设计实践》,并严格的按照其要求去做;

27. 不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;

28. C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;

29. 请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;

30. 读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;

31. 学习编程的秘诀是:编程,编程,再编程;

32. 请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》

《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;

33. 记住:面向对象技术不只是C++专有的;

34. 请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;

35. 把在书中看到的有意义的例子扩充;

36. 请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;

37. 经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;

38. 不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;

39. C++语言和C++的集成开发环境要同时学习和掌握;

40. 既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;

41. 就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;

42. 当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);

43. 别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;

44. 决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;(勿以善小而不为)

45. 每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;

46. 记录下在和别人交流时发现的自己忽视或不理解的知识点;

47. 请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX;

48. 保存好你写过的所有的程序——那是你最好的积累之一;

49. 请不要做浮躁的人;

50. 请热爱C++! ;

‘柒’ 计算机二级C语言怎么学

1、首先当然是要看书,这里向大家推荐谭浩强编写的《C程序设计》,目前是第四版。这本书写的很细致,适合零基础学习的新手
2、看完了书当然是要动手练习,刚开始你可以写最简单的hallo world,当你成功的写完一个小程序时,心中会有很大的成就感。
3、如果你发现自己有什么不懂的,你可以去贴吧询问,或者到知乎上询问,相信有很多人会为你热心的解答的。
4、如果你觉得你自己看书学习效率太低,你可以上网观看教学视频,向大家推荐“中国大学”这个网站,在这里你可以向名师学习,并且提出疑问,而且在学习完课程并完成作业后可以获得该大学的证书。
5、学习编程最快的方法之一就是看别人的源代码,学习别人是怎样编程的,对同一个问题别人的思路是什么?和你的思路有什么差别?如果你想要进一步提升自己编程的水平,推荐大家去做做ACM的题。想要学好c语言,就要编程,编程,再编程!

‘捌’ 计算机二级c语言考什么


‘玖’ C语言2级都考什么啊

C语言二级复习纲要
一、基本知识
1.c是高级语言,结构化程序设计语言
2.程序设计的五个部分
二、变量、常量、表达式
1.常量的值是不能改变的
2.标识符的定义方法
3.c语言中二进制和八进制、十六进制的表示方法
4.算术运算符的优先级别(++和--放在变量前后的区别)
5.c程序的基本构成结构(由函数构成,函数由基本结构构成)
三、顺序结构
1.printf的格式控制串中的格式控制字符和后面的数据在数量上要一一对应,类型要匹配
2.scanf的格式控制串中不要有多余字符,后面的数据是地址,如果是变量,前面要有&(取地址符)
3.两个%代表一个%
4.复合语句以及空语句
四、选择结构
if (表达式) 语句1;
else 语句2;

switch (表达式)
{ case….:……..;
.
.
.
case…:…….;}

1.关系表达式及优先级别
2.逻辑表达式及优先级别
3.关系,逻辑,算术优先级别的问题
4.if后面跟的表达式是判断真假的,switch是计算值的
5.if表达式后只能跟一个语句,如果要跟多个语句,必须用{ }括起来构成复合语句
6.switch里面的语句后面一定要跟break才能跳出switch,否则会一致执行下去
7.if语句中,语句1和语句2两个语句里面只能有一个语句被执行
五、循环结构
1.三种循环结构及其区别(while和do….while多用于循环次数未知的情况,for用于循环次数已知的情况)
2.循环中的三要素:初始值,结束条件,自增语句
3.break和continue的区别
六、字符
1.字符量是用单引号’引起来的一个字符,用双引号”引起来的字符是字符串
2.字符量等同于整形量
3.要使用putchar和getchar这两个函数,就必须在程序的开头使用#include “stdio.h”
4.连续输入
七、函数
1. 函数可以没有返回值,也可以有返回值,但是只能返回一个值,在函数中,一碰到return语句,函数立即结束,返回调用的地方
2. 函数的返回值也是有类型的,函数的首部要加以说明
3. 函数也必须遵循先定义后使用的原则
4. 函数的实际参数和形式参数必须一一对应,类型也要匹配,同时,参数是变量的,只能进行单向传递,即,参数值只能从主函数传递给函数,而不能从函数返回主函数,这种称之为:传值传递
八、指针
1. 存放地址的变量称为指针
2. “*”号在数据定义的时候作为指针定义符,在语句中作为间接引用
3. 指针一定要有指向,不能没有指向,指向空是有意义的]
4. 通过把指针作为函数参数,可以在主函数和函数之间传递数据,称之为:传地址传递
5. 指针每次移动,都移动一个单元,每个单元的长度是由指针的基类型确定的
6. 指向指针的指针是指:这个变量中存放的是指针的地址
7. 函数也可以返回指针,同样,要在函数首部定义
九、数组
1. 数组是一连串连续的存储单元的集合,他们是连续的
2. 把数组传递给函数,并且希望能改变其值,那么在函数的首部,用指针定义参数
3. 二维数组是一维数组的特殊形式,可以把二维数组看成每一个一维数组,每个元素都是一个一维数组。
4. 要把二维数组传递给函数,并且希望能改变其值,那么,在函数的首部,用一个行指针{(*sp)[ ]}来定义参数
5. 行指针和指针数组是不同的

行指针 指针数组
十、字符串
1. 字符串其实就是字符数组,一维字符数组可以存放一行字,而二维字符数组可以存放若干行搭乱字
2. 字符串的结束标志是\0,并且包含在字符串长度之内
3. 可以用字符指针指向一个字符串,其实就是指向字符数组的首地址
4. 字符串的输入输出使用puts和gets函数
十一、结构
1. 结构是一种特殊的用户自定义数据类型,他由若干个成员构成
2. 要引用成员,就要看使用什么来引用。用数据的话:结构体变量名.成员名。是指针的话:结构体指针-〉成员名
3. 成员符优先级别问题:高于++ ――
4. 传递结构体变量给函数,并且希望能改变其值,那么把该结构体变量的地址传递给函数,函数用该类型指针来接受结构体
5. 链表:在定义结构体变量的时候,知毕档在其中增加指向自己的指针,使得这种结构体变量能够指向同类型结构体变量,由这种变量首尾相连,就能数历构成链表。
6. 链表的建立、删除节点、增加节点,查找节点都要使用动态内存分配malloc和calloc,区别在于前者动态分配一个单元,而后者动态分配一系列单元
十一、文件
1. 文件的打开方法和打开方式及如何关闭
2. 如何对文件进行输入和输出
3. 文件指针及其操作函数

‘拾’ 计算机二级C语言 复习时间要多久才能差不多能过啊

计算机二级C语言复习时间要多久才能差不多能过,这个问题因人而异,如果有一点计算机的基础肯定比没有基础的学得快;有人理解能力强学得就快;有的人考运好,遇到的题全是平时做到过的;有的人用的时间短,自己却努力好雹。所以,复习多久能考过没有一个确切的答案。

一般对于计算机二级C语言的复习,2个月就可以充分准备了,但是也是因人而异,首先对于二级的公共知识有一个全面的了解,看一遍书,买一个软件进行练习,反复练习,认真总结解题方法,多练习就可以了。‍

  • 基本要求(以当年的考试大纲为准)

熟悉 Visual C++ 6.0 集成开发环境。

掌握结构化程序设计的方法,具有良好的程序设计风格。

掌握程序设计中简单的数据结构和算法并能阅读简单的程序。

在 Visual C++ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力

  • 考试内容

一、C语言程序的结构

程序的构成,余慧main函数和其他函数。

头文件,数据说明,函数的开始和结束标志以及程序中的注释。

源程序的书写格式。

C语言的风格。

二、数据类型及其运算

C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。

C运算符的种类、运算优先级和结合性。

不同类型数据间的转换与运算。

C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。

三、基本语句

表达式语句,空语句,复合语句。

输入输出函数的调用,正确输入数据并正确设计输出格式。

四、选择结构程序设计

用if语句实现选择结构。

用switch语句实现多分支选择结构。

选择结构的嵌套。

五、循环结构程序设计

for循环结构。

while和do-while循环结构。

continue语句和break语句。

循环的嵌套。

六、数组的定义和引用

一维数组和二维数组的定义、初始化和数组元素的引用。

字符串与字符数组。

七、函数

库函数的正确调用。

函数的定义方法。

函数的类型和返回值。

形式参数与实在参数,参数值传递。

函数的正确调用,嵌套调用,递归调用。

局部变量和全局变量。

变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。

八、编译预处理

宏定义和调用(不带参数的宏,带参数的宏)。

“文件包含”处理。

九、指针

地址与指针变量的概念,地址运算符与友毁帆间址运算符。

一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。

用指针作函数参数。

返回地址值的函数。

指针数组,指向指针的指针。

十、结构体(即“结构”)与共同体(即“联合”)

用typedef说明一个新类型。

结构体和共用体类型数据的定义和成员的引用。

通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。

十一、位运算

位运算符的含义和使用。

简单的位运算。

十二、文件操作

只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。

文件类型指针(FILE类型指针)。

文件的打开与关闭(fopen,fclose)。

文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数的应用),文件的定位(rewind,fseek函数的应用)。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:335
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:943
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371