二级C考前模拟试卷及答案详解.doc_第1页
二级C考前模拟试卷及答案详解.doc_第2页
二级C考前模拟试卷及答案详解.doc_第3页
二级C考前模拟试卷及答案详解.doc_第4页
二级C考前模拟试卷及答案详解.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试二级笔试考前模拟试卷公共基础知识和C语言程序设计(考试时间90分钟,满分100分)一、选择题(1)(10)、(21)(40)每题2分,(11)(20)每题1分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)算法的时间复杂度是指_。A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数 D)算法程序中的指令条数(2)以下数据结构属于非线性数据结构的是_。A)队列 B)线性表 C)二叉树 D)栈(3)设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为_。A)349B)350C)255D)351(4)希尔排序法属于哪一种类型的排序法_。A)交换类排序法B)插入类排序法C)选择类排序法D)建堆排序法(5)在单链表中,增加头结点的目的是_。A)方便运算的实现B)使单链表至少有一个结点C)标识表结点中首结点的位置D)说明单链表是线性表的链式存储实现(6)下面不属于软件工程的3个要素的是_。A)工具B)过程C)方法D)环境(7)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是_。A)控制流 B)加工 C)数据存储 D)源和潭(8)按条件F对关系R进行选择,其关系代数表达式为_。A)R|RB)R|R FC)F(R)D)F(R)(9)数据库系统的核心是_。A)数据模型 B)DBMS C)软件工具 D)数据库(10)关系数据库管理系统能实现的专门关系运算包括_。A)排序、索引、统计B)选择、投影、连接C)关联、更新、排序D)显示、打印、制表(11)下列叙述中正确的是_。A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译(12)下列语句中符合C语言语法的赋值语句是_。A)a=7+b+c=a+7B)a=a+7C)a=7+b,b+,a+7;D)a=7+b,c=a+7; (13)若有语句如下:int i=-19,j=i%4;printf(“%dn”,j);则输出结果是_。A)-4 B)-4.30 C)-3 D)-3.00(14)请选出可用作C语言用户标识符的一组标识符_。 void a3_b3 A 23 2a define _123 _abc DO WORD IF month 33#A) B) C) D)(15)有以下程序段 int k=0; while(k=1)k+;while循环执行的次数是_。A)无限次 B)有语法错,不能执行C)一次也不执行D)执行1次(16)请选出合法的C语言赋值语句_。A)a=b=58B)i+;C)a=58,b=58;D)k=int(a+b);(17)若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是_。A)*p=&a;scanf(%ld,p);B)p=(long *)malloc(8);scanf(%ld,p);C)scanf(%ld,p=&a);D)scanf(%ld,&a);(18)若x和y都是int型变量,x=100、y=200,且有下面的程序片段 printf(%d,(x,y) );上面程序片段的输出结果是_。A)200B)100C)100 200D)输入格式符不够,输出不确定的值(19)以下数组定义中不正确的是_。A)int a23;B)int b3=0,1,2;C)int c100100=1; D)int d3=1,2,1,2,3,1,2,3,4;(20)以下程序空格所填的内容要使得所有数组元素都能输入数据,则正确答案应为_。#include main() int a10,i=0; while(i10)scanf(%d,_); : : A)a+(i+) B)&ai+1 C)a+i D)&a+i(21)设有说明int(*ptr)M;,其中的标识符ptr是_。A)M个指向整型变量的指针B) 指向M个整型变量的函数指针C)一个指向具有M个整型元素的一维数组的指针D)具有M个指针元素的一维指针数组,每个元素都只能指向整型变量(22)设有以下语句:char str1=string,str28,*str3,*str4=string;则下列选项中,_不是对库函数strcpy的正确调用,此库函数用来复制字符串。A)strcpy(str1,HELLO1);B)strcpy(str2,HELLO2);C)strcpy(str3,HELLO3);D)strcpy(str4,HELLO4);(23)下面程序的输出结果是_。 #include main() int i=2; printf(%d,f(i,i+1) ); int f(int a,int b) int c; c=a; if(ab) c=1; else if(a=b) c=0; else c=-1; return(c); A)-1B)0C)1D)2(24)以下for语句构成的循环执行了_次。 #include #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() int i,n=0; for(i=1;i=NUM;i+) n+; printf(%d,n); printf(n); A)5B)6C)8D)9(25)若有以下说明:int a12=1,2,3,4,5,6,7,8,9,10,11,12;char c=a,d,g;则值为4的表达式是_。A)ag-cB)a4 C)ad-cD)ad-c(26)有如下程序main() int a = 2,b =- 1,c = 2; if(ab) if(b0) c=0; else c+; printf(%dn,c);该程序的输出结果是_。A)0B)1C)2D)3(27)以下函数返回a所指数组中最小值所在的下标值: fun (int *a, int n) int i,j=0,p; p=j; for (i=j;in;i+) if(aiap)_; return(p);在下划线处应填入的是_。A)i=pB)ap=aiC)p=jD)p=i(28)有以下程序:main() int s=0,a=1,n; scanf(%d,&n); do s+=1; a=a-2; while(a!=n); printf(%dn,s);若要使程序的输出值为2,则应该从键盘给n输入的值是_。A)-1B)-3C)-5D)0(29)请读程序:#include main() int a=5,b=7,c=9; printf(%d,%d,a,b,c); printf(%d,%d,%d,a,b);上面程序的输出结果是_。A)5,7,9,5,7 B)5,7,5,7 C)5,7,不定,7,9 D)5,7,5,7,不定(30)请读程序: #include func(int a, int b) int c; c=a+b; return c; main( ) int x=6,y=7,z=8,r; r=func(x-,y+,x+y),z-); printf(%dn, r); 上面程序的输出结果是_。A)11 B)20 C)21 D)31(31)请选出以下程序的输出结果_。#include sub(x,y,z)int x,y,*z; *z=y-x;main() int a,b,c; sub(10,5,&a);sub(7,a,&b);sub(a,b,&c); printf(%d,%d,%dn,a,b,c);A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7(32)设有以下语句typedef struct Sint g;char h;T;则下面叙述中正确的是_。A)可用S定义结构体变量B)可用T定义结构体变量C)S是struct类型的变量 D)T是struct S类型的变量(33)假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是_。A)free(q); p-next=q-next;,B)(*p).next=(*q).next; free(q);C)q=(*q).next; (*p).next=q; free(q);D)q=q-next; p-next=q; p=p-next;free(p);(34)以下程序输出正确的是_。amovep(int *p,int (*a)3,int n) int i,j; for(i=0;in;i+) for(j=0;j12?x+10:x=12?x=12:x=0; printf(“%dn”,y);(8)设有以下定义和语句,则*(*(p+2)+1)的值为 【8】 。int a32= 10,20,30,40,50,60,(*p)2;p=a;(9)下面程序的输出是 【9】 。main()int arr10,i,k=0; for(i=0;i10;i+) arri=i; for(i=1;i0) fun(x/2); printf(%d ,x);main() fun(6); (14)下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。请填空。fun(int x,int b ) int k=0,r; do r=x% 【14】; bk+=r; x/= 【15】; while(x);全国计算机等级考试二级笔试考前模拟试卷公共基础知识和C语言程序设计参考答案及评析一、选择题(1)C知识点:算法复杂度的概念。评析:算法的复杂度主要包括时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量。为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。(2)C知识点:线性结构与非线性结构的概念。评析:根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构和非线性结构。如果一个非空的数据满足下列两个条件:一、有且只有一个根结点;二、每一个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,否则就是非线性结构。线性结构又称线性表。线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。所以栈又称后进先出(Last In First Out)的线性表;队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素,因此队列又称先进先出(First In First Out)的线性表;而二叉树的数据结构是树型结构的,结构中数据元素之间存在着一个对多个的关系,因此它是一种非线性数据结构。(3)B 知识点:基本数据结构与算法:完全二叉树的概念评析:所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。 具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。本题n=699,故父结点数等于int(699/2)=349,叶子结点数等于699-349=350。(4)B 知识点:基本数据结构与算法:希尔排序法评析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。所以希尔排序法属于插入类排序,但它对简单插入排序做了很大的改进。(5)A 知识点:基本数据结构与算法:线性单链表评析:头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实现。(6)D知识点:软件工程的要素评析:软件工程包括3个要素,即方法、工具和过程。(7)A知识点:数据流图的概念。评析:数据流图是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素与说明如下:加工(转换):输入数据经加工变换产生输出。数据流:沿箭头方向传送数据的通道,一般在旁边标注数据流名。存储文件(数据源):表示处理过程中存放各种数据的文件。源和潭:表示系统和环境的接口,属系统之外的实体。(8)C知识点:关系代数的运算。评析:关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。传统的集合运算是二运算,包括并、差、交、广义笛卡尔积四种运算;专门的关系运算包括选择、投影、连接、除等。选择又称为限制,它是在关系R中选择满足给定条件的诸元素,记作:F(R)=t|tRF(t)= 真基中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。它由下面的规则组成:它可以具有的形式,其中,是域(变量)或常量,但,又不能同为常量,是比较符,它可以是,=及。叫基本逻辑条件。(9)B 知识点:数据库管理系统。评析:数据库管理系统(Database Management System,简称DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。数据库中的数据是具有海量级的数据,并且其结构复杂,因此需要提供管理工具。数据库管理系统是数据库系统的核心,它主要有如下几方面的具体功能:1、数据模式定义。数据库管理系统负责为数据库构建模式,也就是为数据库构建其数据框架。2、数据存取的物理构建。数据库管理系统负责为数据模式的物理存取及构建提供有效的存取方法与手段。3、数据操纵。数据库管理系统为用户使用数据库中的数据提供方便,它一般提供查询、插入、修改以及删除数据的功能。此外,它自身还具有做简单算术运算及统计的能力,而且还可以与某些过程性语言结合,使其具有强大的过程性操作能力。4、数据的完整性、安全性定义与检查。数据库中的数据具有内在语义上的关联性与一致性,它们构成了数据的完整性,数据的完整性是保证数据库中数据正确的必要条件,因此必须经常检查以维护数据的正确。数据库中的数据具有共享性,而数据共享可能会引发数据的非法使用,因此必须要对数据正确使用作出必要的规定,并在使用时做检查,这就是数据的安全性。数据完整性与安全性的维护是数据库管理系统的基本功能。5、数据库的并发控制与故障恢复。数据库是一个集成、共享的数据集合体,它能为多个应用程序服务,所以就存在着多个应用程序对数据库的并发操作。在并发操作中如果不加控制和管理,多个应用程序间就会相互干扰,从而对数据库中的数据造成破坏。因此,数据库管理系统必须对多个应用程序的并发操作做必要的控制以保证数据不受破坏,这就是数据库的并发控制。数据库中的数据一旦遭受破坏,数据库管理系统必须有能力及时进行恢复,这就是数据库的故障恢复。6、数据的服务。数据库管理系统提供对数据库中数据的多种服务功能,如数据拷贝、转存、重组、性能监测、分析等。(10)B知识点:关系的运算操作评析:关系数据库管理系统能实现的专门关系运算,包括选择运算、投影运算、连接运算。(11)B知识点:C语言的结构。评析:高级语言编写的源程序必须经过编译程序编译转换成二进制的机器指令文件(目标文件为*.obj),再经过链接程序将.obj文件与C语言提供的库函数链接起来生成一个.exe的可执行文件,只有可执行文件方能被计算机执行。由于C程序是模块化程序,一个C程序可以由若干个源程序文件(分别进行编译的文件模块)组成,一个源程序文件可以由若干个函数和预处理命令等组成,C语言中对源文件的编译是以函数为单位的,所以函数是可以进行单独编译的,但它不可以单独被执行。(12)A 知识点:赋值表达式。评析:C语言中,赋值语句具有其它高级语言的赋值语句的一切特点和功能。但也有不同:1)C语言中的赋值号“=”是一个运算符,在其他大多数语言中赋值号不是运算符。2)关于“赋值表达式”这一概念,其它大多数高级语言并没有,但在C语言中必须区分:例如:i=i+1是一个表达式,而不是语句;i=i+1;是一个语句。可以看到,一个表达式的最后加一个分号就成了一个语句。 由于赋值语句是由赋值表达式加分号构成,而赋值表达式是赋值运算符“=”将一个变量和一个表达式连接起来的式子,所以选项A、B均不是合法的赋值语句;选项C中,存在两种运算符:逗号运算符和赋值运算符,其中赋值运算符的优先级高,逗号表达式“a=7+b,b+,a+7”的值就是表示式“a+7”的值,即选项C也就可以表示为:a+7;。由此可见,选项C也不是一个合法的赋值语句。选项D是用逗号运算符连接的两个赋值语句。因此符合题目要求的应该是选项D。(13)C知识点:运算符及其运算对象。评析:算术取余运算符%只对整型数据进行运算,且运算结果的符号与%前数据的符号相同。所以本题-19%4的值为-3。(14)B 知识点:C语言的标识符。评析:C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。注意:关键字不能作为标识符来使用,且C语言中大写字母和小写字母被认为是两个不同的字符。本题中的void和define都和C语言的关键字重名,不合法;中的A 23由于其中空格并不能作为标识符的组成,所以不合法;中的2a是数字打头而且33#中的“#”并不能作为标识符的组成。(15)A知识点:while循环语句。评析:乍一看,还以为程序要表达的意思是当k等于1的时候做k+,但是C语言里关系表达式的等于应该是=。一个等于号表示赋值,即这里面重复的把1赋给k,自然表达式k=1的值总为1,while后面的表达式恒为真,则进入死循环。(16)C知识点:赋值语句评析:本题在编译时将出现以下错误:Statement mising ; in function main,这是因为在第三句的printf()函数后没有加上分号,在C语言中一定要在语句的末尾加上分号,否则编译不能通过。(17)A知识点:格式输入函数scanf()的使用评析:scanf函数输入形式为:scanf(格式控制,地址表列); 选项B中,p=(long *)malloc(8)是分配8个字节的long型存储单元,所以能通过scanf语句正确给输入项读入数据; 选项C中,p=&a,求出变量a的内存地址并赋给p; 选项D中,能正确给输入项读入数据; 而选项A中,选项A中将没有对指针p进行正确的初始化,它将p所指空间的内容赋值为a的地址。所以,p记录的便是a的地址的地址,所以,选项A不能正确地读入数据。(18)A知识点:逗号表达式评析:在(x,y)中的,是一个特殊的运算符,叫做逗号运算符,它的一般形式为:表达式1,表达式2,求解过程为:先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值,(x,y)的值为200,所以输出结果为200。(19)D知识点:C语言的数组定义与数组的初始化。评析:1、二维数组定义的一般形式为:类型说明符 数组名常量表达式常量表达式,显然选项A是正确的; 2、二维数组初始化方法:a.分行给二维数组赋初值;b.可以将所有的数据写在一个花括弧内,按数组排列的顺序对各元素赋初值,例如:选项B定义的是一个不确定行数但为3列的二维数组,它的行是在赋初值时确定的,把0,1,2分别赋给了b00,b01,b02;c.可以对部分元素赋初值,例如:选项C只对第0行的第0个元素赋初值为1,其余元素值自动为0。另外,C中在对数组进行初始化时,如果对全部元素都赋初值(即提供全部初始数据),则定义数组时,第一维的长度可以不指定,但的不能省略第二维的长度,故选项D不正确。(20)A 知识点:数组元素的赋值。评析:本题a代表是数组a的首地址,则a+x是数组中第x个元素的地址,所以在四个选项中,选项B和C只能输入一个数据;选项D中,由于表达式为+i,输入的数据赋给的是从a1起的数组,从而不能给a0输入数据,所以不符合题意;选项A通过地址a+i输入数据,通过i+依次给数组元素a0-a9赋值。(21)C知识点:指针数组的应用评析:根据C语言的语法规定可知,int(*ptr)M中的标识符ptr是一个指向具有M个整型元素的一维数组的指针。(22)C知识点:strcpy()函数的应用评析:观察程序可以发现,除了str3其他的字符数组或字符指针都在声明时分配了内存空间,使用没有分配内存的指针是十分危险的,所以在给str3赋值之前必须为它分配内存,选项C中在没有为str3分配内存的情况下为其赋值必然是不正确。(23)A知识点:函数的调用评析:这道题的求解方法比较简单,将i的值带入函数f(),可以发现在if判断语句中,第一次判断为假,而在else语句中的第二个判断亦为假,所以,c的值应当等于-1,最后打印结果为-1。(24)C知识点:对C语言中宏定义的理解评析:分别把N,M的宏定义代入NUM的表达式中,可以得到NUM(211)2128, for循环终止后,应当循环8次。(25)D知识点:数组元素的引用评析: 数值为4实际上就是a3,而d的ASCII码和a的ASCII码刚好相差3,变量c的值为a,所以d-c=3。(26)C知识点:条件判断语句评析:由于条件(a b)并不满足,所以if(a next赋给head,这时head指向原来的第二个结点。第一个结点仍存在,但它已与链表脱离,因为链表中没有一个结点或头指针指向它。若要释放链表p所指向的内存区,则可用free函数,使这部分内存区能被其它变量使用。2、如果要删除的不是第一个结点,则将q-next赋给p-next,p-next原来指向q指向的结点,现在p-next改为指向q-next所指向的结点,q所指向的结点不再是链表的一部分,若需要释放q所指向的内存区,同样可用free函数。另外,C语言中,表示*p所指向的结构体变量中的成员有三种等价形式:a.结构体变量.成员名;b.(*p).成员名;c.p-成员名;本题考查了删除非第一个结点,所以将q-next赋给p-next,即(*p).next=(*q).next;,再用free(q);释放q结点所占的内存空间。(34)A知识点:指针与数组的操作。评析:要解本题,需了解以下几点: 1、malloc函数 void *malloc(unsigned int size)的作用是在内存动态存储区中分配一个长度为size的连续空间。本题中“p=(int*)malloc(100);”分配了一个内存动态存储区中长度为100的存储空间,并将此存储区的起始地址返回给指针变量p。 2、本题“(*a)3”是在amovep函数参数中定义了一个指向一维数组的指针变量。它表示a是一个指针变量,指向包含3个元素的一维数组。(注意区别:*a3是一个指针数组,表示每一个数组元素相当于一个指针变量)。 3、函数的调用 amovep(p,a,3);是将开辟的内存空间的首地址p传递给函数参数*p;将二给数组首地址a传递给指向一维数的指针变量;将二维数组行、列的长度3传递给整型变量n。 4、嵌套的for循环用于将二维数组的值赋给指针变量p所指向的存储单元。由于数组在内存中是以行方式存储,即a00=1,a01=3,a02=5,a10=2,且也是以行方式赋给指针变量p的,所以在内存区域中依次存放数如下:135246,故p2,p5分别为5,6。(35)C 知识点:文件结束符的返回值。评析:函数feof是用来判断文件是否已读到末尾,如果已读到末尾则返回非零值,否则返回0。它属于文件状态函数,其它还有两个文件状态函数分别为:ferror(),clearerr()函数。ferror函数用于判断文件操作是否出错,若出错,则函数值为真,即非零值;否则为零。clearerr使ferror和feof函数值置零。(36)D知识点:函数的调用评析:将a,b代入函数得*&b=*&b+1=a+1=b,所以打印出第一个字母b; a=a+1=A+1=B,打印出第二个字符B; a=A,输出字母A; b=a,输出字母a。(37)C知识点:局部变量和全局变量评析:在一个函数的内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。本题中的int a=5;只在int a=5;s+=f(&a);内有效。 在函数之外定义的变量称为外部变量,外部变量是全局变量。全局变量可以为本文件中其它函数所共用。它的有效范围为:从定义变量的位置开始到本源文件结束。本题的开头int a=2;即为全局变量,实际上起作用的也就是这个。(38)B知识点:结构体的定义和引用评析:除了可以直接使用C提供的标准类型名(如int、char、float、double、long等)和自己定义的结构体、共用体、指针、枚举类型外,还可以用typedef定义新的类型名来代替已有的类型名。如果在一个程序中,一个整型变量用来计数,可以: typedef int COUNT; COUNT i,j; 即将变量i,j定义为COUNT类型,而COUNT等价于int,因此i,j是整型。但在程序中将i、j定为COUNT类型,可以使人更一目了然地知道它们是用于计数的。 可以定义结构体类型: typedef struct int month; int day; int year; DATE; 定义新类型名DATE,它代表上面定义的一个结构体类型。这时就可以用DATE定义变量: DATE birthday;(不要写成struct DATE birthday;) DATE *p;(p为指向此结构体类型数据的指针) 综上所述,结合本题可知,T是所定义的新的类型名,它代表上面定义的一个结构体类型。这时就可以用T定义变量。(39)D知识点:数组元素的引用评析:cp=c这个语句是将数组c的首行元素地址赋给了指针数组cp。 选项A,cp+1是指将数组c的首行地址加1,即为第二行地址; 选项B,*(cp+3)是地址,等于数组c的首地址加3的那个内存单元的内容,不是对数组元素的引用; 选项C,*(cp+1)+3是地址,等于数组c的首地址加1的那个内存单元中存放的值加3,不是对数组元素的引用。(40)D知识点:文件的概念评析:C语言把文件看作一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。根据数据的组织形式,可分为ASCII码文件和二进制文件。因此,一个C文件是一个字节流或二进制流。它把数据看作是一连串的字符(字节)。而不考虑记录的界限。换句话说,C语言文件并不是由记录组成的。二、填空题(1)【1】中序知识点:二叉树的遍历评析:在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。(2)【2】功能性知识点:程序设计方法与风格。评析:源程序文档化应考虑如下几点:1、符号的命名:符号名的命名应具有一定的实际含义,以便对程序功能的理解。2、程序注释:正确的注释能够帮助读者理解程序。注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,它给出程序的整体说明,主要描述内容可以包括:程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期、修改日期等。功能性注释的位置一般嵌在源程序体中,主要描述其后的语句或程序做什么。3、视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。(3)【3】回溯法知识点:程序的调试评析:调试的关键在于推断程序内部的错误位置及原因。其主要的调试方法有:强行排错法、回溯法和原因排除法。强行排错法:是传统的调试方法,其过程可概括为:设置断点、程序暂停、观察程序状态、继续运行程序。这是目前使用较多、效率较低的调试方法。回溯法:该方法适合于小规模程序的排错。即一旦发现了错误,先分析错误征兆,确定最先发现“症状”的位置。然后,从发现“症状”的地方开始,沿程序的控制流程,逆向跟踪源程序代码,直到找到错误根源或确定错误产生的原因。原因排除法:是通过演绎和归纳,以及二分法来实现的。(4)【4】数据存储 知识点:数据库设计基础:数据字典的概念评析:数据字典是各类数据描述的集合,它通常包括5个部分,即数据项,是数据的最小单位;数据结构,是若干数据项有意义的集合;数据流,可以是数据项,也可以是数据结构,表示某一处理过程的输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论