国家二级C语言机试(选择题)模拟试卷585
选择题
1.关于带符号的定点数,下列描述中正确的是( )。(B)
A. 正数的补码与偏移码相同
B. 正数的原码、反码、补码均相同
C. 正数的原码、反码、补码、偏移码均相同
D. 正数的原码、反码、补码、偏移码均互不相同
解析:带符号的定点数中,正数的原码、反码、补码均相同;负数的反码是对该数的原码除符号位外各位取反,补码是在该数的反码的最后(最右边)一位上加1;不管是正数还是负数,其补码的符号位取反即偏移码。故本题答案为B选项。
2.下列叙述中正确的是( )。(B)
A. 矩阵是非线性结构
B. 数组是长度固定的线性表
C. 对线性表只能进行插入与删除运算
D. 线性表中各元素的数据类型可以不同
解析:矩阵也是线性表,只不过是比较复杂的线性表。线性表中各元素的数据类型必须相同。在线性表中,不仅可以进行插入与删除运算,还可以进行查找或对线性表进行排序等操作。故本题答案为B选项。
3.度为3的一棵树共有30个节点,其中度为3和1的节点个数分别为3和4,则该树中的叶子节点数为( )。(B)
A. 14
B. 15
C. 16
D. 不存在这样的树
解析:设叶子节点数为n,则度为2的节点数为30—3—4一n=23一n。根据树中的节点数=树中所有节点的度之和+1,得3×3+2×(23一n)+1×4+0×n+1=30,则n=15。故本题答案为B选项。
4.下列序列中不满足堆条件的是( )。(D)
A. (98,95,93,94,89,90,76,80,55,49)
B. (98,95,93,94,89,85,76,64,55,49)
C. (98,95,93,94,89,90,76,64,55,49)
D. (98,95,93,96,89,85,76,64,55,49)
解析:根据堆的定义,n个元素的序列(h1,h2,…,hn),当且仅当hi≤h2i且hi≤h2i+1时为小顶堆;当且仅当hi≥h2i且hi≥h2i+1时为大顶堆。D选项中,h2=95,h4=96,h2<h4,但h5=89,h2>h5,不满足小顶堆和大顶堆条件。故本题答案为D选项。
5.以下可以作为软件需求分析工具的是( )。(D)
A. N—S图
B. 程序流程图
C. 问题分析图(PAD)
D. 数据流图(DFD)
解析:常见的需求分析方法有结构化分析方法和面向对象分析方法。结构化分析工具包括数据流图(Data Flow Diagram,DFD)、数据字典(Data Dictionary,DD)、判定表和判定树等。程序流程图、N—S图、问题分析图(Problem Analysis Diagram,PAD)属于软件设计阶段使用的工具。故本题答案为D选项。
6.下列叙述中正确的是( )。(C)
A. 数据库的数据项之间无联系
B. 数据库中任意两个表之间一定不存在联系
C. 数据库的数据项之间存在联系
D. 数据库的数据项之间以及两个表之间都不存在联系
解析:数据库的数据项之间以及表之间都存在联系。故本题答案为C选项。
7.下列叙述中正确的是( )。(B)
A. 关系模式的候选键只能有1个
B. 关系模式的候选键可以有1个或多个
C. 关系模式可以没有候选键
D. 关系模式必须有2个以上的候选键
解析:在关系模式中能唯一标识元组的最小属性集称为该关系的键或码。关系模式中可能有若干个键,它们称为该表的候选码或候选键。关系模式中不能没有候选键。故本题答案为B选项。
8.定义学生和课程的关系模式如下:
S(S#,Sn,Sd,Dc,Sa)(其属性分别为学号、姓名、所在系、所在系的系主任、年龄)
C(C#,Cn,P#)(其属性分别为课程号、课程名、选修课)
SC(S#,C#,G)(其属性分别为学号、课程号、成绩)
关系中包含对主属性传递依赖的是( )。(C)
A. S#→Sd
B. S#→Sd,(S#,C#)→G
C. S#→Sd,Sd→Dc
D. C#→P#,(S#,C#)→G
解析:关系S的主属性为S#、C#,但在S中S#(学号)可决定sd(所在系),Sd(所在系)可决定Dc(所在系的系主任),故对主属性存在传递依赖的是s#→Sd,sd→Dc。故本题答案为C选项。
9.以下选项中不能作为C语言中合法常量的是( )。(B)
A. 0.1e+6
B. cd’
C. \\
D. \011’
解析:字符串常量应该用双引号标注,即\\
10.以下选项中合法的C语言常量是( )。(D)
A. 2.0Kb
B. C++’
C. \2.0
D. 1.01
解析:C语言中,常量有整型常量、实型常量、字符常量和字符串常量等。整型常量和实型常量又称为数值常量。其中整型常量只能用数字表示,不带小数点。实型常量必须用带小数点的数表示,所以A选项错误,D选项正确;字符常量是用单引号标注的单个字符,字符串常量是用双引号标注的若干个字符,所以选项B、C错误。故本题答案为D选项。
11.若变量均已正确定义并赋值,以下合法的C语言赋值语句是( )。(A)
A. x=y==5;
B. x=n%2.5;
C. x+n=i;
D. x=5=4+1;
解析:B选项中运算符\\
12.有以下程序:
#include<stdio.h>
main()
{ int x=3,y=5,z1,z2;
z1=y^x^y;z2=x^y^x;
printf(\\(D)
A. 7,7
B. 5,3
C. 8,8
D. 3,5
解析:\\
13.设有定义\\(D)
A. 只能用%1f输出a,用%f输出b
B. 只能用%f输出a,用%1f输出b
C. 只能用%1f输出a,用%1f输出b
D. 既可以用%f输出a,也可以用%f输出b
解析:C语言中,%f是格式控制字符,它既可以输出单精度数也可以输出双精度数。故本题答案为D选项。
14.以下能够正确描述\\(A)
A. (k>0)&&(k%2!=1)
B. (k>0)&&(k%2=0)
C. (k>0)||!(k%2)
D. (k>0)||(k%2==0)
解析:判断k大于O的表达式为\\
15.有以下程序:
本文档预览:3600字符,共7094字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载