北航上机题.docVIP

  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文档。上传文档
查看更多
11年上机题 1. 【问题描述】 孪生数定义: 如果 A 的约数(因数,包含1,但不包含A本身)之和等于 B , B 的约数(因数)之和等于 A , A 和 B 称为孪生数(A和B不相等)。试找出正整数 M 和 N 之间的孪生数。 【输入形式】 从控制台输入两个正整数M和N(1=MN=20000),中间用一个空格分隔。 【输出形式】 在标准输出上输出符合题目描述的M和N之间的全部孪生数对(包括M和N)。每行输出一对孪生数,用一个空格隔开,小的先输出;各行孪生数按照第一个数从小到大的顺序输出,一对孪生数只输出一次。 如果没有符合要求的孪生数对,则输出字符串“NONE”。 【输入样例1】 20 300 【输出样例1】 220 284 【输入样例2】 200 250 【输出样例2】 NONE 【样例说明】 样例1输入的区间为[20,300],其间有一对孪生数对,即:220(1+2+4+5+10+11+20+22+44+55+110=284)和284(1+2+4+71+142=220)。样例2输入的区间是[200,250],其间没有孪生数对,所以输出字符串:NONE。 【评分标准】 该题要求输出区间中的所有孪生数对,共有5个测试点,提交程序文件名为example1.c或example1.cpp。 #include malloc.h #include stdio.h int sum(int x) { int i=1,sum=0; while(ix) { if(x%i==0) sum=sum+i; i++; } return sum; } void main() { int x,y,flag=0,i,j; scanf(%d%d,x,y); int* array=(int*)malloc(sizeof(int)*(y-x+1)); for(i=0;iy-x+1;i++) array[i]=sum(x+i); for(i=0;iy-x+1;i++) for(j=i+1;jy-x+1;j++) if(array[i]==j+x array[j]==i+x) { printf(%d %d\n,i+x,j+x); flag=1; } if(flag==0) printf(NONE\n); } 2. 【问题描述】 先输入两个矩阵A和B,然后输入替换位置(左上角),编写程序将矩阵A中从替换位置开始的子矩阵(与B同样大小)替换为B,并输出替换后的矩阵。 【输入形式】 从控制台先输入矩阵A的行数和列数(行数和列数均大于等于1,小于等于20),然后在新的行上输入矩阵A的各行数字(以一个空格分隔的整数)。再以同样的方式输入矩阵B。最后输入替换位置(用一个空格分隔的两个整数表示,行数和列数都从1开始计数,因此两个整数都大于等于1)。若替换位置超出了矩阵A的行数或列数,则原样输出矩阵A。 【输出形式】 在标准输出上分行输出替换后的矩阵,每行中各数字之间以一个空格分隔。 【输入样例1】 5 6 10 2 34 -1 800 90 2 76 56 -200 23 1 35 0 0 98 8 3000 2000 100 -1 1 2 0 8 7 85 963 496 8 2 3 9 9 9 9 9 9 3 3 【输出样例1】 10 2 34 -1 800 90 2 76 56 -200 23 1 35 0 9 9 9 3000 2000 100 9 9 9 0 8 7 85 963 496 8 【样例1说明】 输入的矩阵A为5行6列,矩阵B是2行3列,替换位置为第3行的第3列,即:将A中第3行第3列开始的、行数为2列数为3的子矩阵替换为B。 【输入样例2】 3 4 10 2 34 -1 2 76 56 -200 35 0 0 98 2 3 9 9 9 9 9 9 2 3 【输出样例2】 10 2 34 -1 2 76 9 9 35 0 9 9 【样例2说明】 输入的矩阵A为3行4列,矩阵B是2行3列,替换位置为第2行的第3列,即:将A中第2行第3列开始的、行数为2列数为3的子矩阵替换为B。但该子矩阵超出了A的范围,所以只实现了部分替换。 【评分标准】 该题要求输出替换后的矩阵,共有5个测试点,提交程序文件名为example2.c或example2.cpp。 #include malloc.h void main() { int x0,y0,i,j,x1,y1,x2,y2; scanf(%d%d,x0,y0); int** array0=(int**)malloc(sizeof(int*)*x0); for(i=0;ix0;i++) array0[i]=(int*)malloc

文档评论(0)

中华书局 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档