基本数据类型与简单程序设计_第1页
基本数据类型与简单程序设计_第2页
基本数据类型与简单程序设计_第3页
基本数据类型与简单程序设计_第4页
基本数据类型与简单程序设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

基本数据类型与简单程序设计第1页,共56页,2023年,2月20日,星期一2.1C语言的基本数据类型2.2常量和变量2.3赋值语句2.4数据的输出2.5数据的输入2.6运算符和表达式本章小结第2页,共56页,2023年,2月20日,星期一2。1C语言的基本数据类型类型标识符

名称

字节数

范围

int

short整型

2-2

15

~+2

15

-1(-32768~32767)

long长整型

4-2

31

~+2

31

-1(-2147483648~

2147483647

char字符型

1-27~+27-1(-128~+127)

float浮点型(实型)

410

-37

~10

+38

(绝对值)

double双精度浮点型

810

-3

0

7

~10

+3

0

8

(绝对值)

常用标准数据类型第3页,共56页,2023年,2月20日,星期一2。2常量和变量2。2。1常量和符号常量在程序的运行过程中,其值保持不变的量称为常量。

#definePI3.1415926

此后,凡在文件中出现的PI均可用3.1415926来代替。第4页,共56页,2023年,2月20日,星期一2。2。2整型常量除了我们比较熟悉的整型常量如:100、0、-256之外,TurboC2.0中还有其他形式的整型常量。见表2-2。例子

说明

-1234

int型十进制整型常量

01234

int型八进制整型常量(以0开头)

0x1234

int型十六进制整型常量(以0x或0X开头)

0L

long型十进制整型常量(以l或L结尾)

第5页,共56页,2023年,2月20日,星期一例如:0235等于十进制数157,即2×82+3×81+5×80=157。-0X23等于十进制数-35。第6页,共56页,2023年,2月20日,星期一任何类型的数据在计算机中都是以二进制补码形式存储的。正数的补码等于其原码,而负数的补码等于其原码的反码+1。第7页,共56页,2023年,2月20日,星期一例如:

0000000001010011 表示 83 1111111110101101 表示 -8300000000000000000000000001010011 表示 83L11111111111111111111111110101101表示 -83L第8页,共56页,2023年,2月20日,星期一2。2。3浮点型常量C语言中的浮点类型主要分为单精度和双精度浮点型两种。除了十进制数的浮点表示法(如1234.56)外,浮点数还可采用科学表示法:

1.23456e20.345E-3第9页,共56页,2023年,2月20日,星期一出现在字母e(或E)之前的小数点,其左边和右边应有一位数字在字母e(或E)之后必须是整数。

.123、1.34E1.2均是非法的浮点数。第10页,共56页,2023年,2月20日,星期一2。2。4字符型数据C的字符常量是用单引号(即撇号)括起来的一个字符。如'*'、'a'、'A'、'&'、'!'等都是字符常量。注意,'a'和'A'是不同的字符常量。字符数据存放在内存时,并是不字符本身,而是字符的代码,称之为ASCII码。第11页,共56页,2023年,2月20日,星期一部分字符对应的ASCII码字符

回车

空格

*

+

0

1

2

3

……

9

ASCII码

13

32

42

43

48

49

50

51

……

57

字符

A

B

C

……

Z

a

b

c……

z

ASCII码

65

66

67

……

90

97

98

99

……

122

第12页,共56页,2023年,2月20日,星期一常用的转义字符有: ‘\n’ 换行符 (将当前位置移到下一行开头) ‘\t’ 水平制表符 (跳到下一个<tab>位置) ‘\b’ 退格 ‘\r’ 回车 (将当前位置移到本行开头) ‘\f’ 走纸 ‘\\’ 反斜杠’\’ ‘\’’ 单引号’ ‘\”’ 双引号

转义字符看起来是两个字符,实际上只能算一个字符。第13页,共56页,2023年,2月20日,星期一也可以使用"\"加上一个1~3位的8进制数或"\x"加上一个1~2位的16进制数表示的ASCII码值来表示转义字符,例如: ‘\0’ 表示 空字符

'\33'或'\033' 表示ESC(27)

'\07' 表示响铃

'\x0A' 表示换行(10)。第14页,共56页,2023年,2月20日,星期一2。2。5变量在程序的运行过程中,值可以改变的量称为变量。每个变量都有一个名字,称为变量名。每个变量均必须进行变量说明,指明变量的类型 如:intk=50;第15页,共56页,2023年,2月20日,星期一变量名和符号常量名的命名方法相同,都是用标识符表示。标识符就是一个名字,其命名必须按照一定的规则进行,只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线,不允许使用数字。如下面是合法的标识符。

Class_1,_abc1,id,a1b2,sum,total第16页,共56页,2023年,2月20日,星期一 下面是不合法的标识符:

ab /*标识符不能含空格符*/ 1a /*标识符不能以数字打头*/ #abc /*标识符不能使用#*/ xyz-1 /*标识符不要把减号“-”和下划线“_”混淆*/第17页,共56页,2023年,2月20日,星期一注意:大写字符和小写字符被认为是两个不同的字符。如:a1和A1是两个不同的变量。变量和符号常量的不同之处在于:变量的值可以改变,而符号常量则不行。第18页,共56页,2023年,2月20日,星期一例2-1

inti,j,k; longa1,a2;

上面两行语句定义了3个int型变量i,j,k和2个长整型变量a1、a2。第19页,共56页,2023年,2月20日,星期一例2-2

floatx1,x2; /*定义2个单精度浮点型变量*/ doublez1,z2; /*定义2个双精度变量*/ floatx; doubley;x=123456.789;/*给变量赋初值*/ y=123456.789;第20页,共56页,2023年,2月20日,星期一2。3赋值语句所谓赋值,就是将一个数据存入一个连续的具有若干存储单元的存储空间中,该存储空间有一个名字,就是前面介绍的变量名。

对一个变量进行定义后,这个变量如果没有进行赋值,它的值是不确定的。第21页,共56页,2023年,2月20日,星期一2。3。1赋值语句的格式与功能一般形式: 变量=表达式;功能:首先计算赋值号“=”右边表达式的值,然后将结果值送给赋值号“=”左边的变量。 例如:

g=9.8; g=10+20-9;“=”不是等号,而是赋值号。第22页,共56页,2023年,2月20日,星期一例2-1

charc1,c2;

c1='a'; c2='b';

上面定义了2个字符型变量c1,c2,一个字符型变量可存放一个字符。将一个字符常量存放到一个字符变量中,实际上并不是把该字符本身放到内存中,而是将该字符的相应的ASCII码存放内存单元中。

C语言字符型数据与整型数据之间可以通用。第23页,共56页,2023年,2月20日,星期一例2-2

#include<stdio.h> main(){ charc1='a',c2; intk; k=c1;/*将字符型变量c1赋给整型变量k*/ c2=97;/*将整数97赋给字符型变量c2*/ printf("%c,%c,%d",c1,c2,c1); /*字符变量既可按字符形式输出,亦可按整型输出*/ printf("\n%d,%c",k,k); /*整型变量既可按整型形式输出,亦可按字符型输出*/ getch(); }运行结果: a,a,97 97,a第24页,共56页,2023年,2月20日,星期一例2-3将小写字母转换成大写字母。

#include<stdio.h> main() { charc1,c2; inti,j; c1='a'; c2=c1-32;/*c2='A'*/ printf("%c,%c",c1,c2); getch(); }运行结果:a,A第25页,共56页,2023年,2月20日,星期一2。3。2赋值语句中的类型转换“=”左边变量与右边表达式的数据类型不一致时,C编译系统会自动实现数据类型的转换。转换的原则是,将赋值号右边的表达式值的类型转换成与左边变量相同的类型后再赋值。

例如:

inta; longb; charc;a=b;/*long型变量b的值变换成int型后再赋给a*/b=a; /*int型变量a的值变换成long型后再赋给b*/b=a+c; /*int型a+c的值变换成long型后再赋给b*/第26页,共56页,2023年,2月20日,星期一当右边表达式值的类型比左边变量的类型要长时,会对右边的数据进行截取,仅取出与左边变量类型相同的长度,这意味着,会丢失高位字节或高位字。例2-4 main() {inta=350,b; charc; c=a; b=c; printf("%d,%d,%d",a,c,b); getch(); }运行结果为:

350,94,94第27页,共56页,2023年,2月20日,星期一2。4数据的输出2。4。1字符输出函数putchar()函数putchar()的功能是把一字节的代码值所代表的字符输出到显示器上。常用格式如下:

putchar(c);其中参数C可以是字符常量、变量或字符表达式。第28页,共56页,2023年,2月20日,星期一例2-5字符输出函数putchar()的功能

#include<stdio.h> main(){ charc='A'; putchar(c);/*输出字符A*/ putchar('\n');/*输出换行符*/ putchar('#');/*输出字符#*/ getch(); }第29页,共56页,2023年,2月20日,星期一2。4。2格式化输出函数printf()格式化输出函数是按指定的格式完成输出过程。一般使用形式如下:

printf("输出格式串",表达式表);其中,输出格式串包含“格式符”或非格式符。“格式符”以%开头后面跟一个字母。第30页,共56页,2023年,2月20日,星期一格式符见表2-4。格式符

功能说明

%c

按字符形式输出

%d

按十进制整数形式输出

%o

按八进制整数形式输出

%x

按十六进制整数形式输出

%f

按浮点形式输出,默认6位小数

%m.nf

按浮点形式输出,显示宽度不小于m,n位小数

第31页,共56页,2023年,2月20日,星期一printf()函数的功能是凡遇格式符,就将对应的表达式的值按指定格式输出到显示器上,凡遇非格式符,则原样输出。输出格式串中的转换说明符与表达式的个数必须相同,它们按各自的先后顺序—一对应,如图2-2所示。第32页,共56页,2023年,2月20日,星期一 例如:

a=100; b=200; printf("%d+%d=%d\n",a,b,a+b);输出结果为:100+200=300(换行)第33页,共56页,2023年,2月20日,星期一例2-8#include<stdio.h>main(){ floatx1=123.5678,x2=-4567.789; printf("x1=%f,x2=%f\n",x1,x2); printf("x1=%8.2f\tx2=%8.2f\n",x1,x2); getch(); /*按任意键 */ printf("%c%3c\n",'*','*'); printf("%d%3d\n",11,22);}第34页,共56页,2023年,2月20日,星期一运行结果为

x1=123.567802,x2=-4567.789062 x1=123.57x2=-4567.79 (按任意键后显示) **

1122第35页,共56页,2023年,2月20日,星期一2。5数据的输入数据的输入,一般是以键盘为处理对象的,从键盘接受字符和数据。 字符输入函数getchar()和输出函数putchar(),是以一个字节的字符代码为单位来完成输入输出过程的。在程序中使用这两个函数时,要求在程序开头包含头文件stdio.h。即

#include<stdio.h>第36页,共56页,2023年,2月20日,星期一2。5。1字符输入函数getchar()功能是接收从键盘上输入的字符。在程序中使用这个函数输入字符时,可以用另一个变量接收读取的字符,例如:

c=getchar();第37页,共56页,2023年,2月20日,星期一例2-9字符输入函数getchar()的功能

#include<stdio.h> main() { charch; ch=getchar(); printf("ch=%c,ch=%d\n",ch,ch);getch(); }

当执行到语句:ch=getchar();时,计算机就会等待用户击键(等待输入)。第38页,共56页,2023年,2月20日,星期一2。5。2格式化输入函数scanf()scanf()函数的功能是按指定的格式从键盘接受输入信息。 一般使用格式如下:scanf(“格式串”,地址表);“格式串”中既可以含格式符,也可以含非格式符。输入时,凡遇非格式符,要求原样输入,凡遇格式符,按指定格式输入数据。第39页,共56页,2023年,2月20日,星期一输入格式符表格式符

功能说明

%c

接收一个字符型数据

%d

接收一个整数型数据,直到遇到空格、<tab>或回车符

%f

接收一个浮点型数据

第40页,共56页,2023年,2月20日,星期一例2-10从键盘上输入直径d的值,然后计算圆的面积area和周长len。

#definePI3.1415926 main() { floatd,area,len,r; printf("请输入直径的值:"); scanf("%f",&d); r=d/2; area=PI*r*r; len=2*PI*r; printf("半径r=%f,面积S=%f,周长L=%f\n",r,area,len); }第41页,共56页,2023年,2月20日,星期一2.6运算符和表达式将运算符和运算对象按一定规则连接起来就成为表达式.第42页,共56页,2023年,2月20日,星期一2.6.1算术运算符运算符

运算

优先级

例子

()圆括号

1

5/(1–3)

*

乘法

3

7*3=21

/

除法

3

7/3.0=2.3333337/3=2

%

模除

3

7

%

3

=

1+

加法

4

7

+

3

=

10-

减法

4

7

-

3

=

4第43页,共56页,2023年,2月20日,星期一说明:

1.模除运算是两个整数相除后取余数;要求%两边必须是整型数据。

2.若算术运算符两边均为整数,则结果仍为整数。 例: 7/3=2 1/2=0 3.若参加运算的两个数中有一个数为实数,则结果为double型。

4.每个运算符都有一个优先级。如乘除的优先级高于加减。第44页,共56页,2023年,2月20日,星期一在表达式求值时,按运算符的优先级高低次序进行。如先乘除,后加减。()可改变运算次序。若在一个运算符对象两侧的运算符的优先级相同,则按规定的“结合方向”处理。有些运算符的结合方向为“从右到左”,即“右结合性”。第45页,共56页,2023年,2月20日,星期一2.6.2自增、自减运算符——

“右结合性”,优先级为2。“++”为自增运算符,“--”为自减运算符。自增、自减运算表达式的结合方向都是自右至左。但++k与k++的不同之处在于:前者先执行k=k+1,然后再使用k的值;而后者则先使用k的值,再执行k=k+1。第46页,共56页,2023年,2月20日,星期一例2-11

#include<stdio.h> main() { inti,j,k; k=30; i=k++; /*先将k值30赋给i,再使k值增1,此时k=31,i=30*/ printf("i=%d,k=%d",i,k); j=++k; /*k值先增1,再将k值赋于i,此时k=32,i=32*/ printf("\nj=%d,k=%d",j,k); }运行结果:i=30,k=31j=32,k=32第47页,共56页,2023年,2月20日,星期一2.6.3赋值运算符——

“右结合性”,优先级为14。赋值运算符为“=”例2-12 main() { floatk,x,y; x=(k=9.8)+7; printf("k=%5.1f,x=%5.1f\n",k,x); y=k=9.8+7; printf("k=%5.1f,y=%5.1f\n",k,y); }运行结果:k=9.8,

x=16.8k=16.8,

y=16.8第48页,共56页,2023年,2月20日,星期一2.6.4逗号运算符逗号运算符将两个表达式连接起来。其优先级15,最低。格式:表达式1,表达式2功能:先求解表达式1,再求解表达式2。整个逗号表达式的值为表达式2的值。在很多情况下,使用逗号表达式只是想求出各个表达式的值。第49页,共56页,2023年,2月20日,星期一例2-13

main() { inti,j=0123; /*012是八进制数,其等价的十进制数是83*/ i=0x3a; /*0x3a是十六进制数,其等价的十进制数是58*/ printf("%d,%d\n",i,j); }运行结果:58,83第50页,共56页,2023年,2月20日,星期一2.7常用的数学函数在使用数学函数之前,要求在程序开头包含头文件"math.h",即: #include<math.h>以下函数的参数类型和函数值类型均为实型。

sqrt(x) 求x的开平方,x≥0。

pow(x,y) 求xy exp(x) 求ex abs(x) 求x的绝对值,n为int整型数。

fabs(x) 求x的绝对值,n为double型浮点小数。

log(x) 求x的对数,以e为底,x>0。

log10(x) 求x的对数,以10为底,x>0。

sin(x) 求x的正弦,x的单位为弧度。

cos(x) 求x的余弦,x的单位为弧度。

tan(x) 求x的正切,x的单位为弧度。

rand() 产生0~32767范围内的整数随机数。第51页,共56页,2023年,2月20日,星期一例2-14:输入一个正数x,求x的开平方。

#include<math.h> main() { floatx,y; printf("inputx:"); scanf("%f",&x); y=sqrt(x); printf("sqrt(%7.2f)=%7.2f\n",x,y); }运行程序的结果是:inputx:81↙sqrt(81.00)=9.00第52页,共56页,2023年,2月20日,星期一例2-15:使用pow函数求幂ab。#include<math.h>main(){flo

温馨提示

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

评论

0/150

提交评论