C语言试卷.docx_第1页
C语言试卷.docx_第2页
C语言试卷.docx_第3页
C语言试卷.docx_第4页
C语言试卷.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】【15】序号的横线上,答在试卷上不得分。(1)设一棵二叉树的中序遍历结果为ABCDEFG,前序遍历结果为DBACFEG,则后序遍历结果为 【l】 。(2)在面向对象方法中,属性与操作相似的一组对象称为 【2】 。(3)在结构化设计方法中,数据流图表达了问题中的数据流与加工之间的关系,并且,每一个 【3】 实际上对应一个处理模块。(4)在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模 块。其中 【4】 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(5)在关系运算中,【5】运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。(6)为了表明一个函数不带返回值,应在定义函数时指定该函数类型为【6】 。(7)下列程序如果去掉for循环外围的大括号对,则会出现编译错误。错误原因是【7】 。(8)对于下列语旬其输出结果为:【8】。(9)下列程序不能通过编译,应该在划线部分填写的语句是【9】 。(10)根据下面的主程序,完成类的一种构造函数的最简单形式。#include(11)下列程序的执行结果为【1l】 。(12)下列程序的运行结果是【12】 。(13)完成下列类的构造函数,初始化语句为【13】 (14)根据下列程序的执行结果,可以断定划线部分的修饰符应为【14】 。执行结果:(15)下列程序的输出结果是【l5】 。一、选择题(1)A【解析】线性表是线性结构;线性链表是线性表的链式存储结构,因此也是线性结构;栈与队列 是特殊的线性表,因此也是线性结构;二叉树是非线性结构。(2)c【解析】显然,对于栈和队列来说,插入时不需要移动其他元素。(3)B【解析】数据的存储结构是指数据的逻辑结构在计算机中的表示。(4)B【解析】二叉树有一个性质:在任意一棵二叉树中,度为O的结点(即叶子结点)总是比度为2的 结点多一个。由于本题中的二叉树有70个叶子结点,因此有69个度为2的结点。 该二叉树中总的结点数为度为2的结点数+度为1的结点数+叶子结点数=69+80+70=219(5)B【解析】栈(stack)是限定在一端进行插入与删除的线性表。(6)B【解析】软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠 性的鉴定。 由此町知,测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法 暴露程序中的错误和缺陷。测试只能说明程序有错,而不能证明程序无错,希望通过有限次的测试 就能发现程序中的所有错误是不可能的,即完全测试是不可能的。(7)A【解析】在面向对象的程序设计中,对象是面向对象的软件的基本模块,它是由数据及可以对 这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处 理来设置,没有无关的操作。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性 强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自 然就比较少,因此,对象之间的耦合通常比较松。因此,选项B与C中的说法都是错误的,而选项A中的说法是正确的。(8)C【解析】数据库设计是指在已有数据库管理系统的基础上建立数据库。(9)D【解析】在并(U)、交(n)、差(一)三种运算中,都要求参加运算的两个关系具有相同的属性名 表,其运算结果也与它们具有相同的属性名。即它们的表框架是相同的。由此可以看出,本题给出 的两个关系R与s其表格框架足不同的(R是二元关系,s是三元关系),因此,它们不能作并(U)、 交(n)、差(一)这三种运算。而两个不同框架的关系是可以作笛卡尔积()运算的。(10)D【解析】E-R(实体一联系,EntityRelationship)图是设计概念模型的有力工具。在E-R图中, 用三种图框分别表示实体、属性和实体之间的联系: 用矩形框表示实体,框内标明实体名; 用椭圆状框表示实体的属性,框内标明属性名; 用菱形框表示实体间的联系,框内标明联系名; 实体与其属性之间以无向边连接,菱形框与相关实体之间也用无向边连接,并在无向边旁标 明联系的类型。 因此,用E-R图不仅可以简单明了地描述实体及其相互之间的联系,还可以方便地描述多个实体集 之间的联系和一个实体集内部实体之间的联系。 由此可知,选项A、B、c三个选项中的说法都是不对的。(11)B【解析】本题也是考查c语言中函数的概念及其使川。函数调用时,值可以双向传递,并没有限 制使用全局变量还是局部变量,需要根据程序的逻辑需要进行选择。(12)D【解析】函数在定义时已经可以指定其函数类型,则函数返回值类型就是该类型。(13)D【解析】本题考查类型定义typedef的使用方式,考生常犯的问题是把两者的位置颠倒。(14)c【解析】本题其实是考查各级运算符的优先级的。选项A赋值符号右侧为逗号表达式,其取 值为最后一项表达式的值;选项B隐含表示为j=j+1,这是很常用的一种赋值表达式。选项D赋 值符号右侧为逻辑表达式,其值为1或O,可以赋值给变量x。将选项C展开为i+1=i+1+1,这是 错误的。(15)A【解析】本题很简单,不过考生要注意引用是C+的新特性。只有结构是C语言就出现的特性。(16)C【解析】本题考查for循环条件中三个表达式的执行顺序。首先执行表达式一,然后执行表达 式二,如果表达式二为真,则循环体执行,然后执行表达式三,接着继续执行表达式二,如此循环。 考生要注意的是,本题中表达式三中包含了变量x的增量操作,因此可以由表达式二和三一起控制 循环体的执行次数。本题正确答案为C。(17)D【解析】在数组这部分的知识里面,数组下标越界是一个比较容易忽略的问题,其下标是从O开始,至n一1为止,因此选项D是正确答案。18)D【解析】混合表达式的值的类型是由表达式中具有最高精度的类型确定,因此可知选项B可排除。 注意bb的结果应是l.00000,而(int)a则为5,相加的结果还是double型,故正确答案应为D。(19)D【解析】赋值语句合法的重要标志之一就是赋值符号的左侧应该表示为一个变量,即可以在内 存中存在一块空间用于存放赋值符号右侧的值。据此可以断定选项A和B可以排除。注意:选 项C中不是逗号表达式,要考虑优先级的问题。本题答案为D。(20)D【解析】很明显,本题考查的是表达式的值作为结果输出。可以看出,本表达式是一个逻辑表 达式,其结果为真或假,那么输出则对应l和O,故排除选项C。本题答案为I)。(21)D【解析】函数声明时,可以指定其形参的默认值,不过要从右向左指定;可以省略形参名,仅以 形参类型表示;形参表之间用逗号分割。因此,本题答案为D。(22)D【解析】本题考查指针能够进行的运算方式。指针可以加减一个整数,两个指针可以相减,表 示指针之间的元素个数。指针相加则没有意义因此本题答案为D。(23)C【解析】静态函数不能说明为虚函数。(24)B【解析】this指针是系统隐含的用于指向当前对象的指针。由于静态函数是同类中所以对象 都共享的函数,在内存当中只存在一份,不属于某个对象所有所以静态函数没有this指针。(25)A【解析】本题考查表达式值的类型由参与运算的所有变量的类型中优先级最高的变量类型所 决定。不过要注意的是整型向float型转换时将丢失小数部分即向下取值。(26)B【解析】本题很简单,考查COUt对象的成员函数put方法和操作符的使用方法e(27)A【解析】:?是C+中惟一一个三目运算符,不能被重载。(28)B【解析】本题考查几种变量的作用域范围及其分类。(29)B【解析】引用是C+引入的一个新概念。表示变量或对象的别名。(30)D【解析】类的构造函数不能指定函数类型,由系统采取默认的处理方式,不需要用户参与。(31)C【解析】虚函数的引入是为了解决动态绑定问题使类的实例表现出多态性,虚函数在继承后 依然保持虚函数特性,此时不需要用virtual关键词修饰。(32)C【解析】本题考查类的构造函数的作用,构造函数一般负责完成对象建立时的初始化工作如 资源的分配。(33)C【解析】继承是类的一个重要特性,没有继承,面向对象方法也就不存在。正是有了继承,才呈 现出丰富多彩的类和对象。(34)D【解析】虚函数不能定义为静态函数;虚函数的作用在于继承,表现出动态性。所以在派生类 中定义的虚函数必须和基类中对应的虚函数具有相同的参数个数和类型。(35)C【解析】本题考查纯虚函数的定义形式。由于纯虚函数在最后要有“=O”故据此排除A和I)。 而B中没有出现virtual关键词故正确答案为C。二、填空题(1)【1】ACBEGFD【解析】由于在前序遍历中首先访问根结点因此,前序序列中的第一个结点为二 叉树的根结点,即D为二叉树的根结点。又由于在中序遍历中访问根结点的次序为居中,而访问左 子树上的结点为居先,访问右子树上的结点为最后,因此,在中序序列中,以根结点(D)为分界线,前 面的子序列(ABC)一定在左子树中,后面的子序列(EFG)一定在右子树中。同样的道理,对于已经 划分出的每一个子序列的所有结点中,位于前序序列最前面的一个结点为子树的根结点,而在中序 序列中位于该根结点前面的结点构成左子树上的结点子序列,位于该根结点后面的结点构成右子树 上的结点子序列。这个处理过程直到所有子序列为空为止。根据上述道理,该二叉树恢复的过程如下图所示 根据后序遍历的方法,对该二叉树后序遍历的结果为ACBEGFD。(2)【2】类【解析】在面向对象方法中,类描述的是具有相似性质的一组对象。因此,属性与操作相似 的一组对象称为类。(3)【3】加工【解析】SD方法实际上是面向数据流图的,即它的工作对象实际上是在SA方法中形成 的数据流图。因此,可以由数据流图来导出结构图。另外,由数据流图导出结构图的关键是找出中 心加工,而每个加工则对应一个处理模块。(4)【4】驱动模块【解析】在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和 承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的 结果。(5)【5】选择【解析】在关系运算中选择运算是在指定的关系中选取所有满足给定条件的元组构成 一个新的关系,而这个新的关系是原关系的一个子集。(6)【6】void【解析】void表明该函数不带返回值如果没有void则系统会返回一个默认类型的随机 值,这对程序可能造成不必要的问题。(7)【7】a重定义【解析】在本题中for循环外围的大括号对没有实质含义,仅用于函数的作用域范 围。如果去掉该括号,编译错误就会发生,因为变量a出现了重定义错误。(8)【8】Pello【解析】注意,两个字符串都没有名字,属字符串常量,在内容中是同一份内容。因此,对 strl进行重新赋值,仅仅替换了该字符数组的第一q-字符。两个指针指向同一个字符 串,因此输出为Pello。(9)【9】return x;【解析】本题函数声明时指定了函数的返回值为double,因此在函数体中必须存 在一个return语句。(10)【10】base(int n)【解析】注意根据main函数中对类base的使用情况可知hase类必须提供 整型单参构造函数,同时要求构造其最简单的形式,故函数体为空。(11)【11】a=3,b=2【解析】本题考查函数间引用传递的知识点。g(a)执行之后,返回值为l,a也变 为l,这就是引用传递的特点。然后执行f(1),返回值为2,此时a=2十l,故a此时为3。由于f(b)不具有引用传递的特征,因此执行后b=O+2,结果为2。(12)【12】in C【解析】本题考查虚函数和多态性。原本o bj指向祖先类,随后被瞅值,指向新的子孙类,则在使用USe这个重载的虚函数时,根据当前指向可确定调用子孙的同名虚函数。(13)【1 3】x=initx;y=initly;【解析

温馨提示

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

评论

0/150

提交评论