C/C++基础查漏补缺(一)----------寒假学习笔记(一)

寒假C语言基础查漏补缺笔记(一)

本系列文章是基于自身的编程基础而编写的,其内容并非适用于所有人,请海涵~

不过内容应该包括了所有的考点、用法,初学C/C++的大学生或者noip入门级选手可以以此作为参考。

主要内容大致分为四个方面:计算机概念、简述编程中所需要的掌握的知识点(高亮显示即是知识点)、强调记忆C/C++基础语法中的不常用的特殊语法概念
以及

在学习过程中我的感悟和我从初中编程到现在所积累的经验(引用处即是)。

看完这系列文章,你可以快速地入门C/C++,而且我的文章也可成为你的复习笔记。

愿你的智慧加上我的,能完美解决你的问题。

需要下载Dev-C++ 5.11 可以关注微信公众号:MathsCode
回复:编译器,免费获得。

此文是基于中国大学MOOC北京大学郭炜老师的程序设计与算法(一)C语言程序设计(国家精品课程)而撰写的。

点击进入程序设计与算法(一)C语言程序设计——北京大学郭炜

非常厉害的老师!!!

看完觉得内容对您有帮助的,可以点个赞加个关注哦!

---------------------------笔记分割线------------------------------

1.1信息在计算机中的表示

计算机的电路由逻辑门电路组成,一个逻辑电路可以看成一个开关,每个开关的状态是“开”(高电位)或“关”(低电位),及对应1和0。

突然想起一句话:
一个优秀的计算机修理工可能不是一个成功的程序员,但我相信一个成功的程序员一定是一个优秀的电脑修理工
一个优秀的码农一定要会修电脑。(可能头秃了,女朋友还没找到)。

bit(b) 与 byte(B)的含义以及关系
一个字节(byte)是8个比特(bit),一个bit即是一个二进制位。

了解ASCII编码的内容(下图),以后将会成为帮助理解
ASCII编码
点击查看ASCII最权威解释

K进制数到十进制数的转换,以及十进制数到K进制数的转换 十六进制最复杂哦!

1.2为什么是C++而不是C语言

目前我们学习的是C语言+STL库(STL库后面会提到)并不是纯粹的C++,因为C++的最神通之处是他是面向对象的功能。
C++是面向对象的编程语言。

C++程序的基本编写框架以及编写基本要求

程序的注释:多行注释、单行注释

1.3变量和数据类型

变量是什么、变量如何定义、变量的命名规则(C++的保留字、关键字)

C++的基本数据类型

就本人经验而言
打Noip、ACM对数据没有要求
一般整数用int
实数一般用double
因为整形数组开longlong题给内存会爆,
实数开float在某些情况下(如经过大量运算)会出问题,精度小误差大。

用sizeof运算符求变量占用字节数

sizeof(变量名)
sizeof(类型名)
//能够得到某个变量或某一类型占用的字节数

变量的初始化

有符号整数的表示方式(这我还没真心去想过)
最左边的位(最高位)看做“符号位”:
0—>非负数,那么数值就是除符号位以外的部分;
1—>负数,那么其绝对值是除符号位以外的部分取反(0变1,1变0)后再加1

这个其实可以看成将一个有符号整数的二进制数表示成其代表的十进制数的方法。

那么问题就来了

如何将一个负整数表示成二进制呢

(1)设置符号位为1
(2)其余位等于绝对值取反再加1

举例:

二进制转(2^k)进制数,只需要从低位每K位一转,如上题转十六进制,即将二进制从低位每四位转成相应的十六进制数

我突然想到一个问题:按照上文中的将负整数的二进制数表示成十进制数值的方法,那么他的逆做法不就是将负整数的十进制数表示成二进制么?
那么做法不就应该是:将负整数的绝对值转化成二进制后减一,再将每一位取反,最后再最前面(即最高位)写上1,代表负数,即可。
可是这与上问将一个负整数表示成二进制的方法为啥不一样呢?
比如举个例子-32768
按照逆作法应该是:绝对值32768二进制为1000 0000 0000 0000,减一为0111 1111 1111 1111,再除符号位各位取反为0000 0000 0000 0000,再将符号位改为1,则为1000 0000 0000 0000,结果正确。
按照上文做法:符号位为1,其余位等于绝对值32768二进制1000 0000 0000 0000取反 0111 1111 1111 1111 1111,再加一为1000 0000 0000 0000,去后15位(第一位为符号位不算),所以结果为1000 0000 0000 0000,结果正确。
所以其实这两种方法理论上都是正确的,在二进制的世界里,这两个做法是等价的。

数据类型之间的自动转换

int a = 11.34;   //a的值是11
int b = 30;       
double d = b;      //d的值是30.0

这里的a初始化时不管是11.99还是11.01,a的值始终为11,整形变实数不是四舍五入,而是去掉小数部分

那么非得要四舍五入怎么办?
double b; //已知实数b,实现b的四舍五入;
int a = (b+0.5); //即可实现

字符类型到整形的互相转换
字符转整形:字符对应的是相应的ASCII码,即变为ASCII值。
整形转字符:因为一个整形数据可以大于一个字节,而字符型最多一个字节,所以转化时只会留下最右边的一个字节,其他字节丢弃

1.4常量

1.4.1 整形常量

常用的有十进制和十六进制整形常量,十六进制常量以“0x”或者“0X”打头,A(a)表示10,B(b)表示11,…F(f)
表示15.

1.4.2 字符型常量

转义字符
转义字符

1.4.3 字符串常量

"" 也是一个字符串常量,它代表一个空串,即不包含任何字符的字符串
字符串常量可以包含转义字符

1.4.4 符号常量
#define 常量名 常量值

定义之后,程序中所有出现“常量名”的地方就等价于出现的“常量值”。

尽量少使用数值常量,而用符号常量替代它,这样便于修改。

1.5 DEV-C++ 5.11的使用

如果需要下载的同学可以扫码关注我的公众号:MathsCode,回复:编译器,免费获得。

码字不易,喜欢这篇文章的话,关注我的CSDN吧,
我的高中数理化学习干货
Noip竞赛经验
自招笔试小窍门、面试小套路
大学理工科学习规划
均在我的公众号中
扫码关注吧!

结语

感谢你的耐心阅读,码字不易,阅读不易。

愿你的努力加上我的,能完美解决你的问题。

居家防控疫情,也不能放松了学习,可以充分利用互联网线上学习的功能,让自己过一个充实的寒假。

武汉加油,中国加油。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值