2009年(春)江苏二级C语言笔试试卷参考答案及解析.doc_第1页
2009年(春)江苏二级C语言笔试试卷参考答案及解析.doc_第2页
2009年(春)江苏二级C语言笔试试卷参考答案及解析.doc_第3页
2009年(春)江苏二级C语言笔试试卷参考答案及解析.doc_第4页
2009年(春)江苏二级C语言笔试试卷参考答案及解析.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

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),低位不计。字符串 CB F5 D0 B4 50 43 CA C7 D6 B8 为 4 个汉字和 2 个西文字符。(17)C)【解析】GB2312、GBK、GB18030 这三个才是汉字标准,收录的汉字数依次从少到多,GB18030 最多。(18)A)【解析】若波形声音未进行压缩时的码率为 64kb/s,已知取样频率为 8kHz,量化位数为8,那么它的声道数是 64/8/8=1。(19)A)【解析】决策支持系统(Decision Support System,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=xprice 本身就是错误的。二、填空题基本概念题(1)【1】main 函数定义【解析】任何一个有效的程序都有且只能有一个main()函数,它的地位相当于程序的主体,而其他函数都是为 main()服务的,就像大树树干分出的枝干。main 函数具有以下 3 个特点: C 语言规定必须用main 作为主函数名。其后的一对圆括号中间可以是空的,但不能省略。程序中的 main()是主函数的起始行,也是 C 程序执行的起始行。每一个程序都必须有且只有一个主函数。一个 C 程序总是从主函数开始执行,到 main 函数体执行完后结束,而不论 main 函数在整个程序中的位置如何。(2)【2】32767【解析】整型在内存中占两个字节的存储空间,其数值范围是-3276832767 即-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】2 3 5 6【解析】分析while循环。首先 k=5,跳到语句 default:n=0;k-;n=0,k=4,执行下面的语句,得到n=2,k=3,打印 2。第二次循环,k=3,执行语句“case 3:n+=1;k-;break;”n=3,k=2,打印输出 3。第三次循环:k=2,执行“case 2: case 4:n+=2;k-;break;”n=5,k=1。打印输出 1。第四次循环:k=1 执行“case 1: case 3:n+=1;k-;break;”n=6,k=0,打印输出 6,跳出循环。所以最后输出的结果是:2 3 5 6。(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 【解析】首先定义了一个 55 的二维字符串数组。进入外层 for 循环:第一次:ch=1,内层的第一个 for 循环实现第一列的前四行是1,内层的第参考答案及解析第 3 页共 5 页二个 for 循环实现的是第五行的前四列都是 1,内层的第三个 for 循环实现的是第五行的倒数后四列都是 1,内层的第四个 for 循环实现的是第 1 列的后四行都是 1。外层的第一次 for 循环之后,数组的最外面一圈都是1。此时 start=1,end=3。外层第二次 for 循环:ch=2,内层的第一个 for 循环实现第二列的 23 行是2。内层的第二个for 循环实现的是第 4 行的第 2,3 列都是2。内层的第三个 for 循环实现的是第四列的第 3、4 行是 2。内层的第四个 for 循环实现的是第二行的第 3、4 列是2。所以外层的第一次 for 循环之后,数组的此次外面一圈都是2。此时 start=2,end=2。外层的第三次 for 循环,由于 start=end=2,所以四个 for 循环实现的都是:a22=3。最后得到的数组是:1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 打印输出第一行和第三行就是:11111 和 12321。(10)【11】1 3 9 【12】3【解析】调用 fun 函数时,实参 x=27,进入 for 循环,找到 x%i=0 的所有的 i 放到数组 p 中。能整除27 的数字是:1,3,9。所以 j=3。函数返回。main 函数中打印数组 a 和 n,即第一行:1 3 9。第二行:3。(11)【13】4 【解析】mian 中定义了一个字符串数组 line,调用 count 函数,并打印输出结果。库函数:int isalpha (int c):检查参数 c 是否为英文字母,在标准 c 中相当于使用“isupper(c)|islower(c)”做测试。若参数 c 为英文字母,则返回 TRUE,否则返回 NULL(0)。函数 count 是一个递归函数。首先判断当前的字符是不是字符串结束标志,如果是,返回 0。如果不是,判断当前的字符是不是英文字母,如果是,i+。如果 i 自加之后指向的字符不是字符串结束标志而是英文字符,则 i 再一次自加。返回值是一加上一次 count 得到的结果。main 函数中的 line=one world,one dream.根据上面的分析,显然结果是“4”。(12)【14】5 【15】yesno 【解析】fun 函数:第一个 while 循环是找到字符串 a 有多少位,即 a 的长度是 m。第二个 while 循环:如果 bn不是字符串结束标志的话,把 bn赋值给 am,m 和 n 自加。显然 m 是字符串 a 和 b 的长度之和。main 函数中定义的两个字符串可以看出 a 和 b 的长度之和是 5。最后打印输出 s1 就是把字符串 b 连接到字符串 a 之后的字符串。(13)【16】1,2 【17】2,3 【18】2,4【解析】程序中首先定义了一个包含两个整型变量结构体,接着定义了一个结构体变量 s。分析 fun 函数:两个参数分别是结构体数组 pp 和数组长度 n。for 循环实现的是排序的操作,如果外层 for 循环指向的结构体的第一个元素大于内层 for 循环指向的元素,或者两个结构体的第一个元素相同,但是第二个元素小于。则交换两个结构体变量。即 fun 函数实现按照结构体的第一个元素由小到大的排序。main函数中调用fun函数之后的结果是: 1,2,2,3,2,4, 3,1,3,2。打印输出前三行就是1,2, 2,3,2,4。完善程序题(14)【19】b 或 b!=0 【20】b=r 【21】a0 【22】x【解析】main 函数中的最后一行语句,printf 函数的参数列表中最后一个变量 x,可以得出 x 是最大公约数。上面的 for 循环是求解 x 的过程:先给 x 付初值(第一个数组元素)for 循环中依次求出 x 与后面一个元素的公约数。所以第 21 空填写 x 的初值 a0,第 22 空是 x 本身。函数 gcd 的功能是求出参数 a,b 的最大公约数。采用的是辗除法。假定两个整数分别为 num1 和 num2,最大公约数应当是不超过其中较小数的一个整数。辗转法的思想是:用 num1 除以 num2,求出余数 resd,如果 resd=0,则当前 num2 就是最大公约数,否则(resd!=0),num1=num2,num2=resd,重复以上过程,直到 resd 为 0 为止。显然地 19,20 空应该填:b 或 b!=0,b=r。(15)【23】int n 【24】ci/10 【25】ci-1参考答案及解析第 4 页共 5 页【26】x=y 或 x=strlen(p2)或 x=strlen(p1)【解析】main函数中定义了两个字符串,对这两个字符串进行处理,把长度较小的那个字符串扩展为与长度较大的那个一样长。两个字符串的长度放在 x 变量中。所以第 26 题应该把 x 值恢复成 p1 字符串的长度,然后进行下一次的比较。即 x=strlen(p2)。题目中已知:函数 add 模拟手工加法运算的过程,将 a 和 b 指向的数组中存储的两个以字符串形式表示 的n位正 整 数 相 加 , 并 将 运 算 结 果 以 字 符 串 形 式 保 存 到c指 向 的 数 组 中 。 由main函 数 中 的“add(p1,p2,p3,x);”可知函数的第三个参数是两个字符串数组的长度,即整型的变量,由下面的 for 循环程序的截止条件得知参数的形式:int n。语句:“ci=(ai-0)+(bi-0)+k;”得知 k 是进位标志位,即上面得到的结果的十位上的数字。所以第24 题应该填写:ei

温馨提示

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

评论

0/150

提交评论