国家二级C语言程序设计机试(选择题)模拟试卷3
(总分:80.00,做题时间:90分钟)
一、 选择题(总题数:40,分数:80.00)
1.下列数据结构中,属于非线性结构的是( )。
(分数:2.00)
 A.循环队列
 B.带链队列
 C.二叉树 
 D.带链栈
解析:解析:线性结构的特点:①有且只有一个根结点;②每一个结点最多有一个前驱,也最多有一个后继。不满足线性结构条件的称为非线性结构,二叉树的非叶子结点最多可以用两个后继结点,属于非线性结构。
2.算法的空间复杂度是指( )。
(分数:2.00)
 A.算法在执行过程中所需要的计算机存储空间 
 B.算法所处理的数据量
 C.算法程序中的语句或指令条数
 D.算法在执行过程中所需要的临时工作单元数
解析:解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为A。
3.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。
(分数:2.00)
 A.循环队列
 B.栈 
 C.队列
 D.二叉树
解析:解析:栈是按“先进后出”的原则组织数据的;队列是按“先进先出”的原则组织数据的,因此本题答案为B。
4.软件设计中划分模块的一个准则是( )。
(分数:2.00)
 A.低内聚、低耦合
 B.高内聚、低耦合 
 C.低内聚、高耦合
 D.高内聚、高耦合
解析:解析:一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为B。
5.结构化程序的三种基本控制结构是( )。
(分数:2.00)
 A.顺序、选择和重复(循环) 
 B.过程、子程序和分程序
 C.顺序、选择和调用
 D.调用、返回和转移
解析:解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环),故正确答案为A。
6.软件需求规格说明书在软件开发中的作用不包括( )。
(分数:2.00)
 A.软件设计的依据
 B.软件可行性分析的依据 
 C.软件验收的依据
 D.用户和开发人员对软件要做什么的共同理解
解析:解析:需求分析就是分析软件用户的需求是什么,描述需求的文档称为软件需求规格说明书。软件需求规格说明书是需求分析阶段的最后成果。需求规格说明书是使开发人员获得设计和实现这些功能所需的所有必要信息,是软件设计的依据,A选项正确;软件需求规格说明书是软件测试和验收的依据,通过检查每项需求是否能通过设计测试用例或其他的验证方法,来确定产品是否确实按需求实现了,C选项正确;软件需求规格说明书对所有需求说明的用户和开发人员都只能有一个明确统一的解释,是用户和开发人员对软件要做什么的共同理解,D选项正确。可行性分析是项目立项阶段要做的工作,虽然也需要对用户需求进行调研,但此阶段不会形成软件需求规格说明书。故正确答案为B。
7.程序测试的目的是( )。
(分数:2.00)
 A.为被测程序设计正确的测试用例
 B.发现并改正程序中的错误
 C.发现程序中的错误 
 D.改正程序中的错误
解析:解析:程序测试是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别,即为发现错误而执行程序的过程,而不是改正错误。故正确答案为C。
8.数据库管理系统是( )。
(分数:2.00)
 A.操作系统的一部分
 B.在操作系统支持下的系统软件 
 C.一种编译系统
 D.一种操作系统
解析:解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和提供数据服务等,是一种在操作系统支持下的系统软件,因此本题答案为B。
9.设数据元素的集合D={1,2,3,4,5},则满足下列关系R的数据结构中为线性结构的是( )。
(分数:2.00)
程序设计语言一般可分为三大类
 A.R={(1,2),(3,2),(5,1),(4,5)}
 B.R={(1,3),(4,1),(3,2),(5,4)} 
 C.R={(1,2),(2,4),(4,5),(2,3)}
 D.R={(1,3),(2,4),(3,5),(1,2)}
解析:解析:A选项2的前面有1和3两个数值,带有不确定性;c选项2的后面有4和3两个数值;D选项1的后面有3和2两个数值,所以只有B选项是线性结构。
10.以下叙述中正确的是( )。
(分数:2.00)
 A.转义字符要用双引号括起来,以便与普通的字符常量区分开
 B.字符常量在内存中占2个字节
 C.字符常量需要用单引号括起来 
 D.字符常量是不能进行关系运算的
解析:解析:A选项中,转义字符是以反斜线“\”开头,后跟1个或几个字符;B选项中,字符常量在内存中占1个字节;D选项中,字符常量可以进行关系运算,不能参与数值运算。因此C选项正确。
11.以下关于结构化程序设计的叙述中正确的是( )。
(分数:2.00)
 A.由三种基本结构构成的程序只能解决小规模的问题
 B.结构化程序使用goto语句会很便捷
 C.一个结构化程序必须同时由顺序、分支、循环三种结构组成
 D.在C语言中,程序的模块化是利用函数实现的 
解析:解析:D选项正确,c语言允许对函数单独进行编译,从而可以实现模块化。A选项错误,使用三种基本结构组成的程序可以解决复杂的问题;B选项错误,使用goto语句会使程序混乱,程序中应该尽量避免使用goto语句;C选项错误,一个结构化程序没有必要同时由顺序、分支、循环三种结构组成。
12.以下叙述中正确的是( )。
(分数:2.00)
 A.计算机只接收由0和1代码组成的二进制指令或数据 
 B.计算机只接收由0和1代码组成的十进制指令或数据
 C.计算机可直接接收并运行C源程序
 D.计算机可直接接收并运行任意高级语言编写的源程序
解析:解析:二进制数中只有两个字符0和1,表示具有两个不同稳定状态的元器件。例如,电路中有无电流,有电流用1表示,无电流用0表示。类似的还比如电路中电压的高低,晶体管的导通和截止等。二进制数运算简单,大大简化了计算中运算部件的结构,故选项A正确。
13.关于C语言标识符,以下叙述中错误的是( )。
(分数:2.00)
 A.标识符可全部由数字组成 
 B.标识符可全部由下画线组成
 C.标识符可全部由小写字母组成
 D.标识符可全部由大写字母组成
解析:解析:c语言标识符只能由字母、数字、下画线构成,且只能以字母、下画线开头,
故选项A不正确。
14.若有c语言表达式2+3*4+7/3,则以下选项中叙述正确的执行顺序是( )。
(分数:2.00)
 A.先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得16 
 B.先执行3*4得12,再执行7/3得2.5,最后执行2+12+2.5得16.5
 C.先执行7/3得2,再执行3*4得12,再执行12+2得14,最后执行2+14得16
 D.先执行2+3得5,再执行5*4得20,再执行20+7得27,最后执行27/3得9
解析:解析:c语言表达式的执行顺序是从左向右,当遇到优先级高的表达式组分时,先执行优先级高的表达式,故选项A正确。
15.以下定义语句中正确的是( )。
(分数:2.00)
 A.int a=b=0:
 B.char A=65+1,b='b'; 
 C.float a=1,*b=&;a,*c=&;b;
 D.double a=0.0;b=1.1;
解析:解析:定义变量时不能用连等,所以A选项错误;C选项中,b是指针,c定义为指向指针的指针才可以接受&b,所以C选项错误;D选项,b=1.1前没有类型名,所以错误。
16.有以下程序: #include main() { int k=一17: prinff(“%d,%0,%x\n”,k,1一k,1一k); } 程序的运行结果是( )。
(分数:2.00)
 A.一17,22,12 
 B.一17,12,22
 C.一17,一22,一12
 D.17,22,12
解析:解析:整型常量有3种表示方法,分别是十进制数表示法、八进制数表示法和十六进制数表示法。十进制整常量没有前缀,输出格式控制符为%d;八进制整常量以0作为前缀,输出格式控制符为%0;十六进制整常量以0X或0x作为前缀,输出格式控制符为%x。1一k=18,整型常量18用八进制表示为22,十六进制表示为12,故A选项正确。
17.若有以下程序: #include main() { int a=0,b=0,c=0; c=(a一=++a),(a+=b,b+=4); printf(“%d,%d,%d\n”,a,b,c); } 则程序的输出结果是( )。
(分数:2.00)
 A.0,4,0 
 B.0,4,4
 C.1,4,1
 D.1,4,4
解析:解析:逗号运算符的结合性从左到右,因此逗号表达式将从左到右进行计算。另外
逗号运算符的优先级最低,所以先计算c=(a一=++a)这部分。其中,赋值运算符从右往左计算,先执行++a,a自增1后再赋值,所以a的值为1,执行a=a一1,即a=1—1,a的值为0,并将0赋给变量c。第二部分(a+=b,b+=4),先执行a=a+b,a=0+0,即a的值为0,然后执行b+=4,b=0+4,即bl的值为4。所以输出结果为0,4,0,故选项A正确。
18.有以下程序: #include double fun(double a) { double x; x=a一(int)a; return x; } main() { double a=3.1415; printf(“%f\n”,fun(a)); } 程序的运行结果是( )。
(分数:2.00)
 A.0.141500 
 B.3.141500
 C.30000000
 D.0.000000
解析:解析:这里考查了强制转换的概念。在fun函数中,x=a一(int)a,表示x取值为a的小数部分,因此,输入a为3.1415,输出x=0.141500,故A选项正确。
19.有以下程序: #include main() { int i,j; for(i=1;i
(分数:2.00)
 A.1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3
 B.1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9 
 C.1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。