C语言习题答案(仅参考)
Posted 小源同学r
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言习题答案(仅参考)相关的知识,希望对你有一定的参考价值。
1060: 两个数的最小公倍数
题目描述:
正整数a和正整数b的最小公倍数是指能被a和b整除的最小的正整数值,设计一个算法,求输入a和b的最小公倍数。
输入
5 3
输出
15
示例
#include<iostream>
#include<math.h>
using namespace std;
int main()
int x,y,z = 0,sum;
cin >> x >> y;
sum = x*y;
while (y != 0)
z = x % y;
x = y;
y = z;
cout<<sum/x<<endl;
return 0;
1061: 九九乘法表(一)
题目描述:
我们小时候学过的九九乘法表也许终生难忘,现在让我们重温这个美好的记忆,请编程输出九九乘法表.
输入
无
输出
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
示例
#include<iostream>
#include<math.h>
using namespace std;
int main()
int i ,j ;
for(i=1; i<=9; i++)
for(j=1; j<=i; j++)
if(i==j)
cout<<i<<"*"<<j<<"="<<i*j<<endl;
continue;
cout<<i<<"*"<<j<<"="<<i*j<<" ";
return 0;
1062: 九九乘法表(二)
题目描述:
请按要求输出九九乘法表。要求所输出它的格式与平常的不同,是那种反过来的三角形,可不要看错了!
输入
3
2
1
5
输出
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
示例
#include<iostream>
using namespace std;
int main()
int m,n;
cin>>n;
for(int k=0;k<n;k++)
cin>>m;
for(int i=0;i<m;i++)
for(int j=0;j<9-i;j++)
printf("%d*%d=%d ",i+1,j+i+1,(i+1)*(j+1+i));
cout<<endl;
cout<<endl;
1063: 字符统计(一)
题目描述:
输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数,分行输出该结果。
输入
My input123 @%chars.
输出
characters=12
spaces=2
numbers=3
others=3
示例
#include <iostream>
using namespace std;
int main()
char str[100];
char c;
int numbers=0,characters=0,spaces=0,others=0,i;
cin.getline(str,100);
for(i=0; str[i]!='\\0'; i++)
c = str[i];
if((c>= 'A'&&c<='Z')|| (c>='a'&& c<='z')) characters++;
else if(c>'0'&& c<'9') numbers++;
else if(c == ' ') spaces++;
else others++;
printf("characters=%d\\nspaces=%d\\nnumbers=%d\\nothers=%d",characters ,spaces,numbers,others);
return 0;
1064: 连续阶乘求和
题目描述:
输入一个正整数N,求1!+2!+3!+...+N!
提示:由于>10的整数的阶乘非常大,已超出整数的表示范围,故求阶乘时,需要将变量定义为double类型。
输入
10
输出
4037913
示例
#include <iostream>
using namespace std;
int digui(int num)
int i,sum = 1;
if(num == 1) return 1;
for(i = 1;i<=num;i++)
sum = sum*i;
return sum+digui(num-1);
int main()
double num,cinnum;
cin>>cinnum;
cout<<digui(cinnum)<<endl;
return 0;
1065: 求式子的和
题目描述:
求如上式子的和
请将结果定义为double类型。
注意求平方,不要用C数学库中提供的函数pow。
输入
无
输出
47977.928968
示例
#include<iostream>
using namespace std;
int main()
double sum=0,sum1=0,sum2=0;
for(int i=1;i<=100;i++)
sum+=i;
for(int i=1;i<=50;i++)
sum1+=(i*i);
for(int i=1;i<=10;i++)
sum2+=(1.0/i);
printf("%.6f",sum+sum1+sum2);
1066: 水仙花数
题目描述:
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,它是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。请输出所有的“水仙花数”。
输入
无
输出
153
370
371
407
示例
#include<iostream>
using namespace std;
int main()
int n1,n2,n3;
for(int i=100;i<=999;i++)
n1=i%10;
n2=i/10%10;
n3=i/100;
if(i==n1*n1*n1+n2*n2*n2+n3*n3*n3) cout<<i<<endl;
1067: 童年生活二三事
题目描述:
Redraiment小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。 但年幼的他一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下Redraiment从第0阶到第N阶共有几种走法。
输入
1 2 0
输出
1
2
示例
#include<iostream>
using namespace std;
int main()
int a[41],n;
a[0]=1;
a[1]=2;
for(int i=2;i<41;i++)
a[i]=a[i-1]+a[i-2];
while(cin>>n)
if(n==0)
break;
cout<<a[n-1]<<endl;
1068: 韩信点兵
题目描述:
淮安民间传说着一则故事——“韩信点兵”,相关成语“韩信点兵,多多益善”。韩信从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。
输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。
输入
2 1 6
输出
41
示例
#include<iostream>
using namespace std;
int main()
int a,b,c,i;
cin>>a>>b>>c;
for(i=10;i<=100;i++)
if(i%3==a && i%5==b && i%7==c)
cout<<i;
break;
if(i==101)
cout<<"No answer";
1069: 小球蹦蹦跳
题目描述:
调皮的小明将皮球从100m的高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。
求它在第N次落地时,共经过了多少米,第N次反弹多高。
输入
10
输出
length=299.6094
high=0.0977
示例
#include<iostream>
using namespace std;
int main()
double length=100,longg=50;
int n;
cin>>n;
for(int i=1;i<n;i++)
length+=longg*2;
longg/=2;
printf("length=%.4f\\nhigh=%.4f",length,longg);
以上是关于C语言习题答案(仅参考)的主要内容,如果未能解决你的问题,请参考以下文章
最详细数据结构(C语言版 第2版)课后习题答案全集 严蔚敏 等 编著
明解c语言第三版 入门篇 练习题答案 第六章 第6-11题解法。函数相关的问题。