《计算机软件技术基础》习题及参考答案
更新时间:2024-04-22 07:57:01 阅读量: 综合文库 文档下载
习题1
1.下列描述中正确的是 。
A.程序就是软件 B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体 D.软件是程序、数据与相关文档的集合 2.数据的存储结构是指 。
A.存储在外存中的数据 B.数据所占的存储空间量
C.数据在计算机中的顺序存储方式 D.数据的逻辑结构在计算机中的表示 3.数据结构中,与所使用的计算机无关的是数据的______。
A. 存储结构 B. 物理结构 C. 逻辑结构 D. 物理和存储结构 4.以下数据结构中不属于线性数据结构的是______。
A. 队列 B. 线性表 C . 二叉树 D. 栈 5.在计算机中,算法是指______。
A. 查询方法 B. 加工方法 C. 解题方案的准确而完整的描述 D. 排序方法 6.在下列选项中,哪个不是一个算法一般应该具有的基本特征______。 A. 确定性 B. 可行性 C. 无穷性 D. 拥有足够的情报 7.下面叙述正确的是______。
A. 算法的执行效率与数据的存储结构无关
B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上三种描述都不对
8.算法分析的目的是______。
A. 找出数据结构的合理性 B. 找出算法中输入和输出之间的关系 C. 分析算法的易懂性和可靠性 D. 分析算法的效率以求改进 9.算法的时间复杂度是指______。
A. 执行算法程序所需要的时间 B. 算法程序的长度
C. 算法执行过程中所需要的基本运算次数 D. 算法程序中的指令条数 10.算法的空间复杂度是指______。
A. 算法程序的长度 B. 算法程序中的指令条数
C. 算法程序所占的存储空间 D. 算法执行过程中所需要的存储空间 11.算法一般都可以用哪几种控制结构组合而成______。
A. 循环、分支、递归 B. 顺序、循环、嵌套 C. 循环、递归、选择 D. 顺序、选择、循环 12.下列对于线性表的描述中正确的是 。
A.存储空间不一定是连续,且各元素的存储顺序是任意的
B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面 C.存储空间必须连续,且各前件元素一定存储在后件元素的前面 D.存储空间必须连续,且各元素的存储顺序是任意的
13.线性表的顺序存储结构和线性表的链式存储结构分别是______。 A. 顺序存取的存储结构、顺序存取的存储结构 B. 随机存取的存储结构、顺序存取的存储结构 C. 随机存取的存储结构、随机存取的存储结构 D. 任意存取的存储结构、任意存取的存储结构
1
14.下列关于栈的描述中错误的是 。
A.栈是先进后出的线性表 B.栈只能顺序存储
C.栈具有记忆作用 D.对栈的插入和删除操作中,不需要改变栈底指针 15.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是______。
A. ABCED B. DBCEA C. CDABE D. DCBEA 16.下列关于栈的叙述中正确的是______。
A. 在栈中只能插入数据 B. 在栈中只能删除数据 C. 栈是先进先出的线性表 D. 栈是先进后出的线性表 17.下列关于队列的叙述中正确的是______。
A. 在队列中只能插入数据 B. 在队列中只能删除数据 C. 队列是先进先出的线性表 D. 队列是先进后出的线性表 18.栈和队列的共同点是______。
A.都是先进后出 B.都是先进先出 C.只允许在端点处插入和删除元素 D.没有共同点
19.用链表表示线性表的优点是______。
A. 便于插入和删除操作 B. 数据元素的物理顺序与逻辑顺序相同 C. 花费的存储空间较顺序存储少 D. 便于随机存取 20.在单链表中,增加头结点的目的是______。
A. 方便运算的实现 B. 使单链表至少有一个结点
C. 标识表结点中首结点的位置 D. 说明单链表是线性表的链式存储实现 21.在一棵二叉树上第5层的结点数最多是______。
A. 8 B. 16 C. 32 D. 15
22.设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为______。 A. 349 B. 350 C. 255 D. 351
23.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是______。
A. cedba B. acbed C. decab D. deabc
24.对长度为N的线性表进行二分查找,在最坏的情况下所需要的比较次数为 。 A.log2n B.n/2 C.n D.n+1
25.对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。 A. N+1 B. N C. (N+1)/2 D. N/2 26.希尔排序法属于哪一种类型的排序法______。
A. 交换类排序法 B. 插入类排序法 C. 选择类排序法 D. 建堆排序法 27.下面描述中,符合结构化程序设计风格的是______。
A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B. 模块只有一个入口,可以有多个出口 C. 注重提高程序的执行效率 D. 不使用goto语句
28.下面概念中,不属于面向对象方法的是______。
A. 对象 B. 继承 C. 类 D. 过程调用 29.结构化程序设计主要强调的是______。
A. 程序的规模 B. 程序的易读性 C. 程序的执行效率 D. 程序的可移植性 30.对建立良好的程序设计风格,下面描述正确的是______。
2
A. 程序应简单、清晰、可读性好 B. 符号名的命名要符合语法 C. 充分考虑程序的执行效率 D. 程序的注释可有可无 31.下面对对象概念描述错误的是______。
A. 任何对象都必须有继承性 B. 对象是属性和方法的封装体 C. 对象间的通讯靠消息传递 D. 操作是对象的动态性属性 32.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。 A. 调用语句 B. 命令 C. 口令 D. 消息
33.面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。
A. 模拟现实世界中不同事物之间的联系 B. 强调模拟现实世界中的算法而不强调概念
C. 使用现实世界的概念抽象地思考问题从而自然地解决问题
D. 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考
参考答案:
1.D 2.D 3.C 4.C 5.C 6.C 7.C 8.D 9.C 10.D 11.D 12.B 13.B 14.C 15.D 16.D 17.C 18.C 19.A 20.A 21.B 22.B 23.A 24.A 25.B 26.B 27.A 28.D 29.B 30.A 31.A 32.D 33.C
3
第2章 软件工程基础
习题2
一、单项选择题:
1.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。 A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码 2.在软件开发中,下面任务不属于设计阶段的是______。 A. 数据结构设计 B. 给出系统模块结构 C. 定义模块算法 D. 定义需求并建立系统模型 3.结构化程序设计主要强调的是______。 A. 程序的规模 B. 程序的易读性 C. 程序的执行效率 D. 程序的可移植性
4.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
A. 概要设计 B. 详细设计 C. 可行性分析 D. 需求分析
5.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。
A. 控制流 B. 加工 C. 数据存储 D. 源和潭
6.软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。
A. 阶段性报告 B. 需求评审 C. 总结 D. 都不正确 7.下面不属于软件工程的3个要素的是______。
A. 工具 B. 过程 C. 方法 D. 环境 8.程序流程图(PFD)中的箭头代表的是______。
A. 数据流 B. 控制流 C. 调用关系 D. 组成关系 9.检查软件产品是否符合需求定义的过程称为______。
A. 确认测试 B. 集成测试 C. 验证测试 D. 验收测试 10.下列工具中属于需求分析常用工具的是______。
A. PAD B. PFD C. N?S D. DFD 11.下面不属于软件设计原则的是______。
A. 抽象 B. 模块化 C. 自底向上 D. 信息隐蔽 12.信息隐蔽的概念与下述哪一种概念直接相关______。 A. 软件结构定义 B. 模块独立性 C. 模块类型划分 D. 模拟耦合度
13.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
- 4 -
第2章 软件工程基础
A. 详细设计 B. 需求分析 C. 总体设计 D. 编程调试 14.软件调试的目的是______。
A. 发现错误 B. 改正错误 C. 改善软件的性能 D. 挖掘软件的潜能 15.下列不属于软件调试技术的是______。 A. 强行排错法 B. 集成测试法 C. 回溯法 D. 原因排除法
16.下列叙述中,不属于软件需求规格说明书的作用的是______。 A. 便于用户、开发人员进行理解和交流
B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据 C. 作为确认测试和验收的依据 D. 便于开发人员进行需求分析
17.在数据流图(DFD)中,带有名字的箭头表示______。 A. 控制程序的执行顺序 B. 模块之间的调用关系 C. 数据的流向 D. 程序的组成成分
18.视图设计一般有3种设计次序,下列不属于视图设计的是______。 A. 自顶向下 B. 由外向内 C. 由内向外 D. 自底向上
19.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。 A. 模块间的关系 B. 系统结构部件转换成软件的过程描述 C. 软件层次结构 D. 软件开发过程
20.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。
A. PAD图 B. N?S图 C. 结构图 D. 数据流图 21.需求分析阶段的任务是确定______。
A. 软件开发方法 B. 软件开发工具 C. 软件开发费用 D. 软件系统功能 22.下列不属于结构化分析的常用工具的是______。
A. 数据流图 B. 数据字典 C. 判定树 D. PAD图 23.软件开发的结构化生命周期方法将软件生命周期划分成______。 A. 定义、开发、运行维护 B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计
24.在软件工程中,白盒测试法可用于测试程序的内部结构。此方法将程序看作是______。
A. 循环的集合 B. 地址的集合 C. 路径的集合 D. 目标的集合 二、填空题:
- 5 -
第2章 软件工程基础
1.软件是程序、数据和_________的集合。
2.软件工程研究的主要内容包括:__________技术和软件工程管理。 3.数据流图的类型有_________和事务型。
4.Jackson方法是一种面向_________的结构化方法。
5.软件开发环境是全面支持软件开发全过程的_______的集合。 6.软件调试分为静态调试和动态调试,_________是主要的调试手段。 7.软件测试过程包括单元测试、集成测试、_________和系统测试。 8. 按功能来分,软件测试技术分为__________和__________。
参考答案: 一、选择题
1.D 2.D 3.B 4.C 5.A 6.B 7.D 8.A 9.A 10.D 11.C 12.B 13.B 14.B 15.B 16.D 17.C 18.B 19.B 20.B 21.D 22.D 23.A 24.C 二、填空题
1.相关文档 2.软件开发 3.变换型 4.数据结构 5.软件工具 6.静态调试 7.确认测试 8.白盒测试、黑盒测试
- 6 -
第2章 软件工程基础
习题3
一、单项选择题
1.数据库系统的核心是______。
A. 数据模型 B. 数据库管理系统 C. 软件工具 D. 数据库 2.下列叙述中正确的是______。
A. 数据库是一个独立的系统,不需要操作系统的支持 B. 数据库设计是指设计数据库管理系统
C. 数据库技术的根本目标是要解决数据共享的问题 D. 数据库系统中,数据的物理结构必须与逻辑结构一致
3.下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。 A. 内模式 B. 外模式 C. 概念模式 D. 逻辑模式 4.下述关于数据库系统的叙述中正确的是______。 A. 数据库系统减少了数据冗余 B. 数据库系统避免了一切冗余
C. 数据库系统中数据的一致性是指数据类型的一致 D. 数据库系统比文件系统能管理更多的数据 5.关系表中的每一横行称为一个______。
A. 元组 B. 字段 C. 属性 D. 码 6.数据库设计包括两个方面的设计内容,它们是______。 A. 概念设计和逻辑设计 B. 模式设计和内模式设计 C. 内模式设计和物理设计 D. 结构特性设计和行为特性设计
7.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是______。
A. 数据库系统 B. 文件系统 C. 人工管理 D. 数据项管理 8.用树形结构来表示实体之间联系的模型称为______。 A. 关系模型 B. 层次模型 C. 网状模型 D. 数据模型 9.关系数据库管理系统能实现的专门关系运算包括______。 A. 排序、索引、统计 B. 选择、投影、连接 C. 关联、更新、排序 D. 显示、打印、制表 10.数据的存储结构是指______。
A. 数据所占的存储空间量 B. 数据的逻辑结构在计算机中的表示 C. 数据在计算机中的顺序存储方式 D. 存储在外存中的数据
- 7 -
第2章 软件工程基础
11.索引属于______。
A. 模式 B. 内模式 C. 外模式 D. 概念模式 12.在关系数据库中,用来表示实体之间联系的是______。 A. 树结构 B. 网结构 C. 线性表 D. 二维表 13.将E?R图转换到关系模式时,实体与联系都可以表示成______。 A. 属性 B. 关系 C. 键 D. 域 14.按条件f对关系R进行选择,其关系代数表达式为______。 A. R|?|R B. R|?|R C. ?ff(R) D. ?f(R)
15.数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是______。 A. 自顶向下 B. 由底向上 C. 由内向外 D. 由整体到局部 16.SQL语言又称为______。
A. 结构化定义语言 B. 结构化控制语言 C. 结构化查询语言 D. 结构化操纵语言 17.数据处理的最小单位是______。
A. 数据 B. 数据元素 C. 数据项 D. 数据结构 18.下列有关数据库的描述,正确的是______。
A. 数据库是一个DBF文件 B. 数据库是一个关系 C. 数据库是一个结构化的数据集合 D. 数据库是一组文件 19.单个用户使用的数据视图的描述称为______。
A. 外模式 B. 概念模式 C. 内模式 D. 存储模式
20.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。
A. 数据无冗余 B. 数据可共享 C. 专门的数据管理软件 D. 特定的数据模型 二、填空题
1.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与“项目”的联系属于___________的联系。
2.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构不变,因此基于逻辑结构的应用程序不必修改,称为____________。
3.在关系模型中,把数据看成一个二维表,每个二维表称为一个__________。
4.关系模型的完整性规则是对关系的某种约束,包括实体完整性、_______________和自定义完整性。
5.数据库系统中实现各种数据管理功能的核心软件称为_______________。 三、写出SQL语句 1.建立student表。 2.输入一行数据。
3.查询student表中所有信息。
- 8 -
第2章 软件工程基础
4.查询student表中学号,姓名,性别信息。 5.查询student表中女生的信息。 6.删除student表。
参考答案: 一、选择题
1.B 2.C 3.A 4.A 5.A 6.A 7.A 8.B 9.B 10.B 11.C 12.D 13.B 14.C 15.D 16.C 17.C 18.C 19.C 20.B 二、填空题
1.一对多 2.逻辑独立性 3.关系 4.参照完整性 5.数据库管理系统 三、
1.CREATE TABLE student(学号 CHAR(5) NOT NULL, 姓名 CHAR(8) NOT NULL, 性别 CHAR(2),
CONSTRAIANT C1 CHECK (性别 IN (’男’,’女’))); 2.INSERT INTO student
VALUES (‘98010’,’张三’,’男’); 3.SELECT *
FROM student;
4.SELECT 学号,姓名,性别 FROM student; 5.SELECT *
FROM student WHILE 性别=’女’; 6.DROP TABLE student;
- 9 -
第2章 软件工程基础
习题4
一、单项选择题
1.计算机网络最突出的优点是 。 A.运算速度快 B. 内存容量大 C.精度高 D.共享资源 2.所谓媒体是指 。
A.各种信息的编码 B. 计算机屏幕显示的信息 C.计算机的输入输出信息 D.表示和传播信息的载体 3.在多媒体计算机系统中,CD-ROM属于 。 A.表现媒体 B.存储媒体 C.表示媒体 D.感觉媒体 4.在多媒体计算机系统中,打印机属于 。 A.表现媒体 B.存储媒体 C.表示媒体 D.感觉媒体 5.十进制数29.375的二进制数为______。 A. 11011.101 B. 11101.011 C. 111101.011 D. 111011.101 6.二进制数11101.01的十六进制数为 ______。 A. 1D.4 B. 1D.1 C. 1D.2 D. 1D.01 二、填空题
1.计算机网络按通信距离来划分,可以分为 和 。 2.局域网中常用的传输介质有 、 、 、 等。 3.微型机对环境条件的要求主要有 、 、 、 等方面。 4.计算机病毒是 。
5.计算机病毒的主要特点是 、 、 、 等。
参考答案:
一、选择题 1.D 2.D 3.B 4.A 5.B 6.A 二、填空题
1.广域网、局域网 2.双绞线、同轴电缆、光纤、微波 3.环境温度、环境湿度、洁净度、电源
4.一种人为的特制的具有自复制能力的小程序,通过非授权入侵而隐藏在可执行程序和数据文件中,影响和破坏正常程序的执行和数据安全
5.传染性、隐蔽性、可激发性、灵活性
- 10 -
第2章 软件工程基础
习题5
一、单项选择题
1.以下______不是C语言的特点。
A. 语言的表达能力强 B. 语法定义严格 C. 数据结构系统化 D. 控制流程结构化
2.C编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的是______。
A. 编辑和编译 B. 编译和连接 C. 连接和运行 D. 编辑和运行 3.下面描述中,不正确的是______。 A. C程序的函数体由一系列语句和注释组成。 B. 注释内容不能单独写在一行上。
C. C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明; D. scanf和printf是标准库函数而不是输入和输出语句。 4.下面描述中,正确的是______。
A. 主函数中的花括号必须有,而子函数中的花括号是可有可无的。 B. 一个C程序行只能写一个语句。 C. 主函数是程序启动时唯一的入口。 D. 函数体包含了函数说明部分。 二、写出一个C程序的构成。
三、上机运行本章例题,掌握系统环境的上机方法和步骤。
参考答案: 一、选择题
1.B 2.D 3.B 4.C 略
- 11 -
第2章 软件工程基础
习题6
一、选择题
1.以下变量名全部合法的是 。 A.ABC、L10、a_b、_a1 B.?123、print、*p、a+b C._12、Zhang、*p、11F D.Li_Li、P、for、101
2.在C语言中规定只能由字母、数字和下划线组成标识符,且 。 A.第一个字符必须为下划线 B.第一个字符必须为字母 C.第一个字符必须为字母或数字 D.第一个字符不能为数字
3.在C语言中int,short和char在内存中所占位数 。 A.均为16位(2个字节) B.由用户使用的机器的字长确定 C.由用户在程序中定义 D.是任意的
4.下列常数中不能作为C的常量的是 。 A.0xA5 B.2.5e?2
C.3e2
D.0582
D.?32768至32767
5.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是 。 A.0至255 B.0至65535 A.\ A.'\\\\'
B.'\\t' B.'\\'
C.?256至255
D.2971? D.'\\0'
6.下列可以正确表示字符型常数的是 。
C.\ C.'\\81'
7.以下错误的转义字符是 。
8.以下均是C的合法常量的选项是 。 A.099、?026、0x123、e5 B.0034、0x102、13e?3、?0.78 C.?0x22d、06f、8e2.3、e D..e7、0xffff、12%、2.5e1.2
9.以下转义字符全部合法的选项是 。 A.'\\n'、'\\\\'、'\\x35'、'\\'' B.'\\t'、'\\1010'、'\\v'、'\\123' C.'\\x110'、'\\b'、'\\g'、'\\xxx' D.'\\rr'、'\\r'、'\\55'、'\\xff'
10、以下选项中字符串和字符常量都正确的是 。
- 12 -
第2章 软件工程基础
A.'chr'和\ B.'123'和'\\' C.\和\ D.\和'\\0'
11.C语言中字符型(char)数据在内存中的形式存储是 。 A.原码 A.复数型
B.补码 B. 逻辑型
C.反码
D. ASCII码
D. 集合型
12.以下选项中属于C语言的数据类型是 。
C. 双精度型
13.C语言中整数?8在内存中的存储形式是 。 A.1111 1111 1111 1000
B.1000 0000 0000 1000 D.1111 1111 1111 0111
D.5
C.0000 0000 0000 1000 A.8
B.7
14.字符串\,0\\n\的长度是 。
C.6
二、填空题
1.'a'在内存中占 个字节,\占 个字节。
2.已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是 。 #include “stdio.h” main()
{ char cl='A',c2='Y'; printf(\,%d\\n\,c1,c2); }
三、字符常量和字符串常量有什么区别?
参考答案: 一、选择题
1.A 2.D 3.B 4.D 5.B 6.B 7.C 8.C 9.A 10.D 11.D 12.C 13.A 14.B 二、填空题
1.2 2.65、089 略
- 13 -
第2章 软件工程基础
习题7
一、单项选择题
1.在C语言中运算符的优先级高低的排列顺序是 。 A)关系运算符 B)算术运算符 C)赋值运算符 D)算术运算符 A)|| B)! C)!
算术运算符 赋值运算符 赋值运算符 关系运算符 关系运算符 算术运算符 关系运算符 赋值运算符
! || ||
2.在逻辑运算中逻辑运算符按以下优先次序排列 。
&&
&&
||
!
&&
D)&&
3.以下正确的选项是 。 A)10++ B)(x+y)?
C)++(a1?b2) D)(d++)+(d++)+(d++) 4.正确的赋值表达式是 。
A)a=10+b??=9+k B)(a=16*9,b+5),b?3 C)a=b=c?? D)a=b+7=a?b
5.C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的说法是 。
A.任何不同数据类型都不可以同用
B.有些不同类型的变量可以在一个表达式中运算
C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D.同一个运算符号在不同的场合可以有不同的含义 6.已知:char a;int b;float c;double d; 的数据类型是 。
A.int A.6 A.10
B.char B.12 B.11
C.float C.30 C.12
D.double D.36
D.A,B,C答案都不对
D.(int)f%i
7.已知 int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量i的值是 。 8.已知 int i=5;执行语句 i+=++i;i的值是 。 9.已知 int i;float f;正确的语句是 。 A.(int f)%i A.1,1
- 14 -
执行语句 c=a+b+c+d;后,变量c
B.int(f)%i C.int(f%i)
C.2,1
D.2,0
10.已知:char c='A';int i=1,j;执行语句 j=!c&&i++;则i和j的值是 。
B.1,0
第2章 软件工程基础
11.已知:int x=1,y=2,z;则执行:z=x>y?++x:++y;则z的值为 。 A.1
B.2
C.3
D.4
D.表达式是错误的 D.5 D.double
12.已知:int x=1, y; 则:y=++x*++x的结果为 。 A.y=9 A.0
B.y=6 B.1
C.y=1 C.4 C.int
13.已知“int a=4,b=5,c;”,则执行表达式“c=a=a>b”后变量 a 的值为 。 14.已知:char w;int x;float y;double z;则表达式w*x+z?y结果的类型是 。 A.float
B.Char
15.已知:int x;则使用逗号运算的表达式“(x=4*5, x*5), x+25”的结果为 ① ,变量x的值为 ② 。
① A.20 B.100 ② A.20 && (c<'a') );
A.TRUE 二、填空题
1.表达式32+'A'?2/3*5的值是 ,a=b=c=6+2/5的值是 ,逗号表达式b=6,18+(b+=4)*3的值是 。
2.已知a=3,b=?4,c=5,表达式!(b>c)+(b!=a)||(a+b)&&(b?c)的值是 。 3.今有a=3,b=?4,c=5,表达式 a++?c+b++的值是 ,++a?c+(++b)的值是 。
4.关系表达式的运算结果是______值。
5.逻辑运算符!是_______运算符,其结合性是由_______。 6.表达式的运算对象可以是常数、变量和_______。
7.已知char c;表达式(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 ) && c==57的值为1,则变量c 的值可以是 。
8.已知:a=15,b=240;则表达式(a&b)&b||b 的结果为 。
三、C语言中如何判断“真”和“假”?系统如何判断一个量的“真”和“假”? 四、C语言中如何区分表达式和表达式语句?分别在什么情况下使用?
参考答案: 一、选择题
1.D 2.C 3.C 4.C 5.A 6.C 7.D 8.C 9.D 10.D 11.C 12.B 13.A 14.D 15.D、A 16.D 二、填空题
1.97、6、48 2.1 3.-6、-4 4.逻辑 5.逻辑非、右结合性
6.表达式 7.27 8.1 略
- 15 -
C.表达式不合法
C.125
D.45
D.45
B.100
16.执行下面语句后x的值为 。int a=14, b=15, x; char c='A'; x = ( (a&b)
B.FALSE C.0
D.1
第2章 软件工程基础
习题8
一、输入四个整数,要求按大小顺序输出,请编程序。 二、输入正整数m和n,求它们的最大公约数和最小公倍数。
三、企业发放的奖金根据利润提成。利润(I)低于或等于10万元的,奖金可提成10%;利润高于10万元,低于20万元(100000〈I〈=200000〉时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;200000〈I〈=400000时,低于20万元的部分仍按上述办法提成(下同),高于20万元的部分按5%提成;40000〈I〈=600000时,高于40万元的部分按3%提成;600000〈〈I=1000000时,高于60万元的部分按1.5%提成;I〉1000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发奖金数。
要求:①用if语句编程序; ②用switch语句编程序。 四、求:
1 k?k????k?1k?1k?1k21005010五、输入一行字符,分别统计出其中英文字符、空格、数字和其它字符的个数。
参考答案: 一、 main()
{int a,b,c,d,t;
scanf(“%d,%d,%d,%d”,&a,&b,&c,&d); if(a>b)
{t=b;b=a;a=t;} if(a>c)
{t=c;c=a;a=t;} if(a>d)
{t=d;d=a;a=t;} if(b>c)
{t=c;c=b;b=t;} if(b>d)
{t=d;d=b;b=t;} if(c>d)
{t=d;d=c;c=t;}
printf(“%d,%d,%d,%d”,&a,&b,&c,&d);}
- 16 -
第2章 软件工程基础
二、输入正整数m和n,求它们的最大公约数和最小公倍数。(辗转相除法) main()
{int m,n,r,k,l;
printf(“请输入两个正整数:“); scanf(“%d,%d”,&m,&n); l=m*n;
if(m l=l/n; /*求最小公倍数*/ printf(“最大公约数为:%最小公倍数为:%\\n”,k,l); } 三、 ① main() {float I,j; scanf(“%f”,&I); if (I<=100000) j=I*0.1; if (I>100000&&I<=200000) j=100000*0.1+(I-100000)*0.075; if (I>200000&&I<=400000) j=100000*0.1+100000*0.075+(I-200000)*0.05; if (I>400000&&I<=600000) j=100000*0.1+100000*0.075+ 200000*0.05+ (I-400000)*0.03; if (I>600000&&I<=1000000) j=100000*0.1+100000*0.075+ 200000*0.05+200000*0.03+(I-600000)*0.015; if (I>1000000) j=100000*0.1+100000*0.075+ 200000*0.05+200000*0.03+400000)*0.015 +(I-1000000)*0.01; Printf(“%d”,j); } - 17 - 第2章 软件工程基础 ② main() {float b,b1,b2,b4,b6,b10; int c; long int i; b1=100000*0.1; b2=b1+100000*0.075; b4=b2+200000*0.05; b6=b4+200000*0.03; b10=b6+400000*0.015; scanf(“%ld”,&i); c=i/100000; if (c>10) then c=10 switch(c) {case 0: b=i*0.1;break; case 1: b=b1+(i-100000)*0.075;break; case 2: case 3: b=b2+(i-200000)*0.05;break; case 4: case 5: b=b4+(i-400000)*0.03;break; case 6: case 7: case 8: case 9: b=b6+(i-600000)*0.015;break; case 10: b=b10+(i-1000000)*0.01; } printf(“%f”,b); } 四、 main() {float k,s1=0,s2=0,s3=0; int i; int n1=100,n2=50,n3=10; for (i=1;i<=n1;i++) s1=s1+i; for (i=1;i<=n2;i++) s2=s2+i*i; - 18 - 第2章 软件工程基础 for (i=1;i<=n3;i++) {k=1/(float)i;s3=s3+k;} printf(“%f”,s1+s2+s3); } 五、 #include int letter=0,space=0,digit=0,other=0; printf(“请输入一行字符:\\n”); while((c=getchar())!=’\\n’) {if (c>=’a’&&c<=’z’|| c>=’A’&&c<=’Z’) letter++; else if (c==’ ’) space++; else if (c>=’0’&&c<=’9’) digit++; else other++; } printf(“字母数%d,空格数%d,数字数%d,其它字符数%d”, letter,space,digit,other); } - 19 - 第2章 软件工程基础 习题9 一、已有变量定义double a=5.0;int n=5;和函数调用语句mypow(a,n);,用以求a的n次方。请编写double mypow(double x,int y)函数。 double mypow (double x, int y) { } 二、以下程序的功能是应用下面的近似公式计算e的n次方。函数f1用来计算每项分子的值;函数f2用来计算每项分母的值。请编写f1和f2函数。 ex?1?x?x?x2!233! ?...(前20项的和)float f2(int n) { } float f1 (int x, int n) { } main( ) {float exp=1.0;int n, x; printf (\:\; scanf (\,&x); printf(\, x); exp=exp+x; for(n=2; n<=19; n++)exp=exp+f1(x,n)/f2(n); printf(\, x,exp); } 运行结果: Input a number: 3 The is exp (3)=20.0855 三、求以下数列前20项之和。 四、求 23581321,,,,,,......... 1235813sn?a?aa?aaa?...?aa...a 之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n为5),n由键盘输入。 五、用迭代法求: - 20 - 第2章 软件工程基础 x?a 的值,求平方根的迭代公式为: xn?1?1a(xn?) 2xn要求前后两次求出的x的差的绝对值小于10-5。 六、写一函数,输入一行字符,将此字符串中最长的单词输出。 参考答案: 一、 double b=1; int I; for (i=1;i<=y;i++) b=b*x; return(b); 二、 (1) float b=1; int i; for (i=1;i<=n;i++) b=b*x; return(b); (2) int s=-,t=1,i; for(i=1;i<=n;i++) {t=t*I; s=s+t; } return(s); 三、 main() {int i,n=20; float a=2,b=1,s=0,t; for(i=1;i<=n;i++) {s=s+a/b; - 21 - 第2章 软件工程基础 t=a; b=t; a=a+b; } printf(“%d”,s); } 四、 main() {long int a,n,i,x=0,y=0; scanf(“%d,%d”,&a,&n); for(i=1;i<=n;i++) {x=x+a; a=a*10; y=x+y; } printf(“%d”,y); } 五、 #include {float a,x0,x1; scanf(); x0=a/2; x1=(x0+a/x0)/2 do {x0=x1; x1=(x0+a/x0)/2; } while (fabs(x0-x1)>=1e-5); printf(“%f”,a,x); } 六、略 - 22 - 第2章 软件工程基础 习题10 一、编写程序,实现gets( )函数的功能。 二、编写程序,实现puts( )函数的功能。 三、编写程序,判断给定字符串是否回文。回文是指顺读和倒读都一样的字符串。 四、编写程序,任意输入一个字符串,将其中的字符按从小到大的顺序重排。 五、编写程序,任意输入5个字符串存放到2维数组中,按字符串的长度从短到长顺序输出它们。 参考答案: 四、 #include “stdio.h” #include “string.h” main() {char str[100],t; int len,i,j; printf(“输入一个字符串”); scanf(“%s”,str); len=strlen(str); for(i=0,i } printf(“排序后字符串:%s\\n”,str); } 略 - 23 - 第2章 软件工程基础 习题11 一、用带参数的宏定义来实现输入两个整数,求出它们相除后的余数。 二、请写出下面程序的输出结果。 (1)#define F(a,t) a*t*t/2 main( ) { float x=2.2,y=1.5,z; z=F(x+y,x?y); printf(“F=%f”,z); } (2)#define S(a,b) a+b main( ) {int x; x=S(3,2)*S(5,6); printf(“%d\\n”,x); } 三、要求从3个数中找出其中最大的数,试分别用函数和带参数的宏来实现。 参考答案: 一、 #define CHU(A,B) A%B main( ) {int a,b; scanf(“%d,%d”,&a,&b); printf(“%d”,CHU(a,b); } 二、 (1)0.9065 (2)55 三、 (1)用函数实现 main( ) {int a,b,c; scanf(“%d,%d,%d”,&a,&b,&c); - 24 - 第2章 软件工程基础 printf(“%d”,max(a,b,c)); } max(int x,int y,int z) {int t; t=c>y?x:y; return(t>z?t:z); } (2)用带参的宏实现 #define MAX(a,b) ((a)>(b)?(a):(b)) main( ) {int a,b,c; scanf(“%d,%d,%d”,&a,&b,&c); printf(“%d”,MAX(MAX(a,b),c)); } - 25 - 第2章 软件工程基础 习题12 一、写一函数,其功能是交换两个变量x、y的值。编程序实现对数组a[100],b[100]调用此函数,交换a、b中具有相同下标的数组元素的值,且输出交换后的a,b数组。 二、用数组方案和指针方案分别编写函数insert(s1,s2,f),其功能是在字符串s1?中的指定位置f处插入字符串s2。 三、用指针编写比较两个字符串s和t的函数strcmp(s,t)。要求st时返回+1。 四、分析并给出下面程序的运行结果: #include main ( ) { int a[10],b[10],*pa,*pb,i; pa=a; pb=b; for (i=0;i<3;i++,pa++,pb++) { *pa=i; *pb=2*i; printf(\,*pa,*pb); } printf(\; pa=&a[0]; pb=&b[0]; for (i=0;i<3;i++) { *pa=*pa+i; *pb=*pb+i; printf(\,*pa++,*pb++); } } 五、输入一行字符,将之中的每个字符从小到大排列后输出。 参考答案: 一、 #include “stdio” void insert(int *x,int *y) {int m; m=*x; *x=*y; *y=m; } main() {int i,a[100],b[100]; - 26 - 第2章 软件工程基础 for(i=0;i<100;i++) insert((a+i),(b+i)); for(i=0;i<100;i++) printf(“]\\n”,a[i]); for(i=0;i<100;i++) printf(“]”,b[i]); } 略 - 27 - 第2章 软件工程基础 习题13 一、分析下列程序执行结果。 #include main ( ) { static struct s1 { char c[4], *s; } s1={\, \; static struct s2 { char *cp; struct s1 ss1; } s2={\, {\, \; printf (\, s1.c[0], *s1.s); printf (\, s1.c, s1.s); printf (\, s2.cp, s2.ss1.s); printf (\, ++s2.cp, ++s2.ss1.s); } 二、成绩排序。按学生的序号输入学生的成绩,按照分数由高到低的顺序输出学生的名次、该名次的分数、相同名次的人数和学号;同名次的学号输出在同一行中,一行最多输出10个学号。 三、写出以下程序的运行结果。 #include main ( ) { union { char s[2]; int i; } g; g.i=0x4142; printf (\, g.i); printf (\, g.s[0], g.s[1]); g.s[0]=1; g.s[1]=0; printf (\, g.i); } - 28 - 第2章 软件工程基础 四、现在有教师(姓名、单位、住址、职称)和学生(姓名、班级、住址、入学成绩)的信息。请输入10名教师和学生的信息后,按姓名进行排序,最后按排序后的顺序进行输出,对于教师要输出姓名、单位、住址和职称,对于学生要输出姓名、班级、住址和入学成绩。请编程实现。 参考答案: 一、 ad abc def ghi mno hino 二、 #define N100 struct student{ char num[10]; float score; int NO; }stud[N]; void swap(struct student *p, struct student *q) {struct student t; int i; for(i=0;i<10;i++) {t.num[i]=p->num[i]; p.num[i]=q->num[i]; q.num[i]=t->num[i]; } t.score=p->score; p->score=q->score; q->score=t.score; } main() {int i,j,a[N]; struct student *p,*q; printf(“输入学生学号和成绩\\n”); for(i=0;i scanf(“%s%f”,stud[i].num,stud[i].score); for(p=stud;p - 29 - 第2章 软件工程基础 for(q=stud;q for(i=0;a[0]=1;p else{(p+1)->NO=p->NO;a[i]++;} p=stud; for(i=0;;i++) {if(a[i]=0)break; else {k=a[i]; printf(“%d%f%d”,p->NO,p->score,a[i]); for(j=0;jnum); } if(k!=0) printf(“\\n”); p=p+a[i]; } } 三、 g.i=4142 g.s[0]=41 g.s[1]=42 g.i=0100 四、略 - 30 - 第2章 软件工程基础 习题14 一、单项选择题 1.在进行文件操作时,写文件的一般含义是________ 。 A.将计算机内存中的信息存入磁盘 B.将磁盘中的信息存入计算机内存 C.将计算机CPU中的信息存入磁盘 D. 将磁盘中的信息存入计算机CPU 2.C语言中标准输入文件stdin是指 ________。 A.键盘 B.显示器 C.鼠标 D.硬盘 3.系统的标准输出文件stdout是指________ 。 A.键盘 B.显示器 C.软盘 D.硬盘 4.在高级语言中对文件操作的一般步骤是________ 。 A.打开文件—操作文件—关闭文件 B.操作文件—修改文件—关闭文件 C.读写文件─打开文件─关闭文件 D.读文件—写文件—关闭文件 5.以下可作为函数fopen中第一个参数的正确格式是________ 。 A.c:user\\text.txt C.\ B.c\D.\ 6.若执行fopen函数时发生错误,则函数的返回值是________ 。 A.地址值 B.0 C.1 D.EOF 7.为了显示一个文本文件的内容,在打开文件时,文件的打开方式应当为________ 。 A.\+\ B.\+\ C.\+\ D.\+\ 8.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应该是________ 。 A.\+\ B.\+\ C.\+\ D.\9.在C语言中,从计算机内存中将数据写入文件中,称为________ 。 A.输入 B.输出 C.修改 D.删除 10.C语言可以处理的文件类型是________ 。 A.文本文件和数据文件 B.文本文件和二进制文件 C.数据文件和二进制文件 D.以上答案都不完全 11.下列关于文件的结论中正确的是________ 。 A.对文件操作必须先关闭文件 B.对文件操作必须先打开文件 C.对文件的操作顺序没有统一规定 D.以上三种答案全是错误的 12.当顺利执行了文件关闭操作时,fclose函数的返回值是 ________。 A.?1 B.TRUE C.0 A.只写 B.追加 D.1 D.答案B和C都正确 13.使用fgetc函数,则打开文件的方式必须是________ 。 C.读或读/写 14.若调用fputc函数输出字符成功,则其返回值是________ 。 - 31 - 第2章 软件工程基础 A.EOF B.1 C.0 D.输出的字符 15.利用fseek函数可以________ 。 A.改变文件的位置指针 B.实现文件的顺序读写 C.实现文件的随机读写 D.以上答案均正确 16.执行fopen函数时,ferror函数的初值是________ 。 A.TRUE B.?1 C.1 D.0 二、填空题 1.在C程序中,数据可以以 和 两种形式的代码存放________。 2.若已定义pf是一个 FILE 类型的文件指针,已知待输出的文本文件的路径和文件名是A:\\zk04\\data\\txfile.dat; 则要使pf 指向上述文件的打开语句是________ 。 3.若fp已经正确指向一指定的文件,则将字符变量ch中的字符输出到该文件中,可用的语句有________ 、________ 、________ 和________ 。 4.feof函数可以用于________ 和________ 文件,它用来判断即将读入的是否为________ ,若是,函数返回值为________ 。 三、某班有N个学生,每个学生有5门课的成绩。从键盘输入每个学生的学号、姓名和各门课的成绩,然后计算出每门课全班的平均成绩及每个学生5门课的平均成绩,并将所有这些数据存放在磁盘文件\中。文件的结构由编程者自己设计。 四、从键盘输入一文本文件,将该文本写入磁盘文件disk.txt中,并统计磁盘中文件字母、数字、空白和其它字符的个数,要求: ①将统计结果显示到屏幕上; ②将输入的文件输出到打印机上; ③将统计结果写入磁盘文件total.txt中。 五、已知有两个有序的整数文件F和G,请编一程序,将它们合并为一个新的有序文件。 参考答案: 一、 1.A 2.A 3.B 4.A 5.C 6.B 7.A 8.B 9.B 10.B 11.B 12.C 13.C 14.D 15.D 16.D 二、 1.二进制、ASCII码、字符 2.pf=fopen(“A:\\zk04\\data\\txfile.dat”,”w”); 3.fputc(ch,fp); fread(&ch,1,1,fp); fprintf(fp,”%c”,ch); fputs(&ch,fp); 4.字符、二进制、文件结束、1 略 - 32 -
正在阅读:
《计算机软件技术基础》习题及参考答案04-22
学习第7个国家扶贫日重要指示精神心得体会08-23
连云港外国语学校2012-2013学年高二下学期期末复习(3)数学(理)试题05-13
隧道工程作业指导书云桂项目部05-20
表演区《闪亮小舞台》07-31
最新-2018年湖北省黄冈市高三3月质量检测文科综合试卷及答案 精品10-22
《ACM图灵奖(1966-1999) - 计算机发展史的缩影》读后感10-25
如何在电子表格中计算优秀率或及格率03-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 软件技术
- 答案
- 参考
- 计算机
- 基础
- 同步训练第8章提高题题解
- 自考审计学复习资料
- 工业设计史总结何人可版最简洁最细的总结
- 武清、南昌站点热量分析(五日滑动平均和候平均气温绝对值通过法
- 二三线城市商业综合体开发运营的要点
- 北师大版三年级数学下册第五单元面积练习题
- 2010华蓥山实施方案 - 图文
- 土木导论课程论文
- 自考 06087 工程项目管理 复习重点
- 2018年早教市场之美吉姆案例研究报告 - 图文
- 模拟电子技术试题3答案及评分标准
- 《独坐敬亭山》《望洞庭》《忆江南》教学设计
- 现代氢氧机原理及商业化应用 - 图文
- 路遥《人生》 刘巧珍 人物形象 分析
- 2015新人教版一年级数学下册第三单元测试卷
- 新课程背景下高中地理开放式教学模式构建研究
- 住宅楼施工组织设计毕业论文
- 物体打击、高空坠落应急预案(7月9日) - 图文
- 高考考一词多义第一批:120个文言重点实词
- 图形创意教案