国家二级(C语言)机试模拟试卷158
选择题
1.下列叙述中正确的是( )。(A)
A. 程序执行的效率与数据的存储结构密切相关
B. 程序执行的效率只取决于程序的控制结构
C. 程序执行的效率只取决于所处理的数据量
D. 以上说法均错误
解析:程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构以及所处理的数据量等有关。
2.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下列各项中属于应用软件的是( )。(A)
A. 学生成绩管理系统
B. C语言编译程序
C. UNIX操作系统
D. 数据库管理系统
解析:软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B、C、D选项都是系统软件,只有A选项是应用软件。
3.通常软件测试实施的步骤是( )。(B)
A. 集成测试、单元测试、确认测试
B. 单元测试、集成测试、确认测试
C. 确认测试、集成测试、单元测试
D. 单元测试、确认测试、集成测试
解析:软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试。故答案应该选B。
4.下列叙述中错误的是( )。(A)
A. 系统总体结构图支持软件系统的详细设计
B. 软件设计是将软件需求转换为软件表示的过程
C. 数据结构与数据库设计是软件设计的任务之一
D. PAD图是软件详细设计的表示工具
解析:详细设计的任务是为软件结构图而非总体结构图中的每一个模块确定实现算法和局部数据结构、用某种选定的表达工具表示算法和数据结构的细节,因此A选项描述错误。
5.对长度为n的线性表作快速排序,在最坏情况下,比较次数为( )。(D)
A. n
B. n-1
C. n(n-1)
D. n(n-1)/2
解析:快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较(n-1)+(n-2)+…+1=n(n-1)/2,故D选项正确。
6.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。(D)
A. 3
B. 4
C. 6
D. 7
解析:根据二叉树的基本性质:在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,因此本题中度为2的结点为1-1=0个,据此可以知道本题中的二叉树的每一个结点都有一个分支,所以共有7个结点、共7层,即深度为7,选择D。
7.下列关于栈的叙述中,正确的是( )。(A)
A. 栈顶元素最先能被删除
B. 栈顶元素最后才能被删除
C. 栈底元素永远不能被删除
D. 栈底元素最先能被删除
解析:栈是“先进后出”的数据结构,因此栈顶元素最后入栈却最先被删除,栈底元素最先入栈却最后被删除,答案为A。
8.在数据库中,数据模型包括数据结构、数据操作和( )。(A)
A. 数据约束
B. 数据类型
C. 关系运算
D. 查询
解析:数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示和操作提供一个抽象的框架,即描述了数据结构、数据操作及数据约束。故正确答案为A。
9.一名教师可讲授多门课程,一门课程可由多名教师讲授。则实体教师和课程间的联系是( )。(D)
A. 1:1联系
B. 1:m联系
C. m:1联系
D. m:n联系
解析:因为一名教师可讲授多门课程,而一门课程又能由多名教师讲授,所以教师和课程之间是多对多的关系,可以表示为m:n,选择D。
10.支持子程序调用的数据结构是( )。(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表。在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,所以A选项正确。
11.以下正确的说法是( )。(D)
A. 用户若需要调用标准库函数,调用前必须重新定义
B. 用户可以重新定义标准库函数,但若重新定义,该函数将失去原有意义
C. 用户系统根本不允许用户重新定义库函数
D. 用户若需要调用库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统会自动寻找该文件
解析:无论是标准库函数,还是别的函数,都属于函数的范畴,都允许用户重新定义和使用,使用的时候include命令必须以“#”号开头,文件名用一对双引号或一对尖括号括起来,系统提供的头文件是以.h作为文件后缀。
12.设有定义:
int a;float b;
执行scanf(\\(A)
A. 87和6.0
B. 876和543.0
C. 87和543.0
D. 76和543.0
解析:scanf()函数的一般形式为:scan(格式控制,地址表列)。其中,“格式控制”是用双引号括起来的字符串,也称为“转换控制字符串”,它包括两种信息:①格式说明,由“%”和格式字符组成;②普通字符,即需要原样输入的字符。“地址表列”是需要接收输入数据的一系列变量的地址。本题中的“格式控制”是“%2d%f”,“%2d”的意思是要输入一个整数,但该整数最宽只占2个字符,而“%2d”是要输入一个浮点数。题目要求输入的是876空格543.0,所以scanf()函数将87赋给a,将6赋给b。
13.若变量均已正确定义并赋值,以下各项中属于合法的C语言赋值语句是( )。(B)
A. x=n%2.5;
B. x=y==5;
C. x+n=i;
D. x=5=4+1;
解析:%取余操作数只能是整数,x+n和数值5不能作为赋值的左值,所以A、C、D选项错误。
14.有以下程序:
#include<stdio.h>
main()
{
int a=3:
a+=a-=a*a;
printf(\\(D)
A. 0
B. 9
C. 3
D. -12
解析:等号“=”运算符是从右到左,且与“+、-、*”运算符比,优先级较低。首先计算a*a,结果为9,执行a=a-9后a的值为-6,然后执行a+=a,即a=a+a=-6+(-6),所以值为-12。
15.设有定义:
char s[81];int i=0;
以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。
C
解析:函数scanf()输入字符串时默认空格为间隔符,所以不能输入空格,答案选C。
16.有以下程序:
#include<stdio.h>
main()
{
char c1,c2,c3,c4,c5,c6;
scanf(\\(B)
A. 1256
B. 1245
C. 1278
本文档预览:3600字符,共12606字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载