国家二级(C语言)机试模拟试卷139
选择题
1.软件的需求分析主要产生的文档是( )。(B)
A. 可行性分析报告
B. 软件需求规格说明书
C. 概要设计说明书
D. 集成测试计划
解析:A错误,可行性分析阶段产生可行性分析报告。C错误,概要设计说明书是总体设计阶段产生的文档。D错误,集成测试计划是在概要设计阶段编写的文档。B正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
2.以下哪一项不是结构化程序设计的基本原则?( )(A)
A. 多态性
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化,不包括多态性。
3.软件设计中划分模块的基本准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能地低,模块的内聚度应尽可能地高。
4.箭头线在流程图中的意思是( )。(C)
A. 函数关系
B. 数据流
C. 控制流
D. 判断关系
解析:在程序的数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。
5.计算机算法中有穷性的意思是( )。(A)
A. 算法程序的运行时间是有限的
B. 算法程序所处理的数据量是有限的
C. 算法程序的长度是有限的
D. 算法只能被有限的用户使用
解析:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。
6.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n—1)/2的排序方法是( )。(D)
A. 快速排序
B. 冒泡排序
C. 直接插入排序
D. 堆排序
解析:除了堆排序算法的比较次数是(nlog2n),其他的都是n(n一1)/2。
7.关于计算机术语中的栈,说法正确的是( )。(B)
A. 栈按“先进先出”组织数据
B. 栈按“先进后出”组织数据
C. 只能在栈底插入数据
D. 不能删除数据
解析:栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进行操作。
8.在数据库设计过程的哪个阶段,需要将E一R图转换成关系数据模型( )。(C)
A. 需求分析阶段
B. 概念设计阶段
C. 逻辑设计阶段
D. 物理设计阶段
解析:E—R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。
9.有三个关系R、S和T如下:
(D)
A. 并
B. 自然连接
C. 笛卡尔积
D. 交
解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以B错误。笛卡尔积是用R集合中元素为第一元素,S集合中元素为第二元素构成的有序对,所以C错误。根据关系T可以很明显地看出是从关系R与关系S中取得相同的关系组所以取得是交运算,选择D。
10.在数据库设计中,有三张关于学生选课的数据表,分别是学生信息表Stu(其中包括:学生的学号,姓名,性别,年龄,身份证号),课程信息表Cou(其中包括:课程代号,课程名称),选课信息表SC(其中包括:学生的学号,课程代号,课程成绩),则表SC的关键字(键或码)为( )。(C)
A. 课程代号,课程成绩
B. 学号,课程成绩
C. 学号,课程代号
D. 学号,姓名,课程成绩
解析:学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C。
11.关于C语言程序设计,以下叙述中不正确的是( )。(A)
A. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B. C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C. 用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在一个文本文件中
D. C语言源程序经编译后生成后缀为.obj的目标程序
解析:C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A错误。由C语言构成的指令序列称C源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件);最后要由“连接程序”把此.obi文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。
12.以下关于C语言数值常量的选项中,合法的是( )。(A)
A. 12.0Xa23 4.5e0
B. 028.5e一3一0xf
C. .177 4e1.5 0abc
D. 0x8A 10,000 3.e5
解析:C语言中八进制整型常量的开头是数字0,十六进制整型常量的数字开头是0x;但八进制不能有8或9,所以选项B错,C选项中2e1.2中e后面的指数不是整数,D选项中3.e5小数点后面缺少数字,另外。也不用用逗号作为千分位分隔符。
13.若有定义:double d=68;int i=0,k=21;,则以下选项中不符合C语言规定的赋值语句是( )。(B)
A. i一(d+k)<=(i+k);
B. i=d%3;
C. d=(d++,i++);
D. i=(int)!d;
解析:只有整数才能求余,d是双精度型,所以不能求余,选项B不符合C语言赋值规定。选项A和D将进行强制数据转换,选项C为变量自加,逗号运算符和赋值运算符连用,都符合C语言规范。
14.若有代数式(A)
A. sqrt(fabs(pow(n,x)+exp(x)))
B. sqrt(fabs(pow(n,x)+pow(x,e)))
C. sqrt(abs(n∧x+e∧x))
D. sqrt(fabs(pow(x,n)+exp(x)))
解析:B选项中函数pow(x,e)错误应该直接使用exp(x)函数。C选项中函数abs(n∧x+e∧x)错误,应该使用fabs()返回浮点数的绝对值。D选项中pow(x,n)参数顺序错误。
15.有关C语言标识符,以下选项中不合法的是( )。(A)
A. &a
B. FOR
C. print
D. _00
解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为C语言中区分大小写,所以B选项中的
本文档预览:3600字符,共16608字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载