第2章数据类型与基本操作文档格式.docx

上传人:b****4 文档编号:17830912 上传时间:2022-12-11 格式:DOCX 页数:13 大小:34.51KB
下载 相关 举报
第2章数据类型与基本操作文档格式.docx_第1页
第1页 / 共13页
第2章数据类型与基本操作文档格式.docx_第2页
第2页 / 共13页
第2章数据类型与基本操作文档格式.docx_第3页
第3页 / 共13页
第2章数据类型与基本操作文档格式.docx_第4页
第4页 / 共13页
第2章数据类型与基本操作文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

第2章数据类型与基本操作文档格式.docx

《第2章数据类型与基本操作文档格式.docx》由会员分享,可在线阅读,更多相关《第2章数据类型与基本操作文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

第2章数据类型与基本操作文档格式.docx

程序某次的运行结果如下:

5,6↙

maxmum=6

说明:

在例2.1中,变量x、y、z被定义为整型变量,函数max的返回值也被定义为整型。

2.2 常量和变量

2.2.1 常量

就数据本身而言,C语言中的数据有常量和变量之分,它们分别属于不同的数据类型。

值固定不变且不可再被赋值的量被称为常量。

常量分为数值常量和符号常量。

其中,数值常量可以为整型或实型的数,如100,-50,20.125,3.14等;

常量可以用标识符(标识符的定义将在变量部分讲解)代替,符号常量在使用之前必须先定义,其一般形式为:

#define标识符常量

例如:

#definePRICE30

其中#define是一条预处理命令(预处理命令都以"

#"

开头),称为宏定义命令(在后面预处理程序中将进一步介绍),其功能是把该标识符定义为其后的常量值。

符号常量也可以用访问说明符来定义:

constinta=10;

此语句将产生整形常量a,其值不能被程序修改,但可以被其他表达式所使用。

符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。

但使用符号常量的好处是含义清楚,能做到“一改全改”。

例2.2 常量预定义举例。

#definePRICE30/*预定义一个常量*/

main()

intnum,total;

/*定义两个整型变量*/

num=10;

/*给整型变量num赋值*/

total=num*PRICE;

/*计算total的值*/

total=%d"

total);

/*输出total的值*/

}

运行结果如下:

 total=300

按照数据类型,常量又可以分为整型、实型、字符、字符串型、指针型以及空类型和复合数据类型,目前只介绍基本类型的常量。

1.整型常量

整型常量就是整常数。

在C语言中,使用的整常数有八进制、十六进制和十进制三种。

 1)十进制整常数:

十进制整常数没有前缀。

其数码为0~9。

2)八进制整常数:

C语言规定,八进制整常数必须以0开头,即以0作为八进制数的前缀。

数码取值为0~7。

八进制数通常是无符号数。

3)十六进制整常数:

十六进制整常数的前缀为0X或0x。

其数码取值为0~9,A~F或a~f。

2.实型常量

实型也称为浮点型,因此实型常量也称为实数或者浮点数。

在C语言中,实数只采用十进制。

它有两种形式:

十进制小数形式和指数形式。

3.字符型常量

  1)字符常量是用单引号括起来的一个字符。

'

a'

、'

b'

='

、'

+'

?

'

,都是合法字符常量。

在C语言中,字符常量只能用单引号括起来,不能用双引号或其它括号;

字符常量只能是单个字符,不能是字符串;

字符可以是字符集中任意字符。

  2)转义字符

转义字符是一种特殊的字符常量。

转义字符以反斜线"

\"

开头,后跟一个或几个字符。

转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。

例如,在前面各例题printf函数的格式串中用到的"

就是一个转义字符,其意义是“回车换行”。

转义字符主要用来表示那些用一般字符不便于表示的控制代码。

如表2.1所示。

转义字符

转义字符的意义

ASCII代码

\n

回车换行

10

\t

横向跳到下一制表位置

9

\b

退格

8

\r

回车

13

\f

走纸换页

12

\\

反斜线符"

92

\'

单引号符

39

双引号符

34

\a

鸣铃

7

\ddd

1~3位八进制数所代表的字符

\xhh

1~2位十六进制数所代表的字符

4.字符串常量

字符串常量是由一对双引号括起的字符序列。

"

CHINA"

、"

Cprogram"

$12.5"

等都是合法的字符串常量。

字符常量'

和字符串常量"

a"

虽然都只有一个字符,但在内存中的情况是不同的。

在内存中占一个字节,可表示为:

a

"

在内存中占二个字节,可表示为:

\0

2.2.2 变量

按照数据类型分,变量也可以分为整型、实型、字符、字符串型、指针型以及空类型和复合数据类型,本小节中只介绍基本类型的变量。

1.变量及定义

其值可以改变的量称为变量。

变量定义必须放在变量使用之前。

一般在函数体的开头部分定义变量。

要区分变量名和变量值是两个不同的概念,如下图所示:

一个变量应该有一个名字,用于指示在内存中的存储单元位置,该位置存储了该变量的数值。

因此变量的名字就是一个标识符。

那么什么是标识符?

C语言中用来标识变量名、常量名、函数名、数组名、类型名、宏名、文件名等的有效字符序列,称之为标识符。

标识符只能由字母或下划线打头,后接字母、数字或下划线的组合。

C语言严格区分大小写

2.不同类型的变量

1)整型变量

  变量定义的一般形式为:

类型说明符变量名;

inta,b,c;

(a,b,c为整型变量)、longx,y;

(x,y为长整型变量)、unsignedp,q;

(p,q为无符号整型变量)

  

2)实型变量

  根据数据所占字节大小来分,实型变量可分为:

单精度(float型)、双精度(double型)和长双精度(longdouble型)三类。

表2.3列出了TurboC中各类浮点型量所分配的内存字节数及数的表示范围。

类型说明符

比特数(字节数)

有效数字

数的范围

float

32(4)

6~7

10-37~1038

double

64(8)

15~16

10-307~10308

longdouble

128(16)

18~19

10-4931~104932

例如:

floatx,y;

(x,y为单精度实型量、doublea,b,c;

(a,b,c为双精度实型量)

3)字符变量

和所有变量定义形式一样,字符变量的定义形式为:

charc1,c2;

其中,char为类型定义符,c1,c2为变量名。

例2.7字符型数据举例。

main()

{charc1,c2;

c1=97;

c2=98;

%c%c\n"

c1,c2);

c1=c1-32;

c2=c2-32;

%c%c"

ab

AB

2.3 运算符和表达式

2.3.1 算术运算符及其表达式

1.基本的算术运算符

  基本的算数运算符包括加法运算符"

+"

、减法运算符"

-"

、乘法运算符"

*"

、除法运算符"

/"

、求余运算符(取模运算符)"

%"

100%3,即100对3取余数,结果为1。

2.自增、自减运算符

在程序设计中经常会用到对某个变量进行自增或自减操作,C语言中提供了自增、自减运算符。

自增1运算符记为"

++"

,其功能是使变量的值加1。

自减1运算符记为"

--"

,其功能是使变量的值减1。

++i表示i自增1后再参与其它运算;

--i表示i自减1后再参与其它运算;

i++表示i参与运算后,i的值再自增1;

i--表示i参与运算后,i的值再自减1。

2.3.2 赋值运算符及其表达式

1.简单赋值运算符

简单赋值运算符记为"

="

由"

="

连接的式子称为赋值表达式,其一般形式为:

变量=表达式;

2.复合的赋值运算符

在赋值符"

之前加上其它二目运算符可构成复合赋值符。

如+=,-=,*=,/=,%=,<

<

=,>

>

=,&

=,^=,|=等。

a+=5等价于a=a+5

x*=y+7等价于x=x*(y+7)

r%=p等价于r=r%p

复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。

3.逗号运算符和逗号表达式

在C语言中逗号"

"

也是一种运算符,称为逗号运算符。

其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。

其一般形式为:

表达式1,表达式2,…表达式n;

其求值过程是分别求各个表达式的值,并以表达式n的值作为整个逗号表达式的值。

2.3.3 逻辑运算符及其表达式

1.逻辑运算符及其优先次序

C语言中提供了三种逻辑运算符:

  &

&

与运算

  ||或运算

  !

非运算

2.逻辑表达式

(a&

b)&

c

逻辑表达式的值是式中各种逻辑运算的最后值,以"

1"

和"

0"

分别代表"

真"

假"

2.3.4 关系运算符及其表达式

在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。

比较两个量的运算符称为关系运算符。

1.关系运算符及其优先次序

在C语言中有以下关系运算符:

   <

小于

=小于或等于

   >

大于

=大于或等于

   ==等于

   !

=不等于

2.关系表达式

  关系表达式的一般形式为:

  例如:

a+b>

c-d

x>

3/2

‘a’+1<

-i-5*j==k+1

2.3.5 条件运算符及其表达式

  条件运算符为"

,它是一个三目运算符,即有三个参与运算的量。

由条件运算符组成条件表达式的一般形式为:

表达式1?

表达式2:

表达式3

其求值规则为:

如果表达式1的值为真,则以表达式2的值作为条件表达式的值;

否则以表达式2的值作为整个条件表达式的值。

条件表达式通常用于赋值语句之中。

例如下述判断语句:

b)max=a;

elsemax=b;

可用条件表达式写为:

max=(a>

b)?

a:

b;

执行该语句的语义是:

如a>

b为真,则把a赋予max,否则把b赋予max。

 

2.3.6 运算符的优先级

算术运算符

关系运算符

逻辑运算符

赋值运算符

2.4 基本输入与输出

  在编写程序时,不可避免地要通过基本输入、输出设备实现人机交互,数据的输入与输出在C语言中是通过库函数来实现的,因此都是函数语句。

  在使用C语言库函数时,要用预编译命令

#include

将有关"

头文件"

包括到源文件中。

使用标准输入输出库函数时要用到"

stdio.h"

头文件,因此源文件开头应有预编译命令:

#include<

stdio.h>

或#include"

  考虑到printf和scanf函数使用频繁,系统允许在使用这两个函数时可不加#include<

2.4.1数据输出

1.字符数据的输出putchar()函数

putchar函数是字符输出函数,其功能是在显示器上输出单个字符。

putchar(字符变量);

putchar(‘A’);

(输出大写字母A)

putchar(x);

(输出字符变量x的值)

2.格式化输出printf()函数

printf函数称为格式输出函数,其关键字最末一个字母f即为"

格式"

(format)之意。

其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。

  printf函数是一个标准库函数,它的函数原型在头文件"

中。

但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

printf函数调用的一般形式为:

printf("

格式控制字符串"

,输出表列);

其中格式控制字符串用于指定输出格式。

格式控制串可由格式字符串和非格式字符串两种组成。

格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等;

输出表列中给出了各个输出项。

要求格式字符串和各输出项在数量和类型上应该一一对应。

  表2.5 给出了格式符和意义。

格式字符

意义

D

以十进制形式输出带符号整数(正数不输出符号)

O

以八进制形式输出无符号整数(不输出前缀0)

X,X

以十六进制形式输出无符号整数(不输出前缀Ox)

U

以十进制形式输出无符号整数

F

以小数形式输出单、双精度实数

E,E

以指数形式输出单、双精度实数

G,G

以%f或%e中较短的输出宽度输出单、双精度实数

C

输出单个字符

S

输出字符串

例2.20格式化输出函数。

main()

inta=15;

floatb=123.1234567;

doublec=12345678.1234567;

chard=’p’;

a=%d,%5d,%o,%x\n"

a,a,a,a);

b=%f,%lf,%5.4lf,%e\n"

b,b,b,b);

c=%lf,%f,%8.4lf\n"

c,c,c);

d=%c,%8c\n"

d,d);

}

a=15,15,17,f

b=123.123459,123.123459,123.1235,1.23123e+02

c=12345678.1234567,12345678.1234567,12345678.1235

d=pp

2.4.2 数据输入

1.字符数据的输入 getchar()函数

getchar函数的功能是从键盘上输入一个字符。

getchar();

通常把输入的字符赋予一个字符变量,构成赋值语句,如:

charc;

c=getchar();

2.格式化输入scanf()函数

scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

scanf函数是一个标准库函数,它的函数原型在头文件"

中,与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。

scanf函数的一般形式为:

,地址表列);

其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。

地址表列中给出各变量的地址,地址是由地址运算符"

后跟变量名组成的。

例如,&

a和&

b分别表示变量a和变量b的地址。

例2.17scanf函数使用举例。

main(){

inta,b,c;

inputa,b,c:

scanf("

%d%d%d"

a,&

b,&

c);

a=%d,b=%d,c=%d"

a,b,c);

程序某次运行结果如下:

102050↙

a=10,b=20,c=50

例2.18格式化输入函数。

chara,b;

inputcharactera,b:

%c%c"

b);

%c%c\n"

a,b);

MN↙

MN

由于scanf函数"

中没有空格,若输入MN,则结果输出只有M;

若输入改为MN,则可输出MN两字符。

本章小结

本章介绍了数据类型的说明及使用、各种运算符和表达式以及基本的输入输出格式等。

我们在程序设计过程中使用的各种变量都应预先加以定义,即先定义,后使用。

其中,数据类型及表达式,以及输入输出格式是学习的重点。

本章内容丰富,知识点较多,请读者仔细阅读并多做练习,以起到良好的学习效果。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1