1、BD11121314151617181920212223242526272829303132333435363738394041424344454647484950二、填空题1. 2552.a/(b*c)3.4.1.05.x=0或(x=0)?1:6.x7.97或字符 a8.9.2.510.3.511.12.9, 11, 9, 1013.a+=a;24, a-=2;10, a*=2+3;60, a%=(n%=2);0, a/=a+a;0, a+=a-=a*=a;0 14.15.习 题 3 (参考答案)1编程实现:用字符输入/输出函数输入3个字符,将它们反向输出。参考代码(尽量运用本章所学知识)#
2、include main() char c1,c2,c3; c1=getchar(); c2=getchar(); c3=getchar(); putchar(c3); putchar(c2); putchar(c1);2编程实现:用格式输入/输出函数输入3个字符,将它们反向输出并输出它们的ASCII值。scanf (%c%c%c, &c1, &c2, &c3); printf(%c %d,%c %d,%c %d , c3,c3,c2,c2,c1,c1)3变量k为float 类型,调用函数:scanf(dk);不能使变量k得到正确数值的原因是:中的格式控制类型与变量k的定义类型不匹配,应将d改
3、为f.习题4答案选择题1 B 2 A 3 B 4 B 5 C 6 B阅读程序,写结果7 12 813 9 *0*2* if(s=90) m=4; else if(s=80) m=3;=70) m=2;=60) m=1; else m=0;11.输入4个整数a,b,c,d,编写程序,将它们按从大到小顺序输出。#includemain() int a,b,c,d,t;%d%d%d%d,&a,&b,&c,&d);if(ab) t=a;a=b;b=t;c) t=a;a=c;c=t;d) t=a;a=d;d=t;if(bc) t=b;b=c;d) t=b;b=d;if(cc)&(a+cb)&(b+ca)
4、&(fabs(a-b)(fabs(a-c)(fabs(b-c)3x+10110) y=3*x+10; else if(x1) y=x*x+2*x; else y=x*x-3*x+10; %lf n,y);习题5答案1 A 2 A 3 D 4 C 5 D 6 A 7 D 8 D 9 B 10 C111 -2 122 0 13* 142,4,6,8,10, 1546.000000 16852 17.利用近似公式求的值,直到最后一项的绝对值小于10-6为止。math.h double pi=0,i=1,j=1,k; do k=i/j; pi=pi+k; i=-i; j=j+2; while (fab
5、s(k)1.0e-6);pi is %lf,4*pi);18.求两个数的最大公约数和最小公倍数。最大公约数:用大数整除小数,得到余数1; 再用小数整除余数1,得到余数2;再用余数1整除余数2,直到余数为0。最小公倍数:两数相乘再除以最大公约数。 int m,n,r,x,y; scanf(%d%dm,&n); x=m; y=n; if (mn) r=m;m=n;n=r; while( (r=m%n)!=0) m=n; n=r; the max common divisor is %d,the min common multiple is %d,n,x*y/n);19.从3个红球、5个白球、6个黑
6、球中任意取出6个球,且其中必须有白球,编程输出所有可能的组合。int i,j,k;n hong bai hein for(i=0;i=3;i+) for(j=1;j=0) printf( %3d %3d %3dn,i,j,k); 20.如果一个数等于其所有真因子(不包括该数本身)之和,则该数为完数。例如:6的真因子有1、2、3,且6=1+2+3,故6为完数。求2,1000内的: (1)最大的完数; (2)完数数目。 int a,i,m,number=0,max=0; for(a=1;a=100;i-) m=i; while(m1) if(fun(m)m=m/10; else break; if
7、(m if(max=k+1)return 1; else return 0;2其平方等于某两个整数平方和的正整数称为弦数,例如因52=32+42,故5是弦数,求(121,130)这间的弦数个数以及最大和最小的弦数。n=4 max=130 min=122参考程序1(用函数方法实现): int k,maxnum,minnum; k=count(121,130); maxnum=max(121,130); minnum=min(121,130);弦数的个数为:%d,最大的弦数为:%d,最小的弦数为:%dn,k,maxnum,minnum);int count(int m,int n) int i,j
8、,k,t=0,flag; for(i=m;=n; flag=0; for(j=1;i; for(k=j;kk+) if(i*i=j*j+k*k) flag=1; printf(%4d,%4d,%4dn,j,k,i);/显示出不重复的弦数的组合情况 if(flag=1)t+; return t;int min(int m,int n) int i,j,k,t=0;最小的弦数为:%4dn,i); return i;int max(int m,int n) for(i=n;=m;最大的弦数为:3有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数。384main( )
9、int i,t; t=fun(8);8; t=t*2;t=%dn,t);int fun(int m) int i,j,n=1,sum;=765; sum=i; n=i;m; n=n*2; sum=sum+n; if(sum=765) break;4编写程序,求的结果。4037913参考程序1: int i; long s=0;=10; s=s+fun(i);s=%ldn,s);long fun(int n) int j; long t=1; t=t*j;参考程序2(递归算法): long t; if(n=1)t=1; else t=n*fun(n-1);5已知y =,其中,f(x, n) =
10、1 x2 / 2! + x4 / 4! ( 1)nx2n / (2n)!(n0),当x = 5.6,n = 7时,求y的值。0.007802double fun(double x,int n) int i,t=1,m=1; double s=1.0,w=1.0;=2*n; w=w*x; t=t*i; if(i%2=0) m=-m;s=s+m*w/t; return s; double x=5.6; int n=7; double p,q,t,s; p=fun(x,n); q=fun(x+2.3,n); t=fun(x-3.2,n+3); s=p/(q+t);%lfn6编写程序,求三个数的最小公
11、倍数。int fun(int x,int y,int z) int j,t,m,n; j=1; t=j%x; m=j%y; n=j%z; while(t!=0|m!=0|n! j=j+1; m=j%y; n=j%z; return j; int x1,x2,x3,j;Input x1 x2 x3: %d%d%dx1,&x2,&x3);x1=%d,x2=%d,x3=%dn,x1,x2,x3); j=fun(x1,x2,x3);The minimal common multiple is: %dn,j);7已知:,编写程序,求S的值。例如,当k为10时,S的值应为:1.533852。double fun(int k) int n; double s,w,p,q; n=1; s=1.0; while(n=k) w=2.0*n; p=w-1.0; q=w+1.0; s=s*w*w/p/q; n+;%fn,fun(10);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1