C语言习题~day5

简介: C语言习题

1.switch(c)语句中,c不可以是什么类型( )

A.int

B.long

C.char

D.float

答案解析:

 switch语句中表达式的类型只能是:整形和枚举类型

 D选项为浮点类型,不是整形和枚举类型

 因此:选择D

2.下面代码的执行结果是什么( )

#include <stdio.h>
int main() {
  int x = 3;
  int y = 3;
  switch (x % 2) {
  case 1:
    switch (y)
    {
    case 0:
      printf("first");
    case 1:
      printf("second");
      break;
    default: printf("hello");
    }
  case 2:
    printf("third");
  }
  return 0;
}

A.secondthird

B.hello

C.firstsecond

D.hellothird

答案解析:

 switch语句时多分支的选择语句,switch中表达式结果命中那个case,就执行该case子项,如果case子项后没有跟break语句,则继续往下执行。

 关于该题解析,请看以下注解

  #include <stdio.h>
  int main() {
    int x = 3;
    int y = 3;
    switch (x % 2) {  // x%2的结果为1,因此执行case1
    case 1:
      switch (y)   // y是3,因此会执行case3,而case3不存在,那只能执行default
      {
      case 0:
        printf("first");
      case 1:
        printf("second");
        break;
      default: printf("hello"); // 打印hello,打印完之后,内部switch结束,此时外部case1结束
      }             // 因为外部case1之后没有添加break语句,所以继续执行case2
    case 2:             // 打印third
      printf("third");      // 外部switch结束
    }
    return 0;
  }

即:先在内部switch的default位置打印hello,紧接着在外部case2中打印third

 因此:选择D

3.KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。


输入描述:


题目有多组输入数据,每一行输入三个a,b,c(0


输出描述:


针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。

#include <stdio.h>
 
 
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    while(~scanf("%d %d %d", &a, &b, &c))
    {
        if((a+b>c) && (a+c>b) && (b+c>a))
        {
            //三角形
            if(a==b && b==c)//等边三角形
            {
                printf("Equilateral triangle!\n");
            }
            else if(((a==b)&&(b!=c)) || ((a==c)&&(c!=b)) || ((b==c)&&(c!=a)))//等腰
            {
                printf("Isosceles triangle!\n");
            }
            else
            {
                printf("Ordinary triangle!\n");
            }
        }
        else
        {
            //不是三角形
            printf("Not a triangle!\n");
        }
    }
    return 0;
}

4.分数求和  计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果

/*
思路:
1. 从上述表达式可以分析出
   a. 该表达式主要由100项,基数项为正,偶数项为负
2. 设置一个循环从1~100,给出表达式中的每一项:1.0/i, 注意此处不能使用1,否则结果全部为0
    然后使用flag标记控制奇偶项,奇数项为正,偶数项为负
    然后将所有的项相加即可
*/
 
 
 
 
#include <stdio.h>
 
 
int  main()
{
  int i = 0;
  double sum = 0.0;
  int flag = 1;
  for(i=1; i<=100; i++)
  {
    sum += flag*1.0/i;
    flag = -flag;
  }
  printf("%lf\n", sum);
  return 0;
}

5.数9的个数 编写程序数一下 1到 100 的所有整数中出现多少个数字9

/*
思路:
1. 给一个循环从1遍历到100,拿到每个数据后进行一下操作
2.  a. 通过%的方式取当前数据的个位,检测个位数据是否为9
         如果是,给计数器加1
    b. 通过/的方式取当前数据的十位,检测十位数据是否是9,
          如果是,给计数器加1
  循环一直继续,直到所有的数据检测完,所有9的个数已经统计在count计数中。
*/
#include <stdio.h>
 
 
int main()
{
  int i = 0;
  int count = 0;
 
 
  for(i=1; i<=100; i++)
  {
    if(i%10==9)
      count++;
    if(i/10==9)
      count++;
  }
  printf("%d\n", count);
  return 0;
}

6.打印闰年 打印1000年到2000年之间的闰年

/*
思路:
要求1000年到2000年之间的闰年,只需要知道求解闰年的方法即可。
闰年的条件:如果N能够被4整除,并且不能被100整除,则是闰年
           或者:N能被400整除,也是闰年
     即:4年一润并且百年不润,每400年再润一次
*/
 
 
#include <stdio.h>
int main()
{
  int year = 0;
  for(year=1000; year<=2000; year++)
  {
    //判断year是否为闰年
    if(year%4==0)  // 如果year能够被4整除,year可能为闰年
    {
      if(year%100!=0) // 如果year不能内100整除,则一定是闰年
      {
        printf("%d ", year);
      }
    }
    if(year%400 == 0)  // 每400年再润一次
    {
      printf("%d ", year);
    }
  }
 
 
  return 0;
}
 
 
//
//介绍一下这种的简单写法
//
int main()
{
  int year = 0;
  for(year=1000; year<=2000; year++)
  {
    if(((year%4==0)&&(year%100!=0))||(year%400==0))
    {
      printf("%d ", year);
    }
  }
 
  return 0;
}

 7.求最大值 求10 个整数中最大值

/*
思路:
1. 采用循环的方式输入一个数组
2. 使用max标记数组中的最大值,采用循环的方式依次获取数组中的每个元素,与max进行比较,如果arr[i]大于    max,更新max标记的最大值,数组遍历结束后,max中保存的即为数组中的最大值。
*/
int main()
{
  int arr[10] = {0};
  int i = 0;
  int max = 0;
 
  for(i=0; i<10; i++)
  {
    scanf("%d", &arr[i]);
  }
  //
  max = arr[0];
  for(i=1; i<10; i++)
  {
    if(arr[i]>max)
      max = arr[i];
  }
  printf("max = %d\n", max);
  return 0;
}
 



目录
相关文章
TU^
|
1天前
|
C语言
C语言习题~day39
C语言习题~day39
TU^
4 0
C语言习题~day39
TU^
|
1天前
|
存储 C语言
C语言习题~day38
C语言习题~day38
TU^
2 0
TU^
|
1天前
|
C语言
C语言习题~day37
C语言习题~day37
TU^
3 0
TU^
|
1天前
|
算法 程序员 C语言
C语言习题~day36
C语言习题~day36
TU^
7 1
TU^
|
1天前
|
存储 C语言
C语言习题~day35
C语言习题~day35
TU^
7 1
TU^
|
1天前
|
存储 C语言
C语言习题~day34
C语言习题~day34
TU^
5 1
TU^
|
1天前
|
算法 C语言
C语言习题~day33
C语言习题~day33
TU^
7 1
TU^
|
1天前
|
C语言
C语言习题~day32
C语言习题~day32
TU^
7 1
TU^
|
1天前
|
编译器 C语言
C语言习题~day31
C语言习题~day31
TU^
6 2
TU^
|
1天前
|
C语言
C语言习题~day30
C语言习题~day30
TU^
5 1