国家二级C语言机试(选择题)模拟试卷357
选择题
1.若有说明:
typedef struct{
int a;char c;
} w;
则以下叙述正确的是( )。(D)
A. 编译后系统为w分配5个字节
B. 编译后系统为w分配6个字节
C. 编译后系统为w分配58个字节
D. 编译后系统不为w分配存储空间
解析:w是一个自定义类型,而不是变量,故编译后系统不为w分配存储空间。当使用w定义变量时才会为其定义的变量分配存储空间。
2.设某二叉树的后序序列为CBA,中序序列为ABC,则该二叉树的前序序列为(C)
A. BCA
B. CBA
C. ABC
D. CAB
解析:二叉树的前序遍历顺序为首先访问根结点,再依次访问左结点和右结点。中序遍历的顺序为首先访问左结点,然后依次访问根结点和右结点。后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点。根据后序可以很快确定根结点,然后可以查看根在中序中位置,将中序分为左右两部分,左边和右边两颗树,在按照上述方式递推出确定左子树的根和右子树。本题根据后序,可以确定A为根结点;根据B在中序中的位置,可以确定A没有左子树,BC为A的右子树,C为B的右子树。本题的具体二叉树如下:
3.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为(C)
A. log2n
B. n/2
C. n
D. n+1
解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为n次。
4.以下选项中,值为1的表达式是(C)
A. 1一’0’
B. ’1’-0
C. 1-’\0’
D. ’\0’-’0’
解析:在C程序中,字符量可参与任何整数运算。字符参与运算时,首先要将字符转换为其对应的ASCII码值再参与整数运算。字符’1’对应的ASCII码值是49,字符’0’对应的ASCII码值是48,字符’\0’是字符串结束标识符NULL,其对应的ASCII码值是0。
5.数据库系统的核心是( )。(B)
A. 数据模型
B. 数据库管理系统
C. 数据库
D. 数据库管理员
解析:数据库管理系统(DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。所以,数据库管理系统是数据库系统的核心。
6.下列排序法中,每经过一次元素的交换会产生新的逆序的是(A)
A. 快速排序
B. 冒泡排序
C. 简单插入排序
D. 简单选择排序
解析:冒泡排序只交换相邻元素,但不是每次移动都产生新的逆序。简单插入排序的元素移动不会产生新的逆序。快速排序每一次交换移动都会产生新的逆序,因为当不会有新的逆序产生时,本轮比较结束。故选项A正确。
7.if语句的基本形式是:if(表达式)语句,以下关于’’表达式’’值的叙述中正确的是(C)
A. 必须是整数值
B. 必须是正数
C. 可以是任意合法的数值
D. 必须是逻辑值
解析:在if语句中,表达式可以是任意合法的数值。当其值为非零时,执行if语句,为0时执行else语句。
8.若在定义语句: int a,b,c,*p=&c;接着执行以下选项中的语句,则能正确执行的语句是(C)
A. scanf(\\
B. scanf(\\
C. scanf(\\
D. scanf(\\
解析:程序语句int a,b,c,*p=&c;定义了三个整型变量a,b,c,和一个整型指针变量p,并且把变量c的地址赋给p。scanf函数的一般形式为“scanf(“格式控制字符串”,地址列表)”,其中的地址列表应当是存放输入数据变量的地址。
9.有以下程序:
#include
#define S(x)x*x
void main()
{
int k-5,j=2;
prinff(“%d,%d\n”,S(k+j+2),S(+k+2));
}
程序的运行结果是( )。(A)
A. 21.18
B. 81,81
C. 21,21
D. 18.18
解析:带参数的宏的调用格式:宏名(实参表),替换过程是:用宏调用提供的实参字符串,直接替换宏定义命令行中相应形参字符串,非形参字符保持不变。S(k+j+2)被s换成k+j+2*k+j+2,计算时先计算2:I:k,结果为21;s(j+k+2)被s换成j+k+2*j+k+2,计算时先计算2冰j,结果为18。程序的运行结果是21,18。
10.十进制整数设为整数类I,则下面属于类I的实例的是(A)
A. 一518
B. 0.518
C. 518E-2
D. .518
解析:整数的全体构成整数集,整数集是一个数环。在整数系中,零和正整数统称为自然数。-1、-2、-3、…、-n、…(n为非零自然数)为负整数。则正整数、零与负整数构成整数系。整数不包括小数、分数。本题中,选项A是正确的,选项B是小数,选项C是科学计数,也是小数,选项D是小数。
11.软件生命周期是指( )。(A)
A. 软件产品从提出、实现、使用维护到停止使用退役的过程
B. 软件从需求分析、设计、实现到测试完成的过程
C. 软件的开发过程
D. 软件的运行维护过程
解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
12.以下错误的定义语句是
D
解析:一维数组定义和初始化是允许省略行下标,不允许省略列下标。
13.设int x=0,*p;下列赋值语句正确的是( )。(B)
A. *p=x;
B. p=NULL;
C. p=x;
D. *p=NULL;
解析:定义指针变量时,必须将指针变量初始化为NULL(为空),否则,如果不赋给它地址,系统会随机给它分配一个地址.以致出现错误的运算结果。
14.下列叙述中正确的是( )。(B)
A. 循环队列是队列的一种链式存储结构
B. 循环队列是队列的一种顺序存储结构
C. 循环队列是非线性结构
D. 循环队列是一种逻辑结构
解析:在实际应用中,队列的顺序存储结构一般采用循环队列的形式。
15.关于结构体函数的叙述中正确的是( )。(D)
A. 即使是同类型的结构体变量。也不能进行整体赋值
B. 结构体数组名不能作为实参传给函数
C. 结构体变量的地址不能作为实参传给函数
D. 结构体中可以含有指向本结构体的指针成员
解析:C语言中的结构体变量包含若干成员,这些成员可以
本文档预览:3600字符,共11135字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载