计算机二级C语言公共基础典型120题

时间:2019-05-13 05:08:44下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《计算机二级C语言公共基础典型120题》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《计算机二级C语言公共基础典型120题》。

第一篇:计算机二级C语言公共基础典型120题

公共基础120题

(1)下面叙述正确的是______。(C)A.算法的执行效率与数据的存储结构无关

B.算法的空间复杂度是指算法程序中指令(或语句)的条数 C.算法的有穷性是指算法必须能在执行有限个步骤之后终止 D.以上三种描述都不对

(2)以下数据结构中不属于线性数据结构的是______。(C)A.队列 B.线性表 C.二叉树 D.栈

(3)在一棵二叉树上第5层的结点数最多是______。(B)A.8 B.16 C.32 D.15(4)下面描述中,符合结构化程序设计风格的是______。(A)A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B.模块只有一个入口,可以有多个出口 C.注重提高程序的执行效率 D.不使用goto语句

(5)下面概念中,不属于面向对象方法的是______。(D)A.对象 B.继承 C.类 D.过程调用

(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。(B)A.可行性分析 B.需求分析 C.详细设计 D.程序编码

(7)在软件开发中,下面任务不属于设计阶段的是______。(D)A.数据结构设计 B.给出系统模块结构 C.定义模块算法

D.定义需求并建立系统模型(8)数据库系统的核心是______。(B)A.数据模型 B.数据库管理系统 C.软件工具 D.数据库

(9)下列叙述中正确的是______。(C)A.数据库是一个独立的系统,不需要操作系统的支持 B.数据库设计是指设计数据库管理系统

C.数据库技术的根本目标是要解决数据共享的问题 D.数据库系统中,数据的物理结构必须与逻辑结构一致

(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。(A)A.内模式 B.外模式 C.概念模式 D.逻辑模式

(11)算法的时间复杂度是指______。(C)A.执行算法程序所需要的时间 B.算法程序的长度

C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数

(12)下列叙述中正确的是______。(A)A.线性表是线性结构 B.栈与队列是非线性结构 C.线性链表是非线性结构 D.二叉树是线性结构

(13)设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。(B)A.349 B.350 C.255 D.351(14)结构化程序设计主要强调的是______。(B)A.程序的规模 B.程序的易读性 C.程序的执行效率 D.程序的可移植性

(15)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。(D)A.概要设计 B.详细设计 C.可行性分析 D.需求分析

(16)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。(A)A.控制流 B.加工 C.数据存储 D.源和潭

(17)软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。(B)A.阶段性报告 B.需求评审 C.总结 D.都不正确

(18)下述关于数据库系统的叙述中正确的是______。(A)A.数据库系统减少了数据冗余 B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致 D.数据库系统比文件系统能管理更多的数据(19)关系表中的每一横行称为一个______。(A)A.元组 B.字段 C.属性 D.码

(20)数据库设计包括两个方面的设计内容,它们是______。(A)A.概念设计和逻辑设计 B.模式设计和内模式设计 C.内模式设计和物理设计 D.结构特性设计和行为特性设计(21)算法的空间复杂度是指______。(D)A.算法程序的长度 B.算法程序中的指令条数 C.算法程序所占的存储空间 D.算法执行过程中所需要的存储空间

(22)下列关于栈的叙述中正确的是______。(D)A.在栈中只能插入数据 B.在栈中只能删除数据 C.栈是先进先出的线性表 D.栈是先进后出的线性表

(23)在深度为5的满二叉树中,叶子结点的个数为______。(C)A.32 B.31 C.16 D.15(24)对建立良好的程序设计风格,下面描述正确的是______。(A)A.程序应简单、清晰、可读性好 B.符号名的命名要符合语法 C.充分考虑程序的执行效率 D.程序的注释可有可无

(25)下面对对象概念描述错误的是______。(A)A.任何对象都必须有继承性 B.对象是属性和方法的封装体 C.对象间的通讯靠消息传递 D.操作是对象的动态性属性

(26)下面不属于软件工程的3个要素的是______。(D)A.工具 B.过程 C.方法 D.环境

(27)程序流程图(PFD)中的箭头代表的是______。(B)A.数据流 B.控制流 C.调用关系 D.组成关系

(28)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是______。(A)A.数据库系统 B.文件系统 C.人工管理 D.数据项管理

(29)用树形结构来表示实体之间联系的模型称为______。(B)A.关系模型 B.层次模型 C.网状模型 D.数据模型

(30)关系数据库管理系统能实现的专门关系运算包括______。(B)A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表

(31)算法一般都可以用哪几种控制结构组合而成______。(D)A.循环、分支、递归 B.顺序、循环、嵌套 C.循环、递归、选择 D.顺序、选择、循环

(32)数据的存储结构是指______。(B)A.数据所占的存储空间量

B.数据的逻辑结构在计算机中的表示 C.数据在计算机中的顺序存储方式 D.存储在外存中的数据(33)设有下列二叉树:

对此二叉树中序遍历的结果为______。(B)A.ABCDEF B.DBEAFC C.ABDECF D.DEBFCA(34)在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。(D)D.消息 A.调用语句 B.命令 C.口令

(35)检查软件产品是否符合需求定义的过程称为______。(A)A.确认测试 B.集成测试 C.验证测试 D.验收测试

(36)下列工具中属于需求分析常用工具的是______。(D)A.PAD B.PFD C.N-S D.DFD(37)下面不属于软件设计原则的是______。(C)A.抽象 B.模块化 C.自底向上 D.信息隐蔽

(38)索引属于______。(B)A.模式 B.内模式 C.外模式 D.概念模式

(39)在关系数据库中,用来表示实体之间联系的是______。(D)A.树结构 B.网结构 C.线性表 D.二维表

(40)将E-R图转换到关系模式时,实体与联系都可以表示成______。(B)A.属性 B.关系 C.键 D.域

(41)在下列选项中,哪个不是一个算法一般应该具有的基本特征______。(C)A.确定性 B.可行性 C.无穷性

D.拥有足够的情报

(42)希尔排序法属于哪一种类型的排序法______。(B)A.交换类排序法 B.插入类排序法 C.选择类排序法 D.建堆排序法

(43)下列关于队列的叙述中正确的是______。(C)A.在队列中只能插入数据 B.在队列中只能删除数据 C.队列是先进先出的线性表 D.队列是先进后出的线性表

(44)对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。(B)A.N+1 B.N C.(N+1)/2 D.N/2(45)信息隐蔽的概念与下述哪一种概念直接相关______。(B)A.软件结构定义 B.模块独立性 C.模块类型划分 D.模拟耦合度

(46)面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。(C)A.模拟现实世界中不同事物之间的联系 B.强调模拟现实世界中的算法而不强调概念

C.使用现实世界的概念抽象地思考问题从而自然地解决问题 D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考

(47)在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。(C)A.详细设计 B.需求分析 C.总体设计 D.编程调试

(48)软件调试的目的是______。(B)A.发现错误 B.改正错误 C.改善软件的性能 D.挖掘软件的潜能

(49)按条件f对关系R进行选择,其关系代数表达式为______。(C)A.R|X|R B.R|X|R f C.бf(R)D.∏f(R)(50)数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。(D)A.自顶向下 B.由底向上 C.由内向外 D.由整体到局部

(51)在计算机中,算法是指______。(C)A.查询方法 B.加工方法

C.解题方案的准确而完整的描述 D.排序方法

(52)栈和队列的共同点是______。(C)A.都是先进后出 B.都是先进先出

C.只允许在端点处插入和删除元素 D.没有共同点

(53)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。(A)A.cedba B.acbed C.decab D.deabc(54)在下列几种排序方法中,要求内存量最大的是______。(D)A.插入排序 B.选择排序 C.快速排序 D.归并排序

(55)在设计程序时,应采纳的原则之一是______。(A)A.程序结构应有助于读者理解 B.不限制goto语句的使用 C.减少或取消注解行 D.程序越短越好

(56)下列不属于软件调试技术的是______。(B)A.强行排错法 B.集成测试法 C.回溯法 D.原因排除法

(57)下列叙述中,不属于软件需求规格说明书的作用的是______。(D)A.便于用户、开发人员进行理解和交流

B.反映出用户问题的结构,可以作为软件开发工作的基础和依据 C.作为确认测试和验收的依据 D.便于开发人员进行需求分析

(58)在数据流图(DFD)中,带有名字的箭头表示______。(C)A.控制程序的执行顺序 B.模块之间的调用关系 C.数据的流向 D.程序的组成成分

(59)SQL语言又称为______。(C)A.结构化定义语言 B.结构化控制语言 C.结构化查询语言 D.结构化操纵语言

(60)视图设计一般有3种设计次序,下列不属于视图设计的是______。(B)A.自顶向下 B.由外向内 C.由内向外 D.自底向上(61)数据结构中,与所使用的计算机无关的是数据的______。(C)A.存储结构 B.物理结构 C.逻辑结构 D.物理和存储结构

(62)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是______。(D)A.ABCED B.DBCEA C.CDABE D.DCBEA(63)线性表的顺序存储结构和线性表的链式存储结构分别是______。(B)A.顺序存取的存储结构、顺序存取的存储结构 B.随机存取的存储结构、顺序存取的存储结构 C.随机存取的存储结构、随机存取的存储结构 D.任意存取的存储结构、任意存取的存储结构(64)在单链表中,增加头结点的目的是______。(A)A.方便运算的实现 B.使单链表至少有一个结点 C.标识表结点中首结点的位置 D.说明单链表是线性表的链式存储实现

(65)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。(B)A.模块间的关系

B.系统结构部件转换成软件的过程描述 C.软件层次结构 D.软件开发过程

(66)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。(B)A.PAD图 B.N-S图 C.结构图 D.数据流图

(67)数据处理的最小单位是______。(C)A.数据 B.数据元素 C.数据项 D.数据结构

(68)下列有关数据库的描述,正确的是______。(C)A.数据库是一个DBF文件 B.数据库是一个关系

C.数据库是一个结构化的数据集合 D.数据库是一组文件

(69)单个用户使用的数据视图的描述称为______。(A)A.外模式 B.概念模式 C.内模式 D.存储模式

(70)需求分析阶段的任务是确定______。(D)A.软件开发方法 B.软件开发工具 C.软件开发费用 D.软件系统功能

(71)算法分析的目的是______。(D)A.找出数据结构的合理性

B.找出算法中输入和输出之间的关系 C.分析算法的易懂性和可靠性 D.分析算法的效率以求改进

(72)n个顶点的强连通图的边数至少有______。(C)A.n-1 B.n(n-1)C.n D.n+1(73)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是______。(B)A.堆排序 B.直接插入排序 C.快速排序 D.直接选择排序

(74)用链表表示线性表的优点是______。(A)A.便于插入和删除操作

B.数据元素的物理顺序与逻辑顺序相同 C.花费的存储空间较顺序存储少 D.便于随机存取

(75)下列不属于结构化分析的常用工具的是______。(D)A.数据流图 B.数据字典 C.判定树 D.PAD图

(76)软件开发的结构化生命周期方法将软件生命周期划分成______。(A)A.定义、开发、运行维护 B.设计阶段、编程阶段、测试阶段 C.总体设计、详细设计、编程调试 D.需求分析、功能定义、系统设计

(77)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。(C)A.循环的集合 B.地址的集合 C.路径的集合 D.目标的集合

(78)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。(D)A.数据无冗余 B.数据可共享

C.专门的数据管理软件 D.特定的数据模型

(79)分布式数据库系统不具有的特点是______。(B)A.分布式 B.数据冗余

C.数据分布性和逻辑整体性 D.位置透明性和复制透明性

(80)下列说法中,不属于数据模型所描述的内容的是______。(C)A.数据结构 B.数据操作 C.数据查询 D.数据约束

(1)算法的复杂度主要包括______复杂度和空间复杂度。答:时间

(2)数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。答:模式#逻辑模式#概念模式

(3)若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。答:黑盒

(4)如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人”与实体“设备”之间存在______联系。答:一对多#1:N#1:n(5)关系数据库管理系统能实现的专门关系运算包括选择、连接和______。答:投影

(6)在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、______遍历和后序遍历。答:中序

(7)结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。答:模块化

(8)软件的调试方法主要有:强行排错法、______和原因排除法。答:回溯法

(9)数据库系统的三级模式分别为______模式、内部级模式与外部级模式。答:概念#概念级(10)数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。答:数据存储

(11)设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点。答:250(12)在最坏情况下,冒泡排序的时间复杂度为______。答:n(n-1)/2#n*(n-1)/2#O(n(n-1)/2)#O(n*(n-1)/2)(13)面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。答:实体

(14)软件的需求分析阶段的工作,可以概括为四个方面:______、需求分析、编写需求规格说明书和需求评审。答:需求获取

(15)______是数据库应用的核心。答:数据库设计

(16)数据结构包括数据的______结构和数据的存储结构。答:逻辑

(17)软件工程研究的内容主要包括:______技术和软件工程管理。答:软件开发

(18)与结构化需求分析方法相对应的是______方法。答:结构化设计

(19)关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。答:参照完整性

(20)数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。答:概念

(21)栈的基本运算有三种:入栈、退栈和______。答:读栈顶元素#读栈顶的元素#读出栈顶元素

(22)在面向对象方法中,信息隐蔽是通过对象的______性来实现的。答:封装

(23)数据流的类型有______和事务型。答:变换型

(24)数据库系统中实现各种数据管理功能的核心软件称为______。答:数据库管理系统#DBMS(25)关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。答:查询

(26)实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。答:空间复杂度和时间复杂度

(27)数据结构包括数据的逻辑结构、数据的 ______以及对数据的操作运算。答:存储结构

(28)一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的______。答:可重用性

(29)面向对象的模型中,最基本的概念是对象和 ______。答:类

(30)软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。答:完善性

(31)算法的基本特征是可行性、确定性、______和拥有足够的情报。答:有穷性

(32)顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。答:相邻

(33)Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。答:数据结构

(34)数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

答:概念设计阶段#数据库概念设计阶段

(35)数据库保护分为:安全性控制、______、并发性控制和数据的恢复。答:完整性控制

(36)测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。答:调试

(37)在最坏情况下,堆排序需要比较的次数为______。答:O(nlog2n)(38)若串s=“Program”,则其子串的数目是______。答:29(39)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。答:1对多#1:N(40)数据库管理系统常见的数据模型有层次模型、网状模型和______三种。答:关系模型

第二篇:2018计算机二级C语言考试真题汇总(本站推荐)

模拟卷1 1 [填空题]

下列给定程序中,函数fun的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。

例如,若s所指字符串为“baacda”,c中的字符为a,执行后S所指字符串为“baaaacdaa”。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!

试题程序:

参考解析:

【参考答案】

【解题思路】

填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘’。

填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。

填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为c。

二、程序修改题

[简答题]

下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。

例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abcd”,则c中的字符串应为“aBcdeFgH”。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODl1.C中,不得增行或删行,也不得更改程序的结构!

参考解析:

【参考答案】(1)int k=0;

(2)while(*p||*q)

【考点分析】

本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。

【解题思路】

(1)变量k存放数组e的下标,因此应初始化为0。

(2)while循环语句的循环条件是判断两个字符串是否到达结尾。三.程序设计题

[简答题]

规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:“****A*BC*DEF*G*******”.删除后,字符串中的内容应当是:“****A*BC*DEF*G”。在编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

参考解析:

【参考答案】

【考点分析】

本题考查:删除字符串尾部+号;删除的主要思想是把不删除的字符保留起来。

【解题思路】

对于一个字符串要删除其尾部的*号,只需要在最后一个不是*号的字符后面加上结束符号‘’。具体操作为:首先找到字符串的结尾,然后从最后一个字符开始往前逐个判断是否为*号,直到找到非*号字符为止,最后在该字符后面加上结束符号‘’。

模拟卷2

一、程序填空题

[填空题]

下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。

请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

参考解析:

【参考答案】(1)N

(2)k

(3)ss[i]

【考点分析】

本题考查:for循环语句;if语句条件表达式;字符串拷贝函数strepy的使用。

【解题思路】

填空l:for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是i

填空2:题目要求删除串长度小于k的字符串,所以if条件语句的条件表达式是len<=k。

填空3:通过字符串拷贝函数将串长不大于k的字符串另存,并记录个数。

【解题宝典】

字符串拷贝函数strcpy,其格式为:strepy(字符数组名1,字符数组名2)

功能:把字符数组2中的字符串拷贝到字符数组l中。字符串结束标识‘’也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。

二、程序修改题

[简答题]

给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。

例如:当输入100时,输出:100=9+10+11+12+13+14+15+16

100=18+19+20+21+22

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

参考解析:

【参考答案】(1)m=n;

(2)m=m-c;c++;

(3)if(m==0)

【解题思路】

(1)每次循环,程序需要对n执行减去连续的正整数序列 来判断n是否刚好为0,即n是否是连续的正整数序列之和,所以需要使用临时变量m寄存n的值,每次循环对m执行减运算操作,不满足继续下一轮。另外,程序声明变量m时,未初始化它的值,所以此处应该修改为:m=n。

(2)语法错误。C语言中每个语句必须以分号结束,所以应修改为:m=m-c;c++。

(3)题目判断n是否是连续的正整数序列之和,若是,则输出所有序列,程序中m依次减去连续的正整数,当m为0时,表示m(即11)满足条件,再输出当前序列中的每个正整数,所以此处判断条件反了,应修改为:if(m==0)。3 [简答题]

请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后。

例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;P的值为3。移动后,一维数组中的内容应为:5、6、7、8、9、10、1、2、3、4。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:

参考解析:

【参考答案】

【解题思路】

本题要求把下标从0~P(含P,P小于等于n-1)的数组元素平移到数组的最后,可以根据输入的P值,通过for循环语句,将P+1-n-1(含n-1)之间的数组元素依次向前移动P+1个存储单元,即W[j-1]=w[j];,同时将0~P个数组元素逐一赋给数组w[n-1],也就是通过语句w[n-1]=ch;来实现此操作的。

一、程序填空题 [填空题]

给定程序中,函数fun的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!

试题程序:

参考解析:

【参考答案】

【解题思路】

填空1:由语句fopen(“filel.txt”,“r”)可知,fp应该是文件类型指针,因此本空应该填写FILE *。

填空2:feof函数只能对文件类型数据进行操作,因此本空应填写fp。

填空3:putchar()代表输入一个字符,从ch=fgetc(fp)可以看出本题应该填写ch。

二、程序修改题

[简答题]

给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到C所指数组中,过长的剩余字符接在C所指的数组的尾部。例如,当a所指字符串中的内容为“abcdefg”,b所指字符串中的内容为“1234”时,C所指数组中的内容应为“a4b3c2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdefg”时,C所指数组中的内容应该为“192f3e4dcba”。

请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

参考解析: 【参考答案】

【解题思路】

(1)由i和j定义的初始值可知,此处应该判断i是否小于j,所以应改为while(i

(2)此处将if错写成If,这个错误比较简单,但往往不容易发现。三.程序设计题

[简答题]

请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。

例如,若输入17,5,则应输出19、23、29、31、37。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:

参考解析:

【参考答案】

【解题思路】

本题主要考查素数的判定方法,如果一个数不能被除了1和其自身以外的数整除,则这个数为素数。本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存入数组xx中。

第三篇:计算机二级公共基础120题详解版

资料下载

公共基础知识120题详解篇

(1)下面叙述正确的是______。A.算法的执行效率与数据的存储结构无关

B.算法的空间复杂度是指算法程序中指令(或语句)的条数 C.算法的有穷性是指算法必须能在执行有限个步骤之后终止 D.以上三种描述都不对(1)[答案]C [考点]程序设计基础 [评析] 时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。A应为有关。

(2)以下数据结构中不属于线性数据结构的是______。A.队列 B.线性表 C.二叉树 D.栈(2)[答案]C [考点]数据结构与算法 [评析] 一棵二叉树的一个结点下面可以有2个子结点,故不是线性结构(通俗地理解,看是否能排成条直线)。A是先进先出的线性表;B是宏观概念,包括顺序表、链表、堆栈、队列…;D是先进后出的线性表

(3)在一棵二叉树上第5层的结点数最多是______。A.8 B.16 C.32 D.15

Page 1 of 46

资料下载

(3)[答案]B [考点]数据结构与算法 [评析]依次从上到下,可得出: 第1层结点数为1; 第2层结点数为2*1=2; 第3层结点数为2*2=4;

第n层结点数为2的n-1次幂,如图所示

(4)下面描述中,符合结构化程序设计风格的是______。

A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B.模块只有一个入口,可以有多个出口 C.注重提高程序的执行效率 D.不使用goto语句(4)[答案]A [考点]程序设计基础 [评析] B没这规定,模块之间的可以通过多个接口来耦合

C结构化程序设计提倡程序的可读性(可理解性),超过程序执行效率的要求

D结构化程序设计限制goto语句的使用,因为goto语句的功能可以用三种基本的控制结构来代替,但也不是绝对不能用,只是限制使用(少用)。

(5)下面概念中,不属于面向对象方法的是______。A.对象 B.继承 C.类 D.过程调用(5)[答案]D [考点]软件工程基础

Page 2 of 46

资料下载

[评析] 面向对象=对象+类+继承+通过消息的通信 对象:一组属性及其上的操作的封装体 类:一组有相同属性和操作的对象的集合

继承:一个类为另一个类上的扩充的方式,子类继承父类,主要目的是代码复用 消息:对象间通信的手段

D是结构化程序设计或过程式(函数式)语言中的,一般的面向对象程序设计语言兼容这种方式,但不是其特征,故最佳选项为D(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。A.可行性分析 B.需求分析 C.详细设计 D.程序编码

(6)[答案]B [考点]软件工程基础 [评析] 分析员对用户的要求作出分析,并画出数据流程图,该图通俗易懂,不涉及到如何在计算机上实现,这是需求分析阶段。

软件工程中的瀑布模型:

问题定义,可行性研究,需求分析,概要设计,详细设计,编码,测试,运行和维护 相关链点:

层次图和HIPO图是概要设计中的工具图;程序流程图、N-S图、问题分析PAD图、设计程序语言PDL是详细设计中的工具图

(7)在软件开发中,下面任务不属于设计阶段的是______。A.数据结构设计 B.给出系统模块结构 C.定义模块算法

D.定义需求并建立系统模型(7)

Page 3 of 46

资料下载

[答案]D [考点]软件工程基础 [评析] A、B为概要设计中的,C为详细设计中的,D为分析阶段中的(8)数据库系统的核心是______。A.数据模型 B.数据库管理系统 C.软件工具 D.数据库(8)[答案]B [考点]数据库设计基础 [评析] 数据库管理系统DBMS是数据库系统的核心,上层与用户打交道,底层与操作系统接口 注意点:数据库系统与数据库管理系统的区别

前者指的一整套业务系统,包括用户、应用程序、DBMS及操作系统的支持(9)下列叙述中正确的是______。

A.数据库是一个独立的系统,不需要操作系统的支持 B.数据库设计是指设计数据库管理系统

C.数据库技术的根本目标是要解决数据共享的问题 D.数据库系统中,数据的物理结构必须与逻辑结构一致

(9)[答案]C [考点]数据库设计基础 [评析] 晕倒,数据库管理系统是人人都可设计的吗?那SYBASE和ORACLE等不都没饭吃了?普通人的数据库设计就是在DBMS的支持下设计几张表格,命几个名而已;D也错了的,数据库具有物理独立性和逻辑独立性,比如QQ是一个完整的数据库系统,我们使用的只是客户端应用程序,其数据库在腾讯的服务器上,物理独立性呢指的是数据库的底层结构改变了,而QQ的客户端不用变,对应地,逻辑独立性是指QQ的客户端改变了,数指据库的结构不用变了,否则,这么多QQ版本,那腾讯的服务器不是乱了套?

Page 4 of 46

资料下载

(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。A.内模式 B.外模式 C.概念模式 D.逻辑模式(10)[答案]A [考点]数据库设计基础 [评析] 通过前些题可知道,数据库的物理结构最底层,即对应内模式,对应的模式映像为内模式/模式(概念模式映像),逻辑独立性则对应于模式/外模式映像(11)算法的时间复杂度是指______。A.执行算法程序所需要的时间 B.算法程序的长度

C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数(11)[答案]C [考点]数据结构与算法 [评析] 算法的复杂度分时间复杂度和空间复杂度。

时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。称O(f(n))和O(g(n))为该算法的复杂度。

简单的例子比如常见的顺序结构时间复杂度为O(1),1层循环里面次数为n,时间复杂度就是O(n),2层循环for i=1 to n,for j=1 to n算法时间复杂度为O(n2)(里面为n的平方),复杂度主要用于算法的效率比较与优化,比如排序,查找…(12)下列叙述中正确的是______。A.线性表是线性结构 B.栈与队列是非线性结构

Page 5 of 46

资料下载

C.线性链表是非线性结构 D.二叉树是线性结构

(12)[答案]A [考点]数据结构与算法 [评析] 一棵二叉树的一个结点下面可以有2个子结点,故不是线性结构(通俗地理解,看是否能排成条直线)。此题与(2)题类似

(13)设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。A.349 B.350 C.255 D.351(13)[答案]B [考点]数据结构与算法 [评析] 完全二叉树:若二叉树中最多只有最下面两层的结点的度可以小于2,并且最下面一层的结点(叶结点)都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。比如图:

完全二叉树除叶结点层外的所有结点数(叶结点层以上所有结点数)为奇数,此题中,699是奇数,叶结点层以上的所有结点数为保证是奇数,则叶结点数必是偶数,这样我们可以立即选出答案为B!如果完全二叉树的叶结点都排满了,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1比如图:

此题的其实是一棵满二叉树,我们根据以上性质,699+1=700,700/2=350,即叶结点数为350,叶结点层以上所有结点数为350-1=349。(14)结构化程序设计主要强调的是______。A.程序的规模

Page 6 of 46

资料下载

B.程序的易读性 C.程序的执行效率 D.程序的可移植性(14)[答案]B [考点]程序设计基础 [评析] 又是结构化的问题,何谓结构化? 简单地比如: VB: If...End If C: if..{...} Pascle: Begin...End 我们在“结构”的中间写代码,从哪执行到哪结束我们能很快抓住!此题中重要性为:B>C>D(15)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。A.概要设计 B.详细设计 C.可行性分析 D.需求分析(15)[答案]D [考点]软件工程基础 [评析] 题中所述为需求分析

可行性研究包括经济可行性、技术可行性、操作可行性,即以最小的代价确定系统的规模是否现实 概要设计的任务是确定软件的总体结构、子结构和模块的划分

详细设计的任务是确定每一模块的实现细节,包括数据结构、算法和接口 也许有人这么久了还不知道什么叫系统,什么叫模块。

晕倒,这里罗嗦一下,软件工程中的系统指的整个软件系统,比如QQ的所有东西,我们用的是客户端程序,实际的东西放在腾讯公司的服务器上,主要是数据库,包括在中间的传输过程,这一整个相关的东东

Page 7 of 46

资料下载

都叫做OICQ的系统;什么叫模块,这里不单指如VB里的“标准模块”、“类模块”,也不单指一个窗体或者一个文件,宏观上讲,软件工程中把一种功能或相关功能把它做成一个模块,这个模块有可能是一个过程,有可能是一个函数…从功能角度度量模块内的联系为模块的内聚(一般来说越强越好,不易出错);模块之间的联系为耦合,比如我们编程中常用把一实参的值赋给了函数中的形参,使函数完成某一功能,耦合度越低越好,独立性就强;

何谓独立性?比如我们二级编程都有考到全局变量、局部变量,函数中的局部变量独立性很强,函数外无法访问…

何谓变量?晕~~~~~~~如果这都要说,那你可以不用考二级了。

(16)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。A.控制流 B.加工 C.数据存储 D.源和潭(16)[答案]A [考点]软件工程基础 [评析] 数据流图用于需求分析阶段,在此阶段我们只考虑大致的数据流流向,而不关心内部具体的处理,以及如何在计算机上实现,不必讨论控制流,我们只关心的:数据流、数据储存、变换/加工(相当于一个黑盒,不关心内部细节)、外部实体,数据流图通俗易懂,因为它远离了计算机,用户(无需懂编程)和软件人员都易接受。

比如一个简单的软件系统逻辑模型:

输入流和输出流即D中的源和潭。

(17)软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。A.阶段性报告 B.需求评审 C.总结

Page 8 of 46

资料下载

D.都不正确(17)[答案]B [考点]软件工程基础 [评析] 评审(复审)每阶段都有,把前三个方面说完了,还剩什么呢? 此题需要记一下,至于各名词的解释,顾名即可思义。(18)下述关于数据库系统的叙述中正确的是______。A.数据库系统减少了数据冗余 B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致 D.数据库系统比文件系统能管理更多的数据(18)[答案]A [考点]数据库设计基础 [评析] 关于数据管理技术的三个阶段如下: 1.人工管理阶段 人工管理数据的特点是:(1)数据不保存。

(2)数据无专门软件进行管理。(3)数据不共享。(4)数据不具有独立性。2.文件系统阶段

该阶段的数据管理具有如下特点:(1)数据可以长期保存。

(2)由文件系统管理数据。文件系统管理数据存在如下缺点:(1)数据共享性差,数据冗余度大。(2)数据独立性差。

3.数据库系统阶段

Page 9 of 46

资料下载

与人工管理和文件系统阶段相比较,数据库系统阶段具有如下的特点:(1)数据结构化

(2)数据共享性高、冗余度小、易扩充(3)数据独立性高

(4)统一的数据管理和控制数据库管理系统必须提供以下几个方面的数据控制和保护功能:(1)数据的安全性(security)保护。(2)数据的完整性(integrity)控制。(3)数据库恢复(recovery)。(4)并发(concurrency)控制。(5)事务(transaction)支持。

B错,为什么会有关系规范化理论,其主要目的之一是减少数据的冗余,说明数据库系统还存在一定的冗余;C错,数据完整性约束指一组完整性规则的集合,不一定是数据类型的一致性;D项也太菜鸟了吧,数据能管理存放多少数据主要看机子硬盘空间和一些相关的设置,比如在数据库管理系统中设置某个用户的空间最大为多少。

(19)关系表中的每一横行称为一个______。A.元组 B.字段 C.属性 D.码(19)[答案]A [考点]数据库设计基础 [评析] 字段:列,属性名

属性:实体的某一特性,如学生表中的学号、姓名…

码(主健):元组(实体)的惟一标识,比如学生有同名的,但学号是惟一的。比如表:

学号 姓名 性别 院系

0221301 陈朝霞 女 油院矿机

0221310 周建峰 男 西南工业大学机电院

Page 10 of 46

资料下载

0221326 曾晓明 男 西南工业大学机电院 0221315 郭文广 男 西南工业大学机电院 0123456 茂叶 男 油院机电&软件

(20)数据库设计包括两个方面的设计内容,它们是______。A.概念设计和逻辑设计 B.模式设计和内模式设计 C.内模式设计和物理设计 D.结构特性设计和行为特性设计(20)[答案]A [考点]数据库设计基础 [评析] 需求分析--(需求说明)-->概念设计--(概念结构)-->逻辑结构设计--(逻辑结构)-->物理设计--(物理结构)-->(21)算法的空间复杂度是指______。A.算法程序的长度 B.算法程序中的指令条数 C.算法程序所占的存储空间

D.算法执行过程中所需要的存储空间(21)[答案]D [考点]程序设计基础 [评析] 时间复杂度:在运行算法时所耗费的时间为f(n)(即 n的函数)。空间复杂度:实现算法所占用的空间为g(n)(也为n的函数)。算法为什么会占用存储存空间? 主要是内存空间,因为算法中的变量、地址等等通常保存在内存中(如果在虚存、缓存,甚至已在CPU中运行,也算占用了存储空间)。

(22)下列关于栈的叙述中正确的是______。A.在栈中只能插入数据

Page 11 of 46

资料下载

B.在栈中只能删除数据 C.栈是先进先出的线性表 D.栈是先进后出的线性表(22)[答案]D [考点]数据结构与算法 [评析] 此题为基本概念,必记,注意:队列是先进先出的线性表,结合起来记不要搞混。(23)在深度为5的满二叉树中,叶子结点的个数为______。A.32 B.31 C.16 D.15(23)[答案]C [考点]数据结构与算法 [评析] 首先搞清楚满二叉树与完全二叉树之间的区别,前面已解释过。依次从上到下,可得出: 第1层结点数为1; 第2层结点数为2*1=2; 第3层结点数为2*2=4;

第n层结点数为2的n-1次幂,如图所示

(24)对建立良好的程序设计风格,下面描述正确的是______。A.程序应简单、清晰、可读性好 B.符号名的命名要符合语法 C.充分考虑程序的执行效率 D.程序的注释可有可无(24)

Page 12 of 46

资料下载

[答案]A [考点]程序设计基础 [评析] 结构化程序设计中力求程序的可读性(如代码清晰,结构明了,附加注释……),故D错;

如果程序写的都是错的,谈何风格?如果符号名的命名不符合语法,编译会报错,也是很基本的错误,B错;

追求程序的可读性要高于执行效率,C错。(25)下面对对象概念描述错误的是______。A.任何对象都必须有继承性 B.对象是属性和方法的封装体 C.对象间的通讯靠消息传递 D.操作是对象的动态性属性(25)[答案]A [考点]程序设计基础 [评析] 此题为基本概念,必记!这里举几个例子说明以助大家理解: 比如 VB:

Command按纽类是个类,在窗体上画一个名为Command1的按纽即是创建该类的一个实例,也可创建另外一个实例如Command2,他们的属性可以调置为不同的,但是都是Command类的实例。Command1,Command2都是对象,它们封装了属性和方法,都是封装体,比如Name属性,Caption属性……宏观上可说Command1的Move操作是动态属性,对象间的通读靠消息传递,比如在Command1的单击事件中写上: Picture1.Print “消息传递” Picture1是一个图片框对象,我们还可以调用Form_Load事件等等,都是通过消息传递的,即对象A向对象B发出消息,对象B执行怎样的操作。C++: class Base {

Page 13 of 46

资料下载

Public: Base(){} ~Base(){}...};class Derive:Public Base { Public:...Print(){ Cout<<“打印函数!”<

(26)下面不属于软件工程的3个要素的是______。A.工具 B.过程 C.方法

Page 14 of 46

资料下载

D.环境(26)[答案]D [考点]软件工程基础 [评析] 这里阐述一下,以上答案为原稿的答案,有的书上答案应该为B,解释如下:

软件工程包括的三要素是:软件开发方法学、工具和环境支持,而其主体内容是软件开发方法学。

1、软件开发方法,比如根据瀑布模型有结构化分析与设计方法,有原型化开发方法

2、软件开发工具各个瀑存模型阶段都有相关工具,比如需求分析阶段有DFD数据流程图,详细设计阶段有HIPO图或PAD图,编码工具有VC、VB……

3、软件开发环境是全面支持软件开发全过程的软件工具集合。

如果你有权威且详尽的解释,还请邮给茂叶: dj8529@sina.com 或去我主页上留言 此题的争论,意义性不大,燃眉之急是应负考试。:)软件工程三要素工具、方法、过程,请大家记一下。(27)程序流程图(PFD)中的箭头代表的是______。A.数据流 B.控制流 C.调用关系 D.组成关系(27)[答案]B [考点]软件工程基础 [评析] 如果A,那么B,否则C,这是我们二级中很熟悉的程序流程方式,我们可以画成相应的PFD图或N-S图。易知箭头控制应该是哪条语句执行,即B答案。

(28)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是______。A.数据库系统 B.文件系统 C.人工管理

Page 15 of 46

资料下载

D.数据项管理(28)[答案]A [考点]数据库设计基础 [评析] 关于数据管理技术的三个阶段如下表: 1.人工管理阶段 人工管理数据的特点是:(1)数据不保存。

(2)数据无专门软件进行管理。(3)数据不共享。(4)数据不具有独立性。2.文件系统阶段

该阶段的数据管理具有如下特点:(1)数据可以长期保存。

(2)由文件系统管理数据。文件系统管理数据存在如下缺点:(1)数据共享性差,数据冗余度大。(2)数据独立性差。

3.数据库系统阶段

与人工管理和文件系统阶段相比较,数据库系统阶段具有如下的特点:(1)数据结构化

(2)数据共享性高、冗余度小、易扩充(3)数据独立性高

(4)统一的数据管理和控制数据库管理系统必须提供以下几个方面的数据控制和保护功能:(1)数据的安全性(security)保护。(2)数据的完整性(integrity)控制。(3)数据库恢复(recovery)。(4)并发(concurrency)控制。(5)事务(transaction)支持。

Page 16 of 46

资料下载

(29)用树形结构来表示实体之间联系的模型称为______。A.关系模型 B.层次模型 C.网状模型 D.数据模型(29)[答案]B [考点]数据库设计基础 [评析] 层次模型结构是一棵有向树,树中的每个结点代表一种记录类型,这些结点满足:有且仅有一个结点无双亲(根结点),其它结点有且仅有一个双亲结点。

网状模型则相当于一个有向图,与层次模型结构不同的是:一个结点可以有多个双亲结点,且多个结点可以无双亲结点。

关系模型则是二维表,一张表即为一个关系,这个很常见,如学生关系(学号,姓名,出生年月,性别),就像我们的办公软件中电子表格那样的表格。D项的数据模型不是数据库的基本模型。

(30)关系数据库管理系统能实现的专门关系运算包括______。A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表

(30)[答案]B [考点]数据库设计基础 [评析] 此题为数据库的基本概念,如果你完全没学过数据库,可以对照办工软件的电子表格进行如下理解: 选择:我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)

投影:按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名……都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。

连接:2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号,姓名,系号),Page 17 of 46

资料下载

又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表(学号,姓名,系号,系名,主任)(31)算法一般都可以用哪几种控制结构组合而成______。A.循环、分支、递归 B.顺序、循环、嵌套 C.循环、递归、选择 D.顺序、选择、循环(31)[答案]D [考点]数据结构与算法 [评析] 结构化程序设计中,基本的控制结构为顺序、选择、循环。各种具体的程序设计语言中的一些控制结构都可以划分到这些类中。比如VB里的Select Case语句、If...Elseif...Else...End If,C/C++中的switch()、if{}……都属于选择控制结构。相应的for循环和while语句都属于循环结构。按从上到下顺序执行的即是顺序控制结构。

(32)数据的存储结构是指______。A.数据所占的存储空间量

B.数据的逻辑结构在计算机中的表示 C.数据在计算机中的顺序存储方式 D.存储在外存中的数据(32)[答案]B [考点]数据结构与算法 [评析] 这是个基本概念题。存储空间量只是数据的存储结构的一个属性,答案C也太片面,比如链表也是种存储方式,而非线性的还有树、图……我们所学的数据结构不涉及到数据在计算机外存(比如硬盘、软盘)具体的方式,而仅关心它们在内存中逻辑结构,比如数组,它是内存中一片连续的数据存储,我们对每一个元素都可以顺序地访问,只需要知道某一个元素的地址,其它数据元素的地址可以据库下标与数组类型(如字符型、整型……)所占的存储空间就可算出每个元素的地址,故顺序访问所有元素。但是对于具体数据在内存中的物理存储,我们很少关心。比如某个数组建立时,它的首地址具体是多少?它们在内存中的二进制表示是什么的?

Page 18 of 46

资料下载

另,什么叫物理结构,什么叫逻辑结构,可以这样来理解,就好比物理结构是一个人的肉体,逻辑结构是一个人的灵魂,类似于计算机中硬件与软件的说法。就好比我们上QQ,发送消息、接收消息,基本上近似大众人的思维,但发送消息与接收消息这些的具体技术过程或它们在CPU和硬盘上的活动,甚至二进制是什么呢?去问腾讯公司(33)设有下列二叉树:

对此二叉树中序遍历的结果为______。A.ABCDEF B.DBEAFC C.ABDECF D.DEBFCA(33)[答案]B [考点]数据结构与算法 [评析] 该题原稿没图,故无从解释,此知识点的详解部分请看53题

(34)在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。A.调用语句 B.命令 C.口令 D.消息(34)[答案]D [考点]程序设计基础 [评析] 通过消息机制。太理论方面的不多说,现举例说明。C++:

比如在VC++中,单击了一个菜单命令项“退出”,我们要实现退出程序,如何来实现?很简单,只要向窗体发送一个PostQuitMessage(0);就可以关闭窗体。

这个在VB中还简单,三个字符“End”即可解决,相当于向所有窗体发送一个销毁窗体的消息,即“Unload 窗体名”语句。(如果是单个窗体的话,即相当于Unload Me语句)

Page 19 of 46

资料下载

VB:

Public a As Integer Private Sub Command1_Click()a = 20 Print a End Sub Private Sub Command2_Click()Form_Load ''''''''''''''这里调用Form_Load()过程,实用a=10 Print a End Sub Private Sub Form_Load()a = 10 End Sub 命令按纽Command2向其母窗体发送一个消息,使其为Command2服务。Command2是CommandButton类的一个对象,主窗体是窗体类的一个对象。关于类与对象的理解,请大家看前面的题的详解。

(35)检查软件产品是否符合需求定义的过程称为______。A.确认测试 B.集成测试 C.验证测试 D.验收测试(35)[答案]A [考点]软件工程基础 [评析] A、C、D相近,但A为比较正规的说法名词。

确认测试也称合格测试或验收测试,主要由用户参加,检验软件规格说明的技术标准的符合程度,是保证软件质量的最后关键环节。

单元测试主要采用白盒法,之后再采用集成测试,主要采用黑盒法。这些主要由开发者的工作,而无用户

Page 20 of 46

资料下载

参与,不是检查是否符合需求定义的。什么叫白盒黑盒? 相当于这样理解吧:

白盒测试,我们要注意到代码;黑盒,我们只关心程序运行的输入输出是否正确,一般是大量的测试,主要于非增量测试中使用,而非增量测试又一般适用于规模较小的系统开发。可以想象,一个很大很复杂的系统,我们用黑盒法来集成测试,效果可想而知。(36)下列工具中属于需求分析常用工具的是______。A.PAD B.PFD C.N-S D.DFD(36)[答案]D [考点]软件工程基础 [评析] PAD,问题分析图,常用于详细设计;

PFD,程序流程图,常用于详细设计,我们很多如C、VB…程序设计书上都有简单的实例; N-S,方框图,比程序流程图更灵活,也常用于详细设计;

DFD,数据流图,远离具体在计算机上的实现,不懂计算机的用户也能看懂,用于需求分析。什么叫详细设计?它与我们编程有什么区别?

这样理解吧,公司的高级程序员,就是软件设计师,他们会搞详细设计的(在概要设计之后),比如用PAD或N-S画个图,它不涉及具体的某种程序设计语言的实现,但程序员们都能看懂,程序员再用某种语言(比如C、VB、JAVA…)按照图来写代码。这个过程,高级程序员完成设计工作,程序员完成写代码工作。(37)下面不属于软件设计原则的是______。A.抽象 B.模块化 C.自底向上 D.信息隐蔽

(37)[答案]C

Page 21 of 46

资料下载

[考点]软件工程基础 [评析] 我们无论是设计与编写代码,无论是画数据流图还是程序流图,习愦性思维都是先有输入才有输出,从下至下。自底向上不是软件设计的原则。(38)索引属于______。A.模式 B.内模式 C.外模式 D.概念模式(38)[答案]B [考点]数据库设计基础 [评析] 要特别记住此题的答案。

索引的写入修改了数据库的物理结构,而不是简单的逻辑设计。内模式规定了数据在存储介质上的物理组织方式、记录录址方式。

(39)在关系数据库中,用来表示实体之间联系的是______。A.树结构 B.网结构 C.线性表 D.二维表

(39)[答案]D [考点]数据库设计基础 [评析] 关系数据库中的关系,用二维表表示,A为层次数据模型的,B为网状数据模型的。数据库模型分为:

层次模型、网状模型、关系模型、面向对象模型。

(40)将E-R图转换到关系模式时,实体与联系都可以表示成______。A.属性 B.关系

Page 22 of 46

资料下载

C.键 D.域(40)[答案]B [考点]数据库设计基础 [评析] 基本概念题,实体与联系可以表示成关系,关系可以表示成二维表。(41)在下列选项中,哪个不是一个算法一般应该具有的基本特征______。A.确定性 B.可行性 C.无穷性

D.拥有足够的情报(41)[答案]C [考点]程序设计基础 [评析] 算法具有确定性、可行性,并拥有足够的情报。(42)希尔排序法属于哪一种类型的排序法______。A.交换类排序法 B.插入类排序法 C.选择类排序法 D.建堆排序法(42)[答案]B [考点]数据结构与算法 [评析] Shell排序法 输入:数组名称(也就是数组首地址)、数组中元素个数

思想为:在直接插入排序算法中,每次插入一个数,使有序序列只增加1个节点,并且对插入下一个数没有提供任何帮助。如果比较相隔较远距离(称为

Page 23 of 46

资料下载

增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除 多个元素交换。D.L.shell于1959年在以他名字命名的排序算法中实现 了这一思想。算法先将要排序的一组数按某个增量d分成若干组,每组中 记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量 对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成 一组,排序完成。

下面的函数是一个希尔排序算法的一个实现,初次取序列的一半为增量,以后每次减半,直到增量为1。以C语言为例。void shell_sort(int *x, int n){ int h, j, k, t;for(h=n/2;h>0;h=h/2)/*控制增量*/ { for(j=h;j=0 && t<*(x+k));k-=h){ *(x+k+h)= *(x+k);} *(x+k+h)= t;} } } 故属于插入类排序法。

(43)下列关于队列的叙述中正确的是______。A.在队列中只能插入数据 B.在队列中只能删除数据 C.队列是先进先出的线性表

Page 24 of 46

资料下载

D.队列是先进后出的线性表(43)[答案]C [考点]数据构与算法 [评析] 队列是先进先出的,栈是先进后出的,2者的区别一定要搞清楚。

(44)对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。A.N+1 B.N C.(N+1)/2 D.N/2(44)[答案]B [考点]数据结构与算法 [评析] 很简单,我们的二级程序设计语言书中都有此算法,另外还要掌握二分法查找,这也是我们二级中常考的。那么二分法最坏的情况为多少次呢? >log2 n的最小整数值。

比如n为4,最坏的情况要比较3次; n为18,最坏的情况要比较5次。

二分法适用于已排序的顺序表(我们二级语言中都是数组),考二级书里的,这里不再罗嗦。(45)信息隐蔽的概念与下述哪一种概念直接相关______。A.软件结构定义 B.模块独立性 C.模块类型划分 D.模拟耦合度(45)[答案]B [考点]软件工程基础 [评析]

Page 25 of 46

资料下载

模块独立性越强,则信息隐蔽性越好。举个例,VB:

在多重窗体设计时,每个窗体里的变量尽量与其它窗体里变量无关,比如少用Public声明的变量,即全局变量,当多个窗体共享全局变量越多时,窗体的独立性就越差。C: 头文件里的一些函数,一般不用到全局变量,否则在主程序里出乱子的情况很多,我们在模块化开发时,尽量使每个模块独立,强功能内聚,分工明确,调试程序也要方便得多。C++:

考此项的朋友估计不用我多讲,类的封装性就是一个很好的说明。

(46)面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。A.模拟现实世界中不同事物之间的联系 B.强调模拟现实世界中的算法而不强调概念

C.使用现实世界的概念抽象地思考问题从而自然地解决问题 D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考(46)[答案]C [考点]软件工程基础 [评析] 我们举个例,从各种语言的结构体类型出发,我们知道,结构体中可以定义很多变量,对每个变量执行相同的操作,挨个挨个写出,很麻烦。假设该结构体有如下变量: 草鱼、田鱼、鲫鱼……

它们都在一口池塘里,现在执行:它们都上来 传统的程序设计是: 草鱼上来 田鱼上来 鲫鱼上来 ……

Page 26 of 46

资料下载

一条一条都写出,是不是很麻烦? 改进一下,我们用个循环:

n等于从1到10(假设共有10种鱼)第n种鱼上来

还是很麻烦,现实中我们很易想到用“面向对象的思想”,池塘里所有的鱼都是一个结构体变量,名为鱼,执行: 鱼上来

意思即所有的鱼都上来。

现特定于面象对象语言中的类,鱼,就可以看作为一类。这就属于 C 项:

使用现实世界的概念抽象地思考问题从而自然地解决问题

这样罗嗦的解释望大家别晕,旨在帮助部分人的确难想通的,为应试,你能背下答案也行。

(47)在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。A.详细设计 B.需求分析 C.总体设计 D.编程调试

(47)[答案]C [考点]软件工程基础 [评析] 从先到后一排,是:

需求分析、总体设计、详细设计、编程调试

需求分析远离在计算机上的实现,谈不上功能的分解;

有了需求分析的报告,软件设计员可以思考我要让软件怎么做,开始总体设计,其间将软件的功能分解,确定模块之间的接口;

有了每个模块功能的分解,再对每个模块进入详细设计阶段; 接下来再是程序员的任务,编写代码,开始编程调试。(48)软件调试的目的是______。

Page 27 of 46

资料下载

A.发现错误 B.改正错误 C.改善软件的性能 D.挖掘软件的潜能(48)[答案]B [考点]软件工程基础 [评析] 倒!

一个程序调试是为了干什么? 还不是为了改正错误?

发现错误?这只是一个过程,改正错误之前必须先发现错误,总不能目的就仅为发现错误吧。(49)按条件f对关系R进行选择,其关系代数表达式为______。A.R|X|R B.R|X|R f C.бf(R)D.∏f(R)(49)[答案]C [考点]数据库设计基础 [评析] C是选择一行,D是投影一列,二者要区分开。

如果不仅谈此题的话,有关关系代数,内容有些多,这里不是一两句能说清,可以看看相关《数据库》的资料中的关系代数,里面写得很详细。为应试,情急之下能记住几个题答案就行。

(50)数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。A.自顶向下 B.由底向上 C.由内向外 D.由整体到局部

Page 28 of 46

资料下载

(50)[答案]D [考点]数据库设计基础 [评析] 通常有如下几种方法:

1、自顶向下。先全局框架,然后逐步细化

2、自底向上。先局部概念结构,再集成为全局结构

3、由里向外。先核心结构,再向外扩张

4、混合策略。1与2相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构

(51)在计算机中,算法是指______。A.查询方法 B.加工方法

C.解题方案的准确而完整的描述 D.排序方法(51)[答案]C [考点]数据结构与算法 [评析] A、B、D都过于片面,此题直接选答案也很简单。(52)栈和队列的共同点是______。A.都是先进后出 B.都是先进先出

C.只允许在端点处插入和删除元素 D.没有共同点(52)[答案]C [考点]数据结构与算法 [评析] 栈是先进后出的,队列是先进先出的,共同点是只允许在端点处插入和删除元素。栈都是在一端进与出,Page 29 of 46

资料下载

而队列是在一端进在另一端出。

(53)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。A.cedba B.acbed C.decab D.deabc(53)[答案]A [考点]数据结构与算法 [评析] 后序又叫后根,一次递归过程是先左再右最后根;中序是先左再根最后右。

比如下图:

前序是:abc 中序是:bac 后序是:bca

题中据后序遍历序列,一眼得知c结点是根,那么据中序deba结点都在一边,或都在根结点左边,或右边;据中序遍历序列得知全在根结点的左边。

接下来据后序得出e结点是紧挨着c结点的左子女,再据中序得知d是e的左子女,ba是右子树。再据后序得b是e的右子女,再据中序得a是b的右子女。分析结果得二叉树图示如下:

因为我茂叶数据结构是自学的,分析此类型的题我都是用自己的方法(递归分析的方法),要边分析边画图,一步一步连结起来,最后再根据题中的遍历检查图是否画对,如果都符合题目,最后再可根据图来得所求的遍历。

再次声明,此所有二级公基题全是我一人的思路写的,如果你觉得不可靠,可以看其它的书。

(54)在下列几种排序方法中,要求内存量最大的是______。

Page 30 of 46

资料下载

A.插入排序 B.选择排序 C.快速排序 D.归并排序(54)[答案]D [考点]数据结构与算法 [分析] 我们对比一个排序方法的优越性有“平均时间”、“最坏情况时间”和“辅助空间”。其中辅助空间一般是排序中需要额外的内存开销,这些内存开销一般据一些如中间变量(暂存变量)、比较与交换等等来决定。插入排序和选择排序的辅助空间都是o(1),快速排序是o(nlog2n),归并排序是o(n)。

可知归并排序要求内存量最大,我们也可以从其变量及循环个数也以看出归并排序要求内存量最大。

(55)在设计程序时,应采纳的原则之一是______。A.程序结构应有助于读者理解 B.不限制goto语句的使用 C.减少或取消注解行 D.程序越短越好(55)[答案]A [考点]程序设计基础 [评析] 前面的题中已解释过,二级的各种程序设计语言教程都会对结构化程序设有一定的介绍,比如goto语句的限制使用,基本上每本书上都会提到。

其中A,即易读性比程序的效率更显得重要,这是结构化程序设计原则提倡的,也是我们进行开发时非常重要的一点。

(56)下列不属于软件调试技术的是______。A.强行排错法 B.集成测试法 C.回溯法

Page 31 of 46

资料下载

D.原因排除法(56)[答案]B [考点]软件工程基础 [评析] 耍个小聪明:)

我们严格区分调试与测试,调试是已知有错误而来找错误,是被动的;测试有很多种,比如未发现错误但不能保证程序没错而来找BUG,还比如我们运行测试程序是否符合用户的要求,是主动的。不用说答案就是B了 :)

A、C、D都是具体的程序调试方法,而B是宏观的程序测试方法。

测试有单元测试、集成测试、确认测试、系统测试。比如我们在进行单元测试时,发现程序有错误,我们再可以根据A、C、D的方法来找错误。题外话:

很多人学软件工程时认为软件工程太无聊了,似乎全部都是些背背记记的东西,但对于一个软件构架师,软件工程是非常重要的,这就不能是些背背的东西了,最重要的是理解,要彻底地理解,还得有些开发经验才行。《软件工程》这学科是从实践中得出来的,同样也需要赋予给实践中去,这样才有用!

(57)下列叙述中,不属于软件需求规格说明书的作用的是______。A.便于用户、开发人员进行理解和交流

B.反映出用户问题的结构,可以作为软件开发工作的基础和依据 C.作为确认测试和验收的依据 D.便于开发人员进行需求分析

(57)[答案]D [考点]软件工程基础 [评析] A、B、C都是作用,D说法有一定的错误,开发人员包括很多,比如程序员的工作就不是进行需求分析。(58)在数据流图(DFD)中,带有名字的箭头表示______。A.控制程序的执行顺序 B.模块之间的调用关系

Page 32 of 46

资料下载

C.数据的流向 D.程序的组成成分(58)[答案]C [考点]软件工程基础 [评析] 顾名思义,数据流图就是带有方框(外部实体)、圆圈(变换/加工)和带有名字的箭头以表示数据的流向。需求分析中常用的分析图,它远离计算机上的具体实现,软件人员和用户都能看懂,有益于和用户交流。(59)SQL语言又称为______。A.结构化定义语言 B.结构化控制语言 C.结构化查询语言 D.结构化操纵语言(59)[答案]C [考点]数据库设计基础 [评析] 学VF和ACCESS的朋友轻而易举选出答案,考其它的朋友们若没学数据库技术这一章节,则要记一下了。Structured Query Language 结构化 查询 语言(语句)

(60)视图设计一般有3种设计次序,下列不属于视图设计的是______。A.自顶向下 B.由外向内 C.由内向外 D.自底向上(60)[答案]B [考点]数据库设计基础 [评析] 通常有如下几种方法:

Page 33 of 46

资料下载

1、自顶向下。先全局框架,然后逐步细化

2、自底向上。先局部概念结构,再集成为全局结构

3、由里向外。先核心结构,再向外扩张

4、混合策略。1与2相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构

(61)数据结构中,与所使用的计算机无关的是数据的______。A.存储结构 B.物理结构 C.逻辑结构 D.物理和存储结构(61)[答案]C [考点]数据结构与算法 [评析] 通过前面的一些题的解释,相信此题对大家也很简单了。

逻辑结构更接近人的思想,比如栈的先进后出的结构,这是逻辑结构,如果研究到了栈在内存中的结构,如地址、地址里的内容等等,这就是物理结构了,我们一般无须过于深入底层地钻研。

(62)栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是______。A.ABCED B.DBCEA C.CDABE D.DCBEA(62)[答案]D [考点]数据结构与算法 [评析] 栈是先进后出的,因为在E放入前,A、B、C、D已经依次放进栈里了,故这四个元素出栈的顺序只能是D、C、B、A,E可是其中排序的任何位置,答案只有D符合了。(63)线性表的顺序存储结构和线性表的链式存储结构分别是______。

Page 34 of 46

资料下载

A.顺序存取的存储结构、顺序存取的存储结构 B.随机存取的存储结构、顺序存取的存储结构 C.随机存取的存储结构、随机存取的存储结构 D.任意存取的存储结构、任意存取的存储结构(63)[答案]B [考点]数据结构与算法 [评析] 顺序存储结构可以以数组为例子,它在内存中的一片连续的储存空间,从第一个元素到最后一个元素,只要根据下标就可以访问。二级的各种程序设计语言都有。

链式存储结构可以以C/C++语言中的链表为例,各个链结点无须存放在一片连续的内存空间,而只需要指针变量指过来指过去,实现随机存取。

(64)在单链表中,增加头结点的目的是______。A.方便运算的实现 B.使单链表至少有一个结点 C.标识表结点中首结点的位置

D.说明单链表是线性表的链式存储实现(64)[答案]A [考点]数据结构与算法 [评析] 举个例子,假如我们写一个实现链表删除一个元素的函数(或过程),供共享用,函数的参数有2个,一个指针变量(指向链表的头结点),一个字符变量(待删除的元素)。通过链表头结点的指针传给函数的第一个指针变量参数,就可方便实现是哪一个链表的操作。如果你考的科目没有指针,此题答案记一下就行了。

(65)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。A.模块间的关系

B.系统结构部件转换成软件的过程描述 C.软件层次结构 D.软件开发过程

Page 35 of 46

资料下载

(65)[答案]B [考点]软件工程基础 [评析] 相当于详细设计,比如N-S图就是一种,它不用具体的某种语言实现,但描述了程序的思路,有了这就可以很轻松转换为某种语言的程序源代码。这是一种系统结构部件转换成软件的过程描述。

(66)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。A.PAD图 B.N-S图 C.结构图

D.数据流图(66)[答案]B [考点]软件工程基础 [评析] 二级科目的很多教程都在前N-S图的例子,比如C语言教程基本上都有,程序流程图大部分科目也有例子。这里再举个例子。比如:

如果2等于3,则变量a=1,否则a=0。我们用N-S图表示:

转换成VB: If 2=3 Then a=1 else a=0 End If 转换成C/C++/JAVA: if(2==3)

Page 36 of 46

资料下载

a=1;else a=0;

(67)数据处理的最小单位是______。A.数据 B.数据元素 C.数据项 D.数据结构(67)[答案]C [考点]数据结构与算法 [评析] 此题比较弱智,本来无从解释。

“数据”过于宏观,比如数据库里的所有内容都可叫数据,它是不是数据处理的最小单位呢? “数据元素”中的“元素”,如果要死钻牛角尖,的确没“数据项”说得更合适。“数据结构”,这个范围又过于大了。

(68)下列有关数据库的描述,正确的是______。A.数据库是一个DBF文件 B.数据库是一个关系

C.数据库是一个结构化的数据集合 D.数据库是一组文件(68)[答案]C [考点]数据库设计基础 [评析] A错,比如ACCESS数据库的文件是mdb格式的。

B错,数据库里可能有很多个二维表,一个二维表就是一个关系。

D错,虽有些数据库底层是些文件组成的,但是从逻辑结构上来说它与文件完全是2个概念,数据库管理比文件管理更容易、效率更高、安全性更强。(69)单个用户使用的数据视图的描述称为______。

Page 37 of 46

资料下载

A.外模式 B.概念模式 C.内模式 D.存储模式

(69)[答案]A [考点]数据库设计基础 [评析] 外模式、模式(概念模式)、内模式(存储模式),分别是视图级、概念级、物理级。视图级即是用户使用的数据视图级,主要为局部逻辑结构,因为模式上很多个外模式,外模式到模式的映射定义了局部数据逻辑结构与全局逻辑结构之间的对应关系,表现了数据的逻辑独立性。模式到内模式则表现了数据物理独立性。

(70)需求分析阶段的任务是确定______。A.软件开发方法 B.软件开发工具 C.软件开发费用 D.软件系统功能(70)[答案]D [考点]软件工程基础 [评析] 据前面的题的解释,相信大家对需求分析有个理性认识了。

分析员对用户的要求作出分析,并画出数据流程图,该图通俗易懂,不涉及到如何在计算机上实现,这是需求分析阶段,用户也参与,确定软件系统功能是一个重要的任务。(71)算法分析的目的是______。A.找出数据结构的合理性

B.找出算法中输入和输出之间的关系 C.分析算法的易懂性和可靠性 D.分析算法的效率以求改进(71)

Page 38 of 46

资料下载

[答案]D [考点]数据结构与算法 [评析] 为什么要讲各种各样的算法,只要达到功能不就行了吗? 有些场合为了让程序效率更高,必须改进算法。

我们二级熟悉的算法改进,如二分法查找比顺序查找更快,仔细分析这些算法以求效率改进。再比如选择排序、插值排序、冒泡排序,哪个效率高?

我们分析算法,可知如果序列初始比较有序的情况下,冒泡法效率最高。各种例子都说明D是正确答案。

(72)n个顶点的强连通图的边数至少有______。A.n-1 B.n(n-1)C.n D.n+1(72)[答案]C [考点]数据结构与算法 [评析] 此题超纲不用看啦!

图这一节超纲,软考的程序员的难度也不考的,等考三级也考不到,只有计算机四级与高级程序员或以上级别才考到。

关于图的概念,我们在这里结合树来讲。

通过前面的一些题,我们了解了树与二叉树,其实树也算是图的一种,树从上到下是一对多关系的,而图不单从上到下,而且可以是任意的多对多联系,它还可以有回路(结点与线合成回路),无方向的叫无向图,有箭头方向的叫有向图。

连通图(又叫弱连通图):有顶点间存在通路(就是2点间有条路径,从这可到那)(如果是有向图,则略去方向)。

强连通图:图中任何两点都可相互到达(有向图不能略去方向)。强连通图一定是弱连通图。

此题问要是强连通图至少应有的边数,我们可以设想个一个环的特例,假设箭头全部是顺时针(或逆时针),可以构成任何两点都可到达的强连通图,假设有n个顶点,我们很快得出它的边数也为n。

Page 39 of 46

资料下载

(73)已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是______。A.堆排序 B.直接插入排序 C.快速排序 D.直接选择排序(73)[答案]B [考点]数据结构与算法 [评析] 做此题时,我们可以回想一下每个选项的排序原理。

堆排序是边建堆边排序的过程,而建堆排序时的效率元素距其最终位置的远近关系不大。

插入排序是把每个元素挨个比较之前的元素,插入到合适的位置,这种排序的比较次数很不固定,它决定于每个元素距其最终位置。

快速排序的每一趟可确定一个元素的最终位置,但以某个元素为标准的比较次数还是得比较剩下所有的,它的最大的特点是序列初始无序的情况下排序最快。(初始有序并不是每个元素距其最终位置不远,而是有一些最终相邻的元素初始已经相邻了或大致左右的顺序已经好了)。

直接选择排序,就是每一趟选择序列剩下的元素的一个最大值(或最小值)挨个排在首端(或尾端),是人脑最常使用的方法,所以被人脑最易理解。在电脑上,这种排序效率不受其初始位置的影响。茂叶特注:上述解释都是我自己的理解,书上并没有如此解释,有错误还望大侠们指正!(74)用链表表示线性表的优点是______。A.便于插入和删除操作

B.数据元素的物理顺序与逻辑顺序相同 C.花费的存储空间较顺序存储少 D.便于随机存取(74)[答案]A [考点]数据结构与算法 [评析] 我们知道,如果是紧凑排列的话,数组在删除一个其中一个元素时极为不方便,因为它需要把后面的元素都要往前移一个位置(插入的话则往后移)。而用链表就绝然不同了,它只需要改变指针的指向,指向这

Page 40 of 46

资料下载

指向那的,其它元素都不用动。所以便于插入和删除操作。

(75)下列不属于结构化分析的常用工具的是______。A.数据流图 B.数据字典 C.判定树 D.PAD图(75)[答案]D [考点]软件工程基础 [评析] 通过前面题的解释,数据流图属于分析阶段相信大家都有所了解了。

数据字典也是一种分析阶段的工具。什么叫数据字典,我们可以这样理解。假设给了你一个数据流图,但上面的文字说明,比如“看书”、“练习”、“考试”、“拿证书”…(假设这些是数据(知识)的处理过程,但可能有些人认为有个“测试”,实际上他的意思是“考试”,如果写在数据流图上,其它人认为是“练习测试”的意思,这就造成了数据流图不一致的理解,而数据流图是开发人员和用户都能看懂的,理解肯定是一致的。所以必须有个数据字典,它标识了数据流图的所有名词述语,就好比我们用英汉词典一样,不会再有不一致的理解了。

判定树和判定表都是加工描述方法,当然也是分析阶段的。

PAD图(问题分析图)是详细设计阶段的工具,它的作用类似于程序流程图和N-S图。关于程序流图和N-S图,二级很多科目都有介绍,前面的题中我也解释过。(76)软件开发的结构化生命周期方法将软件生命周期划分成______。A.定义、开发、运行维护 B.设计阶段、编程阶段、测试阶段 C.总体设计、详细设计、编程调试 D.需求分析、功能定义、系统设计

(76)[答案]A [考点]软件工程基础 [评析]

Page 41 of 46

资料下载

我们可从一个软件的从无到有的过程来看,就是分析人员先分析,开发人员再开发,最终运行和维护。(77)在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。A.循环的集合 B.地址的集合 C.路径的集合 D.目标的集合(77)[答案]C [考点]软件工程基础 [评析] 白盒测试,我们要深入源代码的内部;而黑盒测试,我们只关心输入与输出数据是否符合要求。(78)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。A.数据无冗余 B.数据可共享

C.专门的数据管理软件 D.特定的数据模型

(78)[答案]D [考点]数据库设计基础 [评析] 文件根据一些压缩技术也可减少冗余,数据库也有冗余,只是比文件少; 文件也可共享,只是比数据库共享性能差; 也有专门的文件管理软件; 数据库发展的模型依次是:

层次模型、网状模型、关系模型、面向对象模型。其中关系模型目前应用最广泛。

(79)分布式数据库系统不具有的特点是______。A.分布式 B.数据冗余

C.数据分布性和逻辑整体性

Page 42 of 46

资料下载

D.位置透明性和复制透明性(79)[答案]B [考点]数据库设计基础 [评析] 如果论特点,当然是优点,数据冗余是种害处,怎能论特点? 何况分布式数据库还减少了冗余。

(80)下列说法中,不属于数据模型所描述的内容的是______。A.数据结构 B.数据操作 C.数据查询 D.数据约束

(80)[答案]C [考点]数据库设计基础 [评析] 数据模型的三要素 1.数据结构

数据结构用于描述系统的静态特性。在数据库系统中,通常按照其数据结构的类型来命名数据模型。2.数据操作

数据操作用于描述系统的动态特征。数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。操作有检索、插入、删除、修改。

3.数据完整性约束

数据完整性约束是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。数据模型应该反映和规定本数据模型必须遵守的、基本的、通用的完整性约束。此外,数据模型还应该提供定义完整性约束的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束。

40个填空题

(1)算法的复杂度主要包括______复杂度和空间复杂度。答:时间

Page 43 of 46

资料下载

(2)数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。答:模式#逻辑模式#概念模式

(3)若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。答:黑盒

(4)如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体“工人”与实体“设备”之间存在______联系。答:一对多#1:N#1:n

(5)关系数据库管理系统能实现的专门关系运算包括选择、连接和______。答:投影

(6)在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、______遍历和后序遍历。答:中序

(7)结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。答:模块化

(8)软件的调试方法主要有:强行排错法、______和原因排除法。答:回溯法

(9)数据库系统的三级模式分别为______模式、内部级模式与外部级模式。答:概念#概念级

(10)数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、______和处理过程。答:数据存储

(11)设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点。答:250

(12)在最坏情况下,冒泡排序的时间复杂度为______。答:n(n-1)/2#n*(n-1)/2#O(n(n-1)/2)#O(n*(n-1)/2)

(13)面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。答:实体

(14)软件的需求分析阶段的工作,可以概括为四个方面:______、需求分析、编写需求规格说明书和需求评审。答:需求获取

Page 44 of 46

资料下载

(15)______是数据库应用的核心。答:数据库设计

(16)数据结构包括数据的______结构和数据的存储结构。答:逻辑

(17)软件工程研究的内容主要包括:______技术和软件工程管理。答:软件开发

(18)与结构化需求分析方法相对应的是______方法。答:结构化设计

(19)关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。答:参照完整性

(20)数据模型按不同的应用层次分为三种类型,它们是______数据模型、逻辑数据模型和物理数据模型。答:概念

(21)栈的基本运算有三种:入栈、退栈和______。答:读栈顶元素#读栈顶的元素#读出栈顶元素

(22)在面向对象方法中,信息隐蔽是通过对象的______性来实现的。答:封装

(23)数据流的类型有______和事务型。答:变换型

(24)数据库系统中实现各种数据管理功能的核心软件称为______。答:数据库管理系统#DBMS

(25)关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。答:查询

(26)实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。答:空间复杂度和时间复杂度

(27)数据结构包括数据的逻辑结构、数据的 ______以及对数据的操作运算。答:存储结构

(28)一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的______。答:可重用性

(29)面向对象的模型中,最基本的概念是对象和 ______。答:类

Page 45 of 46

资料下载

(30)软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。答:完善性

(31)算法的基本特征是可行性、确定性、______和拥有足够的情报。答:有穷性

(32)顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。答:相邻

(33)Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向______的设计方法。答:数据结构

(34)数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

答:概念设计阶段#数据库概念设计阶段

(35)数据库保护分为:安全性控制、______、并发性控制和数据的恢复。答:完整性控制

(36)测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。答:调试

(37)在最坏情况下,堆排序需要比较的次数为______。答:O(nlog2n)

(38)若串s=“Program”,则其子串的数目是______。答:29

(39)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。答:1对多#1:N

(40)数据库管理系统常见的数据模型有层次模型、网状模型和______三种。答:关系模型

Page 46 of 46

第四篇:计算机二级c语言试题及答案

计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。计算机二级考试采用全国统一命题、统一考试的形式。那么计算机二级c语言会怎么考?以下仅供参考!

1.(A)是构成C语言程序的基本单位。

A、函数

B、过程

C、子程序

D、子例程

2.C语言程序从 C 开始执行。

A、程序中第一条可执行语句

B、程序中第一个函数

C、程序中的main函数

D、包含文件中的第一个函数

3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分

4.下列关于C语言的说法错误的是(B)。

A、C程序的工作过程是编辑、编译、连接、运行

B、C语言不区分大小写。

C、C程序的三种基本结构是顺序、选择、循环

D、C程序从main函数开始执行

5.下列正确的标识符是(C)。

A、-a

1B、a[i]

C、a2_i

D、int t

5~8题为相同类型题

考点:标识符的命名规则

只能由字母、数字、下划线构成数字不能作为标识符的开头

关键字不能作为标识符

选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

6.下列C语言用户标识符中合法的是(B)。

A、3ax

B、x

C、case

D、-e2 E)union

选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);

7.下列四组选项中,正确的C语言标识符是(C)。

A、%x

B、a+b

C、a12

3D、12

3选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)

8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print _3d db8 aBc

B、Iam one_half start$it 3pai

C、str_1 Cpp pow while

D、Pxq My->book line# His.age

选项B中的“”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)

9.C语言中的简单数据类型包括(D)。

A、整型、实型、逻辑型

B、整型、实型、逻辑型、字符型

C、整型、字符型、逻辑型

D、整型、实型、字符型

10.在C语言程序中,表达式5%2的结果是 C。

A、2.5B、2C、1D、3%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=

211.如果int a=3,b=4;则条件表达式"aA、3B、4C、0

D、1详见教材P97.表达式1?表达式2:表达式

3先计算表达式1,若表达式1成立,则选择计算表达式2,并表达式2的值作为整个大表达式的值;

若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值

此题中的aa为3,b为4。a12.若int x=2,y=3,z=4 则表达式x

A、4B、3C、2D、0

E)

113.C语言中,关系表达式和逻辑表达式的值是(B)。

A、0

B、0或

1C、1D、‘T’或’F’

14.下面(D)表达式的值为4.A、11/

3B、11.0/

3C、(float)11/

3D、(int)(11.0/3+0.5)

14~16题为同一类型

详见教材P54~56.(1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。

(2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。

选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666

选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同

选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为

415.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B)

A、b=1.0/a

B、b=(float)(1/A、C、b=1/(float)a

D、b=1/(a*1.0)

16.若“int n;float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)

A、1B、4C、4.33333

3D、4.6

“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为

117.以下对一维数组a的正确说明是: D

A、char a(10);

B、int a[];

C、int k=5,a[k];

D、char a[3]={‘a’,’b’,’c’};

详见教材P143~144,一维数组的定义、初始化

类型符 数组名 [常量表达式]

类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数),其值只能是整数,不可以是变量,而且从1开始计数。

选项A,常量表达式只能放在中括号 [ ]中

选项B,只有在对数组初始化(即赋值)的时候才可以省略数组的长度,B中并未对a进行初始化。

选项C,常量表达式不能为变量。

18.以下能对一维数组a进行初始化的语句是:(C)

A、int a[5]=(0,1,2,3,4,)

B、inta(5)={}

C、int a[3]={0,1,2}

D、int a{5}={10*1}

详见教材P145,一维数组的定义、初始化

选项B,D,常量表达式只能放在中括号 [ ]中

选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了().19.在C语言中对一维整型数组的正确定义为 D。

A、int a(10);

B、int n=10,a[n];

C、int n;a[n];

D、#define N 10

int a[N];

20、已知:int a[10];则对a数组元素的正确引用是(D)。

A、a[10]

B、a[3.5]

C、a(5)

D、a[0]

详见教材P144,数组元素的引用

数组名[下标]

引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

int a[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0] 表示组中第1个元素;a[1] 表示组中第2个元素;a[2] 表示组中第3个元素;......;a[9] 表示组中第10个元素.选项A,超过了数组a的逻辑地址下标范围;

选项B,逻辑地址下标只能为整数

选项C,逻辑地址下标只能放在[ ]中

21.若有以下数组说明,则i=10;a[a[i]]元素数值是(C)。

int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

A、10

B、9

C、6

D、5先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].a[10]对应下面数组中的元素为9.因此a[a[i]]即为a[9]

a[9]对应下面数组中的元素为6.因此a[9]即为6

22.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为:(B)

A、2B、3C、4D、无确定值7

D、3 6 9

二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行

23.对二维数组的正确定义是(C)

详见教材P149~152,二维数组的定义、初始化

类型符 数组名 [常量表达式][常量表达式]

二维数组可以看做是矩阵

类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。

一维数组初始化时可以省略数组长度

二维数组初始化时可以省略行数,但不能省略列数

选项A,B,都省略了列数

选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中

A、int a[ ][ ]={1,2,3,4,5,6};

B、int a[2] []={1,2,3,4,5,6};

C、int a[ ] [3]={1,2,3,4,5,6};

D、int a[2,3]={1,2,3,4,5,6};

24.已知int a[3][4];则对数组元素引用正确的是__C___

A、a[2][4]

B、a[1,3]

C、a[2][0]

D、a(2)(1)

详见教材P150,数组元素的引用

数组名[下标] [下标]

引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。

本题图示详见P149图6.7

因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;

选项A,列逻辑地址下标超过范围

选项B,D,的引用形式不正确。

25.C语言中函数返回值的类型是由 A 决定的.A、函数定义时指定的类型

B、return语句中的表达式类型

C、调用该函数时的实参的数据类型

D、形参的数据类型

26.在C语言中,函数的数据类型是指(A)

A、函数返回值的数据类型

B、函数形参的数据类型

C、调用该函数时的实参的数据类型

D、任意指定的数据类型

27.在函数调用时,以下说法正确的是(B)

A、函数调用后必须带回返回值

B、实际参数和形式参数可以同名

C、函数间的数据传递不可以使用全局变量

D、主调函数和被调函数总是在同一个文件里

28.在C语言中,表示静态存储类别的关键字是:(C)

A、auto

B、register

C、static

D、extern

29.未指定存储类别的变量,其隐含的存储类别为(A)。

A、auto

B、static

C、extern

D、register

30.若有以下说明语句:

struct student

{ int num;

char name[ ];

float score;

}stu;

则下面的叙述不正确的是:(D)

A、struct是结构体类型的关键字

B、struct student 是用户定义的结构体类型

C、num, score都是结构体成员名

D、stu是用户定义的结构体类型名

31.若有以下说明语句:

struct date

{ int year;

int month;

int day;

}brithday;

则下面的叙述不正确的是__C___.A、struct是声明结构体类型时用的关键字

B、struct date 是用户定义的结构体类型名

C、brithday是用户定义的结构体类型名

D、year,day 都是结构体成员名

32.以下对结构变量stul中成员age的非法引用是 B

struct student

{ int age;

int num;

}stu1,*p;

p=&stu1;

A、stu1.age

B、student.age

C、p->age

D、(*p).age

33.设有如下定义:

struck sk

{ int a;

float b;

}data;

int *p;

若要使P指向data中的a域,正确的赋值语句是 C

A、p=&a;

B、p=datA、a;

C、p=&datA、a;

D、*p=datA、a;

34.设有以下说明语句:

typedef struct stu

{ int a;

float b;

} stutype;

则下面叙述中错误的是(D)。

A、struct是结构类型的关键字

B、struct stu是用户定义的结构类型

C、a和b都是结构成员名

D、stutype是用户定义的结构体变量名

35.语句int *p;说明了 C。

A、p是指向一维数组的指针

B、p是指向函数的指针,该函数返回一int型数据

C、p是指向int型数据的指针 // 指针的定义教材P22

3D、p是函数名,该函数返回一指向int型数据的指针

36.下列不正确的定义是(A)。

A、int *p=&i,i;

B、int *p,i;

C.int i,*p=&i;

D、int i,*p;

选项A先定义一个整型指针变量p,然后将变量i的地址赋给p。然而此时还未定义变量i因此编译器无法获得变量i的地址。(A与C对比,选项C先定义变量i,则在内存中为i分配空间,因此i在内存空间的地址就可以确定了;然后再定义p,此时可以为p赋i的地址,C正确)

37.若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是:(D)

A、p=q

B、*p=*q

C、n=*q

D、p=n

p,q同为整型指针变量,二者里面仅能存放整型变量的地址。

选项A,q中为地址,因此可将此地址赋给p

选项B,*p表示p所指向对象n的内容,即一个整数;*q表示q所指向对象的内容,由于在定义q时为其初始化,将p中n的地址给q,因此p中存放n的地址,*q表示q所指向对象n的内容.因此*p=*q 相当于 n=n;

选项C,n=*q 等价于n=n;

选项D,p中只能存放地址,不能将n中的整数值赋给p

38.有语句:int a[10],;则 B 是对指针变量p的正确定义和初始化。

A、int p=*a;

B、int *p=a;

C、int p=&a;

D、int *p=&a;

选项A,a是数组名,不是指针变量名,因此不可用*标注数组名a

选项C,a是数组名,数组名就是地址,无需再用地址符号。而且在定义指针变量p时,应在变量名前加*,标明p是指针变量

选项D,a是数组名,数组名就是地址,无需再用地址符号。

39.若有说明语句“int a[5],*p=a;”,则对数组元素的正确引用是(C)。

A、a[p]

B、p[a]

C、*(p+2)

D、p+

2首先定义一个整型数组a,a的长度为5,然后定义一个指针变量p,并同时对p进行初始化,将数组a的地址赋给p。因此此时p中存放的数组a的首地址,即数组中第一个元素a[0]的地址。

对于数组元素下标的引用(详见p144), 一般形式 数组名[下标] 其中下标为逻辑地址下标,从0开始计数,方括号中的下标可以是变量,可以是表达式,但结果一定要是整数。

选项A,p中存放的是地址,不是整数,不能做数组元素的下标

选项B,a是数组名,数组名就是地址,不是整数,不能做数组元素的下标

选项C,(重点!!详见p231~234)p+2表示指向同一数组中的下两个元素的地址,当前p指向a[0],则p+2表示a[2]的地址,因此*(p+2)表示a[2]的内容

40.有如下程序

int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;

则数值为9的表达式是 B

A、*P+9

B、*(P+8)

C、*P+=9

D、P+8

(重点!!详见p231~234)

首先定义一个整型数组a,a的长度为5,然后定义一个指针变量P,并同时对P进行初始化,将数组a的地址赋给P。因此此时P中存放的数组a的首地址,即数组中第一个元素a[0]的地址。

数组中9对应的是a[8], 选项B,P+8表示数组中后8个元素的地址,即a[8]的地址。*(P+8)则表示该地址内所存放的内容,即a[8]的值。

选项A,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值1.*P+9=1+9=10

选项C,*P表示P所指向对象的内容,此时P指向a[0], *P即a[0]的值。因此*P+=9 即*P =*P+9, 等价于a[0]=a[0]+9.选项D,P+8表示数组中后8个元素的地址,即a[8]的地址,而非a[8]中的值。

第五篇:C语言基础题及答案

第一单元

程序设计和C语言

一、选择题

1. C语言的基本构成单位是:。A.函数 B.函数和过程

C.超文本过程

D.子程序

2. 一个C语言程序总是从 开始执行。A.主过程 B.主函数 C.子程序 D.主程序 3. C语言的程序一行写不下时,可以。

A.用逗号换行 B.用分号换行 C.在任意一空格处换行 D.用回车符换行 4. 以下叙述不正确的是:。

A.在C程序中,语句之间必须要用分号“;”分隔

B.若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C.在C程序中,无论是整数还是实数都能正确无误地表示 D.在C程序中,%是只能用于整数运算的运算符 5. 以下不正确的C语言标识符是。

A.ABC B.abc C.a_bc D.ab.c 6. 下列字符串是标识符的是:。A._HJ

B.9_student

C.long

D.LINE 1 7. 以下说法中正确的是:。

A.C语言程序总是从第一个定义的函数开始执行

B.在C语言程序中,要调用的函数必须放在main()函数中定义 C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分 8. 不合法的常量是:。A.„2‟ B.“

C.„3‟

D.„483‟

9. 已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。

int k,a,b;unsigned long w=5;double x=1.422;A.x%(-3)B.w+=-2 10.

11. 若有定义:int a=7;float x=2.5;y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是:。

C.k=(a=2,b=3,a+b)

D.a+=a=+(b=4)*(a=3)在C语言中,字符型数据在内存中以 形式存放。

A.原码 B.BCD码 C.反码 D.ASCII码 A.2.500000 12. B.2.750000 C.3.500000 D.0.000000 设有说明:char w;int x;float y;double z;

B.char

C.int

D.double 则表达式w*x+z-y值的数据类型为:。A.float 13. 14. 以下 是不正确的转义字符。

若x为int型变量,则执行以下语句后,x的值为。x=6;x+=x-=x*x;B.-60

C.60 D.-24 字符串“"ABC”“的长度是。A.'' B.'' C.'081' D.'' A.36 15.

二、填空题 A.11 B.7 C.5 D.3 1. 一个函数由两部分组成,它们是 和。2. 一个C源程序至少包含一个,即。3. 设int a=12;则表达式a/=a+a的值是。

4. 表达式x=(a=3,6*a)和表达式x=a=3,6*a分别是 表达式和 表达式,两个表达式执行完的结果分别是 和,x值分别是 和。

5. 在C语言中,实数有两种表示形式,即 和。6. 在C语言中,运算符的优先级最小的是 运算符。

第二单元

顺序程序设计

一、选择题

1. 若m为float型变量,则执行以下语句后的输出为。

m=1234.123;printf(”%-8.3fn“,m);printf(”%10.3fn“,m);A.1234.123 B.1234.123 C.1234.123 D.-1234.123 1234.123 1234.123 1234.123 001234.123 2. 若x,y,z均为int型变量,则执行以下语句后的输出为。

x=(y=(z=10)+5)-5;printf(”x=%d,y=%d,z=%dn“,x,y,z);y=(z=x=0,x+10);printf(”x=%d,y=%d,z=%dn“,x,y,z);

B.X=10,Y=10,Z=10 X=0,Y=10,Z=10 D.X=10,Y=10,Z=10

X=0,Y=10,Z=0

A.X=10,Y=15,Z=10 X=0,Y=10,Z=0 X=10,Y=10,Z=0 C.X=10,Y=15,Z=10

3. 若x是int型变量,y是float型变量,所用的scanf调用语句格式为: scanf(”x=%d,y=%f“,&x,&y);则为了将数据10和66.6分别赋给x和y,正确的输入应是:。A.x=10,y=66.6<回车> B.10 66.6<回车> C.10<回车>66.6<回车> D.x=10<回车>y=66.6<回车> 4. 已知有变量定义:int a;char c;用scanf(“%d%c”,&a,&c);语句给a和c输入数据,使30存入a,字符‘b’存入c,则正确的输入是:。A.30’b’<回车> B.30 b<回车> C.30<回车>b<回车> D.30b<回车> 5. 已知有变量定义:double x;long a;要给a和x输入数据,正确的输入语句是。若要输出a和x的值,正确的输出语句。

A.scanf(“%d%f”,&a,&x);B.scanf(“%ld%f”,&a,&x);printf(“%d,%f”,a,x);printf(“%ld,%f”,a,x);C.scanf(“%ld%lf”,&a,&x);D.scanf(“%ld%lf”,&a,&x);printf(“%ld,%lf”,a,x);printf(“%ld,%f”,a,x);6. 若有定义double x=1,y;则以下的语句执行的结果是。

y=x+3/2;printf(“%f”,y);A.2.500000 B.2.5 C.2.000000 D.2 7. 若a为整型变量,则以下语句。a=-2L;printf(”%dn“,a);A.赋值不合法 B.输出为不确定的值

二、读程序写结果

1. main()

{ int x,y;scanf(”%2d%*2d%ld“,&x,&y);printf(”%dn“,x+y);

C.输出值为-2 D.输出值为2 } 执行时输入:1234567 2. main(){ int x=4,y=0,z;x*=3+2;printf(”%d“,x);x*=y=z=4;printf(”%d“,x);} 3. main(){ float x;int i;x=3.6;i=(int)x;printf(”x=%f,i=%d“,x,i);} 4. main(){ int a=2;a%=4-1;printf(”%d, “,a);a+=a*=a-=a*=3;printf(”%d“,a);} 5. main(){ int x=02,y=3;printf(”x=%d,y=%%d“,x,y);} 6. main(){ char c1=‟6‟,c2=‟0‟;printf(”%c,%c,%d,%dn“,c1,c2,c1-c2,c1+c2);} 7. main(){ int x,y,z;x=y=1;z=++x-1;printf(”%d,%dn“,x,z);z+=y++;printf(”%d,%dn“,y,z);}

三、填空题

1. 在C语言中,字符型数据和整型数据之间可以通用,一个字符数据既能以 输出,也能以 输出。

2. ”%-ms“表示如果串长小于m,则在m列范围内,字符串向 靠,补空格。3. printf函数的“格式控制”包括两部分,它们是 和。4. 编写程序求矩形的面积和周长,矩形的长和宽由键盘输入,请填空。

#include void main(){ float l,w;

printf(“please input length and width of the rectanglen”);scanf(“%f%f”,&l,&w);area=;girth=;

} 整数存入n,如:字符‘0’所对应的整数就是0。请填空。void main(){ char c;

};printf(“please input a char:n”);c=;n=;printf(,c,n);5. 编写程序,输入一个数字字符(‘0’~‘9’)存入变量c,把c转换成它所对应的第三单元

选择程序设计

一、选择题

1. 若x=0,y=3,z=3,以下表达式值为0的是 A.!x B.x

w=3;z=7;x=10;printf(”%dn“,x>10?x+100:x-10);printf(”%dn“,w++||z++);printf(”%dn“,!w>z);printf(”%dn“,w&&z);A.0 B.1 C.0 D.0 1 1 1 1 1 1 0 0 1 1 1 0 5. 分析以下程序, 下列说法正确的是。

main(){ int x=5,a=0,b=0;if(x=a+b)printf(”* * * *n“);else printf(”# # # #n“);} A.有语法错,不能通过编译 B.通过编译,但不能连接 C.输出* * * * D.输出# # # # 6. 分析以下程序, 下列说法正确的是。

main(){ int x=5,a=0,b=3;if(x=a+b)printf(”* * * *n“);else printf(”# # # #n“);

} A.有语法错,不能通过编译 B.通过编译,但不能连接 C.输出* * * * D.输出# # # # 7. 分析以下程序, 下列说法正确的是。

main(){ int x=0,a=0,b=0;if(x=a+b)printf(”* * * *n“);else printf(”# # # #n“);

} A.有语法错,不能通过编译 B.通过编译,但不能连接 C.输出* * * * D.输出# # # # 8. 分析以下程序, 下列说法正确的是。

main(){ int x=0,a=0,b=0;if(x==a+b)printf(”* * * *n“);else printf(”# # # #n“);

} A.有语法错,不能通过编译 B.通过编译,但不能连接 C.输出* * * * D.输出# # # # 1. include main(){ int a=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));printf(”%d,%d,%dn“,k,a,b);} 2. main(){ int x=4,y=0,z;x*=3+2;printf(”%d“,x);x*=(y==(z=4));printf(”%d“,x);} 3. main(){ int x,y,z;x=3;y=z=4;printf(”%d“,(x>=z>=x)?1:0);printf(”%d“,z>=y && y>=x);} 4. main(){ int x=1,y=1,z=10;if(z<0)if(y>0)x=3;

二、读程序写结果 else x=5;printf(”%dt“,x);if(z=y<0)x=3;else if(y==0)x=5;else x=7;printf(”%dt“,x);printf(”%dt“,z);} 5. main(){ char x=‘B’;switch(x){ case ‘A’: printf(“It is A.”);case ‘B’: printf(“It is B.”);case ‘C’: printf(“It is C.”);default: printf(“other.”);} } 6. main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1: switch(y){ case 0: a++;break;case 1: b++;break;} case 2: a++;b++;break;case 3: a++;b++;} printf(”a=%d,b=%dn“,a,b);}

三、填空题

1. 若a=5,b=6,c=7,d=8,则表达式d=a/2&&b==c||!a的值为 2. 定义 int x=10,y,z;执行y=z=x;x=y==z后,变量x的值为。3. 分段函数:输入x,计算y值,输出y,其中: x<0 y=2x+3 x=0,y=0 x>0,y=(x+7)/3 #include main(){ int x,y;scanf(”%d“,&x);if(x<0)(1);(2)y=0;(3)y=(x+7)/3;printf(“%d”,y);} 4. 由键盘输入三个数,计算以这三个数为边长的三角形面积。(1)main(){(2);printf(”Please enter 3 reals:n“);scanf(”%f%f%f“,&a,&b,&c);if((3)){ s=(a+b+c)*0.5;s1=s*(s-a)*(s-b)*(s-c);s=(4);printf(”nArea of the triangle is %fn“,s);}(5)printf(”It is not triangle!n“);} 5. 有一方程ax+bx+c=0,a,b,c的值由键盘输入,请编程序,打印出以下情况时方程的解。

(1)a=0,b≠0(2)a=0,b=0,c=0(3)a=0,b=0,c≠0(4)a≠0,b-4ac≥0(5)a≠0,b-4ac≤0

222#include ”math.h“ main(){ float a,b,c,d,pr,pi,x1,x2;scanf(”%f%f%f“,&a,&b,&c);printf(”a=%f,b=%f,c=%fn“,a,b,c);if(a==0){ if((1))printf(”only one solution x=%fn“,-c/b);else if((2))printf(”no solutionn“);else printf(”x is any valuen“);} else { d=b*b-4*a*c;if((3)){ x1=(-b+sqrt(d))/(4);x2=(-b-sqrt(d))/(5);printf(”x1=%6.2f, x2=%6.2fn“,x1,x2);} else { pr=-b/(2*a);(6);printf(”x1=%6.2f +%6.2fin“,pr,pi);printf(”x2=%6.2f-%6.2fin“,pr,pi);} } } 6. 投票表决器:

– 输入Y、y,打印agree – 输入N、n,打印disagree – 输入其他,打印lose main(){ char c;scanf(”%c“,&c);(1){

} case ‘Y’: case ‘y’: printf(“agree”);(2);case ‘N’: case ‘n’: printf(“disagree”);(3);(4):printf(“lose”);

第四单元

循环程序设计

一、选择题

1. 程序段如下:则以下说法中正确的是:。

int k=5;do{ k--;}while(k<=0);A.循环执行5次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 2. 设i和x都是int类型,则for循环语句。

for(i=0,x=0;i<=9&&x!=876;i++)scanf(”%d“,&x);A.最多执行10次 B.最多执行9次 C.是无限循环 D.循环体一次也不执行 3. 下述for循环语句。

int i,k;for(i=0,k=-1;k=1;i++,k++)printf(”* * * *“);A.判断循环结束的条件非法 B.是无限循环 C.只循环一次 D.一次也不循环 4. 程序段如下:则以下说法中正确的是:。

int k=-20;while(k=0)k=k+1;A.while循环执行20次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 5. 下列程序段执行后k值为。

int k=0,i,j;for(i=0;i<5;i++)for(j=0;j<3;j++)k=k+1;A.15 B.3 C.5 D.8 6. 程序段如下:则以下说法中不正确的是:。

#include main(){ int k=2,;while(k<7){ if(k%2){k=k+3;printf(“k=%dn”,k);continue;} k=k+1;printf(“k=%dn”,k);} } A.k=k+3;执行一次 B.k=k+1;执行2次 C.执行后k值为7 D.循环体只执行一次 1. main(){ int num=0;while(num<=2){ num++;printf(”%dn“,num);} } 2. main(){ int i=0,s=0;do { s+=i*2+1;printf(”i=%d,s=%dn“,i,s);i++;} while(s<10);} 3. #include main(){ int i,m=1;for(i=5;i>=1;i--){ m=(m+1)*2;printf(”m=%dn“,m);} } 4. 指出下面三个程序的功能,当输入为:”quert?“时,它们的执行结果是什么? ⑴ #include main(){ char c;c=getchar();while(c!='?'){ putchar(c);c=getchar();} } ⑵ #include main()

二、读程序写结果 { char c;while((c=getchar())!='?')putchar(++c);} ⑶ #include main(){ while(putchar(getchar())!='?');} 5. #include main(){ int i;for(i=1;i<=5;i++){ if(i%2)putchar(‘<’);else continue;putchar(‘>’);} putchar(‘#’);} 6. main(){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>10)break;if(b%3==1){ b+=3;continue;} } printf(”a=%dn“,a);} 7. main()

{ int i=1;while(i<=15)if(++i%3!=2)continue;else printf(”%d “,i);printf(”n“);

} 8. #include void main(){ int i,j;for(i=0;i<=3;i++){ for(j=0;j<=i;j++)printf(”(%d,%d),“,i,j);printf(”n“);} } 9. main()

{ int i,j,k;

char space=' ';for(i=0;i<=5;i++){ for(j=1;j<=i;j++)printf(”%c“,space);for(k=0;k<=5;k++)printf(”%c“,'*');printf(”n“);

10.} #include { int i,j,k=0;for(j=11;j<=30;j++){ if(k%10==0)printf(”n“);for(i=2;i

if(i>=j-1)

{ printf(”%dt“,j);k++;}

三、填空题

1. break语句只能用于 语句和 语句中。2. 计算2+4+6+8+...+98+100 main(){ int i,(1);for(i=2;i<=100;(2))s+=i;} 3. 求满足下式的 x,y,z } } } main()

X Y Z + Y Z Z ────── 5 3 2

main(){ int x,y,z,i,result=532;for(x=1;(1);x++)for(y=1;(2);y++)for((3);(4);z++){ i=(5)+(100*y+10*z+z);if(i==result)printf(”x=%d, y=%d, z=%dn“,x,y,z);} } 4. 求 Sn=a+aa+aaa+...+aa...a之值,其中 a是一个数字。例如 2+ 22 +222+2222(此时n=4),n由键盘输入。

main(){ int a,n,count=1,Sn=0,Tn=0;printf(”请输入 a 和 n 的值:n“);scanf(”%d,%d“,&a,&n);while(count<=(1)){ Tn=(2);Sn=(3);a=a*10;(4);} printf(”a+aa+aaa+...=%dn“,Sn);} 5. 一球从 100米高度自由落下,每次落地后反跳回原来高度的一半,再落下,求它在第十次落地时,共经过多少米?第十次反弹多高?

main(){ float Sn=100.0,hn=Sn/2;int n;for(n=2;n<=(1);n++){ Sn=(2);hn=(3);} printf(”第10次落地时共经过%f米n“,Sn);printf(”第10次反弹%f米n“,hn);} 6. 打印出以下图形 * * * * * * * * * * * * * * * * * * * * * * * * * main(){ int i,j,k;for(i=0;i<=(1);i++){ for(j=0;j<=2-i;j++)printf(” “);for(k=0;k<=(2);k++)printf(”*“);(3)} for(i=0;i<=2;i++){ for(j=0;j<=(4);j++)printf(” “);for(k=0;k<=(5);k++)printf(”*“);printf(”n“);} } 7. 准备客票。某铁路线上共10个车站,问需要准备几种车票? main(){ int i,j,station,total=0;printf(”输入车站数:“);scanf(”%d“,&station);for(i=1;i<(1);i++)for(j=(2);j<=station;j++)total=(3);printf(”车票种类=%d n“,total);}

第五单元

一、选择题

1. 以下关于数组的描述正确的是。

A.数组的大小是固定的,但可以有不同的类型的数组元素。B.数组的大小是可变的,但所有数组元素的类型必须相同。C.数组的大小是固定的,但所有数组元素的类型必须相同。D.数组的大小是可变的,但可以有不同的类型的数组元素。2. 在定义int a[10];之后,对a的引用正确的是。

A.a[10] B.a[6.3] C.a(6)D.a[10-10] 3. 以下能正确定义数组并正确赋初值的语句是。

A.int n=5,b[n][n];B.int a[1][2]={{1},{3}};C.int c[2][]={{1,2},{3,4}} D.int a[3][2]={{1,2},{3,4}} 4. 以下不能正确赋值的是。

A.char s1[10];s1=”test“;B.char s2[]={‟t‟,‟e‟,‟s‟,‟t‟} C.char s3[20]= ”test“;D.char s4[4]={ ‟t‟,‟e‟,‟s‟,‟t‟} 5. 下面程序段运行时输出结果是。

char s[18]= ”a book!“;printf(”%.4s“,s);A.a book!B.a book!C.a bo D.格式描述不正确,没有确定输出 6. 下面程序段运行时输出结果是。

char s[12]= ”A book“;printf(”%dn“,strlen(s));A.12 B.8 C.7 D.6 7. 在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是。A.4 B.1 C.2 D.5

二、读程序写结果

1. #include void main(){

} int a[8]={1,0,1,0,1,0,1,0},i;for(i=2;i<8;i++)a[i]+= a[i-1] + a[i-2];printf(“%5d”,a[i]);for(i=0;i<8;i++)2. #include void main(){ float b[6]={1.1,2.2,3.3,4.4,5.5,6.6},t;int i;t=b[0];for(i=0;i<5;i++)b[i]=b[i+1];b[5]=t;for(i=0;i<6;i++)

printf(“%6.2f”,b[i]);} void main(){ int p[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7 && p[i]%2){ k=k+p[i];i++;} printf(”k=%dn“,k);} 4. void main(){ int a[3][3]={1,3,5,7,9,11,13,15,17};int sum=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++){ a[i][j]=i+j;if(i==j)

sum=sum+a[i][j];} printf(”sum=%d“,sum);}

5. void main(){ int a[4][4],i,j,k;for(i=0;i<4;i++)for(j=0;j<4;j++)a[i][j]=i-j;for(i=0;i<4;i++){ for(j=0;j<=i;j++)3. #include printf(”%4d“,a[i][j]);printf(”n“);} }

6. #include main(){ int i,s;char s1[100],s2[100];printf(”input string1:n“);gets(s1);printf(”input string2:n“);gets(s2);i=0;while((s1[i]==s2[i])&&(s1[i]!=''))i++;if((s1[i]=='')&&(s2[i]==''))s=0;else s=s1[i]-s2[i];printf(”%dn“,s);} 输入数据 aid and

7. void main(){ } 8. #inlcude #include void main(){

char str[10][80],c[80];int i;for(i=0;i<10;i++)gets(str[i]);strcpy(c,str[0]);for(i=1;i<10;i++)if(strlen(c)

三、填空题

1. 构成数组的各个元素必须具有相同的。

2. 下面的程序是输出数组中最大元素的下标(p表示最大元素的下标)。

void main(){

} 3. 输入20个数,输出他们的平均值,输出与平均值之差的绝对值最小的数组元素。

#include void main(){

float a[20],pjz=0,s,t;int i,k;for(i=0;i<20;i++){ scanf(“%f”,&a[i]);pjz+= ;

} s=fabs(a[0]-pjz);t=a[0];for(i=1;i<20;i++)if(fabs(a[i]-pjz)

}

int s[]={1,-3,0,-9,8,5,-20,3};for(i=0,p=0;i<8;i++)if(s[i]>s[p]);

4. 输出行、列号之和为3的数组元素。

main(){ char ss[4][3]={'A','a','f','c','B','d','e','b', 'C','g','f','D'};int x,y,z;for(x=0;(1);x++)for(y=0;(2);y++){ z=x+y;if((3))printf(”%cn“,ss[x][y]);} } 5. 将一个数组中的元素按逆序重新存放。例如原来的顺序为:8,5,7,4,1, 要求改为:1,4,7,5,8。#define N 7 void main(){ int a[N]={12,9,16,5,7,2,1},k,s;printf(”n初始数组:n“);for(k=0;k

#include void main(){ /*str1表示原来的一行文字,str2表示删除指定字符后的文字*/ char str1[100],str2[100];char ch;int i=0,k=0;printf(“please input an sentence:n”);gets(str1);scanf(”%c“,&ch);for(i=0;(2);i++)if(str1[i]!=ch){ str2[(3)]=str1[i];k++;} str2[(4)]='';printf(”n%sn“,str2);} 7. 找出10个字符串中的最大者。

#include #include #define N 10 void main(){ char str[20],s[N][20];int i;for(i=0;i0)strcpy(str,s[i]);printf(”The longest string is : n%sn“,str);}

8. 某人有四张 3分的邮票和三张 5分的邮票,用这些邮票中的一张或若干张可以得到多少种不同的邮资?

main(){ static int a[27];int i,j,k,s,n=0;for(i=0;i<=4;i++)for(j=0;j<=3;j++){ s=(1);for(k=0;a[k];k++)if(s==a[k])(2);if((3)){ a[k]=s;n++;} } printf(”%d kind:“,n);for(k=0;(4);k++)printf(”%3d“,a[k]);} 9. 求矩阵的马鞍点。马鞍点即它的值在行中最大,在它所在的列中最小。#define N 10 #define M 10 main(){ int i,j,k,m,n,flag1,flag2;int a[N][M],max;printf(”n输入行数 n:“);scanf(”%d“,&n);printf(”n输入列数 m:“);scanf(”%d“,&m);for(i=0;imax)max=a[i][j];for(j=0;j

if((4))flag1=0;

if(flag1)

{ printf(”第%d行, 第%d列的 %d是鞍点n“,(5));

flag2=1;

} } } } if(!flag2)printf(”n矩阵中无鞍点!n“);}

第六单元

一、选择题

1. 在C语言中,当函数调用时。

A.实参和形参各占一个独立的存储单元 B.实参和形参共用存储单元

C.可以由用户指定实参和形参是否共用存储单元 D.由系统自动确定实参和形参是否共用存储单元 2. 以下函数调用语句中实参的个数为。

exce((v1,v2),(v3,v4,v5),v6);A.3 B.4

C.5

D.6 3. 如果在一个函数的复合语句中定义了一个变量,则该变量。

A.只在该符合语句中有效,在该符合语句外无效

B.在该函数中任何位置都有效 C.在本程序的原文件范围内均有效 D.此定义方法错误,其变量为非法变量

A.float型 B.int型 C.long型 D.double型 5. C语言规定,函数返回值的类型是由。

A.return语句中的表达式类型所决定 B.调用该函数时的主调函数类型所决定 C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型决定 6. 在C语言程序中,以下描述正确的是。

A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D.函数的定义和函数的调用均可以嵌套 8.以下程序的运行结果是:

#include void sub(int s[],int y){ static int t=3; y=s[t];t--; } main(){ int a[]={1,2,3,4},i,x=0; for(i=0;i<4;i++){ sub(a,x);printf("%d",x);} printf("\n"); } A)1234

9.以下程序的运行结果是: main(){ int w=5;fun(w);printf("\n");} fun(int k){ if(k>O)fun(k-1); printf(" %d",k); B)432l

C)0000

D)4444 4. C语言允许函数值类型缺省定义,此时该函数值隐含的类型是。} A)5 4 3 2 l B)0 1 2 3 4 5

C)1 2 3 4 5

D)5 4 3 2 1 0 10.以下所列的各函数首部中,正确的是_______。A)void play(vat a:Integer,var b:Integer)C)void play(int a,int b)A)数组的长度

B)void play(int a,b)

D)Sub play(a as integer,b as integer)11.当调用函数时,实参是一个数组名,则向函数传送的是_______。

B)数组的首地址 D)数组每个元素中的值 C)数组每一个元素的地址

12.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_______。A)地址传递

B)单向值传递

C)由实参传给形,再由形参传回实参 D)传递方式由用户指定

13.以下函数值的类型是_______。

fun(float x){ float y; y=3*x-4; return y; } A)int B)不确定

C)void

D)float

二、读程序写结果 1. fun1(int a,int b){ int c;a+=a;b+=b;c=fun2(a,b);return c*c;} fun2(int a,int b){ int c;c=a*b%3;return c;} main(){ int x=11,y=19;printf(”The final result is:%dn“,fun1(x,y));} 2. int x;main(){ x=5;cude();printf(”%dn“,x);} cude(){ x=x*x*x;} 3. #include long fun(int n){ long s;if(n==1||n==2)s=2;else s=n+fun(n-1);return s;} main()} 4. main(){ int i;for(i=0;i<2;i++)add();} add(){ int x=0;static int y=0;printf(”%d,%dn“,x,y);x++;y=y+2;}

5. main(){ int k=4,m=1,p;p=func(k,m);printf(”%d, “,p);p=func(k,m);printf(”%dn“,p);} func(int a,int b){ static int m=0,i=2;i+=m+1;m=i+a+b;return m;}

6.int t(int x,int y,int cp,int dp){ cp=x*x+y*y; dp=x*x-y*y; { printf(”%ldn“,fun(4));} main(){ int a=4,b=3,c=5,d=6; t(a,b,c,d);

printf("%d%dn",c,d); }

7.fun(int x,int y,int z){z=x*x+y*y;} main(){ int a=31;

fun(5,2,a); printf("%d",a); } 8.int a,b;

void fun(){ a=100;b=200; } main(){ int a=5,b=7; fun();

printf("%d%d\n",a,b); }

9.int x=3;

main(){int i;

for(i=1;i

printf("%d",x); }

10.int func(int a,intb){ return(a+b); } main(){int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%d\n",r); }

11.long fib(int n){ if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main(){ printf("%ldn",fib(3)};}

三、填空题

1. 编写一个验证正整数M是否为素数的函数,若M是素数则把1送到T中,否则零送到T中。在主函数中读入N个正整数,每读入一个则调用函数判断它是否为素数,在主函数中将T的值累加到另一个变量中。用此方法可求出N个数中素数的个数。请填空完成上述功能的程序。#include #include int prime(int m){ int i,pp=1;for(i=2;(1);i++)if(m % i==0)pp=0;if(m==1)(2)return(pp);} main(){ int a[20],i,sum=0;for(i=0;i<10;i++){ scanf(”%d“,&a[i]);sum=(3)} printf(”the number of prime data is:%d“,sum);}

2. 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果。请填空完成上述功能的程序。#include #include void fltj(char str[],int a[]){ int ll,i;ll=(1)for(i=0;i

1 Pnx((2n1)xp(x)(n1)p(x))/nn1n2

#include main(){ float pn();float x,lyd;int n;scanf(”%d%f“,&n,&x);lyd=(1)printf(”pn=%f",lyd);} float pn(float x,int n){ float temp;if(n==0)temp=(2)else if(n==1)temp=(3)else temp=(4)return(temp);} 4.以下函数的功能是:求x的y次方,请填空。

double fun(double x,int y){int i; double z:

for(i=1,z=x;i

(n0)(n1)

(n1)

第一单元

程序设计和C语言

一、选择题

1.A

2.B

3.C

4.C

5.D

6.A 12.D

13.BC

14..B

15.B

二、填空

1. 函数首部、函数体 2. 主函数、main函数 3. 0 4. 赋值、逗号、18、18、18、3 5. 浮点型、指数型 6. 逗号

第二单元

顺序程序设计

一、选择题 1.C 2.A 3.A

4.D

5.C

6.C 7.C

二、读程序写结果

1. 17 2. 2080 3. X=3.600000,i=3 4. 2,0 5. X=2,y=%d

6. 6,0,6,102 7. 2,1 2,2

三、填空

1. 字符

整数 2. 左

3. 格式说明

普通字符

4.(1)float area,girth;(2)l*w

7.C

8.D 9.A

10.D

11.A(3)2*(l+w)(4)printf(“area=%f,girth=%fn”,area,girth);5.(1)#include “stdio.h”

(2)int n(3)getchar()(4)c-„0‟

或者c-48(5)“%c,%dn”

第三单元

分支程序设计

一、选择题 1.C 2.EB

3.D

4.C

5.D

6.C 7.D 8.C

二、读程序写结果

1. 1,0,3 2. 200 3. 01 4. 1 7 0 5. It is B.It is C.other.6. a=2,b=1

三、填空

1. 0 2. 1 3.(1)y=2*x+3(2)else if(x==0)(3)else 4.(1)#include “math.h”

(2)float a,b,c,s,s1(3)(a+b>c)&&(b+c>a)&&(c+a>b)(4)sqrt(s1)(5)else 5.(1)b!=0(2)c!=0(3)d>=0(4)(2*a)(5)(2*a)(6)pi=sqrt(-d)/(2*a)6.(1)switch(c)(2)break(3)break(4)default

第四单元

循环程序设计

一、选择题

1. D 2. A

.3. B

.4. C 5. A 6. D

二、读程序写结果

1. 1 2

2. i=0,s=1 i=1,s=4 i=2,s=9 i=3,s=16 3. m=4 m=10 m=22 m=46 m=94 4.(1)quert(2)rvfsu(3)quert? 5. <><><># 6. a=5 7. 2 5 8 11 14 8.(0,0),(1,0),(1,1),(2,0),(2,1),(2,2),(3,0),(3,1),(3,2),(3,3), 9.

****** ******

****** ****** ******

****** 10. 11 13 17 19

三、填空

1. switch、循环 2.(1)s=0 29(2)i=i+2 3.(1)x<=9(2)y<=9(3)z=0(4)z<=9(5)x*100+y*10+z 4.(1)n(2)Tn+a(3)Sn+Tn(4)count++ 5.(1)10(2)Sn+hn*2(3)hn/2 6.(1)3(2)2*i(3)printf(“n”);(4)i(5)4-2*i 7.(1)station(2)i+1(3)total+2

第五单元

数组

一、选择题

1.C

2.D

3.D

4.A

5.C

二、读程序写结果

1.0

2.2.20 3.30 4.40 5.50 3. k=24 4. sum=6 5.

0

0

0

0 6.-5 7. “BBB”

8. 没有输入数据

三、填空

1. 类型

2.(1)int i,p(2)p=i(3)printf(“%dn”,p);3.(1)#include “math.h”

6.D

7.A 5 6.60 1.10 20

(2)a[i]/20(3)s=fabs(a[i]-pjz);(4)printf(“%f,%fn”,pjz,t);4.

(1)x<4(2)y<3(3)z==3 5.(1)N/2(2)a[N-1-k](3)a[N-1-k](4)k

第六单元

函数

一、选择题

1.A

2.A

3.A

4.B

二、读程序写结果

1. The final result is:4 2. 125 3. 9 4. 0,0 0,2 5. 8, 17 6. 5 6 7. 31 8. 57 9. 2 6 10. 15 11.4

三、填空

5.D

6.B 8.C 9.B 11.B 13.A

10.C 12.B 1.(1)i

(1)strlen(str);(2)str[i]>=‟A‟ && str[i]<=‟Z‟ || str[i]>=‟a‟ && str[i]<=‟z‟(3)str[i]>=‟0‟ && str[i]<=‟9‟(4)str[i]= =‟ ‟ 3.(1)pn(x,n);(2)1;(3)x;(4)((2*n-1)*x*pn(x,n-1)-(n-1)*pn(x,n-2))/n;4.x

下载计算机二级C语言公共基础典型120题word格式文档
下载计算机二级C语言公共基础典型120题.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    计算机等级《二级C语言程序设计》押题卷

    计算机等级《二级C语言程序设计》预测试卷(一) 一、单项选择题(共40题,合计40分) 1以下能正确定义一维数组的选项是()。 A.int a[5]={0.1,2.3.4,5); B.char a口={0,1,2,3,4,5); C.char a={'A’,'......

    安徽大学计算机基础C语言选择题

    1、能将高级语言编写的源程序转换成目标程序的是______。 A) 编辑程序 B) 编译程序 C) 解释程序 D) 链接程序 参考答案: B 2、以下选项中合法的用户标识符是______。 A) long......

    计算机二级C语言完整版视频教程,零基础也能学C

    计算机二级C语言在线学习完整视频-正听学院 本套计算机二级C语言视频完全按照《计算机二级C语言最新考试大纲》量身定制,全真模拟、精选习题、详尽解析,不管你是学C还是零基础......

    计算机二级C语言题型和评分标准(合集5篇)

    1、选择题:40题,每题1分。按标答给分 2、程序填空:3处空,每空6分。共18分,按标答给分,如果和标答的写法不一样,就算对的也没有分。每一空有每一空的分数。做对一空就给6分 3、程序......

    计算机二级考试C语言知识点总结

    计算机二级考试C语言知识点总结 (完全针对考试大纲) 概述 总体上必须清楚的: 1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch) 2)读程序都......

    计算机二级C语言上机题型总结

    全国计算机二级C语言考试上机题型总汇 (一)关于“******”问题 1、将字符串中的前导*号全部删除,中间和后面的*号不删除。 void fun(char *a) { char *p=a; while(*p= =’*’)......

    全国计算机二级c语言成绩查询

    全国计算机二级c语言成绩查询 篇一:2016年全国计算机等级考试二级C语言考试大纲及重点2016年全国计算机等级考试二级C语言考试大纲◆ 基本要求 1.熟悉 Visual C++ 6.0 集成......

    计算机二级C语言测试题含答案(5篇)

    C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面小编整理了计算机二级C语言测试题含......