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

上机题总结.doc

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

C语言上机编程题总结 石寅斌 第一部分 前十次上机题汇总 一个较大的偶数可分解为两个质数之和。编程要求:(1)编写函数int guess(int a[][3],int m,int n),其功能是将[m,n]内任一偶数i分解成两个质数k和j之和(得到验证即可,如果有多个答案,只取一个),将i,j,k依次写到a指向的二维数组一行中的三个元素中,函数返回实际写入二维数组中的行数;(2)编写main函数,定义一个行数为100列数为3的二维数组a,用a作为实在参数,调用guess函数求出[6,20]内偶数的分解情况,并按行的形式输出a数组中的元素。 #includestdio.h #includemath.h int prime(int p) {int g,h; h=sqrt(p); for(g=2;g=h;g++) if(p%g==0) return 0; if(gh) return 1;} int guess(int a[][3],int m,int n) { int i,k,j,p=0; for(i=m;i=n;i+=2) { for(k=3;k=i/2;k+=2) if(prime(k)) {j=i-k;if(prime(j)) {a[p][0]=i; a[p][1]=k; a[p][2]=j;p++;break;} } } } void main() { int i,j,a[100][3]; guess(a,6,20); for(i=0;i8;i++) {for(j=0;j3;j++) printf(%3d,a[i][j]); printf(\n);} getch(); } 2.请按下列要求编程:(1)请编写函数int fun(int a[]),其功能是:在三位数(100至999)中寻找符合下列条件的整数并按从小到大的顺序存入a指向的数组中,条件为:它是一个完全平方数,且有两位数字相同(例如144、676是满足条件的数),函数返回满足条件的该类数的个数。(2)编写main函数,定义一个长度为100的整型数组a,用a作为实在参数调用函数fun,将满足条件的依次存入a数组中,输出在给定范围内满足条件的数及这类数的个数 #includestdio.h #includemath.h int fun(int a[]) { int i,d,b,c,m,sum=0,p=0; for(i=101;i999;i++) {m=sqrt(i); d=i/100;b=i/10%10;c=i%10; if((d==b)+(d==c)+(b==c)=1i==m*m) {sum++;a[p]=i;p++;} return sum; } main() { int a[100],t,i; t=fun(a); printf(%d\n,t); for(i=0;a[i]!=\0;i++) printf(%3d\n,a[i]); getch();} 3.设n0是一个给定的正整数。对于i=0,1,2,…,定义:若ni是偶数,则ni+1=ni/2;若ni是奇数,则ni+1=3ni+1;若ni是1,则序列结束。用这种方法产生的数称为冰雹数。请按下列要求编程:(1)编写一个函数int hailstones(int n,int a[]),其功能是将按公式生成的从n到1为止的序列中的数依次存放到a指向的数组中,函数返回符合条件的序列中数据的个数;(2) 编写main函数,定义一个长度为100的一维数组a,从键盘上输入任一种子n,用n和a作为实在参数调用函数hailstones,最后按每行6个数输出数组中的数。 #includestdio.h int hailstones(int n,int a[]) { int p=0,sum=0; while(n!=1) { a[p]=n; if(n%2==0) n=n/2; else n=3*n+1; sum++;p++; } a[p]=1; return sum+1; } void main() { int a[100],n,t,i,m=0; scanf(%d,n); t=hailstones(n,a); printf(%d\n,t); for(i=0;a[i]!=\0;i++) {printf(%5d,a[i]); m++;if(m%6==0) printf(\n);} getch(); }? 4.找出满足如下条件的整数m:(1)该

文档评论(0)

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

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

1亿VIP精品文档

相关文档