一、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. 阿里云centos7[linux]安装nginx

    标题 说明 服务器版本 Centos7 x64 nginx版本 1.19.6 作者 walton 一.准备 创建安装包目录并进入 mkdir /usr/dev/nginx cd /usr/dev/ng ...

  2. Docker-ce Centos8 笔记二:常见问题

  3. Flutter 基础组件:文本、字体样式

    // 文本.字体样式 import 'package:flutter/material.dart'; class TextFontStyle extends StatelessWidget { // ...

  4. leetcode1637-两点之间不包括任何点的最宽垂直面积

    题目 给你 n 个二维平面上的点 points ,其中 points[i] = [xi, yi] ,请你返回两点之间内部不包含任何点的 最宽垂直面积 的宽度. 垂直面积 的定义是固定宽度,而 y 轴上 ...

  5. 【网络】trunk和vlan配置

    篇一 : trunk配置和vlan配置 trunk配置 Switch>enable ? ? ?//进入特权模式 Switch#conf t ? ? ?//进入配置模式 Switch(config ...

  6. 使用smartform打印表单

    昨天写了个smartform打印表单,在开发完成,在测试机测试OK,传到生产机,出现严重问题!无法打印,干脆就是无法调用打印图形界面,进入SMARTFORM事物,查看这个表单,发现,居然公司的LOGO ...

  7. ALV中layout布局控制详解

    参数的结构为SLIS_LAYOUT_ALV.结构中比较常用的字段如下: no_colhead      隐藏列标题          值为X或空 no_hotspot     headings不作为热 ...

  8. 01-CentOS 8.1安装 Docker

    官方参考地址:https://docs.docker.com/install/linux/docker-ce/centos/ 里面包含包下载地址:https://download.docker.com ...

  9. CNN可视化技术总结(一)--特征图可视化

    导言: 在CV很多方向所谓改进模型,改进网络,都是在按照人的主观思想在改进,常常在说CNN的本质是提取特征,但并不知道它提取了什么特征,哪些区域对于识别真正起作用,也不知道网络是根据什么得出了分类结果 ...

  10. 请谨慎使用 avaliable 方法来申请缓冲区

    问题 今天开始尝试用 Java 写 http 服务器,开局就遇到 Bug. 我先写了一个多线程的.BIO 的 http 服务器,其中接收请求的部分,会将请求的第一行打印出来. 下面是浏览器发出的请求和 ...