国家二级(C语言)机试模拟试卷490
选择题
1.设某二叉树的后序序列为CBA,中序序列为ABC,则该二叉树的前序序列为( )。(C)
A. BCA
B. CBA
C. ABC
D. CAB
解析:后序序列为CBA,中序序列为ABC,则说明,A为根结点,并且B和C均在A的右子树上;结点B和C中,后序序列为CB,中序序列为BC,则说明结点C在结点B的右子树上,根据分析可得,该二叉树的前序序列为ABC,答案选C。
2.结构化程序设计的基本原则不包括( )。(A)
A. 多态性
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
3.若有定义int a[5],*p=a;则正确引用数组元素的是( )。(D)
A. *&a[5]
B. *a+2
C. *(p+5)
D. *(a+2)
解析:本题考查通过指针引用数组元素。用指针引用数组有以下3种形式:①(p+n)与(a+n)表示数组元素a[n]的地址:②*(p+n)与*(a+n)表示数组元素a[n];③p[n]=*(p+n),都表示数组元素a[n]。
选项A、B没有这种引用形式;选项C,*(p+5)是引用数组的第6个元素,而数组一共有5个元素,出现越界;选项D,*(a+2)引用数组的第3个元素。
4.数据库系统的三级模式不包括( )。(D)
A. 概念模式
B. 内模式
C. 外模式
D. 数据模式
解析:数据库系统的三级模式是概念模式、外模式和内模式,所以选择D。
5.在数据管理技术发展的三个阶段中,数据共享最好的是( )。(C)
A. 人工管理阶段
B. 文件系统阶段
C. 数据库系统阶段
D. 三个阶段相同
解析:数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都最好,一直占据数据库领域的主导地位,所以选择c。
6.有以下程序:
#include<stdio.h>
main()
{
int a[4][4]={{1,4,3,2},
{8,6,5,7},
{3,7,2,5},
{4,8,6,1}};
inti,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=J+1;k<4;k++)
if(a[j][i]>a[k][i])
{
t=a[j][i];
a[j][i]=a[k][i];
a[k][i]=t;
}/*按列排序*/
for(i=0;i<4;i++)
printf(\\(D)
A. 1,6,2,1,
B. 8,7,3,1,
C. 4,7,5,2,
D. 1,6,5,7,
解析:首先对二维数组进行赋值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值为1、4、…、6、1。通过for语句和if语句,对二维数组各列元素进行由小到大的排序操作,程序最后通过for语句输出二维数组对角线上的元素。因此D选项正确。
7.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是( )。(B)
A. 逻辑设计
B. 需求分析
C. 详细设计
D. 物理设计
解析:软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。
8.数据库管理系统是( )。(B)
A. 操作系统的一部分
B. 在操作系统支持下的系统软件
C. 一种编译系统
D. 一种操作系统
解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和提供数据服务等,是一种在操作系统支持下的系统软件,因此本题答案为B。
9.若变量已正确定义,在if(W) printf(\\(A)
A. a<>b+c
B. ch=getchar()
C. a==b+c
D. a++
解析:选项A是非法的表达式,C语言中没有<>运算符。
10.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。(D)
A. 3
B. 4
C. 6
D. 7
解析:根据二叉树的基本性质:在任意一棵二叉树中,度为0的叶子结点总比度为2的结点多一个,因此本题中度为2的结点为1-1=0个,据此可以知道本题中的二叉树的每一个结点都有一个分支,所以共有7个结点、共7层,即深度为7,选择D。
11.软件设计中模块划分应遵循的准则是( )。(A)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:软件工程的三要素是方法、工具和过程,答案选A)。
12.以下叙述中不正确的是( )。(D)
A. 在不同的函数中可以使用相同的名字的变量
B. 函数中的形式参数是局部变量
C. 在一个函数内定义的变量只在本函数范围内有效
D. 在一个函数内的复合语句中定义的变量在本函数范围内有效
解析:此题考查的是变量的作用范围。选项D中,在一个函数的复合语句中定义的变量是局部变量,只在定义此变量的复合语句内有效,并不是在整个函数体内都有效。
13.有以下程序:
#include
int fun(int x,int y)
{ if(x!=y)retum(y);
else return((x+y)/2);
}
main()
{ int a=4,b=5,c=6;
printf(“%d\n”,fun(2*a,fun(b,c)));
}
程序运行后的输出结果是( )。(B)
A. 3
B. 6
C. 8
D. 12
解析:fun(b,c)即fun(5,6),5!=6,所以返回6;fun(2*a,6)即fun(8,6),8!=6,所以返回6。
14.有下列程序
#include<stdio.h>
void f(int x[],int n)
{if(n>1)
{printf(\\(C)
A. 1234321
B. 43211234
C. 4321234
D. 12344321
解析:f()函数有两个参数:数组首地址x和数组元素个数n,当n大于l时,执行首先输出最后一个元素x[n-1],然后递归调用自身;直到n等于1时再次输出x[n-1],然后回到上一层调用,输出x[n-1];main()函数定义一个数组a,包含四个元素:1,2,3,4,然
本文档预览:3600字符,共16991字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载