您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 计算机国二C语言考试试题第六套
第六套1.树是结点的集合,它的根结点数目是()A.有且只有1B.1或多于1C.0或1D.至少2分析:树是一个或多个结点组成的有限集合,其中一个特定的结点称为根,其余结点分为若干个不相交的集合。每个集合同时又时一棵树。树有且只有1个根结点。2.在设计程序时,应采纳的原则之一是()A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解分析:滥用goto语句将使程序流程无规律,可读性差,因此A)不选;注解行有利于对程序的理解,不应减少或取消,B)也不选;程序的长短要依照实际情况而论,而不是越短越好,C)也不选。3.下列叙述中,不属于软件需求规格说明书的作用的是()A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析分析:软件需求规格说明书(SRS,SoftwareRequirementSpecification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。4.单个用户使用的数据视图的描述称为()A.外模式B.概念模式C.内模式D.存储模式分析:选项A正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式为内模式。5.SQL语言又称为()A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言分析:结构化查询语言(StructuredQueryLanguage,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。6.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca分析:前序遍历的第一个结点a为树的根结点;中序遍历中a的左边的结点为a的左子树,a右边的结点为a的右子树;再分别对a的左右子树进行上述两步处理,直到每个结点都找到正确的位置。7.软件工程的理论和技术性研究的内容主要包括软件开发技术和()A.消除软件危机B.软件工程管理C.程序设计自动化D.实现软件可重用分析:软件工程的目标是,在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。基于这一目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。8.软件测试设计中,软件测试的主要目的是()A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.发现软件错误而执行程序分析:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。9.索引属于()A.模式B.内模式C.外模式D.概念模式分析:内模式(InternalSchema)又称物理模式(PhysicalSchema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引,集簇及hash等存取方式与存取路径。10.数据库系统的核心是()A.数据库B.数据库管理系统C.模拟模型D.软件工程分析:数据库管理系统(DatabaseManagementSystem,简称DBMS)是数据库的机构,它是一种系统软件,负责数据中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。11.以下叙述不正确的是()A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面分析:本题考查C语言的基本基础知识。是在C程序中,注释用符号“/*”开始,而是以符号“*/”结束。程序的注释可以放在程序的任何位置。通常将注释放在程序的开始,以说明本程序的功能;或者放在程序的某个语句后面,以对此语句的功能进行说明。无论将注释放有何处,在程序进行编译时,编译程序不会处理注释的内容,且注释内容也不会出现在目标程序中。12.以下叙述正确的是()A.在C程序,每行中只能写一条语句B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C.在C程序中,无论是整数还是实数,都能被准确无误地表示D.在C程序中,%是只能用于整数运算的运算符分析:选项A错误,因为在C语言中,各语句间可以用分号隔开,一行可以书写多个语句;选项B错误的原因是,忽略了C语言中进行运算的数据类型必须一致的规定,因此实型变量中不允许存放整型数,存放整型数据其实是把整型转化为实型在存放。选项C错误的原因是由于实型变量是用有限的存储单元存储的,因此能提供的有效数字总是有限的,在有效的位以外的数将被舍去,由此可能产生一些误差。13.已知各变量的类型说明如下: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中的x是double型数据。14.设x,y均为整型变量,且x=10y=3,则以下语句的输出结果是()printf(″%d,%d\n″,x--,--y);A.10,3B.9,3C.9,2D.10,2分析:在C语言中,自增1运算符记为“++”,其功能是使变量的值自增1。自减1运算符记为“--”,其功能是使变量值自减1。自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式:++Ii自增1后再参与其他运算--Ii自减1后再参与其他运算i++i参与运算后,i的值再自增1i--i参与运算后,i的值再自减1在理解和使用上容易出错的是i++和++i。特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细解析。15.执行下列程序时输入123空格456空格789回车输出结果是()main(){chars[100];intc,i;scanf(″%c″,&c);scanf(″%d″,&i);scanf(″%s″,s);printf(″%c,%d,%s\n″,c,i,s);}A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456分析:当执行输入时,把整数赋给字符型变量c(整型与字符型能相互转化),把23赋给整型变量i,把456赋给字符数组s,789之所以没有被接受是因为字符串输入时,遇空格结束。16.以下程序的输出结果是()main(){inti,j,x=0;for(i=0;i2;i++){x++;for(j=0;j3;j++){if(j%2)continue;x++;}x++;}printf(″x=%d\n″,x);}A.x=4B.x=8C.x=6D.x=12分析:该题是一个for循环嵌套语句。第一层for循环循环2次,第二次循环3次,但当j等于0和1时,将执行continue语句,不执行x++运算,所以每次执行完内循环后,x的增量为1。最后一个x++运算将每次累加起来就是x的值。17.有以下定义,能使值为3的表达式是()intk=7,x=12;A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)分析:运算符“%”的两侧都应该是整型数。另外,本题需要掌握的知识点是:x%=k,等价于x=x%k。18.以下叙述正确的是()A.函数可以嵌套定义但不能嵌套调用B.函数既可以嵌套调用也可以嵌套定义C.函数既不可以嵌套定义也不可以嵌套调用D.函数可以嵌套调用但不可以嵌套定义分析:在C语言中,所有的函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义,但可以互相调用,但不能调用main函数。19.下列说法正确的是()inti,x;for(i=0,x=0;i=9&&x!=876;i++)scanf(″%d″,x);A.最多的执行10次B.最多执行9次C.是无限循环D.循环体一次也不执行分析:此题中for循环的执行次数取决于关系表达式(i=9&&!=876)的结果。只要i=9且x!=876,循环就将继续执行。结束循环取决于两个条件,或者i9,或者x=876,只要在执行scanf语句时,从终端输入876,循环就将结束。如果从终端一直未输入876,则将由i值的增加使i9,从而结束循环。按照题中所给定的for语句,每执行一次循环,i自增1,因此执行10次循环后,i的值为10,循环最终也将结束。20.下面程序的输出结果为()main(){inta,b;b=(a=3*5,a*4,a*5);printf(″%d″,b);}A.60B.75C.65D.无确定值分析:对于逗号表达式中的第一个表达式等价为a=15;第二个表达式的值为15×4=60,此时变量a的值仍未改变还是15,第三个表达式的值为b的值。21.下面程序的输出结果是()#includestdio.h#includestring.hmain(){char*p1=″abc″,*p2=″ABC″,str[50]=″xyz″;strcpy(str+2,strcat(p1,p2));printf(″%s\n″,str);}A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC分析:本题考查的重点是拷贝字符串——使用strcpy()函数,该函数的调用方式是:strcpy(字符数组,字符串)其中“字符串”可以是字符串常量,也可以是字符数组。函数的功能是将“字符串”完整地复制到“字符数组”中,字符数组中原有内容被覆盖。使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,同结束标志′\0′一起复制。②不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来处理。另外本题还考查连接字符串的strcat()函数,其调用方式是:strcat(字符数组,字符串)功能是把“字符串”连接到“字符和数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。使用该函数时注意:①由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以容纳连接后的目标字符串;否则,会因长度不够而产生问题。②连接前两个字符串都会有结束标志′\0′,连接后“字符数组”中存储的字符串的结束标志′\0′被舍弃,只在目标串的最后保留一个′\0′。22.有如下程序main(){charch[2][5]={″6937″,″8254″},*p[2];inti,j,s=0;for(i=0;i2;i++)p[i]=ch[i];for(i=0;i2;i++)for(j=0;p[i][j]′\0′;j+=2)s=10*s+p[i][j]-′0′;printf(″%d\n″,s);}该程序的输出结果是()A.69825B.63825C.6385D.693825分析:该题稍微难一点。主要要搞清楚以下几点:①定义了一个指针数组char*p[2]后,程序中第一个循环for(i=0;i2;i++)p[i]=ch[i];的作用,是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p[1]元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种
本文标题:计算机国二C语言考试试题第六套
链接地址:https://www.777doc.com/doc-2098321 .html