【C语言程序设计】顺序结构程序设计

目录

前言

一、程序阅读

二、程序改错

三、程序设计


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

💡本文由Filotimo__✍️原创,首发于CSDN📚。

📣如需转载,请事先与我联系以获得授权⚠️。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。

前言

C 语言具有五种基本语句:

1. 程序流程控制语句:用于根据条件来控制程序的执行流程。主要包括if语句、switch语句和循环语句(如while、do-while、for等)。这些语句允许程序在满足特定条件时执行不同的操作。

2. 函数调用语句:通过调用函数来执行特定的操作。函数调用语句需要提供函数名和相应的参数,可以将函数的返回值赋给变量或者直接使用函数的返回值。

3. 表达式语句:通过表达式完成某种计算操作并产生结果。这种语句的形式简单,通常以分号结尾。例如,a = b + c; 将表达式 b + c 的结果赋给变量 a。

4. 空语句:也称为空语句或者空操作语句,它是一条什么都不做的语句,只有一个分号。空语句通常用于程序结构的占位或者在某些循环中不需要执行任何操作的情况下。

5. 复合语句:由一对花括号括起来的语句序列,也称为代码块或语句块。复合语句可以包含多个语句,并且可以嵌套使用。复合语句的主要用途是创建局部作用域并将相关语句组织在一起。

以下是顺序结构程序设计的五个步骤:

1. 分析出程序的输入量和输出量:根据问题的需求,确定程序需要接受哪些数据作为输入,以及需要输出哪些数据作为结果。例如,一个计算圆的周长和面积的程序,其输入量可能是圆的半径,而输出量可能是周长和面积。

2. 确定输入和输出的变量:命名、类型和格式:为了方便程序的理解和编写,需要为输入和输出的变量命名,并指定其类型和格式。例如,对于上面的计算圆的程序,可以使用“r”表示圆的半径,使用“c”和“a”分别表示圆的周长和面积。

3. 确定输入和输出的算法:为了计算输入数据的结果并输出,需要明确计算的算法和逻辑。例如,计算圆的面积和周长的算法分别为A = πr²和C = 2πr,其中“π”为圆周率,可以使用预定义的常量或变量存储。

4. 模块化编程:将程序拆分为多个独立的模块,每个模块负责执行特定的任务。这有助于简化程序的复杂度,提高程序的可维护性和可重用性。例如,可以使用一个函数计算圆的面积,另一个函数计算圆的周长,主函数则负责接受输入数据和输出结果。

5. 调试程序:在编写完成程序之后,需要测试和调试程序,以确保程序的正确性和稳定性。可以使用调试工具或日志记录等方法,发现和解决程序中的错误和异常,确保程序能够运行如预期。


一、程序阅读

在阅读并理解程序思路的基础上,练习强制类型转换运算符的使用,补充注释内容,并上机运行程序,验证运行结果与自己分析的结果是否相符。

#include <stdio.h>
int main()
{
    int d; 
    
    // 将3除以2,得到1,因为是整数除法
    // 强制转换为 double 类型,得到 1.0
    // 注意,此处并不是将分子和分母都转换为 double 类型再相除
    // 而是先进行整数除法,再将结果转换为 double 类型
    double result1 = (double)(3/2);
    
    // 将 result1 加上 0.5,得到 1.5
    // 因为 0.5 是 double 类型,所以 result1 也会自动转换为 double 类型进行运算
    double result2 = result1 + 0.5;
    
    // 将 1.99 强制转换为 int 类型,得到 1
    int result3 = (int)1.99;
    
    // 将 2 乘以 result3,得到 2
    // 因为 result3 是 int 类型,所以运算结果也会是 int 类型
    int result4 = 2 * result3;
    
    // 将 result2、result4 相加,得到 3.5
    // 因为 result2 是 double 类型,result4 是 int 类型,所以运算结果会是 double 类型
    double result5 = result2 + result4;
    
    // 强制转换将 result5 转换为 int 类型,得到 3
    // 强制转换会舍弃小数部分,只保留整数部分
    d = (int)result5;
    
    printf("d=%d\n", d); 
    return 0; 
}

运行结果:

二、程序改错

程序中有4处错误,上机调试程序,修改有错误的语句行,并输出正确的运行结果。

第1句: #include<stdio.h>

第2句:int main()

第3句:{ float x=2,y ;

第4句: y=3;

第5句: z=2x +y;

第6句: printf("%d\n",y);

第7句: printf("%f\n,z");

第8句: return 0;}

修正后的代码:

#include <stdio.h>

int main()
{
    float x = 2, y;
    y = 3;
    float z = 2 * x + y;
    printf("%f\n", y);
    printf("%f\n", z);
    return 0;
}

修改后的程序中,修复了以下错误:

1.第3句:修复了变量声明中缺少分号的错误,在 float x=2,y ; 语句中添加了分号。

2.第5句:修复了乘法运算符的错误,将 2x 更正为 2 * x

3.第6句:修复了错误的格式化字符串,变量 y 是浮点型,应该使用 %f 进行格式化输出。

4.第7句:修复了字符串格式化错误,在 printf 语句中,将 z 作为 %f 的参数并用逗号分隔,修正为 "%f\n"

运行结果:

三、程序设计

编写程序,将China译成密码,译码规律是:用原来字母后面的第5个字母代替原来的字母。

实现代码:

#include <stdio.h>
#include <string.h>

int main()
{
    char str[100] = "China";
    int len = strlen(str);
    
    for (int i = 0; i < len; i++) {
        if ('A' <= str[i] && str[i] <= 'Z') {
            // 对于大写字母,将字母后移5个位置,并取模,保证在字母表范围内
            str[i] = (str[i] - 'A' + 5) % 26 + 'A';
        }
        else if ('a' <= str[i] && str[i] <= 'z') {
            // 对于小写字母,同理
            str[i] = (str[i] - 'a' + 5) % 26 + 'a';
        }
    }
    
    printf("加密后的密文为: %s\n", str);
    return 0;
}

运行结果:


总结

通过学习顺序结构程序设计,我们可以了解到程序的执行顺序是从上到下依次执行的,这为我们编写简单而有效的程序提供了基础。掌握顺序结构程序设计的基本思想和技巧对于学习和理解其他复杂的程序控制结构(如条件语句和循环语句)至关重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/237596.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Go语言学习:第1天

一、为什么开始学go语言 我自己是做测试的&#xff0c;所测试项目使用的是go语言。开始学习go语言的原因有两个&#xff1a;一方面&#xff0c;为了更好的做好工作&#xff1b; 另一方面&#xff0c;为了提高自己的核心竞争力。 二、第1天学习到的内容 2.1 Go是怎么解决包依…

云计算 云原生

一、引言 云计算需要终端把信息上传到服务器&#xff0c;服务器处理后再返回给终端。在之前人手一台手机的情况下&#xff0c;云计算还是能handle得过来的。但是随着物联网的发展&#xff0c;什么东西都要联网&#xff0c;那数据可就多了去了&#xff0c;服务器处理不过来&…

php实现个性化域名(短网址)和个性化登录模版的解决方案

在PHP中&#xff0c;个性化域名通常指的是根据用户或业务需求动态生成具有特定规律的子域名。实现个性化域名的方法主要依赖于服务器配置和路由规则。下面是一些基本的步骤和考虑因素&#xff0c;以帮助你了解如何个性化域名&#xff0c;并了解这样做的好处。 如何实现个性化域…

不同路径dp问题

1.状态表示 2.状态转移方程 3.初始化 4.填表顺序 从上往下填写每一行 每一行从左往右 5.返回值 dp[m][n] ------------------------------------------------------------------------------------------------------------------------------ 1.状态表示 2.状态转移方程 3…

Datawhale聪明办法学Python(task0环境配置及工具的安装)

一、课程基本结构 二、task0环境配置及工具的安装 本次测试环境为win7 Miniconda安装地址选择适合自己的Miniconda版本并安装。 本机选择Miniconda3-py37_4.12.0-Windows-x86 原因为原环境Anaconda系统环境与miniconda默认配置勾选的配置重叠&#xff1a; 重新全部卸载Anac…

基于单片机智能浇花控制系统设计

**单片机设计介绍&#xff0c;基于单片机智能浇花控制系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的智能浇花控制系统可以通过水泵、传感器和单片机等硬件组件实现自动浇水&#xff0c;减轻人工浇花的工作…

Connection refused: no further information

解决目录 一、报错信息二、解决方法 一、报错信息 二、解决方法 1、报错原因是开启了代理&#xff0c;像AS是绝对不能开代理的。 2、设置为No proxy&#xff0c;然后Apply再选择OK&#xff0c;重新同步。 要远离消耗你的人和事&#xff0c;不要花费任何情绪或者精力在他们身…

2024年江苏省职业院校技能大赛信息安全管理与评估 第三阶段教师组(样卷)

2024年江苏省职业院校技能大赛信息安全管理与评估 第三阶段教师组&#xff08;样卷&#xff09; 竞赛项目赛题 本文件为信息安全管理与评估项目竞赛-第三阶段教师组样题&#xff0c; 内容包括&#xff1a;网络安全渗透、理论技能与职业素养。 本次比赛时间为180分钟。 介绍 Ge…

如何利用Guava优化Java网络编程

第1章&#xff1a;引言 大家好&#xff01;今天小黑要和咱们聊聊一个很酷的话题&#xff1a;如何利用Google的Guava库来优化Java网络编程。网络编程&#xff0c;这玩意儿听起来就高大上&#xff0c;不是吗&#xff1f;但实际上&#xff0c;它充满了各种挑战。从处理复杂的数据…

7 Linux 内核移植

一、编译 ST 的 Linux 系统 1. 压缩源码 首先先下载 ST 官方源码&#xff0c;之前章节已经下载过了&#xff0c;直接输入以下命令&#xff1a; cd linux/atk-mpl/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.4.31-r0/ 然…

SiteGround如何设置WordPress网站自动更新

SiteGround Autoupdate功能会自动帮我们更新在他们这里托管的所有WordPress网站&#xff0c;这样做是为了保证网站安全&#xff0c;并且让它们一直保持最新状态。他们会根据我们选择的设置自动更新不同版本的WordPress&#xff0c;包括主要版本和次要版本。在每次自动更新之前&…

【Docker】进阶之路:(十二)Docker Composer

【Docker】进阶之路&#xff1a;&#xff08;十二&#xff09;Docker Composer Docker Compose 简介安装 Docker Compose模板文件语法docker-compose.yml 语法说明imagecommandlinksexternal_linksportsexposevolumesvolunes_fromenvironmentenv_fileextendsnetpiddnscap_add,c…

Android---Kotlin 学习002

声明变量 在 Kotlin 中定义一个变量&#xff0c;通过关键字 var 开始。然后是变量名&#xff0c;在“:”后紧跟变量类型。 示例1&#xff1a;声明一个 int 类型的变量 var num:Int 1 示例2&#xff1a;声明一个 String 类型的变量 var str:String "Hello world&quo…

SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案

Maven项目的Jar包打包问题-没有主清单属性&&ClassNotFoundException 与 NoClassDefFoundError 文章目录 Maven项目的Jar包打包问题-没有主清单属性&&ClassNotFoundException 与 NoClassDefFoundError1、问题出现1.1、Jar包运行&#xff1a;没有主清单属性解决方…

2023年华为HCIA认证H12-811题库讲解

在VRP平台上&#xff0c;可以通过下面哪种方式返回到上一条历史命令&#xff1f;&#xff08; &#xff09; A、Ctr1U B、Ctr1P C、左光标 D、上光标 试题答案&#xff1a;BD 试题解析&#xff1a;在VRP系统中&#xff0c;ctrlU为自定义快捷键&#xff0c;ct…

Python - 搭建 Flask 服务实现图像、视频修复需求

目录 一.引言 二.服务构建 1.主函数 upload_gif 2.文件接收 3.专属目录 4.图像修复 5.gif2mp4 6.mp42gif 7.图像返回 三.服务测试 1.服务启动 2.服务调用 四.总结 一.引言 前面我们介绍了如何使用 Real-ESRGAN 进行图像增强并在原始格式 jpeg、jpg、mp4 的基础上…

MAC配置环境变量

1、配置 JAVA JDK 1.1、查看 JDK 安装目录 &#xff08;1&#xff09;可以在Android Studio中查看&#xff0c;复制该路径 &#xff08;2&#xff09;也可以在官网下载 Java JDK下载地址 mac中的安装地址是"资源库->Java->JavaVirtualMachines"中 1.2、…

【Nacos】在Windows环境下搭建Nacos服务与Python开发示例

在Windows环境下搭建Nacos服务与Python开发示例 Nacos是一个开源的动态服务发现、配置和服务管理平台。本文将介绍在Windows环境下搭建Nacos服务&#xff0c;并提供一个简单的Python示例&#xff0c;演示如何通过Nacos实现服务注册与发现。 官方提示&#xff1a;Nacos定义为一…

nodejs+vue+微信小程序+python+PHP的外卖数据分析-计算机毕业设计推荐django

构建一种完全可实现、可操作的开放源代码信息收集系统&#xff0c;帮助记者完成工作任务。采编人员仅需输入所收集到的网址及题目即可迅速启动收集工作并进行信息归类。 2.根据新的数据收集要求&#xff0c;采用云计算技术实现新的收集器的迅速部署。对于资料采集点的改版&…

IoTDB控制台工具Workbench

文章目录 概述环境要求安装下载启动服务 登录用户界面主界面 连接 概述 Workbench是一个可创建多个连接的图形化数据库管理工具&#xff0c;用于管理IoTDB&#xff0c;提供元数据的可视化与管理、数据的增删改查以及权限控制等功能。Workbench不仅满足专业开发人员的所有需求&…