历年全国计算机二级C语言笔试真题及答案
选择题(每题2分,共计70分)1.下列叙述中正确的是A)栈是先进先出的线性表B)队列是"先进后出"的线性表C)循环队列是非线性结构D)有序线性表即可以采用顺序存储结构,也可以采用链式存储结构2.支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树3.某二叉树有5个读为2的结点,则该二叉树中的叶子结点数是A10 B8 C)6 D)44.下列排序方法中,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序5软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列属于应用软件的是A)编译程序B)操作系统C)教务管理系统D)汇编程序6.下面叙述中错误的是A) 填空题(每空2分,共30分)(1)假设用一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有_个元素。(2)软件测试可分为白盒测试和黑盒测试。基本路径测试属于_测试。(3)符合结构化原则的三种基本控制结构是:选择结构、循环结构和_。(4)数据库系统的核心是_。(5)在E-R图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是_框。(6)表达式(int)((double)(5/2)+2.5)的值是_。(7)若 选择题(1)下列数据结构中,属于非线性结构的是()A)循环队列B)带链队列C)二叉树D)带链栈(2)下列数据结果中,能够按照“先进后出”原则存取数据的是()A)循环队列B)栈C)队列D)二叉树(3)对于循环队列,下列叙述中正确的是()A)队头指针是固定不变的B)队头指针一定大于队尾指针C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针(4)算法的空间复杂度是指()A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数(5)软件设计中划分模块的一个准则是()A)低内聚低耦合B)高内聚低耦合 填空题(每空2分,共30分)(1)某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有_【1】_个结点。(2)程序流程图中的菱形框表示的是_【2】_。(3)软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中_【3】_阶段产生“软件需求规格说明书 4)在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为【4 5)人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为主关键字的是_【5】_。(6)若有定义语句:int a=5;,则表达式:a++的值是【6 7)若有语句double x=17;int y;,当执行y=(int)(x/5)%2;之后y的值为【7】_。 选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时问复杂度是指A)算法的执行时间B)算法所处理的数据量a+=b;printf(“%d”,a);}main(){ int c=20;fun(c);a+=c;printf(“%d\n”,a);}程序运行后的输出结果是【11】_。(12)设有定义:struct pe 填空题(1)一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为【1】。(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有【2】个元素。(3)设二叉树如下:(10)有以下程序#include main() { int a[]={1,2,3,4,5,6},*k[3],i=0; while(i<3){ k[i]=&a[2*i]; printf("%d",*k[i]); i++; } } 程序运行后的输出结果是【10】。(11)有以下程序#in 选择题(每小题2分,共70分)(1)下列叙述中正确的是A)线性表的链式存储结构与顺序存储结构所需要的存成B)结构化程序使用goto语句会很便捷C)在C语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题(12)以下关于简单程序设计的步骤和顺序的说法中正确储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多是A)确定算法后,整理并写出文档,最后进行编码和上机调于顺序存储结构试B)首先确定数据结构,然后确定算法,再编码,并上机调while(a<6)b+=a;a+=2;b二10; printf(”d,dn”,a,b); 试,最后整理文档C)先编码和上机调试, 填空题(每空2分,共30分)(1)一个栈的初始状态为空。首先将元素5,4,3,2,1依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所已定义)int fun(int aN[M))int i,j,row=0,col=0; for(i=0;i<N;I++) for(j=0;j if(aijarowcol)row=i;col=j; return(【12 }(13)有以下程序includestdio.h> main() int n[2],i,j; for(i=0;i<2;i++)n[i]=0; for(i=0;i2;i++) for(j=0;j<2;j++)nj=n[i]1; print 选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3 B)4 C)6 D)7 当执行上述程序段,并从键盘输入:name=Lilinum=1001<回车>后,name的值为A)Lili B)name=LiliC)Lili num=D)name=Lili num= 选择题(每小题2 分,共70 分)1.下列叙述中正确的是。A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都D.在物理设计阶段建立数据字典不对2.下列关于线性链表的叙述中,正确的是A.各数据结点的存8.数据库系统的三级模式不包括量B.常量分为整型常量、实型常量、字符常量和字符串常A.概念模式B.内模式C.外模式D.数据模式量C.常量可分为数值型常量和非数值型常量D.经常被使9.有三个关系R、S 和T 如下:用的变量可定义成常量ABCABCABCa12a12c3114.若有定义语句:int a=10;double b=3.14;,