程序设计语言与C语言发展

news2024/11/18 20:16:49

我们今天开始 来讲 C语言 程序设计
在这里插入图片描述
首先 我们来看一下 它的课程地位
在这里插入图片描述
对于 计算机科学等相关专业 我们这样安排
第一学期 学习 C语言基础
第二学期 学习 C语言程序进阶
第三学期 学习 一门面向对象语言 例如 java c++ python等
第四学期 学习 数据结果
第五学期 操作系统
最后 学习 编译原理 算法分析等课程

上图 将C语言相关课程标红 因为 C语言是最重要的专业基础课

第一张 C语言概述
主要包括
程序设计语言及C语言的发展
C语言初识及简单的C语言程序
在这里插入图片描述
首先 人与计算机 1997年 5月 国际象棋冠军 卡斯帕罗夫 与 巨型计算机 深蓝来了一次人机较量
在这里插入图片描述
最后深蓝计算机 获胜了

2011年 举办的 第一次 人机智力问答对决
IBM的超级电脑 Watson 对决 哥伦比亚广播公司的益智问答节目 (危险边缘) 的总冠军
在这里插入图片描述
奖金高达 一百万美元

面对主持人 提出的各领域 稀奇古怪的问题 Watson 以大比分领先
不是人喃不聪明 而是电脑太强大

电脑的胜利 本质上 也是人脑的胜利 是无数人类专家智慧的结晶

因为 计算机拥有强大的存储能力
可以根据既定的程序 进行高效的运算

1 程序设计语言

首先 我们要提到 美籍匈牙利科学家冯·诺依曼–“计算机之父”
二十世纪三十年代,人们被十进制这个人类习惯的计数方法所困扰。那时以研制模拟计算机的呼声更为响亮和有力
以研制模拟计算机的呼声更为响亮和有力。
冯·诺依曼主张抛弃十进制,采用二进制作为数字计算机的数制基础。
尤为重要的是 他提出了 (存储程序) 的思想 就是 预先编制程序 将程序存储到计算机内部 自动运行
这是计算机发展的里程碑 标志着 计算机时代的开始

程序与指令

首先 什么是程序?
程序一词来自生活,通常指完成某些事务的一种既定方式和过程
在日常生活中,可以将程序看成对一系列动作的执行过程的描述

就好像 把大象装冰箱 需要几步一样 从第一到最后一步这个既定的 动作过程 就叫程序
在这里插入图片描述
而计算机中 程序就是 为了解决某些问题 或 实现某些操作 编写的一系列有序的指令集合

那么 问题又来到什么是指令呢?

就好像 老板命令秘书 做什么 做什么 这就是指令

而 程序中的指令 就是 程序员 给计算机下达的任务指令
完成程序的功能 就是 这些指令被逐条执行

所以 程序 就是 为了让计算机完成某些操作 而编写的一系列有序指令集合

而 计算机处理一套业务 例如
52 + 33 + 543 =
例如 这个算式
计算机程序的处理就是
Input a; 输入 第一个数据值 到a单元格中
Input b; 输入 第二个数据值 到b单元格中
Input c; 输入 第三个数据值 到c单元格中
add a b d; 将 a b 相加的值存入d中
add c d d 将 c d 相加的值 存入d中
Output d; 输出d的值

可能 大家会觉得麻烦 但其实 这一句是简化后的汇编语言

程序设计语言的发展

它分为 这样几个阶段
最开始 计算机 机器语言程序 这个时候 程序要就是 通过 0 1串进行编程
在这里插入图片描述
之后是汇编语言 相对加入了 MOV ADD 等关键字 更加方便理解
在这里插入图片描述
目前市场提供我们使用的 都是高级语言 但这些语言 计算机是看不懂的
在这里插入图片描述
需要用编译系统 帮助计算机翻译代码

总结一下 计算机语言发展 有一下几个阶段
机器语言
汇编语言
高级语言
在这里插入图片描述
而高级语言 分为两大类 面向过程编程 面向对象编程 两大类

常用的高级语言也是数不胜数
在这里插入图片描述

C语言的发展与特点

在这里插入图片描述
20世纪70年代初期,在贝尔实验室开发出的一种广为使用的编程语言

说到C语言 必须提起两个人
Ken Thompson : Unix时代的开创者
Dennis M. Ritchie : C语言之父
在这里插入图片描述

C与UNIX的诞生

1969年,ken设计了一款电子游戏–“Space Travel”
游戏在一台废弃的PDP-7小型机上开发
Ken决定先给PDP-7开发一个新的操作系统,命名为“UNIX”
在开发第一版Unix的过程中,Ken还开发出一种新的语言,即C语言的前身–B语言,
Dennis M.Ritchie主动加入,在B语言的基础上设计出了“C语言”重写了 Unix。
旧版的Unix与C语言完美结合在一起产生了新的可移植的Unix系统。
开启了轰轰烈烈的C与Unix的传奇时代。

1983年,因为UNIX和C语言的巨大成功,ken和dmr共同获得当年度的计算机界最高奖, 图灵奖

ken和dmr 被尊为 黑客的鼻祖

黑客故事:贝尔实验室的高手们发现Ken总是很容易就取得了他们的帐户权限,为此郁闷的十几年,无法破解。
这里 所指的黑客 并不是如今 我们所说的黑客
他们未对UNIX和C语言申请任何版权或专利
UNIX和C语言是黑客世界里两大神器

当时 所指的黑客精神是
做事情以兴趣为出发点,并不在乎未来会怎样
极富创造力和钻研精神,喜欢迎接挑战
乐于分享,不计回报

C语言的发展

起源来讲 它是 Unix的副产品
它的标准化 是因为
准化
C语言不断发展扩充,出现很多“方言”,美国国家标准化协会开始制定了新的C语言标准。
其中包括 C89标准;C99标准

C语言对现代编程语言有着极大地影响力,许多现代编程语言都借鉴了大量C语言的特性,
如:C++、JAVA、C#、Perl、Python等

虽然 C语言已经非常久远 但在各时期报表 基于C语言是想的语言 以及C语言本身 数据都是名列前茅
C语言的优缺点如下示意图
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1537548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【教程】PLSQL查看表属性乱码解决方法

一、前言 PL/SQL是Oracle数据库的编程语言,用于编写存储过程、触发器、函数等。 今天用plsql想查看表的属性,看看各个字段的注释,可是打开一看,居然是乱码的,如下面这样 如果在使用PL/SQL查看表属性时出现乱码&…

(一)基于IDEA的JAVA基础5

Scanner的使用 使用scanner可以接收键盘上输入的数据, Scanner inputnew Scanner(System.in); 导包的方式: 什么是导包,导入的是jdk提供的java开发工具包,我们建一个java文件,psvm快捷输入后,打上new S…

预约陪诊APP定制开发方案以及流程详解

随着医疗行业的快速发展,越来越多的人开始关注自己的健康问题。然而,在看病的过程中,很多人都会感到孤独和无助。为了解决这个问题,许多医疗机构和企业推出了预约陪诊APP,旨在为用户提供一个安全、便捷的陪伴服务。本文将详细介绍…

基于Java的厦门旅游电子商务预订系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 景点类型模块2.2 景点档案模块2.3 酒店管理模块2.4 美食管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学生表3.2.2 学生表3.2.3 学生表3.2.4 学生表 四、系统展示五、核心代码5.1 新增景点类型5.2 查询推荐的…

【漏洞复现】金和OA IncentivePlanFulfill.aspx SQL注入漏洞

0x01 产品简介 金和OA协同办公管理系统C6软件(简称金和OA),本着简单、适用、高效的原则,贴合企事业单位的实际需求,实行通用化、标准化、智能化、人性化的产品设计,充分体现企事业单位规范管理、提高办公效…

基于Springboot的农产品销售管理系统+数据库+免费远程调试

项目介绍: 基于Springboot的农产品销售管理系统。Javaee项目,springboot项目。采用M(model)V(view)C(controller)三层体系结构,通过SpringMvc SpringBootMybatisVuemaven来实现。MyS…

大数据--hdfs--java编程

环境: virtualbox ubantu1604 Linux idea社区版2023 jdk1.8 hadoop相关依赖 使用java操作 1. 判断/user/stu/input/test.txt文件是否存在,存在则读出文件内容,打印在控制台上。反之,输出“文件不存在”。 package abc;impo…

5 线程网格、线程块以及线程(2)

5.3 线程块 即使有512个线程,也不能让你在GPU上斩获颇丰。对很多在CPU上编程的编程人员来说,这似乎是一个很大的数量,但其实在GPU上编程的时候,512个线程并不一定会让你获得很高的效益,对于GPU而言,通常我…

PTA L2-026 小字辈

本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,…

使用阿里CICD流水线打包Java项目到阿里的docker镜像私仓,并自动部署到服务器启动服务

文章目录 使用阿里CICD流水线打包Java项目到阿里的docker镜像私仓,并自动部署到服务器启动服务1、功能原理实现2、将自己的Java项目通过Git上传到阿里的代码仓库中,也可以通过绑定Gitee或者GitHub账号进行导入3、创建自己的阿里云镜像私仓3、进入阿里的C…

【SpringBoot】如何定义接口

定义get接口 使用GetMapping定义一个基本get接口 RestController //表示定义一个json格式返回给前端 public class test {private Map<String,Object> map new HashMap<>();GetMapping(value "/test") //定义接口路径public Object userInfo(Strin…

C语言自定义类型结构体

variable adj.易变的&#xff0c;多变的&#xff1b;时好时坏的&#xff1b;可变的&#xff0c;可调节的&#xff1b; &#xff08;数&#xff09;&#xff08;数字&#xff09;变量的&#xff1b;&#xff08;植&#xff0c;动&#xff09;变异的&#xff0c;变型的&#xff1…

普发Pfeiffer分子泵TPH2101PUP/PCCT安装使用维护说明

普发Pfeiffer分子泵TPH2101PUP/PCCT安装使用维护说明

代码随想录算法训练营第31天| 455.分发饼干、376. 摆动序列、53. 最大子序和

455.分发饼干 题目链接&#xff1a;分发饼干 题目描述&#xff1a;假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最…

FloodFill算法——图像渲染

文章目录 题目解析题目内容解读 算法解析代码解析 题目解析 首先我们先来看看题目&#xff1a;图像渲染 题目内容解读 我们来解读一下题目内容这个题目的意思其实就是有一个如下图所示的二维矩阵 这个题目的意思在这类题目中也是非常标准的&#xff0c;就是给我们一个二维数…

docker的部署与安装以及部署一个docker(容器)应用及docker容器常出现的问题

docker 架构图 一、docker的部署与安装 1、在 CentOS 上安装 Docker 移除旧版本&#xff08;如果有的话&#xff09;&#xff1a;sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-…

用vscode调试cpp程序相关操作记录

需要在服务器上用vscode调试cpp程序&#xff0c;写此记录launch.json配置和相关步骤错误导致的问题 1.在需要运行程序的服务器上安装C/C Extension Pack&#xff08;之前只在本地装了&#xff09;&#xff0c;可以支持调试C/C应用程序(设置断点&#xff0c;单步执行&#xff0c…

爱帮供应链邀您参观2024杭州快递物流供应链与技术装备展览会

2024年7月8-10日 | 杭州国际博览中心 同期举办&#xff1a;2024中国数字物流技术与应用展 2024国际电商物流包装产业展 2024新能源商用车、物流车展 展会介绍 本届展会致力于全面展示快递物流上下游领域的创新解决方案&#xff0c;涵盖快递物流供应链、智能装备、AGV机器人…

正信晟锦:多年不联系的好友借钱怎么办

多年不见的老友突然出现&#xff0c;带着迫切的求助信息——借钱。面对这样的请求&#xff0c;我们该如何应对? 当一个多年未联络的朋友突然出现请求借款时&#xff0c;这确实是一个棘手的问题。一方面&#xff0c;我们可能对旧日友情存有怀念与不舍;另一方面&#xff0c;时间…

Windows10安装SSH

Linux运维工具-ywtool 目录 1. 打开设置2. 应用3.管理可选功能4.添加功能5.安装OpenSSH服务器6.测试是否安装成功 1. 打开设置 windows桌面按下"win l"键调出"设置"2. 应用 点击"应用"3.管理可选功能 点击"管理可选功能"4.添加功能…