计算机国二C语言考试试题 第六套.doc_第1页
计算机国二C语言考试试题 第六套.doc_第2页
计算机国二C语言考试试题 第六套.doc_第3页
计算机国二C语言考试试题 第六套.doc_第4页
计算机国二C语言考试试题 第六套.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

第六套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,Software Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:便于用户、开发人员进行理解和交流;反映出用户问题的结构,可以作为软件开发工作的基础和依据;作为确认测试和验收的依据。4.单个用户使用的数据视图的描述称为( )A.外模式B.概念模式C.内模式D.存储模式分析:选项A正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式为内模式。5.SQL语言又称为( )A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言分析:结构化查询语言(Structured Query Language,简称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.概念模式分析:内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引,集簇及hash等存取方式与存取路径。10.数据库系统的核心是( )A.数据库B.数据库管理系统C.模拟模型D.软件工程分析:数据库管理系统(Database Management System,简称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.已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=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=10 y=3,则以下语句的输出结果是( )printf(%d,%dn,x-,-y);A.10,3B.9,3C.9,2D.10,2分析:在C语言中,自增1运算符记为“+”,其功能是使变量的值自增1。自减1运算符记为“-”,其功能是使变量值自减1。自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式:+I i自增1后再参与其他运算-I i自减1后再参与其他运算i+ i参与运算后,i的值再自增1i- i参与运算后,i的值再自减1在理解和使用上容易出错的是i+和+i。特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细解析。15.执行下列程序时输入123456789输出结果是( )main() char s100;int c,i; scanf(%c,&c);scanf(%d,&i);scanf(%s,s); printf(%c,%d,%sn,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() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j3;j+) if(j%2)continue; x+; x+; printf(x=%dn,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的表达式是( )int k=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.下列说法正确的是( )int i,x;for(i=0,x=0;i=9 &x!=876;i+)scanf(%d,x);A.最多的执行10次B.最多执行9次C.是无限循环D.循环体一次也不执行分析:此题中for循环的执行次数取决于关系表达式(i=9&!=876)的结果。只要i9,或者x=876,只要在执行scanf语句时,从终端输入876,循环就将结束。如果从终端一直未输入876,则将由i值的增加使i9,从而结束循环。按照题中所给定的for语句,每执行一次循环,i自增1,因此执行10次循环后,i的值为10,循环最终也将结束。20.下面程序的输出结果为( )main() int a,b;b=(a=3*5,a*4,a*5); printf(%d,b);A.60B.75C.65D.无确定值分析:对于逗号表达式中的第一个表达式等价为a=15;第二个表达式的值为154=60,此时变量a的值仍未改变还是15,第三个表达式的值为b的值。21.下面程序的输出结果是( )#include#includemain() char*p1=abc,*p2=ABC,str50=xyz; strcpy(str+2,strcat(p1,p2); printf(%sn,str);A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC分析:本题考查的重点是拷贝字符串使用strcpy()函数,该函数的调用方式是: strcpy(字符数组,字符串)其中“字符串”可以是字符串常量,也可以是字符数组。函数的功能是将“字符串”完整地复制到“字符数组”中,字符数组中原有内容被覆盖。使用该函数时注意:字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,同结束标志0一起复制。不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来处理。另外本题还考查连接字符串的strcat()函数,其调用方式是: strcat(字符数组,字符串)功能是把“字符串”连接到“字符和数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。使用该函数时注意:由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以容纳连接后的目标字符串;否则,会因长度不够而产生问题。连接前两个字符串都会有结束标志0,连接后“字符数组”中存储的字符串的结束标志0被舍弃,只在目标串的最后保留一个0。22.有如下程序main() char ch25=6937,8254,*p2; int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;i0;j+=2) s=10*s+pij-0; printf(%dn,s);该程序的输出结果是( )A.69825B.63825C.6385D.693825分析:该题稍微难一点。主要要搞清楚以下几点:定义了一个指针数组char *p2后,程序中第一个循环for(i=0;i0是指pij中的字符只要不是字符串结束标志0就继续循环,语句j+=2;是使下标j每次增加2,也即一个隔一个地从pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p0所指向的字符串“6937”中一个隔一个地取出字符,分别是6和3,然后从p1所指向的字符串“8254”中一个隔一个地取出字符,分别是8和5,同时经过转换和相加运算后,结果s中的值应该是6385。23.下面程序执行后文件test中内容是( )#include void fun(char *fname,char *st) FILE *myf;int i; myf=fopen(fname,w); for(i=0;istrlen(st);i+)fputc(sti,myf); fclose(myf);main() fun(test,new world);fun(test,hello,);A.hello,B.new worldhello,C.new worldD.hello,rld分析:用“w”方式打开的文件如果原来不存在,则在打开时新建一个以指定的名字命名的文件。如果原来已存在一个以该文件命名的文件,则在打开时将该文件删除,然后重新建立一个新文件。所以,最后文件中只有第2次写入的“hello”。24.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为( )A.1.4B.1C.2.0D.2分析:本题考查的知识点很简单:两个整型运算的结果仍为整型,在题中的8/5的应是1,不是1.6,由于c是整型变量,所以,运算结果1.4要转换成整型数据1再赋值给c。25.设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf(i=%d,f=%f,&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为( )A.100765.12B.i=100,f=765.12C.100765.12D.x=100,y=765.12分析:本题考查scanf函数的输入方法。Scanf()函数是格式输入函数,它从标准输入设备(键盘)读取输入的信息。其调用格式为:scanf(“”,);,格式化字符串包括以下三类不同的字符:格式化说明符:格式化说明符与printf()函数中的格式说明符基本相空白字符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。非空白字符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。地址表是需要读入的所有变量的地址,而不是变量本身。这与printf()函数完全不同,要特别注意。各个变量的地址之间同“,”分开,还要注意的是在输入时,输入形式应与格式化字符串对应一致。26.若有以下程序main() int k=2,i=2,m; m=(k+=i*=k);printf(%d,%dn,m,i);执行后的输出结果是( )A.8,6B.8,3C.6,4D.7,4分析:对表达式逐步求解:k=2,i=2,m=(k+=i*=k)m=(k+=(i=i*k)k=2,i=4,m=(k+=4)m=(k=k+4)k=6,i=4,m=627.以下程序中循环体总的执行次数是( )int i,j;for(i=6;i1;i-) for(j=0;ji;j+) A.20B.261C.15D.25分析:本题中第1个for循环执行5次后结束,第2个for循环分别执行执行第6次、5次、4次、3次、2次共20次。28.下列程序的输出结果是( )main() int a3,i,j,k=2; for(i=0;i3;i+)ai=i; for(i=0;ik;i+) for(j=0;jB);printf(%dn,n);A.0B.1C.2D.3分析:按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。逻辑与运算符“&”需要两边的结果都为1时,其结果才为1。31.以下程序的执行结果是( )union un int i; char c2;main() union un x; x.c0=10; x.c1=1; printf(%d,x.i);A.266B.11C.265D.138分析:本题考查共用体的特征。Int类型变量i和字符组c共用两个字节存储单元,通常c0位于低字节,c1位于高字节,所以i=x.c1256+x.c0=266。32.下面程序的执行结果是( )#define SUM(X) X*Xmain() int a=6;int i=1,j=2; a+=SUM(i+j)/SUM(i+j); printf(%dn,a);A.15B.2C.7D.0分析:本题考查带参数的宏定义的应用。本题可以采用逐步求值法。表达式可以转换为:a=a+SUM(i+j)/SUM(i+j),即a=a+i+j*i+j/i+j*i+j,代入数据,则a=a+1+2*1+2/1+2*1+2。33.下列函数功能是将字符串ss中特定位置上字母实行转化(若该位置上不是字母,则不转换)。#include#includevoid fun( char *ss) int i; for(i=0;ssi!=0;i+) if(i%2=1 & ssi=z) ssi=ssi-32; main() char tt51; clrscr(); printf(Please enter an character string within 50 characters:n); gets(tt); printf(nnAfter changing,the stringn %s,tt); fun(tt); printf(nbecomesn %s,tt);若输入abc4Efg,则应输出( )A.aBc4EFgB.abc4EfgC.ABC4EFGD.abc4dfg分析:解答本题

温馨提示

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

评论

0/150

提交评论