您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 往来文书 > 2014年无纸化二级C模拟题2-答案
1下面不属于对象基本特点的是A可复用性B标识唯一性C封装性D多态性对象的基本特点:(1)标识惟一性;(2)分类性;(3)多态性;(4)封装性;(5)模块独立性好。2某系统结构图如下图所示该系统结构图的宽度是A2BnC4D3分析:该图形是一个倒置的树状结构,这是用层次图表示的一种软件结构。结构图中同一层次模块的最大模块个数称为结构的宽度。从图中可以看到第3层模块个数最多,即为4。因此这个系统结构图宽度就是4,另外题目如果问的是深度,深度指的是最大层次数,即为33关系数据模型A可以表示实体间m:n联系B只能表示实体间1:m联系功能2.1功能2.2功能n.1功能n.2功能1功能2功能n…某系统C只能表示实体间1:1联系4在数据库设计中,描述数据间内在语义联系得到E-R图的过程属于A物理设计阶段B概念设计阶段C逻辑设计阶段D需求分析阶段概念设计就是把概念性的东西用图形化表示出来逻辑设计就是把E-R图转换成关系模型数据则是把图形分析出来的联系到数据库中,即设计出表。5有两个关系R,S如下,由关系R和S得到关系T,则所使用的操作为RBCDa0K1SBCDf3K2n2X1TBCDa0K1f3K2n2X1A自然连接B并C差D交E笛卡尔积6下列叙述中正确的是A带链队列的存储空间可以不连续,且队头指针可以大于也可以小于队尾指针B带链队列的存储空间可以不连续,但队头指针必须大于队尾指针C带链队列的存储空间可以不连续,但队头指针必须小于队尾指针分析:队列是一种特殊的线性结构数据。循环队列是队列在计算机内顺序存储。带链队列是队列在计算机内链式存储。无论哪种存储,队列的运算是队头删除,队尾添加。这样可能导制队列前越来越空,尾越加越长。为了改善这种情况,将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。7设栈的顺序存储空间为s(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)。则栈中的元素个数为A20B29C19D30【解析】与一般的线性表一样,在程序设计语言中,用一维数组S(1,m)作为栈的顺序存储空间,其中m为栈的最大容量。通常,栈底指针指向栈空间的栈中的元素个数等于(栈底指针-栈顶指针+1),即49-30+1=20。8某二叉树的前序序列为ABCDEFG,中序序列为DCBAEFG,则该二叉树的深度(根结点在第1层)为A5B4C3D29下列叙述中正确的是A没有根结点的非空数据结构一定是线性结构B具有两个根结点的数据结构一定是非线性结构C存储空间不连续的数据结构一定是非线性结构D存储空间连续的数据结构一定是线性结构分析:一个数据结构中数据的组合,无论计算机内外,我们根据各数据元素之间前后件的复杂程度,分线性结构和非线性结构。线性结构的特点:有且只有一个根结点,前后件是一对一的关系。比如生活中我们说一年四季的数据结构是说春夏秋冬,那我们不会说秋夏春冬(也不顺),这时春就是启点,即根结点,春过了只是夏,夏进了只是秋,即前后件只是一对一关系。不可越级。又比如说一年12个月的数据结构也是典型的线性结构。而家庭成员关系比如父亲儿子女儿就不会是一对一的前后件关系,这里父亲是根结点,父亲之后有两个后件,即儿子和女儿,这种一对多的关系就是非线性结构。数据存储结构在计算机内有2种形式:顺序与链式。顺序特点是:所有元素所占存储空间连续,且各元素在存储空间的物理位置与逻辑位置必须一致。(即在外是春夏秋冬的顺序,在计算机内就也保持春夏秋冬的顺序位置)而链式特点为:存储空间可以不连续或连续,物理逻辑顺序可以不一致。无论这个数据结构是线性结构还是非线性结构,都有可能在计算机内顺序存储,也有可能是链式存储。不固定存储,数据好比房间的物品,各人喜好各人不同放置。10下面不能作为软件需求分析工具的是APAD图B数据字典(DD)C判定树D数据流图(DFD图)需求分析阶段用的工具有:数据流图(DFD图)、数据字典、判定树、判定表。11若有定义和语句:Inta,b;Scanf(“%d,%d,”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是A3,5,B3,5C3,5D3,5,412c语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A在标识符中大写字母和小写字母被认为是相同的字符B用户标识符可以由字母和数字任意顺序组成C关键字可用作用户标识符,但失去原有含义D预定义标识符可用作用户标识符,但失去原有含义解析:C语言允许把预定义标识符重新定义另作他用,但这将失去预先定义的愿意。用户标识符需要遵守标识符明明规则,C语言标识符中,大写字母和小写字母被认为是两个不同的字符。关键字不能另作他用。13以下选项中合法的常量是A123E0.2B999C2.7eD0Xab选项中E后面的指数必须为整型数据0xab表示的是十六进制常量14以下叙述中错误的是A常量可以用一个符号名来代表B数值型常量有正值和负值的区分C常量是在程序运行过程中值不能被改变的量D定义符号常量必须用类型名来设定常量的类型【解析】C语言中,常常用一个标识符来代表一个常量,称为符号常量。符号常量在使用之前要先定义,定义格式如下:#define符号常量名(常量)其中,符号常量名)用标识符,习惯上用大写字母,常量可以是数字常量,也可以是字符15以下叙述中正确的是A每个后缀为.C的C语言源程序都应该包含一个main函数B在C语言程序中,只有main函数才可单独进行编译C在C语言程序中,main函数必须放在其他函数的最前面D每个后缀为.C的C语言源程序都可以单独进行编译【解析】每一个C语言的文件或函数都可以单独编译,但只有main函数的才可以执行。C语言是一种成功的系统描述语言,具有良好的移植性,每个后缀为.C的C语言源程序都可以单独进行编译。16C语言主要是借助以下哪种手段来实现程序模块化A定义常量和外部变量B使用丰富的数据类型C使用三种基本结构语句D定义函数【解析】C语言用函数实现软件的模块化设计。17有以下程序段scanf(“%d%d%d”,&a,&b,&c);if(ab)a=b;if(ac)a=c:printf(“%d\n”,a);该程序段的功能是A输出a,b,c中的最大值B输出a,b,c中值相等的数值C输出a,b,c中的最小值D输出a的原始值18有以下程序#includestdio.hintml(intx,inty){returnx=y?x:y;}intm2(intx,inty){returnx=y?y:x;}intfun(inta,intb){returna+b;}main(){intx=2,y=3,z=1;Printf(“%d\n”,fun(m1(x,y),m2(y,z)));}程序的运行结果是A3B4C6D5m1(x,y)---m1(2,3)---2=3----returnx2m2(y,z)---m2(3,1)---3=1----returnx3fun(2,3)2+3=519有以下程序#includestdio.hmain(){intx=0,y=6;do{while(--y)x++;}While(y--);printf(“%d,%d\n”,x,y);}程序的运行结果是A5,-1B6,0C6,-1D5,0第一次外循环内循环while(--y)y=6-1=55非0x++x=0+1=1while(--y)y=5-1=44非0x++x=1+1=2while(--y)y=4-1=33非0x++x=2+1=3while(--y)y=3-1=22非0x++x=3+1=4while(--y)y=2-1=11非0x++x=4+1=5while(--y)y=1-1=00退出内循环y=0退出外循环20以下程序段中,不能实现条件“如果ab则x=10,否则x=-10“的是Aif(ab)x=10;If(ba)x=-10;Bx=(a=b)?-10:10;Cx=-10;if(ab)x=10;Dif(ab)x=10;elsex=-10;Aa=b未考虑21有以下程序#includestdio.hmain(){char*s=”120119110”;Intn0,n1,n2,nn,I;n0=n1=n2=nn=i=0;do{switch(s[i++]){default:nn++;case‘0’:n0++;case‘1’:n1++;case‘2’:n2++;}}While(s[i]);Printf(“n0=%d,n1=%d,n2=%d,nn=%d\n”,n0,n1,n2,nn);}程序运行结果是An0=2,n1=5,n2=1,nn=1Bn0=4,n1=8,n2=9,nn=1Cn0=2,n1=7,n2=10,nn=1Dn0=3,n1=8,n2=9,nn=1char*s=”120119110”;s[0]=1s[1]=2s[2]=0s[3]=1s[4]=1s[5]=9s[6]=1s[7]=1s[8]=0switch(s[i++])switch(s[0])switch(1)case‘1’:n1++;n1=0+1=1case‘2’:n2++;n2=0+1=2由于没有break,执行case1后,仍然要做case2利用排除法,9属于其他default:nn++;nn=0+1=1s[2]=0s[5]=9s[8]=0case‘0’:n0++;n0=0+1+1+1=322以下能够实现计算5!的程序段是Aintfac=1,k=1;do{k++;fac*=k;}while(k=5);Bintfac=0,k=1;do{fac*=k;k++;}while(k5);Cintfac=1,k=0;Do{fac*=k;k++;}while(k5);Dintfac=1,k=0;Do{k++;fac*=k;}while(k5);23若要使用C数学库中的sin函数,需要在源程序的头部加上#includemath.h关于引用数学库,以下叙述正确的是A将数学库中sin函数的源程序插入到引用处,以便进行编译链接B将数学库中sin函数链接到编译生成的可执行文件中,以便能正确运行C通过引用math.h文件,说明sin函数的参数个数和类型,以及函数返回值类型D实际上,不引用math.h文件也能正确调用sin函数24有以下程序#includestdio.hInt*f(int*s,int*t){if(*s*t)s=t;returns;}main(){inti=3,j=5,*p=&i,*q=&j,*r;r=f(p,q);printf(“%d,%d,%d,%d,%d\n”,i,j,*p,*q,*r);}程序的运行结果是A5,5,5,5,5B5,3,3,3,5C3,5,3,5,5D3,5,5,5,525以下关于地址和指针的叙述中正确的是A可以取变量的地址赋值给同类型的指针变量B所有指针变量如果未赋初值,则自动赋空值NULLC可以取一个指针变量的地址赋给本指针变量,这样就使得指针变量指向自身D可以取常量的地址赋值给同类型的指针变量26有以下程序#includestdio.hvoidfun(inta[],intn){inti,j=0,k=n-1,b[10];for(i=0;in/2;i++){b[i]=a[j];b[k]=a[j+1];j+=2;k--;}for(i=0;in;i++)a[i]=b[i];}main(){intc[10]={10,9,8,7,6,5,4,3,2,1},i;fun(c,10);for(i=0;i10;i++)printf(%d,,c[i]);printf(\n);}程序运行结果是A10,8,6,4,2,1,3,5,7,9,B1,2,3,4,5,6,7,8,9,10,C1,3,5,7,9,10,8,6,4,2,D10,9,8,7,6,5,4,3,2,1,27有以下程序#includestdio.hintk=5;voidf(int*s){*s=k;}main(){intm=3,*p=&m;f(p);printf(%d,%d,m,*p);}程序
本文标题:2014年无纸化二级C模拟题2-答案
链接地址:https://www.777doc.com/doc-2970752 .html