国家二级C语言机试(选择题)模拟试卷386
选择题
1.设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为( )。(B)
A. 7
B. 8
C. 9
D. 10
解析:在具有n个结点的满二叉树,其非叶子结点数为int(n/2),而叶子结点数等于总结点数减去非叶子结点数。本题n=15,故非叶子结点数等于int(15/2)=7,叶子结点数等于15-7=8。
2.C语言主要是借助以下哪种手段来实现程序模块化(D)
A. 定义常量和外部变量
B. 使用丰富的数据类型
C. 使用三种基本结构语句
D. 定义函数
解析:C语言用函数实现软件的模块化设计。
3.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是(B)
A. 12345ABCDE
B. EDCBA54321
C. ABCDE12345
D. 54321EDCBA
解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是EDCBA54321。
4.下列各组排序法中,最坏情况下比较次数相同的是( )。(C)
A. 简单选择排序与堆排序
B. 简单插入排序与希尔排序
C. 冒泡排序与快速排序
D. 希尔排序与堆排序
解析:对于长度为n的线性表,最坏情况下查找或排序的次数如下表:
5.在深度为7的满二叉树中,叶子结点的个数为(C)
A. 32
B. 31
C. 64
D. 63
解析:所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。也就是在满二叉树中,每一层上的结点数都是最大结点数,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。对于深度为7的满二叉树,叶子结点所在的是第7层,一共有27-1=64个叶子结点。全部结点共27-1=127个。
6.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为(C)
A. log 2 n
B. n/2
C. n
D. n+1
解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为n次。
7.设变量x为long int型,并已正确赋值,以下表达式中能将x的百位上的数字提取出的是( )。(D)
A. x/10%100
B. x%10/100
C. x%100/10
D. x/100%10
解析:x/100的个位数是x的百位数上的数字,所以再进行%10运算即可得到该数字。
8.有以下程序
main( ){
chara=’H’;
a:(a>=’A’&&a<=’Z’)?(a+32);a;
printf(’’%c\\
’’,a);)
程序运行后的输出结果是(C)
A. H
B. A
C. h
D. a
解析:表达式a=(a>=’A’&&a<=’z’)?(a+32):a,为条件表达式,如果a是大写字符,则转换为小写字符存放到a中,否则不变。
9.数据库管理系统是( )。(B)
A. 操作系统的一部分
B. 在操作系统支持下的系统软件
C. 一种编译系统
D. 一种操作系统
解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制、保护和数据服务等。
10.循环队列的存储空间为Q(1:40),初始状态为front=rear=40。经过一系列正常的入队与退队操作后,front=rear=15,此后又退出一个元素,则循环队列中的元素个数为(A)
A. 39,或0且产生下溢错误
B. 14
C. 40
D. 15
解析:循环队列初始状态front=rear=40 ,经过一系列入队和出队操作后,结束状态还是front=rear=15,这说明入队元素个数和出队元素个数一样多。这样一来最后的元素个数就和原来的元素个数一样多,明显不是0就是40,即要么队列为空(0个元素),要么队列为满队列(40个元素)。这时进行出队操作,如果是队列满(40个元素)的情况,此时队列中的元素个数为39,如果是队列空(0个元素)的情况,此时就会产生下溢错误。因此选项A正确。
11.有以下程序
main() {
int a=2,c=5;
printf(\\(B)
A. a=%2,b=%5
B. a;%d,b=%d
C. a=2,b=5
D. a=%%d,b=%%d
解析:输出“%”,可以在格式控制中用“%%”表示,将输出一个“%”,而没有%表示格式符的开始,%%d不能表示格式符,因此仅输出:a=%d,b=%d。
12.有以下程序段:
#include
int j;
float y;char name[50];
seanf(”%2d%f%s”,&j,&y,name);
当执行上述程序段时,从键盘上输入55566 7777abc后,Y的值为( )。(A)
A. 566.0
B. 55566.0
C. 7777.0
D. 566777.0
解析:它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。其中的格式命令可以说明最大域宽。在百分号(%)与格式码之间的整数用于限制从对应域读人的最大字符数。所以j的值为55,y的值为566.0,字符数组name为7777abc。
13.关于C语言程序的叙述中错误的是( )。(B)
A. 一个C函数可以单独作为一个C程序文件存在
B. 一个C语言程序只能实现一种算法
C. C语言程序可以由一个或多个函数组成
D. C语言程序可以由多个程序文件组成
解析:在一段C语言程序中可以包含多个算法.用来实现不同的任务,因为算法是指为解决某个特定问题而采取的确定且有限的步骤,它是通过函数来实现的。一个C语言源程序由许多函数组成,这些函数都是根据实际任务确定具体的算法,由用户自己编写。C语言源程序可以放在不同的文件中,同一个源程序中的函数也可放在不同的文件中,所以一个C语言程序可以实现多种算法。
14.以下不构成无限循环的浯句或语句组是( )。
A
解析:A选项中do后面的语句只执行了一次便结束了循环;B选项中条件while(1)永远成立,所以是死循环;C选项中n的值为10,而循环体为空语句,所以while(n)永远为真,进入死循环;D选项中for语句第二个表达式为空,所以没有判断条件,进入死循环。
15.设有如下三个关系表
本文档预览:3600字符,共12559字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载