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位。输出结束有换行符。
【样例输出】
#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
【样例输出】输出结束有换行符。
#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
【样例输出】输出结束没有换行符。
【样例说明】星号之间有一个空格
#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;
}