《C语言程序设计2第1章C语言初步.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计2第1章C语言初步.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计语言程序设计人民邮电出版社人民邮电出版社人民邮电出版社人民邮电出版社高职高专现代信息技术系列教材高职高专现代信息技术系列教材第第1 1章章 C C语言初步语言初步 1.1 C1.1 C语言概览语言概览1.21.2 简述两个最常用的输入和输出函数简述两个最常用的输入和输出函数退出退出1.1 C语言概览语言概览1.1.1 C1.1.1 C语言发展历程简述语言发展历程简述 C语言在一九七八年由美国电话电报公司语言在一九七八年由美国电话电报公司(AT&T)贝尔实验室贝尔实验室正式发表。同时由和合著的正式发表。同时由和合著的The C Programming Language一一书对书对C
2、语言作了详细的描述。在此之后,由美国国家标准学会语言作了详细的描述。在此之后,由美国国家标准学会(ANSI)在制定了一个在制定了一个C语言标准,于一九八三年发表。通常称之语言标准,于一九八三年发表。通常称之为为ANSI C。在在C的基础上,一九八三年又由贝尔实验室的的基础上,一九八三年又由贝尔实验室的Bjarne Stroustrup推出了推出了C+。C+进一步扩充和完善了进一步扩充和完善了C语言,成为一语言,成为一种面向对象的程序设计语言。种面向对象的程序设计语言。1.1.2 C1.1.2 C语言的优点语言的优点l既有高级语言的程序思想与设计方法,又有低级语言的操作能力。既有高级语言的程序思
3、想与设计方法,又有低级语言的操作能力。所以它也被称为所以它也被称为“中级语言中级语言”;l结构化的体系结构。层次清晰,便于按模块化方式组织程序,易结构化的体系结构。层次清晰,便于按模块化方式组织程序,易于调试和维护;于调试和维护;l非常强的处理能力,不仅具有丰富的运算符和数据类型,便于实非常强的处理能力,不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址;它现各类复杂的数据结构。它还可以直接访问内存的物理地址;它还可以直接访问内存的物理地址;它还可以直接访问内存的物理还可以直接访问内存的物理地址;它还可以直接访问内存的物理地址;地址;l广泛的可移植性,可
4、以方便地移植到不同的软、硬件环境;广泛的可移植性,可以方便地移植到不同的软、硬件环境;l代码效率高;代码效率高;1.1.3 1.1.3 C C语言的缺点语言的缺点l太灵活,不易掌握,容易出错,不适合初学者;太灵活,不易掌握,容易出错,不适合初学者;l运算符优先级太多;运算符优先级太多;类型转换限制少,检验较弱,不够安全;类型转换限制少,检验较弱,不够安全;1.1.4 C1.1.4 C源程序的结构特征源程序的结构特征 C源程序就是用源程序就是用C语言的语句编写、未作其他处理(如编译)语言的语句编写、未作其他处理(如编译)的程序。源程序通常是由一个或多个函数组成的文件,该文件通的程序。源程序通常是
5、由一个或多个函数组成的文件,该文件通常以常以.C为扩展名。为扩展名。在组成程序的函数中,必须有、也只能有一个主函数。主函在组成程序的函数中,必须有、也只能有一个主函数。主函数的名字为数的名字为main。函数名之后必须有一对小圆括号。函数名之后必须有一对小圆括号“()”,括号,括号中可以有参数。中可以有参数。无论主函数放在文件中什么位置(开头、中间或最后),总无论主函数放在文件中什么位置(开头、中间或最后),总是从函数序开始运行。是从函数序开始运行。注意以下例子中基本部分和书写格式。注意以下例子中基本部分和书写格式。【例【例1-1】(见课本)见课本)【例【例1-2】(见课本)见课本)【例【例1-
6、3】(见课本)见课本)C语言中的函数就好象是其它语言语言中的函数就好象是其它语言(如如BASIC)中的子程序,而中的子程序,而主函数就相当于主程序,主函数不可缺少。主函数就相当于主程序,主函数不可缺少。无论主函数在什么位置,程序的执行总是从主函数开始,当无论主函数在什么位置,程序的执行总是从主函数开始,当主函数中的语句执行完毕后,整个程序就结束。可以在主函数中主函数中的语句执行完毕后,整个程序就结束。可以在主函数中调用其他函数,但不能在其他函数中调用主函数。其他函数之间调用其他函数,但不能在其他函数中调用主函数。其他函数之间也可互相调用。也可互相调用。通常,通常,C函数分为两大类:一种是系统提
7、高的标准的库函数,函数分为两大类:一种是系统提高的标准的库函数,它的使用方法比较简单:在需要的地方调用它即可它的使用方法比较简单:在需要的地方调用它即可(带上必要的参带上必要的参数数)。此时,值得注意的是,要使用哪类函数,应在程序开头用包。此时,值得注意的是,要使用哪类函数,应在程序开头用包含语句把相应的头文件包括进来。例如,要使用数学库函数,则含语句把相应的头文件包括进来。例如,要使用数学库函数,则应在文件头加上以下语句应在文件头加上以下语句(如例如例1-2中那样中那样):#include C系统提供了极其丰富的库函数;系统提供了极其丰富的库函数;另一种是自定义函数,是由程序员自己编写的函数
8、,如例另一种是自定义函数,是由程序员自己编写的函数,如例1-3中的函数中的函数fb。因此,在编写一个因此,在编写一个C源程序的过程中,需编写适当的自定义源程序的过程中,需编写适当的自定义函数并充分利用库函数。同时,应尽量编写小的、功能单一的函函数并充分利用库函数。同时,应尽量编写小的、功能单一的函数,并由这些函数组成大的函数。这样,可以单独编译、调试这数,并由这些函数组成大的函数。这样,可以单独编译、调试这些小的函数,这样比较容易些。些小的函数,这样比较容易些。1.1.5 C 1.1.5 C语言源程序的书写要求语言源程序的书写要求 C语言源程序在书写格式方面有自己的要求语言源程序在书写格式方面
9、有自己的要求,有:有:l源程序通常使用小写字母,只有符号常量或其它特殊用途的符号源程序通常使用小写字母,只有符号常量或其它特殊用途的符号才大写;才大写;l不使用行号,通常按语句顺序执行;不使用行号,通常按语句顺序执行;l用分号作为语句的结束符,不可省略用分号作为语句的结束符,不可省略(即便是最后一个语句也不能即便是最后一个语句也不能省略省略)。但预处理命令,函数头和花括号。但预处理命令,函数头和花括号“”之后不能加分号;之后不能加分号;l可以一个语句占一行,也可多个语句占一行可以一个语句占一行,也可多个语句占一行(此时要用分号分隔各此时要用分号分隔各个语句个语句);l不指定语句在一行中的起始位
10、置。但建议同一层次的语句应左对不指定语句在一行中的起始位置。但建议同一层次的语句应左对齐;齐;l用用大大括括号号对对“”表表示示各各个个结结构构层层次次的的范范围围。可可以以表表示示函函数数、也也可表示循环体等;可表示循环体等;l一一个个语语句句中中不不同同成成份份之之间间应应使使用用空空格格隔隔开开。标标识识符符,关关键键字字之之间间必必须须至至少少加加一一个个空空格格以以示示间间隔隔。若若已已有有明明显显的的间间隔隔符符,也也可可不不再再加空格来间隔;加空格来间隔;l程程序序中中的的空空白白行行不不影影响响程程序序的的执执行行,可可以以为为了了程程序序清清晰晰而而加加上上。但不要在一个语句
11、中间加空行;但不要在一个语句中间加空行;l建议多使用注释信息,以增加程序的可读性;建议多使用注释信息,以增加程序的可读性;l源源程程序序中中可可以以有有预预处处理理命命令令(include 命命令令仅仅为为其其中中的的一一种种),预预处理命令通常应放在源文件或源程序的最前面;处理命令通常应放在源文件或源程序的最前面;【例【例1-4】(见课本)见课本)1.1.6 1.1.6 最小的最小的C C函数函数 最小的最小的C函数可以是以下的函数:函数可以是以下的函数:temp()调用此函数时,并不执行任何操作,就立即返回到调用它的调用此函数时,并不执行任何操作,就立即返回到调用它的函数了。此函数的作用是
12、在程序编制初期先占一个位置。使程序函数了。此函数的作用是在程序编制初期先占一个位置。使程序在编制初期可以顺利运行。在以后编制号相应的程序后,再替换在编制初期可以顺利运行。在以后编制号相应的程序后,再替换这个临时程序。这个临时程序。1.1.7 1.1.7 函数的组成部分函数的组成部分 函数的一般形式为:函数的一般形式为:函数名函数名(参数表参数表)参数说明参数说明;数据说明部分数据说明部分;执行语句部分执行语句部分;函数名小括号中的函数名小括号中的“参数表参数表”可以根据需要存在,可能有,可以根据需要存在,可能有,也可能没有。若有多个,之间应用逗号隔开。若没有参数,则参也可能没有。若有多个,之间
13、应用逗号隔开。若没有参数,则参数说明部分可以省略。但函数名后的一对圆括号则不能省略。数说明部分可以省略。但函数名后的一对圆括号则不能省略。函数名与参数说明部分通称为函数说明部分。函数名与参数说明部分通称为函数说明部分。一对大括号中间所包含的全部内容叫做函数体。一对大括号中间所包含的全部内容叫做函数体。1.1.8 C 1.1.8 C语言的字符集语言的字符集 字字符符是是组组成成语语言言的的最最基基本本的的元元素素。C语语言言字字符符集集由由字字母母,数数字字,空空格格,标标点点和和特特殊殊字字符符组组成成。在在字字符符常常量量,字字符符串串常常量量和和注注释释中中还可以使用汉字或其它可表示的图形
14、符号。还可以使用汉字或其它可表示的图形符号。1 字母字母 小写字母小写字母az共共26个、大写字母个、大写字母AZ共共26个。个。2 数字数字 09共共10个。个。3 空白符空白符 空空格格符符、制制表表符符、换换行行符符等等统统称称为为空空白白符符。空空白白符符只只在在字字符符常常量量和和字字符符串串常常量量中中起起作作用用。在在其其它它地地方方出出现现时时,只只起起间间隔隔作作用用,编编译译程程序序对对它它们们忽忽略略不不计计。因因此此在在程程序序中中使使用用空空白白符符与与否否,对对程程序序的的编编译译不不发发生生影影响响,但但在在程程序序中中适适当当的的地地方方使使用用空空白白符符将将
15、增增加加程序的清晰性和可读性。程序的清晰性和可读性。4 标点和特殊字符标点和特殊字符 1.1.9 C 1.1.9 C语言字符语言字符 在在C语言中使用的字符分为六类:语言中使用的字符分为六类:1 标识符标识符 在在程程序序中中使使用用的的变变量量名名、函函数数名名、标标号号等等统统称称为为标标识识符符。除除库库函函数数的的函函数数名名由由系系统统定定义义外外,其其余余都都由由用用户户自自定定义义。标标识识符符只只能能是是字字母母(AZ,az)、数数字字(09)、下下划划线线(_)组组成成的的字字符符串串,并并且且其第一个字符必须是字母或下划线。其第一个字符必须是字母或下划线。在使用标识符时还必
16、须注意以下几点:在使用标识符时还必须注意以下几点:l尽尽管管标标准准C并并不不限限制制标标识识符符的的长长度度,但但它它受受各各种种版版本本的的C 语语言言编编译译系系统统限限制制,同同时时也也受受到到具具体体机机器器的的限限制制。例例如如在在某某种种C中中规规定定标标识识符符前前八八位位有有效效,当当两两个个标标识识符符前前八八位位相相同同时时,则则被被认认为为是是同同一个标识符;一个标识符;l在在标标识识符符中中,大大小小写写字字母母不不同同。例例如如test和和TEST是是两两个个不不同同的的标标识符;识符;l虽虽然然标标识识符符可可以以由由程程序序员员随随意意定定义义,但但因因为为标标
17、识识符符是是用用于于标标识识某某个个量量的的符符号号。因因此此,命命名名时时应应尽尽量量考考虑虑表表示示出出相相应应的的意意义义,以以利利于阅读理解,作到于阅读理解,作到“见名识义见名识义”;2 关键字关键字 关关键键字字是是由由C语语言言规规定定的的具具有有特特定定意意义义的的字字符符串串,通通常常也也称称为为保保留留字字。用用户户定定义义的的标标识识符符不不能能与与关关键键字字相相同同。C语语言言的的关关键键字字分为以下几类:分为以下几类:l类类型型说说明明符符:用用于于定定义义、说说明明变变量量、函函数数或或其其它它数数据据结结构构的的类类型型,如前面例题中用到的如前面例题中用到的int
18、。l语语句句定定义义符符:用用于于表表示示一一个个语语句句的的功功能能。如如return就就是是条条件件语语句句的语句定义符。的语句定义符。l预处理命令字:用于表示一个预处理命令。如预处理命令字:用于表示一个预处理命令。如include。总总 之之,不不 能能 作作 为为 标标 识识 符符 使使 用用 的的 关关 键键 字字 与与 特特 定定 字字 有有:int,char,float,double,short,long,unsigned,struct,union,auto,extern,register,static,typedef,goto,return,sizeof,break,conti
19、nune,if,else,do,while,switch,case,default,enum,for,void,entry,define,include,undef,ifndef,endif,line,const,signed,void,volatile。3 运算符运算符 C语语言言中中含含有有相相当当丰丰富富的的运运算算符符。运运算算符符与与变变量量、函函数数一一起起组组成表达式,表示各种运算功能。运算符由一个或多个字符组成。成表达式,表示各种运算功能。运算符由一个或多个字符组成。4 分隔符分隔符 在在C语语言言中中采采用用的的分分隔隔符符有有逗逗号号和和空空格格两两种种。逗逗号号主主要要用
20、用在在类类型型说说明明和和函函数数参参数数表表中中,分分隔隔各各个个变变量量。空空格格多多用用于于语语句句各各单单词词之之间间,起起分分隔隔作作用用。在在关关键键字字、标标识识符符之之间间必必须须要要有有一一个个或或多多个个空格符分隔。空格符分隔。5 常量常量 C语语言言中中使使用用的的常常量量可可分分为为数数字字常常量量、字字符符常常量量、字字符符串串常常量、符号常量、转义字符等多种。量、符号常量、转义字符等多种。6 注释符注释符 C 语语言言的的注注释释符符是是以以“/*”开开头头并并以以“*/”结结尾尾的的串串。在在“/*”和和“*/”之之间间的的内内容容即即为为注注释释。程程序序编编译
21、译时时,不不对对注注释释作作任任何何处处理理。注注释释可可出出现现在在程程序序中中的的任任何何位位置置。注注释释用用来来向向用用户户提提示示或或解解释释程程序序的的意意义义。在在调调试试程程序序中中对对暂暂不不使使用用的的语语句句也也可可用用注注释符括起来,使翻译跳过不作处理,待调试结束后再去掉注释符。释符括起来,使翻译跳过不作处理,待调试结束后再去掉注释符。1.2 简述两个最常用的输入简述两个最常用的输入和输出函数和输出函数 输输入入和和输输出出是是最最常常用用的的程程序序功功能能。C语语言言本本身身并并不不提提供供输输入入、输输出出语语句句。在在C程程序序中中的的输输入入和和输输出出都都是
22、是通通过过调调用用标标准准库库函函数数来来实实现现的的。在在以以上上例例子子中中,我我们们使使用用了了输输入入和和输输出出函函数数scanf和和printf。这也是最常用的两个输入输出函数。这也是最常用的两个输入输出函数。scanf和和 printf这这两两个个函函数数分分别别称称为为格格式式输输入入函函数数和和格格式式输输出出函函数数。其其意意义义是是按按指指定定的的格格式式输输入入输输出出值值。因因此此,这这两两个个函函数数在在括括号中的参数表都由以下两部分组成:号中的参数表都由以下两部分组成:“格式控制串格式控制串”,参数表,参数表 格格式式控控制制串串是是一一个个字字符符串串,必必须须
23、用用双双引引号号括括起起来来,它它表表示示了了输输入入输输出出量量的的数数据据类类型型。各各种种类类型型的的格格式式表表示示法法将将在在以以后后详详细细讲讲述述。在在printf函函数数中中还还可可以以在在格格式式控控制制串串内内出出现现非非格格式式控控制制字字符符,这这时时在在屏屏幕幕上上显显示示原原文文。参参数数表表中中给给出出了了输输入入或或输输出出的的量量。当当有有多个量时,可使用逗号间隔。例如:多个量时,可使用逗号间隔。例如:printf(R=%d,s=%fn,r,s);其中其中:格式控制串格式控制串 输出参数表输出参数表 【例【例1-5】(见课本)见课本)【例【例1-6】(见课本)见课本)编编程程技技巧巧 在在支支持持C语语言言的的汉汉字字操操作作系系统统(如如UCDOS、“中中文文之之星星”等等汉汉字字系系统统)中中,可可以以在在程程序序中中使使用用汉汉字字作作为为提提示示字字符符,此此时时汉汉字字可可以以正正常常显显示示。若若把把在在此此汉汉字字系系统统下下编编写写的的使使用用汉汉字字作作为为提提示示的的程程序序在在英英文文操操作作系系统统下下运运行行,程程序序并并不不会会出出错错,但但显显示示的提示信息是怪字符的提示信息是怪字符(不是英文不是英文),无法看懂其意思。,无法看懂其意思。