第二讲 C语言中的数据运算
主要内容
C语言中的数据类型(浮点、字符型)
变量赋值与混合运算
算术运算和强制类型转换
赋值运算和赋值表达式
逗号运算和逗号表达式
输入输出再讨论
浮点型数据(实型数据)
实型变量
数据存储:指数形式:
符号位 尾数(为[0,1]间的小数) 指数
尾数和指数的位数没有统一标准,由各C系统自定。
实型变量的分类
类型 字节数 有效数字 表示数值范围
float    4 7 10 ­38 ~10 38
double 8 16 10 ­308 ~10 308 实型变量定义
float 变量表;
double 变量表;
说明:double数据的输入格式串是“%lf”或“%le”
练习1:编程输入一个 float 数据后直接输出,理解 float 的有效数字。
练习2:编程输入一个double数据后直接输出。
实型常量
²十进制小数形式:必须有小数点。如:3.14159、-23.4563、.5、1.
²指数形式:字母e前必须有数字,字母e后必须为整数。如:1.5e4、
6.8e-10
说明:
n实型常数只以十进制表示
n所有实型常数默认为double,加 f或 F显式说明为 float
n绝对值小于1的实数,小数点前的 0可略
n Turbo C用默认格式输出实型数时,保留小数点后6位
n实型数据易产生误差,对于实型数据的比较,谨用“= =” 。
#include <stdio.h>
#include <math.h>
main(){
int a,b;
if(1./41*41==1)a=1;
else a=0;
if (sqrt(2)*sqrt(2)==2) b=1;
else b=0;
printf("%d\t%d\n",a,b);
}
思考
1. double 和 float,哪种类型表示的数据精度高?有效
位数分别是?
2. 用什么格式串输入数据给 double 型变量?
3. 用什么格式串输出 double 型数据?
4. 目前认识的输出格式串有哪些?
5. 3.5 是哪种类型的常量?
6. 如何表示 float 型的常量?
7. 实型数据可以以八进制或十六进制输出吗?
8. 输出 double 型数据的格式串是?
字符型数据printf怎么输出字符
字符常数
n直接表示, 如'a', '9', 'Z'
n ASCII码值表示。如65('A'), 0x5d(')'),0102('B') n转义字符。'\033'表示Esc,这里'\101' 表示’A’
n Turbo C2.0中有些常用的字符用以下特殊符号表示
规定符 含义 规定符 含义 '\f'换页 '\\'\符
'\r'回车 '\'''符
'\t'制表键 '\"'"符
'\n'换行
字符变量
定义格式:char 变量表; 定义有符号字符变量
unsigned char变量表; 定义无符号字符变量
字符数据的存储
字符以 ASCII码形式存放,一个字符占一个字节。
char型数取值范围为-128~127,unsigned char数到值范围是0~255。
字符型与整型的转换:自动进行。
对于字符串常量, 一般用双引号括起来表示, 如"Hello Turbo C2.0"。
例:阅读程序,分析结果
#include <stdio.h>
void main(){
?
char a;
unsigned char b;
int c;
a=b=200;
c='A';
printf("%d  %d    %d\n",a,b,c);
printf("%c  %c    %c\n",a,b,c);
getch();
}
思考
1. 一个char型数据占字节数?
2. 如何给字符型变量输入数据?
3. char型数据如何转换成int等整型数据?
4. 转义符怎么表示?
5. 何为字符串?
6. 一个字符串可以置入到字符变量中吗?
字符串常数
用一对双引号括起来的字符序列。
以不可显示的'\0'字符为字符串结束标记
通过字符数组存储一个字符串。如:char str[10];
字符串的本质是字符数组。 而单个字符可与整型相通。
基本数据类型
构造数据类型 指针类型
空类型
数组
结构体
联合
整型
浮点型
字符型
基本整型
短整型
长整型
无符号
有符号
单精度
双精度
枚举型
变量赋值与混合运算
变量的定义和初始化
变量的定义:应置于函数的处理部分之前
变量的初始化:变量定义时直接赋初值
如: int x=1;
float y=3.14f;
int a,b,c=1;
变量的赋值
给已定义的变量赋值
单个变量赋值变量名=表达式;
连等赋值变量名1=变量名2=……=表达式;
如:int a,b,c;
a=b=c=1;
各类数值型数据的混合运算
n字符型化为整型运算
n实型运算时一律以双精度进行
char
unsiged char int unsigned int long
double
float 编译系统自动完成
#include <stdio.h>
void main(){
int x=0xffff;
unsigned y,n=10;
float z;
y=x-n;
z=n/3.;
printf("%d %d  %f\n",x,y,z);
getch();
}
思考
1. 变量的定义应放在函数体中的什么位置?
2. 变量的类型一旦确定可否改变?
3. char、int 型数据混合运算,结果是什么类型?
4. long、 double 型数据混合运算, 结果是什么类型?
5. int、float 型数据混合运算,结果是什么类型?
算术运算和强制类型转换
基本算术运算
运算符:+、-、*、/、%(求余)、++(自增)、--(自减)
算术表达式:数值型数据由运算符和括号连结成的、有意义的式子。
如:3.5 + 1 / 2 + 56 % 10
运算级别:先*、/、%,后+、-。
?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。