国家二级C语言机试(选择题)模拟试卷399
选择题
1.C语言源程序名的后缀是(C)
A. .exe
B. .obj
C. .c
D. .cp
解析:由C语言构成的指令序列称为C源程序,源程序文件的后缀为“.c”。源程序经过C编译程序编译生成后缀为“.obj”的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件把目标文件与C语言提供的各种库函数连接起来,生成后缀为“.exe”的可执行文件。
2.C语言程序的模块化通过以下哪个选项来实现(C)
A. 变量
B. 程序行
C. 函数
D. 语句
解析:用函数作为程序模块以实现C程序的模块化,程序有多个函数构成,每个函数可以实现一个具体的功能,实现程序的模块化设计。
3.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是(B)
A. 一条C语句可能会被转换成多条机器指令
B. 一条C语句对应转换成一条机器指令
C. 一条C语句可能会被转换成零条机器指令
D. 某种类型和格式的C语句被转换成机器指令的条数是固定的
解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语苦的语句条数和机器指令的条数不是一对一的关系。
4.下列叙述中正确的是( )。(C)
A. 非完全二叉树可以采用顺序存储结构
B. 有两个指针域的链表就是二叉链表
C. 有的二叉树也能用顺序存储结构表示
D. 顺序存储结构一定是线性结构
解析:在计算机中,二叉树为非线性结构,通常采用链式存储结构,但对于满二叉树和完全二叉树来说,可以按层进行顺序存储。因此A项错误,C项正确。虽然满二叉树和完全二叉树可以采用顺序存储结构,但仍是一种非线性结构,因此D项错误。双向链表也有两个指针域,因此B项错误。
5.有二叉树如下图所示:
(A)
A. ABDEGCFH
B. DBGEAFHC
C. DGEBHFCA
D. ABCDEFGH
解析:前序遍历首先访问根结点,然后遍历左子树,最后遍历右子树;在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。故本题前序序列是ABDEGCFH。
中序遍历首先遍历左子树,然后访问跟结点,最后遍历右子树;在遍历左、右子树时,仍然先遍历左子树,然后访问跟结点,最后遍历右子树。故本题的中序序列是DBGEAFHC。
后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点;在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。故本题的后序序列是DGEBHFCA。
6.将自然数集设为整数类Ⅰ,则下面属于类Ⅰ实例的是( )。(C)
A. -518
B. 5.18
C. 518
D. 518E-2
解析:类是具有共同属性、共同方法的对象的集合。类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。自然数集是全体非负整数组成的集合,A项是负数实例,B项是浮点数实例,D项是用科学计数法表示的浮点数实例。
7.以下不合法的数值常量是(D)
A. 1e1
B. 011
C. 0xabcd
D. 8.0E0.5
解析:实型常量又称为吱数或浮点数。在C语言中,可以用两种形式表示一个实型常量。①小数形式是由数字和小数点组成的一种实数表示形式,这种表示形式的常量必须要有小数点。②指数形式用以”e”或”E”后跟一个整数来表示以10为底的幂数。C语言的语法规定,字*e或E之前必须要有数字,且e或E后面的指数必须为整数。因为选项D中字*E后面的指数为小数形式,所以选项D这种表示方法不合法。
8.冒泡排序在最坏情况下的比较次数是(C)
A. n(n+1)/2
B. nlog2n
C. n(n一1)/2
D. n/2
解析:对n个结点的线性表采用冒泡排序,在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
9.不能正确表示数学式的(C)
A. a*b/c
B. a/c*b
C. a/b*c
D. a*(b/c)
解析:表达式的含义为a乘以b除以c,选项C正好曲解了这一个含义。
10.面向对象方法中,继承是指(D)
A. 一组对象所具有的相似性质
B. 一个对象具有另一个对象的性质
C. 各对象之间的共同性质
D. 类之间共享属性和操作的机制
解析:面向对象方法中,继承是使用已有的类定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。
11.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是
B
解析:uInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项A)和选项C),选项D)是整数集合,所以也排除。
12.如果进栈序列为A,B,C,D,则可能的出栈序列是( )。(B)
A. C,A,D,B
B. B,D,C,A
C. C,D,A,B
D. 任意顺序
解析:栈的操作原则为后进先出。选项B中出栈顺序可按“A进,B进,B出,C进,D进,D出,C出,A出”实现。
13.设变量均已正确定义,若要通过scanf(’’%d%c%d%c’’,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。下列所示的输入形式中正确的是(注:□代表空格字符)( )。(D)
A. 10□X□20□Y<CR>
B. 10□X20□Y<CR>
C. 10□X<CR>
20Y<CR>
D. 10X<CR>
20Y<CR>
解析:在使用scanf函数进行输入数据时,输入的数据之间可以用空格、回车符、制表符(Tab键)等间隔符隔开,但是输入值时也要输入相应的字符,格式符中没有这些字符,所以输入时也不能输入,否则会将这些字符作为对应的字符变量的值赋值给字符变量,如输入10赋值给a1,应直接输入X赋值给c1,否则输入空格后,将空格赋值给c1,同理输入a2,、c2。。
14.合法的用户标识符是( )。(A)
A. _2007
B. y-m-d
C. Dr.Tom
D. case
解析:用户标识符只能由字母、下划线和数字组成,且必须以字母或者下划线开始。选项A正确;选项B中使用了一字符,选项C使用了字符;选项D中的case是C语言关键字,不能作为用户标识符。
15.以下关于逻辑运算符两侧运算对象的叙述中正确的是( )。(A)
A. 可以是任意合法的表达式
B. 只能是整数0或非0整数
C. 可以是结构体类型的数据
本文档预览:3600字符,共10307字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载