您好,欢迎访问三七文档
1、下列关于栈叙述正确的是()。A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)栈底元素最先被删除参考答案:A解析】栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。栈底元素最先入栈却最后被删除。所以选择A)。2、下列叙述中正确的是()。A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D)以上说法均不正确参考答案:C【解析】栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C)。3、某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)()。A)3B)4C)6D)7参考答案:D【解析】根据二叉树的基本性质3:在任意一棵二叉树中,多为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。4、软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。A)学生成绩管理系统B)C语言编译程序C)UNIX操作系统D)数据库管理系统参考答案:A【解析】软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B)、C)、D)都是系统软件,只有A)是应用软件。5、结构化程序所要求的基本结构不包括()。A)顺序结构B)GOTO跳转C)选择(分支)结构D)重复(循环)结构参考答案:B【解析】1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。6、下面描述中错误的是()。A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具参考答案:A【解析】详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以A)错误。7、负责数据库中查询操作的数据库语言是()。A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言参考答案:C【解析】数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。8、一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是()。A)1:1联系B)1:m联系C)m:1联系D)m:n联系参考答案:D【解析】因为一个教师可讲授多门课程,而一门课程又能由多个老师讲授所以他们之间是多对多的关系,可以表示为m:n。9、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是()。A)自然连接B)并C)交D)差参考答案:D【解析】关系T中的元组是关系R中有而关系S中没有的元组的集合,即从关系R中除去与关系S中相同元组后得到的关系T。所以做的是差运算。10、定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。A)-369B)369C)0.369D)整数集合{1,2,3,4,5}参考答案:B【解析】只有B)选项369可以用无符号整数来表示和存储。A)选项-369有负号,选项C)0.369是小数都不能用无符号整数类存储。选项D)是一个整数集合得用数组来存储11、以下叙述中错误的是()。A)C语言源程序经编译后生成后缀为.obj的目标程序B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令参考答案:D【解析】并不是源程序中的所有行都参加编译。在条件编译形式下,相关内容只在满足一定条件时才进行编译。选项D)中的非执行语句不在其范围内。12、以下选项中合法的标识符是()。A)12B)12C)2-1D)12参考答案:B【解析】标识符命名规则:标识符必须由字母(a~z或A~Z)或下划线()开头;标识符的其他部分可以用字母、下划线或数字(0~9)组成;大小写字母表示不同意义,如cout和Cout代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。因此,本题正确答案为B)。13、设有定义:intx=3;,以下表达式中,值不为12的是()。A)B)C)D)参考答案:D【解析】本题考查逗号运算符的运算方式,逗号运算符的作用是将若干表达式连接起来,它的优先级别在所有运算符中是最低的,结合方向为自左至右。A)选项和C)选项的结果是一样的,可展开为:x=x*(x+1)=3*4=12;B)项中先执行x++,因为x++运算符有自加功能,逗号之前执行后x的值为4,逗号后的值就是整个表达式的值,即12;D)选项逗号之前并未给x赋值,所以表达式的值就是x+=6的值,即9.因此,本题答案为D)。14、下列程序的输出结果是()。main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf(%d\n,d*y);}A)3B)3.2C)0D)3.07参考答案:C【解析】本题考查复合的赋值表达式。本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量1.2转换为int型,即取整为1,然后将1赋值给变量x。接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。小括号内的运算过程:先将整型变量x的值1转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。接着进行除法运算4.8/5.0,其结果小于1.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边变量y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d*y的值也为0。15、有以下程序:#includestdio.hmain(){chara,b,c,d;a=getchar();b=getchar();scanf(%c%c,&c,&d);printf(%c%c%c%c\n,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,CR代表回车,注意,回车也是一个字符)1CR234CR则输出结果是()。A)1234B)1234C)123D)1234参考答案:C【解析】程序根据用户输入分别给字符型变量a、b、c、d赋值为1、CR、2、3,因此输出到屏幕得到选项C)中的格式。16、下列程序的运行结果是()。#includestdio.hmain(){intx=-9,y=5,z=7;if(xy)if(y0)z=0;elsez+=1;printf(%d\n,z);}A)6B)7C)8D)9参考答案:C【解析】if…else语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。C语言的语法规定,else子句总是与前面最近的不带else的if匹配,与书写格式无关,本题目的后一个if-else相当于嵌套在第一个if子句里,相当于xy&&y0时,z=0;当xy&&y=0时,z=z+1。17、以下选项中不属于C语言的类型的是()。A)unsignedlongintB)longshortC)unsignedintD)signedshortint参考答案:B【解析】C语言中整型变量分为4种,基本型int,短整型shortint,长整型longint和无符号型(unsignedint、unsignedshort、unsignedlong)。因此B)选项不属于C语言的类型。18、有以下定义语句,编译时会出现编译错误的是()。A)chara='a';B)chara='\n';C)chara='aa';D)chara='\x2d';参考答案:C【解析】aa是字符串,字符串的表示要用双引号,可以赋值给字符数组和字符指针变量,但字符串不能赋值给字符变量,只能给字符变量赋值单个字符。19、要求以下程序的功能是计算:s=1+1/2+1/3+…+1/100。main(){intn;floats;s=1.0;for(n=100;n1;n--)s=s+1/n;printf(%6.4f\n,s);}程序运行后输出结果错误,导致错误结果的程序行是()。A)s=1.0;B)for(n=100;n1;n--)C)s=s+1/n;D)printf(%6.4f\n,s);参考答案:C【解析】本题的考查点是查找程序运行错误的原因。主要考查运算中字符的转换。初看此题,可能不太容易发现错误,该题的运行结果是1.0000,算法错误。s=s+1/n;1/2=0,因为n为整型,所以1/n都为0。这就是导致本题出错的原因。s=s+1/n应改为s=s+1.0/n。20、有如下嵌套的if语句:if(ab)if(ac)k=a;elsek=c;elseif(bc)k=b;elsek=c;以下选项中与上述if语句等价的语句是()。A)k=(ab)?a:b;k=(bc)?b:c;B)k=(ab)?((bc)?a:b):((bc)?b:c);C)k=(ab)?((ac)?a:c):((bc)?b:c);D)k=(ab)?a:b;k=(ac)?a:c;参考答案:C【解析】嵌套的if语句功能是将k赋值为a、b、c中的最小值,选项A)中没有比较a、c的大小,选项B)中语句((bc)?a:b):((bc)?b:c)错误,选项D)中没有比较b、c大小。21、在下列选项中,没有构成死循环的是()。A)inti=100;while(1){i=i%100+1;if(i100)break;}B)for(;;);C)intk=10000;do{k++;}while(k10000);D)ints=36;while(s)--s;参考答案:D【解析】选项A)的循环表达式的条件永久为1,并且小于100的数与100取余不超过99,所以在循环体内表达式i%100+1的值永远不大于100,break语句永远不会执行,所以是死循环;选项B)的括号内没有能使循环停下来的变量增量,是死循环;选项C)中先执行k++,使k=10001,从而使循环陷入死循环。22、有以下程序段:intn,t=1,s=0;scanf(%d,&n);do{s=s+t;t=t-2;}while(t!=n);为使程序段不陷入死循环,从键盘键入的数据应该是()。A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数参考答案:D【解析】此题目中变量s是迷惑考生的,变量t赋初值为1,由语句t=t-2;将使t得到的是负奇数。所以选项D)是正确答案。23、若运行以下程序时,从键盘输入ADescriptorCR(CR表示回车),则下面程序的运行结果是()。#includestdio.hmain(){charc;intv0=1,v1=0,v2=0;do{switch(c=getchar()){::::::::::v1+=1;default:v0+=1;v2+=1;}}while(c!=\;printf(v0=%d,v1=%d,v2=%d\n,v0,v1,v2);}A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11D)v0=13,v1=4
本文标题:计算机二级题库6
链接地址:https://www.777doc.com/doc-8684069 .html