C语言试卷

发布 2021-04-23 11:16:28 阅读 5170

二、填空题(每空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(实体一联系,entity~relationship)图是设计概念模型的有力工具。在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可排除。 注意b/b的结果应是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】选择【解析】在关系运算中.选择运算是在指定的关系中选取所有满足给定条件的元组.构成一个新的关系,而这个新的关系是原关系的一个子集。

c语言试卷c

a.p q c.p n1 10 若有说明语句 int a,b,c,d c 则能从键盘读入三个整数分别赋给变量a b c的语句是。a.scanf d d d a,b,d b.scanf d d d a,b,d c.scanf d d d a,b,dd.scanf d d d a,b,d 11 c语言标...

C语言试卷A

青海大学试卷 a卷 系别 班级学号姓名。考试课程 程序设计基础 c 考试日期 2009 年 12月17日。注 所有答案均写在答题卡上,答在试卷上不得分,考试结束后试卷和答题卡一并交回。一 填空题 每空1分,共16分 1 整型静态数组没有初始化,也没有赋值,此时数组元素的值均为 0 2 数组在内存中占...

C语言试卷

一 填空共5题 共计10分 第1题 2.0分 题号 339 赋值运算符的结合性是由 右 至 左 第2题 2.0分 题号 925 在c 语言结构化程序中,函数 是程序的基本组成单元 在c 语言的面向对象设计框架中,对象 是程序的基本组成单元。第3题 2.0分 题号 926 c 语言的参数传递机制包括传...