东北大学C语言程序+答案1.doc_第1页
东北大学C语言程序+答案1.doc_第2页
东北大学C语言程序+答案1.doc_第3页
东北大学C语言程序+答案1.doc_第4页
东北大学C语言程序+答案1.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

第一大题13.根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。(1)当x小于1时,y等于2+cos(x)(2)当x大于等于1且x小于2时,y等于x的平方加上sin(x)(3)当x大于等于2时,y等于(x-2)的平方根;要求:按格式输出x和y的值,要求小数点后保留2位。#include#includemain()float x,y;printf(请输入x:);scanf(%f,&x);if(x1)y=cos(x)+2;else if(x2)y=x*x+sin(x);elsey=sqrt(x-2);printf(%.2f,y);14. 从键盘读入一个实数,对其进行四舍五入处理,要求精确到到小数点后两位。例如输入12.345,其结果为12.35;输入12.341,其结果为12.34。#includemain()float x;printf(请输入一个小数:);scanf(%f,&x); x=x*100; x=int(x+0.5); x=x/100.0;printf(%.2fn,x);15.从键盘输入任意一个字母,如果其为大写字母,则转为小写字母;如果其为小写字母,请转换为大写字母;其他情况保持不变,计算并输出。#includemain() char x;printf(请输入一个字母: );scanf(%c,&x);if(x=a&x=A&x=Z)printf(%c ,x+32);elseprintf(%c ,x);16. 从键盘输入三个整数a、b、c,输出其中最大的数。#includemain()int a,b,c;printf(请输入三个整数:);scanf(%d%d%d,&a,&b,&c);if(ab)a=b;if(ac)a=c;printf(最大的数是%dn,a);17. 输入用单个字母表示的成绩信息,转换为百分制分数。说明:输入A,输出95;输入B,输出85;输入C,输出75;输入D,输出65;输入E,输出65.#includemain()printf(请输入一个字母: );char x;scanf(%c,&x);if(x=A)printf(95 );else if(x=B)printf(85 );else if(x=C)printf(75 );else if(x=D)printf(65 );else if(x=E) printf(65 );else printf(错误 );18. 输入一个3位的正整数,判定该正整数是否为一个回文数。(所谓回文数是指正读和反读都相同的数,例如131)。#includemain()printf(请输入一个三位数:);int x,a,b;scanf(%d,&x);a=x/100;b=x%10;if(a=b)printf(%d是一个回文数,x);elseprintf(%d不是一个回文数,x);19. 从键盘输入国际货币表示的商品价格,请转换为人民币。要求:仅仅考虑美元($)和欧元,汇率分别6和8。例如输入$100,输出600,输入E100,输出800#includemain()printf(请输入商品价格:);float x,y;char a;scanf(%c%f,&a,&x);if(a=$)y=x*6;printf(人民币为%fn,y);else if(a=E)y=x*8;printf(人民币为%fn,y);elseprintf(错误n);20. 从键盘输入三个整数,找处其最大和最小的数,并输出。#includemain()printf(请输入三个整数: );int a,b,c,x,t;scanf(%d%d%d,&a,&b,&c);x=a;if(ab)x=b;if(xb)t=b;if(ac)t=c;printf(最大值是%d,最小值是%d.n,x,t);21. 根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。(1)当x小于6时,y等于(1+x)(2)当x大于等于6且小于10时,y等于(x-2)的平方加1(3)当x大于等于10时,y等于sin(x)+2x#include#includemain()printf(请输入x: );float x,y;scanf(%f,&x);if(x6)y=x+1;else if(x10)y=(x-2)*(x-2)+1;elsey=sin(x)+2*x;printf(%.2fn,y);22. 根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。(1)当x小于5时,y=0(2)当x大于5且小于等于10时,y=sin(x)(3)当x大于10时,y=cos(x)+sin(x)#include#includemain()printf(请输入x: );float x,y;scanf(%f,&x);if(x5)y=0;else if(x10)y=cos(x)+sin(x);printf(%.2fn,y);42. 从键盘输入一个三位整数,计算其上下边界,例如123,其下边界为100,上边界为199,依此类推#includemain()printf(请输入一个三位整数:);int x,a,b;scanf(%d,&x);a=x/100;a=a*100;b=a+99;printf(上边界是%d,下边界是%d,b,a);43. 从键盘输入一个三位纯小数,计算其上下边界,例如0.123,其下边界为0.100,上边界为0.199,依此类推#includemain()printf(请输入一个三位纯小数:);float x,a,b;scanf(%f,&x);a=int(x/0.1);a=a*0.1;b=a+0.099;printf(上边界是%.3f,下边界是%.3f,b,a);第二大题23计算1-1/2+1/3-1/4+1/n的和,在主函数输入n,计算输出结果。#include#includevoid main()printf(请输入一个整数:);float x,n,y;y=0;scanf(%f,&n);for(x=1;x=n;x+)y=y+pow(-1,x-1)*1/x;printf(%fn,y);24从键盘输入一个自然数,判定其是否为完数,如果是,输出Yes,否则输出No。完数是指一个整数的所有因子之和等于其自身的数,例如6=1+2+3。#includevoid main()printf(请输入一个整数:);int a,b,i;b=1;scanf(%d,&a);for(i=2;ia;i+)if(a%i=0)b=b+i;if(b=a)printf(Yesn);elseprintf(NOn);25计算1/2,2/3,3/5,5/8,8/13,13/21, 的前10项和,并输出结果。#includevoid main()float m,x,y,a,b,i,q,p;a=1;x=2;b=2;y=3;m=a/b;for(i=1;i=2;i+)?m=m+x/y;q=x;x=x+a;a=q;p=y;y=y+b;b=p;printf(%fn,m);26计算分数序列:2/1,3/2,5/3,8/5,13/8,21/13,的前10项之和并输出。#include#includevoid main()float y,n,i,m,q,w,a,b;y=2;n=3;m=2;q=2;w=1;for(i=1;i=9;i+)m=m+pow(-1,i)*n/y;a=n;n=n+q;q=a;b=y;y=y+w;w=b;printf(%fn,m);27从键盘读入一个自然数,判定其是否为素数,如果是,输出Yes,否则输出No#includemain()printf(请输入一个整数:);int i,x,a;scanf(%d,&x);for(i=2;ix;i+)if(x%i=0)a=1;break;if(x%i!=0)a=0;continue;if(a=1)printf(Non);elseprintf(yesn);28由x,y二个数字组成二位数xy和yz,且xy+yz=102。如果有解,输出所有解,否则输出无解这道题不知道z是从哪来的,所以答案仅供参考!我把z看成x#includevoid main()int x,y,z;for(x=1;x=10;x+)for(y=1;y=10;y+)z=x*10+y+y*10+x;if(z=102)printf(%d %dn,x,y);if(x=10)printf(无解n);29计算Fibonacci数列中前5项的和。提示:Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n1)F(n2)。#includemain()int a,b,c,i,w;b=1;a=0;c=0;for(i=1;i=4;i+)a=a+b;w=b;b=b+c;c=w;printf(%dn,a);30计算全部水仙花数的和(提示:“水仙花” 数是指一个三位数,其各位数字的立方和等于该数本身,例如:153).#include#includemain()int x,a,b,c,y;for(x=100;x=999;x+)a=x/100;b=x/10-a*10;c=x%10;y=pow(a,3)+pow(b,3)+pow(c,3);if(y=x)printf(%d ,x);31计算S=1-1/12+1/12-1/12+1/12-1/102的值,并输出这道题我不懂他是什么意思 所以没做出来!32计算1/1+1/(1+2)+1/(1+2+3)+1/(1+2+n)的,要求小数点后保留6位#includevoid main()float i,a,n,m;printf(请输入n:);scanf(%f,&n);m=0;for(i=1;i=n;i+)a=i*(i+1)/2;m=m+1/a;printf(%fn,m);44由x,y二个数字组成二位数xx和yz,且xy+yz=124。如果有解,输出所有解,否则输出无解#includevoid main()int x,y,z;for(x=1;x=10;x+)for(y=1;y=10;y+)z=x*10+y+y*10+x;if(z=124)printf(%d %dn,x,y);if(x=10)printf(无解n);45输出公元1000至今的所有闰年的数量#includemain()int x;for(x=1001;x=2014;x+) If(x%400=0) printf(%dn,x);if(x%100!=0)if(x%4=0)printf(%dn,x);第三大题7在物理实验中,获得5个数据0.89,0.78,0.0009,0.67,0.56,其中有一个数据小于0.001,此数据无效,将此无效数据删除。要求编制函数cleandata(double *p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#include#includevoid cleandata(double *p)int a,b,c;for(a=0;a4;a+)printf(%lf ,pa);printf(%lfn,p4);for(b=0;b5;b+)if(pb0.001)break;for(c=0;cb;c+)printf(%lf ,pc);for(c=b+1;c5;c+)printf(%lf ,pc);int main()double s5=0.89,0.78,0.0009,0.67,0.56; double *p; p=s;cleandata(p);return 0;8编写函数clear(char *t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoid clear(char *t) char b100;int i,d,n;d=0;for (n=0;n100;n+)bn=0;for(i=0;i100;i+)if(ti=a|ti=A)bd=ti;d+;printf(%sn,b);int main()char s100;printf(请输入字符串:);gets(s);char *t;t=s;clear(t);return 0;9已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int *p,int d)实现此功能,在主函数调用此函数。提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。#includevoid insert(int *p,int d)int a,b,c;for(a=0;a5;a+)printf(%d ,pa);printf(%dn,p5);for(b=0;b6;b+)if(dpb)break;for(c=0;cb;c+)printf(%d ,pc);printf(%d ,d);for(c=b;c6;c+)printf(%d ,pc);main()int *p;int s6=1,2,4,6,12,14;p=s;int d;printf(请输入一个整数:);scanf(%d,&d);insert(p,d);return 0;12从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。若存在,则删除此数;否则,提示此数不存在。要求:编制函数remove(double *p,double d)实现数据的清理工作,并输出原始数据和删除后的数据。33编写函数strcat(char *t,char *s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#includevoid strcat(char *t,char *s)int a,b,c;a=strlen(t);c=0;for(b=0;b100;b+)if(sb=0)ta+c=sb;c+;printf(%sn,t);main()char *t,*s;char m100,n100;int d;for(d=0;d100;d+)md=0;printf(请输入第一个字符串:);gets(m);printf(请输入第二个字符串:);gets(n);t=m;s=n;strcat(t,s);return 0;34编写函数clear(char *t)将字符串t中的全部英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#includevoid clear(char *t)char a100;int i,m;m=0;for(i=0;i100;i+)if(tiZ|tiz)am=ti;m+;printf(%sn,a);main()char *t;char s100;printf(请输入字符串:);gets(s);t=s;clear(t);return 0;35编写函数astrcat(char *t,char *s)将字符串s中的全部大写字符连接到字符串t的尾部,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoid astrcat(char *t,char *s)int i,j,m,n;j=0;m=strlen(t);n=strlen(s);for (i=0;i=A&si=Z)tm+j=si;j+;printf(%sn,t);main()char *t,*s;char a100,b100;int x;for (x=0;x100;x+)ax=0;printf(请输入第一个字符串:);gets(a);printf(请输入第二个字符串:);gets(b);t=a;s=b;astrcat(t,s);return 0;36编写函数mstrcpy(char *t,char *s,int m)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoid mstrcpy(char *t,char *s,int m)int i,n,b;n=strlen(t);b=0;for(i=m-1;i100;i+)tn+b=si;b+;printf(%sn,t);main()char *t,*s;char f100,d100;int m;printf(请输入第一个字符串:);gets(f);printf(请输入第二个字符串:);gets(d);printf(请输入一个整数:);scanf(%d,&m);t=f;s=d;mstrcpy(t,s,m);return 0;37编写函数nstrcat(char *t,char *s)将字符串s中的全部数字字符连接到字符串t的尾部。#include#includevoid nstrcat(char *t,char *s)int a,b,c;c=0;b=strlen(t);for(a=0;a100;a+)tb+c=sa;c+;printf(%sn,t);main()char *t,*s;char m100,n100;int z;for(z=0;z100;z+)mz=0;printf(请输入第一个字符串:);gets(m);printf(请输入第二个字符串:);gets(n);t=m;s=n;nstrcat(t,s);return 0;38编写函数itoa(int n,char *p)实现将整数n转换为字符串存储到p中。要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。这道题我也不太懂,做的可能是错的!#includevoid itoa(int n,char *p)int i;for(i=0;i100;i+)pi=0;p

温馨提示

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

评论

0/150

提交评论