二级C语言考试复习题库(浓缩300题)_第1页
二级C语言考试复习题库(浓缩300题)_第2页
二级C语言考试复习题库(浓缩300题)_第3页
二级C语言考试复习题库(浓缩300题)_第4页
二级C语言考试复习题库(浓缩300题)_第5页
已阅读5页,还剩143页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE1二级C语言考试复习题库(浓缩300题)一、单选题1.在学校中,“班级”与“学生”两个实体集之间的联系属于()关系。A、一对一B、一对多C、多对一D、多对多答案:B解析:实体之间通过联系来建立关系,两个实体集之间的联系分为:①一对一关系;②一对多关系;③多对多关系。一个班包括多名学生,而一名学生只能属于一个班级,所以“班级”与“学生”联系属于一对多关系。答案选择B选项。2.下面不属于软件设计阶段任务的是()。A、软件的详细设计B、软件的总体结构设计C、软件的需求分析D、软件的数据设计答案:C解析:软件设计阶段的任务包括:①结构设计;②数据设计;③接口设计;④过程设计。软件的需求分析确定是在需求分析阶段完成的。答案选择C选项。3.有以下程序:#includemain(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序运行后的输出结果是()。A、3344B、2050C、3040D、0304答案:C解析:main函数的主体是一个for循环语句,for循环中包含一个switch语句,如果判断条件为0则进入第二个switch语句,如果判断语句为1则执行“a[i]=0”,最后将数组顺序输出。所以程序功能是将数组下标为奇数的项设为0,数组下标为偶数的项,如果对应的元素为偶数则加1,如果对应的元素为奇数则减1。答案选择C选项。4.一棵二叉树的前序遍历结果是ABCEDF,中序遍历结果是CBAEDF,则其后序遍历的结果是()。A、DBACEFB、CBFDEAC、FDAEBCD、FABEC答案:B解析:本题前序遍历结果是ABCEDF,所以A为根结点。中序遍历根结点在左右子树之间,所以CB和EDF分别为左右子树的中序遍历结果。同理,在CB子树中,B为父结点,C为左子树,在EDF子树中,E为父结点,DF为右子树,DF中D为父结点,F为右子树。所以后续遍历结果为CBFDEA。答案选择B选项。5.下列关于数据库特点的叙述中,错误的是()。A、数据库能够减少数据冗余B、数据库中的数据可以共享C、数据库中的表能够避免一切数据的重复D、数据库中的表既相对独立又相互联系答案:C解析:数据库的主要特点是:①实现数据共享。②减少数据的冗余度。③数据的独立性。④数据实现集中控制。⑤数据一致性和可维护性,以确保数据的安全性和可靠性。⑥故障恢复。数据库中的表只能尽量避免数据的重复,不能避免一切数据的重复。答案选择C选项。6.设有关键码序列(66,13,51,76,81,26,57,69,23),要按关键码值递增的次序排序,若采用快速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为()。A、23,13,51,57,66,26,81,69,76B、13,23,26,51,57,56,81,76,69C、23,13,51,57,26,66,81,69,76D、23,13,51,57,81,26,66,69,76答案:C解析:设要排序的序列是A[0]……A[8],设置两个变量i、j,开始的时候:i=0,j=8。先从后向前遍历,发现j=8时,指向23<66,需要交换A[0]与A[8],得到:(23,13,51,76,81,26,57,69,66),j=8,i=0,A[j]=66;然后从前往后遍历,发现i=3时,指向76>66,需要交换A[3]与A[8],得到:(23,13,51,66,81,26,57,69,76),j=8,i=3;第二次从后向前遍历,发现j=6时,指向57<66,需要交换A[3]与A[6],得到:(23,13,51,57,81,26,66,69,66),j=6,i=3;第二次从前往后遍历,发现i=4时,指向81>66,需要交换A[4]与A[6],得到:(23,13,51,57,66,26,81,69,66),j=4,i=6;第三次从后向前遍历,发现j=5时,A[5]=26<66、需要交换A[5]与A[6],得到:(23,13,51,57,26,66,81,69,66),j=5,i=5;第三次从前往后遍历,A[5]=66,i+1=j,第一趟排序结束,即所求为(23,13,51,57,26,66,81,69,66),答案选择C选项。7.己知二叉树后序遍历序列是CDABE,中序遍历序列是CADEB,它的前序遍历序列是()。A、BCDEB、ECABDC、EACDBD、CDEAB答案:C解析:后序遍历最后遍历到根结点,所以E为根结点。中序遍历根结点在左右子树之间,所以B为二叉树的右子树,CAD为左子树。同理,在CAD分支中,A为CD的父结点,C为A的左孩子,D为A的右孩子。根据所得树的形状,可得前序遍历为EACDB。答案选择C选项。8.下列叙述中正确的是()。A、可以用关系运算符比较字符串的大小B、空字符串不占用内存,其内存空间大小是0C、两个连续的单引号是合法的字符常量D、两个连续的双引号是合法的字符串常量答案:D解析:A项错误,关系运算符不能比较字符串大小,可以用函数库中的字符串比较函数来比较字符串的大小;B项错误,空字符串占用一个字节的内存;C项错误,字符常量是用单引号把一个字符括起来;D项正确,两个连续的双引号是一个字符串常量,称为空串。答案选择D选项。9.以下关于C语言数据类型使用的叙述中错误的是()。A、若只处理“真”和“假”两种逻辑值,应使用逻辑类型B、若要保存带有多位小数的数据,可使用双精度类型C、若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D、整数类型表示的自然数是准确无误差的答案:A解析:A项错误,C语言中没有逻辑类型,在C++中才引入的;B项正确,float类型称为单精度类型,double类型称为双精度类型,一般系统中,为float类型的变量分配4个字节的存储单元,为double类型的变量分配8个字节的存储单元。C项正确,struct结构体,可以用来描述包含多种基本类型的复杂对象。D项正确,整数的表示是不存在误差的。答案选择A选项。10.对有序线性表(23,29,34,55,60,70,78)用二分法查找值为60的元素时,需要比较次数为()。A、1B、2C、3D、4答案:C解析:二分法查找法不断的将序列分为可能包含和必然不包含的两部分,本题流程为:①将60与中间的元素55进行比较,60>55,所以60不可能在前4个元素中;②第二次将60与中间的元素70进行比较,60<70,所以60不可能在后2个元素中;③第三次将60与中间元素60比较,这时查找成功。答案选择C选项。11.以下选项中可用作C语言中合法用户标识符的是()。A、_123B、voidC、-abcD、2a答案:A解析:合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,其中,关键字在程序中都代表着固定的含义,不能另作他用。B项中void是关键字,不合法。C项和D项没有以字母或下划线开头,不合法。答案选择A选项。12.有三个关系R、S和T如下:则由关系R和S得到T的操作是()。A、自然连接B、交C、投影D、并答案:A解析:关系运算中自然连接是使用等于运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。B项,交是指两个关系的公共部分;C项,投影是从表中选出指定的属性值组成新表,是单目运算;D项,并运算将结构相同的两个关系合并,合并后的关系包含两个关系中的所有元组。答案选择A选项。13.下列关于线性表的叙述中,不正确的是()。A、线性表可以是空表B、线性表是一种线性结构C、线性表的所有结点有且仅有一个前件和后件D、线性表是由n个元素组成的一个有限序列答案:C解析:线性表是由n个元素组成的一种线性结构,当n=0时线性表为空表。C项错误,线性表中,第一个结点没有前件,最后一个结点没有后件。答案选择C选项。14.设有定义:intx=7,y=12;,则以下表达式值为3的是()。A、(y%=x)-(x%=5)B、y%=(x%=5)C、y%=x-x%5D、y%=(x-x%5)答案:A解析:A项正确,a%=b表示a=a%(b),A项可改写成y=y%x,x=x%5,再计算y-x计算的结果为3,满足题意;B项为0,C项为2,D项等同于C项。答案选择A选项。15.设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。若T=R×S,则T的元组的个数为()。A、6B、8C、9D、12答案:C解析:R为n元关系,有p个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。答案选择C选项。16.下列关系表达式中,结果为“假”的是()。A、(3+4)>6B、(3!=4)>2C、3<=4ǁ3D、(3<4)==1答案:B解析:A项,先执行3+4=7,7>6,结果为真;B项,先执行3!=4为真,即为1,1>2结果为假;C项,先执行3<=4结果为真,即1,再逻辑或运算只要左边值为1,就不在执行右边运算,结果为真;D项,先执行3<4结果为真,即为1,再执行1==1,结果为真。答案选择B选项。17.有以下程序:#includemain(){intx=0,y=6;do{while(--y)x++;}while(y--);printf("%d,%d\n",x,y);}程序的运行结果是()。A、5,0B、6,0C、5,-1D、6,-1答案:C解析:程序执行过程为:执行do…while的循环体:y=5,判断y为真,x=1;y=4,x=2;y=3,x=3;y=2,x=4;y=1,x=5;y=0,判断y为假,退出循环体。判断do…while条件y=0为假,y=-1,退出循环。输出x,y为5,-1,答案选择C选项。18.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()。A、while((ch=getchar())!='N')printf("%c",ch);B、while(ch=getchar()='N')printf("%c",ch);C、while(ch=getchar()=='N')printf("%c",ch);D、while((ch=getchar())=='N')printf("%c",ch);答案:A解析:A项正确,“(ch=getchar())!='N'”表示先把getchar()函数的返回值赋值给ch,然后判断,当读入字母不为N时,ch与'N'不相等,执行打印函数printf,当读入字母N时,ch与'N'相等,循环结束,同理知选项D错误。B项错误,“ch=getchar()='N'”表达式从右向左计算,会把´N´赋值给getchar()函数的返回值,而getchar()函数的返回值是右值,不可改变,出现编译错误;C项错误,“ch=getchar()=='N'”中“==(等于)”的优先级高于“=(赋值)”,它等价于“ch=(getchar()=='N')”,此时ch的取值是0或1。答案选择A选项。19.有以下程序:#includemain(){inta,b,k,m,*p1,*p2;k=1,m=8;p1=&k,p2=&m;a=/*p1-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}编译时编译器提示错误信息,你认为出错的语句是()。A、=/*p1-m;B、=*p1+*p2+6;C、k=1,m=8;D、p1=&k,p2=&m;答案:A解析:a=/*p1-m;语句不符合语法规范,可写作a/=(*p1-m);,表示a=a/(*p1-m);。答案选择A选项。20.有如下程序:#includemain(){inti,data;scanf("%d",&data);for(i=0;i<5;i++){if(i>data)break;printf("%d,",i);}}程序运行时,从键盘输入:3<回车>后,程序输出结果为()。A、3,4,B、0,1,C、3,4,5,D、0,1,2,3,答案:D解析:break语句作用是结束整个循环过程,不再判断循环的条件是否成立,在嵌套循环中,break语句只跳出最内层的一层循环。程序执行过程为:输入3,则data=3;执行for循环,在i<=3时,if条件不成立,执行语句printf("%d,",i);依次输出i值,0,1,2,3;直到i=4时,if条件成立,执行break退出for循环。答案选择D选项。21.以下程序段中,与其他三个功能不同的程序段是()。A、s=0;i=1;for(;;){s+=i;i++;if(i<=10)break;}B、s=0,i=1;for(;i<=10;){s+=i;i++;}C、s=0;for(i=1;i<=10;i++){s+=i;}D、for(s=0,i=1;i<=10;s+=i,i++);答案:A解析:BCD项都表示对1到10进行累加后赋给s,而A项中含break语句,循环体只执行一次,结束整个循环过程。答案选择A选项。22.下列叙述中正确的是()。A、栈与队列都只能顺序存储B、循环队列是队列的顺序存储结构C、循环链表是循环队列的链式存储结构D、栈是顺序存储结构而队列是链式存储结构答案:B解析:栈是所有的插入与删除都限定在表的同一端进行的线性表;队列是指允许在一端进行插入,而在另一端进行删除的线性表,二者既可以顺序存储也可以链式存储。为了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列,因此循环队列是队列的一种顺序存储结构。答案选择B选项。23.以下选项中,合法的C语言实数是()。A、3.1e0.4B、2e0C、E13D、7.12E答案:B解析:实型常量指数形式由十进制数加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。.2e0为指数形式实数,B项正确。3.1e0.4,阶数不是整数,A项错误。E13阶码标志前缺少十进制数,C项错误。7.12E缺少阶码,D项错误。答案选择B选项。24.对于循环队列,下列叙述中正确的是()。A、队头指针是固定不变的B、队头指针一定大于队尾指针C、队头指针一定小于队尾指针D、队头指针可以大于队尾指针,也可以小于队尾指针答案:D解析:在循环队列中,用队尾指针(rear)指向队列中的队尾元素,用队头指针(front)指向队头元素的前一个位置。在循环队列中,一般情况下rear>front,当存储空间的最后一个位置被使用,而新元素要入队时,如果存储空间的第一个位置空闲,便可将元素插入到第一个位置,此时存储空间的第一个位置作为队尾,便有front>rear。所以答案选择D选项。25.有以下程序:#includevoidfun(intx,inty,int*z){*z=y-x;}main(){inta,b,c;fun(10,5,&a);fun(7,a,&b);fun(a,b,&c);printf("%d,%d,%d\n",a,b,c);}程序运行后的输出结果是()。A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7答案:B解析:程序执行过程为:调用函数fun(10,5,&a),将变量a地址传入函数,a=5-10=-5;调用函数fun(7,a,&b),将变量b地址传入函数,b=-5-7=-12;调用函数fun(a,b,&c),将变量c地址传入函数,c=-12-(-5)=-7。输出-5,-12,-7。答案选择B选项。26.C语言中,最基本的数据类型包括()。A、整型、实型、逻辑型B、整型、字符型、数组C、整型、实型、字符型D、整型、实型、结构体答案:C解析:C语言中,最基本的数据类型包括整型、实型、字符型,答案选择C选项。27.在数据库管理系统提供的数据语言中,负责数据的查询、增加、删除和修改等操作的是()。A、数据定义语言B、数据管理语言C、数据操纵语言D、数据控制语言答案:C解析:数据库管理系统提供的数据语言包括:①数据定义语言(DDL),该语言负责数据的模式定义与数据的物理存取构建;②数据操纵语言(DML),该语言负责数据的操纵,包括查询及增、删、改等操作;③数据控制语言(DCL),该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。答案选择C选项。28.关系R经过运算σA=BÙC>4ÙD>3(R)的结果为()。RA、(c,c,11,4)B、(e,e,6,1)C、(a,a,2,4)D、(a,a,2,4)和(e,e,6,1)答案:A解析:本题目为选出属于属性B,同时属性C大于4,并且属性D大于3的元组,结果为(c,c,11,4),应保留全部属性。答案选择A选项。29.有以下程序#includemain(){inta=1,b=0;for(;a<5;a++){if(a%2==0)break;continue;b+=a;}printf("%d\n",b);}程序运行后的输出结果是()。A、0B、1C、10D、4答案:A解析:该程序的for循环中,如果循环变量a为偶数,则执行break语句直接跳出循环;如果a为奇数,则直接执行continue语句进入下一次循环。因此无论a取何值,语句b+=a都不会执行,即b没有改变,最后输出0。答案选择A选项。30.执行以下程序段后,w的值为()。intw='A',x=14,y=15;w=((x||y)&&(w<'a'));A、-1B、NULLC、1D、0答案:C解析:因为x=14,y=15都是非零整数,因此x||y=1。又因为'A'+32='a',知w<'a'也为真,因此(x||y)&&(w<'a')的值为1。答案选择C选项。31.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)答案:C解析:二分查找的最坏情况是不断的二分直至无法再分时,仍然没有查找成功。对于有序的线性表,二分查找法只需比较log2n次。答案选择C选项。32.下列叙述中正确的是()。A、算法的效率只与问题的规模有关,而与数据的存储结构无关B、算法的时间复杂度是指执行算法所需要的计算工作量C、数据的逻辑结构与存储结构是一一对应的D、算法的时间复杂度与空间复杂度一定相关答案:B解析:采用不同的存储结构,数据处理效率是不同的,A项错误;算法的时间复杂度是指算法在计算机内执行时所需时间的度量,空间复杂度是指算法在计算机内执行时所需存储空间的度量,二者不一定相关,B项正确,D项错误;数据的逻辑结构在计算机存储空间的存放形式称为数据的存储结构,二者并非一一对应,C项错误。答案选B选项。33.下列叙述中正确的是()。A、算法就是程序B、设计算法时只需要考虑数据结构的设计C、设计算法时只需要考虑结果的可靠性D、以上三种说法都不对答案:D解析:A项错误,算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法;BC两项错误,设计算法时,不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。答案选择D选项。34.有如下嵌套的if语句:if(a<b)if(a<c)k=a;elsek=c;elseif(b<c)k=b;elsek=c;以下选项中与上述if语句等价的语句是()。A、k=(a<b)?a:b;k=(b<c)?b:c;B、k=(a<b)?((b<c)?a:b):((b<c)?b:c);C、k=(a<b)?((a<c)?a:c):((b<c)?b:c);D、k=(a<b)?a:b;k=(a<c)?a:c;答案:C解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。本题中,嵌套的if语句功能是将k赋值为abc中的最小值。A项,没有比较a、c的大小;B项,当ac时k赋值为b,此时b是最大值,与题意不符;D项,中没有比较bc大小。答案选择C选项。35.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指()。A、数据与程序独立存放B、不同的数据被存放在不同的文件中C、不同的数据只能被对应的应用程序所使用D、以上三种说法都不对答案:D解析:数据独立性指数据独立于应用程序,是数据库重要目标之一,分为:①物理独立,当数据物理存储变化时,应用程序不变;②逻辑独立,当数据逻辑结构改变时,应用程序不变。答案选择D选项。36.若变量已正确定义,有以下程序段i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其输出结果是()。A、0,1B、0,0C、1,1D、程序进入无限循环答案:A解析:首先进入循环体,输出0;while(i++)是先判定i是否为0,不管判定结果如何,都执行i++。i等于0,判定结果为false,执行i++,跳出do-while循环,然后输出1。答案选择A选项。37.以下叙述中错误的是()。A、C语言的可执行程序是由一系列机器指令构成的B、用C语言编写的源程序不能直接在计算机上运行C、通过编译得到的二进制目标程序需要连接才可以运行D、在没有安装C语言集成开发环境的机器上不能运行C源程序生成的exe文件答案:D解析:A项正确,C语言的可执行程序是由一系列机器指令组成的;BC项正确,用C语言编写的源程序必须经过编译,生成二进制目标代码,再经过连接才能运行;D项错误,C语言经过编译链接后的二进制目标代码可以脱离C语言集成开发环境独立运行。答案选择D选项。38.有以下程序:#includeintfun(intx,inty){if(x==y)return(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序运行后的输出结果是()。A、3B、6C、8D、12答案:B解析:fun的功能是求两数的平均数,并且参数和结果都为整型。题中是用一个函数作为另一个函数的参数,所以应该先做里面嵌套的函数即fun(b,c),值为5。fun(2*a,fun(b,c))即为计算fun(2*4,5),所以结果为(5+8)/2=6。答案选择B选项。39.结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是()。A、三种基本结构不可以嵌套使用B、顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移C、选择结构是根据不同的条件执行不同分支中的语句D、循环结构是根据条件决定是否重复、重复执行多少次循环体语句答案:A解析:结构化程序主要由3种基本控制结构组成,顺序结构是最基本的算法结构,当执行由这些语句构成的程序时,将按这些语句在程序中的先后顺序逐条执行,没有分支,没有转移,没有步骤之间的相互约束,没有对某一步骤的多次使用,完全按照步骤的原有次序依次执行,B选项叙述正确。选择结构根据不同的条件去执行不同分支中的语句,C选项叙述正确。循环结构就是根据各自的条件,使同一组语句重复执行多次,D选项叙述正确。三种结构可以嵌套使用,A选项叙述错误,答案选择A选项。40.若有定义:inta=0,b=0,c=0,d=0;有C语言表达式(a++&&b++)?c++:d++,以下关于其执行顺序的叙述正确是()。A、先执行a++,表达式a++的值为0,由此即可确定(a++&&b++)值为0,因此执行d++B、先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++&&b++)值为0,因此执行d++C、先执行a++,表达式a++的值为1;再执行b++,表达式b++的值为1,由此可确定(a++&&b++)值为1,因此执行c++D、先执行b++,表达式b++的值为1;再执行a++,表达式a++的值为1,由此可确定(a++&&b++)值为1,因此执行c++答案:A解析:把握前置运算和后置运算的基本运算规则。表达式1?表达式2:表达式3,若表达式1为真,则执行表达式2,否则执行表达式3。逻辑与运算符遵循“短路求值”策略,即在进行求值时,只要最终的结果已经可以确定是假,求值过程便告终止,表达式(a++&&b++)中,左操作数a++的值为0,已经可以确定整个逻辑表达式的结果为0,因此右操作数b++不再求解,直接执行表达式3,即d++,答案选择A选项。41.有以下程序:#includemain(){inta=1,b=2;while(a<6){b+=a;a+=2;b%=10;}printf("%d,%d\n",a,b);}程序运行后的输出结果是()。A、5,11B、7,1C、7,11D、6,1答案:B解析:第一次循环,a=1,b=b+a=3,a=a+2=3,b=b%10=3;第二次循环,a=3,b=b+a=6,a=a+2=5,b=b%10=6;第三次循环,a=5,b=b+a=11,a=a+2=7,b=b%10=1;结束循环。答案选择B选项。42.以下函数的功能是计算a的n次方作为函数值返回:doublefun(doublea,intn){inti;doubles=1.0;for(i=1;i<=n;i++)s=______;returns;}为实现上述功能,函数中下画线处应填入的是()。A、s*iB、s*aC、s+i*iD、s+a*a答案:B解析:for循环语句,i=1时,s=s*a;i=2时,s=s*a*a=s*a2;i=n时,s=s*an。最后返回s。答案选择B选项。43.下面属于系统软件的是()。A、财务管理系统B、编译软件C、编辑软件WordD、杀毒软件答案:B解析:应用软件是为解决特定领域的应用而开发的软件,如事务处理软件,工程与科学计算软件,学生成绩管理系统、教务管理系统、浏览器、编辑软件等应用性质不同的各种软件。系统软件是计算机管理自身资源,提高计算机使用效率并服务于其他程序的软件,如操作系统,编译程序,汇编程序,数据库管理系统等。支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件,如需求分析工具软件,设计工具软件,编码工具软件,测试工具软件,维护工具软件等。答案选择B选项。44.对于“while(!E)s;”,若要执行循环体s,则E的取值应为()。A、E等于1B、E不等于0C、E不等于1D、E等于0答案:D解析:如果执行循环体,要求!E成立,则E等于0。答案选择D选项。45.以下叙述中正确的是()。A、函数的形参类型不能是指针类型B、函数的类型不能是指针类型C、设有指针变量为double*p,则p+1将指针p移动8个字节D、基类型不同的指针变量可以相互混用答案:C解析:C项正确,一般情况下,double类型的变量长度为8个字节,对指针进行加、减运算时,数字“1”指1个存储单元长度。A项错误,函数的形参可以是数值类型,也可以是指针类型;B项错误,C语言中有指向函数的指针,称为函数指针;D项错误,int类型的指针只能指向int,不能指向double,基类型不同的指针变量不能混用。答案选择C选项。46.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是()。A、c=c+32B、c=('A'+c)%26-'a'C、=c-'A'+'a'D、c=(c-'A')%26+'a'答案:B解析:A项,ASCII码表中,同一字母的小写码比大写码数值上大32;B项,模26运算后得到0~25之间的数,再与'a'相减结果是负数;C项,'a'-'A'=32;D项,c-'A'取值在0~26,等价于C项。答案选择B选项。47.以下描述中,不是线性表顺序存储结构特征的是()。A、可随机访问B、需要连续的存储空间C、不便于插入和删除D、逻辑相邻的数据物理位置上不相邻答案:D解析:在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素称为顺序存储,其中逻辑上相邻的元素在物理位置上也相邻。顺序存储结构中可以随机访问元素,但插入和删除需要移动大量数据,耗费资源。答案选择D选项。48.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()。A、逻辑设计B、需求分析C、详细设计D、物理设计答案:B解析:软件开发阶段包括:①需求分析;②总体设计;③详细设计;④编码;⑤测试。其中,需求分析阶段常用的工具有数据流图(DFD)和数据字典(DD)。答案选择B选项。49.若有定义doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是()。A、=a++,i++B、i=(a+k)<=(i+k)C、i=a%11D、i=!a答案:C解析:C项错误,在C语言的算术运算符中,取余运算符“%”的左右两侧的两个运算分量必须是整数。A项,赋值运算符的优先级高于“,”运算法,先进行赋值;B项,将“=”右边的逻辑表达式的计算结果赋给变量i;D项,首先对变量a求逻辑非操作,然后将结果赋值给变量i。答案选择C选项。50.有语句:k=x<y?(y<z?1:0):0;以下选项中,与此语句功能相同的是()。A、if(x<yǁy<z)k=1;elsek=0;B、if(x<y)k=0;elseif(y<z)k=1;C、if(x<y)if(y<z)k=1;elsek=0;D、if(x<y&&y<z)k=1;elsek=0;答案:D解析:D项正确,题中,先判断x<y是否成立,如果为假,直接返回0,如果为真,再判断y<z,如果为真返回为1,否则返回0,综合所知,只有x<y且y<z时返回1,否则返回0。答案选择D选项。51.某系统结构图如下图所示该系统结构图的深度是()。A、1B、2C、3D、4答案:C解析:从图中可以看出系统共有3层,深度表示控制的层数。答案选择C选项。52.在关系运算中,选择运算的含义是()。A、在基本表中,选择满足条件的元组组成一个新的关系B、在基本表中,选择需要的属性组成一个新的关系C、在基本表中,选择满足条件的元组和属性组成一个新的关系D、以上三种说法均是正确的答案:A解析:选择运算是指从关系中找出满足给定条件的元组。选择是从行的角度进行的运算,即水平方向抽取记录。经过选择运算得到的结果可以形成新的关系,其关系模式不变,但其中的元组是原关系的一个子集。答案选择A选项。53.在数据库设计中,描述数据间内在语义联系得到E-R图的过程属于()。A、逻辑设计阶段B、需求分析阶段C、概念设计阶段D、物理设计阶段答案:C解析:数据库设计的需求分析阶段是数据库设计的第一阶段,这一阶段收集到的基础数据和一组数据流图是下一步设计概念结构的基础。数据库概念设计的目的是分析数据间内在的语义关联,在此基础上建立一个数据的抽象模型。数据库的逻辑设计主要工作是将E-R图转换成指定的关系数据库中的关系模式。数据库物理设计的主要目标是对数据库内部物理结构作调整并选择合理的存取路径,以提供数据库访问速度及有效利用存储空间。答案选择C选项。54.下面描述不属于软件特点的是()。A、软件是一种逻辑实体,具有抽象性B、软件在使用中不存在磨损、老化问题C、软件复杂性高D、软件使用不涉及知识产权答案:D解析:软件具有以下特点:①软件是一种逻辑实体,具有抽象性;②软件没有明显的制作过程;③软件在使用期间不存在磨损、老化问题;④软件对硬件和环境具有依赖性;⑤软件复杂性高,成本昂贵;⑥软件开发涉及诸多的社会因素,如知识产权等。答案选择D选项。55.有以下程序#includemain(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",c);}执行后的输出结果是()。A、4B、2C、1D、3答案:D解析:本题中*p=*p1*(*p2)=a*b=3,也就是将指针p所指存储空间的值改为3,即c改为3。答案选择D选项。56.程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);输出结果是()。A、123.141593B、123.141493C、12,3.141593D、123.1415930答案:A解析:输出的x与y间没有空格,“%8.6f”代表总共8位宽度,包括小数点,小数点后有6位小数。答案选择A选项。57.下列关于算法复杂度叙述正确的是()。A、最坏情况下的时间复杂度一定高于平均情况的时间复杂度B、时间复杂度与所用的计算工具无关C、对同一个问题,采用不同的算法,则它们的时间复杂度是相同的D、时间复杂度与采用的算法描述语言有关答案:B解析:A项错误,最坏情况下的时间复杂度有可能与平均情况的时间复杂度相同;C项错误,对同一个问题,不同的算法时间复杂度有时可能差距很大;D项错误,算法的时间复杂度与实现算法的描述语言、运行环境无关,算法的时间复杂度是对算法执行时所花时间的度量。答案选择B选项。58.若变量已正确定义,有以下程序段:inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是()。A、程序段有语法错误B、3,5,3C、3,5,5D、3,5,7答案:B解析:a=3,b=5,因此a>b条件不成立,所以不执行a=b。然后c=a=3。此时“c!=a”条件不成立,不执行“c=b;”语句。结果为a=3,b=5,c=3。答案选择B选项。59.有以下程序#includemain(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是()。A、852B、963C、741D、875421答案:A解析:该程序的运行过程是y从9开始自减,每次判定y是否能被3整除,若是,则输出--y后的值,能被3整除的y值分别为9、6、3,对应输出8、5、2,所以答案选择A选项。60.有以下程序:#includemain(){inti=1,k=0;for(;i<6;){switch(i%3){case0:k++;case1:k++;break;case2:k++;continue;}i+=1;}printf("%d\n",k);}程序的运行情况是()。A、形成无限循环B、输出6C、输出5D、输出4答案:A解析:本题执行过程为:i=1,k=0,i<6成立,执行for循环:i%3=1,匹配case1,k=1,退出switch,i=2;i<6成立,执行for循环:i%3=2,匹配case2,k=2,执行continue,退出switch,且不执行i+=1,i=2不变,i<6成立,执行下一次for循环,以后的循环情况完全一致,i=2不会改变,形成无限循环。答案选择A选项。61.C语言程序中,运算对象必须是整型数的运算符是()。A、&&B、/C、%D、*答案:C解析:模运算中不能出现浮点数,运算对象只能是整数。答案选择C选项。62.程序调试的任务是()。A、设计测试用例B、验证程序的正确性C、发现程序中的错误D、诊断和改正程序中的错误答案:D解析:软件测试的目的是尽可能多的发现错误。程序调试基于软件测试时发现的错误,其任务是诊断和改正程序中的错误。答案选择D选项。63.为了使模块尽可能独立,要求()。A、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C、模块的内聚程度要尽量低,且各模块间的偶合程度要尽量弱D、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强答案:B解析:系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。答案选择B选项。64.以下定义语句中正确的是()。A、floata=1,*b=&a,*c=&b;B、inta=b=0;C、harA=65+1,b='b';D、oublea=0.0;b=1.1;答案:C解析:A项错误,b是指针变量,*c=&b表示将一个二级指针赋值给一个一级指针,应该为*c=b或者**c=&b;B项错误,变量定义的时候不能用连续用等号,等号在定义是初始化的一种;D项错误,变量前为分号“;”表示前面的语句定义完毕,变量b的定义没有指明变量类型。答案选择C选项。65.有以下程序:#includemain(){inta=7;while(a--);printf("%d\n",a);}程序运行后的输出结果是()。A、-1B、0C、1D、7答案:A解析:“++”和“—”运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,再进行加一或减一操作。程序中执行a--,直到while判断为0时才跳出循环,执行下条语句,即a为0时再执行a--,此时跳出while循环,最终输出的结果为-1。答案选择A选项。66.下列关系模型中,术语解析不正确的是()。A、记录,满足一定规范化要求的二维表,也称关系B、字段,二维表中的一列C、数据项,也称为分量,是每个记录中的一个字段的值D、字段的值域,字段的取值范围,也称为属性域答案:A解析:表中的每一行称为一个记录,也称元组。答案选择A选项。67.深度为7的二叉树共有127个结点,则下列说法中错误的是()。A、该二叉树有一个度为1的结点B、该二叉树是满二叉树C、该二叉树是完全二叉树D、该二叉树有64个叶子结点答案:A解析:深度为7的二叉树,前6层共有结点个数为26-1=63,则第7层有127-63=64个结点,即第7层结点数达到最大值,故此二叉树为满二叉树,也是完全二叉树,该二叉树没有度为1的结点,有64个叶子结点。答案选择A选项。68.在三级模式之间引入两层映象,其主要功能之一是()。A、使数据与程序具有较高的独立性B、使系统具有较高的通道能力C、保持数据与程序的一致性D、提高存储空间的利用率答案:A解析:数据库管理系统在数据库的三级模式之间提供了两层映象,包括:①外模式/模式映射,当模式发生改变时,只要改变其映射,就可以使外模式保持不变,保证了逻辑独立性;②模式/内模式映射,当数据的存储结构发生变化时,只需改变模式/内模式映射,就能保持模式不变,保证了物理独立性。答案选择A选项。69.下面描述中,不属于软件危机表现的是()。A、软件过程不规范B、软件开发生产率低C、软件质量难以控制D、软件成本不断提高答案:A解析:软件的危机表现包括:①软件需求的增长得不到满足,用户对系统不满意的情况经常发生;②软件开发成本和进度无法控制;③软件质量难以保证;④软件不可维护或维护程度非常低;⑤软件的成本不断提高;⑥软件开发的生产效率的提高赶不上硬件的发展、生产率等问题。答案选择A选项。70.在黑盒测试方式中,设计测试用例的主要根据是()。A、程序外部功能B、程序内部逻辑C、程序数据结构D、程序流程图答案:A解析:黑盒测试也称功能测试或数据驱动测试,完全不考虑程序内部逻辑结构和具体代码,把程序看作是一个不能打开的黑盒子,依据软件需求规格说明书,检查程序的功能是否符合它的功能说明,主要针对软件界面和软件功能进行测试。答案选择A选项。71.某个工厂有若干个仓库,每个仓库存放有不同的零件,相同零件可能放在不同的仓库中。则实体仓库和零件间的联系是()。A、多对多B、一对多C、多对一D、一对一答案:A解析:实体集之间通过联系来建立联接关系包括:①一对一联系(1:1);②一对多联系(1:m);③多对多联系(m:n)。每个仓库存放有不同的零件,相同零件可能放在不同的仓库中,所以实体仓库和零件间的联系是多对多。答案选择A选项。72.下面不属于软件需求分析阶段工作的是()。A、需求获取B、需求计划C、需求分析D、需求评审答案:B解析:需求分析阶段的工作包括:①需求获取;②需求分析;③编写需求规格说明书;④需求评审。答案选择B选项。73.有以下程序#includeintfun(inta,intb){returna+b;}main(){intx=6,y=7,z=8,r;r=fun(fun(x,y),z--);printf("%d\n",r);}程序运行后的输出结果是()。A、15B、21C、20D、31答案:B解析:函数的嵌套调用,fun函数的作用是计算两个整数的和,r=fun(fun(x,y),z--)等价于:temp=fun(x,y),r=fun(temp,z--),则temp=fun(6,7)=13,然后r=fun(13,8)=21,最后执行z--,得到z=7。答案选择B选项。74.有如下程序:#includemain(){inti,data;scanf("%d",&data);for(i=0;i<5;i++){if(i<data)continue;printf("%d,",i);}printf("\n");}程序运行时,从键盘输入:3<回车>后,程序输出结果为()。A、3,4,B、1,2,3,4,C、0,1,2,3,4,5,D、0,1,2,答案:A解析:continue语句只能用在循环结构中,其作用是结束本次循环,即不再执行循环体中continue语句之后的语句,而是立即转入对循环条件的判断与执行。本题执行过程为:输入3,则data=3;执行for循环,i=0,if条件成立,结束本次循环,不输出i值,执行下一次循环;直到i>=3,if条件不成立,依次输出i值3,4,;直到i=5退出for循环。答案选择A选项。75.有以下程序:#includemain(){intA=0,B=0,C=0;C=(A-=A-5);(A=B,B+=4);printf("%d,%d,%d\n",A,B,C);}程序运行后输出的结果是()。A、0,4,5B、4,4,5C、4,4,4D、0,0,0答案:A解析:C语言中可以将多条语句放在同一行,用“;”隔开。赋值运算和逗号运算都是从左到右结合。首先执行A-=A-5,即A=A-(A-5),得A的值为5,然后执行C=(A-=A-5),即将A的值5赋给变量C,使得C的值也为5。然后执行下句逗号表达式中的A=B,把B的值0赋给A,此时A的值为0,然后执行B=B+4,使得B的值为4,最后打印输出。答案选择A选项。76.在软件开发中,需求分析阶段产生的主要文档是()。A、软件集成测试计划B、软件详细设计说明书C、用户手册D、软件需求规格说明书答案:D解析:A项,测试说明书是软件测试阶段生成的;B项,软件详细设计说明书是设计阶段生成的;C项,用户手册是软件发布时随软件一同交付给用户的;D项,需求分析阶段只能生成需求分析规格说明书。答案选择D选项。77.以下不能用于实型数据的运算符是()。A、%B、/C、*D、+答案:A解析:“%”符号两边必须是整数,答案选择A选项。78.具有3个结点的二叉树有()。A、2种形态B、4种形态C、7种形态D、5种形态答案:D解析:具有3个结点的二叉树有以下几种形态:79.下列关于栈叙述正确的是()。A、栈顶元素最先能被删除B、栈顶元素最后才能被删除C、栈底元素永远不能被删除D、栈底元素最先能被删除答案:A解析:栈是先进后出的数据结构,因此栈顶元素最后入栈却最先被删除,栈底元素最先入栈却最后被删除。答案选择A选项。80.以下叙述中正确的是()。A、在对指针进行加、减算术运算时,数字1表示1个存储单元的长度B、如果p是指针变量,则*p表示变量p的地址值C、如果p是指针变量,则&p是不合法的表达式D、如果p是指针变量,则*p+1和*(p+1)的效果是一样的答案:A解析:A项正确,在对指针进行加、减运算时,数字“1”不再代表十进制整数“1”,而是指1个存储单元长度。B项错误,*p表示p的值;C项错误,&p表示变量p的地址;D项错误,*p+1是先取p的值,然后执行+1操作,*(p+1)是先对指针移动1个存储空间,然后取值。答案选择A选项。81.有三个关系R、S和T如下:则由关系R和S得到关系T的操作是()。A、自然连接B、交C、除D、并答案:C解析:A项,自然连接的条件是两关系间有公共域,通过公共域的相等值进行连接,R与S的公共域为A和B;B项,R与S进行交运算后得到的关系是由既在R内又在S内的元素组成的,显然T不在S内;C项,R与S除运算后的域由R中不出现在S中的域组成;D项,R与S进行并运算得到的关系由属于R或属于S的元组组成。答案选择C选项。82.某二叉树的中序遍历为DCBAEFG,后序遍历为DCBGFEA,则该二叉树的深度(根结点在第1层)为()。A、5B、4C、3D、2答案:B解析:定义一棵树的根结点所在的层次为1,其他结点所在的层次等于它的父结点所在的层次加1,树的最大层次称为树的深度。本题中,后序遍历为DCBGFEA,所以A为根结点;中序遍历为DCBAEFG,可知DCB为左子树结点,EFG为右子树结点。同理B为C父结点,C为D父结点,E为F根结点,F为G根结点。所以二叉树深度为4层。答案选择B选项。83.有如下程序:#includemain(){inta=0,b=1;if(++a==b++)printf("T");elseprintf("F");printf("a=%d,b=%d\n",a,b);printf("\n");}程序运行后的输出结果是()。A、Ta=0,b=1B、Fa=1,b=2C、Ta=1,b=2D、Fa=0,b=2答案:C解析:程序执行过程为:判断++a==b++是否成立,++a前置运算先加1,则运算符==左边表达式值为1,a=1,b++后置运算先取值,则==右边表达式值我1,b=2,即是判断1==1,成立,输出T,输出a=1,b=2。答案选择C选项。84.以下选项中正确的定义语句是()。A、doublea;b;B、doublea=b=7;C、doublea=7,b=7;D、ouble,a,b;答案:C解析:同一类型变量的定义时,不同变量之间需要用“,”分隔,选项A错误;定义变量时初始化赋值不能用等号连接,选项B错误;变量类型说明后面不能用逗号,而是用空格分离,选项D错误。答案选择C选项。85.设有定义:inta;floatb;执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876543.0,则a和b的值分别是()。A、87和6.0B、876和543.0C、87和543.0D、76和543.0答案:A解析:scanf函数的一般形式为:scanf(格式控制,地址表列);。其中,“格式控制”是用双引号括起来的字符串,也称“转换控制字符串”,它包括两种信息:①格式说明,由“%”和格式字符组成;②普通字符,即需要原样输入的字符。“地址表列”是需要接收输入数据的一系列变量的地址。本题中的“格式控制”是“%2d%f”,其中%2d的意思是要输入一个整数,但该整数最宽只占2个字符,而%f是要输入一个浮点数。而题目要求输入的是876和543.0,所以scanf函数将87赋给a,6赋给b。答案选择A选项。86.下列关于线性链表的叙述中,正确的是()。A、各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B、各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C、进行插入与删除时,不需要移动表中的元素D、以上说法均不正确答案:C解析:线性表的链式存储结构称为线性链表。线性链表的存储空间可以不连续,其存储顺序和逻辑顺序也不一定一致。线性链表一般用结点描述:结点=数据域+指针域。进行插入和删除时,只需改变指针的指向,而不需要移动表中元素。答案选择C选项。87.下面属于字符类的实例是()。A、'518'B、"5"C、'nm'D、'\n'答案:D解析:字符实例的一般形式是用一对单引号括起来的一个字符,包括ASCII码中的一些控制字符,如D项,'\n'表示换行符。AC两项错误,单引号中不能有多个字符;B项错误,"5"为字符串,不是字符类实例。答案选择D选项。88.下列叙述中正确的是()。A、所谓有序表是指在顺序存储空间内连续存放的元素序列B、有序表只能顺序存储在连续的存储空间内C、有序表可以用链接存储方式存储在不连续的存储空间内D、任何存储方式的有序表均能采用二分法进行查找答案:C解析:“有序”是指线性表中的元素按照升序或降序(允许相邻元素相同)的方式排列。有序是一个逻辑概念,与物理存储无关。二分法查找时涉及下标运算,要求有序表必须顺序存储。答案选择C选项。89.以下叙述正确的是()。A、只使用三种基本结构即可解决任何复杂问题B、C语言程序并不是必须要定义main()函数C、只要程序包含了任意一种基本结构,就肯定是结构化程序D、程序中的语法错误只能在运行时才能显现答案:A解析:A项正确,程序设计语言仅仅使用顺序、选择和循环三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。B项错误,C语言程序必须要定义main()函数;C项错误,结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,而不是说包含了三种基本结构就是结构化程序;D项错误,程序中的语法错误在编译时能显现。答案选择A选项。90.软件(程序)调试的任务是()。A、诊断和改正程序中的错误B、尽可能多地发现程序中的错误C、发现并改正程序中的所有错误D、确定程序中错误的性质答案:A解析:软件测试的目的是尽可能多的发现错误。程序调试基于软件测试时发现的错误,其任务是诊断和改正程序中的错误。答案选择A选项。91.设二叉树如下:则中序遍历为()。A、BDEGCFHB、DBGEAFHCC、DGEBHFCAD、ABCDEFGH答案:B解析:中序遍历,即访问根结点在访问左子树和访问右子树两者之间。根结点A在BDEG四个节点后面访问,CHF三个节点前面访问,很容易排除ACD选项,选B。另外,可以复习一下三种遍历方式的规则,本题中前序遍历为ABDEGCFH,中序遍历为DBGEAFHC,后序遍历为DGEBHFCA。答案选择B选项。92.下列选项中,不属于模块间耦合的是()。A、数据耦合B、标记耦合C、异构耦合D、公共耦合答案:C解析:按照耦合程度从强到弱分别是:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合和非直接耦合,没有异构耦合这种方式。答案选择C选项。93.以下选项中,能表示逻辑值“假”的是()。A、1B、0.000001C、0D、100.0答案:C解析:在C语言中,没有专门的“逻辑值”,而是用非0表示“真”,用0表示“假”。答案选择C选项。94.有以下函数:#includevoidexch(intt[]){t[0]=t[5];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%d\n",x[i]);}程序运行后的输出结果是()。A、246810B、13579C、12345D、678910答案:D解析:函数exch的作用就是把数组某个元素的值变为这个元素位置加5后对应的元素值,所以执行完之后输出数组x的前五个元素的值,其实就是数组x的后五个元素的值,答案选择D选项。95.有以下程序:#includemain(){intsum=0,x=5;do{sum+=x;}while(!--x);printf("%d\n",sum);}程序的运行结果是()。A、0B、5C、14D、15答案:B解析:do-while循环,先执行循环体sum+=x,则sum=sum+x=0+5=5,再执行while中的表达式,结果为0,退出循环,所以运行结果是5。答案选择B选项。96.关于C语言的变量名,以下叙述正确的是()。A、变量名不可以与关键字同名B、变量名不可以与预定义标识符同名C、变量名必须以字母开头D、变量名是没有长度限制的答案:A解析:合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头。关键字是指被C语言保留的,不能用作其他用途的标识符,它们在程序中都代表着固定的含义,用户不可重新定义,A项正确、BC两项错误。变量名没有长度限制,但不可超过编译器可以辨识的范围,D项错误。答案选择A选项。97.以下叙述中错误的是()。A、非零的数值型常量有正值和负值的区分B、常量是在程序运行过程中值不能被改变的量C、定义符号常量必须用类型名来设定常量的类型D、用符号名表示的常量叫符号常量答案:C解析:在C语言程序中,可以用一个符号名来代表一个常量,称为符号常量,符号常量在定义是不需要类型,其本身就能表达其类型。答案选择C选项。98.软件工程的三要素是()。A、方法、工具和过程B、建模、方法和工具C、建模、方法和过程D、定义、方法和过程答案:A解析:软件工程的三要素是:①方法;②工具;③过程。其中方法为软件开发提供了“如何做”的技术;工具为软件工程方法提供了自动或半自动的支撑环境;过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。答案选择A选项。99.下列数据结构中,属于非线性结构的是()。A、循环队列B、带链队列C、二叉树D、带链栈答案:C解析:线性结构要满足两个条件:①有且仅有一个根结点;②每个结点最多有一个前驱,也最多有一个后继。栈和队列均满足这两个条件,属于线性结构;循环队列是一个头结点和尾结点互为前驱结点和后继结点的特殊的队列,属于线性结构;带链队列、带链栈都是用链表形式来实现的,分别满足队列和栈的条件,只是存储结构不连续,属于线性结构。二叉树除了叶子结点外,每个结点都可以有两个后继结点,属于非线性结构。答案选择C选项。100.以下数据结构中,属于非线性数据结构的是()。A、栈B、线性表C、队列D、二叉树答案:D解析:线性结构必须满足下列两个条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。如果一个数据结构不是线性结构,则称之为非线性结构。二叉树中的结点后继不惟一,属于非线性结构,栈和队列都是操作受限的线性表,是线性结构。答案选择D选项。101.设变量均已正确定义,若要通过“scanf("%d%c%d%c",&a1,&c1,&a2,&c2);”语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:u代表空格字符,代表回车)()。A、10X20YB、10uX20uYC、10uX20uYD、10uXu20uY答案:A解析:因为空格和回车也是字符变量,所以在输入X和Y时,它们的前面不能有空格和回车,否则将取到空格或者回车,而非X和Y;int类型不会取到空格和回车,所以10和20前面可以有空格和回车。答案选择A选项。102.下面属于应用软件的是()。A、学生成绩管理系统B、UNIX操作系统C、汇编程序D、编译程序答案:A解析:应用软件是为解决特定领域的应用而开发的软件,如事务处理软件,工程与科学计算软件,学生成绩管理系统等应用性质不同的各种软件。系统软件是计算机管理自身资源,提高计算机使用效率并服务于其他程序的软件,如操作系统,编译程序,汇编程序,数据库管理系统等。支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件,如需求分析工具软件,设计工具软件,编码工具软件,测试工具软件,维护工具软件等。答案选择A选项。103.以下选项中关于程序模块化的叙述错误的是()。A、把程序分成若干相对独立的模块,可便于编码和调试B、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序答案:C解析:把一个大程序分解成若干相对独立的子程序,大大提高了程序编制的效率。软件编制人员在进行程序设计时,首先应当集中考虑主程序中的算法,写出主程序后再动手逐步完成子程序的调用。对于这些子程序也可用调试主程序的同样方法逐步完成其下一层,就是自顶向下、逐步细化、模块化的程序设计方法。答案选择C选项。104.下列关于栈的叙述正确的是()。A、栈按“先进先出”组织数据B、栈按“先进后出”组织数据C、只能在栈底插入数据D、不能删除数据答案:B解析:栈是只允许在栈顶进行插入和删除运算的线性表,按“先进后出”组织数据。答案选择B选项。105.若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是()。A、sqrt(fabs(pow(n,x)+exp(x)))B、sqrt(fabs(pow(n,x)+pow(x,e)))C、sqrt(abs(n^x+e^x))D、sqrt(fabs(pow(x,n)+exp(x)))答案:A解析:math.h是数学运算库函数的头文件名:doublesqrt(double):平方根函数;doublefabs(double):绝对值函数;doublepow(doublex,doubley):返回xy;exp(doublex):返回ex。答案选择A选项。106.在结构化方法中,软件功能分解属于下列软件开发中的()阶段。A、详细设计B、需求分析C、总体设计D、编程调试答案:C解析:总体设计过程通常由两个主要阶段组成:①系统设计,确定系统的具体实现方案;②结构设计,确定软46件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。答案选择C选项。107.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属于应用软件的是()。A、学生成绩管理系统B、C语言编译程序C、UNIX操作系统D、数据库管理系统答案:A解析:应用软件是为解决特定领域的应用而开发的软件,如事务处理软件,工程与科学计算软件,学生成绩管理系统、教务管理系统、浏览器、编辑软件等应用性质不同的各种软件。系统软件是计算机管理自身资源,提高计算机使用效率并服务于其他程序的软件,如操作系统,编译程序,汇编程序,数据库管理系统等。支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件,包括辅助和支持开发和维护应用软件的工具软件,如需求分析工具软件,设计工具软件,编码工具软件,测试工具软件,维护工具软件等。答案选择A选项。108.以下选项中非法的字符常量是()。A、'\102'B、'\65'C、'\xff'D、'\019'答案:D解析:字符常量有两种表示方法:一种是用该字符的图形符号;二是用字符的ASCII码表示,即用反斜符(\)开头,后跟字符的ASCII码,这种方法也称为转义序列表示法,具体方法有两种,一种是用字符的八进制ASCII码,表示为\odd,这里ddd是八进制值(o可以省略)。另一种使用字符的十六进制ASCII码值,表示为\0xhh或0Xhh,这里hh是两位十六进制值。D项,'\019'使用的是八进制表示,八进制表示时,每一位的可用数值范围是0~7不应该出现9,所以错误。答案选择D选项。109.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。A、x=y==5;B、x=n%2.5;C、x+n=i;D、x=5=4+1;答案:A解析:A项正确,y==5返回0或者1,然后赋值给x。B项错误,浮点数不能参与模运算;C项错误,赋值运算符左边只能是单一变量,x+n是右值,不能给它赋值;D项错误,5是常量,不能被赋值。答案选择A选项。110.计算机软件包括()。A、算法和数据B、程序和数据C、程序和文档D、程序、数据及相关文档答案:D解析:计算机软件由两部分组成:①机器可执行的程序和数据;②机器不可执行的,与软件开发、运行、维护、使用等有关的文档。答案选择D选项。111.有以下程序#include#includemain(){inta=3;printf("%d\n",(a+=a-=a*a));}程序运行后的输出结果是()。A、-12B、9C、0D、3答案:A解析:C语言中,表达式从右向左计算。a+=a-=a*a;可以写成a-=a*a;a+=a;而a-=a*a等价于a=a-(a*a)=3-(3*3)=-6;a+=a等价于a=a+a=(-6)+(-6)=-12。答案选择A选项。112.下面的函数调用语句中func函数的实参个数是()。func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,V8)));A、3B、4C、5D、8答案:A解析:函数在被调用时,传入的实参以逗号分隔,实参可以是一个变量,也可以是一个表达式。在本题中,func()函数传入的参数是被逗号分隔的3个表达式,它们分别是f2(v1,v2)、(v3,v4,v5)和(v6,max(v7,v8)),所以它的实参个数是3。其中,f2(v1,v2)是一个函数调用;(v3,v4,v5)是一个逗号表达式;(v6,max(v7,v8))也是一个逗号表达式,它里面还包含了一个函数调用,但它仍只代表1个实参。答案选择A选项。113.在数据库系统中,考虑数据库实现的数据模型是()。A、概念数据模型B、逻辑数据模型C、物理数据模型D、关系数据模型答案:B解析:数据模型按照不同的应用层次分为:①面向客观世界、面向用户的概念数据模型,它与具体的数据库管理系统和具体的计算机平台无关;②面向数据库系统的逻辑数据模型,着重于在数据库系统一级的实现;③面向计算机物理实现的物理数据模型,它给出了数据模型在计算机物理结构上的表示。答案选择B选项。114.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为()。A、219B、221C、229D、231答案:A解析:任意二叉树中,度为0的叶子结点个数总比度为2的结点数多1,所以度为2的结点的个数为70-1=69。总结点数=70+80+69=219。答案选择A选项。115.以下选项中,合法的数值型常量是()。A、3.1415B、"A"C、092D、0xDH答案:A解析:数值型常量包括整型常量和实型常量。整型常量有三种:①十进制常量,用0~9表示,不能以0开头;②八进制常量,用0~7表示,必须用0开头;③十六进制常量,用0~9和A~F(a~f)表示,必须以0x或0X开头。实型常量:用带小数点的数字表示,其值有两种表达形式,分别为十进制小数形式和指数形式。3.1415为实型常量,A项正确。"A"为长度为1的字符串常量,B项错误。092按照格式来说是八进制整型常量,但是八进制不会出现9,C项错误。0xDH按照格式说是十六进制整型常量,但是不应该出现H,D项错误。答案选择A选项。116.设数据元素的集合D={1,2,3,4,5},则满足下列关系R的数据结构中为线性结构的是()。A、R={(1,2),(3,4),(5,1),(1,2)}B、R={(1,3),(4,1),(3,2),(5,4)}C、R={(1,2),(2,3),(4,5),(2,3)}D、R={(1,3),(2,4),(3,5),(1,2)}答案:B解析:一个非空的数据结构如果满足以下两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件,称为线性结构。不同时满足以上两个条件的数据结构就称为非线性结构。A选项,5是1的前件,1是2的前件,3是4的前件,则关系R中含有两个结构,即34和512,其中3和5均为根结点,故A项错误。B选项根结点为5,排列顺序为54132,B选项正确。C选项有两个根结点1和4,故错误。D选项有两个根结点1和2,故错误。答案选择B选项。117.堆排序最坏情况下的时间复杂度为()。A、O(n1.5)B、O(nlog2n)C、O(n(n-1)/2)D、O(log2n)答案:B解析:堆排序是指利用堆积树这种数据结构所设计的一种排序算法,属于选择排序。在对长度为n的线性表排序时,最坏情况下,冒泡排序、快速排序、直接插入排序的时间复杂度均为O(n2),而堆排序时间复杂度为O(nlog2n),复杂度最小。答案选择B选项。118.冒泡排序在最坏情况下的比较次数是()。A、n(n+1)/2B、nlog2nC、n(n-1)/2D、n/2答案:C解析:对n个节点的线性表采用冒泡排序,冒泡排序的外循环最多执行n-1遍。第一遍最多执行n-1次比较,第二遍最多执行n-2次比较,以此类推,第n-1遍最多执行1次比较。因此,整个排序过程最多执行n(n-1)/2次比较。答案选择C选项。119.已知字符A的ASCII代码值是65,字符变量c1的值是A,c2的值是D。则执行语句printf("%d,%d",c1,c2-2);的输出结果是()。A、

A,68B、65,66C、

A,BD、65,68答案:B解析:在C语言中,字符型数据在内存中的存储形式是ASCII码值。当需要以整型格式输出字符时,输出的也是ASCII码值。字符'A'和'D'的ASCII码值分别为65和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论