C语言的基本知识_第1页
C语言的基本知识_第2页
C语言的基本知识_第3页
C语言的基本知识_第4页
C语言的基本知识_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、北京邮电大学出版社第第2章章 C语言的基本知识语言的基本知识 2.1 语言的数据类型语言的数据类型2.2 变量与常量变量与常量2.3 整型数据整型数据2.4 浮点数浮点数2.5 字符型数据字符型数据本章小结本章小结习题参考答案习题参考答案 北京邮电大学出版社2.1 语言的数据类型语言的数据类型一一C的数据类型的数据类型数据类型指针类型空类型基本类型整型实型(浮点型)字符型单精度型双精度型枚举类型构造类型数组类型结构体类型共用体类型北京邮电大学出版社2.2 变量与常量变量与常量一一 变量变量在程序运行过程中,其值可以被改变的量称为变量。 1变量定义变量定义C语言中的变量遵循“先定义,后使用”的原

2、则。在定义变量时应注意以下几点:F变量的定义必须在变量使用之前进行,一般放在函数体开头的声明部分。F允许同时定义同一数据类型的多个变量。F最后一个变量名之后必须以“;”号结束。F类型说明符与变量名之间至少要用一个空格分隔开。北京邮电大学出版社2.2 变量与常量变量与常量2变量赋初值变量赋初值 C语言中允许在变量定义的同时对变量赋初始值,也称变量的初始化。 3标识符标识符在C程序中有许多需要命名的对象,为了区分并引用这些对象,需要给对象命名,所命的名称称为标识符。C语言规定:标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或下划线;并且标识符不允许与关键字重名。需要注意的是严格

3、区分大小写字母。变量名的命名遵循标识符的命名规则。 北京邮电大学出版社2.2 变量与常量变量与常量二常量二常量1常量常量 在程序运行过程中,其值不可以被改变的量称为常量。常量也有不同的数据类型,在C语言中,常量是直接以自身的存在形式体现值和类型的,例如:123,-5是整型常量,1.5,1.2E-2是实型常量,y,*是字符常量。北京邮电大学出版社2.2 变量与常量变量与常量2符号常量符号常量在C语言中,常量除了以自身的存在形式直接表示之外,还可以为常量命名,称为符号常量。常量命名遵循标识符命名规则。C语言中定义符号常量的形式如下:#define 符号常量名 常量符号常量仍是常量,所以不允许改变符

4、号常量的值,企图对符号常量进行赋值的操作是不合法的。 一般符号常量名习惯用大写,而变量名习惯用小写,以示区别。 北京邮电大学出版社2.2 变量与常量变量与常量例:输入圆的半径r,求圆的周长c和圆的面积s。 #define PI 3.14159 main( ) float r,c,s ;scanf(%f , &r); /*输入圆的半径*/c = 2 * PI * r ;s = PI * r * r ; printf (c = %f , s = %f n ,c , s ); 北京邮电大学出版社2.3 整型数据整型数据一一整型变量整型变量1整型数据在内存中的存放形式整型数据在内存中的存放形式区分正负

5、的整型数据称为有符号整型数据。它在内存中是以二进制补码形式并按照其类型所占的字节数来存放的。最高位是符号位,0表示数值为正数,1表示数值为负数,其它位表示数值。正数的补码与原码相同;负数的补码是将其原码按位取反加1。 只有正数而没有负数的整型数据称为无符号整型数据。无符号数的全部位均表示数值,包括最高位。 北京邮电大学出版社2.3 整型数据整型数据2整型变量的分类整型变量的分类(1) 基本整型类型说明符为int,在内存中占2个字节,其取值范围为-3276832767。(2) 短整型类型说明符为short int或short,在内存所占字节数和取值范围均与基本型相同。(3) 长整型类型说明符为l

6、ong int或long,在内存中占4个字节,其取值范围为-21474836482147483647。北京邮电大学出版社2.3 整型数据整型数据(4) 无符号型类型说明符为unsigned,此类型的整数没有负数,分为三种:F无符号基本整型:类型说明符为unsigned int或unsigned,在内存中占2个字节,其取值范围为065535。F无符号短整型:类型说明符为unsigned short或unsigned short int,在内存中所占字节数和取值范围与无符号基本整型相同。F无符号长整型:类型说明符为unsigned long或unsigned long int,在内存中占4个字节,

7、其取值范围为04294967295。北京邮电大学出版社2.3 整型数据整型数据2整型变量的分类整型变量的分类整数类型表类型说明符数的范围分配字节数signed int-32768327672signed short int-32768327672Unsigned int0655352unsigned short int0655352signed long int-231231-14unsigned long0232-14北京邮电大学出版社2.3 整型数据整型数据3整型变量的定义与使用整型变量的定义与使用变量必须先定义后使用。注意:F类型不相同的整型数据可以进行算术运算。F整型数据的溢出 北京邮

8、电大学出版社2.3 整型数据整型数据二二整型常量整型常量1整型常量的表示方法整型常量的表示方法整型常量就是数学中的整数,在语言中,整数可用三种形式表示:(1) 十进制整型常量十进制整数,其数码为09,数值前可以有+、-符号。(2) 八进制整型常量在C语言中,八进制整数必须以0开头,即以0作为八进制数的前缀,数码取值为07。(3) 十六进制整型常量在C语言中,十六进制整数必须以0 x或0X开头,即以0 x或0X作为十六进制数的前缀,其数码取值为09以及AF或af。北京邮电大学出版社2.3 整型数据整型数据2整型常量的类型整型常量的类型整型常量有6种类型这些类型的,类型判别请注意以下几点:F一个整

9、型常量的值在-3276832767之间,认为是int类型。F一个整型常量的值超出了-3276832767范围,在-21474836482147483647范围内,认为是long int类型。F一个整型常量后面加了后缀L或l,则被认为是long int类型常量。F若C的编译系统确定short int与int类型数据在内存中所占字节数相同时,则int类型和short int类型是通用的。一般认为是int类型。F如不特别指明,一个整型常量被认为是有符号整型常量,除非在整型常量后面加了后缀U或u,则认为该整型常量是unsigned,无符号类型。北京邮电大学出版社2.3 整型数据整型数据三三用用prin

10、tf显示整型数据显示整型数据对于一个有意义的程序来说,应该有1个或多个输出。C语言本身不提供专门的输入输出语句,C中的输入输出操作是调用专门的输入输出函数来完成的。如果程序得到的结果是整型数据,则应该使用printf函数来显示这些整型数据。北京邮电大学出版社2.3 整型数据整型数据1printf函数的一般格式函数的一般格式printf函数是格式化输出函数,功能是按照指定的格式,将需要输出的数据项在标准的输出设备上输出。格式化输出函数printf的一般格式是:printf ( ”格式控制字符串” , 输出项列表 );北京邮电大学出版社2.3 整型数据整型数据1printf函数的一般格式函数的一般

11、格式“格式控制字符串”是一个用双引号括起来的字符串,是用于指定数据的输出格式,它包括两种信息: 普通字符,即按原样输出的字符。 格式说明,由“%”和格式字符组成,如%d、%f等。一般每个格式说明都应该有一个输出项与它对应,表示将输出项的值按格式说明中指定的格式输出。格式说明总是由“%”字符开始的。 北京邮电大学出版社2.3 整型数据整型数据2整型数据输出的格式字符整型数据输出的格式字符与整型数据相关的格式字符如下:(1) d格式符、i格式符,按照十进制整型的格式输出数据。 %d,按照实际宽度输出整型数据。 %md,m是整数,代表输出数据的宽度。m为正数,若数据的输出宽度小于m,则在左侧补相应数

12、目的空格,若大于m,则按照数据实际的位数输出。m为负数,若需要补空格,则在右侧补充。 %ld、%Ld输出长整型数据 。 %mld按照指定宽度输出长整型数据。 北京邮电大学出版社2.3 整型数据整型数据2整型数据输出的格式字符整型数据输出的格式字符(2) o格式符,按照八进制整型的格式输出数据。输出的数据按照无符号数据看待。 数据按照八进制形式输出时,不带前导0。可以使用“%lo”、“%mo”、“%mlo”格式说明。 (3) x格式符、X格式符,按照十六进制整型的格式输出数据。输出的数据为无符号数据。 数据按照十六进制形式输出时,不带前导0 x或oX。 可以使用“%lx”、“%mx”、“%mlx

13、”格式说明。 (4) u格式符,按照无符号整型的格式输出数据。 可以使用“%lu”、“%mu”、“%mlu”格式说明。 北京邮电大学出版社2.3 整型数据整型数据printf整型数据格式字符及其说明整型数据格式字符及其说明格式字符说 明d , i有符号十进制整数形式输出整数O无符号八进制整数形式输出整数x , X无符号十六进制整数形式输出整数U无符号十进制整数形式输出整数北京邮电大学出版社2.3 整型数据整型数据printf整型数据附加格式说明符及说明整型数据附加格式说明符及说明 附加格式说明符 说 明l , L 加在i , d , o , x , X , u前表示长整型m(一个正整数) 表示

14、数据的输出最小宽度 - 输出的数据位数小于规定宽度时,空格在右侧补充 北京邮电大学出版社2.3 整型数据整型数据四四用用scanf输入整型数据输入整型数据一个程序有0个或多个输入 。如果程序需要输入整型数据,则应该使用scanf函数调用来进行。 北京邮电大学出版社2.3 整型数据整型数据1scanf函数的一般格式函数的一般格式scanf函数是格式化输入函数,其功能是按照指定的格式,将需要输入的变量从标准的输入设备上进行输入。格式化输入函数scanf的一般格式是:scanf ( ”格式控制字符串” ,变量地址列表 );北京邮电大学出版社2.3 整型数据整型数据“格式控制字符串格式控制字符串”用于

15、指定输入格式,它包括两种用于指定输入格式,它包括两种信息信息: 普通字符,即按原样输入的字符普通字符,即按原样输入的字符。输入函数的格式控制字符串当中的原样输入字符,输入函数的格式控制字符串当中的原样输入字符,通常是用来规定输入的数据之间的分隔符号通常是用来规定输入的数据之间的分隔符号。若格式控制字符串中有普通字符,输入时一定要参若格式控制字符串中有普通字符,输入时一定要参照该格式输入。照该格式输入。 格式说明,由格式说明,由“%”和格式字符组成,与输出格和格式字符组成,与输出格式字符类似。每个格式说明都应该有一个输入式字符类似。每个格式说明都应该有一个输入地址项与它对应,表示数据按格式说明中

16、指定地址项与它对应,表示数据按格式说明中指定的格式输入。的格式输入。北京邮电大学出版社2.3 整型数据整型数据2整型数据输入的格式字符整型数据输入的格式字符整型数据输入的格式字符与输出格式字符类似。说明:(1) 长整型的数据输入一定要使用附加格式说明符l或L。(2) 可以用附加格式说明符m来指定输入数据所占最大宽度。(3) 附加符*不常用,表示输入的数据不存入到对应的变量中。北京邮电大学出版社2.4 浮点数浮点数一浮点变量一浮点变量1浮点数据在内存中的存放形式浮点数据在内存中的存放形式浮点数是以浮点小数形式存储的。系统将一个浮点数据分成小数和指数两个部分存储。北京邮电大学出版社2.4 浮点数浮

17、点数2浮点型变量的分类浮点型变量的分类 (1) 单精度型类型说明符为float,在内存中占4个字节,其取值范围的绝对值为10-381038,提供67位有效数字。(2) 双精度型类型说明符为double,在内存中占8字节,其取值范围的绝对值为10-30810308,提供1516位有效数字。(3) 长双精度型类型说明符为long double,在内存中占10个字节,其取值范围的绝对值为10-4932104932,提供1819位有效数字。北京邮电大学出版社2.4 浮点数浮点数二浮点常量二浮点常量1浮点型常量的表示方法浮点型常量的表示方法浮点型常量也称为实数或浮点数。在语言中,浮点数只采用十进制,有两

18、种表示形式:(1) 小数形式小数形式的浮点数是十进制的。由数字09和小数点及数值前的+、-符号组成。注意一定要有小数点。(2) 指数形式由十进制数,加阶码标志“e”或“E”以及阶码(只能为十进制整数)组成。其一般形式为 a E n (a为十进制数,n为十进制整数),其值为 a*10n。北京邮电大学出版社2.4 浮点数浮点数二浮点常量二浮点常量2浮点型常量的类型浮点型常量的类型对于浮点数的两种表示方法,系统均默认为是双精度浮点型常量。如果一个浮点型常量的后面加上了后缀F或f,则被认为是float单精度浮点数。北京邮电大学出版社2.4 浮点数浮点数三用三用printf显示浮点数据显示浮点数据与浮点

19、型数据相关的格式字符如下:(1) f格式符,按照小数形式输出数据,单精度与双精度的浮点数输出都使用f格式符。有如下几种用法: %f,不指定输出的宽度,整数部分全部输出,小数位数6位。 %m.nf,指定输出的数据总宽度为m,其中小数位数n位。若数据的输出宽度小于m,则在左侧补充相应数目的空格以达到总宽度为m,若数据的输出宽度大于m,则按照数据实际所占宽度输出。 %-m.nf,类似于%m.nf,若需要补空格在右侧补充。 北京邮电大学出版社2.4 浮点数浮点数三用三用printf显示浮点数据显示浮点数据(2) e格式符、E格式符,按照指数形式输出数据,单精度与双精度的浮点数都可使用。 (3) g格式

20、符、G格式符,输出浮点数据,根据数值输出所占的宽度大小,自动选择宽度小的f格式或e/E格式,不输出无意义的零。 北京邮电大学出版社2.4 浮点数浮点数四用四用scanf输入浮点数据输入浮点数据浮点型数据输入的格式字符与输出格式字符类似 。 说明:(1) 双精度浮点型的数据输入应该使用附加格式说明符l,否则输入时无法正确接收用户输入的数据。(2) 输入浮点数据时不允许规定精度。(3) 输入多个浮点数据时,如果未在输入格式控制字符串中加入分隔符,同样在输入时要使用空格、回车键、Tab键将多个数值分隔开。北京邮电大学出版社2.5 字符型数据字符型数据一字符变量一字符变量1字符型数据在内存中的存放形式

21、字符型数据在内存中存储的是字符的ASCII码值的二进制形式,一个字符的存储占用一个字节。2字符型变量的定义与使用字符变量的类型说明符是char。由于字符变量在内存中存放的是字符的ASCII值,所以也可以把它们看成是整型量。北京邮电大学出版社2.5 字符型数据字符型数据二字符常量二字符常量1字符常量是用一对单引号括起来的一个字符。 2转义字符转义字符有其特定的含义,不同于字符原本的含义,是用一个“”开头的字符序列来表示。 北京邮电大学出版社2.5 字符型数据字符型数据常用的转义符常用的转义符 转义字符转义字符的意义十进制ASCII码值n回车换行,将当前位置移至下一行的开头10t横向跳格,将当前位

22、置移至下一个Tab位置9b退格,将当前位置移至前一列8r回车,将当前位置移至本行开头13f换页,将当前位置移至下一页开头12反斜杠字符本身92单引号字符39”双引号字符34ddd13位八进制数所代表的字符八进制数ddd对应的十进制数xhh12位十六进制数所代表的字符十六进制数hh对应的十进制数北京邮电大学出版社2.5 字符型数据字符型数据三三用用printf显示字符显示字符输出字符型数据的格式字符只有c格式符,将输出项按照字符形式输出。有如下两种用法: %c,按照字符的形式输出数据,输出宽度为1位。字符数据输出显示时不带单引号。 %mc、%-mc,指定输出的数据总宽度为m。北京邮电大学出版社2

23、.5 字符型数据字符型数据四四用用scanf输入字符输入字符输入字符型变量的格式字符是c格式符,将输入的数据以字符形式赋值给对应的字符型变量。有如下两种用法: %c,字符形式的输入。一个字符输入时所占的宽度只有1位,所以在连续多个字符的输入时,不需要加入分隔符,只需连续输入。输入字符时,转义字符如回车换行符等会作为有效字符输入。 %mc,指定输入数据的宽度为m。北京邮电大学出版社2.5 字符型数据字符型数据五五用用getchar输入字符和输入字符和putchar输出字符输出字符C语言还提供函数getchar()和putchar()专门用来做字符量的输入输出。这两个函数在使用时必须在程序中的所有

24、函数的定义前用编译预处理命令include 或 include “stdio.h”北京邮电大学出版社2.5 字符型数据字符型数据五五用用getchar输入字符和输入字符和putchar输出字符输出字符1putchar函数函数putchar函数的功能是向标准输出设备输出一个字符。函数调用格式:putchar(字符表达式)函数调用括号中是参数,参数是一个字符型常量、字符型变量或是字符型表达式,也可以是一个整型量。北京邮电大学出版社2.5 字符型数据字符型数据五五用用getchar输入字符和输入字符和putchar输出字符输出字符2getchar函数函数getchar函数的功能是从标准输入设备上接收

25、一个字符。函数调用格式:getchar( )getchar函数是一个无参函数。从输入设备接收到的字符的ASCII码值作为函数的结果,即函数的返回值。北京邮电大学出版社2.5 字符型数据字符型数据六字符串常量六字符串常量1字符串常量字符串常量 C语言中的字符串常量是由一对双引号括起的字符序列。 2用用printf函数输出字符串常量函数输出字符串常量使用printf函数输出字符串常量有两种方式:(1) 将待输出的字符串直接写在printf函数的格式控制字符串中,作为原样输出字符进行输出。北京邮电大学出版社2.5 字符型数据字符型数据六字符串常量六字符串常量2用用printf函数输出字符串常量函数输出字符串常量(2) 使用s格式符。 %s,输出字符串。 %ms,指定输出字符串所占的宽度,若字符串本身的长度不到m,则在左侧补充空格。 %m.ns,指定输出宽度为m,但只输出字符串的左端n个字符。 %-ms、%-m.ns,-,若需要补充空格,补充在右侧。北京邮电大学出版社本章小结本章小结本章主要介绍了数据类型;常量与变量;各种类型数据的表示方法、数据的取值范围和数值的有效位数及相应的输入、输出方法。1C的数据类型基本类型,构造类型,指针类型,空类型2变量与常量(1) 变量定义,一般形式为:类型说明符 变量名标识符,变量

温馨提示

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

评论

0/150

提交评论