北理c语言上机答案(全).pdf
《北理c语言上机答案(全).pdf》由会员分享,可在线阅读,更多相关《北理c语言上机答案(全).pdf(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1练习两个整数之间的运算背景:基本练习。输入:接受两个整数,每个整数之间使用空格分隔。例如输入格式为:1 2 3 4 4 4输出:分别输出进行+、-、*、/、*之后的运行结果。程序实例1:#i n c l u d e v o i d m a i n()i n t a,b,c,d,e,f,g;s c a n f (d%d,&a,&b);p r i n t f (z/%d+%d=%d nz/,a,b,c=a+b);p r i n t f (,/%d-%d=%d n,/,a,b,d=a-b);p r i n t f (d*%d=%d n,a,b,e=a*b);p r i n t f (,z%d/%d
2、=%d nz,,a,b,f=a/b);p r i n t f C,%d%d=%d n,/,a,b,g=a%b);)结果:输入:1 0 3输出:1 0+3=1 31 0-3=71 0*3=3 01 0/3=31 0%3=l程序实例2:#i n c l u d e v o i d m a i n ()i n t x l,x 2,x 3,x 4,x 5,a,b;s c a n f (%d%d,&a,&b);x l=a+b;x 2=a-b;x 3=a*b;x 4=a/b;x 5=a%b;p r i n t f (z,%d+%d=%d n%d-%d=%d n%d*%d=%d n%d/%d=%d n%d%
3、d=%dz,,a,b,x l,a,b,x 2,a,b,x 3,a,b,x 4,a,b,x 5);)结果:输入:1 2 3 4 4 4输出:1 2 3+4 4 4=5671 2 3-4 4 4二-3 2 11 2 3*4 4 4=54 61 21 2 3/4 4 4=01 2 3%4 4 4=1 2 31学习打印你的第一个图形背景:我们已经学习了 p r i n t f 函数,这里给出了一个小程序,它运行的结果是输出一个由星号(*)组成的4*4 的正方形。程序如下:#i n c l u d e v o i d m a i n()(p r i n t f(*n);p r i n t f(*n);p
4、 r i n t f(*n);p r i n t f(*n);)要求:按照上面的程序范例,编写一个小程序,要求输出的是4行由*号组成的等腰三角形。输入:无。输出:指定图形。程序实例1:#i n c l u d e i n t m a i n(v o i d )(p r i n t f(*n );p r i n t f(;p r i n t f(*n );p r i n t f(*n );r e t u r n 0;结果:输入:无输出:*程序实例2:#i n c l u d e s t d i o.h m a i n()(p r i n t f (z,*n);p r i n t f(*n);p
5、r i n t f (,z*n);p r i n t f(*n);)结果:输入:无输出:*1温度转换(0 6秋)二 匕 旦目乐:经常出国旅行的驴友都知道,需要时时了解当地的气温状况,但不少国家采用了不同的温度计量单位:有些使用华氏温度标准(F),有些使用摄氏温度(C)o现在,请你根据温度转换公式设计一个温度转换程序,可以进行温度转换。如果输入摄氏温度,显示转换的华氏温度;如果输入华氏温度,显示转换的摄氏温度。温度转换的公式为:F=(C x 9/5)+3 2 ;C=(F-3 2)x 5/9 ;式中F华氏温度,C一摄氏温度。输入:第一个数据(1或2 )确定转换的类型:华氏转摄氏(1);摄氏转华氏(
6、2);第二个数据是相应需要转换的温度值。输出:相应的转换后的温度值(保留小数点后2位)。程序实例1:#i n c l u d e v o i d m a i n()i n t a;f l o a t x,y;scanf&a,&x);i f (a=l )y=(x-3 2)*5.0/9.0;p r i n t f (,zTh e Ce n t i g r a d e i s%.2 f n,y);e l s e i f(a=2)y=(x*9.0/5.0)+3 2;p r i n t f(Th e Fa h r e n h e i t i s%.2 f n,y);)结果:输入:1 1 0 0输出:Th
7、 e Ce n t i g r a d e i s 3 7.78输入:2 -6.67输出:Th e Fa h r e n h e i t i s 1 9.99程序实例2:#i n c l u d e v o i d m a i n()f l o a t C;i n t a;s c a n f (d%f,z,&a,&C);s w i t c h (a)c a s e 1:p r i n t f (Th e Ce n t i g r a d e i s%.2 f n ,(0 3 2)*5/9);b r e a k;c a s e 2:p r i n t f (z,Th e Fa h r e n h
8、 e i t i s%.2 f n ,(C*9/5)+3 2);b r e a k;d e f a u l t:p r i n t f(e r r o r n);)结果:输入:1 0输出:Th e Ce n t i g r a d e i s -1 7.78输入:2 88输出:Th e Fa h r e n h e i t i s 1 90.4 02 计算圆柱的侧面积及体积如果已知圆柱的底面半径r ,以及高h ,则可计算出圆柱的侧面积s=2 J i rh,体积r 2h o 其中 n=3.1 4 1 592 6输入:第一行输入圆柱的底面半径r第二行输入圆柱的高h输出:s=,v=要求1 .所有变量
9、都定义为双精度类型2 .结果精确到小数点后两位程序实例1:#i n c l u d e#i n c l u d e v o i d m a i n()(d o u b l e r,h,s,v,P AI=3.1 4 1 592 6;s c a n f (z,%l f n%l f,z,&r,&h);s=2*P AI*r*h;v 二 P AI*r*r*h;p r i n t f (z zs=%.2 f,v 二%.2 f n ,s,v);)结果:输入:28输出:s=1 0 0.53,v=1 0 0.53程序实例2:#i n c l u d e v o i d m a i n()(d o u b l e
10、 p i=3.1 4 1 592 6;i n t r,h;s c a n f(%d,&r);s c a n f (级d ,&h);p r i n t f Cs=%5.2 f,v=%5.2 f n”,2*p i*r*h,p i*r*r*h);)输入:51 0输出:s=3 1 4.1 6,v=785.4 03计算时钟的夹角背景:钟 面 上 的 时 针 和 分 针 之 间 的 夹 角 总 是 在 之 间(包 括 和)。举例来说,在十二点的时候两针之间的夹角为,而在六点的时候夹角为,在三点的时候为。本题要解决的是计算12:0 0 到11:59 之间任意一个时间的夹角。输入:每组测试数据包含两个数字:第
11、一个数字代表小时(大 于 0小 于 等 于 1 2),第二个数字 代 表 分(在 区 间 0,59 )o输出:对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。程序实例1:#includevoid main()float x,y,z;scanf(%f%f”,&x,&y);z=6*y-(3 0*x+y/2);if(z=-18 0)z+=3 60;else if(z=18 0)z=3 60-z;else z=z;if(y10)p rintf(Z/A t%.O f:0%.O f the angle is%.I f degrees.x,y,z
12、);else p rintf C A t%.Of Of the angle is%.I f degrees.x,y,z);)输入:12 0输出:A t 12 :0 0 the angle is 0.0 degrees.程序实例2:#include#includemain()int x,y;float z;scanf(d/d,&x,&y);z=fabs(3 0*x-(float)y*l1/2);z=z18 0?3 60-z:z;if(y0。输入:三角型的3 条边的长度(int型)。输出:等边三角形:equilateral triangle等腰三角形:isoceles triangle不构成三角形
13、:non-triangle一般三角形:triangle程序实例1:#includevoid main()int a,b,c;scanf(,z%d%d%dz,,&a,&b,&c);if(a+b=c|a+c=b|b+c=a)p rintf C non-triangle.,z);else if(a二二b&b二 二c)p rintf(,zequilateral triangle.z/);else if(a二二b&b!=c|a=c&c!=b|b=c&c!=a)p rintf(,zisoceles triangle.z,);else p rintf(z/triangle.z/);)结果:输入:2 2 2输
14、出:equilateral triangle.程序实例2:#includevoid main()(int a,b,c;scanf(d%d%d,&a,&b,&c);if(a二二b&b二二c&c二二a)p rintf C equilateral triangle.n);elseif(a+bc&a+cb&b+ca)(a=b|b=c|c=a)?p rintf(isocelestriangle.n):p rintf(triangle.n);else p rintf(z,non-triangle.nz,);结果:输入:1 3 1输出:non-triangle.5 求解一元二次方程初中的时候我们就会求解一元
15、二次方程了,下面让我们来教计算机如何求解。输 入a,b,c,就一元二次 方 程ax2+bx+c=0的根。输入:假 设a,b,c均int。输出:要求输出的根为double型,保 留6位小数。程序实例1:#include stdio.h#include math.void main()int a,b,c,a2;double xl=0,x2=0,q;scanf(d%d%d”,&a,&b,&c);q二b*b 4*a*c;a2=2*a;if(a=0)if(b=O)p rintf(I np ut error!n,z);else p rintf(x=%,6fn”,-c*L 0/b);)else if(q0)
16、p rintf(/zxl=%.6fnx2=%.6fnz/,(-b+sqrt(q)/a2,(-b-sqrt(q)/a2);else if(q=0)p rintf(xl=x2=%.6fn”,-b*L 0/a2);else if(q0)if(b=0)p rintf(/xl=%.6finx2=%.6fin”,sqrt(-q)/a2,-sqrt(q)/a2);elsep rintf(xl=%,6f+%.6finx2=%.6f-%.6fi”,-b*L 0/a2,sqrt(-q)/a2,-1.0*b/a2,sqrt(-q)/a2);)结果:输入:0 0 0输出:I np ut e r r o r!输入:2
17、2 2输出:xl=-0.50 0 0 0 0+0.8 660 2 51x2=-0.50 0 0 0 0-0.8 660 2 5i程序实例2:#include#include void main()double a,b,c,d;scanfC%lf%lf%ir,&a,&b,&c);d=b*b-4*a*c;if(a=0&b=0)elseelseelseelseelseif(a=0)if(d=0)if(d0)if(b=0)p rintf(I np ut error!n,z);p rintf(z/x=%lfnz/,c=0?0:-c/b);p rintfC xl=x2=%.61fn,b=O?O:-b/(2
18、*a);p rintf(/zxl=%lfnx2=%lfn,z,(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);p rintf(,xl=%lfinx2=-%lfinz,,sqrt(-d)/(2*a),sqrt(-d)/(2*a);p rintf(/zxl=%lf+%lfinx2=%lf-%lfin/z,-b/(2*a),sqrt(-d)/(2*a),-b/(2*a),sqrt(-d)/(2*a);结果:输入:10 0 0输出:xl=x2=0.0 0 0 0 0 0你会输出一行星号吗?(本题不记分噢)我们才开始上机,现在需要我们用最简单得办法,在一行中输出N个星号。输入:N
19、值输出:一行中N个星号。程序实例1:#includevoid main()(int n,i;scanf(%d,&n);for(i=l;i=n;i+)p rintf(*);p rintf(n);)结果:输入:4输出:*输入:8输出:*6计 算SUM的值已知公式:S U M =1+1/2 +1/3 +1/4 +.+1/n输入:n输出:表 达 式s u m的值。结果保留6位小数。程序实例1:#includevoid main()int n,k;double sum;scanf(d,&n);sum=l.0;for(k=2;k=n;k+)sum=sum+1.0/k;p rintf(,zsum=%.61f
20、n,sum);)结果:输入:1输出:sum=l.0 0 0 0 0 0程序实例2:#includevoid main()(double sum,i;int n;scanf(%d,&n);for(i=l,sum=0;i=n;i+)sum=sum+l/i;p rintf(sum=%.61f,sum);)结果:输入:3输 出:sum=1.8 3 3 3 3 37贪吃的猴子有一只猴子,第一天摘了若干个桃子,当即吃了一半,但还觉得不过瘾,就又多吃了一个。第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上都吃了前一天剩下的一半加天数个(例如,第 5 天吃了前一天剩下的一般加5
21、个)。到 第 n 天早上再想吃的时候,就只剩下一个桃子了。输入:天数n输出:第一天的桃子个数程序实例1:#include void main()int n,i,y;scanf(d”,&n);for(i=n-l,y=l;i=l;i)y=2*(i+y);if(y=l)p rintf(T he monkey got%d p each in first day.,y);if(y!=1)p rintf(T he monkey got%d p eachs in first day.”,y);)结果:输入:3输H l:T he monkey got 14 p eachs in first d ay.8 求最
22、后3 位数值中学时我们就会求一个数的n 次方了,但计算机不会,请你来编写一个程序吧。由于计算机比较笨,所以我们编写程序的功能不用太强,只要能算出a 的 n次方的最后3 位数就可以了。输入:和 n的值。假 设*=150 o输出:求 a 的 n次方的最后3 位数。程序实例1:#i n cl u d e v o i d m ai n()(i n t i,x,y,m=l;s can f(d&x,&y);f o r(i=l;i=y;i+)m=m*x%1000;i f(m=0)p r i n t f (,zTh e l as t 3 n u m be r s i s 000.n);e l s ep r i
23、 n t f(Th e l as t 3 n u m be r s i s%d.n,m);)结果:输入:10 0输出:Th e l as t 3 n u m be r s i s 1.程序实例2:#i n cl u d e v o i d m ai n()(i n t a,n,i,s;s can f (d%d”,&a,&n);i=l;s=l;w h i l e(i=n)s=s*a%1000;i+;i f (n!=0)p r i n t f (,zTh e l as t 3 n u m be r s i s%0.3d.n,z,s);e l s e p r i n t f (Th e l as t
24、 3 n u m be r s i s%d.n ,s);)结果:输入:100 10输出:Th e l as t 3 n u m be r s i s 000.9 分数的四则运算在小学时我们就学习了分数的四则运算,即对两个分数进行加、减、乘、除等运算,现在我们尝试下用C 语言来实现。输入:分 数 1 操 作 符 分 数 2输出:计算结果要求:计算结果使用分数表示,并且为最简化。例如结果为2/6,则被简化为1/3程序实例L#i n cl u d e i n t m ai n()(i n t a,b,c,d,e,f,x,y,z;ch ar g;s can f C%d/%d%c%d/%d,&a,&b,
25、&g,&c,&d);i f(g=,+)e=a*d+b*c;f=b*d;i f(g=,-)e=a*d-b*c;f=b*d;i f(g=,*,)e=a*c;f=b*d;i f(g=,r )e=a*d;f=b*c;x=e;y=f;z=x%y;i f(z!=O)(w h i l e (z!=0)x=y;y=z;z=x%y;e=e/y;f=f/y;i f(f 0)p r i n t f(%d/%d%c%d/%d =%d/%d”,a,b,g,c,d,e,f);i f (f 0)p r i n t f (z,%d/%d%c%d/%d =%d/%d,z,a,b,g,c,d,-e,-f);e l s e p r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北理 语言 上机 答案
限制150内