国家二级(C++)机试模拟试卷123
选择题
1.程序流程图中带有箭头的线段表示的是( )。(C)
A. 图元关系
B. 数据流
C. 控制流
D. 调用关系
解析:在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择C。
2.结构化程序设计的基本原则不包括( )。(A)
A. 多态性
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
3.软件设计中模块划分应遵循的准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
4.在软件开发中,需求分析阶段产生的主要文档是( )。(B)
A. 可行性分析报告
B. 软件需求规格说明书
C. 概要设计说明书
D. 集成测试计划
解析:A错误,可行性分析阶段产生可行性分析报告。c错误,概要设计说明书是总体设计阶段产生的文档。D错误,集成测试计划是在概要设计阶段编写的文档。B正确,软件需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
5.算法的有穷性是指( )。(A)
A. 算法程序的运行时间是有限的
B. 算法程序所处理的数据量是有限的
C. 算法程序的长度是有限的
D. 算法只能被有限的用户使用
解析:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。
6.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。(D)
A. 快速排序
B. 冒泡排序
C. 直接插入排序
D. 堆排序
解析:除了堆排序算法的比较次数是O(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.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为( )。(C)
A. 课号,成绩
B. 学号,成绩
C. 学号,课号
D. 学号,姓名,成绩
解析:学号是学生表s的主键,课号是课程表c的主键,所以选课表sc的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C。
11.下列语句中,错误的是( )。(B)
A. const int buffer=256;
B. const int temp;
C. const double*point;
D. const double*rt=new double(5.5);
解析:const是一个C++语言的关键字,它限定一个变量不允许被改变。使用conat在一定程度上可以提高程序的安全性和可靠性。限定符声明变量只能被读,必须初始化。B选项中没有初始化,C选项为指向常量的指针,定义时初始化与否均可,如果是const*double point形式,则为常指针,必须在定义时进行初始化,A、C、D都正确。
12.有如下程序:
int x=3;
d0{
x一=2;
cout<<x;
}while(!(一一x));
执行这个程序的输出结果是( )。(C)
A. 1
B. 3 0
C. 1 —2
D. 死循环
解析:本题考查do…while语句,执行do…while语句时,先执行循环体内的语句,然后判断while中表达式的值,表达式为非零时,返回重新执行循环体语句。在本题中,先执行循环体内的语句,输出1,然后判断表达式,为非零,且此时x为0;再次执行循环体时,输出一2,然后判断表达式为0,不执行,退出,所以答案为C。
13.有如下程序:
#include<iostream>
using namespace std;
int main()
{
int.p;
*p=9;
cout<<”The value at p:”<<*p;
return 0;
编译运行程序将出现的情况是( )。(D)
A. 编译时出现语法错误,不能生成可执行文件
B. 运行时一定输出:The value at p:9
C. 运行时一定输出:The value at p:*9
D. 运行时有可能出错
解析:先定义指针变量,然后给指针变量赋初值有三种情况:①用取地址运算符“&”将变量地址赋给指针变量,如p=&a;②将一个指针变量中的地址赋给另一个指针变量,如p=p1;③给指针变量赋空值0,如q=0,表示该指针变量不指向任何变量。而不能用一个常量给指针变量赋初值,所以本题选D。
14.if语句的语法格式可描述为:
格式1:if(<条件>)<语句>
或
格式2:if(<条件>)<语句1>
else<语句2>
关于上面的语法格式,下列表述中错误的是( )。(A)
A. <条件>部分可以是一个if语句,例如if(if(a==0)…)…
B. <语句>部分可以是一个if语句,例如if(…)if(…)…
C. 如果在<条件>前
本文档预览:3600字符,共21274字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载