1、第2章 Linux C程序设计简介,典型的UNIX/Linux操作系统支持多种高级语言,这些高级语言包括解释型语言和编译型语言,如C、C+、Java、Fortran、LISP、Pascal等。而Linux操作系统上的大部分应用程序都是基于C语言开发的(其实,Linux操作系统本身也是用C语言开发的)。Linux平台上拥有许多用于程序的生成及分析的工具,包括用于编辑和缩进代码、编译与连接程序、处理模块化程序、创建程序库、剖析代码、检验代码可移植性、源代码管理、调试跟踪及检测运行效率的工具。本章内容将简单介绍一下Linux平台上常用的C语言开发工具。,为什么要学C语言?,计算机语言是全国高校工科类
2、专业均开设的公共基础课,是适应现代化技术开设的课程; 为后续课程打下基础,我们后面要开设数据结构,数据库原理等课程会用到C语言知识; 为后面考计算机等级考试,毕业找工作奠定基础; 对软件开发感兴趣的,毕业后也可从事软件开发工作 C语言是学习其他语言的基础,也是必须掌握的一门语言。,信息交流(地位平等) (有思维、推理能力) 语法规则、句法规则灵活 (可省略、颠倒) 如:走,去晒太阳!去晒太阳,走! 表达方式多样,C语言与自然语言的比较,C语言人机对话(命令方式) (无思维、推理能力,具有计算与逻辑判断能力) 语法规则、句法规则固定 (一般不可省略、颠倒,必须按部就班) 如:scanf(“%d,
3、%d”, 算法多样,自然语言,1.1 C语言发展历史 程序设计语言的发展,CPU指令系统,由0、1序列构成的指令码组成 如:10000000 加10010000 减,用助记符号描述的指令系统 如 ADD A, B,面向机器的语言,程序设计是数据被加工的过程,客观世界可以分类,对象是类的实例 对象是数据和方法的封装 对象间通过发送和接受消息发生联系,程序设计关键是定义类,并由类派生对象,00000000 00000100 0000000000000000 01011110 00001100 11000010 000000000000001011101111 00010110 0000000000
4、00010111101111 10011110 0000000000001011 11111000 10101101 11011111 000000000001001001100010 11011111 0000000000010101 11101111 00000010 11111011 0000000000010111 11110100 10101101 11011111 0000000000011110 00000011 10100010 11011111 0000000000100001 11101111 00000010 11111011 0000000000100100 01111
5、110 11110100 10101101 11111000 10101110 11000101 0000000000101011 00000110 10100010 11111011 0000000000110001 11101111 00000010 11111011 000000000011010000000100 000000000011110100000100 0000000000111101,Program 1,机器语言程序,1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16,Entry main, m subl2 #12,sp jsb C$MAIN_AR
6、GS movab $CHAR_STRING_CONpushal -8(fp) pushal (r2) calls #2,read pushal -12(fp) pushal 3(r2) calls #2,read mull3 -8(fp),-12(fp),- pushal 6(r2) calls #2,print clrl r0 ret,Program 2,汇编语言程序,1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16,/* This program reads two integer numbers from the keyboard and prints the
7、ir product. */ #include int main (void) / Local Declarations int number1;int number2;int result; / Statements scanf(“%d”, number1);scanf(“%d”, number2);result = number1 * number2;printf(“%d*%d=%dn”,numer1,number2, result);return 0; / main,Program 3,C 语言程序,1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
8、,高级语言,面向过程语言 FORTRAN COBOL Pascal C Ada 面向对象语言 C+ Java 特殊的语言 HTML PERL SQL,TIOBE编程语言排行榜,http:/ Language(组合语言),时间:19721973 地点:美国贝尔实验室 设计人: Ken.Thompson和Dennis.M.Ritchie,Thompson(左)和Ritchie(中)于1999 年接受当时美国总统克林顿授予的国家技术勋章,C语言发展过程 目的:UNIX操作系统 汇编语言程序对计算机硬件的依赖性高,可读性和可移植性很差; 一般的高级语言虽然克服了汇编语言的一些不足,却难以实现对计算机硬
9、件的直接操作,目前流行的C语言编译系统,面向过程的: MS C,Turbo C,Quick C, 面向对象的: Borland C+,Turbo C+, 面向对象的可视化: Visual C+, ,1.2 C语言特点 语言简洁、紧凑、灵活 运算符和数据类型丰富 程序设计结构化、模块化 允许直接对硬件进行操作 生成目标代码质量高 可移植性好,32个关键字:(由系统定义,不能重作其它定义) auto break case char const continue default do double else enum extern float for goto if int long registe
10、r return short signed sizeof static struct switch typedef unsigned union void volatile while,9种控制语句: if( )else for( ) while( ) dowhile( ) continue break switch goto return,例 C语言与Pascal语言比较 C语言 Pascal语言 含义 BEGIN.END 复合语句 if(e) s; IF(e) THEN s 条件语句 int i ; VAR i:INTEGER 定义i为整型变量 int a10; VAR a:ARRAY11
11、0 OF INTEGER 定义整型数组a int f(); FUNCTION f():INTEGER 定义f为返值整型的函数 int *p; VAR p:INTEGER 定义p为指向整型变量的指针 i+= 2; i=i+2 赋值i+2i i+,+i; i=i+1 i自增值结论:C比 Pascal简练,源程序短。,34种运算符: 算术运算符:+ - * / % + - 关系运算符: = != 逻辑运算符:! & | 位运算符 : | & 赋值运算符:= 及其扩展 条件运算符:?: 逗号运算符:, 指针运算符:* & 求字节数 :sizeof 强制类型转换:(类型) 分量运算符:. - 下标运算符
12、: 其它 : ( ) -,例1.1 第一个程序 Hello,World!,/* example1.1 The first C Program*/ #include main() printf(“Hello,World!”); ,输出: Hello,World!,程序说明: (1)stdio.h,是C语言的标准I/O库的头文件。 (2) main 表示主函数,函数体用 和括起来 “;”为语句结束标志 。 (3)printf为C语言的输出函数。,1.3 C程序格式和结构特点,例1.2 求两数之和/*求两数之和*/ #include void main( ) int a,b,sum; /*声明,定义
13、变量为整型*/ /*以下3行为执行语句 */ a=123; b=456; sum=a+b; printf(sum is %dn,sum); ,scanf( “%d,%d”, ,/* example1.2 calculate the sum of a and b*/ #include /* This is the main program */ main() int a,b,sum;a=10;b=24;sum=add(a,b);printf(”sum= %dn“,sum); /* This function calculates the sum of x and y */ int add(int
14、 x,int y) int z;z=x+y;return(z); ,运行结果: sum=34,格式特点 习惯用小写字母,大小写敏感 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式,main( ) . ,main( ) int i , j , sum;sum=0;for(i=1; i10;i+)for(j=1;j10;j+)sum+=i*j ;printf(“%dn”,sum); ,优秀程序员的素质之一: 使用TAB缩进 对齐 有足够的注释 有合适的空行,结构特点 函数与主函数 程序由一个或多个函数组成 必须有且只能有一个主函数main() 程序执行从main开始,在main中结
15、束,其它函数通过调用得以执行。 程序语句 C程序由语句组成 用“;”作为语句终止符 注释 /* */为注释,不能嵌套 不产生编译代码,例: /*This is the main /* of example1.1*/ */,编译预处理命令,1.4 C程序的上机步骤,1.上机环境 常用的有Turbo C 2.0、Visual C+6.0等。 Turbo C 2.0 : DOS环境下的集成环境。 Visual C+ 6.0:支持C/C+编程,windows环境。计算机界公认的优秀的应用开发工具之一 。,2. C程序开发步骤,程序代码的录入, 生成源程序*.c,语法分析查错,翻译 生成目标程序*.ob
16、j,与其它目标程序或库 链接装配,生成可执行 程序*.exe,TC 2.0开发环境,主控菜单 文件操作FILE :New Load Save Write to 编辑操作EDIT:插入/修改 块 查找/替换 编译链接COMPILE LINK MAKE 执行RUN 退出Turbo C Alt +x 帮助Help F1,基本操作: F2-保存 F3-打开 Alt+F9 -编译 Ctrl+F9-运行 Alt+F5 -查看结果,常用热键,程序调试: F8-Step over F7-Trace into F4-Goto Cursor Ctrl+F7-Add Watch Ctrl+F8-Toggle Breakpoint Ctrl+F2-Program Reset,1、启动Visual C+6.0应用程序 2、建立一个新的工作空间,Visual C+6.0上机环境,3、建立一个新的工程,4、建立源文件,5、编辑C源文件,6、编译连接应用程序,7、执行应用程序,8、关闭工作区,Implementation Phase:,工件区窗口(workspace),编辑窗口 Editor,输出窗口(output),Compiler,Linker,Running,