国家二级(C语言)机试历年真题试卷汇编15
选择题
1.下列叙述中正确的是( )。(A)
A. 程序执行的效率与数据的存储结构密切相关
B. 程序执行的效率只取决于程序的控制结构
C. 程序执行的效率只取决于所处理的数据量
D. 以上说法均错误
解析:程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。
2.支持子程序调用的数据结构是( )。(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:在高级语言中,函数的调用是通过栈来实现的。在进行函数调用时,系统将所需的信息压入栈中,如函数的局部变量、返回值等。每个函数的状态是由函数中的局部变量、函数参数值、函数的返回值地址决定的,存储这些信息的数据区域称为活动记录,或叫做栈帧,它是运行时系统栈上分配的空间。
3.下列叙述中正确的是( )。(D)
A. 栈是“先进先出”的线性表
B. 队列是“先进后出”的线性表
C. 循环队列是非线性结构
D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
解析:栈是“先进后出”的线性表,队列是“先进先出”的线性表,循环队列链式存储的线性表,也是线性结构。有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。
4.某二又树有5个度为2的结点,则该二叉树中的叶子结点数是( )。(C)
A. 10
B. 8
C. 6
D. 4
解析:由二叉树的性质可得,对于一个非空的二叉树,叶子结点数等于度为2的结点数目加1。
5.下列排序方法中,最坏情况下比较次数最少的是( )。(D)
A. 冒泡排序
B. 简单选择排序
C. 直接插入排序
D. 堆排序
解析:冒泡排序,简单选择排序,直接插入排序在最坏情况下的比较次数都是O(n2),而堆排序的时间复杂度为O(nlog2n)。
6.将E—R图转换为关系模式时,实体和联系都可以表示为( )。(C)
A. 属性
B. 键
C. 关系
D. 域
解析:E-R图转换为关系模式时,实体和联系都可以表示为关系。
7.数据库应用系统中的核心问题是( )。(A)
A. 数据库设计
B. 数据库系统设计
C. 数据库维护
D. 数据库管理员培训
解析:数据库应用系统是在数据库管理系统(DBMS)支持下建立的计算机应用系统。数据库设计是数据库应用系统中的核心问题。
8.下面叙述中错误的是( )。(A)
A. 软件测试的目的是发现错误并改正错误
B. 对被调试的程序进行“错误定位”是程序调试的必要步骤
C. 程序调试通常也称为Debug
D. 软件测试应严格执行测试计划,排除测试的随意性
解析:软件测试是为了发现软件中的错误,但最终目的不是改正错误,而是开发出高质量的完全符合用户需要的软件。
9.软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)。下面各项中属于应用软件的是( )。(C)
A. 编译程序
B. 操作系统
C. 教务管理系统
D. 汇编程序
解析:系统软件主要包括:①操作系统软件;②各种语言的解释程序和编译程序;③各种服务性程序;④各种数据库管理系统。操作系统、编译程序与汇编程序属于系统软件,编译程序与汇编程序也称为支撑软件,而教务管理系统属于应用软件。
10.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。(B)
A. 提高耦合性、降低内聚性有利于提高模块的独立性
B. 降低耦合性、提高内聚性有利于提高模块的独立性
C. 耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D. 内聚性是指模块间互相连接的紧密程度
解析:耦合性是指模块间互相连接的紧密程度,内聚性是指一个模块内部各个元素问彼此结合的紧密程度。提高内聚性、降低耦合性是提高模块独立性的方法。
11.有两个关系R,S如下:
(B)
A. 选择
B. 投影
C. 插入
D. 连接
解析:关系S是由关系R的第1、2列的元组组成,很显然这是对关系R进行投影运算的结果。可以简单理解为:选择运算是对行的操作,投影运算是对列的操作。投影是指将对象转换为一种新形式的操作,该形式通常只包含那些将随后使用的属性。由选择、投影、插入、连接的定义可知,本题所使用的运算是投影。
12.以下说法中正确的是( )。(C)
A. C语言程序总是从第一个定义的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分
解析:C语言的程序是由主函数main()开始运行;由主函数来调用其他函数,函数必须是并列的,定义后才能使用,不能在一个函数中定义其他函数;main()函数不一定要放在程序的执行部分,故C选项正确。
13.设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是( )。(C)
A. auto
B. register
C. static
D. auto或register
解析:静态存储类型定义变量在未对其初始化时会对其初始化默认值,其中int型的默认初始化值是0,其他选项的存储类型不能保证变量在未赋值情况的初值。
14.若有以下定义:
int x[10],*pt=x;
则对x数组元素的正确引用是( )。(B)
A. *&x[10]
B. *(x+3)
C. *(pt+10)
D. pt+3
解析:数组的下标是从0开始的,故x[10]实际上具体为x[0],x[1],…,x[9],而若使用x[10]就会溢出,编译出错。所以AC两项错误;D项是指向地址的,并未引用到元素;B项的表达正确,代表x[3]中的元素。
15.有以下程序:
#include<stdio.h>
main()
{
int a=5,b=1,t;
t=(a<<2)|b;
printf(\\(A)
A. 21
B. 11
C. 6
D. 1
解析:本题解题方法有如下两种:①位运算最常规的方式是转换为二进制,然后再运算。5的二进制是101,在<<2后为10100,然后和00001进行或运算后等于10101,其十进制为21;②a<<2即为a*4,结果为20,1相当于保证这个数是奇数,若不是则加1,所以为21。
16.有以下程序:
#include<stdio.h>
struct ord{
int x,y;}dt[2]={1,2,3,4};
main()
本文档预览:3600字符,共13978字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载