当前位置: 首页 > news >正文

【2025年软考中级】第二章2.2 程序设计语言的基本成分

文章目录

    • 程序设计语言的基本成分
      • 1. 数据成分:程序中的“物品”
      • 2. 运算成分:数据的“操作”
      • 3. 控制成分:程序的“流程”
      • 4. 传输成分:数据的“搬运”
      • 5. 函数:程序的“工具包”
        • 函数三要素
        • 参数传递的两种方式

程序设计语言的基本成分

每种编程语言都由几个核心部分组成,就像搭建积木一样。了解这些基础成分能帮你更快上手任何语言:

1. 数据成分:程序中的“物品”

数据就是程序处理的信息,分为不同类型:

  • 常量:固定不变的值(如圆周率3.14)
  • 变量:可以改变的值(如游戏中的得分)
  • 全局量:整个程序都能访问的数据
  • 局部量:只在特定函数中有效的数据

常见数据类型

类型说明示例
整型整数5, -10, 100
浮点型小数3.14, -0.5
字符型单个字符‘A’, ‘9’, ‘@’
布尔型真假值true, false
字符串文本“Hello”

就像超市商品分水果、蔬菜一样,数据分类让计算机知道如何存储和处理它们

2. 运算成分:数据的“操作”

运算符就像数学符号,让数据产生新结果:

  • + - * /:加减乘除
  • > < ==:比较大小/相等
  • && || !:逻辑运算(且、或、非)
  • & | ^:位运算(计算机底层操作)
# 简单运算示例
price = 50  # 单价
quantity = 3  # 数量
total = price * quantity  # 使用*运算符计算总价

3. 控制成分:程序的“流程”

决定代码执行顺序的三种基本结构:

程序控制结构示意图

  1. 顺序结构:从上到下顺序执行(像菜谱步骤)
  2. 选择结构:根据条件选择执行路径(像岔路口)
    if (score >= 60) {printf("及格!");
    } else {printf("再接再厉");
    }
    
  3. 循环结构:重复执行特定代码(像工厂流水线)
    for i in range(5):  # 打印5次print("Hello World!")
    

4. 传输成分:数据的“搬运”

程序内外的数据传递方式:

  • 赋值:把数据存入变量(x = 10
  • 输入:从键盘/文件获取数据
  • 输出:显示结果到屏幕/文件
// 简单的输入输出
int age;
printf("请输入年龄:");  // 输出提示
scanf("%d", &age);     // 输入数据

5. 函数:程序的“工具包”

函数是把代码打包的独立单元,方便重复使用。C语言程序必须包含main函数作为起点:

函数三要素
  1. 函数定义:创建工具
    // 函数定义示例
    int add(int a, int b) {  // 函数首部:返回类型int,函数名add,参数a,breturn a + b;        // 函数体:执行加法
    }
    
  2. 函数声明:提前说明工具(类似产品说明书)
    int add(int, int);  // 声明:告诉编译器有个add函数
    
  3. 函数调用:使用工具
    int result = add(3, 5);  // 调用函数,result得到8
    
参数传递的两种方式
方式特点类比
值调用传递数据副本
函数内修改不影响原始值
给你文件复印件
你修改不影响原文件
引用调用传递数据地址
函数内修改影响原始值
直接给你原文件
你的修改会保存

小贴士:在C语言中,想修改原始数据需使用指针(地址传递),C++则提供更简单的引用方式

函数调用示意图

http://www.xdnf.cn/news/744751.html

相关文章:

  • 二叉搜索树——红黑树
  • WIFI中2.4G和5G的区别,和WiFi5,WiFi6和WiFi7的区别,
  • 【C++】模板
  • JWT 原理与设计上的缺陷及利用
  • 数据库-MySQL索引事务
  • 深入理解MCP模型协议:构建全能AI服务端
  • 计算机视觉与深度学习 | 基于Matlab的门禁指纹识别与人脸识别双系统实现
  • 【项目】在线OJ(负载均衡式)
  • (新)MQ高级-MQ的可靠性
  • AI炼丹日志-25 - OpenAI 开源的编码助手 Codex 上手指南
  • git 之 stash
  • Git -> Git Stash临时保存当前工程分支修改
  • 第二十章 文本处理
  • 深入解析C#多态性:基类引用、虚方法与覆写机制
  • 字符串索引、幻读的解决方法
  • Pytorch---ImageFolder
  • C++ 的四种强制类型转换:static_cast、dynamic_cast、const_cast 和 reinterpret_cast
  • MIT 6.S081 2020 Lab6 Copy-on-Write Fork for xv6 个人全流程
  • 修改 vscode 左侧导航栏的文字大小 (更新版)
  • Cursor奇技淫巧篇(经常更新ing)
  • # STM32F103 串口打印配置(HAL库)
  • foundationpose位姿检测环境搭建与数据集制作
  • Android任务栈管理策略总结
  • 蓝桥杯 盗墓分赃2
  • Deepin 23.10安装Docker
  • Go语言中的布尔类型详解
  • 截面动量策略思路
  • 内存管理 : 04段页结合的实际内存管理
  • Muduo网络库重点技术详解
  • tomcat服务器以及接受请求参数的方式