二级C语言真题2009年3月答案.doc
《二级C语言真题2009年3月答案.doc》由会员分享,可在线阅读,更多相关《二级C语言真题2009年3月答案.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、二级C语言真题2009年3月答案真题 120一、选择题 下列各题A、B、C、D 四个选项中,只有一个选项是正确的。第1题:参考答案:D答案解析:知识点 线性表及其顺序存储结构、栈和队列的特点、线性链表的概念 栈是种特殊的线性表,这种线性表只能在固定的端进行插入和删除操作,允许插入和删除的端称为栈顶,另端称为栈底。个新元素只能从栈顶一端进入,删除时,只能删除栈项的元素,即刚刚被插入的元素。所以栈又称“后进先出”表,所以选项A是错误的。队列可看作是插入在端进行,删除在另端进行的线性表,允许插入的端称为队尾,允许删除的端称为队头。在队列中,只能删除队头元素,队列的最后个元素定是最新入队的元素。因此队
2、列又称“先进先出”表,所以选项B是错误的,循环队队列是将队列存储空间的最后个位置绕到第个位置,形成逻辑上的环状空间,供队列循环使用。它的逻辑结构仍然是线性结构,所以选项C是错误的。有序线性表既可以采用顺序存储结构,也可以采用链式存储结构,所以选项D是正确的。第2题:参考答案:B答案解析:知识点 树、二叉树的结构特点 子程序调用是种层次关系,子程序调用功能模块,且调用功能模块的个数也不确定,可以是个,也可以是多个。选项A、C中元素之间是种前后件关系,前后元素之间没有层次之分,每个结点有个前件也只有w个后件。二叉树是一种很有用的非线性结构,它不同于树形结构,具有以下两个特点:1)非空二叉树只有一个
3、根结点;2)每一个结点最多有两棵子树,且分别称为该点的左子树与右子树。所以选项D规定每个结点只能有两个后件。在子程序调用中,调用的功能模块可以是多个,可以调用超过两个功能模块。所以选项A、C、D均不正确。第3题:参考答案:C答案解析:知识点 二叉树的基本性质 在任意一棵二叉树中,度为0的结点(即子叶结点)总比度为2的结点多一个。本题中度为2的结点数为5,故叶子结点数为5+16个。第4题:参考答案:D答案解析:知识点 排序技术 (1)冒泡排序法:是种最简单的交换类排法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和
4、n/2遍的从后往前的扫描,需要比较的次数为n(n-1)/2次。 (2)直接插入排序法:在直接插入排序法中,每次比较后最多移掉个逆序,因此,选种排序方法的效率与冒泡排序法相同。在最坏情况下,直接插入排序需要n(n-1)/2次比较。 (3)简单选择排序法:对于长度为n的新台阶列。选择排序需要扫描n-1遍,每遍扫描均从剩下的子表中选出最小的元素,然后将该最小的元素与子表中的第个元素进行交换。简单选择选择排序法在最坏情况下需要比较n(n-1)/2次。 (4)堆排序法:堆排序的方法为:首先将个无序序列建成。然后将堆顶元素(序列中的最大项)与堆中最后个元素交换(最大项应该在序列的最后)。在最坏情况下,堆排
5、序需要比较的次数为0(nlog2n)。假设线性表的长度为16,那么冒泡排序、直接插入排序、简单选择排序都需要比较120次,而堆排序需要比较64次。第5题:参考答案:C答案解析:知识点 常见软件的种类及含义 软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件。例如,事务处理软件,工程与科学计算软件,实时处理软件,嵌入式软件,人工智能软件等应用性质不同的软件。因此选项C教务管理系统属于应用软件。系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件,如操作系统,编译程序,汇编程序,网络软件,数据库管理系统等。因此选项
6、A、B、D都属于系统软件。第6题:参考答案:A答案解析:知识点 软件测试与调试的目的 1983年IEEE将软件测试定义为:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。因此选项A的叙述是错误的。软件测试的基本准则为:(1)所有测试都应追溯到需求。(2)严格执行测试计划,排除测试的随意性。 (3)充分注意测试中的群集现象。(4)程序员应避免检查自己的程序。(5)穷举测试不可能 。(6)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。因此选项D正确。在对程序进行了成功的测试之后将进入程序调试(通常称Debu
7、g,即排错)。因此选项C正确。程序调试的任务是诊断和改正程序中的错误。程序调试的基本步骤: (1)错误定位。(2)修改设计和代码,以排除错误。 (3)进行回归测试,防止引进新的错误。因此选项B是正确的。第7题:参考答案:B答案解析:知识点 软件设计的基本原理 (1)内聚性:内聚性是个模块内部各个元素间彼此结合的紧密程度的度量。(2)耦合性;耦合性是模块间互相连接的紧密程度的度量。因此选项c、D是错误的。在程序结构中,各模块的内聚性越强,则耦合性越弱。般较优秀的软件设计,应尽量做到内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此选项A是错误的;应该降低耦合性
8、提高内聚性,所以选项B是正确的。第8题:参考答案:A答案解析:知识点 数据库设计与管理 数据库应用系统是数据库系统再加上应用软件及应用界面这三者所组成,具体包括:数据库、数据库管理系统、数据库管理员、硬件平台、软件平台、应用软件、应用界面。在数据库应用系统中的个核心问题就是设计个能满足用户要求,性能良好的数据库,这就是数据库设计。所以选项A是正确的。第9题:参考答案:B答案解析:知识点 专门的关系运算的特点 专门的关系运算包括:选择、投影和连接。 (1)选择;从关系中找出满足给定条件的元组的操作称为选择,选择是从行的角度进行的运算,即从水平方向抽取记录。 (2)投影:从关系模式中指定若干个属性
9、组成新的关系。投影是从列的角度进行的运算,相当于对关系进行垂直分解。 (3)连接:连接是关系的横向结合。连接运算将两个关系模式拼接成个更宽的关系模式,生成的新关系中包含满足连接条件的元组。连接过程是通过连接条件来控制的,连接条件中将出现两个表中的公共属性名,或者具有相同语义、可比的属性。选择和投影运算的操作对象只是个表,相当于对个二维表进行切割。连接运算需要两个表操作为操作对象。由图可知关系R通过运算得到关系S,关系S与关系R相比,记录的条数没有发生变化,属性的个数发生了变化。因此所使用的运算应该是投影。选项C插入运算会增加记录的条数,所以选项B是正确的。第10题:参考答案:C答案解析:知识点
10、 数据库的逻辑设计 将E-R图转换为关系横式时,实体和联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。第11题:参考答案:C答案解析:C语言中合法标识符的命名规则是:标识符可以由字母、数字和下划线组成,并且第个字符必须为字母或下划线。所以选项A、B和D都是错误的。第12题:参考答案:B答案解析:基本型的整型变量用类型名关键字int进行定义,当定义时,编译程序仅为K开辟存储单元,而没有在存储单元中存放任何初值,此时变量中的值是无意义的,称变量值“无定义”。第13题:参考答案:D答案解析:在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。整型常量和实
11、型常量又称数值型常量。基本整型常量只能用数字表示,不带小数点,例如12、-1和0等,在VC6.0中可以在整型常量的后面加个字母l(L的小写)或L;实型常量必须用带小数点的数表示,例如3.14159、-2.71828、0.0等;选项A中字母o不符合要求,选顶B中超出八进制的范围,选项C中e后面的不为整数,因此选顶D是正确的。第14题:参考答案:D答案解析:选项D中,2*x表达式的结果为4,x+=2的结果为4,由于2*x时x的值没有改变,所以最终结果不等于6,因此选项D是错误的。第15题:参考答案:A答案解析:在printf函数常用的格式说明中,每个格式说明都必须用“%”开头,以个格式字符作为结束
12、,在此之间可以根据需要插入“宽度说明”、左对齐符号“-”、前导零符号“0”等。本题中用到了d和f,d代表输出符号的十进制整型数,f代表以带小数点的数学形式输出浮点数(单精度和双精度数)。对于float和double类型的实数,可以用“n1.n2”的形式来指定输出宽度(n1和n2分别代表个整常数),其中n1指定输出数据的宽度(包括小数点),n2指定小数点后小数位的位数,由于输出格式是以紧凑格式输出,因此选项A是正确的。第16题:参考答案:C答案解析:scanf函数的般调用形式为: scanf(格式控制输入项1,输入项2,) 选项B中,&x前面少了逗号,因此选项B错误。scanf函数要求输入项必须
13、是地址表达式,因此选项A、D错误,又因为变量x和变量y是双精度型的,因此在输入时必须以f(lf)或e(le)的形式,因此选项C是正确的。第17题:参考答案:D答案解析:本题主要考查关于if语句的说明,if后面圆括号中的表达式,可是任意合法的C语言表达式(如:逻辑表达式、关系表达式、算术表达式、赋值表达式等),也可以是任意类型的数据(如:整型、实型、字符型、指针型等。)第18题:参考答案:B答案解析:本题考查的是if-else语句的执行过程当条件表达式x=3时,由于if语句末尾直接是分号,没有语句,因此没有语句执行;否则,即当条件表达式x3时转向else语句,如果x!=10执行printf语句,
14、因此输入的x的范围应该是大于3且不等于10的整数。第19题:参考答案:C答案解析:本题主要考查的是自加,自减运算符以及逻辑运算符的应用,需要注意“&”和“|”的“短路”运算。当运算符“&”左边表达式的值为0时,则右边表达式就不再进行运算,整个表达式的值即为0;当运算符“|”左边表达式的值为非零时 ,则右边表达式就不再进行运算,整个表达式的值为1。 程序首先对变量a、b、c初始化,然后执行第一个个if语句,计算表达式“a1&b+2”的值,因为a=1,所以左边表达式的值为1,因此接着判断b+2是否成立,由于b+表示在使用用后再将b加1,因此b+2的值为1所以表达式a1&b+2的值为1,即if语句的
15、条件成立。接着执行第二个if语句,计算表达式“b!=2|c-!=3”的值,因b=3 ,所以b!=2的值为1,则表达式c-!=3就不再进行运算,整个表达式的值为1,因为第二个if语句的条件成立,执行其后的printf(%d,%d,%dn,a,b,C.语句,输出变量a、b、c的值,此时a=1、 b=1、c=3,因此输出1,3,3。第20题:参考答案:D答案解析:本题考查的是for循环语句的使用以及分号“;”的使用,第一层for循环由于i两次自增运算故执行两次,每执行一次第一层for循环,第二条for循环语句执行三次,但由于语句后面加了分号,因此这一条空循环语句,结果当第一层的for语句执行完,跳出
16、整个循环语句后,执行printf语句,因此执行一次printf语句,选项D是正确的。第21题:参考答案:C答案解析:本题考查的是do-while语句的使用,do-while执行的过程是当while后面对括号中表达式的值为非0时,转去执行循环体,当值为0时,退出循环。本题定义了个指针变量s,并使得s指向字符串ABC,的首地址,即把字符A的地址赋给s,因为do-while语句是先执行循环体再进行循环条件的判断,因此先执行printf语句,“s%10”是s对10的取模运算,第字符A的ASCII码为65,故“65%10”取模运算结果为5,因此输出5,接着执行s+,s指向字符串的下个字符,当字符串中字符
17、没有循环完时,继续执行do-while语句,以此类推,B和C的分别为6和7,因此,选项C是正确的。第22题:参考答案:D答案解析:本题主要考查了while和for循环语句的执行过程。for循环的一般形式如下: for(表达式1;表达式2;表达式3)循环体 for循环的执行过程如下: 计算表达式1; 计算表达式2。若其值为非o,转步骤3;若其值为0,转步骤5; 执行次for循环体: 计算表达式3,转向步骤2: 结束循环。 在选项D中,由于for循环语句末尾直接是分号,没有循环体,因此可以将其看做条空循环语句,循环体部分可以忽略。程序首先在for循环语句外为变量n赋初值0,在for循环中,先执行表
18、达式“cb=getchar();”,getchar函数用于输入字符,因此程序首先将输入的字符赋值绐变量ch,然后执行表达式“ch!=n;”,判断输入的字符是否为回车,如果此时输入的字符是回车,结束循环,所以D选项错误。第23题:参考答案:A答案解析:本题主要考查的是输入,输出函数的格式说明,其中d代表带符号的十进制整型数,c代表个字符,由于输出格式为12,a,34,b;中间没有任何的空格,因此输入时格式应该是:12a34bCR,因此,选项A是正确的。第24题:参考答案:B答案解析:本题考查的是函数的嵌套调用和参数传递,先执行main函数,第次调用f(a,B.,将参数a,b的值传递给函数f中对应
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 2009 答案
