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

下载本文档

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

文档简介

第二套1.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是( ) A.acbed B.decab C.deabc D.cedba 分析:依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子树由deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列知其左子树为d,右子树由ba构成,如下图所示。求得该二叉树的前序遍历序列为选项D.2.结构化程序设计的3种结构是( ) A.顺序结构、选择结构、转移结构 B.分支结构、等价结构、循环结构 C.多分支结构、赋值结构、等价结构 D.顺序结构、选择结构、循环结构分析:顺序结构、选择结构和循环结构(或重复结构)是结构化程序设计的3种基本结构。3.算法的时间复杂度是指( ) A.执行算法程序所需要的时间 B.算法程序的长度 C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数分析:算法的复杂度主要包括算法的时间复杂和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。4.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为( ) A.C B.Basic C.DDL D.DML分析:选项A、B显然不合题意。数据定义语言(Data Definition Language,简称DDL)负责数据的模式定义与数据的物理存取构建;数据操纵语言(Data Manipulation Language,简称DML)负责数据的操纵,包括查询及增、删、改等操作。5.下列有关数据库的描述,正确的是( ) A.数据处理是将信息转化为数据的过程 B.数据物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 C.关系中的每一列称为元组,一个元组就是一个字段 D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字、则称其为本关系的外关键字分析:数据处理是指将数据转换成信息的过程,所以选项A叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,所以选项B叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,所以选项C叙述错误。6.用链表表示线性表的优点是( ) A.便于随机存取 B.花费的存储空间较顺序存储少 C.便于插入和删除操作 D.数据元素的物理顺序与逻辑顺序相同分析: 链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。7.结构化程序设计主要强调的是( ) A.程序的规模 B.程序的效率 C.程序设计语言的先进性 D.程序易读性分析: 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。8.检查软件产品是否符合需求定义过程称( ) A.确认测试 B.集成测试 C.验证测试 D.验收测试分析:确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求;集成测试的主要目的是发现与接口有关的错误。9.应用数据库的主要目的是( ) A.解决数据保密问题 B.解决数据完整性问题 C.解决数据共享问题 D.解决数据量大的问题分析:数据库中的数据具有“集成”与“共享”的特点,亦即是数据库集中了各种应用的数据,进行统一构造与存储,而使它们可以被不同应用程序所使用,故选项C正确。10.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是( ) A.数据库系统 B.文件系统 C.人工管理 D.数据项管理分析:人工管理阶段是在20世纪50年代中期以前出现的,数据不独立,完全依赖于程序;文件系统是数据库系统发展的初级阶段,数据独立性差;数据库系统具有高度的物理独立性和一定逻辑独立性。11.C语言中,int ,char和short三种类型数据在内存所占用的字节数( ) A.由用户自己定义 B.均为2个字节 C.是任意的 D.由所用机器的机器字长决定分析:C语言中,常用的数据类型有int,char,float,double等,但C语言标准没有具体规定以上各类数据所占内存字节数,只要求long型数据长度不短于int型,short型不长于int型,具体如何实现,由各计算机系统自行决定。12.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( ) A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母,数字和下划线中任一字符分析:C语言中规定,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或下划线,而且标识符不能是C语言的关键字。13.x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是( ) A.INPUT x,y,z; B.scanf(%d%d%d,&x,&y,&z); C.scanf(%d%d%d,x,y,z); D.read(%d%d%d,&x,&y,&z);分析:scanf函数的一般格式是:scanf(格式控制,地址表列)该格式中,地址表列中应是变量地址,而不是变量名14.以下程序的输出结果是( )main() int a=4,b=5,c=0,d; d=!a&! b! c; printf(%dn,d); A.1 B.0 C.非0的数 D.-1分析:本题考查的是逻辑与“&”,逻辑或“”,逻辑非“!”,表达式的应用。逻辑与运算符“&”,当参与运算的两个量都为真时,结果才是真,否则为假;逻辑或运算符“”,当参与运算的两个量有一个为真时,结果是真,否则为假;逻辑非运算符“!”,当参与运算的量为真时,结果才是假,否则为真。15.下面有关for循环的正确描述是( ) A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体 D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来分析:选项A for循环可以用于循环次数不确定的情况;选项B for循环是先判断表达式,后执行循环体语句;选项C在for循环中,可以用break语句跳出循环体,从而接着执行循环体后面的语句。16.设有以下程序段int x=0,s=0;while(! x!=0)s+=+x;printf(%d,s);则( ) A.运行程序段后输出0 B.运行程序段后输出1 C.程序段中的控制表达式是非法的 D.程序段执行无限次分析:本题考查逻辑非运算符和不等于运算符的区别,逻辑非运算符“!”的优先级大于不等于运算符“!=”的优先级。17.以下描述中正确的是( ) A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C.在do-while循环体中,是先执行一次循环,再进行判断 D.do-while循环中,根据情况可以省略while分析:do-while语句的一般形式为:do循环体语句while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。18.以下程序的运行结果是( )sub(int x,int y,int *z)*z=y-x;main() int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(%4d,%4d,%4dn,a,b,c); A.5,2,3 B.-5,-12,-7 C.-5,-12,-17 D.5,-2,-7分析:在C语言中,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。了解了实参指针变量的改变情况,本题只剩下简单的“加减法”了。19.对下面程序描述正确的一项是(每行程序前面的数字表示行号)( ) main() float a3=0.0; int i; for(i=0;i3;i+)scanf(%d,&ai); for(i=1;ix); printf(%dn,(+p)-x); printf(%dn,+(*p-y); A.10 20 20 B.50 60 21 C.51 60 21 D.60 70 31分析:该题中首先定义了一个结构体指针变量p,然后说明了结构体变量数组aa,并赋初值,令每个结构体变量的指针域分别指向另一个整型数组dt的对应元素。要求出的是指针变量指向的值的输出。要注意的是指向结构体成员运算符的优先级要大于自加和自减运算符,并和括号的优先级相同。运算时,指针p初始指向第1个元素,所以+p-x先计算p-x的值是50,增1后是51。(+p)-x先将指针指向第2个元素,然后取x的值为60。+(*p-y)先计算p-y,这是个指针,指向数组dt的第2个元素,然后将其值增1,结果为21。21.以下程序的输出结果是( )long fun(int n) long s; if(n=1n=2)s=2; else s=n-fun(n-1); return s;main() printf(%1dn,fun(3); A.1 B.2 C.3 D.4分析:该题考查的是递归函数的调用,题中读fun函数进行了递归调用,第1次调用:fun(3)n=3 s=3-fun(2)第二次调用时:fun(2)n=2 s=2返回第一次调用后,s=3-2=1。22.以下程序的输出结果是( )union myun struct int x,y,z;u; int k; a;main() a.u.x=4;a.u.y=5;a.u.z=6; a.k=0; printf(%dn,a.u.x);A.4DWB.5DWC.6DWD.0分析:本题考查共用体变量起作用的范围。共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用,在本题中,当对a.u.y成员赋值时,a.u.x的值就不存在,当对a.u.z赋值时,a.u.y的值就不存在了。23.以下有4组用户标识符其合法的一组是( ) A.For -sub Case B.4d DO Size C.f2_G3 IF abc D.WORD void define分析:C语言中规定,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或下划线,而且标识符不能是C语言的关键字。选项A中-sub错误,选项B中4d错误,选项D中的void为C语言的关键字。24.已知各变量的类型如下int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是( ) A.a+=a-=(b=4)*(a=3) B.a=a*3+2 C.x%(-3) D.y=float(i)分析:选项B中a在运算前未赋初值,在C语言里变量在运算前必须赋初值;选项C中的模运算符“%”两侧均应为整型数据;选项D应改为y=(float)i。25.下列程序的输出结果是( )main() int a=2;a%=4-1; printf(%d,a);a+=a*=a-=a*=3; printf(n%d,a); A.2,12 B.-1,12 C.1,0 D.2,0分析:由于%=运算符的优先级别低于-运算,a%=4-1即是a%=3,等价于a=a%3即a=2%3=2。表达式a+=a*=a-=a*=3,计算时注意赋值表达式的值和变量的值随时被更新,计算表达式的值,开始时a=2,表达式赋值是从左至右进行的,表达式a*=3使得a=6,此表达式的值也为6,于是表达式a-=a*=3相当于a-=6,此时a=a-6=6-6=0,a的值为0,后面的计算就不用做了,最终a=0。26.以下不正确的if语句形式是( ) A.if(xy&x!=y); B.if(x=y)x+=y; C.if(x!=y)scanf(%d,&x)else scanf(%d,&y); D.if(x0? 1:x0)y=1; B.if(x) else if(x0)y=1; else y=0; else if(x=0) if(x0)y=1; if(x0)y=1; else if(x=0)y=0; else y=-1; else y=-1;分析:条件运算符要求有三个操作对象,本题中改成if语句可以解释为如果x0,则y的值为1,否则如果x0,y值为-1,否则y的值为0。32.下列程序段的输出结果是( )void fun(int *x,int *y) printf(%d%d,*x,*y);*x=3;*y=4;main() int x=1,y=2; fun(&y,&x); printf(%d%d,x,y); A.2 1 4 3 B.1 2 1 2 C.1 2 3 4 D.2 1 1分析:在fun函数中

温馨提示

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

评论

0/150

提交评论