您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > (第四版)C语言程序设计1-6章
华东理工大学出版社2020/2/22程序设计C/C++教师姓名:赵敏信息学院计算中心华东理工大学出版社2020/2/22目录第一章C语言概述第二章数据类型及基本运算第三章顺序结构程序设计第四章选择结构程序设计第五章循环结构程序设计第六章数组第七章函数第八章指针第九章结构与其它自定义类型第十章文件华东理工大学出版社2020/2/22第一章C语言概述华东理工大学出版社2020/2/221.1C语言的发展史回顾:程序设计与高级语言早期的机器语言;过渡性语言——汇编语言;20世纪50年代末的程序设计语言(高级语言);华东理工大学出版社2020/2/22C语言的产生与发展C语言是国际上广泛流行的计算机高级语言,既可用来写系统软件,也可用来写应用软件。C语言是在B语言的基础上发展起来的。BCPL(basiccombinedprogramminglanguage)语言——C语言——扩充C语言的内核,使其能满足面向对象模型的要求,称“带类的C”,1983年取名C++华东理工大学出版社2020/2/22C++与C完全兼容,保存了C语言的所有组成部分,具有更完美的体系结构和更强大的功能;C/C++常用的编译软件有TurboC,QuickC,BorlandC,MicrosoftVisualC++,BorlandC++,WatcomC++等等;注意:同学们应了解所用的计算机系统所配置的C编译系统的特点和规定(可以参阅有关手册)。华东理工大学出版社2020/2/221.2.1简单的C/C++程序实例【例1.1】#includestdio.h头文件main()函数名{printf(ThisisaCprogram.\n);}函数体本程序的作用是输出以下一行信息:ThisisaCprogram.1.2C/C++程序简介华东理工大学出版社2020/2/221.2.2C/C++程序设计规则(1)C程序中使用到的一切数据都必须在使用它们之前对其类型和存储属性加以定义和说明;(2)函数是C程序的基本模块,包括函数名、参数说明表和函数体三个部分;(3)语句是函数的基本单位,语句结束必须加“;”;(4)C语言允许“/**/”包围的注释行;(5)C程序是自由格式书写的程序,通常采用结构化程序设计原则将程序设计成“层次型”;(6)C的输入输出操作由库函数scanf和printf完成;华东理工大学出版社2020/2/22c程序结构华东理工大学出版社2020/2/22C程序运行的步骤:高级语言源程序目标程序编译程序编译执行高级语言程序的执行过程在编好一个C源程序后,如何上机运行呢?要经过以下几个步骤:上机输入、编辑源程序、对源程序进行编译、与库函数连接、运行目标程序这样几个步骤。华东理工大学出版社2020/2/22实线表示操作流程,虚线表示文件的输入输出。华东理工大学出版社2020/2/221.2.3C/C++程序的编辑、编译与运行在VisualC++集成开发环境下编辑C程序第一种方法:直接在VC环境中新建txt文件,进行编辑;第二种方法:使用记事本编辑C源文件;华东理工大学出版社2020/2/22在VisualC++集成开发环境下编译与运行C程序第一步:打开“Build”菜单,选择“Compilehjm01.c”命令,编译正确后生成目标文件;第二步:打开“Build”菜单,选择“Buildhjm01.exe”命令,将目标程序与库文件相链接,生成可执行文件;第三步:打开“Build”菜单,选择“Executehjm01.exe”命令,运行执行程序。华东理工大学出版社2020/2/221.3C程序的基本语法成分1.3.1基本字符集字符集是构成C/C++程序的基本元素。C/C++语言的字符集有下述字符构成:(1)英文字母:A~Z,a~z(2)数字字符:0~9(3)特殊符号:!,#,%,&等。华东理工大学出版社2020/2/221.3.2标识符C/C++程序中,标识符用来标识变量名、符号常量名、函数名、数组名、文件名、类名、对象名等。有效标识符的构成规则为:(1)必须由字母(a~z,A~Z)或下划线(_)开头;(2)由字母、数字和下划线组成的长度不超过32的字符串;(3)标识符中的大小写字母有区别;(4)不能与关键字同名;下面是不合法的标识符和变量名:M.d.,John,y123,#33,3d64华东理工大学出版社2020/2/221.3.3关键字C编译系统已经预定义的、具有特殊用途的保留标识符称为关键字。具体见书P7。1.4编译预处理编译预处理是C编译系统的一个组成部分。功能:告诉编译系统在对源程序进行编译之前应该做些什么。返回华东理工大学出版社2020/2/22C源程序目标程序执行程序编译预处理编译链接图1编译预处理的执行过程(无预处理命令)(有预处理命令)华东理工大学出版社2020/2/22编译预处理命令有三种:宏定义无参数宏定义有参数宏定义(7.7节介绍)文件包含条件编译返回华东理工大学出版社2020/2/22无参数宏定义的格式为:#define宏名字符串【例】#definePI3.1415926【例】分析程序的结果。#definePI3.1415926#defineR4.0main(){floatarea;area=PI*R*R;printf(“area=%.2f”);}宏名一般用大写字母表示1.4.1无参数宏定义华东理工大学出版社2020/2/221.4.2文件包含文件包含是通过编译预处理命令#include把另一个文件的全部内容包含到本文件之中。命令格式有两种:#include“文件名”【例】#include“C:\TC\CC1\file2.c”#include文件名【例】#includestdio.h按系统指定的标准方式检索文件目录先在源文件目录中检索文件,没找到再按系统指定的标准方式检索文件目录华东理工大学出版社2020/2/22【例】计算常用对数lgx。#include“math.h”main(){floatx;scanf(“%f”,&x);printf(“%f\n”,log10(x));}【例】#includestdio.hmain(){printf(ThisisaCprogram.\n);}华东理工大学出版社2020/2/22第二章数据类型及基本运算华东理工大学出版社2020/2/222.1C数据类型见书P11图2.1数据类型分类示意图2.2基本数据类型见书P12表2.12.3数据的表示数据在内存中有两种表示形式:其一是在程序运行过程中值永远保持不变的常量;其二是在程序运行过程中值可以发生变化的变量;华东理工大学出版社2020/2/22常量数值常量符号常量整型常量实型常量字符常量字符串常量2.3.1常量常量——在程序运行过程中其值不能被改变的量;按表达形式,常量分为:华东理工大学出版社2020/2/221、值常量常量通常是直接以自身的存在形式体现其值和类型,常量不占内存,在程序运行时作为操作对象直接出现在运算器的各种寄存器中。2、符号常量符号常量的定义形式:#define标识符值常量const数据类型标识符=值常量【例】#definePI3.14159或constfloatI=3.1415926华东理工大学出版社2020/2/223.常用的转义字符【例】分析下面两段代码的区别:#includestdio.hmain(){printf(“ThisisaCprogram.\n”);}#includestdio.hmain(){printf(“\tThisisaCprogram.\n”);}华东理工大学出版社2020/2/222.3.2变量变量——在程序运行过程中其值可以被改变的量;1.变量的说明形式:数据类型变量名列表【例】inti,j,k;2.变量的赋初值——在程序中,一个变量占据着一个实际的存储单元,变量名实际上是存储单元的逻辑地址,存储单元中的内容是变量的值;华东理工大学出版社2020/2/22(1)允许在定义变量的同时对其赋初值;【例】inta=3;floatf=7.8;(2)允许仅对说明语句中的部分变量赋初值;【例】inta,b,c=6;(3)不允许同时对几个变量赋同一个初值;【例】inta=b=c=13;(4)变量的赋初值不是在程序编译阶段,而是在程序运行时赋的;华东理工大学出版社2020/2/22使用注意:1、变量一旦被说明为字符型,就意味着它只能取单字符值。例:charx;x=33;字符在计算机内部并不是以字符原形存储的,是以ASCII码的形式存储在一个字节中,所以字符也可以用ASCII码的整数形式来表示。2、字符型数据与字符串数据的区别——形式和存储;返回第三章华东理工大学出版社2020/2/222.4常用的运算符和表达式2.4.1算术运算符和算术表达式1)算术运算符类别运算符含义备注双目/除随参与运算的类型而含义有所不同%求余数运算对象必须为整型单目++自增1运算对象必须为变量--自减1运算对象必须为变量+取正-取负华东理工大学出版社2020/2/222)算术运算符的运算优先级和结合性运算符结合性备注()自内向外++,--,-(取负)自右至左++,--为前缀形式时*,/,%自左至右+(加),-(减)自左至右优先级3)算术表达式注意书写的规范华东理工大学出版社2020/2/22【例】将下列代数式转换成C语言表达式。xx212sqrt(x*x+1)/(2*x)x21sqrt(abs(x))/24)算术型数据的混合运算自动类型转换:规则是由低级向高级转换,如下图所示:(P17图2.2)华东理工大学出版社2020/2/22强制类型转换:是根据程序的需要,将某数据强制转换成指定的数据类型,方法是在被转换对象(或表达式)前面增加类型标识符,形式如下:数据类型自动转换规则示意(类型标识符)表达式水平箭头表示必定转换;纵向箭头表示两个不同类型对象时的转换方向华东理工大学出版社2020/2/22【例】(2.7+6.8)表示将2.7+6.8的运算结果9.5强制转换成int型整数9,舍弃小数部分。【思考题】如何实现运算结果的四舍五入呢?5)使用算术表达式的注意事项两个整数直接相除,结果自动取整,丢弃小数部分;【例】floatx,y;x=6/4;y=6.0/4;x的值为1.0y的值为1.5(int)华东理工大学出版社2020/2/22运算符“++”、“--”运算的优先级高于算术运算中所有双目运算符,运算对象只能是变量,不能是表达式或常量;【例】有intx;floaty;下面的式子错在了哪里?(x+y)++、5++变量的前缀和后缀运算的区别华东理工大学出版社2020/2/22【例】设intx=5;则:y=6,x=6y=25,x=7y=49,x=7y=++x*++x;y=++x;y=x++*x++;y=5,x=6y=x++;华东理工大学出版社2020/2/222.4.2赋值运算符和赋值表达式1)基本赋值运算符形式:=功能:将赋值运算符右边的表达式的值赋给其左边的变量;【例】floatx=3.1;inty;y=x+2;正确floaty=5.6;intx;x+2=y;5=y;错误华东理工大学出版社2020/2/222)复合赋值运算符形式:算术运算符=功能:对赋值运算符左、右两边的运算对象进行指定的算术运算符的运算,再将运算结果赋予左边的变量;【例】a+=3等价于a=a+3那么a*=b+1等价于a=a*(b+1)方法:①a+=(b)(其中a为变量,b为表达式)②a+=(b)(将有下划线的“a+”移到“=”右侧)③a=a+(b)(在“=”左侧补上变量名a)华东理工大学出版社2020/2/223)赋值表达式用赋值运算符将运算对象连接而成的式子称为赋值表达式。【例】intk,a=1,j=5;a+=j++【例】intx=6;x+=x-=x*x;a=a+(j++)a=6,j=6x=x+(x-=x*x)x=x+(x=x-x*x)x=-60华东理工大学出版社2020/2/222.4.3
本文标题:(第四版)C语言程序设计1-6章
链接地址:https://www.777doc.com/doc-3910577 .html