C语言 程序设计结构练习题2

1.【问题描述】 用整数1-7依次表示星期一至星期日。由键盘输入一个整数,输出对应的英文表示,如果输入的整数在1~7之外,输出“Error”信息。
【样例输入1】1
【样例输出1】Monday
【样例输入2】7
【样例输出2】Sunday
【样例输入3】10
【样例输出3】Error
【样例说明】本题输出结束后无换行符。

#include 
int main()
{
     
	int num;
	scanf_s("%d", &num);
	if (num < 1 || num>7)
		printf("Error");
	else
	{
     
		switch (num)
		{
     
		case 1:printf("Monday"); break;
		case 2:printf("Tuesday"); break;
		case 3:printf("Wednesday"); break;
		case 4:printf("Thursday"); break;
		case 5:printf("Friday"); break;
		case 6:printf("Saturday"); break;
		case 7:printf("Sunday"); break;
		}
	}
	return 0;
}

2.【问题描述】 从键盘输入三角形的三个边长判断能否构成三角形,如能构成三角形,则判断是哪一种类型(等腰三角形isosceles triangle、等边三角形equilateral triangle、直角三角形right triangle、任意三角形arbitrary triangle);否则输出“not triangle”。
【输入形式】输入三个双精度浮点数
【输出形式】判断输出语句结束后跟换行符\n,所有输出语句字符小写。
【样例输入1】3.0 3.0 4.0
【样例输出1】isosceles triangle
【样例输入2】3.0 3.0 3.0
【样例输出2】equilateral triangle
【样例输入3】1.0 3.0 6.0
【样例输出3】not triangle

#include 
int main()
{
     
	double x,y,z;
	scanf_s("%lf%lf%lf", &x, &y, &z);
	if (x + y > z&&x + z > y&&y + z > x)
	{
     
		if (x == y && y == z)
			printf("equilateral triangle\n");
		else if (x == y || x == z || y == z)
			printf("isocseles triangle\n");
		else if (x*x+y*y==z*z||x*x+z*z==y*y||y*y+z*z==x*x)
			printf("right triangle\n");
		else
			printf("arbitrary triangle\n");
	}
	else
		printf("not triangle\n");
	return 0;
}

3.【问题描述】 猴子吃桃。猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半再加一个桃子。到第n天,只剩下一个桃子。求第一天共摘下多少桃子。
【输入形式】输入剩下一个桃子的天数
【输出形式】输出桃子的数量,输出结束有换行符。
【样例输入1】6
【样例输出1】94
【样例输入2】10
【样例输出2】1534

#include 
int main()
{
     
	int n,peach=1,i;
	scanf_s("%d", &n);
	for (i = 1; i < n; i++)
	{
     
		peach = 2 * (peach + 1);
	}
	printf("%d\n",peach);
	return 0;
}

4.【问题描述】 求1~n项Fibonacci数列的数值。
【输入形式】读入正整数值n项的值。
【输出形式】每行输出5个数值,每个数值占8位。输出结束有换行符。
【样例输出】
C语言 程序设计结构练习题2_第1张图片

#include 
int main()
{
     
	long int a1=1,a2=1,an,n,i;
	scanf_s("%d", &n);
	printf("%8ld%8ld", a1, a2);
	for (i = 3; i <= n; i++)
	{
     
		an = a1 + a2;
		a1 = a2;
		a2 = an;
		printf("%8ld",an);
		if (i % 5 == 0) printf("\n");
	}
	return 0;
}

5.【问题描述】 百钱买百鸡。“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”
【输出形式】输出所有的解,每行输出一组解。输出结束有换行符。
【样例输出】
在这里插入图片描述

#include 
int main()
{
     
	int cock,hen,chicken;
	for (cock = 0; cock <= 20; cock++)
	{
     
		for (hen = 0; hen <= 33; hen++)
		{
     
			chicken = 100 - cock - hen;
			if (15 * cock + 9 * hen + chicken == 300)
			{
     
				printf("cock=%d,hen=%d,chicken=%d\n",cock,hen,chicken);
			}
		}
	}
	return 0;
}

6.【问题描述】 一个数如果等于其每一个数字立方之和,则此数称为阿姆斯特朗数。如407就是一个阿姆斯特朗数,因为:。要求输出100~999间所有的阿姆斯特朗数。
【输出形式】要求输出100~999间所有的阿姆斯特朗数。每个数值占6位。输出结束无换行符。
【样例输出】 153 370 371 407

 #include 
int main()
{
     
	int i,s,t,digit;
	for (i = 100; i <= 999; i++)
	{
     
		t = i;
		s = 0;
		while (t != 0)
		{
     
			digit = t % 10;
			s += digit * digit*digit;
			t = t / 10;
		}
		if (i == s) printf("%6d",i);
	}
	return 0;
}

7.【问题描述】3.2.13 一个数如果恰好等于它的因子之和,这个数就称为“完数”。求1000以内的所有完数。
【输出形式】1000以内的所有完数。每个数值占6位。输出结束无换行符。
【样例输出】 6 28 496
【样例说明】完数 6=1+2+3

#include 
int main()
{
     
	int i,j,s;
	for (i = 1; i <= 1000; i++)
	{
     
		s = 0;
		for (j = 1; j < i; j++)
		{
     
			if (i%j == 0)
			{
     
				s += j;
			}
		}
		if (i == s) printf("%6d",i);
	}
	return 0;
}

8.【问题描述】 将一个正整数分解质因素。例如,输入90,输出90=2* 3* 3* 5。
【输入形式】从键盘输入一个整数。
【输入输出样例1】(下划线部分表示输入)
Input an integer:90
90=2* 3* 3* 5
【输入输出样例2】(下划线部分表示输入)
Input an integer:18
18=2* 3* 3
【样例说明】
输入提示符后无空格。
输出语句的“=”两边无空格。输出结束无换行符。
英文字母区分大小写。必须严格按样例输入输出。

#include 
int main()
{
     
	int n,i;
	printf("Input an integer:");
	scanf_s("%d", &n);
	printf("%d=", n);
	for (i = 2; i <= n; i++)
	{
     
		while (n != i)
		{
     
			if (n%i == 0)
			{
     
				printf("%d*", i);
				n = n / i;
			}
			else break;
		}
	}
	printf("%d\n", n);
	return 0;
}

9.【问题描述】打印图形。
【样例输入】4
【样例输出】输出结束有换行符。
C语言 程序设计结构练习题2_第2张图片

 #include 
int main()
{
     
	int  i, j, m;
	scanf_s("%d", &m);
	for (i = 1; i <= m; i++)
	{
     
		for (j = 1; j <= m - i; j++)
		{
     
			printf(" ");
		}
		for (j = 1; j <= 2 * i - 1; j++)
		{
     
			printf("*");
		}
		printf("\n");
	}
	for (i = 1; i < m; i++)
	{
     
		for (j = 1; j <= i; j++)
		{
     
			printf(" ");
		}
		for (j = 1; j <= 2 * (m - i) - 1; j++)
		{
     
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

10.【问题描述】打印空心图形
【样例输入】5
【样例输出】输出结束没有换行符。
C语言 程序设计结构练习题2_第3张图片
【样例说明】星号之间有一个空格

#include 
int main()
{
     
	int n,i,j;
	scanf_s("%d", &n);
	for (i = 1; i <= n; i++)
	{
     
		if (i == 1) 
		{
     
			for (j = 1; j <= n; j++)
			{
     
				printf("* ");
			}
			printf("\n");
		}
		else if (i == n)
		{
     
			for (j = 1; j < i; j++) printf(" ");
			printf("*");
		}
		else
		{
     
			for (j = 1; j < i; j++) printf(" ");
			printf("*");
			for (j = 1; j <2 * (n - i); j++)printf(" ");
			printf("*");
			printf("\n");
		}
	}
	return 0;
}

你可能感兴趣的:(程序设计,c语言)