C程序设计基础第1章-C程序设计初步_第1页
C程序设计基础第1章-C程序设计初步_第2页
C程序设计基础第1章-C程序设计初步_第3页
C程序设计基础第1章-C程序设计初步_第4页
C程序设计基础第1章-C程序设计初步_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C程序设计初步程序设计语言的基本概念C语言的基本数据类型C语言基本运算符和表达式运算C语言顺序程序设计程序设计语言的基本概念程序设计语言概述程序设计语言就是人和计算机进行信息交流的语言,展,根据计算机技术发展的不同阶段和应用场合的不同,程序设计语言可分为三类:机器语言:以二进制指令代码表示的指令集合,是计算机能直接识别和执行的语言。汇编语言:用助记符来表示指令的符号语言,每一条汇编指令和机器指令都有一一对应关系,这些助记符通常是指令功能的英文缩写。高级语言:高级语言是一种接近于人们的自然语言与数学语言的程序设计语言。高级语言分为面向问题语言、面向结构语言和面向对象语言三种类型。程序设计语言的基本概念C语言的特点C语言是一种结构化程序设计语言,与其它程序设计语言相比,C语言具有下列基本特点:C语言简洁、紧凑,使用方便、灵活。C语言可以实现部分低级语言功能。C语言是一种结构化程序设计语言。C语言数据类型丰富。C语言运算符丰富。C系统中使用预处理语句,可以实现宏定义、包含以及条件编译的预处理功能。C程序可移植性好。程序设计语言的基本概念语言处理程序概述用汇编语言和高级语言编写的程序都称为源程序,计算机不能直接识别并执行源程序,需要通过语言处理程序将它们翻译成计算机能直接识别并执行的机器语言。对于汇编语言编写的程序,计算机系统使用称之为“汇编程序”的语言处理程序将它翻译成为计算机系统能够理解并执行的机器语言。对于高级语言编写的程序,翻译方式有两种:解释方式编译方式。程序设计语言的基本概念语言处理程序概述解释方式:用解释方式处理源程序时,每读入一句高级语言的语句,就对该语句的语法、语义进行检查,若没发现错误则将其翻译对应的执行代码并立即执行;一条高级语言的语句处理完成后,再次读入下一条语句进行处理,直至整个程序源代码处理完成为止。编译方式:用编译方式处理源程序时,将源程序代码一次性完全翻译成计算机能理解的目标程序,完成这个工作的语言处理程序称为“编译程序”,每种不同的计算机程序设计语言设计的程序源代码都需要使用不同的编译程序来进行处理。连接:编译后形成的目标程序还需要通过“连接程序”的处理,将程序中所用的函数调用、系统功能调用等嵌入到目标程序中,构成一个可以连续执行的二进制执行文件。程序设计语言的基本概念C程序的基本结构任何一种计算机程序设计语言都有自己特定的字符集、语法规则、语义和一定的表现形式,程序的书写格式和程序的构成规则是程序语言表现形式的一个重要方面。/*Name:e0101.cpp

程序的作用是展示C程序的构成成分。*/#include<stdio.h>voidmain(){

int

a,b,s; /*定义三个整型变量a,b和s*/a=12;//将12赋值给变量a,即让变量a的值为12b=23;s=a+b;//计算a、b两个变量的和并赋值给变量s

printf("s=%d\n",s);//输出变量s的值(即内容)}程序设计语言的基本概念C程序的基本结构注释语句。注释语句在程序中并不起功能性的作用,注释语句的书写方法有两种:/*字符序列*/:单/多行注释方式,即这种注释中既可写在一行上,又可以写成多行的形式。//字符序列:单行注释方式,即这种注释只能写成为单行的形式。编译预处理语句。编译预处理语句使用#号开头的语句,所谓编译预处理就是C编译系统在对C源程序进行编译之前就对源程序进行的一些预加工。程序设计语言的基本概念C程序的基本结构函数。C程序由一到若干个函数构成,其中有且仅有一个主函数(即名字为main的函数)。主函数是C程序执行的入口,一般也应该是出口。C程序主函数的框架形式常用的有两种:voidmain(){//主函数C代码}intmain(){//主函数C代码

return0;}程序设计语言的基本概念C程序开发步骤开发C程序的主要任务有:程序设计和源程序代码的录入编辑对源程序代码进行编译对目标代码进行连接执行程序(调试程序)注意点:上述C程序设计的四个处理步骤根据需要可以反复进行,直至程序运行的结果能够达到预期的目标为止C程序设计初步程序设计语言的基本概念C语言的基本数据类型C语言基本运算符和表达式运算C语言顺序程序设计C语言的基本数据类型数据在程序中的重要地位程序包含两方面内容:数据描述和算法描述。数据是程序的必要组成部分,是程序的处理对象。数据在程序中是以变量或者常量的形式来描述的,每个数据都具有确定的数据类型,如整型类数据、实型类数据、字符类数据等。不同类型的数据在内存中分配的存储单元数目不同,因而它的取值的范围、所适应的运算也不同。C语言基本数据类型基本数据类型是C语言系统提供的基础数据类型(亦称为内置数据类型),它是C程序中最基础的、不可再分的数据类型。C语言的基本数据类型程序中数据的分类:常量:在程序执行过程值中不会发生变化的数据。变量:在程序执行过程值中有可能发生变化的数据。C语言的基本数据类型整型常量整型常量的分类和表示方法 整型数据是计算机程序设计中最常用的数据类型之一,它表示数据的范围与计算机系统的软硬件环境有关。16位的系统(例如TurboC)中采用2个字节来存储一个整型数据,整型数据表示的范围为-32768~32767(-215~215-1)32位的系统(例如VisualC++6.0)中采用4个字节来存储一个整型数据,整型数据表示的数据范围为-231~231-1C语言的基本数据类型整型常量整型常量的表示形式一般有十进制形式、八进制形式和十六进制形式在数据后使用后缀字母“L”或者“l”表示长整型数据常量;在数据后使用后缀字母“U”或者“u”表示无符号整型常量;进制表达方式例子十进制整型常量以数字1、2、3…、9之中的一个数开头的数据形式1235八进制整型常量以数字0开头的数据形式012035十六进制整型常量以0x开头的数据形式0x120x35C语言的基本数据类型实型常量十进制数据形式实型常量 数据由数字0~9和小数点组成,用小数点连接实型的整数部分和小数部分。

0.23,.9,5.0,-267.8230等均为合法的实型常量

指数形式实型常量 数据由数字0~9、小数点和阶码表示组成,阶码部分由标志“e”(或“E”)和指数部分构成,指数表示的一般形式为: 整数部分.小数部分E指数部分

2.3E3表示2.3×103,3.7E-2表示3.7×10-2, 1e-2表示10-2(即1×10-2)

C语言的基本数据类型字符类常量字符常量的分类和表示方法字符常量 字符常量是用单引号括起来的一个字符,如’$’、’@’、’A’等转义字符 转义字符是用反斜杠字符’\’开头的字符序列,此时反斜杠字符后面的字符或字符序列不表示自己本身的含义而转变为表示另外的特定意义(转义字符表参见表1.1)C语言的基本数据类型字符类常量字符串常量字符串常量是用双引号括起来的由0个字符或若干个字符构成的字符序列,例如"Thisisastring."。字符串常量占用一段连续的存储单元,系统自动在其最后添加上表示字符串结尾的字符’\0’

。符号常量

在C语言中,除了可以具体的各种类型常量外,还可以可以用符号代替常量,用以代替常量的符号称为符号常量(或称为宏常量)。符号常量在使用之前也必须预先定义。其定义的格式为:

#define符号常量标识符

常量C语言的基本数据类型标识符概念和命名规则数据用来描述程序所处理的对象。为了能够在程序中处理数据对象,数据对象需要用名字来表示。C语言中使用标识符来为数据对象命名,标识符的命名规则:构成标识符的字符只能是字母、数字和下划线;标识符中第一个字符必须是字母或下划线;构成标识符时都要区分字母的大小写;构成标识符的字符个数(标识符长度)与所使用的环境相关,C89标准中规定可以区分的最大长度是31个字符,C99标准中规定可以区分的最大长度是63个字符。C语言的基本数据类型标识符概念和命名规则

C语言中的标识符分为两大类:系统保留字 保留字(关键字)是一类特殊的标识符,是C语言中具有特定严格意义的基本词汇,任何情况下都不能将它们作为用户标识符使用。用户自定义标识符 自定义标识符即程序员为程序中数据对象的命名,除了必须遵守标识符的命名规则外,还需要注意以下两个方面:将标识符取得既有意义,又便于阅读;注意避免含义上或书写时引起混淆。合法自定义标识符的例子:

a b1 file_name_buf 不合法自定义标识符例子及错误原因:

123abc /*不是以英文字母开头*/float /*与系统保留字同名*/up.to /*标识符中出现了非法字符“.”*/zhangsan/*标识符中间出现了非法字符空格*/C语言的基本数据类型变量的定义和使用使用变量表示在程序运行过程中值可能发生变化的数据。变量就是用标识符对数据的命名,C语言规定变量必须先定义,然后才能使用。程序中对变量进行定义的主要目的有两个:规定变量的取值范围和规定变量能够参加的操作(运算),所以变量的定义必然和数据类型有关,不同类型的变量不但取值范围不同,而且能够参加的操作也不尽相同。变量定义的一般形式为:数据类型符

变量名列表;式中,变量名列表由一至若干个变量名字构成,如果有两个以上,则用逗号分隔;变量定义语句是一条C语句,最后需要使用分号表示语句结束。C语言的基本数据类型整型变量整型变量的表示方法能够存放整型数据的变量称为整型变量。与整型常量对应,整型变量也有基本整型、短整型、长整型和无符号整型,其数据类型名分别由限定词int、short、long和unsigned组成。各种类型整型变量的定义形式如下所示:基本整型: [unsigned]int

变量名列表;短整型: [unsigned]short[int]变量名列表;长整型: [unsigned]long[int]变量名列表;int

a,b; //定义了两个基本整型变量a,bunsignedint

x,y; //则同时定义了两个无符号的整型变量x,y

C语言的基本数据类型实型变量实型变量的表示方法

C语言中实型变量分为单精度型和双精度型,其类型名分别用float和double表示单精度提供6~7位有效十进制位,占4个字节双精度量提供15~16位有效十进制位,占8个字节实型变量定义的形式如下所示:单精度型: float变量名列表;双精度型: double变量名列表;

floatsalary,area;//定义两个单精度实型变量salary和area doublewidth,length;//定义了两个双精度实型变量width和length

C语言的基本数据类型字符变量程序设计中用来存放字符型数据的变量称为字符型变量,C语言中字符型变量的定义形式如下:char变量名列表;chara,b; //则同时定义了两个字符型变量a,b

C程序设计初步程序设计语言的基本概念C语言的基本数据类型C语言基本运算符和表达式运算C语言顺序程序设计C语言基本运算符和表达式运算赋值运算符赋值运算符“=”的作用是将一个数据或是一个表达式的值赋给一个变量,用赋值号“=”把一个变量和一个表达式连接起来的式子称为赋值表达式。当赋值运算符两边的数据对象类型不一致时,在赋值时要进行数据类型的转换。转换的基本规则是以赋值运算符左边变量的数据类型为准。C语言中赋值表达式和赋值语句是不同的,赋值语句由赋值表达式加上C语句结尾符号分号“;”构成,其形式为:

<赋值表达式>;赋值语句作为单独的C语句出现,而赋值表达式可以作为一个运算对象出现在另外的表达式中,从而构成比较复杂的表达式或语句。例1.2

赋值运算符和赋值表达式示例。

C语言基本运算符和表达式运算算术运算符算术表达式:由算术运算符和括号将运算对象连接起来的、符合C语言语法规则的式子称为C语言的算术表达式。单目运算符 正号运算符“+”和负号运算符“-”。双目运算符 双目运算符共有五个,它们是:加号“+”、减号“-”、乘号“*”、除号“/”和求模运算符“%”。当两个整数相除时,得到的结果仍然是整数。除法结果采用截取法取整,即直接将小数部分去掉,例如:7/5=1、-7/5=-1。求模运算就是求余数,参加求模运算的两个对象必须都是整型对象,运算结果的符号与第一个(左边)运算对象相同,例如:7%5=2、-7%5=-2、7%-5=2。实型数据的取余数需要使用C的标准库函数。例1.3

算术运算符使用示例。C语言基本运算符和表达式运算自增自减运算符自增运算符”++”和自减运算符”--是两个单目运算符,它们都只需要一个运算对象,其功能是将运算对象的值增加或减少一个该对象的单位值。自增运算符和自减运算符都可以作用于整型变量、实型行变量或者字符型变量,而不能作用于构造数据类型的变量。自增运算符和自减运算符不能作用于常量数据或者表达式。自增、自减运算符在使用的形式上,都有前缀和后缀两种形式。在前缀或后缀形式时,其取值的方法不同。C语言基本运算符和表达式运算自增自减运算符自增、自减运算符的前缀形式:前缀形式即自增、自减运算符(++、--)出现在变量的左侧,如:++i、--i。自增、自减运算符的前缀形式对变量实施的运算是“先增值后引用”。自增、自减运算符的后缀形式:后缀形式即自增、自减运算符(++、--)出现在变量的右侧,如:i++、i--。自增、自减运算符的后缀形式对变量实施的运算是”先引用后增值”。例1.4

自增自减运算符示例。

特别提示:诸如(i++)+(i++)+(i++)样式的表达式解释与所使用的编译器有关。C语言基本运算符和表达式运算复合赋值运算符复合赋值运算符也称为自反运算符,是在赋值运算符“=”的前面加上其它运算符构成的一种复合运算符,简称为“复合赋值符”。复合赋值符共有:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=<操作数1>OP=<操作数2>在C语言中被解释为:

<操作数1>=<操作数1>OP(<操作数2>)a+=5等价于a=a+5x*=y+1等价于x=x*(y+1)C语言基本运算符和表达式运算逗号运算符逗号运算符用于将两个以上的表达式连接成一个逗号表达式。逗号表达式的一般形式为:

<表达式1>,<表达式2>,…,<表达式n>逗号表达式在求值时,按从左到右的顺序分别计算各表达式的值,用最后一个表达式的值和数据类型来表示整个逗号表达式的值和数据类型。例1.5

逗号表达式计算示例。sizeof运算符sizeof运算符的功能是返回其所测试的数据对象所占存储单元的字节数。运算符使用形式为:

sizeof(<数据对象>)例1.6

测试C语言基本数据类型数据所占内存单元的字节数。C语言基本运算符和表达式运算运算符优先级别和结合性规则在表达式求值时,若运算对象两边的运算符优先级不同,按优先级别从高到低运算。在表达式求值时,若运算对象两边的运算符优先级相同,则按其结合规则处理。何时需要考虑运算符的结合性 一个运算对象的两边具有同级运算符时,需要考虑结合性问题。左结合(从左向右):对应运算对象先与自己左边的运算符结合运算。右结合(从右向左):对应运算对象先与自己右边的运算符结合运算。

C语言基本运算符和表达式运算数据的混合运算和数据类型转换——隐式转换隐式转换是系统的自动转换,数据类型转换的原则是向表达数据能力更强的方向转换。即当在表达式运算过程中出现了不同数据类型的数据进行混合运算时,遵循下面的转换规则:高double←float↑long↑unsigned↑低int←short,char例1.7

混合运算时系统自动数据类型转换示例。C语言基本运算符和表达式运算数据的混合运算和数据类型转换——强制类型转换显式转换又称为强制类型转换。其一般形式是:

(类型名)(<表达式>)若被转换的对象是表达式,则需用括号将整个被转换对象括住;若被转换的对象是单个变量,则括号可以省略。在使用强制类型转换时特别应该注意的是类型转换只对标注强制转换这一次起作用,在程序的其余地方,变量还保留其原有的值。例1.8

混合运算时强制数据类型转换示例。C程序设计初步程序设计语言的基本概念C语言的基本数据类型C语言基本运算符和表达式运算C语言顺序程序设计C语言顺序程序设计C程序中的数据输出格式化输出函数printf

格式化标准输出函数printf使用的常见格式有两种:

printf("字符序列");功能:作用是将"字符序列"表示的字符串常量输出到标准输出设备(显示器)上。

printf("格式控制字符串",输出数据列表);功能:向标准输出设备(显示器)输出一个或多个任意类型的数据。输出数据列表:由有一到若干个输出表达式组成,两个输出表达式项之间用逗号分隔。格式控制字符串:由“普通字符”和“格式说明项”组成。C语言顺序程序设计C程序中的数据输出格式化输出函数printf——格式控制字符串格式控制字符串中的普通字符,输出时照原样输出。格式字符串中的格式控制项与输出表列中的输出表项一一对应,指定输出表项的输出格式。一个格式说明以%开始到格式控制字符结束,中间含有若干个可选项。其一般形式为:

%-*m.nl/h<格式控制字符>格式控制字符:格式控制字符用于规定对应数据项的输出格式(参见P21表1.3)例1.9C程序输出数据时的格式控制字符选择示例。C语言顺序程序设计C程序中的数据输出格式化输出函数printf——格式控制字符串长度修正可选项l/h:长度修正项用于指定对应位置输出数据是按“长类型”输出还是按“短类型”输出。例1.10

使用长度修正选项正确输出数据示例。域宽可选项m.n:指定对应输出项所占的输出宽度,即使用多少个字符的位置来显示对应输出数据。“*”可选项:含有“*”可选项的格式控制项对应输出表列中的两个数据项,其意义是用前一个数据项的值作为后一个数据项输出时的指定域宽。减号可选项:用于指定对应输出数据的对齐方向。选用减号时输出数据左对齐,否则输出数据右对齐。例1.11

输出格式控制项中“*”可选项的使用示例。例1.12

控制实型数据输出的域宽、精度和数据对齐方向示例。例1.13

使用域宽和精度控制选项控制字符串数据输出示例。C语言顺序程序设计C程序中的数据输出单个字符输出标准库函数putcharC程序中输出字符数据可以使用printf函数、采用%c格式控制项进行输出;也可以使用专用于单个字符输出的标准库函数putchar。putchar函数的使用形式为:putchar(字符常量或字符变量);功能:将一个字符或字符变量的内容输出到标准输出设备(屏幕)上。输出数据形式:用putchar函数输出的字符数据可以是单引号括起来的普通字符、转义字符或者字符变量的值。例1.14

使用printf和putchar函数输出单个字符示例。C语言顺序程序设计C程序中的数据输入格式化输入函数scanf格式化标准输入函数调用的一般格式为:scanf("格式控制字符串",地址表列);功能:从标准系统输入设备(键盘)上输入一个或多个指定类型的数据到由地址列表指定的内存单元中。地址列表:中的每一项为一个地址量,其形式是在一般变量之前加地址运算符&,例如有变量x,则&x表示变量x的地址。格式控制字符串:格式控制字符串由普通字符和格式控制项组成。C语言顺序程序设计C程序中的数据输入格式化输入函数scanf——格式控制字符串格式控制字符串中的普通字符,在输入时必须原样照输入,即在输入数据对应的位置必须输入格式控制字符串中对应位置指定的字符。格式控制字符串中的格式控制项与地址列表中的地址表项一一对应,指定输入数据的输入格式。一个格式说明以%开始到格式控制字符结束,中间含有若干个可选项。其一般形式为:

%*ml/h<格式控制字符>格式控制字符:格式控制字符用于规定对应数据项的输入格式(参见P26表1.4)例1.15

C程序输入数据时的格式控制字符选择示例。C语言顺序程序设计C程序中的数据输入格式化输入函数scanf——格式控制字符串长度修正可选项l/h:用于指定对应输入数据是按“长类型”输入还是按“短类型”输入。域宽可选项m:指定输入数据时在输入流上最多截取的字符个数(最多的含义是:当输入流上的字符个数足够多时,依次截取指定的字符个数;如果输入流上的字符个数不足时,则取完为止)。例1.16

格式控制项的域宽可选项使用示例。“*”号可选项:“*”的作用是表示“虚读”,即系统从键盘上按指定格式读入一个数但并不赋给任何变量(即将数据读入并抛弃)。C语言顺序程序设计C程序中的数据输入单个字符输入标准库函数getchar输入单个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论