二级C语言考试复习资料
- 格式:doc
- 大小:107.00 KB
- 文档页数:21
1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节 = 八个位.概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、逗号运算符的级别最低。
第一章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)整型一般是两个字节, 字符型是一个字节,float一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
掌握整型一般是两个字节, 字符型是一个字节,double一般是8个字节就可以了。
5)转义字符的考查:在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。
全国计算机等级考试二级C语言考前复习资料思维导图1:C语言程序设计知识结构第一课C语言程序设计基础本课主要知识点:1.知识点:C程序基础●C语言是一种结构化程序设计语言。
三种基本结构:顺序、选择、循环。
例1:(2010-09-11)以下关于结构化程序设计的叙述中正确的是(C)A)一个结构化程序必须同时由顺序、分支、循环三种结构组成B)结构化程序使用goto语句会很便捷C)在C语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题例2:(2011-03-26)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是(A)A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对【解析】计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
翻译的方式有两种,一个是编译,一个是解释。
C语言程序仅可以编译。
例3:(2011-03-26)以下叙述中错误的是( D) A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件【解析】C程序开发过程:编辑—>(.c)编译—>(.obj)链接—>可执行文件(.exe)2.知识点:C语言程序的构成●C程序是由函数构成的,一个C程序有且仅有一个main函数。
一个函数由两部分组成:函数的首部和函数体。
函数体包括声明部分和执行部分。
一个C 程序总是从main函数开始执行(即程序的入口),由main函数结束,(即程序的出口)。
例1:(2010-03-12)以下叙述正确的是(B)A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在例2:(2011-09-11)以下叙述中错误的是(C)A.C语言编写的函数源程序,其文件名后缀可以是CB.C语言编写的函数都可以作为一个独立的源程序文件思维导图2:第一课C语言程序设计基础C.C 语言编写的每个函数都可以进行独立的编译并执行D.一个C 语言程序只能有一个主函数3.知识点:标识符● 命名规则:①标识符中只能包含字母 (a-z,A-Z),数字(0-9),下划线(_)。
全国计算机考试二级《C语言》复习资料一、C语言的特点C语言是近年来非常流行的语言,很多人宁愿放弃已经熟悉的其他语言而改用C语言,}概括起来,C语言程序具有如下的风格: ①C语言程序的函数具体模块结构风格,使得程序整体结构清晰、层次清楚,为模块化程序设计提供了强有力的支持。
②C语言的源程序的扩展名都是.C。
其原因是C语言有优于其他语言的一系列特点。
下面是C语言的`主要特点:(1)语言简洁、紧凑,并且使用方便、灵活;(2)运算符丰富; (3)数据结构丰富;(4)具有结构化的控制语句;(5)语法限制不太严格,使程序设计比较自由; (6)C语言允许用户直接访问物理地址,能进行位(bit)操作,可以直接对硬件进行操作。
二、源程序的书写规则C语言的书写规则。
C语言书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。
C程序没有行号,每个语句和数据定义的最后必须有一个分号。
C语言中分号是语句中不可少的,即使是程序中的最后一个语句也应该包含分号。
C语言中的注释可以用〃/*〃用〃*/〃结束,注释可以在任何允许插入空格符的地方插入。
C语言中注释不允许嵌套,注释可以用西文,也可以用中文。
三、C语言的风格由于C语言对语法限制不太严格,为了保证程序的准确性和可读性,建议在书写程序采用阶梯缩进格式。
也就是按如下格式书写C语言程序: **********; *****() {**********; ********; {******; ...... }*********;③C语言中的注释格式为:/*注释内容*/ /与*之间不允许有空格,注释部分允许出现在程序中的任何位置。
④C语言中的所有语句都必须以分号“;”结束【计算机二级C语言公共基础知识】循环链表及其基本运算在线性链表中,虽然对数据元素的插入和删除操作比较简单,但由于它对第一个结点和空表需要单独处理,使得空表与非空表的处理不一致。
循环链表,即是采用另一种链接方式,它的特点如下:(1)在循环链表中增加一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。
计算机二级c语言考试复习资料计算机二级C语言考试复习资料计算机二级C语言考试是许多计算机专业学生所面临的一项重要考试。
为了帮助大家更好地备考,下面将提供一些复习资料和技巧,希望对大家有所帮助。
一、基础知识回顾在开始复习之前,我们首先需要回顾一些C语言的基础知识。
C语言是一种高级编程语言,具有强大的功能和广泛的应用领域。
在复习过程中,我们需要重点关注以下几个方面:1. 数据类型:C语言中包含多种数据类型,如整型、浮点型、字符型等。
我们需要了解每种数据类型的特点和使用方法,以便正确地声明和使用变量。
2. 运算符:C语言中包含多种运算符,如算术运算符、关系运算符、逻辑运算符等。
我们需要熟悉这些运算符的优先级和使用规则,以便正确地进行计算和判断。
3. 控制结构:C语言中包含多种控制结构,如条件语句、循环语句、选择语句等。
我们需要了解这些控制结构的语法和用法,以便编写出结构清晰、逻辑正确的程序。
二、编程实践除了理论知识的复习,我们还需要进行一些编程实践,以提高我们的编程能力和解决问题的能力。
在进行编程实践时,我们可以选择一些经典的编程题目,如斐波那契数列、排序算法等,通过编写代码来实现这些功能,从而加深对C 语言的理解和掌握。
在编程实践过程中,我们需要注意以下几点:1. 规范代码风格:良好的代码风格可以提高代码的可读性和可维护性。
我们应该养成良好的编码习惯,如适当缩进、命名规范、注释等。
2. 错误处理和调试:在编程过程中,我们可能会遇到各种错误和异常情况。
我们需要学会正确地处理这些错误,并利用调试工具来定位和解决问题。
3. 代码复用和模块化:在编写代码时,我们应该尽量考虑代码的复用性和模块化。
通过将代码划分为多个函数或模块,可以提高代码的可重用性和可维护性。
三、参考资料推荐在复习过程中,参考资料的选择也是非常重要的。
下面是一些常用的参考资料,供大家参考:1.《C Primer Plus》:这是一本经典的C语言教材,内容全面、易于理解,适合初学者使用。
第一部分 C语言知识复习资料第一章C语言基本知识【考点1】C程序用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。
源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。
C语言有三种基本结构:顺序结构、选择结构、循环结构。
【考点2】main函数又称主函数,是C程序的入口。
main后面跟一对小括号和一对花括号,花括号括起来的部分称为main 函数的函数体。
一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。
每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。
【考点3】存储形式计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。
二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。
数据的存放位置就是它的地址。
【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。
【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。
一行内可写多条语句,一个语句可写在多行上。
【考点6】标识符是标识名字的有效字符序列,可以理解为C程序中的单词。
标识符的命名规则是:(1)标识符只能由字母、数字和下划线组成,字母区分大小写。
(2)标识符的第一个字符必须是字母或下划线,不能为数字。
C语言标识符分如下3类(1)关键字。
它们在程序中有固定的含义,不能另作他用。
如int、for、switch等。
(2)预定义标识符。
预先定义并具有特定含义的标识符。
如define、include等。
(3)用户标识符。
用户根据需要定义的标识符,符合命名规则且不与关键字相同。
【考点7】常量与变量常量是指在程序运行过程中,其值不能改变的量。
二级公共基础知识作为必考内容出现,出题形式为选择题前10道,占考试总分的10%。
考试其它比重:1、C语言程序的结构占总分1%2、数据类型及其运算占总分4%3、选择结构程序设计占比分的3%4、循环结构占比分的5%5、数组的定义和引用占比分的5%6、函数占比分的5%7、编译预处理占比分1%8、指针占比分的5%9、结构体占比分的3%10、位运算占比分的2%11、文件操作占比分的2%考试方式上机考试,时长120分钟单选题40分(含公共基础10分),操作题60分(包括程序填空题、程序修改题、程序设计题)第一部分 C语言知识复习资料第一章 C语言基本知识(90分)【考点1】C程序用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。
源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。
C语言有三种基本结构:顺序结构、选择结构、循环结构。
【考点2】main函数又称主函数,是C程序的入口。
main后面跟一对小括号和一对花括号,花括号括起来的部分称为main 函数的函数体。
一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。
每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。
【考点3】存储形式计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。
二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。
数据的存放位置就是它的地址。
【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。
【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。
一行内可写多条语句,一个语句可写在多行上。
电脑二级C复习资料公共基础知识资料第一章数据结构与算法【考点1】算法的基本概念算法:是指一组有穷的指令集,是解题方案的准确而完整的描述。
算法不等于程序,也不等于计算方法。
算法的基本特征:确定性,算法中每一步骤都必须有明确定义,不允许有多义性;有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;可行性,算法原则上能够精确地执行;拥有足够的情报。
算法的组成要素:一个算法由数据对象的运算和操作以及其控制结构这两部分组成。
算法的基本运算和操作:算术运算,逻辑运算,关系运算,数据传输。
算法的基本控制结构:顺序,选择,循环。
算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术。
【考点2】算法的复杂度算法效率的度量——算法的复杂度:时间复杂度和空间复杂度。
算法时间复杂度:指执行算法所需要的计算工作量。
通常,一个算法所用的时间包括编译时间和运行时间。
算法空间复杂度:指执行这个算法所需要的内存空间。
包括算法程序所占的空间,输入的初始数据所占的空间,算法执行过程中所需的额外空间。
空间复杂度和时间复杂度并不相关。
【考点3】数据结构的基本概念数据:数据是客观事物的符号表示,是能输入到电脑中并被计算程序识别和处理的符号的总称,如文档,声音,视频等。
数据元素:数据元素是数据的基本单位。
数据对象:数据对象是性质相同的数据元素的集合。
数据结构:是指由某一数据对象中所有数据成员之间的关系组成的集合。
【考点4】逻辑结构和存储结构数据结构可分为数据的逻辑结构和存储结构。
数据的逻辑结构是对数据元素之间的逻辑关系的描述,与数据的存储无关,是面向问题的,是独立于电脑的。
它包括数据对象和数据对象之间的关系。
数据的存储结构也称为数据的物理结构,是数据在电脑中的存放的方式,是面向电脑的,它包括数据元素的存储方式和关系的存储方式。
数据结构和逻辑结构的关系:一种数据的逻辑结构可以表示成多种存储结构即数据的逻辑结构和存储结构不一定一一对应。
计算机二级C语言复习资料计算机二级C语言复习资料计算机二级C语言考试是计算机应用技术专业的一项重要考试,是检验学生计算机编程能力的重要指标,也是在就业过程中的重要技能。
为了让广大学生备考更加高效,我们特别整理了计算机二级C语言复习资料,希望对大家有所帮助。
一、基础知识1. 定义变量在C语言中,使用变量前需要先声明变量的类型和名称。
例如定义一个整数变量:int i;2. 初始化变量初始化变量指的是在声明变量时同时对变量进行赋值,例如:int i = 10;3. 数据类型C语言中的数据类型包括整型、浮点型、字符型和指针类型等。
其中整型又包括short、int、long和long long四种类型,浮点型包括单精度浮点型(float)和双精度浮点型(double)。
4. 运算符C语言中的运算符包括算数运算符、逻辑运算符、位运算符和赋值运算符等。
5. 控制语句C语言中的控制语句包括if语句、switch语句、while语句、for语句和do while语句等,这些语句可以控制程序的执行流程。
6. 函数函数是C语言中最基本的程序模块,它可以封装一些特定的功能,提高程序的可读性和重复利用性。
7. 数组数组是一组相同数据类型的有序集合,可以通过下标来访问数组元素。
例如:int a[10];二、典型例题下面给出几道代表性的计算机二级C语言考试例题,供考生们练习:1. 输入10个整数并输出其中的最大值。
#include <stdio.h>int main(){ int a[10], max, i;printf("Input 10 integers:\n"); for(i=0; i<10; i++){ scanf("%d", &a[i]); } max = a[0]; for(i=1;i<10; i++) { if(a[i] > max){ max = a[i]; } } printf("Max integer is: %d\n", max); return 0;}2. 求一个3×3矩阵对角线元素之和。
二级公共基础知识作为必考内容出现,出题形式为选择题前10道,占考试总分的10%。
考试其它比重:1、C语言程序的结构占总分1%2、数据类型及其运算占总分4%括程序填空题、程序修改题、程序设计题)第一部分 C语言知识复习资料第一章C语言基本知识(90分)【考点1】C程序用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。
源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。
C语言有三种基本结构:顺序结构、选择结构、循环结构。
【考点2】main函数又称主函数,是C程序的入口。
main后面跟一对小括号和一对花括号,花括号括起来的部分称为main 函数的函数体。
一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。
每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。
【考点3】存储形式计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。
二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。
数据的存放位置就是它的地址。
【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间口诀:E前E后必有数,E后必须为整数。
实型变量分为单精度型(float)和双精度型(double),单精度型占四个字节。
【考点10】算术运算算术运算符一共有+、—、*、/、%这五个。
求余运算要求运算对象只能为整型,除法运算符两边运算对象都为整型时,运算结果也为整型即舍掉小数部分。
【考点11】强制类型转换将一个运算对象转换成指定类型,格式为(类型名)表达式,注意小括号位置。
【考点12】赋值赋值运算符为“=”,不同于关系等于“= =”。
赋值表达式格式为:变量名=表达式,赋值运算符左边必须为变量,赋值运算是把赋值运算符右边表达式的值赋给左边变量。
全国计算机二级C语言考试复习资料【说明】这是真题分类解析,比较经典。
为了节省时间,提高效率,希望大家按这样一种方式阅读这份资料:直接做例题不懂,看解析再不懂,看知识点介绍,书本,课堂笔记再不懂,留着下次课问我不要从头开始,一个字一个字地读全国计算机等级考试二级C语言考前复习资料第二章运算符与表达式1.知识点:C运算符简介算术运算符:+、—、*、/、%赋值运算符:=、+=、—=、*=、/=、%=、<<=、>>=、&=、^=、|=关系运算符:>、>=、<、<=、==、!=逻辑运算符:!、&&、||条件运算符:?:逗号运算符:,2.知识点:运算符的结合和优先级3.知识点:强制类型转换运算符●一般形式:(类型说明符)(表达式)●功能:把表达式的运算结果强制转换成类型说明符所表示的类型例1:(2009-04-06)表达式(int)((double)(5/2)+2.5)的值是4。
【解析】(int)((double)(5/2)+2.5)→(int)((double)2)+2.5)→(int)(2.000000+2.5)→(int)(4.500000)→4。
4.知识点:算术运算符:+、—、*、/、%%:参与运算的量均为整型。
/:当除号左右两边都是整数的时候,商也要是整数,如果不是整数则舍弃小数部分。
当参与运算量有一个为实型,则商为double型。
例1:(2010-09-14)有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是(A)A)a%(int)(x-y)B)a=x!=y;C)(a*y)%b D)y=x+y=x【解析】参与%运算的左右操作数均为整型,故A项正确,C项错误。
B项是赋值语句,不是表达式。
赋值运算符左边必须是变量,而不是表达式,而D项中x+y=x,错误。
5.知识点:逗号表达式●一般形式:表达式1,表达式2●嵌套形式:表达式1,表达式2,表达式3,…表达式n●求值过程:先求解表达式1,再求解表达式2,以表达式2的值为整个逗号表达式的值。
第一章C语言概述第二章变量及表达式二.教学重点,难点分析1. C语言概述是一个惯例了。
2.运算符与表达式三.教学讲点1.C语言的基本构成和格式#include “stdio.h”main()int a,b,sum;/* 定义变量*/a=10; /*把整数10赋值给变量a*/b=20; /*把整数20赋值给变量b*/sum=a+b; /*把两数之和赋值给变量sum*/printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*输出计算结果*/}(1).C程序由函数组成,一个程序必须且只能有一个主函数(main()),C程序总是从主函数开始执行,在主函数中结束。
(2).定义函数时函数名后必须有一对小括号,函数体必须放在一对花括号内,在函数体中,函数体有两个部分:定义部分和执行部分。
定义语句必须出现在执行语句之前,我们先定义了a,b,sum,然后才给它们赋值。
(3).C语言中每条语句都以分号“;”结束,分号时C语句的一部分。
即使是程序的最后一个语句也不例外。
分号是语句结束的标志。
(4). 一行可以写多条语句,一条语句也可以分在多行上写,但是,不能将一个整体分开。
例如:i nt 是错误的,而int正确。
(5). C语言的注释必须放在“/*”和“*/”之间,“/”和“*”之间不允许有空格。
“/*”和“*/”之间不允许再插入“/*”或“*/”。
注释可以出现在程序中的任意位置。
注释部分不被执行。
(6).C语言程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。
但是过于“自由”的程序书写格式往往使人们很难读懂程序,初学者应该从一开始就养成好的习惯,是程序便于阅读。
2.标识符(1)标识符只能由字母、数字和下划线组成。
(2)标识符的第一个字符必须是字母或下划线。
(3)标识符的大小写字母是有区别的,如abc和ABC是两个完全不同的标识符。
(3)标识符的分类:关键字:关键字是具有特定的含义的、专门用来说明C语言特定成分的一类标识符。
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位系统。
碰到这种情况,不要去管,一样做题。
二级公共根底知识总结第一章数据构造与算法1.1 算法算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的根本特征:是一组严谨地定义运算顺序的规那么,每一个规那么都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:〔1〕可行性;〔2〕确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;〔3〕有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;〔4〕拥有足够的情报。
算法的根本要素:一是对数据对象的运算与操作;二是算法的控制构造。
指令系统:一个计算机系统能执行的所有指令的集合。
根本运算包括:算术运算、逻辑运算、关系运算、数据传输。
算法根本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据构造的根本根本概念数据构造研究的三个方面:〔1〔2〔3〕对各种数据构造进展的运算。
数据构造是指相互有关联的数据元素的集合。
数据的逻辑构造包含:〔1〕表示数据元素的信息;〔2〕表示各数据元素之间的前后件关系。
数据的存储构造有顺序、链接、索引等。
线性构造条件:〔1〕有且只有一个根结点;〔2〕每一个结点最多有一个前件,也最多有一个后件。
非线性构造:不满足线性构造条件的数据构造。
1.3 线性表及其顺序存储构造的相对位置是线性的。
非空线性表的构造特征:〔1〕且只有一个根结点a1,它无前件;〔2〕有且只有一个终端结点,它无后件;〔3〕除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点个数n0线性表的顺序存储构造具有以下两个根本特点:〔1〕线性表中所有元素的所占的存储空间是连续的;〔2〕线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
的存储地址为:()(a1)+(1)k,,(a1)为第一个元素的地址,k代表每个元素占的字节数。
目录全国计算机等级考试——二级公共基础知识辅导讲义.................. 错误!未定义书签。
第一章数据结构与算法 0第二章程序设计基础 (6)第三章软件工程基础 (8)第四章数据库设计基础 (15)第一章数据结构与算法1.1 算法1描述。
*:算法不等于程序,也不等于计算方法。
程序的编制不可能优于算法的设计。
2、算法的基本特征(1)可行性。
针对实际问题而设计的算法,执行后能够得到满意的结果。
(2)确定性。
每一条指令的含义明确,无二义性。
并且在任何条件下,算法只有唯一的一条执行路径,即相同的输入只能得出相同的输出。
(3)有穷性。
算法必须在有限的时间内完成。
有两重含义,一是算法中的操作步骤为有限个,二是每个步骤都能在有限时间内完成。
(4)拥有足够的情报。
算法中各种运算总是要施加到各个运算对象上,而这些运算对象又可能具有某种初始状态,这就是算法执行的起点或依据。
因此,一个算法执行的结果总是与输入的初始数据有关,不同的输入将会有不同的结果输出。
当输入不够或输入错误时,算法将无法执行或执行有错。
一般说来,当算法拥有足够的情报时,此算法才是有效的;而当提供的情报不够时,算法可能无效。
*:综上所述,所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
3、算法复杂度主要包括时间复杂度和空间复杂度。
(1)算法时间复杂度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需基12、数据结构主要研究和讨论以下三个方面的问题:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构。
数据的逻辑结构包含:1)表示数据元素的信息;2)表示各数据元素之间的前后件关系。
(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。
数据的存储结构有顺序、链接、索引等。
1)顺序存储。
它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。
二级C语言考试复习资料1、找出1~100中其各位数的乘积大于各位数的和的所有整数#include"stdio.h"main(){ int k=1,s=0,m,n;printf("\n");for(n=1;n<=100;n++){ k=1,s=0;m=n;while(m%10){ k*=m%10;s+=m%10;m=m/10; }if(k>s && s) printf("%4d",n);}}2、编程实现:学校买校服小于50套90元一套元一条,超过50套80元一套,单件上衣60元一件,裤子45元一条,现需购买M套上衣,N套裤子,共需多少钱?#include"stdio.h"main(){ int m,n,s,k;printf("please input the clouth numble:m and the shirt numble:n\n"); scanf("%d,%d",&m,&n);if (m==n){ if(m>50) s=80*m;s=90*m; }if(m>n){k=m-n;if (n>50) s=80*n+k*60;else s=90*n+k*60;}else{k=n-m;if(m>50) s=80*m+k*45;else s=90*m+k*45;}printf("s=%d",s);}3、如果a=1,b=2,c=0,k=2写出表达式k<a?k:c?k:c<b?c:a结果是C的值include"stdio.h"main(){int a,b,c,k;a=4;b=5;c=1;k=6;k=k<a?k:c?k:c<b?c:a;printf("k=%d",k);}4、若有如下定义和说明则P+1代表的是元素( a[0][1] )的地址.int a[2][3],(*P)[3]; P=a;5、画矩阵n=4n=5main(){int a[10][10],m,n,i,j;scanf("%d",&n);if(n%2==0)m=n/2;else m=n/2+1;for(i=0;i<m;i++)for(j=i;j<n-i;j++){a[i][j]=i+1;a[n-1-i][j]=i+1;a[j][i]=i+1;a[j][n-i-1]=i+1;}for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%d",a[i][j]); printf("\n");}}6、画n层金字塔main(){int i,j,m,n;printf(“please input n:\n”);scanf(“%d”,&n);for(i=1;i<=n;i++){for(j=1; j<=n-1; j++) printf”(“ “) ; //画空格for(k=1; k<=2*i-1; k++)printf(“ * “); //画星号printf(“\n”);}}7、求下列表达式的值1)若a是int变量,a=6;则a+=a-=a*a的值是-602)若a,b是int变量,a=6,b=5;则a%=(b%=2)的值是03)若x=2.5 , a=7, y=4.7 则x+a%3*(int)(x+y)%2/4值是2.54)a=2, b=3, x=2.5 y=2.5则(float)(a+b)/2+(int)x%(int)y值是2.5 5)int x,y,z,k;x=(y=52,z=26,k=32)后x的值是326) 语句printf(“%d”,stramp(“TEH”,”THE”));的结果是-3main(){printf("%d",strcmp("TEH","THE"));}8、找出1~100中能被3整除且个位数是6的所有整数main(){int i ,j;for(i=0,i<10;i++)if((i*10+6)%3==0) printf("%-4d",i*10+6);else continue;}9、假如m是一个三位数abc,由a、b、c组成另一个三位数cba,则表达式是:因为c=m%10,b=(m/10)%10,a=m/100,所以结果是:(m%10)*100+((m/10)%10)*10+m/100.程序如下:main(){int m;printf("please input 3bit numblem=abc:\n");scanf("%d",&m);printf("m.a=%d,m.b=%d,m.c=%d\n",m/100,(m/10)%10,m%10);printf("cba=%d\n",(m%10)*100+((m/10)%10)*10+m/100);}9、编程计算找出x,y,x中的最小值:void main(void){int x=4,y=5,z=8;int u,v;u=x<y?x;y;v=u<z?u:z;printf(“min=%d”,v);}A.10、11、写出下列程序运行结果:(1)main(){int x=2,y=-1,z=2;if (x<y)if (y<0) z=0;else z=z+1;printf(“%d”,z);}结果是2(2)main(){int x1=3,x2=0,x3=0;if (x1=x2+x3) printf(“****”);else printf (“&&&&”); }结果是**** 想想为什么?(3)main(){int y=10;do{y--;printf("%d",y--); }while(--y>0);}结果是9630(4)main(){int a=6,b=5;printf("%d",a%=(b%=2));} 结果是0(5)#define P x+xmain(){int x=5,y;y=P*P;printf("%d",y);}结果是 35(6)main(){int a=12,b=12;printf(“%d %d”,--a,++b)’} 结果是11 13(7)main(){int a=2,b=3,c;c=1.0/b*a;printf("\n%d",c);} 结果是0 和下面程序对比有什么不同main(){int a=2,b=3;float c;c=1.0/b*a;printf("\n%f",c);}(8)main(){int y=10;while(y--);printf(“y=%d”,y);} 结果是 -1(9)int f( int x){static int m=0;m+=2;return (m+x);}main(){int i;for (i=1;i<=4;i++)printf(“%d,”,f(i));}结果是3,6,9,12,(10)#include”string.h”void fun(char *w,iny m){char s,*p,*p2;p1=w;p2=w+m-1;while(p1<p2){s=*p1++;*p1=*p2--;*p2=s;}}main()char a[]=”abcdefg”;fun(a,strlen(a));puts(a);}结果是agaagag12编程实现去掉一个英语句子中多余空格main(){char c[80]=" I am 16.";int flag=0,i=0;for(i=0;c[i]!='\0';i++){if(c[i]!=' ') {printf("%c",c[i]);flag=1;}else if(c[i]==' ' && flag==1) {printf("%c",c[i]);flag=0; }}13、编程实现输入一组数,输出偶数include"stdio.h"#include"math.h"main(){int i,j,a[10],b[10];for(i=0;i<10;i++)a[i]=rand();for(i=0,j=0;i<10;i++){if((a[i]%2)==0) b[j++]=a[i]; else continue;}for(i=0;i<j;i++)printf("%d,",b[i]);}14、编程求最大公约数和最小公倍数main(){int a,b,p,temp,t;scanf("%d,%d",&a,&b);if(a<b) {temp=a;a=b;b=temp;}p=a*b;while(b!=0){t=a%b;a=b;b=t;}printf("max yo numble=%d",a); printf("main bei numble=%d",p/a); }15、选择法排序main(){int i,j,min,t,a[11];printf("input data:\n");for(i=1;i<=10;i++){printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");for(i=1;i<=10;i++)printf("%5d",a[i]);printf("\n");for(i=1;i<=9;i++){min=i;for(j=i+1;j<=10;j++)if(a[min]>a[j]) min=j;{t=a[i];a[i]=a[min];a[min]=t;}}for(i=1;i<=10;i++)printf("%5d",a[i]);}16写一个函数用冒泡法对十个字符排序#include"string.h"void sort( char a[]){int i,j;char t;for (i=1;i<10;i++)for(j=0;j<10-i && a[i]!='\0';j++) if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}main(){int i ;char a[20];gets(a);sort(a);puts(a);}17、在一组有序数中插入一个数后仍然有序main(){int a[11]={1,10,20,30,40,50,60,70,80,90}; int x,n,end,i;printf("please insert data:\n");scanf("%d",&x);if(x>a[9]) a[10]=x;else{n=0;while(x>a[n])n++;for(i=10;i>n;i--)a[i]=a[i-1];a[n]=x;}for(i=0;i<11;i++)printf("%5d",a[i]);}18、输出乘法口诀表main(){int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++)printf(“%d*%d=%-4d”,i,j,i*j);printf(“\n”);}}19、键盘上输入一个字符串将其中的小写字母全部换成大写字母,然后输出到文件“test”中保存,文件以!结束main(){FILE *fp;char a[100];int i=0;if((fp=fopen(“test”,”w”)==NULL){printf(“Can not open the file\n”);exit (0);}printf(:input one string:\n”);gets(a);while(a[i]!=’!’){if(a[i]>=’a’ && a[i]<=’z’) a[i]=a[i]-32;fput(a[i],fp);i++;}fclose(fp);fp=fopen(“test”,”r”);fgets(a,strlen(a)+1,fp);printf(%s\n”,a);fclose(fp);}20、选择题1)下列算术运算符中,只能用于整型的是( D)A -- B. + C. / D. %2)判断字符串ab是否相等应当使用( D )A.if (a==b) B.if (a=b) C.if (strcpy(a,b)) D.if (strcmp(a,b)) 3)有int k=7,x=12;则能使值为3的表达式是( C )A. x%=(k%=5)B. x%=(x-k%5)C.x%=k+k%5D.(k%=5)-(x%=k)4)已知int a;float i=2;下列合法的语句是()A. a==1B. ++i;C.a=a++=5;D.a=int(i);5)在C语言中合法的字符常量是(B)A ‘\084’B ‘\x48’ C.”48” D. ‘\48’6)下面关于switch和break语句说法正确的是(B)A.break是switch的一部分;B.在switch中可根椐需要使用和不使用break语句;C.在switch中必须使用break语句;D.以上三个结论有两个是正确的7)能正确表示a和b同时为正或同时为负的逻辑表达式是(D)A.(a>=0|| b>=0)&&(a<0||b<0)B.(a>=0&& b>=0)&& (a<0 && b<0)C.((a+b)>0&&(a+b<=0)D.a*b>08)函数的定义和引用中以下下说法正确的是(B)A.必须有形参 B。