C语言作业部分参考答案.doc_第1页
C语言作业部分参考答案.doc_第2页
C语言作业部分参考答案.doc_第3页
C语言作业部分参考答案.doc_第4页
C语言作业部分参考答案.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作业部分循环2.编程,输入个正实数eps,计算并输出下式的值,直到最后一项的绝对值小于eps。 输入输出示例:Input eps:0.00001 S = 0.866967解:#include #include #include void main()float sig=1.0,term=1.0,sum=0.0;float eps; int n=1;printf(please input the value of precision eps: n);scanf(%f,&eps);while(fabs(term)=eps) sum=sum+term;sig=-1*sig;n=n+4;term=sig*1/n; printf(the sum is %f,sum);数组1.设数组a的定义如下:int a20=2,4,6,8,10,12,14,16;,已存入数组中的数据值已经按由小到大存放,现从键盘输入一个数据,把它插入到数组中,要求插入新数据以后,数组中值的序仍然保持不变,即升序。请编写一个程序实现上述功能。解法一:#include void main()int a20=2,4,6,8,10,12,14,16;int x,i,j;printf(please input one integer value:n);scanf(%d,&x);for (i=0;i=x)for (j=7;j=i;j-) aj+1=aj;ai=x; break;if (i=8)ai=x;for (i=0;i=8;i+)printf(%dt,ai);3.编写一个程序判定用户输入的一串字符是否为“回文”,所谓回文就是这串字符正读反读都一样。例、“aba”,“bhuuhb”是回文。解:#include #include void main()char string100;int i=0,length,j;printf(请输入一串字符:n);gets(string);length=strlen(string);j=length-1;printf(%sn,string);while (i(length-1)/2)printf(字符串%s是回文!n,string);else printf(字符串%s不是回文!n,string);printf(n);函数(2).写一程序,当给出年、月、日,程序可以计算该日是该年的第几天?解:#include int count_day(int,int,int);void main() int year,month,day,day_count;printf(please input year value,month value and day value:n);printf(year value is:);scanf(%d,&year);printf(month value is:);scanf(%d,&month);printf(day value is:);scanf(%d,&day); day_count=count_day(year,month,day); printf(The day is in %d days in a year!n,day_count); int count_day(int y,int m,int d)int flag,i,num=0;int leap13=0,31,29,31,30,31,30,31,31,30,31,30,31;int noleap13=0,31,28,31,30,31,30,31,31,30,31,30,31;if(y%4=0&y%400=0)|(y%4=0&y%100!=0) flag=1;if (flag=1)for(i=1;im;i+)num=num+leapi;else for(i=1;im;i+)num=num+noleapi;num=num+d;return(num);(3).编程,输入3个整数x、y、z,计算并输出s=x!+y!+z!。要求定义2个函数,一个是求阶乘的递归函数,另一个函数求累加和(使用static变量)。输入输出示例:Input x,y,z: 5 6 7Sum=5880解:#include int factor(int);int sum(int);void main() int x,y,z;printf(please input values of x,y,z:n);scanf(%d,%d,%d,&x,&y,&z);sum(x);sum(y);printf(the sum of x,y,z is %dn,sum(z);int factor(int n)int r;if (n=0|n=1)r=1;else r=n*factor(n-1);return(r);int sum(int m)static int s=0;s=s+factor(m);return(s);(4).完成以下程序的编写。a.写一个函数int digit(int n,int k),它返回数n的从右边向左的第k个十进数字位值。例如,函数调用digit(1234,2)将返回值3。b.写一个函数int isprime(int n),当n是质数时,函数返回非零值;当n是合数时,函数返回零值。c.写一个函数reverse(char s),将字符串s中的字符存储位置颠倒后重新存于s中。试分别用递归和非递归两种形式编写。d.写一个主函数输入测试数据(自己指定),并调用上述函数,检查函数功能的正确性。解:#include #include int digit(int n,int k);int isprime(int n);void inverse(char string100,int);void main()int n,k,m,x,i;char string100; printf(please input value of n and k:n); scanf(%d%d,&n,&k);x=digit(n,k);printf(the value is %dn,x);printf(please input value of m:n); scanf(%d,&m);x=isprime(m);if (x!=0)if (x=1)printf(the m=1 is not in prime and primen);else printf(the m is primen);else printf(the m is not primen);printf(please input one string:n); fflush(stdin);gets(string);printf(n);puts(string); n=strlen(string);inverse(string,n);for (i=0;in;i+) printf(%c,stringi);printf(n);在另一个文件中#include #include #include int digit(int n,int k)int i,m;for(i=1;ik;i+)n=n/10;m=n%10;return m;int isprime(int n)int k,i,m;if (n=1) return 1;else k=sqrt(n);for (i=2;i=k;i+)if (n%i=0)i=n;break;if (i=n)m=0;return 0;else return 2;void inverse(char string100,int n)char t;int k;for (k=0;k=(n-1)/2;k+) t=stringn-1-k;stringn-1-k=stringk;stringk=t;上机部分(4)编写一个程序打印如下图形:(行数由键盘输入(19)范围的值)例下面是输入4的情况。 4444444 33333 222 1 222 33333 4444444解法一:#include void main() int i,j,n,k,m; printf(please input the value of n:n); scanf(%d,&n); printf(n); i=1; j=n; while(i=2*n-1) if(i=n) while (i0;) printf( ); m+; for (k=1;k=2*j-1;k+)printf(%d,j); printf(n);i+;j-; else j=j+2; /由于这时j0,为了打印出2,所以这里需要加上2,i只控制打印的/行数,所以不必改变值while (i0;) printf( ); m+; for (k=1;k=2*j-1;k+)printf(%d,j); printf(n);i+;j+; 解法二

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论