您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第2章 C语言基础及顺序结构程序设计
普通高等教育“十一五”国家级规划教材第2章C语言基础及顺序结构程序设计作为一种程序设计语言,C语言规定了一套严密的字符集和语法规则,程序设计就是根据这些基本字符和语法规则按照实际问题的需要编制出相应的C语言程序。本章首先介绍C语言的语法基础,包括字符集、数据类型、标识符、关键字、保留标识符、变量和常量的概念,其次介绍基本运算符和表达式的运算规则以及基本输入/输出函数的用法,最后介绍顺序结构程序设计的基本方法,并学习编写一些简单的顺序结构程序。普通高等教育“十一五”国家级规划教材2.1C语言的字符集2.2C语言的关键字、标识符与保留标识符2.3C语言的数据类型2.4常量2.5变量2.6C语言的运算符和表达式2.7C语言的最基本的运算符与表达式2.8C语言的基本语句2.9数据的输入与输出2.10顺序结构程序设计2.11程序举例第2章C语言基础及顺序结构程序设计普通高等教育“十一五”国家级规划教材2.1C语言的字符集字符是组成C语言的最基本的元素。C语言字符集由字母、数字、空白符、下划线、标点和特殊字符组成(在字符常量、字符串常量和注释中还可以使用汉字等其他图形符号)。由字符集中的字符可以构成C语言的基本的语法单位(如标识符、关键字、运算符等)。普通高等教育“十一五”国家级规划教材2.1C语言的字符集C语言字符集及常规分类如下:①字母:小写字母a~z共26个,大写字母A~Z共26个。②数字:0~9共10个。③空白符:空格符、制表符和换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用,在其他地方出现时,只起间隔作用,编译程序时对它们忽略。④下划线:_。⑤标点符号、特殊字符:+、-、*、/、%、=、、、(、)、[、]、{、}、!、&、#、^、?、,、.、;、:、'、、\。在编写C语言程序时,只能使用C语言字符集中的字符,且区分大小写字母。如果使用其他字符,编译器将把它们视为非法字符而报错。普通高等教育“十一五”国家级规划教材2.2C语言的关键字、标识符与保留标识符正如人类的自然语言具有其语法规则一样,C语言也规定了自身的语法。为了按照一定的语法规则构成C语言的各种成分,C语言规定了基本词法单位。基本的词法单位是单词,而构成单词的最重要的形式是关键字、标识符和保留字符。普通高等教育“十一五”国家级规划教材2.2C语言的关键字、标识符与保留标识符2.2.1关键字关键字是具有特定含义的、专门用来说明C语言的特定成分的一类单词。C语言的关键字都用小写字母书写,不能用大写字母书写。表2-1C语言关键字列表chardoubleenumfloatintlongshortsignedstructunionunsignedvoidbreakcasecontinuedefaultdoelseforgotoifreturnswitchwhileautoexternregisterstaticconstsizeoftypedefvolatile普通高等教育“十一五”国家级规划教材2.2.2标识符在C程序中,用于标识名字的有效字符序列称为标识符。标识符可用来标识变量名、符号常量名﹑函数名、数组名和数据类型名等。标识符的命名应遵循以下规则:①标识符只能由英文字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。②大小写英文字母被认为是不同的字符。例如,D和d,BOOK和book,A_b和a_b是三个不同的标识符。③标识符不能与关键字和保留标识符重名。④在一个标识符中,各个字符之间不允许出现空格。⑤标识符的长度可以为任意,它随编译系统的不同而不同。2.2C语言的关键字、标识符与保留标识符普通高等教育“十一五”国家级规划教材正确的标识符命名:_3ax3BOOK1PIsum5music_3_4abcD34xz不正确的标识符命名:a+bG.W.Bush3s-3xyesnointabπr#xybowy-1yes/noprintf2.2.2标识符定义标识符时应尽量做到“见名知意”,以提高程序的可读性。例如,可用sum表示求和,name表示姓名、max表示最大等。2.2C语言的关键字、标识符与保留标识符普通高等教育“十一五”国家级规划教材2.2.3保留标识符保留标识符是系统保留的一部分标识符,通常用于系统定义标准库函数的名字。例如,正弦函数名sin、打印函数名printf、预编译命令define等。2.2C语言的关键字、标识符与保留标识符普通高等教育“十一五”国家级规划教材2.3C语言的数据类型计算机的基本功能之一是数据处理,计算机语言支持的数据类型越丰富,它的应用范围就越广。数据类型是依据被说明量的性质、表示形式、占据存储空间的多少以及构造特点进行划分的。普通高等教育“十一五”国家级规划教材2.3C语言的数据类型C语言的数据类型如图所示图2-1C语言数据类型的分类普通高等教育“十一五”国家级规划教材在C语言中数据类型可分为4大类:(1)基本数据类型。它是编译系统已定义的类型,特点是它的值不可以再分解为其他类型。(2)构造数据类型。它是用户自己定义的类型,是根据已定义的一个或多个数据类型构造出来的。(3)指针类型。它是一种特殊的的数据类型,用来表示某个变量在内存储器中的存放地址。(4)空类型。它主要用途有两点,一是用作函数的返回类型,二是用作指针的基本类型。2.3C语言的数据类型普通高等教育“十一五”国家级规划教材2.4常量所谓常量是指在程序运行的整个过程中,其值始终不变的量。常量可以有不同的类型,可分为直接常量和符号常量。直接常量也就是日常所说的常数,包括数值常量和字符型常量两种。其中数值常量又包括整型常量和实型常量;字符型常量可分为字符常量和字符串常量;符号常量则是指用标识符定义的常量,从字面上不能直接看出其类型和值。普通高等教育“十一五”国家级规划教材2.4常量C语言中常量的分类,如图2-2所示。图2-2C语言的常量普通高等教育“十一五”国家级规划教材2.4.1整型常量C语言中整型常量有十进制、八进制、十六进制3种形式。2.4常量普通高等教育“十一五”国家级规划教材1、十进制整型常量十进制整型常量的表示与数学上的整数表示相同,十进制整型常量没有前缀,由0~9的数字组成。以下各数是合法的十进制整型常量:237,-568,65535,1627以下各数不是合法的十进制整型常量:023(不能有前导0),23D(含有非十进制数码)2.4.1整型常量2.4常量普通高等教育“十一五”国家级规划教材2.4.1整型常量2、八进制整型常量八进制整型常量的表示以数字0开头,即以0作为八进制数的前缀,由0~7的数字组成,八进制数通常是无符号数。以下各数是合法的八进制常数:015(十进制为13)0101(十进制为65)0177777(十进制为65535)以下各数不是合法的八进制常数:256(无前缀0),03A2(包含了非八进制数字A)-0128(出现了非八进制数字8和负号)2.4常量普通高等教育“十一五”国家级规划教材3、十六进制整型常量十六进制整型常量的表示以0x或0X开头,即以0x或0X作为前缀(注:十六进制数前缀字符0x,x前面是数字0而不是字符o),由0~9,A~F或a~f的数字组成。以下各数是合法的十六进制整型常量:0X2A(十进制为42)0XA0(十进制为160)0XFFFF(十进制为65535)以下各数不是合法的十六进制整型常量:5A(无前缀0X)0X3H(含有非十六进制数码H)2.4.1整型常量2.4常量普通高等教育“十一五”国家级规划教材另外,整型常量按长度划分为两种:短整型和长整型(后缀为小写字母l或大写字母L),其中默认为短整型,如-377是一个短整型数,而-377l或-377L表示-377是长整型。2.4.1整型常量2.4常量普通高等教育“十一五”国家级规划教材2.4.2实型常量在C语言中,实型常量只能用十进制形式表示,不能用八进制和十六进制形式表示。它有两种形式:小数形式和指数形式。2.4常量普通高等教育“十一五”国家级规划教材2.4.2实型常量1.小数形式由正负号、0~9的数字和最多一个小数点组成(必须有小数点)。如:-1.85,0.3456,120.0,.426,-11.都是十进制小数形式实数。小数点前面和后面可以没有数字(不能同时省略)。2.4常量普通高等教育“十一五”国家级规划教材2.4.2实型常量2.指数形式由十进制数加上阶码标志“e”或“E”以及阶码组成。其一般形式为:aEn。其中a为十进制数,n为十进制整数(n为正数时“+”可以省略)其值为:a×10n。例如,1.234e+12表示1.234*10¹²0.25e-8表示0.25*10-8。合法的实数:1.234e12(等于1.234×1012),3.7E-2(等于3.7×10-2),2.34e+8(等于2.34×108)非法的实数:568(无小数点),58.+e5(负号位置不对)2.7E(无阶码),6.4e+5.8(阶码为实数)e-5(阶码标志“e”之前无数字),2.4常量普通高等教育“十一五”国家级规划教材字符常量是用单引号括起来的一个字符。例如:‘a’、‘0’、‘A’、‘-’、‘*’都是合法字符常量,注意,‘a’和‘A’是不同的字符常量。除了以上形式的字符常量以外,C语言还定义了一些特殊的字符常量,是以“\”开头的字符序列,称为转义字符。转义字符是一种特殊的字符常量,具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如:如‘\n’中的n不表示字母n而作为“换行”符。2.4.3字符常量2.4常量普通高等教育“十一五”国家级规划教材表2-2转义字符及其含义字符形式含义ASCII代码\n换行,将当前位置移到下一行开头10\t水平位移,跳到下一个tab位置9\b退格,将当前位置移到前一列8\r回车,将当前位置移到本行开头13\f换页,将当前位置移到下一页开头12\\反斜杠字符“\”92\'单引号字符“'”39\双引号字符“”34\0空字符0\ddd1到3位八进制数所代表的ASCII码字符\xhh1到2位十六进制数所代表的ASCII码字符2.4常量普通高等教育“十一五”国家级规划教材注意:(1)字符常量只能用单引号括起来,不能用双引号或其他括号。例如:“a”是不合法的。(2)字符常量只能是单个字符,不能是字符串。例如:‘ab’是不合法的。(3)字符可以是字符集中任意字符,但数字被定义为字符型之后就以ASCII码值参与数值运算。如:‘6’和6是不同的,‘6’是字符常量,而6是整型常量。2.4.3字符常量2.4常量普通高等教育“十一五”国家级规划教材例2.1分析下面程序的运行结果。#includestdio.h/*程序需要使用C语言提供的标准函数库*/voidmain()/*主函数*/{printf(China\n\101\t\\\n);/*调用库函数printf显示字符串*/}2.4.3字符常量2.4常量程序运行结果:ChinaA\程序中有4个转移字符,分别是\n、\101、\t、\\。输出“China”后遇到转义字符‘\n’,因此换行,换行后遇到转义字符‘\101’,输出‘A’,后遇到转义字符‘\t',水平移动到下一个制表位置,后遇到转义字符'\\',输出'\'。普通高等教育“十一五”国家级规划教材在C语言中,字符串常量是用双引号括起来的字符序列。例如,以下是合法的字符串常量:“CHINA”“ThisisaCprogram.”“402754”“+++\\?ab”“*****”“”表示一个空格“”表示什么字符也没有“\n”表示一个转义字符换行‘ab’既不是字符常量,也不是字符串常量。2.4.4字符串常量2.4常量普通高等教育“十一五”国家级规划教材2.4.4字符串常量字符串常量在内存中存储时,系统自动在每一个字符串常量的尾部加一个“字符串结束标志”,即字符‘\0’(ASCII码值为0)。因此,长度为n个字符的字符串常量在内存中要占用n+1个字节的空间。例如,字符串“Cprogram”的长度为9(即字符的个数),但在内存中所占的字节数为10,即存放“Cprogra
本文标题:第2章 C语言基础及顺序结构程序设计
链接地址:https://www.777doc.com/doc-3196701 .html