评论

收藏

[C++] C语言期中考试+部分期末考试试题——SZ(期末的只有大题)

编程语言 编程语言 发布于:2021-07-06 11:25 | 阅读数:321 | 评论:0

  
C语言期中考试试题
DSC0000.png

DSC0001.png
DSC0002.png
DSC0003.png
DSC0004.png

DSC0005.png

DSC0006.png
DSC0007.png
DSC0008.png
DSC0009.png
DSC00010.png

DSC00011.png
DSC00012.png

DSC00013.png
DSC00014.png
#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;
}
  ==填空题 会的大佬,可以评论区 写一下哈 ==
  ————————————————————————————————————
————————————————————————————————————

下面是期末考试部分试题
  只记得两个大题了。。。。。 其它的都挺简单的,大家应该没啥问题。(哈哈)
第一题:计算圆柱体的体积
DSC00015.png
  直接上代码啦!
#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个球,编程计算摸出球的各种颜色的搭配(或者是问一共有多少种)
DSC00016.png
上代码:
#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;
}
  结果如下图:
DSC00017.png
  如果问的是一共有多少种,并没有让打印出所有的结果,可以这么写
#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;
}
  结果如下图:
DSC00018.png
不管怎么问,关键就是三重for循环,掌握关键,怎么变都不怕!!!



  

  
关注下面的标签,发现更多相似文章