1
谐均值计算(4分)
题目内容:
两数值的谐均值可以这样计算:首先对两数值的倒数取平均值,最后再取倒数。编写一个带有两个double参数的函数,计算这两个参数的谐均值。函数原型为:
double Calculate(double x,double y);
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double Calculate(double x,double y);
double Calculate(double x,double y)
{
return 1/((1/x+1/y)/2) ;
}
int main()
{
double x, y;
printf("Input two doubles:\n");
scanf("%lf%lf",&x,&y);
printf("1/((1/x+1/y)/2) = %0.3f\n",Calculate(x,y));
return 0;
}
2
输出指定行列数的字符(4分)
题目内容:
编写一个函数,函数原型:void Chline(char ch, int column, int row);
该函数的3个参数是一个字符和两个整数。字符参数是需要输出的字符。第一个整数说明了在每行中该字符输出的个数,而第二个整数指的是需要输出的行数。编写一个调用该函数的程序。
#include <math.h>
#include <stdlib.h>
void Chline(char ch, int column, int row);
void Chline(char ch, int column, int row)
{
int x, i;
for (x=1;x<=row; x++ )
{
for (i=1; i<=column; i++)
{
printf("%c",ch);
}
printf("\n");
}
}
int main()
{
int column, row;
char ch;
printf("input a char:\n");
scanf("%c",&ch);
printf("input column and row:\n");
scanf("%d%d",&column,&row);
Chline(ch,column,row);
return 0;
}
3
魔术师猜数(4分)
题目内容:
在一种室内互动游戏中,魔术师要每位观众心里想一个三位数abc(a、b、c分别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数的和值。只要观众说出这个和是多少,则魔术师一定能猜出观众心里想的原数abc是多少。例如,观众甲说他计算的和值是1999,则魔术师立即说出他想的数是443,而观众乙说他计算的和值是1998,则魔术师说:“你算错了!”。请编程模拟这个数字魔术游戏。要求用函数实现,函数原型为:int Magic(int m);
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int Magic(int m);
int Magic(int m)
{
int a, b, c, number, sum;
for (a=1; a<10; a++ )
{
for (b=1; b<10; b++)
{
for (c=1; c<10; c++)
{
sum = a*122 + b*212 + c*221;
number = a*100+b*10+c;
if (sum == m)
{
if (number < 100)
{ return 0; continue; }
else
{
return number;
break;
}
}
}
}
}
}
int main()
{
int n, x;
scanf("%d",&n);
x = Magic(n);
if (x > 111&&x<=999)
printf("The number is %d\n",x);
else
printf("The sum you calculated is wrong!\n");
return 0;
}
4
计算礼炮声响次数(4分)
题目内容:
在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放1次,B舰每隔6秒放1次,C舰每隔7秒放1次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。
输入格式:无
输出格式:"n=%d"
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int A, B, C,n;
n = 63;//如果炮声不重叠,将会听到63声炮响。
for (A=5;A<=105; A+=5)
{
for(B=6; B<=126; B+=6)
{
if(A==B)
n--;//去掉AB重叠,下边同理。
}
}
for(C=7; C<=147; C+=7)
{
for(B=6; B<=126; B+=6)
{
if(B==C)
n--;
}
}
for (A=5;A<=105; A+=5)
{
for(C=7; C<=147; C+=7)
{
if(A==C)
n--;
}
}
printf("n=%d",n);
return 0;
}
6
递归法计算游戏人员的年龄(4分)
题目内容:
有n个人围坐在一起,问第n个人多大年纪,他说比第n-1个人大2岁;问第n-1个人,他说比第n-2个人大2岁,.....,问第3个人,他说比第2个人大2岁;问第2个人,他说比第1个人大2岁。第1个人说自己10岁,问第n个人多大年纪。
递归函数原型:unsigned int ComputeAge(unsigned int n);
提示:
计算年龄的递归公式为:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
unsigned int ComputeAge(unsigned int n);
int main()
{
unsigned n;
scanf("%u",&n);
printf( "The person's age is %u\n",ComputeAge(n));
return 0;
}
unsigned int ComputeAge(unsigned int n)
{
if (n==1)
return 10;
else
return ComputeAge(n-1)+2;
}