C语言期中考试试题
#include<stdio.h>
double fact (int N);
int main(void)
{
int i,N,sum;
double item;
scanf("%d",&N);
sum=0;
for(i=1;i<=N;i++)
{
sum=sum+fact(i);
}
printf("%d",sum);
return 0;
}
double fact (int N)
{
int i;
double result;
result=1;
for(i=1;i<=N;i++)
{
result=result*i;
}
return result;
} ==填空题 会的大佬,可以评论区 写一下哈 ==
————————————————————————————————————
————————————————————————————————————
下面是期末考试部分试题
只记得两个大题了。。。。。 其它的都挺简单的,大家应该没啥问题。(哈哈)
第一题:计算圆柱体的体积
直接上代码啦!#include<stdio.h>
double cylinder(double r,double h)//构造函数,括号里的double不能忘!!!
{
double result;
result=3.1415926*r*r*h;
return result;
}
int main()
{
double r,h,volume;
scanf("%lf%lf",&r,&h);
volume=cylinder(r,h);//调用cylinder()函数
printf("Volume = %.3lf",volume);
return 0;
} 注意:
1 printf输出float和double都可以用%f,double还可以用%lf。
2 scanf输入float用%f,double输入用%lf,不能混用。
double、float都是浮点型。double(双精度型)比float(单精度型)存的数据更准确些,占的空间也更大。double精度是float的两倍,所以需要更精确的计算常使用double。
单精度浮点数在机内占4个字节,用32位二进制描述。
双精度浮点数在机内占8个字节,用64位二进制描述。
double 和 float 的区别是double精度高,但double消耗内存是float的两倍,double的运算速度比float慢得多,C语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。
第二题 三色球问题
有红黄绿三种颜色的球,其中红球3个,黄球3个,绿球6个。现将这12个球混放在一个盒子中,从中任意摸出8个球,编程计算摸出球的各种颜色的搭配(或者是问一共有多少种)
上代码:#include <stdio.h>
#define RED_BALL_NUM 3
#define YELLOW_BALL 3
#define GREEN_BALL 6
int main()
{
int red, yellow, green;
printf("red yellow green\n");
for (red = 0; red <= RED_BALL_NUM; red++) {
for (yellow = 0; yellow <= YELLOW_BALL; yellow++) {
for (green = 0; green <= GREEN_BALL; green++) {
if (red + yellow + green == 8) {
printf(" %d %d %d\n", red, yellow, green);
}
}
}
}
return 0;
} 结果如下图:
如果问的是一共有多少种,并没有让打印出所有的结果,可以这么写#include <stdio.h>
#define RED_BALL_NUM 3
#define YELLOW_BALL 3
#define GREEN_BALL 6
int main()
{
int red, yellow, green,count=0;
for (red = 0; red <= RED_BALL_NUM; red++) {
for (yellow = 0; yellow <= YELLOW_BALL; yellow++) {
for (green = 0; green <= GREEN_BALL; green++) {
if (red + yellow + green == 8) {
count++;
}
}
}
}
printf("一共有%d种",count);
return 0;
} 结果如下图:
不管怎么问,关键就是三重for循环,掌握关键,怎么变都不怕!!!
|