全国计算机等级考试二级C语言考试学习笔记

2023-11-06

1、C语言程序的结构

1.1 程序的构成,main函数和其他函数

1.1.1 main函数:
一个完整的C语言程序,是由一个、且只能有一个main()函数(又称主函数,必须有)和若干个其他函数结合而成(可选)。
main函数是C语言程序的入口,程序是从main函数开始执行。

1.1.2 其他函数
从函数定义的角度看,函数可分为系统函数和用户定义函数:
系统函数,即库函数:这是由编译系统提供的,用户不必自己定义这些函数,可以直接使用它们,如我们常用的打印函数printf()。
用户定义函数:用以解决用户的专门需要。

1.2源程序的书写格式

编写C语言代码:hello.c

#include <stdio.h>

int main()

{

//这是第一个C语言代码 

printf("hello world\n");

return 0;

}

C语言的源代码文件是一个普通的文本文件,但扩展名必须是.c。

1.3头文件,数据说明,函数的开始和结束标志以及程序中的注释

1.3.1 include头文件包含
#include的意思是头文件包含,#include <stdio.h>代表包含stdio.h这个头文件
使用C语言库函数需要提前包含库函数对应的头文件,如这里使用了printf()函数,需要包含stdio.h头文件
可以通过man 3 printf查看printf所需的头文件

#include< > 与 #include ""的区别:
< > 表示系统直接按系统指定的目录检索
"" 表示系统先在 "" 指定的路径(没写路径代表当前路径)查找头文件,如果找不到,再按系统指定的目录检索

1.3.2 main函数

一个完整的C语言程序,是由一个、且只能有一个main()函数(又称主函数,必须有)和若干个其他函数结合而成(可选)。
main函数是C语言程序的入口,程序是从main函数开始执行。

1.3.3  {} 括号,程序体和代码块

{}叫代码块,一个代码块内部可以有一条或者多条语句
C语言每句可执行代码都是";"分号结尾
所有的#开头的行,都代表预编译指令,预编译指令行结尾是没有分号的
所有的可执行语句必须是在代码块里面

1.3.4 注释
//叫行注释,注释的内容编译器是忽略的,注释主要的作用是在代码中加一些说明和解释,这样有利于代码的阅读
/**/叫块注释
块注释是C语言标准的注释方法
行注释是从C++语言借鉴过来的

1.3.5 printf函数
printf是C语言库函数,功能是向标准输出设备输出一个字符串
printf(“hello world\n”);//\n的意思是回车换行

1.3.6 return语句
return代表函数执行完毕,返回return代表函数的终止
如果main定义的时候前面是int,那么return后面就需要写一个整数;如果main定义的时候前面是void,那么return后面什么也不需要写
在main函数中return 0代表程序执行成功,return -1代表程序执行失败
int main()和void main()在C语言中是一样的,但C++只接受int main这种定义方式

1.4 C语言的风格
1.4.1 缩进
Tabs(制表符)是8个字符的大小,因此缩进也应该是8个字符的大小。
缩进背后的思想是:清楚地定义一个控制块从哪里开始,到哪里结束。

1.4.2放置花括号

C程序中另一个要主意的就是花括号的放置。与缩进尺寸不同的是,关于如何放置花括号没有技术上的理由。
另外一种情况,就是函数:函数应当把左右括号都放在行首。
注意这种花括号的放置减少了空行的数目,并没损害可读性。因此,当屏幕上不可以有很多空行时,你就有更多的空行来安插注释。


1.4.3 标识符命名规则

  标识符不能是关键字。
标识符只能由字母、数字、下划线组成。
第一个字符必须为字母或下划线。
标识符中字母区分大小写。

1.4.4 注释

注释是有用的,但过量的注释则是有害的。不要试图在注释中解释你的代码是如何工作的:把代码是如何工作的视为一件显然的事情会更好些,而且,给糟糕的代码作注释则是在浪费时间。

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

全国计算机等级考试二级C语言考试学习笔记 的相关文章

  • 一行 Python 代码实现并行!

    Python 在程序并行化方面多少有些声名狼藉 撇开技术上的问题 例如线程的实现和 GIL 我觉得错误的教学指导才是主要问题 常见的经典 Python 多线程 多进程教程多显得偏 重 而且往往隔靴搔痒 没有深入探讨日常工作中最有用的内容 传
  • 【计算机视觉】详解 自注意力:Non-local 模块与 Self-attention (视觉注意力机制 (一))

    目录 绪论 一 视觉应用中的 self attention 机制 1 1 self attention 机制 1 2 Self attention 机制应用 Non local Neural Networks 绪论 在计算机视觉中 注意力机
  • Vue笔记_03组件_transition组件(Vue内置组件)

    目录 transition组件 作用 过渡时机 语法1 语法2 使用 animation侦动画 使用 过渡动画 总结 逻辑 前后端配置 动态显示页面 transition组件 作用 transition组件的作用是 给 单个 元素 组件 添
  • Uncaught SyntaxError: Invalid or unexpected token

    报错原因 内含中文字符串或者中文的符号 解决方案 1 去除页面上中文符号 改成英文符号 2 特殊的情况 那我的报错原因来说一下 报错代码和背景 我在做js使用DOM元素做拼接 报了这个错误 Uncaught SyntaxError Inva
  • 使用循环打印三角型以及九九乘法表

    一 循环打印三角形 1 需求分析 需要用到双层for循环来实现 外层循环实现行数 内层循环实现每行的个数 外层每循环一次 就换一次行 内层循环打印的个数与外层循环的行数是相对应的 由于内层循环的个数和外层循环的行数一样 所以内部循环的判断条
  • Linux下C++开发笔记--解决报错error: redefinition of “xxx“

    1 报错截图 2 错误原因 对应的头文件被多次包含 3 解决方法 在头文件最上面加上以下代码 以避免被多次包含 pragma once
  • 原码,反码,补码的使用

    机器码 1 首先得知道 什么是机器码 将符号 数字化 的二进制数就叫做机器码 其中有两点 1 将符号数字化 也就是将 用数字0表示 用数字1表示 最高位表示符号位 2 必须是二进制数 因为计算机中所有的数据都是以二进制形式存储的 2 了解了
  • HBase主要运行机制(物理存储和逻辑架构)

    本节将对 HBase 的主要运行机制进行简单介绍 HBase 的物理存储 HBase 表中的所有行都是按照行键的字典序排列的 因为一张表中包含的行的数量非常多 有时候会高达几亿行 所以需要分布存储到多台服务器上 因此 当一张表的行太多的时候
  • 【MySQL高级篇笔记-数据库备份与恢复(下) 】

    此笔记为尚硅谷MySQL高级篇部分内容 目录 一 物理备份与逻辑备份 二 mysqldump实现逻辑备份 1 备份一个数据库 2 备份全部数据库 3 备份部分数据库 4 备份部分表 5 备份单表的部分数据 6 排除某些表的备份 7 只备份结
  • 【VSCode】Windows系统的WSL无法启动vscode问题

    在WSL环境中无法启动vscode时 有可能是 WSL 插件的影响 可以使用下面的步骤来解决 Open VS Code on Windows Open Extensions and then search on WSL It should
  • Qt使用Qt Designer进行界面设计

    上一章我们使用代码直接进行界面设计 这一章我们使用Qt Designer进行界面设计 简单直接 所见即所得 大大提高了工作效率 特别是对于复杂界面 1熟悉Qt Designer Qt Designer是Qt专为界面设计做的软件 使得用户能够
  • 使用Python和OpenCV进行图像拼接和全景图构建

    使用Python和OpenCV进行图像拼接和全景图构建 1 效果图 2 原理及步骤 3 源码 3 1 拼接类源码 3 2 拼接用到的工具类 3 3 叠加多张图像源码 参考 这篇博客将介绍如何使用OpenCV执行图像拼接和全景构建 即给定两个
  • Hana Studio开发简介

    Hana Studio作为SAP官方的IDE 工具 推出也有一段时间了 就目前使用的情况来看 如果是做常规S 4开发 SAP GUI还是首要选择 一 IDE安装路径 链接 https pan baidu com s 1qMg8duocTa3
  • pyqt5实现按钮单窗口多页面切换

    1 使用QT Designer进行设计 创建一个MainWindow 从左侧选出Push Button Stacked Widget分别拖到我们的MainWindow里 怕看不见Stacked Widget 给他上个色 在QT Design
  • vant-weapp Area 省市区选择的使用及遇到的坑

    json中 导入 van area vant weapp area index 基础用法
  • SpringCloud gateway (史上最全)

    1 1 SpringCloud Gateway 简介 SpringCloud Gateway 是 Spring Cloud 的一个全新项目 该项目是基于 Spring 5 0 Spring Boot 2 0 和 Project Reacto
  • Kubernetes踩坑(二): Service IP(LVS)间断性TCP连接故障排查

    问题阶段 一 用户反应某个redis使用卡顿 连接该redis服务使用的是svc代理 即ipvs snat的方式 ipvsadm L发现 VIP收到的6379端口的数据包 会以rr的方式分别转发到pod的80 6379端口上 相当于会有50
  • mysql增加分区

    增加分区 是修改原有分区 从而替换现有分区 ALTERTABLE xxx表 PARTITION BY RANGE COLUMNS CREATE TIME PARTITION p20210901 VALUES LESS THAN 2021 1
  • 【华为OD机试c++】最长广播效应【2023 B卷

    题目描述 某通信网络中有N个网络结点 用1到N进行标识 网络中的结点互联互通 且结点之间的消息传递有时延 相连结点的时延均为一个时间单位 现给定网络结点的连接关系link i u v 其中u和v表示网络结点 当指定一个结点向其他结点进行广播

随机推荐

  • linux grep 带空格的内容,或者搜索多个单词,一段话

    错误示范 more xxx log grep UPDATE user info 正确方法 more xxx log grep UPDATE user info
  • 第23讲 Python range 数据类型

    您的 关注 和 点赞 是认可 是支持 是动力 如意见相佐 可留言 本人必将竭尽全力试图做到准确和全面 终其一生进行修改补充更新 本文首发在IT羊资源网 IT羊资源网 网址 https www ityangzy com IT羊资源网是IT世界
  • GB9706.1-2007+2020和IEC60601-1:2005 3.0+2012 3.1标准主要差异解析

    目录 GB9706 1 2007医用电气设备 第1部分 安全通用要求 GB9706 1 2020医用电气设备 第1部分 基本安全和基本性能的通用要求 IEC60601 1 第二版和第三版差异 1 最关键变化 2 新术语名词引用 3 设备分类
  • [1022]Hive insert 字段表错位

    文章目录 Hive insert 字段表错位踩坑 1 问题描述 2 排查过程 3 问题定位 4 解决方案 hive的insert语句列顺序问题以及新增字段遇到的坑 insert语句列顺序 对新增字段插入数据再查询发现是NULL Hive i
  • 技术管理主要做什么?

    最近一直在思考技术转管理过程中需要注意到的一些事情 现在就总结下分享给大家看看 核心职责 确定团队目标 不论项目大小 一定要有目标 有目标才能让所有人看到方向 明确每天工作的意义 单纯技术人员应该切换思维为全局性 而不局限于技术层面 现在个
  • 某盾滑块js逆向

    注 本篇博客仅供学习使用 请勿用做其他商业用途 如有侵权 请联系本菜鸟删除 本小菜鸟已经快两个月没更新文章了 一年总有那么356天不想努力 就想躺平 最开始学习js逆向的时候 用Python算法还原了某盾的空间推理 到现在已经过去半年多 这
  • Mybaties-plus 分页使用

    1 简介 查询分页分为物理分页和逻辑分页 1 逻辑分页 一次性查出所有数据 然后在内存中筛选需要的数据 缺点 大数据量时容易造成内存溢出 因为是一次性查出每次返回需要的所有数据时效性低不推荐使用 2 物理分页 通过sql 的limit 去控
  • 联想小新Pro14安装Ubuntu后无法进入系统、亮度无法调节、蓝牙无法打开、输入卡顿延迟等问题的解决办法

    联想小新Pro14安装Ubuntu后无法进入系统 亮度无法调节 蓝牙无法打开等问题的解决办法 前言 月初买了台联想小新Pro14 AMD锐龙5800H版本 在安装Ubuntu 20 04 2 LTS 系统时遇到了一些问题 所幸在众多网友前辈
  • Fetch&Fetch的二次封装

    前言 客户端服务器端通信方式ajax ajax JQ的类库 axios类库 jsonp fetch fetch是Es6新提供的API 基于不同于 XMLHttpRequest的方式 基于客户端和服务器端的数据通信 而且本身是基于promis
  • 数据预测分析

    数据预测分析 Matlab实现TCN时间卷积网络数据预测分析 目录 数据预测分析 Matlab实现TCN时间卷积网络数据预测分析 基本介绍 数据下载 程序设计 参考资料 致谢 基本介绍 此示例说明如何使用通用时间卷积网络 TCN 对序列数据
  • 南邮NOJ上机系统#PROB1005涂色问题

    涂色问题 描述 这是一个涂色问题 现在有一张网格 一共 3 行 每行 n 个 你需要用 3 种颜色给网格上色 需要确保相邻格子颜色不同 请问一共有多少种上色方案呢 答案对 109 7 取模 输入 一行一个整数 n 1 n 106 输出 一行
  • spring学习记录笔记-AOP 通知的五大注解详解

    印象云笔记记录 提供链接 点我打开笔记
  • python3中TypeError: data type not understood的解决方法X_b = np.hstack([np.ones((len(x), 1)), x.reshape(-1,

    学习6 4 实现线性回归中的梯度下降法时 在JupterNotebook中按照教程来完全没有问题 但是在pycharm中封装这个方法时 def fit gd self X train y train eta 0 01 n iters 1e4
  • 【动手学习深度学习v2】循环神经网络-2.文本预处理

    上一篇 动手学深度学习V2 循环神经网络 1 序列模型 文章目录 2 文本预处理 2 1 读取数据集 2 2 词元化 2 3 词表 2 4 整合 2 文本预处理 序列数据的多种形式中 文本数据是最常见的一种 在英文文本中一篇文章或者一段句子
  • C++中类似于Integer.MAX_VALUE的INT_MAX表示

    要想使用需要添加头文件 include
  • Maven下载依赖踩坑:Could not transfer artifact org.springframework.boot:spring-boot-starter-parent

    环境 IDEA 公司办公环境 本文只适用于启用了代理服务进行联网的情况 非此情况的朋友们还请另找原因 创建工程后spring boot starter parent等依赖标红 因为对应的依赖找不到 下载时报错误 Could not tran
  • Unity学习之性能分析

    Unity 提供的性能分析工具 Unity Profiler 测量 Unity 编辑器 您的应用程序在运行模式下 或在开发模式下连接到设备运行时的性能 Profiling Core 包 提供的 API 可用于将上下文信息添加到 Unity
  • Python获取各大企业招聘需求以及可视化分析展示

    前言 大家早好 午好 晚好吖 欢迎光临本文章 课程亮点 1 爬虫的基本流程 2 可视化分析展示 3 requests模块的使用 4 保存csv 开发环境 python 3 8 运行代码 pycharm 2022 3 2 辅助敲代码 专业版
  • antd table表格组件基本使用

    第一次使用antd的table表格组件 借用官方文档数据 展示下Demo import React from react import Table from antd const columns title Name dataIndex n
  • 全国计算机等级考试二级C语言考试学习笔记

    1 C语言程序的结构 1 1 程序的构成 main函数和其他函数 1 1 1 main函数 一个完整的C语言程序 是由一个 且只能有一个main 函数 又称主函数 必须有 和若干个其他函数结合而成 可选 main函数是C语言程序的入口 程序