C语言复习笔记 1

全国计算机二级C语言考试前期复习1(2022年9月份)笔记 计算机二级C语言复习笔记 阅读详情

1、编程基础

1.1 什么是编程语言

语言:交流的工具。人类的语言,像中文、英文等;人与机器交流的语言——编程语言。
语言的特性:基本词汇+标准格式规范(语法)。
编程语言的类别和作用:

  • 类别:C/C++、PHP、Java、C#、JavaScript等
  • 作用:
    • C/C++——PC软件开发、底层开发、硬件相关等
    • PHP——网站后台开发等
    • Java、C#——开发软件、网站后台等
    • JavaScript——网站前端等

1.2 关于C语言

C语言是上世纪70年代由里奇等人在贝尔实验室设计的新语言。
学习C语言这门基础语言的好处:

  • 学好基础语言对之后学习新的语言上手更容易;
  • 更好的理解程序的运行机制、计算机各部件之间的交互、操作系统与应用程序之间的关系等底层知识;
  • 知识称为一名职业程序员的基础,但也是很重要的基础。
  • 培养思维习惯和积累编程经验。知识可以短时间内了解,但是思维习惯和经验却是需要长时间的积累。

1.3 计算机硬件基础知识

计算机硬件系统:

这里写图片描述

中央处理器(CPU)——运算器(包括寄存器)+控制器
内存——存储器
键盘、鼠标、扫描仪等——输入设备
显示器、打印机等——输出设备

主板——CPU、内存条、网卡、各种插槽接口等

这里写图片描述

1.4 软件的运行原理

程序数据和安装的软件是保存在硬盘的,当双击qq图标,操作系统发送消息并处理,应用程序打开。这个过程中,操作系统将硬盘里的数据集合复制到内存中,然后CPU读写内存中的数据,这个过程就叫做载入内存(Load into Memory),完成这个过程需要一个特殊的程序,这个程序就叫作加载器(Loader)。存储数据到内存,如果要保存到本地硬盘,就将数据再复制到硬盘。

当需要运行的程序很多,从硬盘中复制的数据集合超过CPU的大小,这时操作系统会将不需要的数据放到硬盘中的虚拟内存处。

     这里写图片描述
          图 CPU、内存、硬盘和主板的关系

1.5 二进制思想及数据的存储

计算机内存中数据的存储形式:0和1的二进制存储。原因是内存和CPU是由亿万个纳米级电路组成,电路的电压只有5V(高电平1)和0V(低电平0)。
二进制思想:逢二进一、借一当二。
1个元器件称为1比特(bit)或1位;8个元器件称为1字节(byte)

八进制:数字0开头
十六进制:数字0+X(x)开头

1.6 ASCII编码和Unicode编码

ASCII编码:一个字节 8位 最高位通常表示符号位
Unicode编码:多个字节,汉字一般两个字节
后者可以看成是前者的扩容;0-127个字符表示相同。

1.7 程序员的发展方向

成为一名合格的程序员需要经过一段时间的磨练。站在求职的角度,能开发出实用的软件、网站、APP等才叫学有所成。

计算机涉及的知识非常广泛,不是每个人都能成为全栈大神。不要想着把客户端软件、网站、APP都开发出来,这在短时间内是不现实的。相信我,你不是神!

1) Windows开发:
主要是开发客户端(PC机上的软件),如QQ、迅雷、360等,需要学习C/C++、Windows API、操作系统原理、数据结构、算法等。

2) 游戏开发:
需要你有Windows开发的基础,再学习DirectX图形编程、Socket通信、游戏服务器架设等。

3) Web开发:
也就是做网站,分前端和后台。后台主要负责服务器端的编程,需要学习Java、PHP、Python等一门Web开发语言;前端主要负责网页的设计,需要学习HTML、CSS、JavaScript等。随着互联网的崛起,人才需求量大,工资高,很大一部分程序员都在从事Web开发。

4) 底层服务:
NB 的程序员都在搞这些,例如编写一个线程池为上层提供服务。工资比普通的程序员高。

5) 算法:
也是NB的程序员在搞,一般不注重编程语言,而是侧重解决问题的方法和效率。工资比普通的程序员高。

6) 移动开发:
包括IOS和Android,你可以开发APP,也可以开发游戏,需要学习Java(针对Android)、Objective-C(针对IOS)、Swift(针对IOS)等。

7) 软件和硬件结合:
包括嵌入式和单片机,不仅要会写代码,还要了解硬件,所以入门门槛比较高,知识也比较庞杂,学习时间长。选择该方向最好有数字电路、模拟电路和汇编的基础,非常适合电子信息工程专业的同学。

这个方向的同学,大部分去了中兴、华为等以生产电子产品为主的公司,工资虽然没有一般的程序员高,但是还说得过去。不过随着智能硬件的崛起,这部分工程师的春天或许就要到来了。

8) 测试(QA):
一款产品问世需要大量的测试才能投放市场,QA(Quality Assurance,译为“品质保证”)人员就是为程序员把关的,如果程序员的作品不符合产品需求或者Bug太多,QA有权驳回,这时就会影响程序员的绩效。QA不但要能看懂代码(大概理解什么意思),还要掌握一定的测试技巧,更重要的是心思缜密,有耐心有毅力,女生比例很高。

程序员的待遇(过时了)

IT行业的待遇比很多行业要高,程序员尤为突出,刚刚毕业的大学生,进入百度、腾讯、阿里巴巴等这些大企业,年薪一般在15万以上,经验丰富的可以拿到20多万,30万的就是神一样的存在,有,但是极少。这是第一梯队,一般重点大学的毕业生才能进入,怎么也得是个一本吧。

拿到融资的创业公司、规模不大的公司、一些国企等给的待遇也不错,年薪也可以超过10万。

很多小公司,老板一个人说了算,也没有融资,待遇一般都不会高,一个月几千块钱。这样的公司招人难,进入的门槛低,对学历的要求也可以忽略,能干点活就行。但是往往是这样的公司最折磨人,你什么都需要做,涨薪没有明文规定,老板经常画饼,还会威胁你说完不成任务就走人。

每个城市的待遇也不一样,北京、上海、广州、杭州这些一线城市都有大公司,待遇最高;成都、大连、西安这些二三线城市的待遇就一般了。

1.8 基础后的学习路线

对于大部分初学者,学习C语言的目的是希望做一名合格的程序员,开发出靠谱的软件来。但是学了C语言的基本语法后,发现只能开发“黑底白字”的DOS程序,完全没有漂亮的界面和生动的交互。于是学数据结构,学算法,越陷越深,越来越难,最后迷失了,不知道学C语言能做什么,认为学习编程很难。

其实,这是很多初学者都会踩到的一个坑!C语言本身是一门很简单的语言,提供的实用功能不多,大部分要借助操作系统和其他库来完成。
第一阶段:学习软件开发基础

1) 首先学习C语言的基础语法,这些都是编程的基础。

2) 学习Windows开发,你就能够使用C语言开发出带界面的软件来了,可以有窗口、输入框、菜单等,也可以响应键盘和鼠标事件,可以播放音乐、视频等。

但是,你会发现比较麻烦,要使用很多API,还要手动写资源脚本。

3) 学习Visual C++开发,通过VC或VS来拖拽各种控件、编辑各种参数。

这个时候,你就可以用C语言做出小规模的软件了,了解了软件的底层是怎么回事,也学会了使用VC或VS来编辑界面。
第二阶段:提高软件开发效率

Windows API是软件开发的基础,如果你希望走得更加长远,拿到的工资更高,跟大家拉开差距,那么一定要学。

接下来是提高开发效率,有好几条路可以选择,众多大神争论不一。

第一条路:学习C++,包括C++基础语法、MFC、QT等。MFC和QT都是界面库,对Windows API做了封装,会大大提高开发效率。

第二条路:学习C#。C#语言本身对底层API做了很好的封装,可以使用面向对象的方式来开发软件。

第三条路:学习Delphi。Delphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。“聪明的程序员用Delphi,真正的程序员用C++,偷懒的程序员用PowerShell”已经成为对 Delphi 的最真实写照。

一款大型软件,例如 QQ、迅雷、360 等,往往是多种技术的集合。
其他开发

C语言主要用于软件开发、底层开发、嵌入式和单片机等对效率要求高的地方,如果你希望学习Web开发或APP开发,那么学完了C语言的基础语法就跳出C语言,去学习PHP、Python、Java、Objective-C、Swift吧,千万不要陷在C语言不能自拔。

这个时候,C语言主要的作用是让你入门,了解编程语言的基本语法,强化编程思维,而不是用它来做实际开发。
关于数据结构和算法

如果你不是专门搞算法,而是做应用开发,那么了解一下就可以了,主要是堆栈、链表、排序、查找等比较基础的,千万不要深入学习,算法是个无底洞,不要陷进去,要尽早跳出来去做应用开发。

实践中你会发现,很多会用到什么数据结构和算法,用到的话也已经被封装好了,调用对应的函数就可以,而且像树、图一类的晦涩难懂的数据结构基本与你无缘。

1.9 学习的方法论

Practice、practice and practice。
Google + Try + Think
Persistance

C语言知识点复习笔记1 阅读详情

相关推荐

C语言学习笔记基础完整

C语言基础部分学习笔记全部

【C语言】 知识点汇总--基础知识点梳理(超全超详细)

目录一、从源代码到exe二、基本数据类型三、字符在屏幕上的显示原理四、溢出现象五、类型转换规律六、短路问题七、指针变量类型的作用 八、指针类型的扩展——多级指针九、指针类型的扩展——指针数组十、指针类型的扩展——数组指针十一、一维数组-名-特性十二、二维数组-名-特性十三、大端存储-小端存储十四、函数在源代码中的三种状态十五、堆区与栈区的区别十六、函数的执行原理十七、枚举类型十八、typedef二十、const二十一、全局/局部变量生命周期与作用域二十二、static静态变量二十三、extern二十四、宏d

jia_03的博客 2万+

C语言复习笔记

C语言复习笔记,比较全面,有助于C语言的学习。

图及其应用c语言实现(数据结构复习最全笔记)(期末复习最新版)

图 一.图的基本概念 1.图的定义 图是由顶点(vertex)集合及顶点间的关系组成的一种数据结构。Graph=(V,E)Graph=(V,E)其中,顶点集合 V={x|x∈某个对象数据集}V={x|x∈某个对象数据集} 是有穷非空集合;E={(x,y)|x,y∈V}E={(x,y)|x,y∈V} 是顶点间关系的有穷集合,也叫边(edge)集合。Path(x,y)Path(x,y)表示从顶...

markconca的博客 1万+

C语言学习笔记

C语言学习笔记,C语言学习笔记,qsort排序。。。。。。。。。。。。。。。。。。。。。。。。。。。。

更新3ds时和用读卡器读取传输文件操作不当导致的tf卡损坏无法读取需要格式化时出现的问题以及不想丢失文件并且修复的详细解决方法

前言: 不小心按了同意更新而且tf/sd卡损坏导致了3ds打开后都是出现 Anerror has occurred:(红色的) Failed to apply 1 FIRM patch(es). Press any button to shotdown 这样的画面,按了任意键后就关机,我找了很多资料和大佬的回答解决了这些问题,现在记录一下。 一.不小心按了更新导致上述的画面 原因:是因为系统升级了,但是里面的Luma3DS还没有更新,属于是更新了但没有完全更新的状态。 **修复方法** 1.首先请按

give_me_fish的博客 1万+

C语言基础笔记(全)

printf函数可以输出各种类型的数据,包括整型、浮点型、字符型、字符串型等,实际原理是printf函数将这些类型的数据格式化为字符串后,放入标准缓冲区,然后将结果显示到屏幕上printf函数根据format给出的格式打印输出到stdout(标准输出)和其他参数中代码格式%c字符%d带符号整数%f浮点数%s一串字符%u无符号整数%x无符号十六进制数,用小写字母%X无符号十六进制数,用大写字母%p一个指针%%一个'%'符号。

señoritaw的博客 1万+

C/C++ 计算程序运行的时间

C/C++计算程序执行时间的方法,精度依次增加,推荐度也依次增加 1.#include <time.h> clock_t start, finish; double process_interval ; start=clock(); process(); //要计时的程序 finish=clock(); process_interval =(double)(finish-star...

stu_shanghui的博客 1020

c语言复习笔记1

c语言复习笔记1——初识c语言

ysy1648067239的博客 230

ArduSub深度调参指南:如何让水下机器人像鱼一样稳定游动

本文深入探讨了ArduSub水下机器人的深度调参策略,旨在解决ROV在水下晃动、响应迟钝等问题。文章系统解析了级联PID控制逻辑,并针对静水与水流环境,提供了具体的深度保持与姿态控制调参方法、实战日志分析技巧以及异常振荡处理方案,帮助用户实现水下机器人稳定、流畅的游动性能。

CAT789的专栏 372

R语言安装包镜像报错?5分钟教你快速切换国内镜像源(含清华/阿里云配置)

本文详细介绍了R语言安装包镜像报错的解决方案,包括如何快速切换国内镜像源(如清华、阿里云等),解决'无法读写貯藏處索引'等常见问题。通过图形界面和命令行两种方式,帮助用户高效配置镜像源,提升R语言包安装速度与稳定性。

weixin_29053073的博客 418

c语言期末复习笔记1

1.流程图 写一个程序,首先要了解它是如何进行的。 要素:

issa的博客 777

从零开始:如何用Python建立你的第一个人工智能模型

在这篇文章中,我们将介绍如何从零开始使用Python建立你的第一个人工智能模型。无论你是刚接触编程的新手,还是有经验的开发者想进一步探索人工智能领域,这篇文章都将为你提供清晰、详细的指南。我们将一步步探索数据预处理、模型建立、训练和测试的过程,以及如何解读模型的结果。

Allen1862105的博客 4万+

C语言复习笔记1

​ 最近开始准备考研复试了,看了一会C语言,写一个笔记来梳理一下,由于水平有限,不喜勿碰哈。大家都知道C语言是一种高级语言,是程序员与计算机用来交流的语言,大家想用计算机实现某一功能时就可以选择用C语言来编写一个程序,让程序经过编译后在计算机上运行即可.这个过程我们可以理解为三个步骤,即存储数据,数据运算,数据输出。

weixin_47256800的博客 243

采用LM324输出方波、正弦波、三角波

介绍以LM324运放芯片为核心,设计电路连接,实现三角波转化为正弦波,再由正弦波转化为方波输出的简易函数信号发生器的基本功能。本文介绍通过使用NI Multisim 14.0软件仿真模拟搭建所设计的电路,再使用这个软件的示波器进行仿真输出三角波,正弦波,方波。使用软件进行仿真后再到实验室进行调试,将其接入电源,并通过在显示器上观察波形以及数据,得到结果。该电路结构简单,信号的幅度、频率等参数可调,在仿真软件和实验室检测都有较好的性能输出,可替代实验室标准的函数信号发生器完成一般的实验要求。

qq_48771816的博客 7万+

2023年下半年网络工程师案例分析真题答案解析

R1] ip route-static 0.0.0.0 0.0.0.0 GigabitEthemet2/0/1 (3) track (4) R1 to R2 //配置R1的缺省路由,联动BFD使得R1到2的流量优先走R1->S1->R2链路,当此链路发生故障时,流量切换到R1->R3->R2链路上。当同一VLAN内也需要网络隔离时,我们可采用交换机的(2)功能,若在配置了二层隔离后,部分主机有互通的需求,则可在需求主机的网关上配置(3)功能。不需要,MAC地址是数据链路层封装以太帧的地址标识。

鹿鸣天涯 751

【C++笔记】1. C语言复习

看《C++ Primer》之前,复习了一下C语言

trey8698的博客 323

moveit——基于octomap的碰撞检测

机械臂对棚顶进行碰撞检测。

如果想成为中心,那么就到中心去吧。 1355

【2023.3.1】c语言复习笔记

C语言复习笔记,只是记录一些我自己不熟悉的,并没有记录所有C语言知识点。

qq_35289660的博客 637

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C语言复习笔记(1)

初学C语言,整理部分笔记(1)

weixin_73603248的博客 268

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C语言复习笔记--指针(1)

今天我们进入指针的复习了.这部分有很多知识,话不多说,让我们进入指针的世界吧.

2301_80159237的博客 1350

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

复习C语言笔记1.0

int main()//main是主函数,程序的入口(写代码不能没有main函数,main函数有且仅有一个)//%f-打印浮点数字-打小数,单精度小数 双精度小数打印用%lf。//整型//局部变量-定义在{}(代码块)之内的变量。//%c是打印字符的格式。//全局变量-定义在{}(代码块)之外的变量。//当局部变量和全局变量名字相同的时候,局部变量优先。//char -打印字符类型。//%x-打印十六进制的数字。//%p-以地址的形式打印。//%o-打印八进制的数字。//%d -打印整型。

m0_73163079的博客 313

C语言复习笔记-day1

1.printf的内容快速闪过,使窗口停留: 2. 3.异或:a^a=0 0^a=a 4. <stdlib.h> system()的头文件 cmd命令: shutdown -s -t 60 60秒后关机 shutdown -a 取消关机 5.Fn+f10代码一行行从main函数执行 6. 7.局部变量与全局变量可以同名。 8.找到侧边栏: 9.使用extern可以引用外部.c文件赋值的变量 ...

gqycgl99的博客 449
上一篇: Win32 SDK学习资料整理
下一篇: C语言复习笔记 2
henhaoji_123
博客等级 码龄10年 260粉丝 283原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值