国家二级C语言机试(选择题)模拟试卷384
选择题
1.下列数据结构中,属于非线性结构的是( )。(C)
A. 循环队列
B. 带链队列
C. 二叉树
D. 带链栈
解析:树是简单的非线性结构,所以二叉树作为树的一种,也是一种非线性结构。
2.在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则循环队列中的元素个数为(B)
A. 2
B. 3
C. 4
D. 5
解析:循环队列中,rear表示尾指针,front表示头指针,当有元素入队时,rear=rear+1,而元素出队的时候,front=front+1,当rear值大于front值时,队列中的元素个数为rear-front,当rear的值小于front时,列队中的元素个数为rear—front+m(m表示队列的容量)。
3.软件设计中划分模块的一个准则是( )。(B)
A. 低内聚、低耦合
B. 高内聚、低耦合
C. 低内聚、高耦合
D. 高内聚、高耦合
解析:一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为B。
4.以下描述中,不是线性表顺序存储结构特征的是( )。(D)
A. 可随机访问
B. 需要连续的存储空间
C. 不便于插入和删除
D. 逻辑相邻的数据物理位置上不相邻
解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此不需要另外开辟空间来保存元素之间的关系。
5.下列叙述中正确的是(C)
A. 循环队列是队列的链式存储结构
B. 能采用顺序存储的必定是线性结构
C. 所有的线性结构都可以采用顺序存储结构
D. 具有两个以上指针的链表必定是非线性结构
解析:根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。所有的线性结构都可以采用顺序存储结构。
6.以下叙述中正确的是(C)
A. a表示一一个字符常量
B. ’\0’表示字符0
C. 表达式:’a’>’b’的结果是“假”
D. ’\’\\
解析:字符常量可以参加关系运算,按照其存储的ASCII码值进行比较,’a’>’b’不成立,值为假。而’\0’表示NULL,ASCII码值为0。
7.设变量均已正确定义,若要通过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。。
8.表示关系式x≤y≤z的C语言表达式的是(C)
A. (x<=y)‖(y<=z)
B. (x<y<=z)
C. (x<=y)&&(y<=z)
D. (x<=y)!(y<=z)
解析:表示三个变量的关系,要利用逻辑表达式,用逻辑与连接。
9.软件需求规格说明书的作用不包括(D)
A. 软件验收的依据
B. 用户与开发人员对软件要做什么的共同理解
C. 软件设计的依据
D. 软件可行性研究的依据
解析:软件规格说明书主要有三个作用:①用户和软件开发人员之间的合同;②开发人员进行设计和编程的依据;③软件工程项目验收的依据。
10.软件设计中模块划分应遵循的准则是(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:耦合性与内聚性是模块独立性的两个定性标准。一般一个较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
11.非法的用户标识符是( )。(D)
A. Main
B. _0
C. _int
D. sizeof
解析:用户标识符只能由字母、下划线和数字组成,且必须以字母或者下划线开头,不能和C语言的关键字相同。选项A、B和C都符合要求,选项D中的sizeof是C语言关键字,不能作为用户标识符。
12.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。(A)
A. 1
B. 0
C. 2
D. 不知道a的值,不能确定
解析:逻辑或“||”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为1,则左边运算对象为1;若a的值不是1,则右边运算对象的值为1,所以总能保证一边非零。
13.下列叙述中正确的是( )。(D)
A. 可以用关系运算符比较字符串的大小
B. 空字符串不占用内存,其内存空间大小是0
C. 两个连续的单引号是合法的字符常量
D. 两个连续的双引号是合法的字符串常量
解析:比较两个字符串大小用函数strcmp(str1,str2),空字符串有结尾符,所以也要占用字节,两个双引号表示地是空字符串。
14.有两个关系R和S如下:
(C)
A. 自然连接
B. 并
C. 选择
D. 投影
解析:关系S是由关系R中的一行元组组成,应通过选择运算得到。
15.若有定义语句double x,y,*px,*py;,执行了px=&x;py=&y;之后,正确的输入语句是( )。(A)
A. searlf(\\
B. seanf(\\
C. scard\\
D. seanf(\\
解析:因为x和y都是double型数据,所以输入时的格式字符应为%lf,所以B、C选项错误。D选项中的scanf(\\
16.以下叙述中正确的是
B
解析:选项B中除了字符串中实际字符之外,还要存储字符串结束标志,应为5个元素。在C语言中没有字符串数据类型,因此选项C不正确,选项D字符数组不一定必须存放字符串,因此没有规定最后一个元素为字符串结束标志。
17.以下叙述中正确的是(D)
A. 可以在程序中由用户指定任意一个函数作为主函数,程序将从
本文档预览:3600字符,共10750字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载