资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C语言第一讲,C语言程序设计与编程规范 基本语法知识,课程目标,了解C语言概述与发展 熟悉C语言程序结构与开发环境 熟练掌握C语言数据类型 熟练掌握运算符与表达式算术运算符 增量运算符 逻辑运算符 关系运算符 按位运算符 C的特殊运算符 -“?” “&”和“*”, “,” 运算符的优先级,C语言的产生与发展 在上个世纪七十年代以前,系统软件主要是用汇编语言编写的。但是汇编语言程序过分依赖于计算机硬件,其可读性和可移植性都很差;而一般的高级语言又难以实现对计算机硬件的直接操作,于是人们希望有一种兼有汇编语言和高级语言特性的中间语言。,C语言,C语言概述与发展,C语言的历史过程,C语言的最初形成 时间:19721973 地点:美国贝尔实验室 目的:UNIX操作系统 设计人: Ken.Thompson和Dennis.M.Ritchie C语言的多种版本 历史上出现过多种C 语言版本 标准C: K&R合著The C Programming Language ANSI C: 1983年 87 ANSI C: 1987年 1990年国际标准的ANSI C,标准C的形成过程,语言在产生以后,由于存在很多缺陷,C语言爱好者了对它进行了多次改进,但是在上个世纪七十年代,这些改进并没有形成大家共同遵守的规范。直到上世纪80年代初,美国国家标准化协会(ANSI),根据语言问世以来各种版本对语言的发展和扩充,制定了ANSI C标准(1989-1990年再次做了修订)。 本书以ANSI C新标准来介绍。,C语言的特点,C语言同时具有汇编语言和高级语言的优势 (1)语言简洁、紧凑,使用方便、灵活。 (2)运算符极其丰富。 (3)程序设计结构化、模块化 (4)生成的目标代码质量高,程序执行效率高。 (5)可以直接操纵硬件。 (6)可移植性好(较之汇编语言)。,程序设计语言概述,程序设计语言是用户用来编写程序操作计算机的语言系统,其发展经历三个阶段: (1)机器语言 用二进制表示的,是计算机能直接识别和执行的语言。 (2)汇编语言 采用助记符号来表示机器语言中的指令和数据,即用助记符号代替了用二进制表示的机器语言。,汇编语言程序 机器语言程序,(3)高级语言 机器语言和汇编语言都是面向机器的,所谓面向机器是指CPU不同,机器语言和汇编语言都有可能不一样。 从20世纪50年代中期开始,出现了接近于自然语言和数学表达式、易于被人们接受和理解的高级语言,并从此得到了广泛的使用。如Fortran语言、Basic语言、C语言、Java语言等。 由于计算机只能识别机器语言,因此,用高级语言编写的程序(也源程序)都要通过专用的程序将高级语言翻译成机器语言程序(或称目标程序)后才能被计算机执行。,C语言源程序、目标程序、可执行程序比较,C源程序是C程序员在C开发环境里书写的程序,程序后缀常是.c或者.cpp。 C目标程序是编译器将C源程序编译成机器语言形成的程序,程序后缀常是.obj。 C可执行程序是将C目标程序经过一系列处理后形成的机器可以直接执行的程序。,C语言程序结构与开发环境,C程序的基本结构 C语言程序的基本结构是对C语言程序构件进行合理布署时应该遵循的规范。 一个较完整的程序大致包括: 包含文件(一组#include语句)、用户函数说明部分、全局变量定义、主函数和若干子函数组成。在主函数和子函数中又包括局部变量定义、若干个C库函数、控制流程语句、用户函数的调用语句等。 下面一段C程序演示了C程序的基本结构 。,/*this is for the beginners to learn c */ #include void welcome() printf(“welcome“); int n; void main() welcome(); printf(“我是主函数”); ,这是注释行,包含文件说明,自定义函数,定义全局变量,主函数定义,自定义函数调用,以下程序格式,是大多数程序员采用的书写格式,C语言程序书写时的注意事项,程序大小写是有区别的,或者说大小写是相关的,一般用小写字母书写; 注释部分包含在“/*”和“*/”之间,在编译时它被C编译器忽略; 每个程序必须有一个而且只能有一个称做主函数的main()函数; 主函数、每个子函数必须用一对花括号“”和“”括起来; 大多数语句结尾必须要用“;”作为语句结束符,否则C编译器不认为该语句结束;,C语言程序的其他特点,C语言程序还有以下特点: 格式特点: 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式 注释 /* */为注释,不能嵌套 不产生编译代码,优秀C程序员的必备格式: 使用TAB缩进 对齐 有足够的注释 有合理的空行,void main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i+j ; printf(“%dn”,sum); ,C语言开发环境,C语言的开发环境有多种,本教程的开发环境采用MicroSoft Visual C+ 6.0的开发环境,下面通过一个简单的例子,我们来学习如何创建一个C程序,快速熟悉Visual C+ 6.0的开发环境。 首先要在计算机上安装上MicroSoft Visual C+ 6.0的开发软件。,(1)展开“开始-程序-MicroSoft Visual Studio 6.0- MicroSoft Visual C+ 6.0”菜单项,如图所示:,(2) 在图1-2中单击鼠标左键,即打开图所示的Visual C+ 6.0开发工具的主窗口:,(3)在上图所示的菜单栏中点击“文件新建”菜单项,弹出如图所示的“新建”对话框,由于我们要新建一个程序文件,而不是创建一个工程,因此,我们需要通过“文件”选项卡来创建一个程序文件;,(4)在上图中点击“文件”选项卡,如图所示,在列表框中选择“C+ Source File”选项,在“文件”下面的文本框中为程序命名,本例文件的名字为:“FirstPro”,在“C目录:”中选择程序文件所在的位置,本例采用默认的位置;,(5)在上图所示的对话框中点击“确定”按钮,我们就成功新建了一个名为“FirstPro.cpp”的C程序文件,即出现如图所示的“程序编辑器”窗口,这就是我们要编辑程序代码的可视化窗口,我们需要在窗口中输入程序代码:,(6)在编辑器中输入下面的一段代码,输入情况如图所示; #include void main() printf(“世界,您好! n”); ,(7)程序编写完成后,我们要编译运行这个程序,以查看程序的运行结果,点击“编译”菜单下的“全部重建”菜单项(或直接点击键盘上的“F7”键),即弹出图1-8所示的对话框,该对话框询问:“当前的命令需要一个活动的工程工作区,你想建立一个缺省的工作区吗?”,选择“是(Y)”按钮;,此后出现如图1-9所示的对话框,该对话框询问:“是否将改动保存到(创建文件时所设置的路径)”,选择“是(Y)”按钮;此时重建完成,可以执行程序了;,选择“是(Y)”,(8)选择“编译”菜单下的“!执行FirstPro.exe”菜单项执行程序,如图所示,或同时点击键盘上的“CTRL+F5”键来执行程序;,“!执行FirstPro.exe,程序的运行结果如图所示,可以按键盘上的任意键返回VC+编辑器;,C语言运算符概述,运算符:是用来表示各种运算的符号。 表达式:用运算符将运算对象连接起来形成的运 算式。 C语言运算符:是一种向编译程序说明一个特定的 数学或逻辑运算的符号。运算符必 须有运算对象。 C语言运算符的分类 算术运算符 关系运算符与逻辑运算符 按位运算符,算术运算符,算术运算符的运算规则如下表所示:,注意事项,正、负运算是单目运算符,结合性是自右向左的。 除法运算与运算对象的数据类型有关。若两个对象都是整型数据,则运算结果是整数(舍弃小数部分);若两个中有一个或两个都是实型,则运算结果为实型。但是若除数或被除数中有一个为负值,则舍入的方向是不固定的。 模运算(%)要求两个运算对象必须均为整型数据。 算术运算符优先级别 单目算术运算符优于双目算术运算符 “ *,/,% ”优于“,”; 同级单目算术运算符的结合性满足右结合,同级双目算术运算符满足左结合。,C语言算术表达式,C语言算术表达式: 由算术运算符和括号将运算对象连接起来的、符合C语法规则的式子称为。运算对象包括常量、变量和函数等。 注意事项: 在表达式求值时,先按运算符的优先级别高低顺序执行。若在一个运算对象两侧的运算符的优先级别相同,则按规定的结合性处理。 C语言中允许种类数值型数据之间进行混合运算,在进行混合运算时,不同类型的数据要先转换成同一类型,然后再进行运算。 字符型常量、字符型变量可以在算术表达式中使用。,增量运算符,增量运算符 1、自增运算符:+ x=x+1 可写成x+, 或+x i+与+i的区别: x= i + 表示将i的值赋给x后, i加1。 x=+ i 表示i先加1后,再将新值赋给x。 2、自减运算符:- - x=x-1 可写成x-, 或-x i - - 与- - i的区别: x= i - 表示将i的值赋给x后, I减1。 x= - i 表示i先减1后,再将新值赋给x。 自增自减运算符都是单目运算符,是对单目整型、字符型、指针型以及数组的下标等数据进行算术运算的,运算的结果仍是原数据类型。,自增自减运算符的运算规则如下表所示:,举例说明:若i为3,则执行后: (1)+i /*运算式的值为4,i的值为4 */ (2)i+ /*运算式的值为3,i的值为4 */ (3)-i /*运算式的值为2,i的值为2*/ (4)i- /*运算式的值为3,i的值为2 */,注意事项,1、自增自减运算符的运算对象只能是变量, 不能用于常量或表达式。 2、自增自减运算符既可以放在运算对象的前 面(前缀),也可以放在运算对象的后面(后缀),两者功能上略有不同。 3、在表达式中包含自增、自减运算时,要能 正确分析,否则很容易出错。 若i=5,请分析下面语句执行后j、i的值: j=i+; /*j的值为5,i的值为6*/ j=+i; /*j的值为6,i的值为6*/,赋值运算符,用于将表达式的值赋给变量。是一个双目运算符,运算符的左边必须是变量,右边是表达式,赋值运算符(用=表示),用于将表达式的值赋给变量,结合性是自右向左的。 例如:int i=5;是将常量值5赋给变量x. 赋值运算符=右侧可以是变量或表达式. 例如:int i=5,j=i;将变量i的值赋给变量j.,赋值语句中的数据类型转换,在赋值语句中,类型转换规则是:等号右边的值转换为等号左边变量所属的类型。 做除法运算时应特别注意 ,例如: int i=15; float f =i/2; 运行后,f=7而并不等于准确值7.5 正确的做法应该是: int i=15; float f =i/2.0; 也可直接将i定义为浮点数。,逻辑运算符和表达式,逻辑运算符种类: ! & | 逻辑运算真值表:,C语言中,运算量: 0表示“假”, 非0表示“真”, 运算结果: 0表示“假”, 1表示“真”,优先级:,结合方向:,例 ab&xy /(ab)&(xy) a=b|x=y /(a=b)|(x=y) !a|ab /(!a)|(ab) 初学者如果不熟悉逻辑运算符时,就可以写成上面的注释中带括号的形式,这样就很容易区分和理解其中的各个表达式。,关系运算符,关系运算符是比较两个操作数大小的符号 C的关系运算符作用对照表 :,按位运算符,C和其它高级语言不同的是它支持按位运算符。 C中按位运算符的作用 :,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号