41期C语言新增选择题6套_第1页
41期C语言新增选择题6套_第2页
41期C语言新增选择题6套_第3页
41期C语言新增选择题6套_第4页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

第一套.下列叙述中正确的是A)所谓算法就是计算方法B)程序可以作为算法的ー种描述方法0算法设计只需考虑得到计算结果D)算法设计可以忽略算法的运算时间参考答案:B【解析】算法是指对解题方案的准确而完整的描述,算法不等于数学上的计算方法,也不等于程序,A选项错误。算法设计需要考虑可行性、确定性、有穷性与足够的情报,不能只考虑计算结果,C选项错误。算法设计有穷性是指操作步骤有限且能在有限时间内完成,如果一个算法执行耗费的时间太长,即使最终得出了正确结果,也是没有意义的,D选项错误。算法在实现时需要用具体的程序设计语言描述,所以程序可以作为算法的ー种描述方法,B选项正确。.下列各序列中不是堆的是(91,85,53,36,47,30,24,12)(91,85,53,47,36,30,24,12)〇(47,91,53,85,30,12,24,36)D)(91,85,53,47,30,12,24,36)参考答案:C【解析】若有n个元素的序列,将元素按顺序组成―棵完全ニ叉树,当且仅当满足下列条件时称为堆:大根堆,所有结点的值大于或等于左右子结点的值:小根堆,所有结点的值小于或等于左右子结点的值。A、B、D选项属于大根堆,C选项由于47〈91,判断属于小根堆,但91>85,不满足条件,不是堆,故正确答案为C选项。.深度为5的完全ニ叉树的结点数不可能是1516017D)18参考答案:A【解析】在树结构中,定义ー棵树的根结点所在的层次为1,其他结点所在的层次等于它的父结点所在的层次加1,树的最大层次称为树的深度。完全ニ叉树指除最后ー层外,每ー层上的结点数均达到最大值,在最后ー层上只缺少右边的若干结点。深度为5的ニ叉树,结点个数最多为ズー1=31,最少为2'=16,不可能是15,故正确答案为A选项。设ニ叉树如下:则前序序列为ABDEGCFHDBGEAFHCDGEBHFCAABCDEFGH参考答案:A【解析】ニ叉树遍历可以分为3种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。本题中前序遍历为ABDEGCFH,中序遍历为DBGEAFHC,后序遍历为DGEBHFCA,故A选项正确。.下面描述不属于软件特点的是A)软件是一种逻辑实体,具有抽象性B)软件在使用屮不存在磨损、老化问题0软件复杂性高D)软件使用不涉及知识产权参考答案:D【解析】软件具有以下特点:软件是一种逻辑实体,具有抽象性;软件没有明显的制作过程;软件在使用期间不存在磨损、老化问题;对硬件和环境具有依赖性;软件复杂性高,成本昂贵;软件开发涉及诸多的社会因素,如知识产权等。故选项D正确。.卜.面对类ー对象主要特征描述正确的是A)对象唯一性B)对象无关性0类的单一性D)类的依赖性参考答案:A【解析】对象的基本特点是:标识唯一性、分类性、多态性、封装性、模块独立性好。类是具有共同属性、共同方法的对象的集合,是关于对象的抽象描述,反映属于该对象类型的所有对象的性质。对象具有的性质,类也具有。故A选项正确。下面対类ー对象主要特征描述正确的是A)对象唯一性B)对象无关性0类的单一性D)类的依赖性参考答案:A【解析】对象的基本特点是:标识唯一性、分类性、多态性、封装性、模块独立性好。类是具有共同属性、共同方法的对象的集合,是关于对象的抽象描述,反映属于该对象类型的所有对象的性质。对象具有的性质,类也具有。故A选项正确。.在数据库中,数据模型包括数据结构、数据操作和A)数据约束B)数据类型0关系运算D)查询参考答案:A【解析】数据模型通常由数据结构、数据操作及数据约束3部分组成。故A选项正确。.一个运动队有多个队员,•个队员仅属于•个运动队,・个队・般都有・个教练,则实体运动队和队员的联系是)ー对多)ー对ー0多对ーD)多对多参考答案:A【解析】一般来说,实体集之间必须通过联系来建立联接关系,分为三类:ー对ー联系(1:1)、ー对多联系(l:m)、多对多联系(m:n)。实体运动队和队员的关系为1:m联系,故A选项正确。.设循环队列为Q(l:m),其初始状态为fronいrear二m。经过一系列入队与退队运算后,front=30,rear=10。现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为19200m-19D)m-20参考答案:D【解析】循环队列是队列的ー种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前ー个位置,因此,从排头指针front指向的后ー个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear二m,当front=30,rear=10时,队列中有m-30+10+l=mT9个元素,比较次数为m-20次,D选项正确。设循环队列为Q(l:m)»其初始状态为front二rcar=m。经过一系列入队与退队运算后,front=30,rear=10o现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为1920〇m-19D)m-20参考答案:D【解析】循环队列是队列的・种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前ー个位置,因此,从排头指针front指向的后ー个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素,队列初始状态为front=rear=m,当front=30,rear=10时,队列中有m-30+10+l=mT9个元素,比较次数为m-20次,D选项正确。有两个关系R和T如下:ABABca12b4二c23d32ABa1b二c2■d3则由关系R得到关系T的操作是A)投影B)交0选择D)并参考答案:A【解析】用于查询的3个操作无法用传统的集合运算表示,引入的运算为投影运算、选择运算、笛卡尔积。常用的扩充运算有交、除、连接及自然连接等。投影,从关系模式中指定若干个属性组成新的关系,题目中从R中指定AB组成新的关系T,故A选项正确。选择,从关系中找出满足给定条件的元组的操作称为选择,即结果T应该包含R中全部属性,故C选项错误。假设,R与S经过某种关系得到T,则并:ロ1^是将5中的记录追加到R后面:交:RCIS结果是既属于R又属于S的记录组成的集合。上述两种操作中,关系R与S以及T要求有相同的结构,故B、D选项错误。.以下叙述正确的是A)计算机只接收由0和1代码组成的二进制指令或数据B)计算机只接收由0和1代码组成的十进制指令或数据0计算机可直接接收并运行C源程序D)计算机可直接接收并运行任意高级语言编写的源程序参考答案:A【解析】计算机认识自己的母语ー机器语言,即〇和1代码组成的二进制指令或数据,故A选项正确,B选项错误。C语言是ー种高级语言,计算机不能直接运行C源程序和高级语言编写的源程序,C和D选项错误。.以下叙述正确的是A)计算机只接收【と。和1代码组成的二进制指令或数据B)计算机只接收由。和1代码组成的卜进制指令或数据0计算机可直接接收并运行C源程序D)计算机可直接接收并运行任意高级语汽编写的源程序参考答案:A【解析】计算机认识自己的母语ー机器语言,即〇和1代码组成的二进制指令或数据,故A选项正确,B选项错误。C语言是ー种高级语言,计算机不能直接运行C源程序和高级语言编写的源程序,C和D选项错误。.若有定义:charc;intd:程序运行时输入:c=l,d=2く回车》,能把字符1输入给变量c、整数2输入给变量d的输入语句是scanf(*c=%dd=%d",&c,&d);scanf(*c=%cd=%d*,&c,&d);scanf("c=%d,d=%d",&c,&d);scanf(*c=%c,d=%d*,&c,&d);参考答案:D【解析】scanf()函数中,刎对应的参数是整数型地址,紀对应参数为char型地址,C,A选项错误;如果输入地址有多个,应该用逗号隔开,B选项错误,故答案为D选项。.以下选项中,与n=i++完全等价的表达式是n=i,i=i+ln+=i+li=i+l,n=in=++i参考答案:A【解析】运算符"++”放在变量后面时,表示变量先参与其他操作,再完成加1,故表达式n=i++运算顺序是先将i赋值给n,再将i+1赋值给i,因此答案为A选项。.设有定义:intn=1234;doublex=3.1415;则语句printf(*%3d,%1.3f\n*,n,x);的输出结果是1234,3.142123,3.14201234,3.141D)123,3.141参考答案:A【解析】函数printf()中,%md指输出带符号的十进制整数,给定最小宽度为m位,不足m位左端补空格,超过m位按实际位数输出,%.nf表示以小数形式输出实数,小数占n位,对应题冃,答案为A选项。.有以下程序^include<stdio.h>main(){inta,b;for(a=0;a<3;a++){scanf(*%d*,&b);switch(b){default:printf(*%d,*,++b);case1:printf(*%d,*,++b);case2:printf(*%d, ++b);执行时输入:123く回车》,则输出结果是2,2,3,4,4,4,2,3,4,02,3,3,4,5,6,D)2,3,4,3,4,4,参考答案:c【解析】程序在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,执行对应的case语句,之后不再进行判断,继续执行此case后面的语句,并且各个case和default的出现次序不影响执行结果,即题目中的default放在开始位置,与放在最后是ー样的结果;运算符"++”放在变量前面时,表示将变量+1,再参与其他操作。本题,第一次循环输入b=l,执行case1,输出2,再执行case2,输出3,第二次循环输入b=2,执行case2输出3,第三次循环,输入b=3,没有case与其对应,故执行default输出b=4,接着执行case1:»输出5,再执行case2»输出b=6,至此退出for语句。因此,最后输出为2,3,3,4,5,6,答案为C选项。17.设变量m为float类型,变量n为int类型,则以下能实现将m中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A)m=(m*100+0.5)/100.0n=m*100+0.5,m=n/100.0n=m/100+0.5,m=n*100.0m^m*100+0.5/100.0参考答案:B【解析】n是整型数,将浮点数赋值给整型变量需要丢弃小数位,所以若要保留m的小数点后两位,需要将m乘以100,若要将m小数点后第三位四舍五入,再需要加上0.5,然后赋给整型变量,所以n=m*100+0.5,接下来需要将m还原成有两位小数的浮点数,除号两边操作数有一个是浮点数时,结果为浮点数,将n/100.0赋值给m,得到m的值含两位小数,故答案为B选项。18.有以下程序#include<stdio.h>main(){inta=1,b=1;for(;a-;)b-;printf(*%d,%d\n*,a,b);程序运行后的输出结果是-1,00,00-1,-1D)1,1参考答案:A【解析】题干中语句for(;a-;),条件a-T=0先判断a!=0成立,则进入循环,然后a减1,起始a=l不等于。,满足条件进入for循环,然后a自减1为0,b自减1为0,继续循环;再跳回for语句时,a!=0不成立,不会进入循环,但是a也要自减1为ー1,循环结束:因此最后输出a=T,b=0.因此答案为A选项。19.若有定义:chars[30]={0};运行时输入:Thisisastring.く回车)则以下不能正确读入整个字符串:Thisisastring.到字符数组s屮的语句组是i=0;while((c二gelchar())!='\n')s[i++]=c;gets(s);for(i=0;(c=getchar0)!='\n';i++)s[i]=c;scanf(*%s*,s);参考答案:D【解析】在使用格式符"%s"进行字符串的输入时,空格和回车(Enter)会被读入,并且函数scanf以它们作为分隔符停止ー个字符串的输入,因此答案为D选项。.有如下程序^include<stdio.h>main(){inta=0,b=1;if(a++&&b++)printfCTRUE*);elseprintf("FALSE");printf("_0UT:a=%d,b=%d\n",a,b);程序运行后的输出结果是FALSE_OUT:a=l,b=lFALSE_0UT:a=0,b=2TRUE_0UT:a=l,b=2TRUE_0UT:a=0,b=l参考答案:A【解析】逻辑与运算符遵循"短路求值"策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,オ会求解右操作数,表达式(a++&&b++)中,左操作数a++的值为0,已经可以确定整个逻辑表达式的结果为〇,因此右操作数b++不再求解,进入else分支执行,a的值+1,b不变,因此答案为A选项。.有如下程序^include<stdio.h>main(){inti,data;scanf(*%d*,&data);for(i=0;i<5;i++)if(i<data)continue;printf(*%d-*,i);程序运行时,从键盘输入:3く回车)后,程序输出结果为3-41-2-3-0-1-2-0-1-2-3-参考答案:A【解析】从键盘输入3,即data=3,进入for语句,满足i<3时,运行continue语句只结束本次循环,而不是终止整个循环的执行,当i加到3时,if条件不满足,执行printf函数,输出3-,i再加到4,输出4-,i再加1等于5,退出for循环,程序运行后结果是:“3-4」。因此答案为A选项。.有以下程序^includeくstdio.h>main()(inta=0,b=1;if(++a==b++)printf(*1*);elseprintf("0”);printf("a=%d,b=%d\n",a,b);程序运行后的输出结果是la=0,b=l0a=l,b=2la=l,b=2D)0a=0,b=2参考答案:C【解析】运算符"++"放在变量后面时,表示先执行其他操作,再将变量+1,运算符"++"放在变量前面时,表示将变量+1,再参与其他操作。因此if(++a==b++)为真,输出1,再输出a,b,程序运行后的结果是:la=l,b=2。因此答案为C选项。.有如下程序段for(i=0;i<10;i++)if(i<=5)break;则循环结束后i的值为10510参考答案:B【解析】if(i<=5)break语句,表示如果i〈=5,执行break语句,跳出循环程序,起始i=0满足if语句,则循环结束后i值为0,因此答案为B选项。.设有定义:inta=0,b=l;,以下表达式中,会产生"短路”现象,致使变量b的值不变的是a++&&b++a++11++b++a&&b+++aII++b参考答案:A【解析】运算符"++"放在变量前面时,表示将变量+1,再参与其他操作,a++&&b++时,由于a值是。直接判定与运算结果为0,忽视b++的值,因此b值不发生改变,答案为A选项。.有如下程序段for(i=0;i<10;i++)if(i>5)break;则循环结束后i的值为D)6参考答案:D【解析】if(i>5)break;表示判断1值,如果大于5后,执行break语句,结束循环程序,这里i=6,循环结朿。因此答案为D选项。26.冇以下程序段intx,i;for(i=l;i<=100;i++){scanf&x);if(x<0)continue;printf(*%4d\n*»x);下面针对上述程序段的描述正确的是A)最多可以输出100个非负整数B)当xく0时结束整个循环0当x>=0时没有任何输出D)printf函数调用语句总是被跳过参考答案:A【解析】continue语句只结束本次循环,而不是终止整个循环的执行,因此B选项错误;当x>=0时,程序执行printf(猿4d\n",x)语句,因此排除C,D选项,答案为A选项。.关于地址和指针,以下说法正确的是A)通过强制类型转换可以将种类型的指针变量赋值给另•种类型的指针变量B)可以取ー个常数的地址赋值给同类型的指针变量〇可以取•个表达式的地址赋值给同类型的指针变量D)可以取ー个指针变量的地址赋值给基类型相同的指针变量参考答案:A【解析】常数的地址存储在内存的常量区,常量区存储的都是常量,值都是不可修改的,所以直接取常量的地址赋给指针变量没有任何意义,C语言也不允许这样做,编译会出错,B选项错误;表达式的值存储在临时变量中,内存中存在专门用来存储临时变量的区域,对这块地址进行操作也是没有意义的,C语言不允许这样做,编译会出错,C选项错误;可以取ー个指针变量的地址,但是指针变量的地址属于指针,只能赋值给指针类型的指针变量,D选项错误。故答案为A选项。.有以下程序#include<stdio.h>#defineN4voidfun(inta[][N])(inti;for(i=0;i<N;i++)a[0][i]+=a[N-l][N-l-i];}main(){intx[N][N]={{1,2,3,4),{5,6,7,8),{9,10,11,12},{13,14,15,16}},i;fun(x);for(i=0;i<N;i++)printf(*%d,*,x[i][i]);printf("M);程序运行后的输岀结果是4,7,10,13,1,6,11,16,017,6,11,16,D)5,13,21,29,参考答案:C【解析】N=4,fbr(i=O,i〈N,i++)printf(x[i][j]);此语句输出x[0][0],x⑴⑴,x[2][2],x[3][3]I其中只有x[〇][〇]的值在fun函数中发生改变,在fun函数中,当i=0时,x[0][0]=x[0][0]+x[3][3]=17,程序运行后的输出结果是:17.6.11.16。因此答案为C选项。.有以下程序#include<stdio.h>^defineN4voidfun(inta[][N]){inti;for(i=0;i<N;i++)a[0][i]+=a[N-l][N-l-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8),(9,10,11,12},{13,14,15,16}},i;fun(x);for(i=0;iくN;i++)printf(*%d,*,x[i][i]);printf(*\n*);程序运行后的输出结果是4,7,10,13,1,6,11,16,〇17,6,11,16,D)5,13,21,29,参考答案:C【解析】N=4,for(i=0,i<N,i++)printf(x[i][j]);此语句输出x[0][0],x⑴⑴,x[2][2],x[3][3],其中只有x[0][0]的值在fun函数中发生改变,在fun函数中,当i=0时,x⑼⑼=x[0K01+x⑶⑶=17,程序运行后的输出结果是:17.6.11.16。因此答案为C选项。.以下叙述正确的是A)不能在数组说明符的ー对方括号中使用表达式charcl,*c2,**c3,c4[2]:是C语言的合法语句0数组下标的最小值可以是负值D)若有数组定义intarray[5]:则语句printf(*%d*,array[l.23]);是合法的参考答案:B【解析】在B选项中,cl是字符型变量,C2是字符型指针变量,C3是指向字符型指针的指针变量,C4⑵是ー个ー维字符数组,这些都是C语言的合法语句,因此答案为B选项。.有以下程序^include<stdio.h>main(){inta=2,*ptr;ptr=&a;*ptr=8;a=(*ptr)++;printf(*%d,%d\n*,a,*ptr);程序运行后的输出结果是A)9,9B)8,902,4D)0,4参考答案:A【解析】题干中定义ー个指针变量ptr,再把a的地址值赋给ptr,此时a和・ptr代表同•内存单元屮的值,*ptr=8表示把a和・ptr的值修改为8,a=(*ptr)++表示把指针ptr对应地址单元里的值赋给a,再将ptr对应地址单元里的值加1,因此・(ptr)值为9,同时a也为9,因此答案为A选项。.有以下程序tfinclude<stdio.h>main(){inti,*ptr;intarray[4]={0,1};for(ptr二array,i二〇;i<3;i++,ptr++)(if(*ptr==0)putchar('#');elseputcharM*+*ptr);)printf(*\n*);}程序运行后的输出结果是A)M0#B)#F#0MMMD)#N#参考答案:D【解析】for语句中把array数组首地址值赋给ptr,ptr++表示每次执行完循环体后,ptr指向下ー数组元素,当指针指向值为〇时,输出#‘否则’M,再加上指针对应数组值进行输出,当・ptr=l时,'M,+1=,N*»结果输出为#N#,答案为D选项。.有以ド程序段:intm[2][3],(*p)[3];P=m;则以下对m数组元素的引用正确的是(p+1)[0]*(*(p+2)+l)0*(p[l]+l)D)p[l]+2参考答案:C【解析】数组元素a[i皿可表示为・(a[i]+j),因此,在定义数组m和指针变量p后,*(p[l]+D表示指向数组m田[1],因此答案为C选项。.有以下程序^include<stdio.h>char*a=you;char*b=*WclcomeyoutoBeijing!main(){char*p;p=b;while(*p!=*a)p++;printf(*%s\n*,p);)程序运行后的输出结果是youtoBeijing!toBeijing!WelcomeyoutoBeijing!Beijing!参考答案:A【解析】程序首先定义两个字符串,a,b指针分别指向这两个字符串首地址,再定义了一个指针P,把b指针指向的地址赋给了p指针后,判断p指针指向地址的内容是否和a指针指向地址的内容相等,如果不是,则移动指针p+1,当p指向・b字符串中的V时,和*a首地址元素相等,退出while语句,输出剩下字符串内容,程序运行后的输出结果是"YouToBeiJing!”答案为A选项。.有以下程序#include<stdio.h>voidf(intx[],intn){if(n>1){printf("%d,”,x[n-l]);f(x,n-1);printf(*%d,*,x[n-l]);)elseprintf(*%d,*,x[0]);}main(){intz[3]={1,2,3);f(z,3);printf(*\n*);)程序运行后的输出结果是3,1,3,3,2,1,2,3,0 1,2,3,1,2,3,D) 1,2,3,2,1,参考答案:B【解析】本题考查了函数的递归调用,在main函数中调用f(z,3)后,系统进入f()函数,随后进入if语句,输出x[2),再进入f()函数,输出x[l],再进入f函数,输出x[0],随后结束返回输出上ー个f()函数,输出x[n-l],程序运行后的结果是:3,2,1,2,3。答案为B选项。36.有以下程序^include<stdio.h>inta=2;intf(intk)staticintn;intm;m=n=0;n++;a++;m++;k++;returnn+m+a+k;}main()intk;for(k=0;k<2;k++)printf(飞d,”,f(k));printf〈Xn");}程序运行后的输出结果是A)6,8,B)6,9,06,6,D)6,7,参考答案:A【解析】static定义ー个静态分布变量,变量只会初始化一次,在for循环体内调用f()函数输出,f()函数首先是将当前n,m,a,k加1后进行累加返回主函数输出,第二次累加时,重新给m,n定义初始值为〇,因此,两次输出分别为6,8,答案为A选项。37.有以下程序#include<stdio.h>intsum(int*array,intlen)(if(len==1)returnarray[1];elsereturnarray[1]+sum(array+1,len-l);}main()(intarray[5]={0,9,1,2},res;res=sum(array,3);printf("%d\n",res);}程序运行后的输出结果是27118D)12参考答案:D【解析】main函数中先定义ー个数组array,调用sum(array,3)函数,形参array指向数组首地址,形参len的值为3,在sum函数中,array[l]指向数组中元素9,sum函数调用三次,完成功能是将数组array[l|+array[2]+array[3]累加后返还给输出,累加后的值为12。因此,答案为D选项。38.有以下程序^include<stdio.h>mainO{chars[10]="verygood",*ps=s;ps=too;s[4]=2;puts(ps);程序的运行结果是tooverygoodverygood参考答案:A【解析】程序中定义指针ps后,将数组S首地址赋给ps初始化后,再使指针PS指向字符串"too"的首地址,修改s[4](即字符g)不会改变ps的值,所以输出ps的结果是"too",答案为选项A。.以下叙述中错误的是A)函数中的形参属于局部变量B)在函数内部定义的变量只能在本函数范围内使用0在函数外部定义的变量在所有函数中都有效D)在不同的函数中可以使用相同名字的变量参考答案:C【解析】全局变量有效范围是从定义的位置开始到所在源文件的结束,在这区域内的函数オ可以调用,如果在定义函数之后,定义的变量,该变量不能被之前的函数访问所以C选项说法错误,答案为C选项。.有以下程序^include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat,"w+”);fprintf(fp,飞d\n",a[0]);for(i=l;i<6:i++){ rewind(fp);fprintf(fp,*%d\n*,a[i]);)rewind(fp);fscanf(fp,飞d”,&k);fclose(fp);printf("%d\n",k);程序运行后的输岀结果是621〇123456D)654321参考答案:A【解析】本题首先定义文件指针变量fp和一个数组a[],再打开ー个文件”data,dat”,随后先给文件写入数据a[0],由于rewind函数是将文件指针从当前位置重新指向文件开始位置,所以for循环依次将数组a中的数据写入文件开始位置,退出循环后,文件中的数据顺序为:654321,重新使指针指向文件开始位置,将此时fp指向的数据(即文件中第一个数据6)写入变量k中,关闭文件,输出k值,答案为A选项。第二套.下列叙述中正确的是A)循环队列是顺序存储结构B)循环队列是链式存储结构〇循环队列是非线性结构D)循环队列的插入运算不会发生溢出现象参考答案:A【解析】循环队列是队列的・种顺序存储结构.线性结构是n个数据元素构成的有限序列,除第一个元素外的每ー个元素,有且只有一个前件,除最后ー个元素外,有且只有一个后件。循环队列是线性结构。当需要插入的数据大于循环队列的存储长度,入队运算会覆盖前面的数据,发生溢出现象。故A选项正确。.下列叙述中正确的是A)所冇数据结构必须有根结点B)所有数据结构必须有终端结点(即叶r・结点)0只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构D)没冇根结点或没有叶子结点的数据结构一定是北线性结构参考答案:D【解析】一个非空的数据结构如果满足以下两个条件:有且只有一个根结点;每ー个结点最多有一个前件,也最多有一个后件,称为线性结构,在数据结构中习惯称为线性表,D选项正确。图是可能不包含根结点或叶子结点的数据结构,AB选项错误。数据结构中若有中间结点不满足只有・个前件或者后件条件,则不属于线性结构,C选项错误。.ド列关于算法的描述中错误的是A)算法强调动态的执行过程,不同于静态的计算公式B)算法必须能在有限个步骤之后终止0算法设计必须考虑算法的复杂度D)算法的优劣取决于运行算法程序的环境参考答案:D【解析】算法是指对解题方案的准确而完整的描述,简单地说,就是解决问题的操作步骤。算法不同于数学上的计算方法,强调实现,A选项叙述正确。算法的有穷性是指,算法中的操作步骤为有限个,且每个步骤都能在有限时间内完成,B选项叙述正确。算法复杂度包括算法的时间复杂度和算法的空间复杂度。算法设计必须考虑执行算法所需要的资源,即时间与空间复杂度,故C选项叙述正确。算法的优劣取决于算法复杂度,与程序的环境无关,当算法被编程实现之后,程序的运行受到计算机系统运行环境的限制,故正确答案为D选项。.在线性表的顺序存储结构屮,其存储空间连续,各个元素所占的字节数A)相同,元素的存储顺序与逻辑顺序一致B)相同,但其元素的存储顺序可以与逻辑顺序不一致0不同,但元素的存储顺序与逻辑顺序一致D)不同,且其元素的存储顺序可以与逻辑顺序不・致参考答案:A【解析】顺序表具有以下两个基本特征:线性表中所有元素所占的存储空间是连续的;线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。在顺序表中,每个元素占有相同的存储单元。A选项正确。设ニ叉树如下:则中序序列为A)ABDEGCFHB)DBGEAFHC〇DGEBHFCAD)ABCDEFGH参考答案:B【解析】ニ叉树遍历可以分为3种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。本题中前序遍历为ABDEGCFH,中序遍历为DBGEAFHC,后序遍历为DGEBHFCA,故B选项正确。6.下面不属于软件需求分析阶段工作的是A)需求获取B)需求计划0需求分析D)需求评审参考答案:B【解析】需求分析阶段的工作可以分为4个方面:需求获取、需求分析、编写需求规格说明书和需求评审,而需求计划不属于需求分析阶段的工作,故正确答案为B选项。7,下面不属于黑盒测试方法的是A)边界值分析法B)基本路径测试0等价类划分法D)错误推测法参考答案:B【解析】常用的黑盒测试方法和技术有:等价类划分法、边界值分析法、错误推测法和因果图等。基本路径测试属于白盒测试,故正确答案为B选项。.在数据库系统中,数据模型包括概念模型、逻辑模型和A)物理模型B)空间模型0时间模型D)数据模型参考答案:A【解析】数据模型按照不同的应用层次分为3种类型:概念数据模型、逻辑数据模型、物理数据模型,故A选项正确。.若实体A和B是ー对ー的联系,实体B和C是多对ー的联系,则实体A和C的联系是多对ーー对多〇ー对ーD)多对多参考答案:A【解析】一般来说,实体集之间必须通过联系来建立联接关系,分为三类:ー对ー联系(1:1)、ー对多联系(l:m)、多对多联系(m:n)〇A与B是1:1联系,B与C是m:l联系,则A与C是m:l联系,即多对ー,故A选项正确。10.某ニ叉树中共有935个结点,其中叶广结点有435个,则该二义树中度为2的结点个数为66436434参考答案:D【解析】在树结构中,ー个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何ー棵ニ叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。叶子结点有435个,则度为2的结点为434,D选项正确。.简单程序设计步骤中不包括A)编码B)确定算法0安装编译程序D)调试参考答案:C【解析】简单程序设计步骤为:确定数据结构、确定算法、编码、调试、整理文档,不包括安装编译程序,故答案为C选项。.若想给已定义为int型的变量a,b,c,d赋值为1,以下选项中错误的语句是d=l,c=d,b=c,a=b;a=b=c=d=l;a=l

温馨提示

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

评论

0/150

提交评论