第3章数类型据基础_第1页
第3章数类型据基础_第2页
第3章数类型据基础_第3页
第3章数类型据基础_第4页
第3章数类型据基础_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

第3章数据类型基础目录数据的输入、输出4程序设计中的数据地位与作用1常量、变量和标识符2基本数据类型3不同类型数据间的转换6运算符与表达式5程序要对数据进行操作处理:处理的对象是数据(其在程序中要有合法的表现形式)而数据又通过运算符和表达式进行操作程序设计中的数据地位与作用1例:计算半径为10cm的圆的面积。程序如下:main(){float

r,area;

r=10;

area=3.14*r*r;

printf("%f\n",

area);}输出:314.000000程序中用到的数据:r、area、10、3.14对数据进行的运算:*、=程序设计中的数据地位与作用1数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作C数据类型基本类型构造类型指针类型空类型void定义类型typedef单精度型float双精度型double字符类型

char整型实型枚举类型enum数组共用体nion结构体struct短整型short长整型long整型int数据往往都是以某种特定形式存在的,C语言提供的数据类型如下:程序设计中的数据地位与作用13.2.1常量整型常量:10、-28;实型常量:3.14;字符常量:‘a’、‘A’

字符串常量:“Hello” 程序运行过程中,值不发生改变的量称为常量。直接常量

直接常量(即常数):10、3.14等都是直接常量。常量分为:

常量可以直接用于输入或赋给其他变量常量、变量和标识符2整型常量三种形式:十进制整数:由数字0~9和正负号表示.如32、-8、0等八进制整数:由数字0开头(注意:不是字母o),后跟数 字0~7表示.如012、011、016十六进制整数:由0x(或0X)开头,后跟0~9,a~f,A~F表 示.如0x123,0Xff注意:八进制数、十六进制数的合法数字表 示,十六进制数中字母大、小写等同0xaa等同于0xAA常量、变量和标识符23.2.1常量#include<stdio.h>main(){int

a,b,c;a=100;b=0100;c=0x100;

printf("a=%d,b=%d,c=%d\n",a,b,c);}

%d控制按十进制格式输出输出结果是:a=100,b=64,c=256举例:常量、变量和标识符23.2.1常量实型常量(浮点数)即带小数点的实数。

表示形式:十进制数形式:(必须有小数点)如 0.1234、.1234、-1234.、0.0

指数形式: 由尾数、字母e或E、指数三部分组成。如3.85e4或3.85E4均表示3.85×104,(e或E之前必须有数字;指数必须为整数)规范化的指数形式:

在字母e(或E)之前的尾数中,小数点左边应有一位(且只能有一位)非零的数字。例如:3.478e2

常量、变量和标识符23.2.1常量字符常量字符常量区分大小写如'a'、'I'、'A'、‘\n’如'a'、'A'是两个不同的字符常量

字符常量的值:该字符的ASCII码值如‘a’在内存的字节中存放的ASCII值是97

特殊的字符常量:以一个“\”开头的字符序列。(转义字符)定义:用单引号括起来的单个普通字符或转义字符.

常量、变量和标识符23.2.1常量<转义字符含义\n\v\r\a\‘\ddd\t\b\f\\\“\xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符“转义字符”:即将反斜杠(\)后面的字符转换成另外的意义。如:‘\n‘中的“n”不代表字母n而作为“换行”符。(仍代表一个字符)

以“\”开头的特殊字符常量、变量和标识符23.2.1常量main(){printf("%c,%c\n",‘a’,‘A’);

printf("%d,%d\n",‘a’,‘A’);

printf("%c,%c\n",‘a’-32,‘A'+1);

}%c控制字符形式输出%d整数格式输出字符常量的ASCII码值程序输出结果是:

a,A97,65A,B由于字符常量存放的是ASCII码值,所以字符常量可以同数值常量一样参加算术运算。常量、变量和标识符2字符常量与字符串常量不同字符串常量定义:用双引号(“”)括起来的零个或多个字符,简称:字符串

如“STRING”存储:每个字符串尾自动加一个‘\0’作为字符串结束标志a

a\0例

‘a’“a”例空串“”\0例字符串“STRING”在内存中STRING\0常量、变量和标识符23.2.1常量main(){printf("Computer");

printf("\nIamaboy!\n");

printf("%s\n","STRING");}

程序输出结果是:

ComputerIamaboy!STRING双引号、单引号是字符常量和字符串常量的标记,字符串和字符常量是两个不同的概念。常量、变量和标识符23.2.1常量#definePI3.14

main(){floatr,circle,area;r=2.4;circle=2*PI*r;area=PI*r*r;

printf("circle=%f,area=%f\n",circle,area);}程序中用#define命令行定义PI代表常量3.14,此后凡在本文件中出现的PI都代表3.14,可以和常量一样进行运算。

符号常量

C语言中特殊常量——符号常量即给常量起一个名。3.2.1常量常量、变量和标识符2用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符。规定标识符只能由字母、数字和下划线三种字符组成,并且第一个字符必须为字母或下划线。

例:判断下列标识符号合法性area、sum、a&b、$234、_above、PI、name、Name、class、CLASS

标识符3.2.2变量常量、变量和标识符23.2.2变量#definePI3.14main(){floatr,c,area;r=2.4;……

printf("c=%f,area=%f\n",c,area);}r、c和area就是变量名,命名规则应遵守标识符命名规则

变量的定义

程序运行过程中,值可改变的量称为变量。每一个变量都应该有一个名字作为标识。常量、变量和标识符2变量定义的一般格式:

数据类型变量1[,变量2,…,变量n];C语言所允许的任何数据类型,包括基本数据类型及构造数据类型等合法标识符例:

inti;

float

data;变量必须遵从“先定义,后使用”的原则。如:

inti;i=10;(将10这个值赋给i这个变量)变量定义可执行语句3.2.2变量常量、变量和标识符2变量的赋值与初始化赋值格式:变量名=表达式 例:a=10;变量初始化 定义变量时给变量赋初值,称为变量初始化。 格式:类型符变量1=值1,变量2=值2……; 例:inta=1;b=3;c=100;3.2.2变量常量、变量和标识符2整型数据在内存中的存放形式:数据在内存中是以二进制形式存放的。 一个int整数VC环境下通常用4个字节存放:其中最高位用来存放整数的符号,0表示正整数,1表示负整数实际上,一个有符号整数在内存中,是以补码形式存放的。

若说明为无符号整数,其中最高位不再用来存放整数的符号,二进制位全部用来存放整数数值,因此无符号整数不可能是负数

3.3.1整型数据基本数据类型3数值的表示方法——原码、反码和补码原码:最高位为符号位,其余各位为数值本身的绝对值反码:正数:反码与原码相同负数:符号位为1,其余位对原码取反补码:正数:原码、反码、补码相同负数:最高位为1,其余位为原码取反,再对整个数加1基本数据类型33.3.1整型数据原码反码补码+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000数的范围01111111~11111111(-127~+127)01111111~10000000(-127~+127)01111111~10000000(-128~+127)(用一字节表示数)负数补码转换成十进制数:最高位不动,其余位取反末位加1例补码:11111001

取反:10000110

末位加1:11000111=-7基本数据类型3分类:归纳起来,可以用以下6种整型变量。即:有符号基本整型[signed]int

有符号短整型[signed]short[int]有符号长整型[signed]long[int]无符号基本整型unsigned[int]无符号短整型unsignedshort[int]无符号长整型unsignedlong[int]3.3.1整型数据基本数据类型3实型数据在内存中的存放形式

一个实型数据在内存中占4个字节(32位)。

实型变量的分类(注意其有效位)

C实型变量分为单精度(float型)、双精度(double型)和长双精度型(longdouble)三类。实型变量也应在使用前加以定义。如:float

x,y;(指定x、y为单精度实数)doublez;(指定z为双精度实数)3.3.2实型数据基本数据类型3程序输出结果是:

s=314.0000003.3.2实型数据main(){float

r,area;

r=10;

area=3.14*r*r;

printf(“s=%f\n",

area);}基本数据类型3

字符变量的定义:

一个字符变量在内存中占一个字节

charc1,c2;c1=‘a’;c2=‘b’;/*对c1、c2赋值*/字符数据在内存中的存放及其使用方法: 存放的是该字符相应的ASCII码。例如:字符'a'的ASCII码为97,'b'为983.3.3字符型数据基本数据类型3#include<stdio.h>main(){charch1,ch2;ch1='a';ch2=ch1-32;

printf("ch1=%c,ch2=%c\n",ch1,ch2);

printf("ch1=%d,ch2=%d\n",ch1,ch2);}%c控制字符形式输出%d控制输出字符常量的ASCII码值程序输出结果是:

a,A97,65由于字符数据存放的是ASCII码值,所以字符数据可以同数值数据一样参加算术运算。3.3.3字符型数据基本数据类型3字符输出函数putchar()作用:向终端输出一个字符。基本格式:putchar(ch)用法说明:参数ch可以是除字符串常量之外的字符、整型、实型常量、变量或各种表达式在程序中使用putchar()函数时,该程序的开头必须用一条预编译命令“#include<stdio.h>”。putchar()函数可以输出控制字符,如:

putchar(‘\n’);3.4.1putchar函数例

在putchar函数中使用不同参数输出字符A。#include"stdio.h"main(){charch='A';

inti=65;

putchar(ch);/*输出字符变量所代表的字符,*/

putchar(i);/*输出以整型变量i的值为ASCⅡ码的字符,*/

putchar('A');/*直接输出字符常量'A‘*/putchar(65);/*输出以十进制整型常量65为ASCⅡ码的字符*/

putchar('\n');/*输出一个换行符*/}程序运行结果:AAAA数据的输入、输出4字符输入函数getchar()

作用:接收从终端(一般指键盘)输入的一个字符。基本格式:getchar()没有参数3.4.2getchar函数例

输入单个字符#include"stdio.h"main(){charch;

ch=getchar();/*从键盘上接收一个字符*/

putchar(ch);/*在屏幕上输出该字符*/}运行过程:AA数据的输入、输出4例

输入输出字符练习。#include<stdio.h>main(){charch1,ch2,ch3;ch1=getchar();ch2=getchar();ch3=getchar();putchar(ch1);putchar(ch2);putchar(ch3);}ABC↙ABC

ABCDEFG↙ABCabc↙abc

运行情况:A↙BC↙AB返回数据的输入、输出4格式:printf(“格式控制串”,输出项表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1)3.4.3printf

函数输出表项:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明:

%[修饰符]格式字符

用于指定输出格式普通字符或转义序列:原样输出格式字符数据的输入、输出4d,ix,Xoucse,Efg%%格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);5.677890e+02567ff101567AABC567.789000567.789%说明: 格式字符要用小写(除O、X可用大写外)格式字符与输出项个数应相同,按先后顺序一一对应例inta=3,b=4;

printf(“%d%d\n”,a,b);

printf(“a=%d,b=%d\n”,a,b);输出结果:34

a=3,b=4数据的输入、输出4附加格式说明符.n对实数,指定小数点后位数(四舍五入)对字符串,指定实际输出位数修饰符功能m输出数据域宽,数据长度<m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0x#在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型l数据的输入、输出43.4.4scanf函数格式:scanf(“格式控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符&格式字符:d,i,o,x,u,c,s,f,e例scanf(“%d”,&a);

输入:10

则a=10例scanf(“%x”,&a);

输入:11

则a=17数据的输入、输出4输入分隔符的指定一般以空格、TAB或回车键作为分隔符其它字符做分隔符时,输入时需原样输入。 (上机调程时尤其注意)例scanf(“%d%o%x”,&a,&b,&c);

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

输入123123123

输出a=123,b=83,c=291例scanf(“%d:%d:%d”,&h,&m,&s);

输入12:30:45

则12h,30m,45s例scanf(“%d,%d”,&a,&b)

输入3,4

则3a,4b例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);

输入a=12,b=24,c=36数据的输入、输出4说明: 用“%c”格式符时,空格和转义字符作为有效字符输入如scanf(“%c%c%c”,&c1,&c2,&c3);

若输入abc

则ac1,

c2,bc3 表达式由运算符(例如:+—*/)、运算对象(也称操作数,可以是常量、变量等等)和括号组成。表达式运算所得到的结果值便是表达式的值。

例如:a+b

x/y

C语言的运算符丰富,几乎大部分操作都由运算符来完成。归纳起来,C的运算符有以下几类:

运算符与表达式5运算符和表达式简介算术运算符+-*/%指针运算符*和&关系运算符><>=<===!==求字节数运算符sizeof

逻辑运算符!&&||强制类型转换运算符

(类型)位运算符<<>>~|&∧分量运算符->赋值运算符=及其扩展赋值运算符下标运算符[]条件运算符?:其他如函数调用运算符()逗号运算符,运算符种类:运算符与表达式5二元运算符(或双目运算符):运算符需要两个操作数使用形式为:

操作数1运算符

操作数2一元运算符(或单目运算符):运算符需要一个操作数优先级:决定表达式的运算顺序。结合性:是指当一个操作数左右两边的运算符优先 级相同时,按什么样的顺序进行运算。包含自左向 右,自右向左两种顺序。运算符与表达式5算术运算符与算术表达式基本算术运算符和表达式基本算术运算符:+-

(正负)

*/%+-(加减)结合方向:从左向右优先级:+----->*/%----->+-(2)(3)(4)

说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数;一侧为实型结果为实型%要求两侧均为整型数据运算符与表达式5自增、自减运算符++--作用:使变量值加1或减1种类:前置++i,--i(先执行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再执行i+1或i-1)说明:++-

-不能用于常量和表达式,如5++,(a+b)++++--结合方向:自右向左优先级:-++-

------->*/%----->+-

(2)(3)(4)例-i++-(i++)i=3;printf(“%d”,-i++);//-3

运算符与表达式5例j=3;k=++j;j=3;k=j++;j=3;printf(“%d”,++j);j=3;printf(“%d”,j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;运算符与表达式5自增、自减运算符++--无论是作为前缀还是作为后缀运算符,对于变量本身来说自增1或自减1都具有相同的效果,但作为表达式来说却有着不同的值。

复合赋值运算符种类:+=-=*=/=%=《=》=&=^=|=含义:变量op=表达式变量=变量op表达式a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例a=10/*把常量10赋给变量a*/简单赋值运算符符号:=格式:变量名=表达式作用:将一个数据(常量或表达式)赋给一个变量运算符与表达式5赋值运算符和表达式赋值表达式的值与变量值相等,且可嵌套说明:结合方向:自右向左左侧必须是变量,不能是常量或表达式例inti;i=2.56;//结果i=2;例3=x-2*y;a+b=3;赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表达式值为5,a,b,c值为5//b=5;a=5//表达式值11,c=6,a=11//表达式值10,a=10,b=4,c=6//表达式值5,a=5,b=10,c=2运算符与表达式5赋值运算符和表达式假

温馨提示

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

评论

0/150

提交评论