问题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语言的更多相关文章

  1. 听翁恺老师mooc笔记(14)--格式化的输入与输出

    关于C语言如何做文件和底层操作: 文件操作,从根本上说,和C语言无关.这部分的内容,是教你如何使用C语言的标准库所提供的一系列函数来操作文件,最基本的最原始的文件操作.你需要理解,我们在这部分所学习的 ...

  2. 听翁恺老师mooc笔记(13)--类型定义和联合

    typedef 虽然我们知道使用struct这个关键字定义一个结构类型,然后可以使用该结构类型定义变量.但是每次要使用的时候都需要带着struct这个关键字,那么如何摆脱这个关键字哪?C语言提供了一个 ...

  3. 听翁恺老师mooc笔记(2)-第一个程序--&运算符

    使用devC++写hello world 第一步:文件-新建-源代码.然后输入"输出hello world"程序: 注意:写程序时关闭中文输入法,否则语句输入的分号可能会被识别为错 ...

  4. 听翁恺老师mooc笔记(15)--文件的输入与输出

    <>重定向 如果使用标准的printf输出,有一个比较简便的方法,可以将程序的结果写入一个文件.使用<和>符号,将程序运行结果重定向到文件中去,具体使用到的代码如下: ./te ...

  5. 听翁恺老师mooc笔记(12)--结构中的结构

    结构数组: 和C语言中的int,double一样,一旦我们做出一个结构类型,就可以定义这个结构类型的变量,也可以定义这个结构类型的数组.比如下面这个例子: struct date dates[100] ...

  6. 听翁恺老师mooc笔记(11)--结构和函数

    结构作为函数参数: 声明了一个结构就有了一种自定义的数据类型,这个数据类型和int.float.double一样,int等基本类型可以作为函数的参数,那么这种个自定义的结构类型也应该可以作为函数参数, ...

  7. 听翁恺老师mooc笔记(10)--结构

    定义结构: 在程序里,如果想要表达一个数据就需要一个变量,而每个变量又都需要一个类型,之前学过C语言中有int.double.float.char等这些基础类型,还有指针.数组等.如果你要表达的数据比 ...

  8. 听翁恺老师mooc笔记(9)--枚举

    枚举类型的定义 用符号而不是具体的数字来表示程序中的数字,这么表示的好处是可读性,当别人看你的程序,看到的是单词,很容易理解这些数字背后的含义,那么用什么符号来表示名字哪?需要const int常量的 ...

  9. 听翁恺老师mooc笔记(8)--字符串2

    字符串的赋值 字符串的输入与输出 对C语言的基础类型,比如int.double等类型,scanf.printf有专门的格式转换,而对字符串,scanf.printf使用%s格式字符进行输入与输出.当使 ...

随机推荐

  1. mysql5.7安装教程

    1, 下载mysql5.7的安装包mysql-5.7.17-winx64.zip,直接解压到安装目录 2, 进入mysql目录,在里面新建data目录 3, 修改mysql的my.ini文件,指定ba ...

  2. 配置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 ...

  3. 第十篇:Map/Reduce 工作机制分析 - 数据的流向分析

    前言 在MapReduce程序中,待处理的数据最开始是放在HDFS上的,这点无异议. 接下来,数据被会被送往一个个Map节点中去,这也无异议. 下面问题来了:数据在被Map节点处理完后,再何去何从呢? ...

  4. 【NOIP2004】【CJOJ1703】【洛谷1092】虫食算

    题面 题目描述 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一个简单的例子: 43#9865#045 +8468#6633 44445509678 ...

  5. wpf研究之道——自定义Button控件

    我们知道WPF中普通的按钮,长得丑,所以自定义按钮,在所难免.我们给按钮添加 MoveBrush,EnterBrush两把刷子,其实就是鼠标经过和鼠标按下的效果.只不过这不是普通的刷子,而是带图片的I ...

  6. 【解高次同余方程】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 ...

  7. Android Screen Monito

    1.下载 Android Screen Monitor http://code.google.com/p/android-screen-monitor/ (1) 下載 ASM_2_40.zip 并解压 ...

  8. Unity如何管理住Android 6.0 调皮的权限

    前天我们项目有这么个需求,台湾版本由于要上谷歌Play要求安卓系统6.0以上的动态申请权限,对于一个做Unity的来说,是不是有点懵逼,这我该何去何从呢?我想静静,静静的想一想,权限也不就那么点事吗? ...

  9. 错误代码和UNICODE编程

    程序错误处理 一般错误返回的数据类型有VOID BOOL HANDLE PVOID LONG/DWORD 返回值哪些代表成功和错误需查文档 错误码和解释存放在WinError.h中 使用GetLast ...

  10. Java设计模式(二)抽象工厂模式

    一.场景描述 接<Java设计模式(一)工厂模式>https://www.cnblogs.com/mahongbiao/p/8618970.html 工厂模式有一缺点,就是破坏了类的封闭性 ...