吉林大学历年C语言程序设计试题及答案.docVIP

吉林大学历年C语言程序设计试题及答案.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语言程序设计试题及答案(5)END 2000年试题答案 一、(1)解题思想: 用5个数 a,b,c,d,e,来回替换,最终f(n)算出。 设计程序如下: int F(int n) { if(n =5) return n ; int temp,a=1;b=2;c=3;d=4;e=5; for(int i=6;i =n;i++) { temp=e-c-a; a=b; b=c; c=d; d=e; e=temp; } return e; } (2)解题思想: 根据园相切的定义: 圆心之间的距离等于半径之和或半径之差,判断一下即可。设圆心坐标和园的半径已经存在数组x[100],y[100],r[100]中。注意,相切包括内切和外切。 设计程序如下: #include #include struct node { int m ; int n ; node *next; }; double d(int i,int j) { return sqrt((x-x[j])*(x-x[j])+(y-y[j])*(y-y[j])); } node *fun(void) { node *head=NULL; node *p; for(int i=0;i for(int j=i+1;j if((d(i,j)==r+r[j])||(d(i,j)==r-r[j])||(d(i,j)==r[j]-r)) { p=new node; p- m=i; p- n=j; p- next=head; head=p; } return head; } (3) #include const int N=10; int fun() { int i,j,k,a[N][N],b[N][N],m,s,p; for(i=0;i for(j=0;j for(i=0;i for(j=0;j p=1; for(i=0;i m=1; for(j=0;j s=0; for(k=0;k 10;k++) s+=a[k]*b[k][k]; p*=b*(m+s); } return p; } (4)解题思想:根据题目要求把数组a和b扫描一次,即可求c。 #include const int m=3,n=4; void fun(float a[],float b[],float c[]) { float p; p=0; for(int k=0;k p=0; for(int i=0;i =m;i++) for(int j=0;j =n;j++) if(i+j==k) p+=a*b[j]; c[k]=p; } } 二、解题思想:这实际上是积分过程的模拟,在区间[o,N]上,可以先划分出N个小区间,如果不能满足题目的精确度,则继续划分成2×N个区间,那么当区间个数足够多时,总可以满足精确度要求。在判断误差时,可以使用积分大和与积分小和相减的方法。 设计程序如下: #include #include double function(int N,double e) { double s1=0,s2=10; float M=N; while (fabs(s2-s1) =e) { s1=0;s2=1; for(int i=0;i s1=F(i*N/M)*N/M+s1; s2=F((i+1)*N/M)*N/M+s2; } N=M*2; } return s1; } 三、解题思想:用直接插入排序法进行集合的并运算,可以保证集合中没有相同的元素。其中集合元素产生时用到了函数指针。 #include typedef int(*MenuFun)(int); int F1(int x){return x*x+1;} int F2(int x){return 2*x*x+1;} int F3(int x){return 3*x*x+1;} int F4(int x){return 4*x*x+1;} int F5(int x){return 5*x*x+1;} int F6(int x){return 6*x*x+1;} int F7(int x){return 7*x*x+1;} int F8(int x){return 8*x*x+1;} int F9(int x){return 9**x+1;} int F10(int x){return 10*x*x+1;} MenuFun F[10]={F1,

文档评论(0)

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

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

1亿VIP精品文档

相关文档