金山软件股份有限公司人力资源试题库软件工程.docVIP

金山软件股份有限公司人力资源试题库软件工程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
金山软件股份有限公司人力资源试题库软件工程

姓名: 日期:  答题时间: 一、请你就C/C++或者JAVA代码行数、注释行数统计工具的实现,描述一下: 需要考虑哪些过滤条件?你如何处理? 答:过滤条件:(取得每行并去掉两头的空格后) ⑴空行,行的长度为0;⑵如果是以//开头,为注释行;⑶//在行中,并判断不是在字符串中,即“”中,为代码+注释混合行,//在“”中时为代码行;⑷如果/*在行中,判断是否是在“”内,否则为注释行,*/不在“”中时是结束 ;⑸/* */只在一行,判断行中是否有代码,无代码为注释行,有代码是混合行;⑹/* */多行,并且/*前无代码,/*后无代码,去掉其中空行都是注释行;⑺/* */多行,/*在代码后,或*/后有代码,有混合行;⑻一行中有2个/*并且就1个*/,此行为混合行,其后是注释行。 怎样提升这个工具的易用性? 答:把这个工具设置成图形界面,用户只需输入文件名或者在文件对话框中选择文件即可点击运行输出结果。 本题只需要提供思路文档,不需要程序代码。 二、给定一个自然数n,试完成如下程序,它输出不大于n的所有素数(质数)。 请提供程序代码,以及思路文档。 答:思路:求出一个数j的平方根sqrt(j),将j除以2~sqrt(j)之间的数,只要除尽一次,就不是素数,之后数j加2。 #includestdio.h #includemath.h void main() { int N=1000; int i,j,k,m=0; for(j=1;jN;j=j+2) /*1-N间的素数*/ { k=(int)sqrt(j); /*求平方根*/ for(i=2;i=k;i++) { if(j%i==0) /*只要除尽一次,就不是素数*/ break; } if(ik) /*/除到k一直没除尽,是素数*/ printf(%d ,j); } } 请分析一下可以从哪些角度可优化该程序的时间性能? 答:偶数(除了2)不能为素数;判断一个数j是否为素数,只要将其除以2 ~ sqrt(j)之间的素数,更进一步,没有必要对所有奇数进行试除,只需对所有sqrt(j)以内的所有质数试除就可以了。 三、高精度乘法 用户输入两个不大于 256 位的正整数,由程序进行乘法运算,并显示运算过程与结果。例: 输入:12, 32 输出: 12 × 32     ———————— 24       36     ————————       384 #include stdio.h #include stdlib.h #include ctype.h #define max 256 int A[max],B[max]; int Alen,Blen; int S[max *2]; void InputAB() //输入A B { int c; while (!isdigit(c = getchar())) ; Alen=1; A[0]= c - 0; while (isdigit(c = getchar())) A[Alen++] = c - 0; while (!isdigit(c = getchar())) ; Blen = 1; B[0] = c - 0; while (isdigit(c = getchar())) B[Blen++] = c - 0; } void Print(int Array[], int len) //输出数组 { int i=0; while ((ilen) (Array[i] == 0) ) i++; if (i == len) { printf(“0 \n”); return; } for ( ;i len; i++) printf(“%d”,Array[i]); printf(“\n”); } void Mul(int Array[], int len, int n, int Result[], int zeros) //相乘 { int i; for (i = len - 1; i = 0;

文档评论(0)

sunshaoying + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档