分支语句与循环语句题

简介: 分支语句与循环语句题
1.打印3的倍数
2.三个整数从大到小输出
3.打印素数
4.打印闰年
5.最大公约数及最小公倍数
6.打印乘法口诀表
7.求最大值(10个数)
8.分数求和
9.数9出现的次数
10.选择题tips

1.打印3的倍数

//题目1
//打印3的倍数的数
//写一个代码打印1-100之间所有3的倍数的数字
//关于%和+=
//第一种3%i=余数=0,则i是3的倍数
#include<stdio.h>
int main()
{
  int i = 0;
  for (i = 1; i <= 100; i++)
  {
    if (i % 3 == 0)//i是否是3的倍数
      printf("%d ", i);
  }
  return 0;
}
//第二种3 6 9等等3的倍数之间差了3所以也可以是i=i+3/i+=3
#include<stdio.h>
int main()
{
  int i = 0;
  for (i = 3; i <= 100; i+=3)//注意是从3开始往后加3
  {
      printf("%d ", i);
  }
  return 0;
}

2.三个整数从大到小输出

//题目2
//从大到小输出
//写代码将三个整数数 按从大到小输出。
//例如:
//输入:2 3 1
//输出:3 2 1
//关于交换
//交换
  //需要一个中间值
  //先将其中一个值空出来,再将其交换,注意是将右值赋给左值
//排序也可以效率太低,数字量大可以
#include<stdio.h>
int main()
{
  int a,b,c;
  //输入三个数字
  scanf("%d %d %d", &a, &b, &c);
    //交换
  if (a < b)
  {
    int i = b;
    b = a;
    a = i;
  }
  if (a < c)
  {
    int i = a;
    a = c;
    c = i;
  }
  if (b < c)
  {
    int i = c;
    c = b;
    b = i;
  }
  //输出三个数字是从大到小.那么a里存放必须是最大,c必须存放最小的。
  printf("%d %d %d", a, b, c);
  return 0;
}

3.打印素数

//题目3
//打印素数和素数的个数
//写一个代码:打印100~200之间的素数
//素数(质数)指大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数
//只能被1和它本身整除的数
//关于奇数边界条件
//定义变量放置的位置
//循环体的循环内容边界条件

方法1:
//判断素数的条件
//只要数不被它小的数整除就是素数
//例如;11只要不被10 9 8 7 6 5 4 3 2 整除它就是素数
//依次实除
#include<stdio.h>
int main()
{
  int i = 0;
  int j = 0;
  for (i = 100; i <= 200; i++)
  {
    int flag = 1;//放错位置了
    for (j = 2; j < i; j++)
    {
      if (i % j == 0)
      {
        flag = 0;
        break;
      }
    }
    if (flag == 1)
      printf("%d ", i);
  }
  return 0;
}

可以优化吗?当然可以!✔✔✔✔

//方法2:
//优化1:从奇数里面选择
//优化2:j实验到根号i即可
#include<math.h>//sqrt()需要头文件
#include<stdio.h>
int main()
{
  int i = 0;
  int j = 0;
  for (i = 101; i <= 200; i+=2)//奇数中选择,边界条件注意
  {
    int flag = 1;//放错位置了
    for (j = 2; j < sqrt(i); j++)//sqrt(i)--根号i
    {
      if (i % j == 0)//不是素数
      {
        flag = 0;
        break;
      }
    }
    if (flag == 1)
      printf("%d ", i);
  }
  return 0;
}

sqrt(i)

含义为:根号i  ,需要包含头文件#include

4.打印闰年

//题目4
//打印闰年
// //作业内容
//打印1000年到2000年之间的闰年
// 判断闰年条件
// 1.能被4整除,不能被100整除是闰年
// 2.能被400整除是闰年
// 1成立或2成立
//关于&&||
#include<stdio.h>
int main()
{
  int year = 0;
  for (year = 1000; year <= 2000; year++)
  {
    if (year % 4 == 0 && year % 100 != 0)
      printf("%d ", year);
    if(year % 400 == 0)
      printf("%d ", year);
  }
  return 0;
}
//提高效率
#include<stdio.h>
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;
}

5.最大公约数

//题目5
//最大公约数
//给定两个数,求这两个数的最大公约数
//输入:20 40
//输出:20
//关于%
//交换必须是空的才能交换
// 编译器执行的顺序很重要
// 每个数的值到底该是多少想清楚
//方法一
#include<stdio.h>
int main()
{
  int a = 0;
  int b = 0;
  int min = 0;
  scanf("%d %d", &a, &b);
  min = (a < b ? a : b);
  while (1)
  {
    if (a % min == 0 &&  b % min == 0)
    {
      printf("%d", min);
      break;
    }
    else
      min--;
  }
  return 0;
}
// 方法1:从两个数中找出最小的那个数
// 判断是否能够同时被两个数整除
// 不能依次往下减一,再次判断,直到找到那个最大公约数为止

辗转相除法:

//提高效率
//方法2:辗转相除法
#include<stdio.h>
int main()
{
  int a = 0;
  int b = 0;
  int tep = 0;
  scanf("%d %d", &a, &b);
  int r = a % b;
  while (1)
  {
    if (a % b == 0)
    {
      printf("%d ", b);
      break;
    }
    else
    {
      tep = a;
      a = b;
      b = r;
    }
  }
  return 0;
}

6.打印乘法口诀表

//题目6
//乘法口诀表
//在屏幕上输出9 * 9乘法口诀表
//关于嵌套的逻辑关系
//关于
%2d右对齐    -%2d左对齐
#include<stdio.h>
int main()
{
  int i, j;
  for (i = 1; i <= 9; i++)//计算的是行数
  {
    for (j = 1; j <= i; j++)//计算的是每一行的项数
    {
      printf("%d*%d=%2d ",i,j,i*j);//%2d 右对齐和%-2d左对齐 
    }
    printf("\n");
  }
  return 0;
}

7.求最大值(10个数)

//题目7
//求最大值
//已知10个数且知最大值
//关于数组和数组下标
//数组下标涉及的for循环条件边界
#include<stdio.h>
int main()
{
  char arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
                 //0 1 2 3 4 5 6 7 8 9
  int max = arr[0];//假设最大值是第一个元素
  //int max=0;//不可以正数可以但是负数不行
  for (int i = 1; i <= 9; i++)
  {
    if (max < arr[i])
    {
      max = arr[i];
    }
  }
  printf("%d", max);
  return 0;
}

8.分数求和

//题目8
//分数求和
//计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果
//关于数字%和/的小数和整数类型
//打印的符号
//以及怎样表示正负相加
// 方法1
//涉及到整数和小数
//+和-用正数和负数
#include<stdio.h>
int main()
{
  int i = 0;
  int flag = 1;
  double sum = 0;
  for (i = 1; i <= 100; i++)
  {
    sum += flag*1.0 / i;
    flag=-flag;
    //不能使用1=-1
  }
  printf("%f", sum);
  return 0;
}
//方法2
//分奇数和偶数加减
#include<stdio.h>
int main()
{
  int i = 0;
  double sum = 0;
  for (i = 1; i <= 100; i++)
  {
    if(i%2 != 0)
    sum +=  1.0 / i;
    else
    sum -= 1.0 / i;
    //不能使用1=-1
  }
  printf("%f", sum);
  return 0;
}

当然,还有很多办法,大家可以动手试一试!!🙂🙂

9.数9出现的次数

//题目9
//数9的个数
//编写程序数一下 1到 100 的所有整数中出现多少个数字9
// 9  19 29 39 49 59 69 79 89 99 ——个位为9只要i%10 ==9
// 90 91 92 93 94 95 96 97 98 99 ——十位为9只要i/10 ==9
//关于if else和if if
//方法1:
#include<stdio.h>
int main()
{
  int i = 0;
  int a = 0;
  for (i = 1; i <= 100; i++)
  {
    if (9 == i % 10 || 9 == i / 10)
    {
      a++;//计算数字
    }
  }
  printf("%d ", a+1);//99属于有两个9但是只计算了一次
  return 0;
}
#include<stdio.h>
int main()
{
  int i = 0;
  int a = 0;
  for (i = 1; i <= 100; i++)
  {
    if (i % 10 == 9)//个位为9
      a++;
    if (i / 10 == 9)//十位为9
      a++;
  }
  printf("%d", a);
  return 0;
}

10.选择题tips

1."="赋值;"=="相等。


2.if语句 默认其后只能跟一条语句,如果在{}可以跟多条。


3.if语句中 0表示假,非0表示真。


4.悬空else


5.在switch语句中case后不接break,会一直往下全部执行。


6. switch(x)----x是整形。char也是整形家族,char表示的时候是用字符的ASCLL码值


7.switch语句中case子句和default子句的顺序没有要求,随意放置。


8.switch语句中case子句后表达式只能是整形常量表达式。


9.注意break,continue出现的位置。

  while(条件表达式)
{
    循环体
}
     while循环中,当条件表达式成立时,才会执行循环体中语句,每次执行期间,
都会对循环因子进行修改(否则就成为死循环),修改完成后如果while条件表达式成立,
继续循环,如果不成立,循环结束。所以, while循环条件将会比循环体多执行一次。
while(0)//循环条件执行了一次,循环体没有执行。
{
循环体;
}

总结:

+=:i=i+4相当于i+=4,多应用于有规律的数字循环。


交换:交换需要一个中间量tem,空出来才能赋值。


=:是把右值赋给左值。


循环嵌套:循环体中变量,数字的边界条件,位置放置。


&& ||:结果相同的话,运算符可以一起用更简单。


数组:把数组下标和数组元素对应清楚。


/:得到的数字是小数(浮点型)和整形的书写。


if if和if else:循环中,if if都会进入,if else语句只会进入一个。


正负交替计算的写法。


嵌套循环的写法。


拆分的方法。


检查脑子里过编译器执行的顺序。

关于以上练习题,大家可以动手写一写🙂🙂🙂🙂

✔✔✔✔感谢大家的阅读,欢迎指正错误和不足!

代码------------→【gitee:https://gitee.com/TSQXG

联系------------→ 【邮箱:2784139418@qq.com】

目录
相关文章
|
6月前
|
Go C语言
分支语句与循环语句,详细讲解
分支语句与循环语句,详细讲解
|
6月前
|
数据安全/隐私保护
分支和循环语句(2)
分支和循环语句(2)
35 1
|
6月前
|
C语言
分支和循环语句(3)
分支和循环语句(3)
37 0
分支和循环语句(3)
|
7月前
|
存储 缓存 Linux
分支与循环语句1
分支与循环语句1
43 0
|
7月前
|
缓存 编译器 Go
分支语句和循环语句
分支语句和循环语句
73 0
|
编译器 C语言 C++
分支语句和循环语句上
分支语句和循环语句
61 0
分支语句和循环语句上
|
数据安全/隐私保护 C语言
分支语句与循环语句(2)
分支语句与循环语句(2)
62 0
|
C语言
分支语句和循环语句(1)
分支语句和循环语句(1)
55 0
|
算法 数据安全/隐私保护
分支语句与循环语句——练习
分支语句与循环语句——练习
55 0
|
缓存 Go 数据安全/隐私保护
分支语句和循环语句下
分支语句和循环语句
77 0