国家二级C语言机试(选择题)模拟试卷312
选择题
1.下列叙述中正确的是( )。(B)
A. 能采用顺序存储的必定是线性结构
B. 所有的线性结构都可以采用顺序存储结构
C. 具有两个以上指针的链表必定是非线性结构
D. 循环队列是队列的链式存储结构
解析:所有的线性结构都可以用数组保存,即都可以采用顺序存储结构。而反过来不可以,完全二叉树也能用数组保存(按层次依次存放到数据元素中),但完全二叉树属于非线性结构。双向链表具有两个以上的指针,但属于线性结构。循环队列是队列的顺序存储结构。
2.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是(B)
A. 12345ABCDE
B. EDCBA54321
C. ABCDE12345
D. 54321EDCBA
解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是EDCBA54321。
3.下列各项中,对对象概念描述正确的是( )。(A)
A. 对象间的通信靠消息传递
B. 对象是名字和方法的封装体
C. 任何对象必须有继承性
D. 对象的多态性是指一个对象有多个操作
解析:对象之间进行通信的构造叫作消息,选项A正确。封装性是指从外面看只能看到对象的外部特征,而不知道也无须知道数据的具体结构以及实现操作,选项B错误。对象不一定必须有继承性,选项C错误。多态性是指同一个操作可以是不同对象的行为,选项D错误。
4.下列关于二叉树的叙述中,正确的是(B)
A. 叶子结点总是比度为2的结点少一个
B. 叶子结点总是比度为2的结点多一个
C. 叶子结点数是度为2的结点数的两倍
D. 度为2的结点数是度为1的结点数的两倍
解析:由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个。
5.以下定义语句中正确的是(A)
A. charA=65+1,b=’b’;
B. inta=b=0;
C. floata=1,*b&a,*c=&b;
D. doublea=0.0;b=1.1;
解析:本题考查的是数据类型的定义并赋值,选项B中对变量声明类型且赋值的情况是不允许出现的,必须单独定义且赋值。选项C中对于指针变量c的赋值须为同型指针,而&b为二级指针。选项D中C语言允许在一个类型说明符后说明多个相同类型的变量,各变量之间要用逗号( )隔开,而不是用分号(;)隔开;在计算机存储字符时将字符相应的AscⅡ码以其对应的二进制进行存放,选项A中的定义是合法的。
6.下列选项中属于面向对象设计方法主要特征的是(A)
A. 继承
B. 自顶向下
C. 模块化
D. 逐步求精
解析:面向对象设计方法的主要特征有封装性、继承性和多态性。而结构化程序设计方法的主要原则有自顶向下,逐步求精,模块化,限制使用goto语句。
7.有以下程序
#include
main() {
int a=3;
printf(\\(D)
A. 9
B. 0
C. 3
D. -12
解析:对于表达式a+=a-=a*a梢当于a=a-(a*a),然后计算a=a+a,a的初值为3,则表达式的值为-12。
8.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是(B)
A. 提高耦合性降低内聚性有利于提高模块的独立性
B. 降低耦合性提高内聚性有利于提高模块的独立性
C. 耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D. 内聚性是指模块间互相连接的紧密程度
解析:耦合性是反映模块间互相连接的紧密程度,内聚性是指一个模块内部各个元素间彼此接合的紧密程序。提高模块的内聚性,降低模块的耦合性是有利于模块的独立性。
9.两个或两个以下模块之间关联的紧密程度称为(A)
A. 耦合度
B. 内聚度
C. 复杂度
D. 数据传输特性
解析:模块的独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系较少且接口简单。衡量软件的模块独立性使用:内聚性和耦合性两个定性度量标准。内聚性是对一个模块内部各个元素彼此结合的紧密程度的度量;耦合性是对模块间互相连接的紧密程度的度量。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
10.若在定义语句: 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(“格式控制字符串”,地址列表)”,其中的地址列表应当是存放输入数据变量的地址。
11.以下程序段的输出结果是( )。
#include<stdio.h>
main()
{ char p[][4]={’’ABC’’,’’DEF’’,’’GHI’’};
int i;
for(i=0;i<3;i++)
puts(p[i]);
}(C)
A. A
B
C
B. A D G
C. A B C
D E F
G H I
D. A B C
解析:本题首先定义了一个字符串数组p,通过for循环输出p[0]、p[1]p[2]的值。
12.关于C程序的编译和运行,以下叙述中错误的是( )。(C)
A. C语言源代码程序通过编译、链接步骤之后才能形成一个可执行文件
B. 用C语言编写的程序是以ASCⅡ代码形式存放在一个文本文件中
C. C语言中的所有语句都将被转换成二进制的机器指令
D. C语言源程序经编译后生成后缀为.obj的目标程序
解析:C语言中的某些语句并不会被转换成二进制机器指令,如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。C语言编写的源程序就是以ASCⅡ的形式存放在文本文件中的。C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“链接程序”的软件,因此.obj文件与C语言提供的各种库函数链接起来生成一个后缀为.EXE的可执行文件。
13.以下叙述中正确的是( )。(D)
A. 语句p=NULL;执行后,指针P指向地址为0的存储单元
B. 指针变量只能通过求地址运算符&来获得地址值
C. 语句p=NULL;与p=\0;是等价的语句
D. int*p1;、int * *p2;、int*p3;都是合法的定义指针变量的语句
解析:考查指针变量。指针变量的定义形式为:类型名 *指针变量名,表示指向某一个变量的指针,如果定义形式为:类型名**指针变量名,则表示指向某一个指针变量的指针,所以D选项正确。指针变量本身存储的是其指向的变量的地址值,不需
本文档预览:3600字符,共11835字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载