资源预览内容
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2015年3月全国计算机等级考试二级C语言真题三(总分100, 考试时间90分钟)一、选择题(每小题1分,共40分)1. 下列关于算法复杂度叙述正确的是( )。A 最坏情况下的时间复杂度一定高于平均情况的时间复杂度B 时间复杂度与所用的计算工具无关C 对同一个问题,采用不同的算法,则它们的时间复杂度是相同的D 时间复杂度与采用的算法描述语言有关答案:B解析算法的时间复杂度是指执行算法所需要的计算工作量,它与使用的计算机、程序设计语言以及算法实现过程中的许多细节无关,B选项正确,D选项错误。最坏情况下的时间复杂度可以与平均情况的时间复杂度相同,A选项错误。不同的算法时间复杂度一般不相同,C选项错误。2. 设有栈S和队列Q,初始状态均为空。首先依次将A,B,C,D,E,F入栈,然后从栈中退出3个元素依次入队,再将X,Y,Z入栈后,将栈中所有元素退出并依次入队,最后将队列中所有元素退出,则退队元素的顺序为( )。A DEFXYZABCB FEDZYXCBAC FEDXYZCBAD DEFZYXABC答案:B解析栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。队列是指允许在一端进行插入,而在另一端进行删除的线性表。将A,B,C,D,E,F入栈后,栈中元素为ABCDEF,退出3个元素入队,队列元素为FED,将X,Y,Z入栈后栈中元素为ABCXYZ,全部入队后,队列元素为FEDZYXCBA,故B选项正确。3. 下列叙述中正确的是( )。A 有两个指针域的链表称为二叉链表B 循环链表是循环队列的链式存储结构C 带链的栈有栈顶指针和栈底指针,因此又称为双重链表D 节点中具有多个指针域的链表称为多重链表答案:D解析双向链表与二叉链表均是有两个指针域的链表,A选项错误。在单链表的第一个节点前增加一个表头节点,队头指针指向表头节点,最后一个节点的指针域的值由NULL改为指向表头节点,这样的链表称为循环链表。循环队列是队列的一种顺序存储结构。循环链表与循环队列是两种存储结构,B选项错误。双向链表节点有两个指针域,指向前一个节点的指针和指向后一个节点的指针,而带链的栈是单链表形式,C选项错误。故正确答案为D选项。4. 某二叉树共有845个节点,其中叶子节点有45个,则度为1的节点数为( )。A 400B 754C 756D 不确定答案:C解析在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度。对任何一棵二叉树,度为0的节点(即叶子节点)总是比度为2的节点多一个。二叉树共有845个节点,度为0的节点有45个,度为1的节点数为n1,度为2的节点数为n2,则84545+n1+n2,且45n2+1,则n1756,C选项正确。5. 软件需求分析阶段的主要任务是( )。A 确定软件开发方法B 确定软件开发工具C 确定软件开发计划D 确定软件系统的功能答案:D解析需求分析阶段的工作可以分为4个方面:需求获取、需求分析、编写需求规格说明书和需求评审,包括确定软件系统的功能,D选项正确。A、B、C选项均为开发阶段工作。6. 下面对软件测试描述错误的是( )。A 严格执行测试计划,排除测试的随意性B 随机地选取测试数据C 软件测试的目的是发现错误D 软件测试是保证软件质量的重要手段答案:B解析在测试之前制定测试计划,并严格执行,测试用例的选择不可随意,应选择有代表性的,尽可能发现迄今为止尚未发现的错误,A选项叙述正确,B选项叙述错误。测试的根本目的是尽可能多地发现并排除软件中隐藏的错误,C选项叙述正确。软件测试是保证软件质量、可靠性的关键步骤,D选项叙述正确。故正确答案为B选项。7. 结构化程序的3种基本控制结构是( )。A 顺序、选择和重复(循环)B 过程、子程序和分程序C 顺序、选择和调用D 调用、返回和转移答案:A解析结构化程序的3种基本控制结构:顺序、选择和重复,故A选项正确。8. 数据库中对概念模式内容进行说明的语言是( )。A 数据定义语言B 数据操纵语言C 数据控制语言D 数据宿主型语言答案:A解析数据库管理系统为完成主要功能提供了相应的数据语言,它们是:数据定义语言,该语言负责数据的模式定义与数据的物理存取构建;数据操纵语言,该语言负责数据的操纵,包括查询与增、删、改等操作;数据控制语言,该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。数据宿主型语言它要嵌入其他程序设计语言(如COBOL、FORTRAN、PLI、汇编语言)。被嵌入的语言称为宿主语言,嵌入的语言称为子语言。数据库应用程序用宿主语言和子语言书写而成。故A选项正确。9. 某个工厂有若干个仓库,每个仓库存放有不同的零件,相同零件可能放在不同的仓库中。则实体仓库和零件间的联系是( )。A 多对多B 一对多C 多对一D 一对一答案:A解析一般来说,实体集之间必须通过联系来建立联接关系,分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。每个仓库存放有不同的零件,相同零件可能放在不同的仓库中,故实体仓库和零件间的联系是多对多,A选项正确。10. 有3个关系R、S和T如下:则由关系R和S得到关系T的操作是( )。A 交B 差C 并D 选择答案:A解析用于查询的3个操作无法用传统的集合运算表示,引入的运算为投影运算、选择运算、笛卡儿积。常用的扩充运算有交、除、连接及自然连接等。选择:从关系中找出满足给定条件的元组的操作称为选择,题目中无给定条件,放D选项错误。差:R-S结果是属于R但不属于S的记录组成的集合,T中元组“c 32”同时属于R和S,B选项错误。并:RS是将S中的记录追加到R后面,T中元组少于R,故C选项错误。交:RS结果是既属于R又属于S的记录组成的集合,与题目中结果相符,故A选项正确。11. 以下叙述正确的是( )。A 计算机只接收由0和1代码组成的二进制指令或数据B 计算机只接收由0和1代码组成的十进制指令或数据C 计算机可直接接收并运行C源程序D 计算机可直接接收并运行任意高级语言编写的源程序答案:A解析计算机认识自己的母语机器语言,即0和1代码组成的二进制指令和数据,故A选项正确,B选项错误。C语言是一种高级语言,计算机不能直接运行C源程序和高级语言编写的源程序,C和D选项错误。12. 若有C语言表达式2+3*4+73,以下选项中叙述正确的执行顺序是( )。A 先执行3*4得12,再执行73得25,最后执行2+12+25得165B 先执行3*4得12,再执行2+12得14,再执行73得2,最后执行14+2得16C 先执行73得2,再执行3*4得12,再执行12+2得14,最后执行2+14得16D 先执行2+3得5,再执行5*4得20,再执行20+7得27,最后执行273得9答案:B解析首先,在C语言中,乘除法优先级要高于加减法,其次,除法运算符“”两边参加运算的对象都是整数,运算结果要取整,故排除A,D选项;C语言中,因为运算符“*”和“”都满足从左到右的运算规则,故应先计算3*412,因此C选项排除,答案为B选项。13. 若有定义:char c;int d;程序运行时输入:c1,d=2回车,能把字符1输入给变量c、整数2输入给变量d的输入语句是( )。A scanf(cd dd,c,d);B scanf(cc dd,c,d);C scanf(cd,dd,c,d);D scanf(cc,dd,c,d);答案:D解析scanf()函数中,d对应的参数是整数型地址,c对应参数为char型地址,因此A、C选项错误;如果输入地址有多个,应该用逗号隔开,因此B选项错误,故答案为D选项。14. 以下选项中,与ni+完全等价的表达式是( )。A ni,ii+1B n+i+1C i=i+1,n=iD n=+i答案:A解析运算符“+”放在变量后面时,表示变量先参与其他操作,再完成加1,故表达式ni+的运算顺序是先将i赋值给n,再将i+1赋值给i,因此答案为A选项。15. 设有定义:int n 1234;double x = 31415;则语句printf(“3d,13fn”,n,x)的输出结果是( )。A 1234,3142B 123,3142C 1234,3141D 123,3141答案:A解析函数printf()中,md指输出带符号的十进制整数,给定最小宽度为m位,不足m位左端补空格,超过m位按实际位数输出,nf表示以小数形式输出实数,小数占n位,对应题目,答案为A选项。16. 有以下程序:执行时输入:123回车,则输出结果是( )。A 2,2,3,4,4,4,B 2,3,4,C 2,3,3,4,5,6,D 2,3,4,3,4,4,答案:C解析程序在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,执行对应的case语句,之后不再进行判断,继续执行此case后面的语句,并且各个case和default的出现次序不影响执行结果,即题目中的default放在开始位置,与放在最后是一样的结果;运算符“+”放在变量前面时,表示将变量+1,再参与其他操作。本题,第一次循环,输入b=1,执行case 1,输出2;再执行ease 2,输出3。第二次循环,输入b2,执行case 2,输出3。第三次循环,输入b3,没有case与其对应,故执行default,输出b4,接着执行case 1,输出5,再执行case 2,输出b6,至此退出for语句。因此,最后输出为2,3,3,4,5,6,答案为C选项。17. 设变量m为float类型,变量n为int类型,则以下能实现将m中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )。A m(m*100+05)1000B n=m*100+05,m=n1000C nm100+05,mn*1000D mm*100+051000答案:B解析n是整型数,将浮点数赋值给整型变量需要丢弃小数位,所以若要保留m的小数点后两位,需要将m乘以100,若要将m小数点后第三位四舍五人,再需要加上05,然后赋给整型变量,所以nm*100+05,接下来需要将m还原成有两位小数的浮点数,除号两边操作数有一个是浮点数时,结果为浮点数,将n1000赋值给m,得到m的值含两位小数,故答案为B选项。18. 有以下程序:程序运行后的输出结果是( )。A -1,0B 0,0C -1,-1D 1,1答案:A解析题干中语句for(;a-;)的执行过程是,先判断表达式a-是否为0,因为运算符“-”在变量的后面,表示先进行其他操作,再让变量a减1,即判断a!0成立,则进入循环,然后a减1,起始a=1不等于0,满足条件进入for循环,然后a自减1为0,b自减1为0,继续循环;再跳回for语句时,a!0不成立,不会进入循环,但是a也要自减1为-
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号