听翁恺老师mooc笔记(16)--程序设计与C语言
问题1:计算机遍布生活的各个方面,若你需要一个功能可以下载APP,我们需要的大部分功能都可以找到对应的APP,如果没有可以自己写一个软件,但是很少人需要这么做,那么我们为什么学习计算机编程语言?
学习语言重要的不是写软件而是1)通过学习语言去理解计算机是如何工作的?2)计算机擅长做什么?能够做什么?擅长做什么?不能够做什么?
问题2:计算机是如何解决问题的?
比如你在餐馆,想要一杯水。那么如果你跟一个服务员交流,只需要告诉服务员:“请给我一杯水”,那么服务员知道怎么打一杯水给你,他会去厨房拿一个杯子,倒一杯水放在您的桌子上。但是如果你想让计算机为你做这件事情,可能没有这么好的自动化的程度。
你需要一步一步的告诉计算机如何去做:1)转身走到厨房2)找到一个杯子 3)找到一个水壶4)在杯子中倒入一些水5)拿起水杯走回桌子。
有的时候我们说计算机很聪明,很智能,其实计算机什么都不会,它只会做一件事情:就是你让它一步一步怎么做,它就一步一步做,并且你不让它做什么它肯定不会去做。而且计算机不知道怎么把这些步骤串起来,将这些步骤串起来这就是人需要做的事情。
所以面对一个人的时候,你需要告诉他:what to do,然后这个人就知道如何去做,而面对一个计算机,你需要告诉他:how to do。
问题3:那么如何告诉计算机做事情的步骤那?
当我们告诉计算机如何去做的时候,需要一定的方式,需要一些描述步骤的手段,这就是程序。1)程序是用特殊的编程语言写出来表达如何解决问题的2)使用编程语言告诉计算机如何一步一步解决问题的,不是和计算机交谈,是用编程语言写下要计算机完成的步骤,让计算机去执行。
问题4:什么交谈那?
比如在你电脑的桌面上看到一个软件,你想要运行它,那么使用鼠标双击打开,双击就是交谈的方式,是你命令它做事情,然后软件运行起来,可以看到这个软件里面的情况,这是软件给的反馈。但是编程语言不是用来交谈的,不会你说一句,它反馈你一下。

问题5:计算机懂什么语言?
计算机只懂01代码,屏幕上的数字是通过特殊的软件将编程语言转变过来的,二进制代码是计算机能懂的,编程语言是学过编程语言的程序员能懂的,而相应的文字是普通人能懂的,这些文字也就是算法,是告诉计算机做事情的步骤。

问题6:什么叫算法
1)要让计算机做计算,就需要像上述找出计算的步骤,然后用编程语言写出来,2)计算机做的所有事情都叫做计算,并不是只有加减乘除是计算,3)计算的步骤叫做算法。
问题7:程序设计语言有很多,例如java,python等,那么为何选择C语言。
参见为何选择学习C
问题8:C语言的简短历史
1)C语言是从B语言发展而来的,B语言是从BCPL语言发展而来的,BCPL语言是从FORTRAN语言发展而来的,FORTRAN语言是人类历史上第一个高级程序设计语言,在1950s年代。
2)BCPL和B都支持指针间接方式,所以C也支持了,对于C语言来说,指针是C语言的灵魂,指针是C语言成为C语言的重要的东西。
3)C语言还受到PL/I的影响,还和PDP-II有机器语言有很大的关系,显得在高级语言中C语言是比较底层的语言。
4)1973年3月第3版的Unix上出现了C语言的编译器。
5)1973年11月,第四版的Unix发布了,这个版本是完全用C语言重新写的。
6)《C程序设计语言》发布了经典C标准。
7)1989年,ANSI(美国国家标准协会)发布了一个标准ANSI-C,8)1990年,ISO(国际标准化组织)接收了ANSI的标准-C89,9)C的标准在1995年和1999年两次更新-C95和C99,10)最新的标准是2011年的C11。
问题9:不同的标准之间C语言存在什么差异那?
首先是语法上的一些差异,然后是能力方面的一些差异,比如C99可以在任意的地方定义变量等,目前所有的编译器都支持C99,当前的课程基于C99来讲述。
问题10:使用什么编译软件?
C语言在发展过程中,很多人为它做了开发工具,编译器,选择一个在window上都看可以使用的软件:Dev C++。Dev C++的官网网址是:https://sourceforge.net/projects/orwelldevcpp/ 。请一定养成良好的习惯,从软件的官网下载。安装时选择英文,第一次运行时可选简体中文。
如果是新版的mac系统,在终端输入gcc之后会有下面的提示:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
此时在终端运行下面这条语句,就可以了(安装完整版的xcode是非必须的)。
xcode-select --install
听翁恺老师mooc笔记(16)--程序设计与C语言的更多相关文章
- 听翁恺老师mooc笔记(14)--格式化的输入与输出
关于C语言如何做文件和底层操作: 文件操作,从根本上说,和C语言无关.这部分的内容,是教你如何使用C语言的标准库所提供的一系列函数来操作文件,最基本的最原始的文件操作.你需要理解,我们在这部分所学习的 ...
- 听翁恺老师mooc笔记(13)--类型定义和联合
typedef 虽然我们知道使用struct这个关键字定义一个结构类型,然后可以使用该结构类型定义变量.但是每次要使用的时候都需要带着struct这个关键字,那么如何摆脱这个关键字哪?C语言提供了一个 ...
- 听翁恺老师mooc笔记(2)-第一个程序--&运算符
使用devC++写hello world 第一步:文件-新建-源代码.然后输入"输出hello world"程序: 注意:写程序时关闭中文输入法,否则语句输入的分号可能会被识别为错 ...
- 听翁恺老师mooc笔记(15)--文件的输入与输出
<>重定向 如果使用标准的printf输出,有一个比较简便的方法,可以将程序的结果写入一个文件.使用<和>符号,将程序运行结果重定向到文件中去,具体使用到的代码如下: ./te ...
- 听翁恺老师mooc笔记(12)--结构中的结构
结构数组: 和C语言中的int,double一样,一旦我们做出一个结构类型,就可以定义这个结构类型的变量,也可以定义这个结构类型的数组.比如下面这个例子: struct date dates[100] ...
- 听翁恺老师mooc笔记(11)--结构和函数
结构作为函数参数: 声明了一个结构就有了一种自定义的数据类型,这个数据类型和int.float.double一样,int等基本类型可以作为函数的参数,那么这种个自定义的结构类型也应该可以作为函数参数, ...
- 听翁恺老师mooc笔记(10)--结构
定义结构: 在程序里,如果想要表达一个数据就需要一个变量,而每个变量又都需要一个类型,之前学过C语言中有int.double.float.char等这些基础类型,还有指针.数组等.如果你要表达的数据比 ...
- 听翁恺老师mooc笔记(9)--枚举
枚举类型的定义 用符号而不是具体的数字来表示程序中的数字,这么表示的好处是可读性,当别人看你的程序,看到的是单词,很容易理解这些数字背后的含义,那么用什么符号来表示名字哪?需要const int常量的 ...
- 听翁恺老师mooc笔记(8)--字符串2
字符串的赋值 字符串的输入与输出 对C语言的基础类型,比如int.double等类型,scanf.printf有专门的格式转换,而对字符串,scanf.printf使用%s格式字符进行输入与输出.当使 ...
随机推荐
- Java web切面编程
在我们的 web开发中 我们在 对公用的 一些方法 我们需要抽取出来 这样达到 代码的冗余 今天 我利用项目上用的AOP的 实际 应用做了一个整理 首先 xml配置 扫描 <?xm ...
- [BZOJ1878] [SDOI2009] HH的项链 (树状数组)
Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此, 他的项链变 ...
- hadoop第一课
Hadoop基本概念 在当下的IT领域,大数据很"热",实现大数据场 景的Hadoop系列产品更"热". Hadoop是一个开源的分布式系统基础架构,由 Apa ...
- 关于在Django中Json无法序列化datetime的解决办法
我们在网页设计时经常会在前端和后台进行交互,前端回传的方法可以时redirect一个地址加上显式的参数,第二个办法就是使用Ajax结构.那么在传到view函数中进行处理后是需要通过Json格式进行返回 ...
- php文件上传原理详解(含源码)
1.文件上传原理 将客户端的文件上传到服务器,再将服务器的临时文件上传到指定目录 2.客户端配置 提交表单 表单的发送方式为post 添加enctype="multipart/form-da ...
- js--DOM&BOM总结思维导图---2017-03-24
- FTP站点设置
0x00前言: 应老师今天教的和题目所需 有了今天的博文 0x01准备: windows server 2008 FTP服务 0x02正文: 1.先安装FTP服务 先打开--服务器管理 点击--添加角 ...
- cxGrid_Q31584 cxgrid 拖放移动记录
cxgrid 拖放移动记录,cxgrid 拖放,cxgrid 拖动记录,cxgrid 鼠标拖动记录 这是cxgrid开发公司回复客户时所发送的源码项目,用于实现鼠标拖动记录,改变记录在表格中的位置,所 ...
- 第三方工具 - echarts中 设置x||y轴文案、提示文字等为固定字数,超出显示"..."
起初看到这种需求的时候,我是这个状态 对,我是拒绝的,人家echats画出来就是一个canvas,你让我怎么加... 但是,作为一个"有点追求的"前端,我得想招试试总结下来,唯一的 ...
- 我的linux一万小时
这不是一篇鸡汤文,因为我并没有在使用 Linux 一万小时后成为 Linux 达人,甚至在很多方面,我连新手都算不上.我走的这些弯路能篇成一本很有参考价值的反面教材,下面,我在www.itxdl.cn ...