首先,学习编写程序要先知道什么是程序,我们为什么要写程序?

程序就是为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。程序里有很多算法,算法是解决问题的具体方法和步骤,就像我们想要得到个2,就要有个1+1来计算,1+1=2就是一种算法。由各种各样的算法和数据组合成一条一条的指令,然后指令由上到下的执行就成了一个完整的程序。程序有些时候可以帮助我们做很多的事情,对工作学习都能有很多的帮助,能省很多事情。

打算写一个程序之前最好先画一个流程图,

流程图直观、清晰,更有利于人们设计与理解算法。

它使用一组预定义的符号来说明如何执行特定任务

它能帮你更好的理清思路做好这个程序的框架,剩下的就像填空题一样,填入我们需要的数据或者代码。下面是流程图的基本组成符号。  

示例

和其他所有的经过历史沉淀出来的优秀产物一样计算机也有它的发展历史。

1.     机器语言

简介:所有代码里面只有0和1,每一条指令称为“机器指令”。

优点 :代码能被计算机直接识别,直接对硬件产生作用,程序的执行效率非常高。

能直接访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。

缺点:程序全是些0和1的指令代码,可读性差,还容易出错,出错以后想查找的话跟重新写一遍差不多了...

而且对硬件的依赖性很强,因此不同型号计算机的机器语言又不一样。也就是说,如果2台不同型号的机器想实现一样的功能,需要编写2套完全不同的代码

     要熟记所用计算机的全部指令和指令的涵义,指令又多又难记。

综上所述,机器语言很难掌握和推广,现在除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。

2.     汇编语言

简介:用英文单词等符号代替机器指令。

优点:像机器语言一样,可以直接访问、控制计算机的各种硬件设备占用内存少,执行速度快。

  缺点:不同的机器有不同的汇编语言语法和编译器,代码缺乏可移植性,也就是说,一个程序只能在一种机器上运行,换到其他机器上就不能运行,符号非常多、难记,即使是               完成简单的功能也需要大量的汇编语言代码,很容易产生BUG,难于调试,而且必须对硬件非常了解,开发效率很低,周期长且单调。

  现在还在使用的:操作系统内核、驱动程序、单片机程序,软件的加密、解密、破解, 病毒的制作、防治,程序的调试、分析。

3.     高级语言

简介:比较接近自然语言。

优点:简单、易用、易于理解,语法和结构类似于普通英文, 远离对硬件的直接操作,使得一般人经过学习之后都可以编程,而不用太熟悉硬件知识, 一个程序还可以在不同的机         器上运行,具有可移植性,目前正在大量使用。

缺点:程序不能直接被计算机识别,需要经编译器翻译成二进制指令后,才能运行到计算机上。

种类:C语言、C++、C#、Java、Objective-C等。

4.三种语言的简单对比

分别用机器语言、汇编语言、C语言(高级语言)来写一个计算1+1的程序。

              机器语言:简直是天书!!!

        10111000  00000001

        00000000  00000101

        00000001  00000000

              汇编语言:可读性稍微好一点,但是麻烦

          MOV AX,1

          ADD AX,1

               C语言:精简、通俗易懂

          1+1

目前学的是C语言,所以下面就简单介绍一下C语言。C 语言是贝尔实验室的 Dennis Ritchie 在1973 年设计的。C 最初用于开发系统级程序。在微机上,有许多性能良好的商品C 语言系统可用。包括Turbo C、Borland等。

C语言具有一下特点:

结构化的程序设计语言:层次清晰,便于按模块化方式组织程序,易于调试和维护

语句简洁:学习时入门相对容易,C 语言很好地总结了其他语言提出的程序库概念

功能强大:既可用于系统软件的开发,也适合于应用软件的开发。

移植性好:只要对这种语言稍加修改,便可以适应不同型号机器或各类操作系统。

C 程序的基本结构:

#include <stdio.h>        PS:以.h为后缀的文件被称为头文件,可以是 C 程序中现成的标准库文件,也可以是自定义的库文件。

void main()

{

   printf("Hello World\n");

}

C语言中的注释:

//单行注释

/*

多行注释

*/

C语言的执行过程:

C语言开发过程

示例

#include <stdio.h>

int main()

{

  // \n:换行   \t:制表位

  /*

  printf("************\n");

   printf("*\n");

  printf("*\n");

   printf("*\n");

   printf("*\n");

  printf("************\n");

  */

  printf("姓名\t语文\t数学\t英语\n");

   printf("张三\t80\t90\t70\n");

   return 0;

}

C语言学习的第一章的更多相关文章

  1. C语言学习笔记第一章——开篇

    本文章B站有对应视频 (本文图片.部分文字引用c primer plus) 什么是C语言 顾名思义,c语言是一门语言,但是和我们所讲的话不同,它是一门编程语言,是为了让机器可以听懂人的意思所以编写的一 ...

  2. Java学习记录第一章

    学习Java第一章的记录,这一章主要记录的是Java的最基础部分的了解知识,了解Java的特性和开发环境还有Java语言的优缺点. 计算机语言的发展大概过程:机器语言--->汇编语言---> ...

  3. Java 学习笔记 第一章:Java语言开发环境搭建

    第一章:Java语言开发环境搭建 第二章:常量.变量和数据类型 第三章:数据类型转换.运算符和方法入门 1.Java虚拟机——JVM JVM(Java Virtual Machine ):Java虚拟 ...

  4. JavaScript高级程序设计学习笔记第一章

    作为学习javascript的小白,为了督促自己读书,写下自己在读书时的提炼的关键点. 第一章: 1.JavaScript简史:Netscape Navigator中的JavaScript与Inter ...

  5. Spirng学习指南-第一章(完)

    Spring学习指南 内容提要 ​ Spring框架是以简化J2EE应用程序开发为特定目标而创建的,是当前最流行的Java开发框架. ​ 本书从介绍Spring框架入手,针对Spring4.3和Jav ...

  6. Java学习笔记 第一章 入门<转>

    第一章 JAVA入门 一.基础常识 1.软件开发 什么是软件? 软件:一系列按照特定顺序组织的计算机数据和指令的集合 系统软件:DOS,Windows,Linux 应用软件:扫雷.QQ.迅雷 什么是开 ...

  7. c#高级编程第七版 学习笔记 第一章 .NET体系结构

    第一章      .NET体系结构 本章内容: 编译和运行面向.NET的代码 Microsoft中间语言(Microsoft Intermediate Language,MSIL或简称IL)的优点 值 ...

  8. [HeadFirst-JSPServlet学习笔记][第一章:前言与概述]

    第一章 前言与概述 web服务器做什么? 答:接收客户请求,然后向客户返回结果 web客户做什么? 答:此处客户指浏览器,web客户允许用户请求服务器上的某个资源,并向用户展现请求的结果. html ...

  9. 《跟我学Shiro》学习笔记 第一章:Shiro简介

    前言 现在在学习Shiro,参照着张开涛老师的博客进行学习,然后自己写博客记录一下学习中的知识点,一来可以加深理解,二来以后遗忘了可以查阅.没有学习过Shiro的小伙伴,也可以和我一起学习,大家共同进 ...

随机推荐

  1. 重回博客 谈一谈Node中的异步和单线程

    重回博客,这个帐号之前注册后就只发了一篇博客.听朋友建议,决定一周两次更新. 第一篇谈论一下最近想的比较多的异步的问题. 传统多线程异步 传统的异步是多线程的,当要同时做两件事的时候,他们是执行在不同 ...

  2. Archlinux 的U盘自动装载(一)udisks

    为什么要用 udisks + udevil 方式自动装载 U 盘? Gnome 和 KDE 下的很多文件管理器都有自己的U盘装载方案.但我的应用环境为: Archlinux,xorg,Openbox, ...

  3. wxWidgets 的 Linux / Windows 混合开发环境

    目标 建立一个开发 GUI 交互界面程序的环境,要求: 以 C/C++ 为主要程序设计语言. 最好能充分利用已有的 MFC 开发经验. 以 Linux 为主要开发环境.可以在 Windows 中编译并 ...

  4. eclipse清除运行Maven build...后积累的配置项

      1.使用eclipse运行maven命令,经常会积累很多的配置项. 2.清理配置项同样在 Run As ---> Run configurations...中.     

  5. 老司机实战Windows Server Docker:1 初体验之各种填坑

    前言 Windows Server 2016正式版发布已经有近半年时间了,除了看到携程的同学分享了一些Windows Server Docker的实践经验,网上比较深入的资料,不管是中文或英文的,都还 ...

  6. Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager)

    Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager) 本篇主要讲解iOS开发中的网络监控 前言 在开发中,有时候我们需要获取这些信息: 手机是否联网 ...

  7. MySQL入门(下)

    1. 课程回顾(很清晰明了) mysql基础 1)mysql存储结构: 数据库 -> 表 -> 数据   sql语句 2)管理数据库: 增加: create database 数据库 de ...

  8. XShell连接本地Ubuntu虚拟机

    VMware Workstation 安装好本地虚拟机之后,直接在虚拟机上敲命令着实不方便. 这个时候我们就需要一个远程命令工具来管理虚拟机,这里推荐使用XShell远程命令行工具 1.下载工具 直接 ...

  9. WP8.1小梦词典开发1:金山词霸API使用

    原文出自:http://www.bcmeng.com/windows-phone-api/ 今天开始小梦给大家分享一下小梦词典开发中几个关键问题,首先我们来看查词功能的实现.小梦词典的查词功能是通过金 ...

  10. java学习笔记 --- 面向对象3

    一.创建对象是做了些什么事情? 图解: 二.static关键字 (1)静态的意思.可以修饰成员变量和成员方法. (2)静态的特点: 1.静态是随着类的加载就加载了.也是随着类的消失而消失了. 2.静态 ...