一、C语言产生的背景

C语言的出现与操作系统Unix是分不开的。Unix是1969年由美国贝尔实验室的K. Thompson和D. M. Ritchie两人用汇编语言编写,它存在许多不足,因此,需要一种新的语言重新编写Unix。

A(Algol)语言 出现于1960年,是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。---》CPL语言 1963年由剑桥大学推出,它比A语言更接近硬件,但规模较大,难以实现。---》BCPL语言 1967年由剑桥大学推出,它对CPL语言做了较大的简化。---》B语言 1970年由美国贝尔实验室对BCPL进一步简化,其特点是简单且非常接近硬件。---》

C语言 1972年至1973,贝尔实验室的D. M. Ritchie在B语言的基础上设计出了C语言。C语言既保持了BCPL语言和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,无数据类型等)。

1973,K. Thompson和D. M. Ritchie两人再次合作,将Unix系统的90%内容用C语言改写。 1977年出现了不依赖于具体机器的C语言编译文本,使C移植到其他机器更容易,从而推动了Unix在各种机器上的实现;而Unix的日益广泛使用也推动了C语言的发展。

二、C语言标准及常用的版本

(1)、1978年Brian W.Kernighan和Dnnis M.Ritchie合著了《The C Programming Language》一书,成为后来广泛使用的C语言基础,成为标准C。

(2)、1983年美国国家标准协会(ANSI)制定了C语言的新标准,称为ANSI C。

(3)、1987年ANSI又公布了新标准,并于1990年被国际标准化组织ISO接受成为ISO C的标准。 常用的C语言版本:TURBO C ,BORLAND C,QUICK C,MICROSOFT C等。

三、C语言的特点

(1)、语言简洁、紧凑、灵活; 运算符丰富; 数据类型丰富;

(2)、具有结构化控制语句,便于实现程序的模块化; 语法限制不太严格,程序设计自由度大;

(3)、能够直接访问物理部件,能实现汇编语言的大部分功能。既有高级语言的特点,又有低级语言的许多功能;

(4)、生成的目标代码质量高,程序执行速度快 ;

(5)、可移植性好。

四、C语言的关键字

auto   break   case   char   const   continue   default   do   double   else   enum   extern   float   for   goto   if   int   long   register   return   short   signed   sizeof   static   struct   switch   typedef   unsigned   union   void   volatile   while

五、C语言的控制语句

 if( )~else~  for( )~   while( )~   do~while( )   continue   break   switch   goto   return

六、C语言的运算符

算术运算符:+ - * / % ++ --   关系运算符:< <= == > >= !=   逻辑运算符:! && ||   位运算符 :<< >> ~ | ^ &   赋值运算符:=   及其扩展 条件运算符:?:

逗号运算符:,   指针运算符:* &   求字节数 :sizeof   强制类型转换:(类型)   分量运算符:. ->   下标运算符:[]   其它 :( ) -

七、C语言数据类型

八、第一个C程序

1 #include <stdio.h>//头文件
2 int main()//主函数
3 {
4 printf("Hello World!\n"); //输出函数
5 return 0;
6 }

(1)、C语言由一系列函数组成,这些函数中必须有一个且只能有一个以main为名的函数,这个函数称为主函数,整个程序从主函数开始执行。此程序只有一个主函数而无其它函数。 (2)、程序第一行中的main为主函数的函数名,main后的一对小括号是函数的标志,不能省略。

(3)、第4行中的printf是c语言的格式输出函数,它在屏幕上显示出括号内双引号之间的字符串,其中“\n”代表换行符。注意第4行末尾的分号,它是一个语句结束的标志。

(4)、第3行和第6行是一对大括弧,在这里表示函数体的开始和结束,一个函数的所有执行语句都写在函数体中。

 九、示例

(一)、求两数之和。

#include <stdio.h>
int main()
{
int i,j,sun;//定义了三个整形变量
i = 10;//给变量i赋值为10
j = 20;/*给变量j赋值为20*/
sum = i + j;//将i+ j的和赋值给sum
printf("i + j = %d\n",sum);//打印sum的结果
return 0;
}

(1)、这个程序只有一个主函数组成。

(2)、函数体包括多条语句,每条语句都以分号(;)作结束标志。

(3)、“=”是赋值运算符,“%d”是格式字符串,说明变量sum的按十进制整数的形式输出。

(4)、由“/*”与“*/”之间的内容构成C语言程序的注释部分,//后面的内容也是注释部分,注释是写给人看的而不是计算机看的;

(5)、用预处理命令#include可以包含有关文件的信息。

(二)、示例

 1 #include <stdio.h>//头文件,预处理命令
2 int fun(int i,int j)//自定义函数
3 { int sum;
4 sum=i+j;
5 return(sum);
6 }
7 int main()//主函数
8 {
9 int a,b,sum;
10 a=10;
11 b=24;
12 sum=fun(a,b);
13 printf(”sum= %d\n",sum);
14 return 0;
15 }

运行结果为34。

结构特点 程序由一个或多个函数组成;

每个函数完成特定的操作,每个程序必须有且只能有一个主函数main();

一个函数有两个部分 1、函数说明:包括函数名、函数类型、函数的参数数类型。 2、函数体:包括变量定义部分和执行部分;

程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行;

C程序由语句组成 语句的书写格式很自由,一行内可以写多个语句,一个语句也可以分写在多行上;

用“;”作为语句终止符 C语言本身没有输入输出语句 用输入库函数scanf()和输出库函数printf()实现输入输出;

注释 //,/* */为注释,注释不产生编译代码。

十、C语言程序开发步骤

编辑 ---》 编译 ---》 连接 ---》 执行

程序代码的录入, 生成源程序*.c

语法分析查错,翻译 生成目标程序*.obj

与其它目标程序或库 链接装配,生成可执行 程序*.exe

  源程序 目标程序 可执行程序
内容 程序设计语言 机器语言 机器语言
可执行 不可以 不可以 可以
文件名后缀 .c .obj .exe

C语言简介与第一个C语言程序的更多相关文章

  1. 【Go语言系列】1.4、GO语言简介:第一个Go语言程序

    接下来我们来编写第一个 Go 程序 hello.go(Go 语言源文件的扩展是 .go),代码如下: // 声明 main 包 package main import ( "fmt" ...

  2. C语言学习-01第一个C语言程序

    一 C语言的历史 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供 ...

  3. 【Go语言系列】1.1、GO语言简介:什么是GO语言

    一.Go的起源 Go语言的所有设计者都说,设计Go语言是因为 C++ 给他们带来了挫败感.在 Google I/O 2012 的 Go 设计小组见面会上,Rob Pike 是这样说的: 我们做了大量的 ...

  4. GO语言练习:第一个Go语言工程--排序

    1.代码 2.编译 3.运行 1.代码框架 /home/fengbo/sorter $ tree . ├── bin ├── pkg ├── readme.txt └── src ├── algori ...

  5. 第一章.C语言简介

    C语言第一章 C语言简介   目录 一.C语言介绍 二.C语言特点 三.Hello World 四.转义符 五.占位符 六.俄罗斯方块游戏 七.文件下载 一.C语言介绍 C是一种通用的编程语言,广泛用 ...

  6. 00-Java 语言简介

    一.开发环境搭建: (一).JAVA语言简介: 1.JAVA语言简介: (1)什么是JAVA:Java是一种计算机编程语言.它是一种计算机编程语言.它是一种软件开发平台.它是一种软件运行平台.它是一种 ...

  7. Fastjson是一个Java语言编写的高性能功能完善的JSON库。

    简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库. 高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson. ...

  8. lua脚本之lua语言简介以及lua的安装

    本博主不擅于进行文字创作,所以,相当一部分文字皆复制于其他博文.还希望能够得到谅解.  一.Lua语言简介 Lua是一个免费的开源软件,可以免费用于科研及商业.Lua具有一个专家团队在维护和升级,其设 ...

  9. 第一个WPF应用程序

    WPF 全称为 Windows Presentation Foundation. 核心特性: WPF使用一种新的XAML(Extensible Application Markup Language) ...

随机推荐

  1. COW技术重置虚拟机

    最近使用COW技术做虚拟机重置,结果成功了,特地来给大家分享一下这次的成果! 文章目录 一.COW技术是什么? 二.重置虚拟机步骤 总结 往期杂文 一.COW技术是什么? Copy On Write, ...

  2. ArrayList源码解析--值得深读

    ArrayList源码解析 基于jdk1.8 ArrayList的定义 类注释 允许put null值,会自动扩容: size isEmpty.get.set.add等方法时间复杂度是O(1): 是非 ...

  3. python学习笔记 | 顺序表的常规操作

    ''' @author: 人人都爱小雀斑 @time: 2020/3/11 8:46 @desc: 顺序表的相关操作 ''' class SequenceList: def __init__(self ...

  4. MySQL常用的数据类型和字段属性

    数据类型 数值 tinyint 十分小的数据 1个字节 smallint 较小的数据 2个字节 mediumint 中等大小的数据 3个字节 int 标准的整数 4个字节 常用 bigint 较大的数 ...

  5. JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  6. 编年史:OI算法总结

    目录(按字典序) A --A* D --DFS找环 J --基环树 S --数位动规 --树形动规 T --Tarjan(e-DCC) --Tarjan(LCA) --Tarjan(SCC) --Ta ...

  7. ThreadLocal 原理分析

    用法 ThreadLocal<String> threadLocal = new ThreadLocal<>(); // 无初始值 ThreadLocal<String& ...

  8. uni-app开发经验分享八: 实现微信APP支付的全过程详解

    背景 最近项目使用uni-app实现微信支付,把过程简单记录下,帮助那些刚刚基础uni-app,苦于文档的同学们.整体来说实现过程和非uni-app的实现方式没有太大不同,难点就在于uni-app对于 ...

  9. Cisco之show基础命令

    #show  version:显示版本信息等 #show running-config:显示当前(活动,并不一定保存)的配置 #show interfaces fastEthernet 0/1:进入接 ...

  10. IEEE Standard 754 for Binary Floating-Point Arithmetic

    IEEE 754-2008 - IEEE Standard for Floating-Point Arithmetic https://standards.ieee.org/standard/754- ...