C语言——简单的程序设计

2023-11-10

目录

前言

一、顺序结构程序

1、顺序程序结构介绍

2、顺序程序举例

二、选择结构程序

1、选择结构程序介绍

2、if语句的三种形式

1)、第一种形式的if语句

2)、第二种形式的if语句

3)、第三种形式的if语句

3、switch语句  

三、循环结构程序

1、循环结构程序介绍

2、while语句     

3、do...while语句       

4、for语句

5、break语句

6、continue语句

7、goto语句

8、嵌套循环结构

总结


前言

        介绍一下顺序程序,选择程序,循环程序。

一、顺序结构程序

1、顺序程序结构介绍

        顺序程序结构是最简单的一种程序结构,其中各个语句都是从上到下的顺序执行的,不发生流程的跳转,不会出现后面介绍的选择和循环的操作。同时若干个小的顺序结构可以构成一个大的顺序结构,甚至一个程序。

2、顺序程序举例

        求三个数的和。

#include <stdio.h>

int main()
{
	int a, b, c, sum;
	printf("输入需要求和的三个数:");
	scanf("%d,%d,%d", &a, &b, &c);
	sum = a + b + c;
	printf("sum = %d\n", sum);
	
	return 0;
}

从上到下依次执行,先输出  输入需要求和的三个数: ;接着从键盘输入三个数(需要求和的三个数,依次给a, b, c 三个变量赋值);完成之后进行加法运算;最后将运算后的值输出。

二、选择结构程序

1、选择结构程序介绍

大多数程序都会包含选择结构,它是程序的三种基本结构之一。选择结构的作用是根据给定的条件,从几组操作中选择其中的一组操作。

2、if语句的三种形式

1)、第一种形式的if语句

格式如下:

if(表达式)
{
    要执行的语句
}

如果表达式为“真”,则执行该语句;如果执行语句为“假”,则不执行该语句。

 例子:

输入变量a的值,若a>10,则输出“是”;否则什么也不做。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int a;
	scanf("%d", &a);
	if (a > 10)//这里注意不要;
	{
		printf("是\n");
	}

	return 0;
}

2)、第二种形式的if语句

格式如下:

if(表达式)
{
   语句1
}
else
{
   语句2
}

如果表达式为“真”,则执行语句1;如果表达式为“假”,则执行语句2。

例子:

 输入一个整数,判断能否被2整除。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int a;
	printf("请输入一个整数:\n");
	scanf("%d", &a);
	if (a % 3 == 0)
	{
		printf("%d能被2整除。\n", a);
	}
	else
	{
		printf("%d不能被2整除。\n", a);
	}

	return 0;
}

3)、第三种形式的if语句

格式如下:

if(表达式1)
{
   语句1
}
else if(表达式2)
{
   语句2
}
...
else if(表达式n-1)
{
   语句n-1
}
else
{
   语句n
}

如果表达式1为“真”,则执行语句1,如果表达式1为“假”,则判断表达式2;如果表达式2为“真”,则执行语句2,如果表达式2为“假”,则判断表达式3;以此类推,如果表达式n-1为“真”,则执行语句n-1,如果表达式n-1为“假”,则执行语句n。

 例子:

用分数来给予相应的奖励。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int score;
	scanf("%d", &score);
	//如果表达式为真  执行{}对应的代码
	if (score > 100)
	{
		printf("给予大奖励");
	}
	else if (score > 90)
	{
		printf("给予小奖励");
	}
	else
	{
		printf("给予鼓励");
	}
	/*输入大于100的数值            结果为 给予大奖励
	  输入大于90小于等于100的数值  结果为 给予小奖励
	  输入小于等于90的数值         结果为 给予鼓励
      从上到下依次执行且只会执行一个
	*/

	return 0;
}

 注意:else子句不能作为语句单独使用,它必须与if配对使用。 

3、switch语句  

解决多种选择问题,除了使用if语句外,还可以使用switch语句。switch语句可以完成多分支选择程序的编写。

格式如下:

switch(表达式)
{
case 常量表达式1:
     语句1;
     break;
case 常量表达式2:
     语句2;
     break;
...
case 常量表达式n:
     语句n;
     break;
default:
     语句n+1;
     break;
}
//最后一个分支(default)可以不用加break语句

首先计算switch右侧的表达式的值,当该表达式的值与一个case后面的常量表达式的值相等时,就执行该case后面的语句;如果表达式的值与所有的case后的常量表达式的值都不相等,则执行default后面的语句。

例子:

输入一个分值,并区分该分值的类别。 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int score;
	scanf("%d", &score);
	switch (score/10)
	{
	case 10:
		printf("优秀\n");
		break;
	case 9:
		printf("优秀\n");
		break;//90分以上的是优秀
	case 8:
		printf("良好\n");
		break;
	case 7:
		printf("良好\n");
		break;//70分到90分的是良好
	case 6:
		printf("及格\n");
		break;//60分到70分的及格
	default:
		printf("不及格\n");
		break;//60分以下的是不及格
	}
	//输入超过100的数也是不及格

	return 0;
}

三、循环结构程序

1、循环结构程序介绍

        循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本构成单元。

2、while语句     

        格式如下:

while(表达式)
{
    循环体语句
}

        先计算表达式的值,如果表达式为真,则执行while语句中的循环体语句,然后再次计算表达式的值;如果表达式为真,则再次执行循环体语句;依次循环,直到表达式的值为假时,结束循环。

        例子:

        用while语句输出0到9并求和。

        输出: 

#include<stdio.h>
 
int main()
{
    int i = 0;
    while (i < 10)
    {
        printf("%d", i);
        ++i;
    }//结果为0123456789
 
    return 0;
}

        求和:

#include<stdio.h>
 
int main()
{
    int i = 0, sum = 0;
    while (i < 10)
    {
        sum += sum + i;
        i++;
    }
    printf("sum=%d\n", sum);
 
    return 0;
}

注意: 

1、如果第一次计算while后面的表达式时,结果为假,则循环体一次也不执行。

2、在循环体中要有是循环趋向于结束的语句,否则就会形成死循环。

3、do...while语句       

        格式如下:

do
{
   循环体语句
}while(表达式);

        先执行循环体语句,再判断循环条件是否成立。

        先执行一次循环体语句,然后计算表达式,如果表达式的值为真,则再执行一次循环体语句,如此循环,直到表达式为假,结束循环。

注意:

1、do...while语句的循环体至少可以被执行一次。

2、在循环体中一定要有趋向于结束的语句,否则会形成死循环。

4、for语句

        格式如下:

for(表达式1;表达式2;表达式3)
{
   语句
}

        例子:

        输出0到9

#include<stdio.h>
 
int main()
{
    int i ;
    for (i = 0; i < 10; ++i)
    {
        printf("%d\n", i);
    }//结果为0123456789
 
    return 0;
}

注意: 

1、表达式1一般为循环变量赋初值。

2、 表达式3一般为改变循环变量的值。

        猜数字游戏 :

        重点是产生随机数:

                产生随机数:
                       1、导入头文件  stdlib.h  time.h
                       2、添加随机数种子
                       3、获取随机数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 
int main()
{
    srand((unsigned int)time(NULL));//每次随机数不一样
    /*
    产生随机数:
    1、导入头文件  stdlib.h  time.h
    2、添加随机数种子
    3、获取随机数
    */
    int value = rand() % 100;//100以内的随机数
    int num;
    for (;;)
    {
        printf("请输入一个数字:\n");
        scanf("%d", &num);
        if (num > value)
        {
            printf("您输入的数字大了;\n");
        }
        else if (num < value)
        {
            printf("您输入的数字小了;\n");
        }
        else
        {
            printf("恭喜您,猜对了。\n");
            break;
        }
    }
    return 0;
}

5、break语句

        结合while语句格式如下:

while(表达式)
{
    语句1
    if(条件)
       break;
    语句2
}

        break语句可提前结束循环,从循环体内跳到循环外面,接着执行循环语句后面的语句。

6、continue语句

        结合while语句格式如下:

while(表达式)
{
    语句块1
    if(条件)
       continue;
    语句块2
}

        continue的作用是结束本次循环,接着进行下一次是否执行循环的判定。

7、goto语句

        格式如下:

goto 语句标号;

        goto语句被称为无条件转向语句。

        程序流程从当前位置无条件的转到“语句标号”所指定的位置去执行。

8、嵌套循环结构

        在一个循环体内部,可以包含另一个完整的循环结构。 

        某一种循环可以自身嵌套,也可以不同种类的循环互相嵌套。

例子: 

#include<stdio.h>
 
int main()
{
    int i, j;
    for (i = 0; i < 10; ++i)
    {
        for (j = 0; j < 5; ++j)
        {
            printf("i=%d,j=%d\n", i, j);
        }
    }
    //共执行了50次
    //外层执行一次,内层执行一周
 
    return 0;
}

 电子时钟  从00:00:00 到 23:59:59

        三个循环分别实现时针,分针,秒针。

#include<stdio.h>
#include<windows.h>
 
int main()
{
    //电子时钟  从00:00:00 到 23:59:59
    int i, j, k;//i 表示时针,j 表示分针,k 表示秒针
    for (i = 0; i < 24; ++i)
    {
        for (j = 0; j < 60; ++j)
        {
            for (k = 0; k < 60; ++k)
            {
                system("cls");//清屏
                printf("%02d:%02d:%02d\n", i, j, k);
                //不足两位数的用0补位  01:02:09
                Sleep(800);//降低输出速度
            }
        }
    }
    
    return 0;
}

 九九乘法表:

        两个循环分别实现行和列

#include<stdio.h>
 
int main()
{
    //九九乘法表
    int a, b;
    for (a = 1; a <=9;++a)
    {
        for (b = 1; b <= a; ++b)
        {
            printf("%d*%d=%d\t", b, a, a*b);
        }
        printf("\n");
    }
    //外层控制行,内层控制列
 
    return 0;
}

总结

        到这里就介绍的差不多了,也结束了。总之就是要掌握好一个知识点,必要的练习还是要有的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言——简单的程序设计 的相关文章

  • 定制化开发——时间轴组件

    文章目录 一 需求 二 思路 三 代码 3 1 第一版代码 3 2 改进 改进思路 改进说明 改进后代码 一 需求 1 开发一个展示轨迹数据用的时间轴组件 2 后端传入是一个 list 数据格式如下 const dataRalation e
  • ARM Mbed在线IDE编程意法半导体(ST)开发板

    硬件 软件 介绍 STM32F407发现板不直接支持MBED在线IDE 但是该板上的MCU也用于另一块官方MBED板上 Seeed Studio Arch Max v1 1 因此 可以通过将发现板当作Arch Max板进行编程 这是使用MB

随机推荐

  • 记录一次huawei sdk依赖 log4j导致,项目日志打印不正常的记录;log4j和Slf4j冲突导致tomcat日志不打印

    记录一次huawei sdk依赖 log4j导致 项目日志打印不正常的记录 log4j和Slf4j冲突导致tomcat日志不打印 问题描述 项目启动是发现日志中不打印tomcat启动日志 并且其实修改了 正常的日志 异常的日志 排查过程 虽
  • php 去除二维数组重复

    在 PHP 中 我们常常需要对数组进行处理和操作 有时候 我们需要去除数组中的重复元素 这里介绍一种针对二维数组的去重方法 以下是列举一些常见的方法 方法一 使用 array map 和 serialize 函数 array map 函数可
  • java Runtime打开文本文件和图片,网址,音频,视频和exe文件等

    java Runtime打开文本文件和图片 网址 音频 视频和exe文件等 exe文件 今天听课的时候 老师提到了这个Runtime 但是老师举例子的时候用的是这个QQ exe举例的 对于exe文件 我们只需要获得这个文本的绝对路径 然后用
  • MySQL · 特性分析 · MyRocks简介

    http mysql taobao org monthly 2016 08 03 RocksDB是facebook基于LevelDB实现的 目前为facebook内部大量业务提供服务 经过facebook大量工作 将RocksDB作为MyS
  • 【Python基础】在pandas中使用pipe()提升代码可读性

    1 简介 我们在利用pandas开展数据分析时 应尽量避免过于 碎片化 的组织代码 尤其是创建出过多不必要的 中间变量 既浪费了 内存 又带来了关于变量命名的麻烦 更不利于整体分析过程代码的可读性 因此以流水线方式组织代码非常有必要 图1
  • 打字侠:一款专业的中文打字网站

    打字侠第一个正式版发布啦 虽然离期望的样子还有一段路要走 不过能看到它正式发布 我还是很激动哟 打字侠是一款面向中学生和大学生的在线打字软件 它通过合理的课程设计和精美的图形界面帮助用户快速掌握盲打键盘的技巧 并提高打字效率 官方地址 he
  • sync/atomic - 原子操作

    sync atomic 原子操作 https github com polaris1119 The Golang Standard Library by Example blob master chapter16 16 02 md 对于并发
  • 23年新版 美团滑块 behavior _token

    逆向参数 behavior token Authencation f 一 behavior 加密位置 参数1 轨迹 参数2 request code 参数3 固定值 false 二 token 加密位置 参数1 固定值 false 参数2
  • P4355 [CERC2015] Kernel Knights

    P4355 CERC2015 Kernel Knights 题面翻译 骑术是一项中世纪的比赛 人们骑在马背上 在高速骑行时 试图用木制长矛互相攻击 总共有2n个骑士参加了一个激战锦标赛 来自两个主要竞争对手的N个骑士 到达后 每一个骑士都从
  • 基于Springboot+Vue社区志愿者管理平台

    作者主页 编程指南针 作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智
  • 二、Json对象、Json数组和Json字符串

    一 Json字符串和Json对象定义 本文中的示例采用的是 fastjson 1 定义 JSON就是一串字符串 只不过元素会使用特定的符号标注 JSONObject是一个 包裹起来的一个对象 Object 双括号表示对象 JSONArray
  • 2023/09/12 qt&c++

    实现一个图形类 Shape 包含受保护成员属性 周长 面积 公共成员函数 特殊成员函数书写 定义一个圆形类 Circle 继承自图形类 包含私有属性 半径 公共成员函数 特殊成员函数 以及获取周长 获取面积函数 定义一个矩形类 Rect 继
  • How to Use Advanced Similarity Rules to view similar case suggestions

    How to Use Advanced Similarity Rules to view similar case suggestions
  • SIM800C二次开发(EAT开发)------------(4)APP代码UART浅析

    上篇文章中使用的uart做了APP试验 今天对其代码做一下简单的分析 上代码 解析 一 文件中的结构体 app代码中需要加入APP CFG段 begin pragma arm section rodata APP CFG APP ENTRY
  • Outlook-VBA-05-自动获取邮件附件

    系统 Windows 10 软件 Outlook 2016 本系列讲讲在Outlook中使用VBA实现一些功能 今天讲讲如何将特定人员 特定主题的邮件的附件存储到本地 Part 1 场景描述 工作中 希望另外一方定期给自己分发一些报告 在本
  • [Pyhon大数据分析] 五.人民网新闻话题抓取及Gephi构建主题知识图谱

    该系列文章是Python大数据分析系列博客 包括网络爬虫 可视化分析 GIS地图显示 情感分析 舆情分析 主题挖掘 威胁情报溯源 知识图谱 预测预警及AI和NLP应用等 希望该系列文章对您有所帮助 前文分享了采用SnowNLP对微博话题进行
  • pb 制作程序运行报错界面

    一 运行程序时报错提示 1 gt 在应该程式里的systemerror returns none 如下代码 if err sys 1 then err sys 0 return else open w system error end if
  • QMessageBox使用方法

    提示 关于更多pyqt5内容请关注 QMessage 前言 一 QMessageBox介绍 二 使用步骤 1 引入库 2 QMessageBox的枚举类型 3 QMessageBox的对话框展示 1 critical消息对话框 2quest
  • 在pytorch中使用Tensorboard

    tensorboard是一种模型可视化工具 可以帮助我们实时查看深度学习模型数据 但它本身是为tensorflow量身定做 无法直接用于pytorch等其他深度学习框架 在这种情况下 出了TensorboardX 可以辅助tensorboa
  • C语言——简单的程序设计

    目录 前言 一 顺序结构程序 1 顺序程序结构介绍 2 顺序程序举例 二 选择结构程序 1 选择结构程序介绍 2 if语句的三种形式 1 第一种形式的if语句 2 第二种形式的if语句 3 第三种形式的if语句 3 switch语句 三 循