二级C语言真题2007年9月答案.doc
《二级C语言真题2007年9月答案.doc》由会员分享,可在线阅读,更多相关《二级C语言真题2007年9月答案.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、二级C语言真题2007年9月答案真题 120一、选择题 下列各题A、B、C、D 四个选项中,只有一个选项是正确的。第1题:参考答案:D答案解析:本题考查软件的定义。软件是计算机系统中与硬件相互依存得另一部分,它包括程序、相关数据及其说明文档得总和。因此,本题得正确答案是选项D。第2题:参考答案:B答案解析:本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目的是为了改正软什中的错误。本题的正确答案是选项 B
2、。第3题:参考答案:C答案解析:通常认为,面向对象方法具有封装性、继承性、多态性几大特点。就是这几大特点,为软件开发提供了一种新的方法学。 封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中 (对象中)。简单地说,封装就是隐藏信息。这是面向对象方法的中心,也是面向对象程序设计的基础。 继承性:子类具有派生它的类的全部属性 (数据) 和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。继承性自动在类勺子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。继承有利于提高软件开发效率,容易达到一致性。 多态性:多态性就是多种形式
3、。不同的对象在接收到相同的消息时,采用不同的动作。例如,一个应用程序包括许多对象,这些对象也许具有同一类犁的工作,但是却以不同的做法来实现。不必为每个对象的过程取一过程名,造成复杂化,可以使过程名复用。同一类型的工作有相同的过程名,这种技术称为多态性。 经过上述分析可知,在面向对象方法中,实现信息隐蔽是依靠对象的封装。正确答案是选项C。第4题:参考答案:A答案解析:本题考查软件工程的程序设计风格。软件在编码阶段,力求程序语句简单、直接,不能只为了追求效率而使语句复杂化。除非对效率有特殊的要求,程序编写要做到清晰第一、效率第二。 人们在软件生存期要经常阅读程序,特别是在软什测试和维护阶段,编写程
4、序的人和参与测试、维护的人都要阅读程序,因此要求程序的可读性要好。 正确的注释能够帮助读者理解程序,可为后续阶段进行测试和维护提供明确的指导。所以注释不是可有可无的,而是必须的,它对于理解程序具有重要的作用。 I/0信息是与用户的使用直接相关的,因此它的格式应当尽可能方便用户的使用。在以交互式进行输入/输出时,要在屏幕上使用提示符明确提示输入的请求,指明可使用选项的种类和取值范围。 经过上述分析可知,选项A是不符合良好程序设计风格要求的。第5题:参考答案:A答案解析:本题考查程序效率。程序效率是指程序运行速度和程序占用的存储空间。影响程序效率的因素是多方面的,包括程序的设计、使用的算法、数据的
5、存储结构等。在确定数据逻辑结构的基础上,选择一种合适的存储结构,可以使得数据操作所花费的时间少,占用的存储空间少,即提高程序的效率。因此,本题选项A的说法是正确的。第6题:参考答案:D答案解析:本题考查数据结构的基本知识。 数据之间的相互关系称为逻辑结构。通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。顺序存储结构是把数据元素存储在一块连续地址空间的内存中:链式存储结构是使用指针把相互直接关联的节点链接起来。因此,这两种存储结构都是线性的。可见
6、,逻辑结构和存储结构不是一一对应的。因此,选项A和选项B的说法都是错误的。 无论数据的逻辑结构是线性的还是非线性的,只能选择顺序存储结构或链式存储结构来实现存储。程序设计语言中,数组是内存中一段连续的地址空间,可看作是顺序存储结构。可以用数组来实现树型逻辑结构的存储,比如二叉树。因此,选项C的说法是错误的。第7题:参考答案:C答案解析:冒泡排序的基本思想是:将相邻的两个元素进行比较,如果反序,则交换:对于一个待排序的序列,经一趟排序后,最大值的元素移动到最后的位置,其他值较大的元素也向最终位置移动,此过程称为一趟冒泡。对于有n个数据的序列,共需 n-1趟排序,第i趟对从1到n-i个数据进行比较
7、、交换。冒泡排序的最坏情况是待排序序列逆序,第1趟比较n-1次,第2趟比较n-2次,依此类推,最后一趟比较1次,一共进行n-1趟排序。因此,冒泡排序在最坏情况下的比较次数是(n-1)+(n-2)+1,结果为n(n-1)/2。本题的正确答案是选项C。第8题:参考答案:A答案解析:第9题:参考答案:B答案解析:本题考查数据库系统的基本概念和知识。 数据库系统除了数据库管理软件之外,还心须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项A的说法是错误的。 数据库可以看成是长期存储
8、在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项B的说法是正确的。 通常将引入数据库技术的计算机系统称为数据库系统。一个数据库系统通常由五个部分组成,包括相关计算机的硬件、数据库集合、数据库管理系统、相关软件和人员。 因此,选项C的说法是错误的。 因此,本题的正确答案是选项B。第10题:参考答案:C答案解析:题考查数据库的关系模犁。关系模型的数据结构是一个“二维表”,每个二维表可称为一个关系,每个关系有一个关系名。表中的一行
9、称为一个元组:表中的列称为属性,每一列有一个属性名。表中的每一个元组是属性值的集合,属性是关系二维表中最小的单位,它不能再被划分。关系模式是指一个关系的属性名表,即二维表的表框架。因此,选项C的说法是正确的。第11题:参考答案:B答案解析:本题考查的知识点是:C语言的基本概念。 C浯言源程序的后缀为.c;经过编译得到的目标程序文件的后缀为obj:再将目标程序文件链接后得到可执行文件的后缀为.exe。故本题应该选择B。第12题:参考答案:A答案解析:本题考查的知识点是:标识符。 用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。C语言规定标识符只能由字母、数字和
10、下划线三种字符组成,且第一个字符必须为字母或下划线。另外,标识符不能是C语言关键字。选项B中,y-m-d用了“-”所以不是标识符;选项C,Dr.Tom用了“.”也不是标识符;选项D中,case是 C语言关键字,所以不能用作标识符。故本题应该选择A。第13题:参考答案:B答案解析:本题考查的知识点是:数值常量。 数值常量分为整型和实型两类。其中,整型有卜进制、八进制和十六进制三种表示法;实型有小数形式和指数形式两种表示法。十进制和书面使用的数据表示一样;八进制是以数字0开头,后面跟由07组成的八进制数组成:十六进制是以0x(或OX)开头,后面跟由09与AF(或af)组成的十六进制数组成:小数形式
11、由数字和小数点组成,其整数部分或小数部分如果为0可省略,但不能同时省略。指数形式由小数形式或十进制形式开头,后面跟e(或E),再跟一个十进制整数组成。选项A中, 028是八进制形式,但后面跟的8不在07之内,所以非法;选项C中,4e1.5是指数形式,但e后面所跟的不是整数,所以非法;选项D中,10,000中不能有“,”,所以非法。故本题应该选择B。第14题:参考答案:C答案解析:本题考查的知识点是:C语言的基本概念。 C语言程序将从主函数main()开始执行,故选项A不正确;主函数必须是main(),故选项B不正确;主函数的返回类型必须为int或void,形参可以没有也可以为int,char
12、*。所以不是任意函数都能作为主函数,故选项D不正确。本题应该选择C。第15题:参考答案:C答案解析:本题考查的知识点是:标准输入函数scanf()。 scanf()函数要求,除了第1个参数为格式化字符串以外,其余参数均为相应变量的地址值。本题中,只有p是地址值,故应该选择C。第16题:参考答案:D答案解析:在C语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo C 2.0中,int占2个字节,但在VisualC+6.0(VC6可以用做C语言编译器)中占4个字节。故本题应该选择D。第17题:参考答案:A答案解析:本题考查的知识点是:赋值语句、“
13、%”运算符。 赋值语句由两个运算分量和一个赋值运算符组成。赋值运算符包括“二”、“+=”、“*=”等。其中,赋值运算符左侧的运算分量称为左值,右侧的叫右值。任何合法表达式都可用做右值,但临时值、常量不能用做左值。“%”运算符的作用是求模,意思是做除法求余,这就要求两个运算分量均为整数。选项B中,2.5不是整数,故非法:选项C中,表达式x+n计算后得到的是一临时值,临时值不能做左值,故非法;选项D中,由于“=”运算符的结合性是“从右到左”,故先计算5=4+1,5是常量不能做左值,故选项D也非法。选项A,y=5是一个逻辑表达式,其值为真或假,可以用做右值,所以是合法的。故本题应该选择A。第18题:
14、参考答案:B答案解析:本题考查的知识点是:输入格式化控制串。 本题scanf()函数的格式化控制串中,%2d表示输入一个2位的整数:%f表示输入一个浮点数;%s表示输入一个字符串。因此,从键盘上输入55566 7777abc后,前两位55被当作2位整数输入给j;566被当作浮点数输入给y;跳过空格后,剩下的字符串7777abc全部输入给name;故本题应该选择B。第19题:参考答案:B答案解析:本题考查的知识点是:dowhile循环。 dowhile循环会首先执行循环体1遍,然后再判断while后的逻辑表达式是否为真来决定是否进行下一次循环。所以,dowhile循环的循环体至少会被执行1遍。本
15、题中,首先令i为0,然后进入dowhile循环,执行1遍循环体输出i的值0。然后,因为表达式i+的值为0(执行后i的值被增1),所以dowhile循环结束,接下来再输出i的值1。故本题应该选择B。第20题:参考答案:B答案解析:本题考查的知识点是:sqrt()函数。sqrt()函数的作用是计算第21题:参考答案:B答案解析:本题考查的知识点是:逻辑表达式。 在C语言中,逻辑表达式的结果只有两种情况“tree”和“false”。如果要把一个逻辑值看成一个整数的话,true等于1;false等于0。如果要把一个整数看成一个逻辑值的话,非0等于true:0等于false。由此可见,如果EXP表达式的
16、结果为0的话;(EXP)为假:(EXP=0)为真;(EXP!=O)为假;(EXP=1)为假;(EXP!=1)为真。如果EXP表达式的结果为非0的话:(EXP)为真:(EXP0)为假;(EXP!=0)为真;(EXP1)结果不定;(EXP!=1)结果不定。综上所述,只有(EXP!=0)完全等价于表达式(EXP)。故应该选择B。第22题:参考答案:C答案解析:本题考查的知识点是:for循环、%运算符。 本题首先令y为9,然后通过一个for循环,当y还大于0则循环,每次循环让y递减1。循环体中是一条if语句,通过%运算符计算每当y能被3整除的时候,输出-y的值,即先将y减1,然后输出y的值。故当y等于
17、9、6、3时会输出,输出值分别为8、5、2。所以应该选择C。第23题:参考答案:B答案解析:本题考查的知识点是:大写字母的判断。 大写字母从AZ的ASCII码是连续的,所以如果当一个字符大于等于A31小于等于 Z时,那这个字符就一定是一个大写字母,故选项C正确。C语言中的库函数isupper()的作用也正是判断一个字符是否为大写字母的,故选项A正确。在ASCII码中,小写字母的编码也是连续的,对应的小写字符比大写字符的ASCII码值大32,所以选项D经过小写字符-32后,换算成了对应的大写字母z和A,所得到结果和选项C是一致的,故也是正确的。选项B中,C语言的逻辑表达式不能直接连写,而应该写成
18、选项C那样,故是错误的,应该选择B。第24题:参考答案:B答案解析:本题考查的知识点是;for循环的嵌套、%运算符。本题程序中,关键部分是一个for循环的嵌套。外循环将执行3遍,循环变量i的值依次为13。内循环每次将从3循环递增到外循环变量i的值。所以,前两次循环i的值都小于3,故内循环没有被执行,第3次,内循环将执行1次,执行时i等于3。 %运算符的作用是整除求余,55除以3等于18余1,所以整个循环结束后,m的值为1。故应该选择B。第25题:参考答案:D答案解析:本题考查的知识点是:函数的形参和实参。 在定义函数时函数名后面括弧中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函
19、数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数” (简称实参)。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。故本题应该选择D。第26题:参考答案:C答案解析:本题考查的知识点是:字符变量。 字符变量其实就是整型变量。只不过它只占1个字节,所以表示范围是-128127。它所储存的值为它所代表字符的ASCII码值。“己知字符,A,的ASCII代码值是65,字符变量c1的值是A”这句话告诉我们,c1中存储的值就是65;c2的值为D,但在输出时减了2,所以输出的值为B,也就是66
20、。故本题应该选择C。第27题:参考答案:C答案解析:本题考查的知识点是:函数、指针。 在C语言中,指针变量是不能直接赋给一个整数作为地址值的。因此选项C是错误的。其余选项的说法正确。故应该选择C。第28题:参考答案:D答案解析:本题考查的知识点是:字符串常量。 在C语言中,字符串常量是以双引号括起来的字符序列。故选项B和C不正确。字符序列中可包含一些转义字符,转义字符都是以“”开头的。选项A中包含了三个“”,前两个()代表了个”字符,后面一个和“”一起()被看作一个“”,所以该字符串缺少一个结束的“”,故不正确。选项D的两个“”之间没有任何字符,代表的是一个空串,是合法的字符串常量,故应该选择
21、D。第29题:参考答案:A答案解析:本题考查的知识点是:sizeof()运算符。 sizeof()运算符的作用是计算一个变量所占的内存字节数。选项A传入的是数组名p,数组p由3个字符大小,所以占3个字节。故不能计算出一个char型数据所占字符数。而选项B、C、D传入的都是字符元素或字符类型名char,这些都能计算出一个 char型数据所占字符数。故本题应该选择A。第30题:参考答案:A答案解析:本题考查的知识点是:while循环的简单应用。 aaa()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针 t不断递增,直到t指向字符串结束标志处。当t指向结束标志处时,由于
22、后缀+运算符的原因,它还会被再递增1,所以接卜来的t-;语句让它回到结束标志处。最后返回t-s,因此s还是指向字符串第1个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。第31题:参考答案:B答案解析:本题考查的知识点是:二维数组在内存中的存放顺序。 二维数组的元素在内存中是按行列顺序连续存放的。以本题的二维数组a36为例,它的元素在内存中的存放顺序是:a00、a01、a02a05、a10、 a11a15、a20a25。由此可见,第10个元素就是第2行第4个元素,即a13。故应该选择B。第32题:参考答案:A答案解析:本题考查的知识点是;指针数组和二级指针。 本题主函数中定义了一个指针
23、数组a,可以将它看成一个以字符指针为元素的一维数组。和般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针(即字符型二级指针),所以数组名a可以用作函数fun()的实参。 在fun()函数中,+p操作使形参p往后移动一个字符指针的位置,即指针a1的位置。故最后通过printf()函数输出的字符串为Afternoon,应该选择A。第33题:参考答案:C答案解析:本题考查的知识点是:二维数组和指针数组。 无论一个数组有多少维或者是甭含指针类型,该数组最终都可以被看作一个比较特殊的一维数组。例如本题中的int a23可以看作元素为int3(即包含3个int型元素的一维数
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 2007 答案
