最新C语言习题及解答.doc
《最新C语言习题及解答.doc》由会员分享,可在线阅读,更多相关《最新C语言习题及解答.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品资料C语言习题及解答.C语言习题及解答1、输入一个华氏温度,要求输出摄氏温度。公式为#include void main( )float C,F; printf(Input F:); scanf(%f,&F); C=5.0/9*(F-32); printf(C=%.2fn,C);2、编写程序,从键盘输入一个大写字母,将它转换为对应的小写字母后输出。(提示:同一个字母的大写比小写小32)#include void main( ) char ch; printf(Input ch:); scanf(%c,&ch); ch=ch+32; printf(“ch=%cn,ch);3、编写程序,输入梯
2、形的上底、下底和高,计算并输出梯形的面积。 #include void main( ) float a,b,h,area; printf(Input a,b,h: ); scanf(%f%f%f, &a,&b,&h); area=(a+b)*h/2; printf(area=%.2fn, area);4、编写程序,输入圆半径r,求圆周长、圆面积、圆球表面积、圆球体积。#include #define PI 3.1415926void main( )float r,L,s1,s2,V; printf(Input r:); scanf(%f, &r); L=2*PI*r; s1=PI*r*r; s
3、2=4*PI*r*r; V=4.0/3*PI*r*r*r; printf(L=%.2f, s1=%.2f, s2=%.2f, V=%.2fn, L,s1,s2,V);5、有三个电阻r1、r2、r3并联,编写程序计算并输出并联后的电阻r。已知电阻并联公式为:#include void main( ) float r,r1,r2,r3; printf(Input r1,r2,r3: ); scanf(%f%f%f, &r1,&r2,&r3); r=1/(1/r1+1/r2+1/r3); printf(r=%.2fn, r);6、由键盘输入一个10-99之间的整数,将该数分解,分别输出其个位数字和十
4、位数字。例如,输入85,输出:5,8。提示:用算术运算中的整除和取余运算实现。#include void main( )int x, a, b; scanf(%d, &x); a=x%10;b=x/10;printf(“a=%d, b=%dn, a, b);7、编写程序,输入三角形的三条边,计算并输出三角形的面积。(注意输入的三条边必须要能构成一个三角形)求三角形的面积公式为其中s=(a+b+c)/2。 #include #include void main( )scanf(%f%f%f, &a,&b,&c);s= (a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c)
5、;printf(area=%.2fn, area);8、周期为T秒的人造卫星离地面的平均高度H的计算公式为:其中:M=61024kg是地球质量,R=6.371106m是地球半径。编写程序,输入人造卫星的周期T,计算并输出人造卫星离地面的高度H。 算法提示:求xy结果的数学函数是pow(x, y) #include #include #define PI 3.1415926void main( )double M=6E24,R=6.371E6,T,H,x; printf(Input T: ); scanf(%lf,&T); x=6.67E-11*M*T*T/(4*PI*PI); H=pow(x,
6、1.0/3)-R; printf(H=%.2En, H);9、求任意三个整数的平均值。要求:输入数据与输出结果都应有相应的提示信息。且输出数据取小数点后两位数字显示。#include void main( )float a,b,c,ave;printf(“Input 3 numbers:”);scanf(%f%f%f, &a,&b,&c);ave= (a+b+c)/3;printf(“average=%.2fn, ave);10、输入一个字符,并输出。其中有一个条件是如果该字符是小写的英文字母,则需把它转换成大写字母再输出。#include void main( )char ch; print
7、f(Input ch: ); scanf(%c, &ch); if (ch=a&ch=z) ch=ch-32; printf(%cn, ch);11、输入年号,判断并输出该年是否为闰年。所谓闰年,是指能被4整除,但不能被100整除;或能被400整除的年份。#include void main( )int year;printf(Input year: );scanf(%d,&year); if (year%4=0&year%100!=0|year%400=0)printf(%d is a leap year.n,year);else printf(%d is not a leap year.n
8、,year);12、编写程序,输入一个字符存入变量ch中,根据该字符的ASCII码值判断并输出字符的类型,即字母(alpha)、数字(numeric)或其他字符(other)#include void main( ) char ch; printf(Input ch: ); scanf(%c, &ch); if (ch=A&ch=a&ch=0 & ch=9) printf(numericn); else printf(othern);13、有一个函数,编写程序,输入x的值,计算并输出y值。#include #include void main( )double x,y; printf(Inpu
9、t x: ); scanf(%lf, &x); if (x-1) y=x*x*x-1; else if (x=1) y=-3*x+1; else if (x=10) y=3*exp(2*x-1)+5;else y=5*x+3*log10(2*x*x-1)-13;printf(y=%.2fn, y);14、从键盘输入三个数,代表三条线段的长度。请编写程序,判断这三条线段组成的三角形是什么类型(等边、等腰、不等边或不能构成三角形)。#include void main( )float a,b,c; printf(Input a,b,c:);scanf(%f%f%f,&a,&b,&c);if (a+
10、b=c | b+c=a | c+a=b) printf(It is not a triangle!n);else if (a=b&b=c) printf(It is a equilateral triangle!n);else if (a=b|b=c|c=a) printf(It is a isosceles triangle!n);else printf(It is a common triangle!n);15、简单选择界面的编程,要求用switch实现多分支。从键盘输入整数,输出不同的字符串: 输入1,输出Good morning; 输入2,输出Good afternoon; 输入3,输
11、出Good evening; 输入4,输出Good night; 输入其它数字,输出Bye-bye。#include void main( ) int x; printf(Input x: ); scanf(%d, &x); switch(x) case 1: printf(Good morningn); break; case 2: printf(Good afternoonn); break; case 3: printf(Good eveningn); break; case 4: printf(Good nightn); break; default: printf(Bye byen)
12、; 16、从键盘输入若干整数,以0结束,判断并输出其中的最大数。#include void main( )int x,max;Scanf(“%d”,&x);max=x;While(x!=0)if(xmax)max=x;Scanf(“%d”,&x);printf(max=%dn,max); 17、输入一行字符,以回车键作为结束标志,分别统计出大写字母、小写字母、空格、数字和其它字符的个数。 while (ch!=n) if (ch=A&cn=a&ch=0&ch=9) d=d+1;else e=e+1; #include void main( ) char ch; int a=0,b=0,c=0,
13、d=0,e=0; printf(Input a string: ); while (ch=getchar( )!=n) if (ch=A&cn=a&ch=0&ch=9) d=d+1; else e=e+1; printf(%d,%d,%d,%d,%dn,a,b,c,d,e);数学表达式的写法:x=6.67E-11*M*T*T/4*PI*PI; x=6.67E-11*M*T*T/(4*PI*PI); x=6.67E-11*M*T*T/4/PI/PI; x=pow(6.67E-11*M*T*T/(4*PI*PI),1.0/3); 2 、scanf、printf函数的格式:scanf(%f%f%f,
14、&a,&b,&c); /双引号间不要加其它任何符号scanf(%lf%lf%lf,&a,&b,&c); /double型输入时应使用%lfprintf(area=%.2fn,area); /printf函数中常加其它说明字符数学函数的使用方法;同时需加上#include double pow(double x,double y);4、方法一:使用scanf函数scanf(%c,&ch); /读入第一个字符while (ch!=n) if () scanf(%c,&ch); /读入其它字符/循环之前读入第一个字符,以便第一次判断表达式是否成立;循环体最后读入下一个字符,以便判断循环是否继续执行5
15、、5/9.0*(F-32)5.0/9.0*(F-32)5*(F-32)/918、分别用while、do-while和for语句计算 (即求1!+2!+3!+20!),并试着简化程序。 #include void main( )int i;double fact,sum;i=1; sum=0;fact=1;while (i=20)fact=fact*i; sum+=fact; i+; printf(%.0lfn,sum);19计算: #include void main( ) int n=1; double sum=0; while (n=10) sum+=n*n+n-2.3; n+; prin
16、tf(%lfn,sum); 20、输出所有的水仙花数。水仙花数是指一个3位数,各位数字的立方和等于该数本身,例如153=13+53+33。分析:对每一个3位数来说,分解出它们的个位、十位和百位,然后判断它们的立方和是否等于该数本身。 #include void main( ) int i,a,b,c; printf(The narcissus numbers are: );for (i=100; i=999; i+)a=i/100;b=i%100/10;c=i%10;if (i=a*a*a+b*b*b+c*c*c) printf(%d ,i);21.有一分数序列 求出这个数列的前20项之和。
17、之和。 #include void main( ) int i; double a,b,sum=0; a=2;b=1; for (i=1;i=20;i+) sum+=a/b;a=a+b;b=a-b; printf(sum=%lfn,sum);22、用循环语句编写程序,输出如下图案:* * * * * * * * * * * * * * * * * * * * *#include void main( ) int i,j; for (i=1;i=6;i+) /输出一行 for (j=1;j=i-1;j+) /输出空格 printf( );for (j=1;j=7-i;j+) /输出*printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 语言 习题 解答
限制150内