网站大量收购独家精品文档,联系QQ:2885784924

软件水平考试(初级)程序员下午(应用技术)模拟试卷1 .pdf

软件水平考试(初级)程序员下午(应用技术)模拟试卷1 .pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

软件水平考试(初级)程序员下午(应

用技术)模拟试卷第1套

一、流程图题(本题[题,每题70分,7分。)

1、阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏

内。【说明】下面流程图所示算法的功能是:在一个二进制位串中,求出连续的

“1”构成的所有子串的最大长度M。例如,对于二进制位串0100111011110,

M=4。该算法中,将长度为n的二进制位串的各位数字,按照从左到右的顺序依

次存放在数组A[l..n]o在对各个二进制位扫描的过程中,变量L动态地记录连

续“1”的个数。【流程图】注:循环开始框

内应给出循环控制变量的初值和终值,默认递增值为1。格式为:循环控制变量二

初值,终值[,递增值]

标准答案:(1)0(2)L+1或等效形式(3)0一L或等效形式(4)LM或LM或等效形

式(5)M

知识点解析:本题旨在考查程序设计(算法流程图设计)的能力。本流程图采用的算

法是对二进制位串从左到右进行逐位判断,并累计连续遇到数字1的个数L,再以

“打擂台”的方式动态地得到当前L的最大值M。初始时,L和M都应该是0,即

尚未遇到数字1,数字1的连续长度L为0,L的“擂台”最大值M也是0,因此,

流程图的空(1)处应填0。接着开始对i=l,2,n循环,依次判断二进制数位

A[i]是否为1。如果A[i]=l,就应该将L增1,即执行L+1—L,因此流程图的空(2)

处应填L+1;如果A[i]=0,则应该将数字1的累计长度L清。,重新开始累计,因

此,流程图的空(3)处应填0一L。当遇到数字1进行累计L后,应将L与现行的擂

台值M进行比较。如果LM,则显然应该以新的L值代替原来的M值,即执行

L—M;如果LVM,则不能更新M值;如果L=M,则可以更新也可以不更新M

值,对计算结果没有影响(当然更新M值浪费了一些计算量)。为此,流程图的空

(4)处可填LM或LM(填前者更好),而空(5)处应填Mo

二、C语言题(本题3题,每题7.0分,3分。)

2、阅读以下说明和C代码,填补C代码中的空缺,将解答写在答题纸的对应栏

内。【说明】函数cubeRoot(x)的功能是用下面的迭代公式求解x的立方根的近似

值:Xn+1=3,精度要求为I(xn+1-Xn)/Xn|vio在main。函数牝调

用cubeRoot(x)计算区间[80,8.0]中各浮点数(间隔0.1)的立方根。【C代

码】#include#includedoublecubeRoot(doublex)【doublexl,x2=x;if(£1))return

0.0;do【xl=⑵;x2=(2.0*xl+(3))/3.0;]while(fabs((4))=le-6);

returnX2;】intmain()[doublex;fox(x=-8.0;x=8.0;(5))printf(cube

root(%.4f\n,x,cubeRoot(x));return0;】

标准答案:(l)fabs(x)=le-6或fabs(x)V=0.000001x=0.0或等效形式(2)x2(3)x

/(xl*xl)或等效形式(4)(x2-xl)/xl或等效形式(5)x+=0.1或x=x+0.1或等效形

知识点解析:本题考查C程序基本运算和流程控制的应用。函数cubeRoot(x)根据

给定的公式计算x的立方根。根据精度要求,绝对值小于le-6的数,其立方根为

0,因此,空⑴处应填入“fabs(x)V=le-6”或其等效形式。分析函数cubeRoot中的

代码,可知xl对应公式中的Xn,x2对应公式中的Xn+1,每次循环时,需要将x2

传给xl,再计算出新的x2,因此空(2)处应填入“x2”,空(3)处应填入“x/

(xl*xl)”。在满足精度要求时结束循环,即空(4)处应填入“(x2-xl)/xl”。根据题干

部分的说明,显然空(5)处应填入“x+=0.1”或其等效形式。

3、阅读以下说明和C代码,填补C代码中的空缺,将解答写在答题纸的对应栏

内。【说明】下面程序中,函

文档评论(0)

文档之家 + 关注
实名认证
内容提供者

文档创作者

1亿VIP精品文档

相关文档