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 |