C语言第章讲稿
- 格式:docx
- 大小:145.93 KB
- 文档页数:27
c语言课件第1章_引言个人认为比较详细了,老师讲的超简,只有自学。
三六章是重点哦第一章引论第一章引论§1.1C语言的发展过程§1.2C语言的特点和用途§1.3简单的C语言程序§1.4C语言程序的结构§1.5怎样执行一个C语言程序1/1315:17C程序设计基础教程个人认为比较详细了,老师讲的超简,只有自学。
三六章是重点哦第一章引论§1.1C语言的发展过程20世纪70年代初C语言问世,1978年贝尔实验室正式发表了C语言1983年发表C语言标准,通常称之为ANSIC。
§1.2C语言的特点和用途特点:8点1.C语言简洁、紧凑,使用方便、灵活。
ANSIC一共只有32个关键字,TurboC扩充了11个关键字注意:在C语言中,关键字都是小写的。
C程序设计基础教程2/1315:17个人认为比较详细了,老师讲的超简,只有自学。
三六章是重点哦第一章引论2.运算符丰富。
共有34种。
C把括号、赋值、逗号等都作为运算符处理。
3.数据类型丰富。
简单类型和构造类型4.具有结构化的控制语句。
顺序、分支、循环结构5.语法限制不太严格,程序设计自由度大。
6.C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
7.生成目标代码质量高,程序执行效率高。
8.与汇编语言相比,用C 语言写的程序可移植性好。
3/1315:17C程序设计基础教程个人认为比较详细了,老师讲的超简,只有自学。
三六章是重点哦第一章引论§1.3简单的C语言程序【例1-1】#include<tdio.h>main(){printf(“Hello,world!/n”);}程序说明:1.include是文件包含命令,扩展名为.h的文件称为头文件,表示在程序中要用到这个文件中的函数。
2.main是主函数的函数名,表示这是一个主函数。
第1章 C 程序概述人与计算机交换信息是要用语言来交流的,这种语言称为计算机语言。
用计算机语言编写的代码称为程序。
计算机的工作是受程序控制的,而从计算机角度来说,程序是用某种计算机能理解并执行的计算机语言来描述解决问题的方法步骤。
程序设计语言经历了从机器语言、汇编语言到高级语言这样一个发展过程。
1.机器语言:计算机刚诞生时,还没有可以用来方便地指挥计算机工作的程序,计算机程序是直接用它能识别的二进制指令来书写的。
这种程序设计语言就是机器语言。
它直接以计算机硬件产生作用的,所以不同型号的计算机的“机器语言”又不一样,因此它被称为低级语言,很难被人掌握,只有少数专业人员能使用。
2.汇编语言:实际上是一种符号化的机器语言。
在汇编语言中每条机器指令对应一个符号化的指令。
如:用ADD代表机器二进制的加法运算。
因为加法用二进制的10110110的机器语言代表,而用英文单词更简捷且好记多了。
不过,用汇编语言编写的程序要翻译成机器语言才能被计算机执行。
且也依赖于机器。
3.高级语言:由于汇编语言和机器语言都是面向机器的语言,而且在程序的书写形式上很难直观地反映出程序设计者的思路,因此人们发明了与人类的自然语言非常接近的高级程序设计语言。
高级语言不仅易学,易用,而且写出的程序更加简练,同一个程序还可以用在不同型号的机器上。
比如说,我们要求两个数的和,在高级语言中可以用一个很简单的语句C=A+B;来表示,但在汇编语言或者机器语言中,这可能就是几条甚至几十条机器指令构成的一个实现加法的程序,常人要读懂它也不是那么容易。
但是,用高级语言编写的程序不能被计算机直接理解和执行,而必须先由这种语言的编译程序或者解释程序翻译成机器指令,然后再让计算机执行机器指令。
C语言的历史20世纪70年代初期出现的FORTRAN,ALGOL和PASCAL语言是反映了结构化程序设计思想的高级语言,PASCAL它在大学和研究所中流传较广曾为国内外计算机(应用)专业学生的入门语言。
第一部分C语言的数据类型、运算符和表达式一、数据的表现形式常量、变量、函数、表达式二C语言的数据类型需要记住的基本类型:整形、字符型、实型(单精度、双精度)二、常量:在程序运行过程中,其值不能改变的量1、整形常量(1)十进制由正负号和0-9组成(2)八进制由正负号和以0开头的0-7组成(3)十六进制以0XL开头和0-9及A-F2.实型常量(1)基本实常量用十进制小数去表示123.456 -12.56 12.0(2)带指数的实常量注意:字母E前必须有数字,可以为整数或小数,E后的指数必须为整数,可正可负。
3 字符型常量(1)由一对单引号括起来的一个字符‘a‘,’@‘(2)以一个‘\‘开头的字符序列\n 回车换行,将当前光标一到下一行开头\r 回车不换行,将当前光标移到本行开头Printf(―abcdef\r123‖) 123def\b推一格,将当前光标移到前一列Printf(―y\b=1000\n‖) 结果为=1000注意:1斜杠后的第一个字母有效,其他原样输出Printf(―123\bbcdef\n‖)2 连续多个反斜杠时每两个输出一个Printf(―abc\\\n‖); 结果为abc\Printf(―abc\\\\n‖); 结果为:abc\\n4字符串常量:用一对双引号括起来的字符串“a”‖abcdef‖―1234‖#include ―stdio.h‖#include‖string.h‖Main(){Printf(―%d\n‖,strlen(―abc‖))3;Printf(―%d\n‖,sizeof(―abcd‖)) 5;Printf(―%d\n‖,strlen(―ab\\\101‖))4;}头文件的书写格式# include‖文件名‖或者# include<文件名>一个include 命令只能指定一个被包含的文件5符号常量定义:用一个指定的标识符(名字)来代表一个字符串常量格式:# define 标识符字符串#define N 100# define N 10#define s(x) x*x#define f(x) (x*x)Main(){ int I1 ,I2 ;I1=1000/s(N) ;I2=1000/f(N);Printf(―%d %d‖,I1,I2);}I1=1000/10*10=1000I2=1000/(10*10)=10三、变量:其值可以改变的量1.命名规则:只能由字母数字和下划线组成,并且第一个字符必须为字母或下划线。
第一章 C语言概述本章要求:(1)C语句概述;(2)程序的三种基本结构;(3)赋值语句;(4)数据的输入与输出。
教学重点:1.C语言的特点。
2.C语言的编程环境。
教学难点:掌握编程环境的使用方法教学方法:采用多媒体教学的方法进行讲授,学生在教师指导下通过计算机进行操作练习。
课时数:4(讲授2节课,上机练习2节课)1.1C语言的发展及特点C语言的发展过程1、C语言是国际上流行的、很有发展前途的计算机高级语言。
C语言适合于作为“系统描述语言”。
它既可以用来编写系统软件,也可以用来编写应用程序。
以前操作系统等系统软件主要采用汇编语言编写。
汇编语言依赖于计算机硬件,程序的可读性、可移植性都比较差。
为了提高可读性和可移植性,人们希望采用高级语言编写这些软件,但是一般的高级语言难以实现汇编语言的某些操作,特别是针对硬件的一些操作(如:内存地址的读写-直接硬件、二进制位的操作)。
人们设法寻找一种既具有一般高级语言特性,又具有低级语言特性的语言,C语言就在这种情况下应运而生。
2、C语言的发展见下图:ALGOL60 -> CPL -> BCPC -> B -> C -> 标准 C -> ANSI C -> ISO CALGOL60:一种面向问题的高级语言。
ALGOL60离硬件较远,不适合编写系统程序。
CPL(Combined Programming language,组合编程语言):CPL是一种在ALGOL60基础上更接近硬件的一种语言。
CPL规模大,实现困难。
BCPL(Basic Combined Programming language,基本的组合编程语言):BCPL是对CPL进行简化后的一种语言。
B语言:是对BCPL进一步简化所得到的一种很简单接近硬件的语言。
B语言取BCPL语言的第一个字母。
B语言精练、接近硬注:最初Unix操作系统是采用汇编语言编写的,B语言版本的Unix是第一个用高级语言编写的Unix。
在C语言诞生后,Unix很快用C语言改写,C语言良好的可移植性很快使Unix从PDP计算机移植到其它计算机平台,随着Unix的广泛应用,C语言也得到推广。
从此C语言和Unix像一对孪生兄弟,在发展中相辅相成,Unix和C很快风靡全球。
3、从C语言的发展历史可以看出,C语言是一种既具有一般高级语言特性(ALGOL60带来的高级语言特性),又具有低级语言特性(BCPL带来的接近硬件的低级语言特性)的程序设计语言。
C语言从一开始就是用于编写大型、复杂系统软件的,当然C 语言也可以用来编写一般的应用程序。
也就是说:C语言是程序员的语言!IBM PC微机DOS、Windows平台上常见的C语言版本有:Borland公司:Turbo C,Turbo C++,Borland C++C++ Builder(Windows版本)Microsoft公司:Microsoft CVisual C++(Windows版本)C语言的特点C语言是从“组合编程语言”CPL发展而来,C语言既具有一般高级语言特性(ALGOL60带来的高级语言特性),又具有低级语言特性(BCPL带来的接近硬件的低级语言特性)。
C语言具有下面特点(其中1-6属于高级语言特性,7,8属于低级语言特性)1、C语言的语言成分简洁,紧凑,书写形式自由例:将C语言程序段与实现同样功能的PASCAL语言程序段进行比较。
C语言PASCAL语言含义说明1{…}BEGIN…END复合语句(或:语句块)PASCAL显得罗嗦2if(e)S;IF(e)THEN S;条件语句PASCAL至少多了一个THEN关键词3int i;VAR i:INTEGER定义i为整型变量PASCAL至少多了一个VAR关键词2、C语言拥有丰富的数据类型C语言具有整型、实型、字符型、数组类型、指针类型、结构体类型、共同体类型等数据类型。
能方便地构造更加复杂的数据结构(如:使用指针构造链表、树、栈)。
3、C语言的运算符丰富、功能更强大例如:(1)C语言具有复合的赋值运算符“+[-*/%]=”(加等、减等、乘等、除等) ,“>>=”“<<=”(右移等、左移等),“&[^|]=”(与等、或等、非等)。
x+=5等价于x=x+5(2)C语言有条件运算符“:”可代替简单的if/else语句。
如果需要表示:“如果x小于或等于0,y为0;否则y为1”可以采用:y=x<=00:1;如果用一般的程序设计语言表示就应该像下面这样表示:if(x<=0)y=0;else y=1;C语言避免了一切可能的罗嗦,(3)C语言中连赋值这种操作都定义为运算符,也就是说赋值操作本身可以作为表达式的一部分,参与运算。
如:if((p=malloc(sizeof(int)))==NULL){printf(“Error!”);ex it(1);}如果改写为一般形式:p=malloc(sizeof(int));if(p==NULL){printf(“Error!”);exit(1);}又如下面算式是正确的:x=y=z=6;如果改写为一般形式:z=6;y=6;x=6;4、C语言是结构化的程序设计语言C语言具有结构化的控制语句(if/else,switch/case,for,while,do…while)函数是C语言程序的模块单位。
5、C语言对语法限制不严格,程序设计灵活C语言不检查数组下标越界,C语言不限制对各种数据转化(编译系统可能对不合适的转化进行警告,但不限制),不限制指针的使用,程序正确性由程序员保证。
实践中,C语言程序编译时会提示:“警告错”“严重错误”。
警告错误表示你使用的语法可能有问题,但是你有时可以忽略,你的程序仍然可以完成编译工作,然后运行。
(但是一般情况下警告错,往往意味着程序真的有问题,你应该认真地检查)“严重错”是不能忽略的,编译系统发现严重错误,就不会产生目标代码。
灵活和安全是一对矛盾,对语法限制的不严格可能也是C语言的一个缺点,比如:黑客可能使用越界的数组攻击你的计算机系统。
JAVA 语言是优秀的网络应用程序开发语言,它必须保证安全性,它绝对不允许数组越界。
此外JAVA不使用指针,不能直接操作客户计算机上的文件,语法检查相当严格,程序正确性容易保证,但是JAVA在编程时却缺乏灵活。
6、C语言编写的程序具有良好的可移植性编制的程序基本上不需要修改或只需要少量修改就可以移植到其它的计算机系统或其它的操作系统。
7、C语言可以实现汇编语言的大部分功能C语言可以直接操作计算机硬件如寄存器,各种外设I/O端口等。
C语言的指针可以直接访问内存物理地址。
C语言类似汇编语言的位操作可以方便地检查系统硬件的状态。
C语言适合编写系统软件。
8、C语言编译后生成的目标代码小,质量高,程序的执行效率高有资料显示只比汇编代码效率低10%-20%。
1.2C语言程序的基本结构简单的C程序介绍例:main(){printf(“This is a C program.\n”);}说明:本程序的功能是输出一行信息:This is a C program.其中:1、main表示“主函数”。
每个C语言程序都必须有一个main函数,它是每一个C语言程序的执行起始点(入口点)。
main()表示“主函数”main 的函数头。
2、用{}括起来的是“主函数”main的函数体。
main函数中的所有操作(或:语句)都在这一对{}之间。
也就是说main函数的所有操作都在main 函数体中。
3、“主函数”main中只有一条语句,它是C语言的库函数,功能是用于程序的输出(显示在屏幕上),本例用于将一个字符串“This is a C program.\n”的内容输出。
即在屏幕上显示:This is a C program._ (回车/换行)4、注意:每条语句用“;”号结束语句。
例:main() /* 计算两数之和 */{int a,b,sum; /* 这是定义变量 */a=123;b=456; /* 以下3行为C语句 */sum=a+b;printf(“sum=%d\n”,sum);}说明:本程序计算两数之和,并输出结果。
1、同样此程序也必须包含一个main函数作为程序执行的起点。
{}之间为main函数的函数体,main函数所有操作均在main函数体中。
2、/* */括起来的部分是一段注释,注释只是为了改善程序的可读性,在编译、运行时不起作用(事实上编译时会跳过注释,目标代码中不会包含注释)。
注释可以放在程序任何位置,并允许占用多行,只是需要注意“/*”、“*/”匹配,一般不要嵌套注释。
3、int a,b,sum;是变量声明。
声明了三个具有整数类型的变量a,b,sum。
C语言的变量必须先声明再使用。
4、a=123;b=456;是两条赋值语句。
将整数123赋给整型变量a,将整数456赋给整型变量b。
a,b两个变量分别为123,456。
注意这是两条赋值语句,每条语句均用“;”结束。
也可以将两条语句写成两行,即:a=123;b=456;由此可见C语言程序的书写可以相当随意,但是为了保证容易阅读要遵循一定的规范。
5、sum=a+b;是将a,b两变量内容相加,然后将结果赋值给整型变量sum。
此时sum的内容为579。
6、printf(“sum=%d\n”,sum);是调用库函数输出sum的结果。
%d为格式控制表示sum的值以十进制整数形式输出。
程序运行后,输出(显示):sum=579_ (回车/换行)例说明:输入两个整数,计算两者较大的数,并输出。
1、本程序包括两个函数。
其中主函数main 仍然是整个程序执行的起点。
函数max计算两数中较大的数。
2、主函数main调用scanf函数获得两个整数,存入a,b两个变量,然后调用函数max获得两个数字中较大的值,并赋给变量c。
最后输出变量c的值(结果)。
3、int max(int x,int y)是函数max的函数头,函数max的函数头表明此函数获得两个整数,返回一个整数。
4、函数max同样也用{}将函数体括起来。
max的函数体是函数max的具体实现。
从参数表获得数据,处理后得到结果z,然后将z返回调用函数main。
5、本例还表明函数除了调用库函数外,还可以调用用户自己定义,编制的函数。
C程序结构综合上述三个例子,我们对C语言程序的基本组成和形式(程序结构)有了一个初步了解:1、C程序由函数构成(C是函数式的语言,函数是C程序的基本单位)(以例说明)一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其它函数。
函数是C程序的基本单位。
被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编写设计的函数。