您好,欢迎访问三七文档
1、下列叙述中正确的是()。A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D)线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性参考答案:B【解析】线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。2、下列叙述中正确的是()。A)栈是一种先进先出的线性表B)队列是一种后进先出的线性表C)栈与队列都是非线性结构D)以上三种说法都不对参考答案:D【解析】栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。3、软件测试的目的是()。A)评估软件可靠性B)发现并改正程序中的错误C)改正程序中的错误D)发现程序中的错误参考答案:D【解析】软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演示软件的正确功能。不是为了评估软件或改正错误。4、在软件开发中,需求分析阶段产生的主要文档是()。A)软件集成测试计划B)软件详细设计说明书C)用户手册D)软件需求规格说明书参考答案:D【解析】需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D)。5、软件生命周期是指()。A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程参考答案:A【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期6、面向对象方法中,继承是指()。A)一组对象所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操作的机制参考答案:D【解析】继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。7、层次型、网状型和关系型数据库划分原则是()。A)记录长度B)文件的大小C)联系的复杂程度D)数据之间的联系方式参考答案:D【解析】层次模型的基本结构是树形结构,网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。8、一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。A)一对一B)一对多C)多对多D)多对一参考答案:C【解析】因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。9、数据库设计中反映用户对数据要求的模式是()。A)内模式B)概念模式C)外模式D)设计模式参考答案:C【解析】数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择C)。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。10、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是()。A)自然连接B)差C)交D)并参考答案:B【解析】关系T中的元组是R关系中有而S关系中没有的元组的集合,所以进行的是差的运算。11、以下叙述中错误的是()。A)C语言是一种结构化程序设计语言B)使用三种基本结构构成的程序只能解决简单问题C)结构化程序设计提倡模块化的设计方法D)结构化程序由顺序、分支、循环三种基本结构组成参考答案:B【解析】C语言是一种结构化程序设计语言。结构化程序设计是以模块化设计为中心的,有三种基本结构:顺序、选择和循环结构。各模块相互独立,因而可将原来较为复杂的问题化简为一系列简单模块并充分利用现有模块搭建新系统,提高程序的重用性和可维护性。12、下面四个选项中,均是不合法的用户标识符的选项是()。A)c-bgotointB)AP0doC)floatla0AD)123tempgoto参考答案:A【解析】C语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。选项A)中goto和int是关键字,c-b中'-'不是组成标识符的3种字符之一;选项B)中do是关键字;选项C)中float是关键字;选项D)中goto是关键字;所以,均是不合法用户标识符的选项是A)。13、以下选项中值为1的表达式是()。A)B)C)D)参考答案:B【解析】字符常量0的值是48,1的值是49,\0的值是0。所以1-0=-47,1-\0=1,1-0=49,\0-0=-48。14、已知各变量的类型说明如下:intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是()。A)x%(-3)B)w+=-2C)k=(a=2,b=3,a+b)D)a+=a-=(b=4)*(a=3)参考答案:A【解析】%是求余运算符或模运算符,%两侧均应为整型数据,选项A)中的x是double型数据。15、设变量x为float型且已赋值,则以下语句能将x中的数值保留到小数点后两位,并将第3位四舍五入的是()。A)x=(x*100+0.5)/100.0B)x=(int)(x*100+0.5)/100.0C)x=x*100+0.5/100.0D)x=(x/100+0.5)*100.0参考答案:B【解析】(int)(x*100+0.5)把float型数据(x*100+0.5)强转成int,这样就可以去掉小数点,+0.5就是为了四舍五入。例如x=1.234,则(1.234*100+0.5)=123.9,则(int)123.9/100.0=123/100.0=1.23。16、以下程序运行后的输出结果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3));printf(%d%d%d\n,i,j,k);}A)123B)234C)223D)233参考答案:D【解析】首先i++==1&&(++j==3||k++==3)是一个逻辑表达式,i++==1&&(++j==3||k++==3)分为两部分i++==1和(++j==3||k++==3),它们的关系是且的关系,所以两部分都会被执行,其中i++==1是先判断i是否等于1(因为++在后面)此时i=1,在执行完后i=2。然后执行第二部分(++j==3||k++==3),又分为两部分:++j==3和k++==3两部分,这两部分是或的关系,如果第一部分满足条件就不执行后面的,如果第一部分不满足条件,就执行后面的部分。++j==3是j先自己加1然后判断j是否等于3,这部分的结果为真,所以后面的部分不执行,因此最后的结果为i=2j=3k=3。17、当变量c的值不为2、4、6时,值也为真的表达式是()。A)(c==2)||(c==4)||(c==6)B)(c=2&&c=6)||(c!=3)||(c!=5)C)(c=2&&c=6)&&!(c%2)D)(c=2&&c=6)&&(c%2!=1)参考答案:B【解析】满足表达式(c=2&&c=6)的整型变量c的值是2,3,4,5,6。当变量c的值不为2,4,6时,其值只能为3或5,所以表达式c!=3和c!=5中至少有一个为真,即不论c为何值,表达式B)都为真。18、设变量均已正确定义,若要通过scanf(%d%c%d%c,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)()。A)10□X□20□Y回车B)10□X20□Y回车C)10□X回车20□Y回车D)10X回车20Y回车参考答案:D【解析】本题中,scanf函数的格式控制没有空格,所以,对于选项A)、B)、C),输入的第一个空格会作为字符赋值给变量c1,而不会被解释成分隔符。19、设有定义:intk=1,m=2;floatf=7;,则以下选项中错误的表达式是()。A)k=k=kB)-k++C)k%int(f)D)k=f=m参考答案:C【解析】选项C)中int(f)不正确,因为强制类型转换表示为:(类型名)(表达式),正确表示为(int)f。20、有以下程序:#includestdio.hmain(){inti,j,m=55;for(i=1;i=3;i++)for(j=3;j=i;j++)m=m%j;printf(%d\n,m);}程序的运行结果是()。A)0B)1C)2D)3参考答案:B【解析】本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为j=i,而j的初值为3,故当i的值为1和2时,内层循环体都不会被执行。只有当i和j都等于3时才会执行一次。m的值为55对3取模,计算结果为1。21、有定义语句:chars[10];,若要从终端给s输入5个字符,错误的输入语句是()。A)gets(&s[0]);B)scanf(%s,s[1]);C)gets(s);D)scanf(%s,s+1);参考答案:B【解析】在格式输入中,要求给出的是变量的地址,而B)答案中给出的s[1]是一个值的表达式。22、下面函数调用语句含有实参的个数为()。func((exp1,exp2)(exp3,exp4,exp5));A)1B)2C)4D)5参考答案:B【解析】函数调用的一般形式为:函数名(形参表)若函数无形参,调用形式为:函数名(),当所调用的函数用于求出某个值时,函数的调用可作为表达式出现在允许表达式出现的任何地方,本题中调用语句的参数个数为2个。23、有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;in;i++)for(j=i+1;jn;j++)if(a[i]a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i10;i++)printf(%d,,aa[i]);printf(\n);}程序运行后的输出结果是()。A)1,2,3,4,5,6,7,8,9,10,B)1,2,7,6,3,4,5,8,9,10,C)1,2,7,6,5,4,3,8,9,10,D)1,2,9,8,7,6,5,4,3,10,参考答案:C【解析】本题重点考查的是函数的调用。程序中sort函数的作用是将指定的数由大到小排序。被调函数sort(aa+2,5);中的实参aa+2是指aa[2]的地址,将其传给了形参a[],使得形参中a[0]的值为主函数中aa[2]的值,即3;实参中的5传给形参中的n,在sort函数中起着限制循环次数的作用,即使得参加排序的只有5个数,从aa[2]到aa[6],所以本题输出的结果是1,2,7,6,5,4,3,8,9,10,。24、设变量已正确定义并赋值,以下正确的表达式是()。A)x=y*5=x+zB)int(15.8%5)C)x=y+z+5,++yD)x=25%5.0参考答案:C【解析】赋值运算符左边必须是单一变量名,而A)选项中的y*5=x+z部分是非法赋值。在求余运算中的操作对象中只能是整型,故选项B)和选项D)是错误的。选项C)为逗号表达式。25、有以下程序:#includestdio.hvoidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;i10;i+=2)fun(c[i],c[i+1]);for(i=0;i10;i++)p
本文标题:计算机二级题库2
链接地址:https://www.777doc.com/doc-8684065 .html