C语言程序设计 复习总结[持续更新ing]

news2024/11/30 4:59:47

目录

一 初识C语言

1 main 主函数

2 注释

3 C 程序执行的过程:

4 C 程序的结构

5 进制的转换

        1.内存容量

        2.二进制与十进制的转换

                1>将二进制数转换成十进制

                2>将十进制转换成二进制数

         3.二进制与八进制的转换

                 1>将八进制数转换成二进制:

                2>将二进制数转换成八进制: 

        4.二进制与十六进制的转换 

                1>将十六进制数转换成二进制:

                 2>将二进制数转换成十六进制:

6  原码、反码、补码

 二 数据类型、变量、常量

1 数据类型

        1.基本类型

                1>字符型:特殊的整型,占据 1 个字节(1byte---8bit)

                2>整型:整数类型

                3>实型:小数,浮点型,没有无符号的浮点型数据

        2.构造类型

2 变量

        注意:

3 常量

        1.整型常量

        2.十进制常量、八进制常量、十六进制常量的表示

        3.转义字符常量:

        4.常变量:用 const 修饰的标识符

 三 运算符与表达式

1 运算符与表达式


一 初识C语言

1 main 主函数

        1.只能有一个主函数,必须要有一个主函数, C 程序从主函数开始运行。
        2.int main(void),int:返回值类型, main :函数名, void :参数
        3.return 0,返回值是 0

2 注释

        1.单行注释 //
        2.多行注释 /* */
        注意:不能在多行注释中嵌套多行注释
        注释一个函数时通常用多行注释,注释某个语句用单行注释

3 C 程序执行的过程:

                编辑---写代码的过程,生成 .c 文件
                编译---检查语法错误的过程,生成 .obj 文件
                连接---多个 .obj 文件合并成一个 .exe 文件的过程
                运行---运行 .exe 文件的过程

4 C 程序的结构

        项目---> 文件 ---> 函数 ---> 语句 ---> 单词
        项目:后缀是 .sln
        文件:源文件后缀是 .c
        函数:可以有多个函数,但一定要有主函数
        语句:以分号 ; 结尾
        单词:不是单纯的英文单词,而是 标识符 ,标识符又分成: 关键字、预定义标识符、自定
义标识符 C 语言的标识符命名规范: 由字母、数字、下划线构成且第一个字符不能是数
字,且不能是系统占用的单词

5 进制的转换

        在计算机内存储和运算数据时,通常要涉及到的数据单位有以下 3 种:
         位(bit) :计算机中的数据都是以二进制来表示的,二进制的代码只有“ 0 ” “ 1 ”两 个数码,采用多个数码(0 1 的组合)来表示一个数,其中的每一个数码称为一位,位 是计算机中最小的数据单位。
         字节(Byte) :在对二进制数据进行存储时,以 8 位二进制代码为一个单元存放在一 起,称为一个字节,即 1 Byte =8 bit 。字节是计算机中信息组织和存储的基本单位,也是计 算机体系结构的基本单位。在计算机中,通常用 B(字节)、KB(千字节)、MB(兆字节) 或 GB(吉字节) 为单位来表示存储器(如内存、硬盘、 U 盘等)的存储容量或文件的大小。
         字长: 人们将计算机一次能够并行处理的二进制代码的位数,称为字长 。字长是衡量 计算机性能的一个重要指标, 字长越长 ,数据所包含的 位数越多 ,计算机的数据处理 速度越快 。计算机的字长通常是字节的整倍数,如 8 位、 16 位、 32 位、 64 位和 128 位等。
在线进制转换OSCHINA.NET在线工具,ostools为开发设计人员提供在线工具,提供jsbin在线 CSS、JS 调试,在线 Java API文档,在线 PHP API文档,在线 Node.js API文档,Less CSS编译器,MarkDown编译器等其他在线工具https://tool.oschina.net/hexconvert/

        1.内存容量

                 1TB--->1024GB
                1GB--->1024MB
                1MB--->1024KB
                1KB--->1024B byte(字节)
                1byte--->8bit(位)
                
        数制是指用一组固定的符号和统一的规则来表示数值的方法。如下图所示为计算机中常用的几种进位计数制的表示。

        2.二进制与十进制的转换

                1>将二进制数转换成十进制

                10110 转换成十进制数: 先将二进制数 10110 按位权展开,再对其乘积相加,转换过程
如下所示。

                2>将十进制转换成二进制数

                除以 2 逆向取余法:

                                22(10)=10110(2)

         3.二进制与八进制的转换

                 1>将八进制数转换成二进制:

                        每 1 个八进制位转换成 3 个二进制位,左边不足三个的则补 0

5 6 7 ---> 101 110 111
2 3 4 ---> 010 011 100

                2>将二进制数转换成八进制: 

                        从右向左,每 3 个二进制位为一组,每一组转换成 1 个八进制数。
011 010 111 100 110 ---> 3 2 7 4 6
011 010 111 101 110--->32756
011 101 110 101 011--->35653

        4.二进制与十六进制的转换 

                1>将十六进制数转换成二进制:

                        每 1 个十六进制位转换成 4 个二进制位,左边不足 4 个的则 0
0----0000
1----0001
2----0010
3----0011
4----0100
5----0101
6----0110
7----0111
8----1000
9----1001
A----1010 10
B----1011 11
C----1100 12
D----1101 13
E----1110 14
F----1111 15
1 2 8 9 A D F ---> 0001 0010 1000 1001 1010 1101 1111

                 2>将二进制数转换成十六进制:

                        从右向左,每 4 个 2 进制位为一组,每一组转换成 1 个十六进制数。
1110 1101 1111 1001 1110 ---> E D F 9 E

原码、反码、补码

        数据在计算机里面都是以补码的形式存储。

         正数 的原码、反码、补码都是一样的!
         负数 的反码 是在原码的基础上“ 符号位不变,数值位取反
         负数 的补码 是在反码的基础上“ 符号位不变,数值位加 1
原码/反码/补码计算器 - 一个工具箱 - 好用的在线工具都在这里!原码/反码/补码计算器,在线计算给定整数的原码/反码/补码。http://www.atoolbox.net/Tool.php?Id=952
               原码              反码               补码
 37:0010 0101--->0010 0101--->0010 0101
-37:1010 0101--->1101 1010--->1101 1011

 二 数据类型、变量、常量

1 数据类型

          C 语言的数据类型分为:基本类型和构造类型两种。

        1.基本类型

                1>字符型:特殊的整型,占据 1 个字节(1byte---8bit)

                                 有符号字符型  signed char/char:有符号位

                                取值范围:1000 0000( -128 ) ----0111 1111( 127
                                 无符号字符型 unsigned char:没有符号位,都是数值位
                                取值范围:0000 0000( 0 )---1111 1111( 255 )

                2>整型:整数类型

有符号的整型 signed int/int 占据 4byte
1000 0000 0000 0000 0000 0000 0000 0000( -2147483648 )---
0111 1111 1111 1111 1111 1111 1111 1111( 2147483647 )
无符号的整型 unsigned int 占据 4byte
0000 0000 0000 0000 0000 0000 0000 0000( 0 )---
1111 1111 1111 1111 1111 1111 1111 1111 ( 4294967295 )
短整型 short int:占据 2byte
1000 0000 0000 0000( -32768 )---0111 1111 1111 1111( 32767 )
无符号短整型 unsigned short int: 占据 2byte
0000 0000 0000 0000( 0 )---1111 1111 1111 1111( 65535 )
长整型 long long int: 占据 8byte
( -9223372036854775808--9223372036854775807 )
无符号长整型 unsigned long long int: 占据 8byte
( 0--18446744073709551615)

                3>实型:小数,浮点型,没有无符号的浮点型数据

float : 单精度浮点型,占据 4byte
double : 双精度浮点型,占据 8byte
long double : 长双精度浮点型,占据 8byte 或者 16byte

        2.构造类型

                数组
                指针
                结构体
                共用体
                枚举类型

2 变量

        变量的概念:值可以发生改变的量
        定义语法:类型名 变量名, 变量名 , 变量名 ;
类型名 变量名 = 初值 , 变量名 = 初值 ;
char a , b , c ;
int e ;
char a = 0 , b = 0 , c = 0 ;
char a = 0 ;
unsigned char e = 0 ;
int height = 170 ;
int weight = 0 ;
int a = 0 ;//在变量定义时,给变量赋值叫赋初值
a = 0 ;//不是赋初值,这叫赋值

        注意:

        1.变量名以字母、数字、下划线构成且第一个字符不能是数字,要符合标识符的命名规范,
且不能是系统占用的单词,如关键字 int、预定义标识符 printf 等。
                char 8 Tom;// 错误的,数字不能作为第一个字符
                char Tom MJ;//错误的,有空格
                char Tom_MJ;//正确的
                char MJ8;//正确的
                int a * b;// 错误的, * 不符合标识符命名规范
                int ab & c;// 错误的, & 不符合标识符命名规范
                int _ab;//正确的
                char int ;// 错误, int 是关键字,不能用来作为变量名
                //变量名的字母 分大小写 ab AB 不是同一个变量名
                int ab;
                int AB;
        2.变量要先定义再使用
                a = 45;// 错误, a 要先定义再使用
                char a ;
        3.变量是占据内存的,占据的内存大小由变量的数据类型决定
                如:char a;//a 占据 1byte
                a = 10;

3 常量

         常量:值不能发生改变的量
        常量和变量一样,都占用内存空间

        1.整型常量

                int a = 0;
int a = 100;  //100 是整型常量,占用 4byte
unsigned int a = 200U;  //200 是一个无符号的整型常量
long int a = 200L;  //200 是一个 long int 型常量
long long int a = 200LL;  //200 是一个 long long int 型常量,占据 8byte
float f = 3.14f;  //3.14 是一个单精度浮点型常量
double d = 3.14;  //3.14 是一个双精度浮点型常量
long double ld = 3.14L;  //3.14 是一个长双精度浮点型常量

        2.十进制常量、八进制常量、十六进制常量的表示

char a = 11;  //11 是十进制常量
char b= 0 11;  //11 是八进制常量,以数字 0 开头表示的是八进制
char c= 0x 11;  //11 是十六进制常量,以 0x 开头表示的是十六进制

        3.转义字符常量:

                看不到,常用于控制格式,比如换行或回车,'\n' '\r'
                 \字母 ,如 '\t'
                 \1-3 位八进制整数 ,如'\101' --- 'A'
                 \x1-2 位 16 进制数 ,如 '\x41' --- 'A'
                 转义字符只代表一个字符

        4.常变量:用 const 修饰的标识符

                 const 用于限定 变量内存的使用权限 (修改成只读模式)
const int a = 45;
a = 100;// 错误,不能修改 a 的值

 三 运算符与表达式

1 运算符与表达式

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java项目:JSP酒店客房管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 酒店管理系统共分为三个角色,客房经理、前台管理员、客户,各个角色的权限各不相同; 客房经理功能包括&#…

leetcode《图解数据结构》刷题日志【第五周】(2022/11/21-2022/11/28)

leetcode《图解数据结构》刷题日志【第五周】1. 剑指 Offer 60. n 个骰子的点数1.1 题目1.2 解题思路1.3 数据类型功能函数总结1.4 java代码1.5 踩坑小记1.6 进阶做法2. 剑指 Offer 63. 股票的最大利润2.1 题目2.2 解题思路2.3 数据类型功能函数总结2.4 java代码3. 剑指 Offer …

SpringBoot SpringBoot 原理篇 1 自动配置 1.16 自动配置原理【2】

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.16 自动配置原理【2】1.16.1 看源码了1.16.2 Import({AutoConfig…

archlinux 安装matlab

最近在学matlab使用的是windows版本的,比起windows我更喜欢在linux中写代码。于是乎就想在Linux中安装一下。 主要过程参考此篇文章: 《【首发】 ubuntu20.04安装matlab2021b/matlab2020b》 https://blog.csdn.net/hanjuefu5827/article/details/1151677…

【Hack The Box】Linux练习-- Forge

HTB 学习笔记 【Hack The Box】Linux练习-- Forge 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月27日🌴 &#x1f36…

队列(C语言实现)

文章目录:1.队列的概念2.队列的结构3.接口实现3.1初始化队列3.2判断队列是否为空3.3入队3.4出队3.5查看队头元素3.6查看队尾元素3.7统计队列数据个数3.8销毁队列1.队列的概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特…

jQuery插件【validate】国际化校验插件

jQuery插件系列 相信大家在网站上都遇到过这种注册的情况吧,有的时候我们什么也不输入点登录或者注册或者鼠标失去焦点的时候,就会自动提示xxx为空,密码不正确,请输入xxx等一系列的提示信息。 那么这是怎么实现的呢,其…

【LeetCode】No.101. Symmetric Tree -- Java Version

题目链接:https://leetcode.com/problems/symmetric-tree/ 1. 题目介绍(Symmetric Tree) Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center). 【Translate】: 给定…

QT实战项目1——无边框窗口拖拽和阴影

课时2 开发环境,无边框窗口拖拽和阴影_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV14t411b7EL?p2&vd_source0471cde1c644648fafd07b54e303c905 目录 一、设置无边框 和 鼠标可以拖动窗口 1.1 设置无边框 1.2 鼠标拖动 1.3 展示阴影 一、设置无边框 和 鼠标可…

设计模式-组合模式

组合模式一、学校院系展示需求二、传统方案解决学校院系展示三、组合模式基本介绍四、组合模式原理类图五、组合模式解决的问题六、使用组合模式解决院校展示问题6.1、类图6.2、代码一、学校院系展示需求 编写程序展示一个学校院系结构:需求是这样,要在…

SQL练习题

新建数据表 首先建立测试数据库的表,新建数据库的sql语句如下,大家可以粘贴成一个sql文件,然后新建所有的表并插入所有的数据: 新建数据库sql文件: DROP TABLE IF EXISTS EMP; DROP TABLE IF EXISTS DEPT; DROP TAB…

Unity UI锚点和位置关系

一、Anchors锚点 Anchors的设置会直接改变RectTransform中它的位置信息;Anchors设置中的X 改变会影响(PosX和Width)或(left和right) 1、Anchors改变位置信息 下图中X锚点的Min和Max值相同时,上面的一栏中…

Java调用命令行并返回打印的内容

博主在最近的工作中,收到了这样一个需求。 调用别人以前完成开发的 jar 包或 python 程序,并将原程序在命令行中输出的内容封装为 JSON 对象后通过 RESTFul 接口返回。 面对以上的需求,博主给出了以下解决方案。话不多说,上代码。…

Mathematica for Linux v13.1.0 科学计算软件多语言版

Wolfram Mathematica for Linux 中文正式版是一款强大的数学计算科学计算软件,MathWorks MATLAB 和 Wolfram Mathematica 、Maplesoft Maple 并称为三大数学软件,Wolfram Mathematica 中文正式版主要用于符号计算软件,也称为计算机代数系统&a…

MySQL如何恢复不小心误删的数据记录(binlog)

前言 题主于今天(2022年11月27日) 在线上环境误操作删除了记录,且没有备份数据,通宵排查事故原因,终于没有酿成生产事故。谨以此文记录。 参考资料 https://blog.csdn.net/qq_23543983/article/details/127298578 …

单源最短路径问题(Java)

单源最短路径问题(Java) 文章目录单源最短路径问题(Java)1、问题描述2、算法思路3、代码实现4、算法正确性和计算复杂性4.1 贪心选择性质4.2 最优子结构性质4.3 计算复杂性5、参考资料1、问题描述 给定带权有向图G(V,E),其中每条…

分布式电源接入对配电网的影响matlab程序(IEEE9节点系统算例)

分布式电源接入对配电网的影响matlab程序(IEEE9节点系统算例) 摘 要:分布式电源的接入使得配电系统从放射状无源网络变为分布有中小型电源的有源网络。带来了使单向流动的电流方向具有了不确定性等等问题,使得配电系统的控制和管…

Android反编译apk

文章目录安装Android Studio1. 解压apk文件方法一:使用apktool反编译(得到的是.smali文件和可直接读的资源文件,如果要得到.dex文件,还要看方法二)方法二:使用解压工具解压(得到的是.dex文件和二…

SpringBoot项目集成Dubbo

1.环境搭建 为整合Dubbo之前,我们所写的项目都是单一应用架构,只需要一个应用,将所有功能都部署在一起,在应用内部是控制层调用业务层,业务层调用数据持久层;如今,整合Dubbo后,我们…

独立产品灵感周刊 DecoHack #039 - 制作自己的音乐墙

本周刊记录有趣好玩的独立产品设计开发相关内容,每周发布,往期内容同样精彩,感兴趣的伙伴可以点击订阅我的周刊。为保证每期都能收到,建议邮件订阅。欢迎通过 Twitter 私信推荐或投稿。自荐产品 1. planet-tab - 由独立开发者 ha…