程序员-3期(PX014) 初级程序员2013上半年试题及解答 2013年上半年软考程序员下午试卷参考答案版.docx

程序员-3期(PX014) 初级程序员2013上半年试题及解答 2013年上半年软考程序员下午试卷参考答案版.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2013年上半年 程序员 下午试卷 案例 [真题][答案] 案例 第1题 2013上 平面上一个封闭区域内稳定的温度函数是一个调和函数。如果区域边界上各点的温度是已知的(非常数),那么就可以用数值方法近似地计算出区域内各点的温度。 假设封闭区域是矩形,可将整个矩形用许多横竖线切分成比较细小的网格,并以最简单的方式建立坐标系统,从而可以将问题描述为:已知调和函数u(i,j)在矩形{0le;ile;m;0le;jle;n}四边上的值,求函数u在矩形内部各个网格点{(i,j)|i=1,hellip;,m-1;j=1,hellip;,n-1}上的近似值。 根据调和函数的特点可以推导出近似算式:该矩形内任一网格点上的函数值等于其上下左右四个 . 相邻网格点上函数值的算术平均值。这样,我们就可以用迭代法来进行数值计算了。首先将该矩形内部所有网格点上的函数值设置为一个常数,例如u(0,0);然后通过该迭代式计算矩形内各网格点上的新值。这样反复进行迭代计算,若某次迭代后所有的新值与原值之差别都小于预定的要求(如0.01),则结束求解过程。 问题1.1 阅读以上说明和流程图,填补流程图中的空缺(1)#12316;(5),将解答填入答题纸的对应栏内。 参考答案:(1) 0或任意一个负数 (u(ij+1)+u(ij-1)+u(i-1j)+u(i+1j))/4或等价表示 max new或((u(i,j+l)+u(i,j-l)+u(i-lj)+u(i+l,j))/4或等价表示 max试题二(共15分) 本题考查算法(数值计算)流程的描述。 封闭区域内稳定(没有奇异点)的温度场、磁场等都是调和函数。已知边界上的值,就可以近似计算区域内各点的值。对于网格化后的矩形区域{0le;ile;m;0le;jle;n},其边界点为{(0,j)丨j=0,..,n}、{((i,0)丨i=0,..,m}、{(m,j)丨j=0,..,n}、{((i,n)|i=0,..,m},其内点为{(i,j)|i=1,bull;.bull;m-l;j=1,...,n-l}。 本题采用迭代法进行近似计算。初始时,设矩形每个内点处的u(ij)均等于常数u(0,0)。每次迭代需要再计算出所有内点处的u(ij)新值。为了检查迭代能否结束,需要算出所有内点处函数u的新值与旧值之差的绝对值是否都小于0.01(或判断其最大值是否小于0.01)。为此,每次算出的新值需要先暂存于一个临时变量new。它应是点(ij上下左右四个点处u值的算术平均值,因此(2)处应填(u(i,j+1)+u(i,j-1)+u(i-1,j)+u(i+1,j))/4。 为了计算本次迭代中新老值之差的绝对值|u(ij)-new|的最大值max,需要先对max赋一个不可能再低的值(由于绝对值总是非负,所以max常先存0)。因此(1)处可以填0(填任何一个负数也是可以的)。 当某个内点处新老u值之差的绝对值超过max时,就需要将该值赋给max。因此,(3)处应填max。不管是否更新了max,此后新值就可以替代老值了。因此(4)处应填 newo (5)处应填本次迭代求出的最大值max,以判断它是否小于0.01,是否达到了近似要求。如果已经达到误差要求,则计算结束,所有的u(ij)就是计算结果。否则,还需要继续进行迭代。 案例 第2题 2013上 函数GetDateId(DATEdate)的功能是计算并返回指定合法日期date是其所在年份的第几天。例如,date表示2008年1月25日时,函数的返回值为25,date表示2008年3月3日时,函数返回值为63。函数Kday-Date(inttheyear,intk)的功能是计算并返回指定合法年份theyear(theyearge;1900)的第k天 (1le;kle;365)所对应的日期。例如,2008年的第60天是2008年2月29日,2009年的第60天是2009年3月1日。 函数isLeapYear(inty)的功能是判断y代表的年份是否为闰年,是则返回1,否则返回0。 . DATE类型定义如下: 问题2.1 填充函数中的空缺,将解答填入答题纸的对应栏内。 参考答案:(2) date.month2或其等价形式 (3) DATE theyear days_month[i-1]或其等价形式 本题考查c程序的基本语法和运算逻辑。 函数GetDateId(DATE date)的功能是计算并返回指定合法日期date是其所在年份的第几天。处理思路是:先将1月~date.month-l月的天数累加起来,然后加上date.month的天数date.day即可。若date.month2,则需要考虑特殊情况2月份,在闰年为29天而不是28天。因此,空(1)处应填入date.month,空(2)处应填入

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
内容提供者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档