听翁恺老师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格式字符进行输入与输出.当使 ...
随机推荐
- mysql5.7安装教程
1, 下载mysql5.7的安装包mysql-5.7.17-winx64.zip,直接解压到安装目录 2, 进入mysql目录,在里面新建data目录 3, 修改mysql的my.ini文件,指定ba ...
- 配置maven环境出现ARP tomcat native library 版本安装跟需求版本不一致时的解决方法An incompatible version xxxx of the APR based Apache Tomcat Native library is installed, while Tomcat requires version xxxx
此地址下载你所需要的library版本http://archive.apache.org/dist/tomcat/tomcat-connectors/native/ 点击binaries 点win32 ...
- 第十篇:Map/Reduce 工作机制分析 - 数据的流向分析
前言 在MapReduce程序中,待处理的数据最开始是放在HDFS上的,这点无异议. 接下来,数据被会被送往一个个Map节点中去,这也无异议. 下面问题来了:数据在被Map节点处理完后,再何去何从呢? ...
- 【NOIP2004】【CJOJ1703】【洛谷1092】虫食算
题面 题目描述 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一个简单的例子: 43#9865#045 +8468#6633 44445509678 ...
- wpf研究之道——自定义Button控件
我们知道WPF中普通的按钮,长得丑,所以自定义按钮,在所难免.我们给按钮添加 MoveBrush,EnterBrush两把刷子,其实就是鼠标经过和鼠标按下的效果.只不过这不是普通的刷子,而是带图片的I ...
- 【解高次同余方程】51nod1038 X^A Mod P
1038 X^A Mod P 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 X^A mod P = B,其中P为质数.给出P和A B,求< P的所有X. 例如:P = 11 ...
- Android Screen Monito
1.下载 Android Screen Monitor http://code.google.com/p/android-screen-monitor/ (1) 下載 ASM_2_40.zip 并解压 ...
- Unity如何管理住Android 6.0 调皮的权限
前天我们项目有这么个需求,台湾版本由于要上谷歌Play要求安卓系统6.0以上的动态申请权限,对于一个做Unity的来说,是不是有点懵逼,这我该何去何从呢?我想静静,静静的想一想,权限也不就那么点事吗? ...
- 错误代码和UNICODE编程
程序错误处理 一般错误返回的数据类型有VOID BOOL HANDLE PVOID LONG/DWORD 返回值哪些代表成功和错误需查文档 错误码和解释存放在WinError.h中 使用GetLast ...
- Java设计模式(二)抽象工厂模式
一.场景描述 接<Java设计模式(一)工厂模式>https://www.cnblogs.com/mahongbiao/p/8618970.html 工厂模式有一缺点,就是破坏了类的封闭性 ...