C语言作业题总结.doc_第1页
C语言作业题总结.doc_第2页
C语言作业题总结.doc_第3页
C语言作业题总结.doc_第4页
C语言作业题总结.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、编写程序:从键盘输入两个数,计算两个数的和、差、积、商,将这些结果输出。(有能力的同学,可以试一试完成一个简单的计算器)# include # include int main()float r1,r2,p1,p2,p3,p4;r1=8;r2=2;p1=r1+r2;p2=r1-r2;p3=r1*r2;p4=r1/r2;printf(p1=%fnp2=%fnp2=%fnp4=%fn,p1,p2,p3,p4);return 0;按要求编写程序,并上机运行。题目为:设半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积,圆柱体积。用scanf输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。# include# define PI 3.14void main()float r,h,C1,S1,S2,V1,V2;scanf (%f%f,&r,&h);C1=2*PI*r;S1=PI*r*r;S2=4*PI*r*r;V1=4.0/3*PI*r*r*r;V2=PI*r*r*h;printf (C1=%.2fnS1=%.2fnS2=%.2fnV1=%.2fnV2=%.2fn,C1,S1,S2,V1,V2);编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。#includevoid main() char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(n); printf(%cn,c2); return 0;(1).给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90-100分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。 再运行一次程序,输入分数为负值(如70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。#includevoid main()float score;scanf(%f,&score);if(score100|score=90)printf(An);else if(score=80)printf(Bn);else if(score=70)printf(Cn);else if(score=60)printf(Dn);else printf(En);#includeint main()float score;scanf(%f,&score);if(score100|score0)printf(输入数据错n);return 0;switch(int)score/10)case 10:case 9:printf(An);break;case 8:printf(Bn);break;case 7:printf(Cn);break;case 6:printf(Dn);break;default:printf(En);break;return 0;(2).给一个不多于6位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字,例如原数为321,应输出123。应准备以下测试数据:l 要处理的数为1位正整数;l 要处理的数为2位正整数;l 要处理的数为3位正整数;l 要处理的数为4位正整数;l 要处理的数为5位正整数。要处理的数为6位正整数。除此之外,程序还应当对不合法的输入作必要的处理。例如:l输入负数;l输入的数超过6位(如123 456)。(2) # includeint main()long int x;int y,z=0,i=0; printf(请输入一个不超过1000000的整数:); scanf(%ld,&x);if(x999999|x999999) printf(输入的数超过6位n);else if(x1) printf(输入为负数n);return 0;else while(x!=0)y=x%10;printf(%dt,y);x=x/10;i=i+1;printf(n这个数共有%d位n,i);return 0;(3). 输入4个整数,要求按由小到大顺序输出。得到正确结果后,修改程序使之按由大到小顺序输出。#include int main()float a,b,c,d,t;scanf(%f,%f,%f,%f,&a,&b,&c,&d);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(ad)t=a;a=d;d=t;if(bc)t=b;b=c;c=t;if(bd)t=b;b=d;d=t;if(cd)t=c;c=d;d=t;printf(%5.2f,%5.2f,%5.2f,%5.2fn,a,b,c,d);return 0;(4). 根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。#include #include int main() int a,b,c,s,area; printf (请输入三角形三条边:); scanf(%d,%d,%d,&a,&b,&c); if (a+bc|a+cb|b+ca) if(a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a) printf(直角三角形); else if(a*a+b*bc*c|a*a+c*cb*b|b*b+c*ca*a) printf(锐角三角形); else if(a*a+b*bc*c|a*a+c*cb*b|b*b+c*cn,观察结果是否正确。再输入时,使mn,观察结果是否正确。修改程序,不论m和n为何值(包括负整数),都能得到正确结果。# include int main() int m,n,t,a,f; printf (请输入两个正整数m,n:n); scanf(%d,%d,&m,&n); if(mn) t=m;m=n;n=t; f=m*n; for ( ; a=m%n; m=n,n=a) if(a=0)break; if(a!=0)continue; printf(最大公约数为%dn,n); printf(最小公倍数为%dn,f/n); return 0;# include int main() int m,n,t,a,p; printf (请输入两个正整数:); scanf(%d,%d,&m,&n); if(mn) t=m; m=n; n=t; ; P=m*n; while(n!=0) a=m%n; m=n; n=a; printf(最大公约数为%dn,n); printf(最小公倍数为%dn,p/a); return 0;(2). 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。#includeint main()char c;int l=0,i=0,j=0,k=0;printf(请输入一行字符:n);while(c=getchar()!=n) if(c=0&c=a&c=A&c=Z) j+;else if (c= ) k+; else l+;printf(数字个数为:%dn,英文字母个数为:%dn,空格个数为:%dn,其他字符为:%dn,i,j,k,l);return 0;(3). 用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。在得到正确结果后,请修改程序使所设的x初值由1.5改变为100、1000、10000,再运行,观察结果,分析不同的x初值对结果有没有影响,为什么?修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同的x初始值对迭代的次数有无影响。#include#includeint main()float x,x0,y,y1;int i=0; printf(请输入x:); scanf(%f,&x); do x0=x; y=2*x0*x0*x0-4*x0*x0+3*x0-6; y1=6*x0*x0-8*x0+3; x=x0-y/y1; i+; printf(x=%5.2fn,x); while (fabs(y)1e-5); printf(x=%fn,x); printf(i=%dn,i); return 0; (1). 写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。本程序应当准备以下测试数据:17、34、2,1、0。分别输入数据,运行程序并检查结果是否正确#include#includevoid main()int a,b;int prime(int a);printf(请输入一个数:); scanf(%d,&a);b=prime(a);if(b) printf(%d是一个素数,a);else printf(%d不是一个素数,a);int prime(int a)int i,flag=1;for(i=2;isqrt(a);i+)if (a%i=0) flag=0;break;return flag;(2). 用一个函数来实现将一行字符串的内容按反序存放,在主函数中输入和输出字符串把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。#include#includevoid main()char a100;void conver(char str100);gets(a);conver(a);puts(a);void conver(char str100)int i,j;char t;i=0;j=strlen(str)-1;for(;ij;i+,j-)t=stri;stri=strj;strj=t;(1). 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意的整数。#include int main()int n;printf(请输入整数:); void tochar(int n);scanf(%d,&n); tochar(n);return (0);void tochar(int n) if (n10) putchar(n+0); else tochar(n/10); putchar(n%10+0); (2). 求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。#includevoid main()int Maximum(int n,int m); int Minimum(int n,int m); int a,b,c,d;printf(请输入两个整数n);scanf(%d%d,&a,&b);c=Maximum(a,b);d=Minimum(a,b);printf(最大公约数是%dn最小公倍数是 %dn,c,d);int Maximum(int n,int m) int r,t;if(mn) t=n;n=m;m=t;r=n%m;while(r!=0) n=m; m=r; r=n%m; return m;int Minimum(int n,int m) return n*m/Maximum(n,m);(1). 输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。 #include void main() void msort(int *a,int *b,int *c);int a,b,c;scanf(%d%d%d,&a,&b,&c);msort(&a,&b,&c);printf(%d %d %dn,a,b,c);void msort(int *a,int *b,int *c)int t; if(*a*b)t=*a;*a=*b;*b=t;if(*a*c)t=*a;*a=*c;*c=t;if (*b*c)t=*b;*b=*c;*c=t;(2). 用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp (char * p1, char * p2);设p1指向字符串s1,p2指向字符串s2,要求当s1s2时,函数返回值为 0, 如果sls2,则返回它们二者第一个不相同字符的ASCII码差值(如“BADY”与“BAD”的第二个字母不相同,“O”与“A”之差为7965=14);如果sls2,则输出正值;如果sls2则输出负值。两个字符串s1、s2由main

温馨提示

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

评论

0/150

提交评论