六、编程题参考答案
1.编程,统计在所输入的50个实数中有多少个正数、多少个负数、多少个零。 #include \ #define N 50 void main()
{ float x; unsigned int s1,s2,s3,i; s1=s2=s3=0;
for(i=1;i<=N;i++) { scanf(\
if(x<0) s1++; else if(x==0) s2++; else s3++; }
printf(\负数%u个,零%u个,正数%u个\\n\ }
2. 编程,计算并输出方程 X2+Y2=1989 的所有整数解。 #include \ void main() { int x,y;
for(x=-45;x<=45;x++) { y=-45;
while(y<=45) {
if(x*x+y*y==1989)
printf(\ y++; } } }
3.编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制数。 #include \ void main()
{ unsigned int x;
printf(\请输入一个十进制正整数:\ scanf(\
printf(\八进制数 %o=十六进制数%x\\n\ }
4.编程,找出1000以内的所有完数,并输出其因子。 #include \
void main() { int i,j,s=1;
for(i=1;i<=1000;i++,s=1) {
for(j=2;j<=i/2;j++) if(i%j==0) s+=j; // 求 i的因子和 if(s==i) {
printf(\ // 如果i 是完数则输出其各因子 for(j=2;j<=i/2;j++)
if(i%j==0) printf(\ printf(\ } } }
5. 输入一个正整数,输出它的所有质数因子。
#include \ void main() { int m,i=2;
printf(\请输入一个整数:\
while(m!=1) if(m%i==0){ printf(\ \ printf(\ }
6. 输入20个整数,输出其中能被数组中其它元素整除的那些数组元素。 #include \ #define N 20 void main() { int a[N],i,j;
for(i=0;i if(a[i]%a[j]==0&&i!=j) { printf(\ } 7. 输入两个数组(数组元素个数自定),输出在两个数组中都出现的元素。 #include \ #define NA 6 #define NB 8 void main() { float a[NA],b[NB]; int i,j; for(i=0;i for(i=0;i if(a[i]==b[j]) { printf(\ } 8. 输入两个数组(数组元素个数自定),输出在两个数组中都不出现的元素。 #include \ #define NA 6 #define NB 8 void main() { float a[NA],b[NB]; int i,j; for(i=0;i for(j=0;j printf(\ for(i=0;i for(j=0;j printf(\ } 9.编程,将字符数组S2中的全部字符拷贝到字符数组S1中。 #include \ void main() { char s1[20],s2[]=\ int i=0; while((s1[i++]=s2[i])!='\\0'); printf(\ } 10.给定年份year,判别该年份是否闰年(定义一个宏以判别该年份是否闰年)。 #include #define f(year) year%4==0&&year0!=0||year@0==0 void main() { int y; printf(\请输入年份:\ if(f(y)) printf(\年为闰年\\n\ else printf(\年不是闰年\\n\ }