国家二级C语言机试(选择题)模拟试卷333
选择题
1.下列关于栈叙述正确的是( )。(B)
A. 栈顶元素最后被删除
B. 栈底元素最后才能被删除
C. 栈底元素永远不能被删除
D. 以上三种说法都不对
解析:栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。
2.下列关于栈的叙述中,正确的是(C)
A. 栈底元素一定是最后入栈的元素
B. 栈顶元素一定是最先入栈的元素
C. 栈操作遵循先进后出的原则
D. 以上三种说法都不对
解析:栈是限定只能在表的一端进行插入和删除操作的线性表,必须按“后进先出”的规则操作元素。
3.下列对队列的描述中正确的是(D)
A. 队列属于非线性表
B. 队列按“先进后出”原则组织数据
C. 队列在队尾删除数据
D. 队列按“先进先出”原则组织数据
解析:队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾:允许删除的一端称为队头。在队列这种数据结构中,最先插入的元素将最先能够被删除:反之,最后插入的元素将最后才能被删除。因此,队列又称“先进先出”或“后进后出”的线性表。
4.有以下程序
#include
void main()
{int a=1,b=0;
printf(\\(B)
A. 4,6
B. 2,5
C. 3,5
D. 2,6
解析:在主函数中定义了两个整型变量a和b,并把它们的初值分别设置为1和0;在第二条语句中,首先计算b=a+a,然后a自增两次,因此第二句结束时,b=2,a=3,然后第三句,a+b=5。
5.关于C语言程序的下列说法中,正确的是( )。(B)
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可以嵌套,但函数的调用可以嵌套
C. 函数的定义和调用均不可以嵌套
D. 函数的定义和调用均可以嵌套
解析:函数定义都是在函数外部进行的,而函数调用是在函数内部发生的,所以函数的定义不可以嵌套,但函数的调用可以嵌套。
6.层次型、网状型和关系型数据库划分原则是( )。(D)
A. 记录长度
B. 文件的大小
C. 联系的复杂程度
D. 数据之间的联系方式
解析:层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以3种数据库的划分原则是数据之间的联系方式。
7.软件测试的目的是( )。(A)
A. 发现程序中的错误
B. 发现并改正程序中的错误
C. 执行测试用例
D. 诊断和改正程序中的错误
解析:软件测试是尽可能多的发现程序中的错误,而程序调试的任务是诊断和改正程序中的错误。软件测试贯穿整个软件生命周期,程序调试主要在开发阶段。
8.下面对软件测试描述错误的是( )。(B)
A. 严格执行测试计划,排除测试的随意性
B. 随机地选取测试数据
C. 软件测试的目的是发现错误
D. 软件测试是保证软件质量的重要手段
解析:软件测试的准则如下:
①所有测试都应追溯到需求。
②严格执行测试计划,排除测试的随意性。
③充分注意测试中的群集现象。
④程序员应避免检查自己的程序。
⑤穷举测试不可能。
⑥妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
9.下列叙述中正确的是(A)
A. 循环队列是线性结构
B. 循环队列是线性逻辑结构
C. 循环队列是链式存储结构
D. 循环队列是非线性存储结构
解析:为充分利用向量空间,克服“假溢出”现象的力法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。线性结构是一个有序数据元素的集合。常用的线性结构有:线性表,栈,队列,双队列,数组,串。常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。
10.下列叙述中正确的是(A)
A. 程序执行的效率与数据的存储结构密切相关
B. 程序执行的效率只取决于程序的控制结构
C. 程序执行的效率只取决于所处理的数据量
D. 以上都不正确
解析:影响程序执行效率的因素有很多,如数据的存储结构、程序处理的数据量、程序的算法等。顺序存储结构和链式存储结构在数据插入和删除操作上的效率就存在差别。其中,链式存储结构的效率要高一些。
11.软件需求规格说明书的作用不包括( )。(D)
A. 软件验收的依据
B. 用户与开发人员对软件要做什么的共同理解
C. 软件设计的依据
D. 软件可行性研究的依据
解析:软件需求规格说明书的作用为:便于用户、开发人员进行理解和交流;反映出用户问题的结构,可以作为软件开发工作的基础和依据;作为确认测试和验收的依据。所以答案选择D。
12.以下叙述中正确的是( )。(D)
A. C语句必须在一行内写完
B. C程序中的每一行只能写一条语句
C. C语言程序中的注释必须与语句写在同一行
D. 简单C语句必须以分号结束
解析:C语句可以跨行来写,但是必须以分号结束,所以A选项错误。C程序中的一行可以有多条语句,所以B选项错误。C语言中的注释语句可以与原语句放在一行,也可以不放在一行,所以C选项错误。
13.有以下程序:
#include<stdio.h>
main( )
{
int x;
for(x=3;x<6;x+ +)
printf((x%2)?(″*%d″):(″#%d″),x);
printf(″\n″);
}
程序的输出结果是( )。(A)
A. *3#4*5
B. #3*4#5
C. *3*4#5
D. *3#4#5
解析:条件运算符组成条件表达式的一般形式为:表达式1?表达式2:表达式3。其求值规则为:表达式1值为真,则以表达式2的值作为条件表达式的值,否则以表达式3的值作为整个条件表达式的值。本题中语句printf((x%2)?(″*%″):(″#%d″,x);含义为变量x对2求余,如果结果为真,则按照“*%d”出,否则按照“#%d”出。故A选项正确。
14.数据库应用系统中的核心问题是(A)
A. 数据库设计
B. 数据库系统设计
C. 数据库维护
D. 数据库管理员培训
解析:在数据库应用系统中的一个核心问题就是设计一个能满足用户要求,性能良好的数据库,这就是数据库设计。所以数据库设计是数据库应用的核心。
15.有以下程序
#include
void main()
{
int s;
scanf(\\(B)
A. 66656
B. 6566456
C. 66666
D. 6666656
解析:这道试题主
本文档预览:3600字符,共11855字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载