2007年(春)江苏二级C语言笔试试卷参考答案及解析
2007 年(春)笔试试卷参考答案及解析第一部分 计算机基础知识(1)B )得之。(2)C )(3)B ) 【解析】摩尔定律是指 IC 上可容纳的晶体管数目,约每隔 18 个月便会增加一倍,性能 也将
2007 年(春)笔试试卷参考答案及解析
第一部分 计算机基础知识
(1)B )
得之。
(2)C )
(3)B ) 【解析】摩尔定律是指 IC 上可容纳的晶体管数目,约每隔 18 个月便会增加一倍,性能 也将提升一倍。摩尔定律是由英特尔(Intel )名誉董事长戈登·╰5X尔(Gordon Moore)经过长期观察发现 【解析】光纤一般在校园网和企业网中使用,因为速度快。 【解析】二进制数(1010)=十进制(10),十六进制数(B2)16=十进制(178),所以
188 用八进制表示为(274)8。
(4)D ) 【解析】GB2312 中,一个汉字字符由两个字符构成,特征是高位大于 127(即十六进制 的 7F ),低位不计。看看字符串:第一个字符:BO ,明显大于 7F ,所以这是一个汉字的高位,与下一个
字符组成一个汉字。那么这里就去掉了两个字符:BOA1 第三个字符:57,很明显,小于 7F ,这是一个西 文字符。第四个字符:69,同上,第五个字符:6E ,同上,第六个字符:D6,这里又遇到一个大于 7F 的, 又是一个汉字的高位,同第一个字符处理。第八个字符依次类推,必须从第一个字符开始,一个字符一个 字符的计算。那就是 4 个汉字和 3 个西文字符。
(5)D ) 【解析】现在使用最多的 CPU 有 Intel 和 AMD 。
(6)A ) 【解析】PC 在加电启动过程中会运行 P OST 程序、引导系统、系统自举程序等。若在
启动过程中,用户按某一热键(通常是 Del 键)则可以启动 CMOS 设置程序。这些程序运行的顺序是 POST 程序→CMOS 设置程序→系统自举程序→引导程序。
(7)B ) 【解析】1394 卡的全称是 IEEE1394 Interface Card,它是 IEEE 标准化组织制定的一项具 有视频数据传输速度的串行接口标准。它支持外接设备热插拔,同时可为外设提供电源,省去了外设自带 的电源、支持同步数据传输。IEEE1394 接口最初由苹果公司开发,据说早期是为了取代并不普及的 SCSI 接口而设计的,英文取名为 FIREWIRE 。
(8)C ) 【解析】优盘能起到引导操作系统的作用。
(9)C ) 【解析】虚拟存储器采用的页面调度算法有几种:“先进先出”(FIFO )算法、随机算法、
近期最少使用算法、最优算法。
(10)C ) 【解析】算法是问题求解规则的一种过程描述,一个算法有 0 个或多个输入,以刻画运
算对象的初始情况,所谓 0 个输入是指算法本身定除了初始条件,一个算法有一个或多个输出,以反映对 输入数据加工后的结果。没有输出的算法是毫无意义的。
(11)D ) 【解析】以太网(IEEE 802.3 标准)是最常用的局域网组网方式。
(12)B ) 【解析】C 类 IP 地址中网络的标识长度为 21 位,主机标识的长度为 8 位,C 类网络地 址数量较多,适用于小规模的局域网络,每个网络最多只能包含 254 台计算机。
(13)A ) 【解析】DNS 的中文意思是域名服务。域名服务是提供[主机名]到[IP 地址]转换的一段
计算机程序。
(14)C ) 【解析】通常 ADSL 在不影响正常电话通信的情况下可以提供最高 3.5Mbps 的上传速度 和最高 24Mbps 的下载速度。
(15)C ) 【解析】BIG5 是台湾计算机界实行的汉字编码字符集,在汉字编码标准中,它不支持
简体汉字,Big5 也是繁体的意思,GB 是简体的意思。
(16)C ) 【解析】JPEG 是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比
例对文件进行压缩,支持多种压缩级别,压缩比率通常在 10∶1 到 40∶1 之间,压缩比越大,品质就越低; 压缩比越小,品质就越好。
(17)D ) 【解析】播放 MIDI 音乐时,发出的声音是通过播放软件或者音源的转换而成的,可以
把 MIDI 理解成是一种协议、一种标准或一种技术,但不要把它看作是某个硬件设备。
(18)A ) 【解析】“五笔字型”汉字输入法不是 Windows 内置的输入法之一,可以通过安装 Office 自定安装或下载安装。
(19)D ) 【解析】格式刷既可以复制字符格式,也可以复制段落格式;如需要多次复印,双击格
参考答案及解析 第 1 页 共 3 页
,式刷即可。在 Word 中提供了“格式复制”按钮 ,它不复制内容,只复制格式。
(20)D ) 【解析】演示文稿中不仅可以插入声音文件,而且可以录制旁白。
第二部分 C 语言程序设计 一、选择题
(21)C ) 【解析】函数的定义中不能定义其他的函数,只能应用其他的函数。
(22)B ) 【解析】形式错误,应该用 123L 形式。
(23)D ) 【解析】sizeof 本身就是一个函数,不能用来定义其他的函数或者变量。
(24)A ) 【解析】A 是数学式的形式,不能直接用作 c 中的逻辑表达式。
(25)B ) 【解析】注意:sizeof 表示的是字符串数组的长度,而 strlen 求的是字符串数组中字符的 个数,也就是'0'之前的字符的个数。
(26)D ) 【解析】如果循环体只有一条语句,可以不用花括号。三种循环体都不能缺少循环终止
的条件,否则循环就一直进行,称为死循环。中有 do_while 循环体中的循环语句可以被无条件的执行一次, 其他的循环体都不可以。
(27)D ) 【解析】D 中的花括号不成对出现,显然不符合语法。
(28)B ) 【解析】p 是指针型变量,不能作为数组的索引,程序不能执行。不能输出。
(29)A ) 【解析】ptr->a 实际上是结构体数组的第一个元素的 a 成员值是 5。
(30)B ) 【解析】w :只写打开或建立一个文本文件,只允许写数据;r :读写打开一个文本文 件,允许读和写;a :读写打开一个文本文件,允许读,或在文件末追加数据;r :只允许进行“读”操作。
二、填空题
● 基本概念题
(1)【1】extern
【解析】extern 用于声明外部变量。
(2)【2】sqrt(abs(a-b))/(3*(a b)) 或者 sqrt(fabs(a-b))/(3*(a b))
【解析】绝对值函数是 fabs ,平方根函数是 sqrt 。
(3)【3】第一个元素地址 或者 起始地址
【解析】数组名实际上是一个地址常量,其值是数组的一个元素的地址。
(4)【4】(d)ld
【解析】scanf 是格式化输入函数,a 应该放在()中表示区号,b 放到()后面表示电话号码,所以用(d)ld。
(5)【5】char *p
【解析】用花括号给字符串数组赋初值必须是在定义的时候,若是指针,则可以任意时候用花括号赋值。
● 阅读程序题
(6)【6】3
【解析】m(m(2)):先调用 m(2):返回 1( s,s 当前值是 0) 1( a)=2,再调用 m(2):返回 2( s,s 当 前值是 1) 1( a)=3。(注意:在 C 语言中,全局变量和静态变量,如果没有赋初值,则默认初始值 int ,float , char ,空指针分别为 0,0.0,'0',0。除了全局变量和静态变量以外,其他变量如果没有赋初值,则默认初始值 为内存中的垃圾内容,对于垃圾内容不能有任何假设。这些规则对于数组结构体和联合体也同样适用)。
(7)【7】4
【解析】enum days {mon=1, tue, wed, thu, fri, sat, sun}定义了一个枚举型常量,mon=1, tue=2, wed=3,
thu=4, fri=5, sat=6, sun=7, today=tue=2,所以(today 2)7)=47=4。
(8)【8】15
【解析】mystery(5,3)-> mystery(5,2)-> mystery(5,1)->return 5-> return 10-> return 15。
(9)【9】2 【10】0
【解析】do_while 循环:首先 i2=52=1,i=4,continue ,做下一次的 switch 循环语句,i2=0,i--.i=3,
跳出 switch 运行下面一条语句:打印 3。
32=1,i=2,22=0,i=1,跳出 switch 语句。执行下一条语句:i 先自减一再打印 i ,i=0。
(10)【11】-8 4 【12】1 2
参考答案及解析 第 2 页 共 3 页
,【解析】n 是 x 数组的长度,函数 fun :查找 a 中的同样的字符,在数组 y 中依次记录其个数(取反) 和该数字(当该数字只出现一次,则不记录其个数,只记录该数字本身),打印 y 时候的格式是:一行打
印两个数字。
1 2 两个数字,只有一个,不记录个数,只记录数字。
(11)【13】1 3 13 【14】1 5 21 【15】2 8 34
【解析】第一个 for 循环:b 数组设置为:1 1 2 3 5 8 13 21 34 (当前项=前面两项的和)。第二个 for 循环:i=0,j=0,a[0][0]=b[0];i=0,j=1,a[1][0]=b[1];i=0,j=2,a[2][0]=b[2];i=1,j=0,a[0][1]=b[3];i=1, j=1,a[1][1]=b[4];i=1,j=2,a[2][1]=b[5];i=2,j=0,a[0][2]=b[6];i=2,j=1,a[1][2]=b[7];i=2,j=2,a[2][2]=b[8]; a 数组:1 3 13,1 5 21,2 8 34。
(12)【16】32659 【17】23569 【18】256
【解析】puts (p )打印 p 指针指向的字符串数组。
insert 函数:创建一个链表,其中结构体变量把 32559 按照由小到大的顺序重新排列了。
函数 del 功能:把 2 的倍数的结点后面的一个结点删除。
● 完善程序题
(13)【19】x1=x0
【解析】由程序可以看出:x1=cos(x);x0=x。
【20】fabs(x1-x0)>=1e-6
【解析】循环结束的条件,显然:cos(x)与 x 之间的误差即:x1 与 x0 之间的误差小于 10循环就结束。
【21】root(0) -6
【解析】显然要调用 root 函数求根,初值是 0。x=0 的时候,初始误差最大等于 1,即在[0 1]之间找根。
(14)【22】p
【解析】题干中已知条件:该数字的末尾是 p 。该数字个位存放在 a[0]当中。所以 a[0]=p,c 是进位标 志位。
【23】a[i-1]*p c
【解析】由题设的第二个条件“对于 i=1,2,3,…,计算“a[i-1]×p a[i-1]向 a[i]的进位值”得到 t 。
若 t=p 则 A 已找到,否则将 t 的个位数保存到 a[i],t 的十位数作为 a[i]向 a[i 1]的进位值”。可知该空应该 是:a[i-1]×p a[i-1]向 a[i]的进位值。即 a[i-1]*p c。
【24】n-1
【解析】输出这个数,一共有 n 位。从零开始标号,所以 i 的初值是 n-1。
(15)【25】*n=*m=0
【解析】m ,n 没有初始值,必须赋值为 0。不然原来内存中的数值会有不可预计的数。
【26】av =x[i]
【解析】由下面的语句可以看出:av 是数组的平均值,所以之前的 av 应该是数组的元素的和,再取 平均即可得到均值。
【27】x[i]>=av
【解析】由题干可知:n 是那些大于等于均值的数的个数,所以条件应该是 x[i]>=av。
(16)【28】a[i]
【解析】语句“index[i].x=a[i][0];”是把数组每行的第一个元素赋值给 index[i].x,显然,数组每一行 的第一个元素的地址赋值给 index[i].y。
【29】index[j].x> index[k].x
【解析】第二个 for 循环:把当前结点后面第一个大于当前结点的结点移动到当前结点的前面。即把结构 体数组,按照从小到大的顺序排列。If 的条件是:大于(如果大于,记录这个结点的序号,然后作交换)。
【30】*(p j)或者*( index[i].y j)
【解析】按照首地址输出该行的每一个数字。
参考答案及解析 第 3 页 共 3 页