说明:我是一个初学c语言的小白,很多地方都不是很理解,所以就会自己动手敲代码进行相应的推理验证,希望可爱的你在看到这些步骤时,不要嫌弃我啰嗦。(近期有很多小可爱给我私发消息,问我怎么学习编程,怎么学好c语言等问题,所以在这里我统一进行解答和回复,希望可以帮到大家。)


本章内容:
1、如何学好编程,编程学习方法分享(小白必看~)
2、编程学习路径分享(C++/Java)
3、初始C语言总结思维导图(复习+提高 专用)
4、初始C语言知识补充(查漏补缺)
5、编程练习题(巩固加深所学知识)


文章目录

  • 一、如何学好编程
  • 二、编程系统学习路径
  • 三、初始C语言总结篇
  • 四、初始C语言知识补充
  • 五、编程练习题(牛刀小试)

一、如何学好编程

相信有很多小伙伴都跟我一样,刚接触编程,刚接触C语言,担心自己学不会或者学不好(也有一些同学可能在学校中已经接触过C语言,但是限于自己学习的渠道和方法,导致自己对编程学习的兴趣和自信直线下降,备受打击,陷入深深的自责和懊悔。)。所以近期我收到很多小可爱们给我的私信问:“张同学,你是怎么学编程的?有没有好的编程学习方法?我该怎么做才能学好编程呢?”等等诸如此类的问题。在这里我结合自己的学习经历,以及身边一些自学编程成功同学的经历,统一回复帮助大家解决这些烦恼和问题。
1、调整好自己的心态:在你每次学习编程质疑自己的时候请一定要记住这句话:”每一个人都可以,也有能力学好编程”。编程学习并不是一个需要多高的智力,高超的技巧才能学会的东西。它和我们从小到大经历过的每一种新的知识一样,需要熟能生巧,需要刻意练习!
2、学会一些好的学习方法:①电脑记笔记+知识夹整理:编程学习涉及到的知识内容会比较多,理解的东西也会很多,很多时候需要有相应的图例+代码+额外知识链接(比如网站、博客等),个人建议用电脑或者平板去记笔记,最好能支持同步上传,这样就不用担心自己的笔记丢失。不建议线下手写记笔记的方式,太慢,效率低,不方便复习查看,易丢失。推荐软件:OneNote、有道云笔记、印象笔记等等。
②学会定期总结和复习:总结是对自己所学知识的一个提高和整理,建议学习的过程中要定期去进行总结和复习(比如我自己采用章节总结的方式,每学完一章节进行总结和复习)。建议总结和复习方式:思维导图 推荐软件:xmind
3、养成写博客的习惯:学习的过程是一个输入知识的过程,而写博客则是将自己所学知识输出的一个过程。自己在写博客的过程中会不断的向自己提问,能真正发现学习过程中没搞懂或者有疑惑的地方。此外,写博客代表你是一个敢于分享,乐于分享的人,这样你不但可以在学习过程中体会到快乐,还能在分享学习知识的过程中体会快乐(双重快乐,快乐翻倍!)。每一个厉害的牛人也都是一步一个脚印从菜鸟过来的,所以不要去害怕自己写的不好,不敢去分享。
4、养成每天敲代码,上传代码的习惯:推荐代码上传网站GitHub(国外),Gitee(国内)。GitHub服务器在国外,所以在使用过程中网速受限,Gitee是国内的代码托管平台,界面风格和使用几乎和GitHub一致,但是网络访问速度更快,使用体验更好。


上面说的这些都是学习编程的前期准备环节,接下是编程学习过程中的具体方法
(1)c语言被称为编程之本,是一门非常值得学,也适合去学的编程语言!(c语言也是最好的编程入门学习语言!)
(2)学习不能叫苦叫累,抱怨没时间:与戴皇冠,必承其重,真正牛逼的人都是合理安排时间,把自己有限的时间花在他觉得最重要的事情上面。
(3)拒接做伸手党:学习编程最重要的过程就是“要学会自己尝试去解决遇到的各种问题,因为在尝试解决问题的过程中,你才会去想尽各种各样的方法,从多个角度思考,才能真正的提高自己的编程能力”(不要转牛角尖,这里不是说不管遇到什么问题都不要请教别人,在我们的学习中,生活中,以及今后的人生中,向他人学习是非常重要的。只是要注意在请别人帮忙之前要花心思去想想,去尝试自己解决,不要一有问题就甩给别人,别人解决了,你并不能获得解决问题过程中的提升!)


二、编程系统学习路径

学好C语言不代表学好编程,二者不是等价的!编程的学习包括:编程语言、数据结构和算法、操作系统、计算机网络及网络编程、数据库、脚本语言。 在学习的计算中,一定要自己多去实践!多敲代码!
C++/Java编程系统学习路径分享:

①编程语言的学习:选一门经典语言深入学习,多敲代码多实践。
②数据结构和算法:建立在掌握编程语言的基础上,听懂 / 看懂 + 实践。
③操作系统、计算机网络和网络编程:上课认真听讲,理解 + 看书(几本好书),实践
④数据库、脚本语言:相对简单


三、初始C语言总结篇

该部分内容是对初始C语言(1)(2)(3)的总结,建议在阅读之前先看一下之前的三篇文章,对照阅读效果更佳!


四、初始C语言知识补充

(1)C语言是一门通用计算机编程语言,广泛应用于底层开发。那么什么叫做底层开发呢?

一般我们所购买的电脑都是硬件设备,需要在电脑上安装操作系统,比如windows / Linux / macos等,但是操作系统并不是直接控制电脑硬件,而是通过中间层-- - 驱动(各种驱动软件),来间接操控硬件设备。在操作系统安装完成后,如果我们需要丰富多彩的体验和功能,就需要安装应用软件,比如社交聊天用的QQ、微信、网络资源管理和共享的云盘网盘、娱乐放松的电脑游戏,这些都存在与应用层。通常我们将应用层往下称为底层。
(2)常见文件后缀.c-- - 源文件 (c语言格式source).h-- - 头文件(head).cpp-- - 源文件(c++格式).exe-- - 可执行程序
(3)一个工程中有且仅能有一个main函数(主函数),一个工程中可以有多个.c源文件,多个.h头文件,但是多个.c文件中有且仅能有一个main函数。分析理解:main函数是整个工程程序执行的入口,如果出现了多个main函数,那么程序就不知道该从哪个入口进去,不知道执行哪个main函数,就会出错!
(4)变量的声明和定义、函数的声明和定义可以放到main函数外面,但是执行类的语句不能放到main函数外面
例如:全局变量a的声明和定义可以放到main函数外面,但是打印a的值这条执行语句不能放到main函数外面。

(5)转义字符中的’(单引号)"(双引号)什么时候使用呢? ‘(单引号)"(双引号)之所以要进行转义,是为了解决’ ’ 和 " " 配对的问题。
例1:如果我们要打印输出单引号’ ,若不加\进行转义,则出现’ ‘异常配对,加上\后进行转义可以解决’ ‘异常配对的问题


例2:如果我们要打印输出双引号’ ,若不加\进行转义,则出现" “异常配对,加上\后进行转义可以解决” "异常配对的问题


(6)计算机中键盘上敲出的字符:比如 a b ` 1 @ 等等,这些字符都是按照ASCII码表上对应的ASCII码值进行存储的,并不会直接对字符进行存储。所以说字符类型也算整型。

五、编程练习题(牛刀小试)

1、写代码将三个数按从大到小输出

#include<stdio.h>
//1、写代码将三个数按从大到小输出
int main()
{int a = 0;int b = 0;int c = 0;printf("please input three numbers:>>\n");scanf("%d%d%d", &a, &b, &c);//算法分析  将最大数放到a,次大值给b,最小值给cif (a < b)//如果a小于b,交换a,b两者的值{int temp = a;a = b;b = temp;}if (a < c)//如果a小于c,交换a,c两者的值{int temp = a;a = c;c = temp;}if (b < c)//如果b小于c,交换b,c两者的值{int temp = b;b = c;c = temp;}printf("%d  %d  %d\n", a, b, c);//不管输入的三个数的大小,均按照a,b,c的顺序打印return 0;
}

结果展示:


2.写一个代码打印1 - 100之间所有3的倍数的数字

//方法一
#include<stdio.h>
int main()
{int i = 0;int count = 0;//计数for (i = 1; i <= 100; i++){if ((i % 3) == 0)printf("%d  ", i);count++;}printf("1-100之间3的倍数的个数为 %d\n", count);return 0;
}//方法二
#include<stdio.h>
int main()
{int i = 0;int count = 0;for (i = 3; i <= 100; i += 3){printf("%d ", i);}printf("1-100之间3的个数为:%d\n", i);return 0;
}

结果展示:


3.给定两个数,求这两个数的最大公约数 //最大公约数又称最大公因数
首先要知道什么时约数 / 因数, 例如:整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。
辗转相除法:
比如说求 24 18 的最大公约 数,24 % 18 = 6 != 0 ,18 % 6 = 0 ,那么这个6就是24和18的最大公约数 m % n = r != 0 , m = n, n = r , r = m % n, 判断r是否为0 若r为0, 则n为最大公约数,若不为0,继续循环执行。

#include<stdio.h>
//3.给定两个数,求这两个数的最大公约数
int main()
{int m = 0;int n = 0;int r = 0;printf("请输入两个正整数求它们的最大公约数:>>\n");scanf("%d%d", &m, &n);while (m % n){r = m % n;m = n;n = r;}printf("最大公约数是:%d\n", n);return 0;
}

结果展示:


4.打印1000年到2000年之间的闰年
闰年的判断条件有两个
1)能被4整除,不能被100整除是闰年
2)能被400整除是闰年

#include<stdio.h>
int main()
{int year = 0;for (year = 1000; year <= 2000; year++){if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))printf("%d ", year);}return 0;
}

结果展示:


5.写一个代码:打印100 - 200之间的素数
素数:也叫做 “质数”,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数,也就是不能再整除其他数。

#include<stdio.h>
//方法一:试除法       效率较低
int main()
{int i = 0;int count = 0;for (i = 100; i < 200; i++){//试除法 从2到i-1试除int j = 0;for (j = 2; j < i; j++){if (i % j == 0)break;}if (j == i){count++;printf("%d ", i);}}printf("\ncount = %d\n", count);return 0;
}

结果展示:

这种方式效率比较低,我们注意到如果一个数是素数,那么它可以分解成两个因数相乘的形式 如素数 n = a * b 且a, b中至少有一个数是小于或等于 开平方n的 sqrt(n), 那么我们在试除的时候就没有必要除到i - 1 只需要除到 开平方i就行,开平方函数sqrt(),头文件为math.h 代码优化后:

#include<stdio.h>
#include<math.h>
int main()
{int i = 0;int count = 0;for (i = 100; i < 200; i++){//试除法 从2到sqrt(i)试除int j = 0;for (j = 2; j <= sqrt(i); j++){if (i % j == 0)break;}if (j > sqrt(i)){count++;printf("%d ", i);}}printf("\ncount = %d\n", count);return 0;
}

6.编写程序数一下1到100的所有整数中出现多少个数字9
要判断出现数字9的情况有两种 x % 10 == 9, x / 10 == 9

#include<stdio.h>
int main()
{int i = 0;int count = 0;for (i = 1; i <= 100; i++){if ((i % 10) == 9)count++;if ((i / 10) == 9)count++;}printf("count = %d\n", count);return 0;
}

结果展示:

【C语言基础学习笔记】一、初始C语言(总结篇)相关推荐

  1. 《C语言基础学习笔记》—— 黑马程序员 <Part1-4>

    <C语言基础学习笔记 Part1-4> Part 1 基础介绍 1. 第一个C语言程序:HelloWorld 1.1 编写C语言代码:hello.c 1.2代码分析 1)include 头 ...

  2. go语言基础学习笔记完整版

    目录 背景 基础 helloworld 变量 常量 数据类型 基本数据类型与复杂数据类型 值类型与引用类型 查看变量类型 字符与字符串 类型转换 指针 打包 读取控制台数据 for-range遍历 生 ...

  3. C#语言基础学习笔记

    0. 环境准备 0.1 简介 C#又称"C Sharp",是微软发布和维护的一个现代的.通用的.面向对象的编程语言,是专为公共语言基础结构(CLI,由可执行代码合运行时环境组成,允 ...

  4. Go语言基础学习笔记

    Golang官方文档: 点击进入 尚硅谷视频:点击进入 目录 01.标识符 1.1.命名规则 1.2.标识符命名规范 1.3.go运算符优先级 02.数据类型 2.1.Go中数据类型分类 变量与常量 ...

  5. 【C语言基础学习笔记】三、函数(1)

    我走了很远的路,吃了很多的苦,才将这份博士学位论文送到你的面前.二十二在求学路,一路风雨泥泞,许多不容易.如梦一场-这一路,信念很简单,把书念下去,然后走出去,不枉活一世-理想不伟大,只愿年过半百,归 ...

  6. Java语言基础学习笔记——基础语法

    一.标识符 1:取名必须以_,$或者字母开头 2:变量必须先声明,赋值后才能使用 3:内存管理 4部分:1) code segment 存放代码                             ...

  7. 夜光:Java语言基础学习笔记(三)在校资源

    夜光序言: 青青子衿,悠悠我心. 纵我不往,子宁不嗣音? 青青子佩,悠悠我思. 纵我不往,子宁不来? 挑兮达兮,在城阙兮. 一日不见,如三月兮. 正文:流程控制语句 结构化程序的三种结构 顺序结构 选 ...

  8. c语言基础学习笔记(三):条件判断语句if-else嵌套和switch-case语句

    文章目录 if判断(条件判断) if语句 优先级 else语句 超市找零代码示例 两数比大小程序示例 if语句没有大括号 计算薪水程序示例 判断成绩及格示例 if-else嵌套 三个数比大小 级联的i ...

  9. 《Go语言圣经》学习笔记 第一章 Go语言入门

    Go语言圣经学习笔记 第一章 Go语言入门 目录 Hello, World 命令行参数 查找重复的行 GIF动画 获取URL 并发获取多个URL Web服务 本章要点 注:学习<Go语言圣经&g ...

  10. guido正式发布python年份_Python 基础学习笔记.docx

    Python 基础学习笔记 基于<Python语言程序设计基础(第2版)> 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 计算机的概念 计算机是根据指令操作数据的设备, ...

最新文章

  1. ASP.NET Core配置环境变量和启动设置
  2. 智力题:砝码称重问题
  3. WCF4中舍去svc文件
  4. 智慧园区-楼宇建模技巧之【建楼篇】
  5. 这可能是最适合C++学习者的书单
  6. 软件设计师考试笔记:UML统一建模语言
  7. hibernate 联合主键
  8. Atiitt 关于不可替代性的思索 目录 1.1. 不可替代性与 这份工作谁都能干无关 1 1.2. 不可替代性未必很好,因为其岗位可能很累或者收入很低 1 1.3. 不可替代性与报酬无关 1 2
  9. 抖音c语言表白编码,抖音微信表白代码大全 微信表白代码总汇
  10. V-REP仿真简介与用户界面 | Introduction to V-REP simulation and user interface
  11. 《活法》 -豆瓣评分8.4
  12. 大数据分析与应用(中级) 数据挖掘概念及流程
  13. 经验之谈,这16个Excel函数,几乎可以解决80%的数据统计工作!
  14. [linux虚拟机] 使用yum命令时,解析不了yum源,Cannot find a valid baseurl for repo: base/7/x86_6
  15. python判断语句和循环语句
  16. 基于Python的双USB摄像头实时预览保存软件
  17. Android Studio中通过SQLiteDatabase类操作数据库
  18. 《2022中国企业数字化办公创新与实践产业研究报告》附下载丨三叠云
  19. scratch双语教师课件文档手册 2.scratch模块介绍
  20. java华容道代码_用java编程 华容道游戏

热门文章

  1. iOS 中常用的几个关键字的用法
  2. 数字化时代,如何赋能人才
  3. 互联网广告请求链路_微博广告推荐策略工程架构体系演进
  4. 计算机二级vb考试查分,计算机二级vb考试分值
  5. vue 图片画框获取坐标
  6. python使用turtle库绘制一个100长度的十字架_哪个选项能够使用turtle库绘制一个半圆形?...
  7. PolSARpro v6.0之Sentinel-1A Wishart与SVM监督分类
  8. 教师对php作品评语通用,教师批改作业100例精彩评语,太有用了!
  9. R语言使用survival包的Surv函数创建生存对象、建立Cox回归模型(包含所有协变量)比较不同治疗方法生存率的差异、使用predict函数对cox模型进行新数据的预测和推理(预测死亡风险)
  10. markdown 设置目录跳转的简单方法