国家二级C语言机试(选择题)模拟试卷343
选择题
1.设栈的顺序存储空间为S(1:m),初始状态为top=0。现经过一系列正常的入栈与退栈操作后,top=m+1,则栈中的元素个数为( )。(C)
A. 0
B. m
C. 不可能
D. m+1
解析:栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。初始状态为top=0,当栈满top=m,无法继续入栈,top值不可能为m+1。
2.以下四个程序中,完全正确的是
B
解析:在选项A)中,main()函数后面的分号是错误的,C语言在函数名后面不能有分号。在C语言中注释内容必须放在“/*”和“*/”之间,“/*”和“*/”必须成对出现,按语法规定在注释之间不可以再嵌套“/*’和“*/”。在选项C)的程序段中注释语句之间有嵌套;所以选项C)不正确。C语言用#include命令行来实现文件包含的功能。#include命令行的形式为:#include “文件名”,所以在选项D)中incltide前面少了一个#符号,因而选项D)不正确。
3.可在C程序中用作用户标识符的一组标识符是( )。(B)
A. void define WORD
B. as_b3 _123 If
C. For —abc case
D. 2c DO SIG
解析:C语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或下划线,关键字不能用作用户标识符。
4.设一棵树的度为3,其中没有度为2的结点,且叶子结点数为5。该树中度为3的结点数为(B)
A. 1
B. 2
C. 3
D. 不可能有这样的树
解析:树的度是指一棵树中,最大的结点的度称为树的度。本题中树的度为3,那么树中最少有一个结点的度为3。而树中没有度为2的结点,叶子结点数为5,度为1的结点下面只有一个叶子结点。因此,该树中含2个度为3的结点满足题目要求。
5.下面选项中合法的字符常量是(C)
A. X
B. ’abc’
C. ’X’
D. ’\’
解析:在程序中用单引号把一个字符括起来作为字符常量。但是为了表示字符“\”要用两个“\\”表示一个反斜杠。
6.若有定义语句:intx=10;则表达式x-=x+x的值为(C)
A. -20
B. 0
C. -10
D. 10
解析:表达式x-=x+x等价于x=x.(x+x),整型变量x的初始值等于10,计算题同所求表达式的值时,首先计算x与x的和等于20,然后再用10减去20等于-10,得到该表达式的值。
7.设表的长度为n。在下列结构所对应的算法中,最坏情况下时间复杂度最低的是(D)
A. 堆排序
B. 有序链表查找
C. 希尔排序
D. 循环链表中寻找最大项
解析:在循环链表中寻找最大项算法是,首先取出第一个数作为最大数,然后和后面的所有项进行比较查找。因此,比较次数为n-1。
8.有以下程序
main() {
int sum , pad , pAd;
sum=pad=5 ;
pAd=++sum,pad++,++pad;
printf(\\(D)
A. 5
B. 7
C. 8
D. 6
解析:有逗号表达式构成的语句:pAd=++sum,pAd++,++pad;主要从左到南连续运算,因此pad的值为6。注意pad和pAd的是不同的变量。
9.关于C程序的编译和运行,以下叙述中错误的是( )。(C)
A. C语言源代码程序通过编译、链接步骤之后才能形成一个可执行文件
B. 用C语言编写的程序是以ASCⅡ代码形式存放在一个文本文件中
C. C语言中的所有语句都将被转换成二进制的机器指令
D. C语言源程序经编译后生成后缀为.obj的目标程序
解析:C语言中的某些语句并不会被转换成二进制机器指令,如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。C语言编写的源程序就是以ASCⅡ的形式存放在文本文件中的。C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“链接程序”的软件,因此.obj文件与C语言提供的各种库函数链接起来生成一个后缀为.EXE的可执行文件。
10.在结构化程序设计中,模块划分的原则是(D)
A. 各模块应包括尽量多的功能
B. 各模块的规模应尽量大
C. 各模块之间的联系应尽量紧密
D. 模块内具有高内聚度、模块间具有低耦合度
解析:内聚性是对一个模块内部各个元素间彼此结合的紧密程度的度量。耦合性是对模块间互相连接的紧密程度的度量。在结构化程序设计中,模块划分应遵循高内聚、低耦合的原则,即减弱模块之间的耦合性和提高模块内聚性,有利于提高软件模块的独立性。
11.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(A)
A. 控制流
B. 加工
C. 存储文件
D. 源和潭
解析:数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构成,包括4个方面,即加工、数据流、存储文件、源和潭。
12.关系表中的每一横行称为一个( )。(A)
A. 元组
B. 字段
C. 属性
D. 码
解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。
13.关于C语言数制的叙述中正确的是( )。(C)
A. 英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符
B. 八进制数的开头要使用英文字母o,否则不能与十进制区分开
C. 整型变量可以分为int型、short型、long型和unsigned型四种
D. 在C程序中的八进制和十六进制,可以是浮点数
解析:C语言的整型变量有:①基本型:以int表示。②短整型:以short int表示,或以short表示。③长整型:以long int表示,或以long表示。④无符号型:以unsigned int表示,选项C正确,实型常量仅有十进制表示形式,八进制以数字。开头,十六进制开头为Ox或者OX,不是二进制。
14.有以下程序
#include
main()
{int y=9;
for(;y>0;y–)
if(y%3==O)printf(\\(B)
A. 963
B. 852
C. 741
D. 875421
解析:y的值的初值为9,所以在for循环中,当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式–y的值。因为自减符号在y的前面,所以首先y的自减1,然后再输出y的值,故输出结果为8 5 2。
15.以下叙述中不正确的是( )。(C)
A. 预处理命令行都必须以#号开始,结尾不加分号
B. 在程
本文档预览:3600字符,共12026字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载