C语言导航 4.1语法基础

第四章 顺序结构程序设计

第一节 语法基础

  • 语句概念

  • 语句详解

  • 程序详解

4.1.1语句概念

说明:构成高级语言源程序的基本单位。

特征:在C语言中语句以分号作为结束标志。

分类:

(1)简单语句:空语句、表达式语句、return语句、break语句、continue语句、goto语句、函数调用语句。

(2)结构语句:复合语句、选择语句、循环语句。

4.1.2语句详解

1.简单语句

(1)空语句:只有一个分号的语句。

(2)表达式语句:用表达式进行计算的语句,是程序中最常用的语句。

(3)return语句:用于函数的返回。

(4)break语句:用于退出循环或switch结构。

(5)continue语句:用于结束本次循环。

(6)goto语句:将程序控制转向标号处,极不推荐使用。

(7)函数调用语句:用于函数调用。

2.结构语句

(1)复合语句:用“{”、若干语句、“}”组合起来的语句,在逻辑上是一条语句。

(2)选择与循环语句:与选择结构与循环结构有关的语句。

4.1.3程序详解

说明:程序的编写如同写作,无硬性要求,情况多变,但最基本的简单程序如[程序现场]4-1-3所示,对于分支结构、循环结构、函数的调用等复杂行为不作描述。

1.预处理指令

位置:[程序现场]4-1-3中第1行。

作用:指示编译器在编译之前准备需准备的内容,主要为编译时将人为简化的内容转换成标准的内容,因此仅参与编译,不参与执行。

内容:

指令作用
#define宏定义,可以定义符号常量、运算符
#include包含,包含一个源代码文件
#undef取消已定义的宏
#ifdef如果宏已经定义,则返回真
#ifndef如果宏没有定义,则返回真
#if如果给定条件为真,则编译下面代码
#else当前一个#if条件未执行,则执行本指令下的代码
#endif结束一个#if……#else条件编译的块
#error当遇到标准错误时,输出错误消息
#pragma使用标准化方法,向编译器发布特殊的命令到编译器中

说明:该程序预处理了包含指令,其中包含指令包含的内容为stdio.h文件。

2.主函数名

位置:[程序现场]4-1-3中第2行。

说明:主函数为C程序入口和出口,程序中有且仅有一个,其中函数名定义了输入数据类型与输出类型。

输入:主函数参数列表完整为( int argc , char *argv[] ),其中argc存放的为命令行参数argv的个数,argv存放的内容为程序名称、所在文件夹地址等信息。

输出:采用数据类型定义函数即定义返回值类型。

3.主函数体

位置:[程序现场]4-1-3中第3行至第12行。

说明:是程序最先开始及最后执行的部分。

4.定义

位置:[程序现场]4-1-3中第4行。

说明:在C语言中任何变量都应定义,表明其存在性后才能使用。

5.函数

位置:[程序现场]4-1-3中第5行至第6行和第9行。

说明:调用函数以简化程序的编写,该函数为系统函数,是stdio.h文件中的内容。

6.注释

位置:[程序现场]4-1-3中第5行和第7行。

说明:为方便看懂程序而写下的内容,其内容不参与编译,有两种注释形式。

分类:

形式作用
//用于单行注释,注释后的内容不参与编译。
/* …… */用于多行注释,注释里的内容不参与编译。

7.算法

位置:[程序现场]4-1-3中第8行。

说明:完成程序任务的主要内容,其变化多样,但有可行性、确定性、有穷性、可输入/输出性这几个特征。

8.返回值

位置:[程序现场]4-1-3中第11行。

说明:在完成程序任务后,向调用者提供的运算结果,需要更具函数名类型选择返回类型。

【程序现场】4-1-3
 #include<stdio.h>int main(){int a,b;printf("Input a b:");   //提示scanf("%d%d",&a,&b);/*计算过程*/int t=a<b?b-a:a-b;printf("The difference between a and b is %d",t);   return 0;}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Restful API接⼝简介及为什么要进⾏接⼝压测

一、RESTful API简介 在现代Web开发中&#xff0c;RESTful API已经成为一种标准的设计模式&#xff0c;用于构建和交互网络应用程序。本文将详细介绍RESTful API的基本概念、特点以及如何使用它来设计高效的API接口。 1. 基于协议 HTTP 或 HTTPS RESTful API通常使用HTTP&am…

面试经典 150 题:20、2、228、122

20. 有效的括号 参考代码 #include <stack>class Solution { public:bool isValid(string s) {if(s.size() < 2){ //特判&#xff1a;空字符串和一个字符的情况return false;}bool flag true;stack<char> st; //栈for(int i0; i<s.size(); i){if(s[i] ( |…

Python爬虫下载新闻,Flask展现新闻(2)

上篇讲了用Python从新闻网站上下载新闻&#xff0c;本篇讲用Flask展现新闻。关于Flask安装网上好多教程&#xff0c;不赘述。下面主要讲 HTML-Flask-数据 的关系。 简洁版 如图&#xff0c;页面简单&#xff0c;主要显示新闻标题。 分页&#xff0c;使用最简单的分页技术&…

基于Java和Vue实现的上门做饭系统上门做饭软件厨师上门app

市场前景 生活节奏加快&#xff1a;在当今快节奏的社会中&#xff0c;越来越多的人因工作忙碌、时间紧张而无法亲自下厨&#xff0c;上门做饭服务恰好满足了这部分人群的需求&#xff0c;为他们提供了便捷、高效的餐饮解决方案。个性化需求增加&#xff1a;随着人们生活水平的…

【配置后的基本使用】CMake基础知识

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;各种软件安装与配置_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1.…

Centos 7 安装wget

Centos 7 安装wget 最小化安装Centos 7 的话需要上传wget rpm包之后再路径下安装一下。rpm包下载地址&#xff08;http://mirrors.163.com/centos/7/os/x86_64/Packages/&#xff09; 1、使用X-ftp 或者WinSCP等可以连接上传的软件都可以首先连接服务器&#xff0c;这里我用的…

Linux最深刻理解页表于物理内存

目录 物理内存管理 页表设计 物理内存管理 如果磁盘上的内容加载到物理内存上&#xff0c;每次io都会按照4kb的方式进行加载(可能不同版本系统有些区别)。所以我们的物理内存上的内容也是4个字节进行管理的。 而每个页框都需要我们进行管理。所以自然物理内存就会对页框进行先…

几何合理的分片段感知的3D分子生成 FragGen - 评测

FragGen 来源于 2024 年 3 月 25 日 预印本的文章&#xff0c;文章题目是 Deep Geometry Handling and Fragment-wise Molecular 3D Graph Generation&#xff0c; 作者是 Odin Zhang&#xff0c;侯廷军&#xff0c;浙江大学药学院。FragGen 是一个基于分子片段的 3D 分子生成模…

PySpark——Python与大数据

一、Spark 与 PySpark Apache Spark 是用于大规模数据&#xff08; large-scala data &#xff09;处理的统一&#xff08; unified &#xff09;分析引擎。简单来说&#xff0c; Spark 是一款分布式的计算框架&#xff0c;用于调度成百上千的服务器集群&#xff0c;计算 TB 、…

基于Java Springboot编程语言在线学习平台

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…

WebRTC视频 02 - 视频采集类 VideoCaptureModule

WebRTC视频 01 - 视频采集整体架构 WebRTC视频 02 - 视频采集类 VideoCaptureModule&#xff08;本文&#xff09; WebRTC视频 03 - 视频采集类 VideoCaptureDS 上篇 WebRTC视频 04 - 视频采集类 VideoCaptureDS 中篇 WebRTC视频 05 - 视频采集类 VideoCaptureDS 下篇 一、前言…

深度学习笔记14-卷积神经网络2

1.卷积神经网络的结构 卷积神经网络&#xff0c;是包含卷积运算且具有深度结构的前馈神经网络。在卷积神经网络中&#xff0c;包含卷积层、池化层和全连接层三种重要的结构。相比前馈神经网络&#xff0c;卷积层和池化层是新增的网络结构&#xff0c;在提取特征时&#xff0c;卷…

Python 正则表达式使用指南

Python 正则表达式使用指南 正则表达式&#xff08;Regular Expression, 简称 regex&#xff09;是处理字符串和文本的强大工具。它使用特定的语法定义一组规则&#xff0c;通过这些规则可以对文本进行匹配、查找、替换等操作。Python 提供了 re 模块&#xff0c;使得正则表达…

FPGA开发-逻辑分析仪的应用-数字频率计的设计

目录 逻辑分析仪的应用 数字频率计的设计 -基于原理图方法 主控电路设计 分频器设计 顶层电路设计 数字系统开发不但需要进行仿真分析&#xff0c;更重要的是需要进行实际测试。 逻辑分析仪的应用 测试方式&#xff1a;&#xff08;1&#xff09;传统的测试方式&#…

.NET 9.0 中 System.Text.Json 的全面使用指南

以下是一些 System.Text.Json 在 .NET 9.0 中的使用方式&#xff0c;包括序列化、反序列化、配置选项等&#xff0c;并附上输出结果。 基本序列化和反序列化 using System; using System.Text.Json; public class Program {public class Person{public string Name { get; se…

Linux 命令 | 每日一学,文本处理三剑客之awk命令实践

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 0x00 前言简述 描述&#xff1a;前面作者已经介绍了文本处理三剑客中的 grep 与 sed 文本处理工具&#xff0c;今天将介绍其最后一个且非常强大的 awk 文本处理输出工具&#xff0c;它可以非常方便…

【第五课】Rust所有权系统(一)

目录 前言 所有权机制的核心 再谈变量绑定 主人变更-所有权转移 总结 前言 这节课我们来介绍下rust中最重要的一个点&#xff1a;所有权系统。这是网上经常说rust无gc的秘密所在。在开始之前&#xff0c;我们来想想JVM系语言&#xff0c;在做垃圾回收的过程&#xff0c;1.…

三周精通FastAPI:42 手动运行服务器 - Uvicorn Gunicorn with Uvicorn

官方文档&#xff1a;Server Workers - Gunicorn with Uvicorn - FastAPI 使用 fastapi 运行命令 可以直接使用fastapi run命令来启动FastAPI应用&#xff1a; fastapi run main.py如创建openapi.py文件&#xff1a; from fastapi import FastAPIapp FastAPI(openapi_url&…

任意文件下载漏洞

1.漏洞简介 任意文件下载漏洞是指攻击者能够通过操控请求参数&#xff0c;下载服务器上未经授权的文件。 攻击者可以利用该漏洞访问敏感文件&#xff0c;如配置文件、日志文件等&#xff0c;甚至可以下载包含恶意代码的文件。 这里再导入一个基础&#xff1a; 你要在网站下…

编写一个生成凯撒密码的程序

plain list(input("请输入需要加密的明文&#xff08;只支持英文字母&#xff09;&#xff1a;"))key int(input("请输入移动的位数&#xff1a;"))base_A ord(A)base_a ord(a)cipher []for each in plain:if each :cipher.append( )else:if each.i…