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语言版 第2版)课后习题答案全集 严蔚敏 等 编著

请问谁有c语言程序设计(第二版)课后习题答案,谭浩强的

明解c语言第三版 入门篇 练习题答案 第六章 第6-11题解法。函数相关的问题。

C语言习题如何在 C 中不使用任何分号打印从 1 到 N 的数字?

小甲鱼Python视频第004讲:(改进我们的小游戏)课后习题及参考答案