《算法笔记知识点记录》第二章——快速入门1[数据类型和顺序结构](1)

简介: 《算法笔记知识点记录》第二章——快速入门1[数据类型和顺序结构](1)

☘前言☘

今天是我开坑的第一天,不知道今天会有多少人陪我一起233。

今天会介绍很多基础知识,信息量会有亿点点大,所以如果我有哪些没有讲清楚的,欢迎大家联系我,你提出的问题是我修改完善的基础,万分感谢。


欢迎大家加入我的打卡队列,如果你刷完了对你有帮助请你评论一个打卡。

如果你觉得这本书有用的话还希望多多支持作者。

欢迎大家一键三连0.0

🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人

✨联系方式:2201891280(QQ)

📔源码地址:https://gitee.com/xingleigao/algorithm-notes

⏳全文大约阅读时间: 120min


主要目录

 ☘前言☘

 🍭1.基础知识点

           🥝1.1基础知识介绍

           🍅1.2 基本数据类型

                    🍪1.2.1 变量定义

                    🍓1.2.2变量类型范围

                               🥞1.整型

                               🌮2.浮点数

                               🥘3.字符型

                               🍰2.转义字符

                               🍡3.字符串常量

                              🌽4. 布尔型

                    🏋🏻1.2.3 强制类型转换

                    ⚽️1.2.4符号常量和const常量

                    🏂1.2.5运算符

                               🤺1.算数运算符

                               🏌🏻2.关系运算符

                               🏇3.三种逻辑运算符

                               🎲4.条件运算符

                               ✈️5.位运算符

            🎱1.3 顺序结构

                     ⚔️1.3.1 赋值表达式

                     💻1.3.2使用scanf和printf进行输入输出

                                 ⌨️1.scanf函数的使用

                                 🖥2.printf函数的使用

                      🖨1.3.3 使用getchar和putchar输入/输出字符

                      ⚖️1.3.4 注释

                      💡1.3.5 typedef

                      🔑1.3.6常用math函数

 🐳课后习题

 ❤️写在最后

🍭1.基础知识点

这部分主要是给没有学习过c语言或者c语言相对薄弱的人查缺补漏用的,大家如果觉得已经熟悉了相关内容可以进行跳过。

这部分主要以c语言为基础,用到了一点c++的语法,在机试中c语法用的还是非常多的,c++虽然有很多好的特性,但是cin和cout的输入输出实在不适合用来写机试程序,如果大家有c++基础转变也是非常小的。

那我们废话不多说,开始今天的学习吧。

🥝1.1基础知识介绍

先来举个栗子🌰

#include <stido.h>
int main(){
    int a, b;
    scanf("%d%d", &a, &b);
    printf("%d", a + b);
    return 0;
}


可以看到主要包含几个部分


头文件

这个示例程序中对应的部分就是#include,主要是包含了stdio(标准输入输出),这里面定义了scanf、printf等函数,在用到对应函数的时候一定要注意头文件的包含。

主函数 也就是int main(){...return 0;},每个程序都有且只有一个主函数,在程序开始的时候就会执行对应的主函数。

之后所有的文件请保存为.cpp,选择提交的语言选择C++、G++,反正C++兼容C,为了不必要的麻烦,请通通选择使用c++提交!!!


🍅1.2 基本数据类型

🍪1.2.1 变量定义

主要运用的格式如下


1.变量类型 变量名 = 初始值;


其中变量名不能随意选取,有以下规则


1.不能是C语言标识符(for、if、or),并且也不能是已经定义的函数名称(printf、scanf)等。建议选择有实际意义便于理解的名称。

2.第一个字符必须是字母或者下划线,所以abc、_abc是合法的,但是6abc编译器会报错。

3.变量是区分大小写的,ZUI和zUI是两个不同的变量名。

🍓1.2.2变量类型范围

四中基本数据类型

38fc4a2a5fd71ad92a588210f49932f.png


🥞1.整型

整型一般分为三种类型 短整型(short)、整型(int)、长整型(long long),由于短整型基本不用所以就不介绍了,下面主要介绍下整型和长整型。


1.1 整型int


一个整型占用32bit(32位),也即4Byte(4字节),取值范围是-231~+(231 -1)。这个范围记住也没啥感觉,所以绝对值在109范围内的整数都可以定义为int型。


int num;
int num = 10;


1.2长整型 long long


一个长整型来说,一个整数占用64bit,也即8Byte(8字节),取值范围一般是-263~(263-1),如果题目要求取值范围超过2147483647(231-1),就需要long long来存储。


long long bignum;
long long bignum = 1234567890123456LL;


如果long long赋值初始大于231-1需要在后面加LL,否则编译器报错。


上面说的每个整型变量都可以在前面加unsigned前缀修饰,占用的位数相同,但是正数的表示范围扩大了一倍。

下面给出一个栗子🌰

#include<stdio.h>
int mian(){
  int a = 1, b = 2;
  printf("%d",a + b);
  return 0;
}


这段程序初始化了a、b两个整型变量并给出了初始值,结果就是3,就是打印出了a+b的值,关于%d会在后面进行更详细的介绍,现有个印象就好了。

最后,整型就是看到109以内或者32位整数就用int,否则用long long。


🌮2.浮点数

简单来说,所谓的浮点数就是小数,一般分为单精度(float)和双精度(double)。


1.单精度float


一个浮点数占用32bit,其中1bit符号位,8bit指数位,23位尾数。可以存放浮点数的范围是-2128~ 2128,但是有效精度只有6 ~ 7位,所以用的不多其实。


float f1;
float f1 = 3.14;


2.双精度double


一个浮点数占用64bit,其中1bit作为符号位,11位指数位,52bit作为尾数,可以存放的范围是-21024~ 21024,比float运用广泛很多,有效精度是15~16位。


double db;
double db = 3.1415926536;

一个栗子🌰

#include<stido.h>
int mian{
  double a = 3.14, b = 0.12;
  double c = a + b;
  printf("%f",c);
  return 0;
}



相关文章
|
19天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
19 3
|
1月前
|
存储 缓存 算法
如何通过优化算法和代码结构来提升易语言程序的执行效率?
如何通过优化算法和代码结构来提升易语言程序的执行效率?
|
1月前
|
算法 API 计算机视觉
人脸识别笔记(一):通过yuface调包(参数量54K更快更小更准的算法) 来实现人脸识别
本文介绍了YuNet系列人脸检测算法的优化和使用,包括YuNet-s和YuNet-n,以及通过yuface库和onnx在不同场景下实现人脸检测的方法。
33 1
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
59 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
1月前
|
算法
❤️算法笔记❤️-(每日一刷-160、相交链表)
❤️算法笔记❤️-(每日一刷-160、相交链表)
17 1
|
1月前
|
存储 算法
动态规划算法学习一:DP的重要知识点、矩阵连乘算法
这篇文章是关于动态规划算法中矩阵连乘问题的详解,包括问题描述、最优子结构、重叠子问题、递归方法、备忘录方法和动态规划算法设计的步骤。
101 0
|
1月前
|
数据可视化 搜索推荐 Python
Leecode 刷题笔记之可视化六大排序算法:冒泡、快速、归并、插入、选择、桶排序
这篇文章是关于LeetCode刷题笔记,主要介绍了六大排序算法(冒泡、快速、归并、插入、选择、桶排序)的Python实现及其可视化过程。
13 0
|
1月前
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
31 0
|
1月前
|
算法
❤️算法笔记❤️-(每日一刷-26、删除有序数组的重复项)
❤️算法笔记❤️-(每日一刷-26、删除有序数组的重复项)
23 0
|
25天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。