C语言简介与第一个C语言程序
一、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语言程序的更多相关文章
- 【Go语言系列】1.4、GO语言简介:第一个Go语言程序
接下来我们来编写第一个 Go 程序 hello.go(Go 语言源文件的扩展是 .go),代码如下: // 声明 main 包 package main import ( "fmt" ...
- C语言学习-01第一个C语言程序
一 C语言的历史 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供 ...
- 【Go语言系列】1.1、GO语言简介:什么是GO语言
一.Go的起源 Go语言的所有设计者都说,设计Go语言是因为 C++ 给他们带来了挫败感.在 Google I/O 2012 的 Go 设计小组见面会上,Rob Pike 是这样说的: 我们做了大量的 ...
- GO语言练习:第一个Go语言工程--排序
1.代码 2.编译 3.运行 1.代码框架 /home/fengbo/sorter $ tree . ├── bin ├── pkg ├── readme.txt └── src ├── algori ...
- 第一章.C语言简介
C语言第一章 C语言简介 目录 一.C语言介绍 二.C语言特点 三.Hello World 四.转义符 五.占位符 六.俄罗斯方块游戏 七.文件下载 一.C语言介绍 C是一种通用的编程语言,广泛用 ...
- 00-Java 语言简介
一.开发环境搭建: (一).JAVA语言简介: 1.JAVA语言简介: (1)什么是JAVA:Java是一种计算机编程语言.它是一种计算机编程语言.它是一种软件开发平台.它是一种软件运行平台.它是一种 ...
- Fastjson是一个Java语言编写的高性能功能完善的JSON库。
简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库. 高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson. ...
- lua脚本之lua语言简介以及lua的安装
本博主不擅于进行文字创作,所以,相当一部分文字皆复制于其他博文.还希望能够得到谅解. 一.Lua语言简介 Lua是一个免费的开源软件,可以免费用于科研及商业.Lua具有一个专家团队在维护和升级,其设 ...
- 第一个WPF应用程序
WPF 全称为 Windows Presentation Foundation. 核心特性: WPF使用一种新的XAML(Extensible Application Markup Language) ...
随机推荐
- 实战Git命令(界面操作+命令行)
先说明下公司的发版步骤,当需要开发一个新的功能,先从master分支中拉出一个自己的分支a(假设分支为a),在a分支开发功能完后,需要切换到dev分支,然后把自己的分支a合到dev分支,部署测试环境让 ...
- netty之EventLoop源码分析
我们在讲解服务端和客户端时经常会看到提交一个任务到channel对应的EventLoop上,后续的io事件监听和任务执行都在EventLoop完成,可以说EventLoop是netty最核心的组件,我 ...
- Docker-ce Centos8 笔记二:常见问题
- 剑指offer 面试题3:数组中重复的数字
题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...
- LeetCode448-数组中消失的数字
题目 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能 ...
- 你都用过SpringCloud的哪些组件,它们的原理是什么?
前言 看到文章的题目了吗?就是这么抽象和笼统的一个问题,确实是我面试中真实被问到的,某共享货车平台的真实面试问题. SpringCloud确实是用过,但是那是三四年前了,那个时候SpringCloud ...
- Linux 安装JDK配置环境(rpm安装和压缩版安装)
jdk安装 (rpm安装) jdk下载地址: https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html ...
- ctfhub技能树—RCE—命令注入
打开靶机 查看页面信息 输入127.0.0.1进行测试 构造payload 127.0.0.1&ls 查看文件内容信息 127.0.0.1 & cat 179852221619745. ...
- Linux下nginx的安装以及环境配置
参考链接 https://blog.csdn.net/qq_42815754/article/details/82980326 环境: centos7 .nginx-1.9.14 1.下载 并解压 ...
- 1V转5V芯片,三个元件即可组成完整的稳压方案
1V低电压要转成5V的电压,需要1V转5V的芯片,由于1V输入,所以不需要指望能输出多大的电流,压差和1V的供电电压意味着供电电流也是无法做大的了.一般1V转5V的输出电流在0MA-100mA,一般6 ...