2009年(春)江苏二级C语言笔试试卷参考答案及解析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2009年(春)笔试试卷参考答案及解析第一部分计算机基础知识(1)D)【解析】光纤主要用于数字通信,它采用波分多路复用技术以增大信道容量。(2)B)【解析】最大的10位无符号二进制整数为1111111111,转换成八进制为1777,3位二进制表示1位八进制。(3)B)【解析】“双核”是指PC机主板上不是含有两个独立的CPU芯片。双核处理器是指在一个处理器上集成两个运算核心,从而提高计算能力。(4)D)【解析】主板上的BIOS芯片是一种只读存储器,其内容可以通过特殊软件改写;绝大多数主板上仅有一个内存插座,但并不表示PC机只能安装一根内存条,内存分为DRAM和ROM两种,前者又叫动态随机存储器,它的一个主要特征是断电后数据会丢失,平时说的内存就是指这一种;后者又叫只读存储器,平时开机首先启动的是存于主板上ROM中的BIOS程序,然后再由它去调用硬盘中的Windows,ROM的一个主要特征是断电后数据不会丢失。(5)B)【解析】对于光盘刻录机来说,其刻录信息的速度一般小于读取信息的速度。(6)D)【解析】从其发展计划来看,未来的SATA也将通过提升时钟频率来提高接口传输速率,让硬盘也能够超频。(7)A)【解析】通常用户需要付费才能得到商品软件的使用权,这类软件的升级在一定时间内是免费的。(8)C)【解析】Oracle是世界领先的信息管理软件开发商,因其复杂的关系数据库产品而闻名。Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。Oracle的关系数据库是世界第一个支持SQL语言的数据库。(9)D)【解析】硬盘可使用FAT文件系统或者NTFS文件系统格式。(10)A)【解析】一个算法应该具有以下五个重要的特征:有穷性:一个算法必须保证执行有限步之后结束;确切性:算法的每一步骤必须有确切的定义;输入:一个算法有0个或多个输入,以刻画运算对象的初始情况;输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。(11)B)【解析】IP地址分为A、B、C、D、E5类,常用的是B和C两类。IP地址由两部分组成,一部分为网络地址,另一部分为主机地址。(12)A)【解析】ADSL作为一种传输层的技术,充分利用现有的铜线资源,在一对双绞线上提供上行640kbps、下行8Mbps的带宽。(13)A)【解析】人们往往会用“我用的是10M宽带上网”来说明自己计算机连网的性能,这里的“10M”指的是数据通信中的最高数据传输速率指标。(14)C)【解析】计算机局域网按拓扑结构进行分类,可分为环型、星型和总线型等。(15)C)【解析】保证数据的完整性是指信息在传输、交换、存储和处理过程保持非修改、非破坏和非丢失的特性,即保持信息原样性,使信息能正确生成、存储、传输,这是最基本的安全特征。(16)B)【解析】GB2312中,一个汉字字符由两个字符构成,特征是高位大于127(即十六进制的7F),低位不计。字符串CBF5D0B45043CAC7D6B8为4个汉字和2个西文字符。(17)C)【解析】GB2312、GBK、GB18030这三个才是汉字标准,收录的汉字数依次从少到多,GB18030最多。(18)A)【解析】若波形声音未进行压缩时的码率为64kb/s,已知取样频率为8kHz,量化位数为8,那么它的声道数是64/8/8=1。(19)A)【解析】决策支持系统(DecisionSupportSystem,DSS)是辅助决策者通过数据、模型和知识,以人机交互方式进行半结构化或非结构化决策的计算机应用系统。它是管理信息系统(MIS)向更高一级发展而产生的先进信息管理系统。它为决策者提供分析问题、建立模型、模拟决策过程和方案的环境,调用各种信息资源和分析工具,帮助决策者提高决策水平和质量。(20)C)【解析】实体-联系模型(简称E-R模型)是由P.P.Chen于1976年首先提出的。它提供参考答案及解析第1页共5页不受任何DBMS约束的面向用户的表达方法,在数据库设计中被广泛用作数据建模的工具。E-R数据模型问世后,经历了许多修改和扩充。第二部分C语言程序设计一、选择题(21)B)【解析】函数的定义应该注意下面几点:①函数名和形式参数都是由用户命名的标识符,在同一程序中,函数名必须惟一,形式参数名只要在同一函数中惟一即可,与其他函数中的变量可以同名。②不能在函数的内部再定义函数。③若在函数的首部省略了函数返回值的类型名,可把函数首部写成:函数名(类型名形式参数1,类型名形式参数2,…)则默认函数返回值的类型为int类型。④除了返回值类型为int类型的函数外,函数必须先定义(或说明)后调用。⑤若函数只是用于完成某些操作,没有函数值返回,则必须把函数定义成void类型。(22)D)【解析】使用自加运算符时应注意以下5个事项:①自加运算符“++”的运算结果是使运算对象增1。例如,i++相当于i=i+1。②运算符“++”是单目运算符,运算对象可以是整型变量也可以是实型变量,不能是常量或表达式。所以像++3、(i+j)++是不合法的。③用自加运算符构成表达式时,既可以是前缀形式,也可以是后缀形式。这两种形式对于变量来说,其结果都是加1,但对表达式来说其值是不同的。注意:前缀形式和后缀形式表达式值的不同。④运算符“++”的结合方向是“自右向左”。⑤不要在一个表达式中对同一个变量进行多次诸如i++或++i等运算。选项D)的错误之处在于d是字符常量不能用变量的操作。(23)C)【解析】条件运算符由“?”和“:”两个运算符组成。注意:条件运算符是C语言提供的惟一的三目运算符,即要求有3个运算对象。由条件运算符构成的条件表达式。格式如下:表达式1表达式2:表达式3函数sign用三种情况,可以使用2个条件表达式:s=x=0?-1:(x==0?0:1),即选项C)。(24)A)【解析】printf函数调用的一般形式为:printf(“格式控制字符串”,输出表列)类型字符用以表示输出数据的类型,其格式符和意义如下表所示:格式字符dox,Xufe,Eg,Gcs显而易见选项A)是错误的。意义以十进制形式输出带符号整数(正数不输出符号)以八进制形式输出无符号整数(不输出前缀0)以十六进制形式输出无符号整数(不输出前缀Ox)以十进制形式输出无符号整数以小数形式输出单、双精度实数以指数形式输出单、双精度实数以%f或%e中较短的输出宽度输出单、双精度实数输出单个字符输出字符串(25)A)【解析】参见第21题,函数定义中,参数之间用逗号隔开。所以选项B)和D)错误,C)的错误之处在于函数的定义和语句体之间不能用分号隔离。所以只有选项A)是正确的。(26)C)【解析】本小题考查函数按值传递的特性:调用函数的时候,为函数中的参数开辟一块存储空间,当函数调用结束之后,为其参数开辟的空间也随之释放,而不是保留下来。选项C)中的参数a,b在函数调用结束,即函数返回的同时,其空间也被释放。数值的改变没有被保留下来,所以选项C)不能实现求平方的运算。(27)D)【解析】语句“P[i]=P[i+1],i++;”是把i后面的数赋值给i,然后i指向后面一个数字。显然等号左面应该是i,所以排除选项B)、C)。选项A)p[i]中的数值没变化,注意,p[i++]是先把p[i]复制给等号左面的变量,然后i再做++运算。选项D)可以实现和题目中语句相同的功能。(28)B)【解析】当作字符串变量使用的字符数组,不能由赋值语句直接赋字符串常量。例如,charmark[10];mark=Cprogram;。注意:以上赋值形式是不允许的。因为字符串常量给出的是地址值,而数组名mark是一个地址常量,不能被重新赋值。参考答案及解析第2页共5页所以选项B)是错误的。(29)B)【解析】声明中的p1指向的是一个一维的数组,而p2指向的是一个二维的字符串数组。选项B)把指向一维数组的指针用作二维数组,显然是错误的。(30)D)【解析】y是结构体数组,y就是结构体数组的第一个元素的地址,确切的说就是结果体数组第一个元素的第一个成员的地址。(*y)就是code[0]。选项D)中,(*y)-price本身就是错误的。二、填空题●基本概念题(1)【1】main函数定义【解析】任何一个有效的程序都有且只能有一个main()函数,它的地位相当于程序的主体,而其他函数都是为main()服务的,就像大树树干分出的枝干。main函数具有以下3个特点:①C语言规定必须用main作为主函数名。其后的一对圆括号中间可以是空的,但不能省略。②程序中的main()是主函数的起始行,也是C程序执行的起始行。每一个程序都必须有且只有一个主函数。③一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。(2)【2】32767【解析】整型在内存中占两个字节的存储空间,其数值范围是-32768~32767即-215~(215-1)。“x+1x”为假的条件是两边的x不相同,也就是说x+1导致x的溢出。所以x=32767。(3)【3】3.15【解析】y*100+0.5=315.119,赋给整型变量x,类型要进行强制转换,所以x=315。y=x/100.0=315/100.0=3.15。所以y的值是3.15。(4)【4】6【解析】在C语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。本题中的宏替换的过程是:k=M*M+1=N+1*N+1+1=2+1*2+1+1=6。●阅读程序题(5)【5】3.3【解析】本题考查的是文件的读写操作,语句fwrite(x,sizeof(double),3,fp);完成的是把数组x写入到文件a.out中。fseek(fp,2L*sizeof(double),SEEK_SET);fp是文件指针;2L*sizeof(double)是位移量(为长整型数);SEEK_SET是起始点,也就是从文件的开始出开始。这一语句的含义是从文件的开始处移动两个单位的长度,即指针指向了第三个数字。语句fread(&y,sizeof(double),1,fp);是从当前的文件读入一个double型的数据到变量y中。然后按照指定的格式打印输出y,最后关闭文件。(6)【6】2356【解析】分析while循环。首先k=5,跳到语句default:n=0;k--;n=0,k=4,执行下面的语句,得到n=2,k=3,打印2。第二次循环,k=3,执行语句“case3:n+=1;k--;break;”n=3,k=2,打印输出3。第三次循环:k=2,执行“case2:case4:n+=2;k--;break;”n=5,k=1。打印输出1。第四次循环:k=1执行“case1:case3:n+=1;k--;break;”n=6,k=0,打印输出6,跳出循环。所以最后输出的结果是:2356。(7)【7】x=18,y=27,z=18【解析】main函数中,定义了三个变量:x,y,z。调用函数change实现三个数的交换,根据函数按值传递的特性,子函数中的变量x和y的存储空间在函数返回的时候都被释放了,只有z变量的改变被保留了下来,所以x和y的值不变化,z=x,打印输出就是:x=18,y=27,z=18。(8)【8】7【解析】main函数中定义了变量a和b的值,调用f函数并且打印输出结果。f函数返回的是x和y相加的结果,注意这里实际参数和形式参数的类型不相同,在函数参数传递的时候,实际参数要进行类型的强制转换。所以在函数f中x=5,y=2。返回值是7。最后打印输出:7。(9)【9】11111【10】12321【解析】首先定义了一个5×5的二维字符串数组。进入外层for循环:第一次:c

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功