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

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


前言

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;
}

运行结果:


总结

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

目录
相关文章
|
1月前
|
网络协议 编译器 Linux
【C语言】结构体内存对齐:热门面试话题
【C语言】结构体内存对齐:热门面试话题
|
13天前
|
存储 搜索推荐 算法
【数据结构】树型结构详解 + 堆的实现(c语言)(附源码)
本文介绍了树和二叉树的基本概念及结构,重点讲解了堆这一重要的数据结构。堆是一种特殊的完全二叉树,常用于实现优先队列和高效的排序算法(如堆排序)。文章详细描述了堆的性质、存储方式及其实现方法,包括插入、删除和取堆顶数据等操作的具体实现。通过这些内容,读者可以全面了解堆的原理和应用。
56 16
|
1月前
|
编译器 C语言 Python
C语言结构
C语言结构
15 0
|
2月前
|
存储 算法 C语言
数据结构基础详解(C语言): 二叉树的遍历_线索二叉树_树的存储结构_树与森林详解
本文从二叉树遍历入手,详细介绍了先序、中序和后序遍历方法,并探讨了如何构建二叉树及线索二叉树的概念。接着,文章讲解了树和森林的存储结构,特别是如何将树与森林转换为二叉树形式,以便利用二叉树的遍历方法。最后,讨论了树和森林的遍历算法,包括先根、后根和层次遍历。通过这些内容,读者可以全面了解二叉树及其相关概念。
|
2月前
|
存储 C语言
C语言程序设计核心详解 第十章:位运算和c语言文件操作详解_文件操作函数
本文详细介绍了C语言中的位运算和文件操作。位运算包括按位与、或、异或、取反、左移和右移等六种运算符及其复合赋值运算符,每种运算符的功能和应用场景都有具体说明。文件操作部分则涵盖了文件的概念、分类、文件类型指针、文件的打开与关闭、读写操作及当前读写位置的调整等内容,提供了丰富的示例帮助理解。通过对本文的学习,读者可以全面掌握C语言中的位运算和文件处理技术。
|
2月前
|
存储 C语言
C语言程序设计核心详解 第七章 函数和预编译命令
本章介绍C语言中的函数定义与使用,以及预编译命令。主要内容包括函数的定义格式、调用方式和示例分析。C程序结构分为`main()`单框架或多子函数框架。函数不能嵌套定义但可互相调用。变量具有类型、作用范围和存储类别三种属性,其中作用范围分为局部和全局。预编译命令包括文件包含和宏定义,宏定义分为无参和带参两种形式。此外,还介绍了变量的存储类别及其特点。通过实例详细解析了函数调用过程及宏定义的应用。
|
2月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
2月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第六章 数组_一维数组_二维数组_字符数组详解
本章介绍了C语言中的数组概念及应用。数组是一种存储同一类型数据的线性结构,通过下标访问元素。一维数组定义需指定长度,如`int a[10]`,并遵循命名规则。数组元素初始化可使用 `{}`,多余初值补0,少则随机。二维数组扩展了维度,定义形式为`int a[3][4]`,按行优先顺序存储。字符数组用于存储字符串,初始化时需添加结束符`\0`。此外,介绍了字符串处理函数,如`strcat()`、`strcpy()`、`strcmp()` 和 `strlen()`,用于拼接、复制、比较和计算字符串长度。
|
2月前
|
存储 机器学习/深度学习 C语言
数据结构基础详解(C语言): 树与二叉树的基本类型与存储结构详解
本文介绍了树和二叉树的基本概念及性质。树是由节点组成的层次结构,其中节点的度为其分支数量,树的度为树中最大节点度数。二叉树是一种特殊的树,其节点最多有两个子节点,具有多种性质,如叶子节点数与度为2的节点数之间的关系。此外,还介绍了二叉树的不同形态,包括满二叉树、完全二叉树、二叉排序树和平衡二叉树,并探讨了二叉树的顺序存储和链式存储结构。
|
2月前
|
存储 C语言
C语言程序设计核心详解 第九章 结构体与链表概要详解
本文档详细介绍了C语言中的结构体与链表。首先,讲解了结构体的定义、初始化及使用方法,并演示了如何通过不同方式定义结构体变量。接着,介绍了指向结构体的指针及其应用,包括结构体变量和结构体数组的指针操作。随后,概述了链表的概念与定义,解释了链表的基本操作如动态分配、插入和删除。最后,简述了共用体类型及其变量定义与引用方法。通过本文档,读者可以全面了解结构体与链表的基础知识及实际应用技巧。