C语言程序设计第四版谭浩强-PPT课件
合集下载
C语言程序设计(第四版) 谭浩强 课件 PPT 完整版
语句
printf语句中的“\n‖是换行
符
<
>
C语言程序设计
第/* example1.1 calculate the sum of a and b*/ #include <stdio.h> 预处理命令 /* This is the main program */ void main() 注释 { int a,b,sum; /*定义变量*/ 函数 a=10; b=24; 语句 sum=add(a,b); printf(”sum= %d\n",sum); } printf语句中的“ %d ‖是表
C语言程序设计
第一章 C语言概述
C语言结构特点
函数与主函数
程序由一个或多个函数组成 必须有且只能有一个主函数main(),可以放在程序中任一 位臵 程序执行从main开始,在main中结束,其它函数通过嵌 套调用得以执行。
程序语句
C程序由语句组成 用‚;‛作为语句终止符
注释
C语言程序设计
第一章 C语言概述
Turbo C集成开发环境
配臵要求
UNIX,PC-DOS,MS-DOS,UCDOS操作系统 硬盘容量约2M,448K RAM运行空间
安装Turbo C
创建子目录 Install 若不是可安装盘,将文件拷贝到对应的目录下
TC
*.* *.*
INCLUDE SYS
Alt +x Alt+F ,Q
帮助Help
F1 Ctrl+F1
<
>
C语言程序设计
第一章 C语言概述
常用热键 基本操作:
F10-----调用主菜单 F2------存盘 F3------打开 F1------帮助信息 Alt+F9------Compile Ctrl+F9------Run Alt+F5------User Screen Alt+X ------退出Tc
C语言程序设计第四版PPT 谭浩强
case '9' : y="A";
case '8' : y="B"; case '7' : y="C"; case '6' : y="D"; default : y="E"; } printf("Level:%c\n",y);
注意: 同前;case后的数据类型; 每个case后的break语句; 使用相同语句的分支合并。
printf("It's a positive number\n");
else
printf("less than zero\n");
关系运算符
< <= == !=
> >= 优先级高 优先级低
关系运算符
算术运算→关系运算→赋值运算
优
优
先
先
于
于
例:P.92 L.8
关系表达式
➢用关系运算符连接算术表达式(或 字符/关系/逻辑/赋值表达式)形成
选择结构(分支结构)流程
Y
语句组1
条件
N
语句组2
循环结构流程
条件
N
Y
语句组
第4章 选择结构
选择结构(分支结构)流程YΒιβλιοθήκη 语句组1条件N
语句组2
选择结构实例
P.66 例3.5 一元二次方程 程序存在的问题:用户输入的数据必 须保证b2-4ac≥0,否则调用sqrt函数 会出错。 改进:P.86 例4.1 是否还有不完善之处?
文件名
尽信书,则不如无书
算法在程序中的重要性
case '8' : y="B"; case '7' : y="C"; case '6' : y="D"; default : y="E"; } printf("Level:%c\n",y);
注意: 同前;case后的数据类型; 每个case后的break语句; 使用相同语句的分支合并。
printf("It's a positive number\n");
else
printf("less than zero\n");
关系运算符
< <= == !=
> >= 优先级高 优先级低
关系运算符
算术运算→关系运算→赋值运算
优
优
先
先
于
于
例:P.92 L.8
关系表达式
➢用关系运算符连接算术表达式(或 字符/关系/逻辑/赋值表达式)形成
选择结构(分支结构)流程
Y
语句组1
条件
N
语句组2
循环结构流程
条件
N
Y
语句组
第4章 选择结构
选择结构(分支结构)流程YΒιβλιοθήκη 语句组1条件N
语句组2
选择结构实例
P.66 例3.5 一元二次方程 程序存在的问题:用户输入的数据必 须保证b2-4ac≥0,否则调用sqrt函数 会出错。 改进:P.86 例4.1 是否还有不完善之处?
文件名
尽信书,则不如无书
算法在程序中的重要性
C语言程序设计第四版PPT-谭浩强
文件f2的 文件信息区
文件f3的 文件信息区
文件的基本知识——文件的操作 写文件:打开-写-关闭 读文件:打开-读-关闭
文件的打开
功能:为文件建立相应的信息区(存放 文件信息)和文件缓冲区(暂时存放输入 输出的数据) 函数: fopen(文件名,使用文件方式); 例: fopen("a1.dat","r");
第10章 文件
本章内容
10.1 文件的基本知识 10.2 打开与关闭文件 10.3 顺序读写数据文件 10.4 随机读写数据文件 10.5 文件读写的出错检测
文件的基本知识——输入输出
之前各章中处理的数据 ➢输入:键盘->内存 ➢输出:内存->显示器 实际上也可能是 ➢输入:外部设备->内存(读文件) ➢输出:内存->外部设备(写文件) 操作系统把各种设备都统一作为文件处理
文件
顺序文件的读写——读写字符串
例10.3 从键盘输入3个字符串,排序,把排
序后的字符串写入文件(P.342-343) 读上面写好的文件(P.344)
顺序文件的读写——格式化读写
fprintf(文件指针,格式字符串,输出表列); fscanf (文件指针,格式字符串,输入表列);
例: fprintf (fp,"%d,%6.2f",i,f); fscanf (fp,"%d,%f",&i,&f);
用文件扩展名”
文件的基本知识——流式文件
C语言把文件看作是字符(或字 节)的序列。
文件以“流”的形式在程序与操 作系统间流动。
文件的基本知识——数据的形式
根据数据的组织形式,数据文件可分为 ASCII文件:数据逐个字符的ASCII码 输出到外存,也称文本文件 二进制文件:内存中二进制形式的数据 直接输出到外存
C语言程序设计第四版谭浩强-PPT课件
例: printf("%d",sizeof(int));
浮点型数据(Floating point,即实型) 浮点型常量
两种表示形式 十进制小数:例如 3.14159 指数形式:例如 1.72e3
main( ) { float x; x=23456.789; printf("x=%e",x); }
25string26string字符串结束符占一个字节由系统自动加上源代码中china27字符常量字符串常量定界符非负整数存储要求单个字符的ascii码有效字符和结束标志0的ascii码2829整型intshortlong浮点型floatdoublelongdouble字符型char数据可混合运算运算前先自动转换成同一类型必定转换floatdoublecharint运算对象类型不同时由较低精度向较高精度转换成相同类型精度
常变量
C99新增 存储方式和用法都是变量,但只能在 定义时赋值一次
C语言的数据类型
1.基本类型 整型、浮点型、字符型 2.派生类型 数组,结构体,共用体 3.指针类型 4.空类型 5.枚举型
整型数据(Integer) 整型常量
三种数制的表示形式
十进制(Decimal):例如 八进制(Octal):例如
上周实验题讲解
P.6例1.1 P15习题5 教材例1.3
——增加输入提示,便于用户操作
——也可以不用函数
——多次运行,测试各种顺序的组合
P15习题6
——三个数比较:用max函数比较两次
第3章
顺序程序设计
3.1 最简单的程序结构——顺序结构
数据输入 运算处理
结果输出
顺序结构流程
步骤1 步骤2 步骤3
10 + 'a' – 10.1 * 'b'
浮点型数据(Floating point,即实型) 浮点型常量
两种表示形式 十进制小数:例如 3.14159 指数形式:例如 1.72e3
main( ) { float x; x=23456.789; printf("x=%e",x); }
25string26string字符串结束符占一个字节由系统自动加上源代码中china27字符常量字符串常量定界符非负整数存储要求单个字符的ascii码有效字符和结束标志0的ascii码2829整型intshortlong浮点型floatdoublelongdouble字符型char数据可混合运算运算前先自动转换成同一类型必定转换floatdoublecharint运算对象类型不同时由较低精度向较高精度转换成相同类型精度
常变量
C99新增 存储方式和用法都是变量,但只能在 定义时赋值一次
C语言的数据类型
1.基本类型 整型、浮点型、字符型 2.派生类型 数组,结构体,共用体 3.指针类型 4.空类型 5.枚举型
整型数据(Integer) 整型常量
三种数制的表示形式
十进制(Decimal):例如 八进制(Octal):例如
上周实验题讲解
P.6例1.1 P15习题5 教材例1.3
——增加输入提示,便于用户操作
——也可以不用函数
——多次运行,测试各种顺序的组合
P15习题6
——三个数比较:用max函数比较两次
第3章
顺序程序设计
3.1 最简单的程序结构——顺序结构
数据输入 运算处理
结果输出
顺序结构流程
步骤1 步骤2 步骤3
10 + 'a' – 10.1 * 'b'
谭浩强C程序设计四PPT课件
第四章 最简单的ห้องสมุดไป่ตู้程序设计 --顺序程序设计
教学要求: 1理解数据输入与输出操作和格式 2掌握输入与输出 3掌握用顺序结构来进行程序设计
教学内容: 4.1C语句概述 4.2赋值语句 4.3数据输出 4.4数据输入 4.5程序举例
高级语言程序设计
章顺序程序设计
第四
4.1 C语句概述
C语句作用:用来向计算机系统发出 操作指令
输出表:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息
格式说明: %[修饰符]格式字符 ,用于指定输出格式 普通字符或转义序列:原样输出 格式字符
高级语言程序设计
格式字符:
章顺序程序设计
第四
d,i 十进制整数
int a=-1;printf ( “%d”,a);
-1
x,X 十六进制无符号整数int a=255;printf(“%x”,a);
ff
o u c s e,E f g %%
指八小e不百字单和例数进数带分符一f中形制形符号串字较式无式号本符ipp短浮符浮十身nrr一tii点号点进nn种例输制小整小att例=ff整数数数出3((,““数结bfffmcill=a%iilphan果oonnop4=draiaatttar;%ir例ttntip:nd%aan(输arptadaa==atf)==ir==,\6-=f(6出3ni355515(n“m566,tn;;6“b”;a77pp结7bft%p=i..rr.%=(f4sr%,77nii7%”果i4“(88dann8”(输n{};“99tt9\,),t:;;%ff;)nb“f出pp((p;da()”rr““ruu=A“;ii结iBnp=%%ann,%%nC%sr-dd=ttouta果”cii1ff\3””f,”{}((gn(,n,)b:““,,“nt”;,)aaefabb%%;))%uu)d(=,=fe;;gnp=;”””%a4”sr-d,ii1,,,iub\aagnan=)n)))ntt%;”;;;efdd(\,5”una.55="6,6iu6676,15Ab77n=7A05B5u%)..8t%13C5);7795d3;880\995eun0+;0="0126,5u5)
教学要求: 1理解数据输入与输出操作和格式 2掌握输入与输出 3掌握用顺序结构来进行程序设计
教学内容: 4.1C语句概述 4.2赋值语句 4.3数据输出 4.4数据输入 4.5程序举例
高级语言程序设计
章顺序程序设计
第四
4.1 C语句概述
C语句作用:用来向计算机系统发出 操作指令
输出表:要输出的数据(可以没有,多个时以“,”分隔) 格式控制串:包含两种信息
格式说明: %[修饰符]格式字符 ,用于指定输出格式 普通字符或转义序列:原样输出 格式字符
高级语言程序设计
格式字符:
章顺序程序设计
第四
d,i 十进制整数
int a=-1;printf ( “%d”,a);
-1
x,X 十六进制无符号整数int a=255;printf(“%x”,a);
ff
o u c s e,E f g %%
指八小e不百字单和例数进数带分符一f中形制形符号串字较式无式号本符ipp短浮符浮十身nrr一tii点号点进nn种例输制小整小att例=ff整数数数出3((,““数结bfffmcill=a%iilphan果oonnop4=draiaatttar;%ir例ttntip:nd%aan(输arptadaa==atf)==ir==,\6-=f(6出3ni355515(n“m566,tn;;6“b”;a77pp结7bft%p=i..rr.%=(f4sr%,77nii7%”果i4“(88dann8”(输n{};“99tt9\,),t:;;%ff;)nb“f出pp((p;da()”rr““ruu=A“;ii结iBnp=%%ann,%%nC%sr-dd=ttouta果”cii1ff\3””f,”{}((gn(,n,)b:““,,“nt”;,)aaefabb%%;))%uu)d(=,=fe;;gnp=;”””%a4”sr-d,ii1,,,iub\aagnan=)n)))ntt%;”;;;efdd(\,5”una.55="6,6iu6676,15Ab77n=7A05B5u%)..8t%13C5);7795d3;880\995eun0+;0="0126,5u5)
C语言程序课件ppt第4章选择结构程序设计谭浩强C程序设计第四版
C★
A★
●B
4.2.1 用if语句处理选择结构举例
C★ A ●★ ● B
4.2.1 用if语句处理选择结构举例
C★ A ● ●★ B
#include <stdio.h> int main() { float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b) 如果a>b
{ t=a;
a=b; 将a和b的值互换
b=t; } printf("%5.2f,%5.2f\n",a,b); return 0; }
#include <stdio.h>
int main()
{ float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{ t=a; a=b;
选择结构,用if语句实现的
a && b 真 假 假 假
a || b 真 真 真 假
4.4.1 逻辑运算符及其优先次序
➢逻辑运算符的优先次序
! → && → ||
(!为三者中最高)
➢与其他运算符的优先次序
! 算术运算符 关系运算符
&& 和 || 赋值运算符
(高) (低)
4.4.2 逻辑表达式
➢ 逻辑表达式的值应该是逻辑量“真”或“假” ➢ 编译系统在表示逻辑运算结果时
4.3.1关系运算符及其优先次序
c>a+b a>b==c a==b<c a=b>c
等效于 c>(a+b) 等效于 (a>b)==c 等效于 a==(b<c) 等效于 a=(b>c)
C语言程序设计第四版PPT 谭浩强
i 1 100
问题的扩展: (1) 求 1 ~ 100 间奇数的和
int i,sum=0; for (i=1;i<=100;i=i+2) sum=sum+i; printf("1+3+...+99=%d\n",sum); int i,sum=0; for (i=1;i<=100;i++) if(i%2==1)sum=sum+i; printf("1+3+...+99=%d\n",sum);
do-while语句
do 语句 while (表达式)
假(0)
语句
表达式
真(非0)
语句 表达式
N-S图
流程图
do-while语句
例1:求 n 1 2 3 ... 100
n 1
100
int i=1,sum=0;
do
{ sum=sum+i;
i++;
}while(i<=100);
例4:求
10
n ! 1! 2! 3! ... 10 !
n 1
int i,n, fac,sum=0; for (n=1;n<=10;n++) { fac=1; for (i=1;i<=n;i++) fac=fac*i; sum=sum+fac; } printf ("1!+2!+...+10!=%ld\n",sum);
例6:鸡兔问题
计算机的解决方法——将各种可能情 况逐个试算,找到符合要求的结果
鸡0只,兔H只,则脚有...只≠F 鸡1只,兔H-1只,则脚有...只≠F 鸡2只,兔H-2只,则脚有...只≠ F ...... 鸡C只,兔H-C只,则脚有...只=F,显示结果 ...... 鸡H只,兔0只,则脚有...只≠ F
问题的扩展: (1) 求 1 ~ 100 间奇数的和
int i,sum=0; for (i=1;i<=100;i=i+2) sum=sum+i; printf("1+3+...+99=%d\n",sum); int i,sum=0; for (i=1;i<=100;i++) if(i%2==1)sum=sum+i; printf("1+3+...+99=%d\n",sum);
do-while语句
do 语句 while (表达式)
假(0)
语句
表达式
真(非0)
语句 表达式
N-S图
流程图
do-while语句
例1:求 n 1 2 3 ... 100
n 1
100
int i=1,sum=0;
do
{ sum=sum+i;
i++;
}while(i<=100);
例4:求
10
n ! 1! 2! 3! ... 10 !
n 1
int i,n, fac,sum=0; for (n=1;n<=10;n++) { fac=1; for (i=1;i<=n;i++) fac=fac*i; sum=sum+fac; } printf ("1!+2!+...+10!=%ld\n",sum);
例6:鸡兔问题
计算机的解决方法——将各种可能情 况逐个试算,找到符合要求的结果
鸡0只,兔H只,则脚有...只≠F 鸡1只,兔H-1只,则脚有...只≠F 鸡2只,兔H-2只,则脚有...只≠ F ...... 鸡C只,兔H-C只,则脚有...只=F,显示结果 ...... 鸡H只,兔0只,则脚有...只≠ F
C语言程序设计第四版PPT_谭浩强6章资料
折半查找
int a[11]={5,13,19,21,37,56,64,75,80,88,92}; int index=-1,key,low,high,middle;
scanf("%d",&key); low=0;high=10; while(low<=high) { middle=(low+high)/2; if (key==a[middle]) { index=middle; break; } else if (key>a[middle]) low=middle+1; else high=middle-1; }
二维数组
例6.4 二维数组行列对换(矩阵转置)
例6.5 对于一个二维数组,求最大值及其下
标 经典实例:杨辉三角(第6章习题第6题)
二维数组
本节要点
二维数组的物理存储方式
二维数组的逻辑概念——矩阵
二维数组元素的遍历——双重循环
字符数组
C语言中没有字符串变量,字符串 数据需要使用字符数组保存。
数组名[下标][下标] 例:赋值 a[1][3]=8;
输出 printf("%d",a[2][1]);
二维数组的定义和引用
下面的程序运行时输入 34 56 12 7 9 41 52, 显示结果为______。 int a[2][3], i, j; for (i=0; i<=1; i++) for (j=0; j<=2; j++) scanf("%d", &a[i][j]); for (j=0; j<=2; j++) { for (i=0; i<=1; i++) printf("%d\t", a[i][j]); printf("\n");}
C语言程序设计第四版PPT 谭浩强
第9章 用户建立的 数据类型
本章内容
9.1 结构体类型和结构体变量 9.2 结构体数组 9.3 结构体指针 9.4 用指针处理链表 9.5 共用体类型
9.6 枚举类型
9.7 用typedef命名类型
9.1 结构体(Structure)
概念 不同类型的相关数据组合成一个整 体,以便引用。 例:
电话本程序 P.297
9.1 结构体
一个简单的例子
struct Teacher { char id[4]; char name[10]; int age; char course[20]; };
struct Teacher t1={"0324","Li",40,"C Language"}, t2={"1728","Hu",30,"Data Structure"}; printf("%s teaches %s\n",,t1.course); printf("No: %s teaches %s\n",t2.id,t2.course); t1=t2;
9.2 结构体数组
例子修改——结构体类型数组初始化
struct Teacher { char id[4]; char name[10]; int age; char course[20]; } teac[2]={ {"0324","Li",40,"C Language"}, {"1728","Hu",30,"Data Structure"}};
“函数”习题讲解
函数编写应注意的问题——模块划分的原则: P.203功能要单一,相互影响尽量少。例 7.17是个不好的程序。 初学者常见的习惯:输入、输出与数据处理 运算放在一个函数中。 关于数组(的首地址)作为函数的形参: P.195 数组的大小是否指定全无影响。 通常会定义一个整型的参数,接收实参数组 的大小。
C语言程序设计第四版PPT_谭浩强
冒泡排序 对数组元素a[0]-a[5]升序排序 比较a[5]和a[4],若顺序不符则交换; 比较a[4]和a[3],若顺序不符则交换; 比较a[3]和a[2],若顺序不符则交换; 比较a[2]和a[1],若顺序不符则交换; 比较a[1]和a[0],若顺序不符则交换。
冒泡排序
=》结果:最小的数被换到了a[0]中。 =》对a[1]-a[5]重复上述步骤,将其中最 小的数换到a[1]中。 =》重复上述步骤直至完成排序。
选择排序
for (i=0;i<5;i++)
{ imin=i;min=a[i]; /*求a[i]之后元素的最小值*/
for (j=i+1;j<=5;j++)
if (a[j]<min)
{ min=a[j]; /*变量min记录最小值 */
imin=j;
/*变量imin记录最小值的下标 */
}
temp = a[i];
例:在一维数组中查找给定数据及下标
这是顺序查找法。 还有一种常用的折半 查找法,数据量大且 有序时使用,效率更 高。
折半查找
一维数组的定义和引用
例:排序算法
算法演示 •冒泡排序 •选择排序 •插入排序 •快速排序
冒泡排序
基本思路:依次将数组中相邻两元 素比较,并按要求的顺序交换,从而 将最大/最小的数推至最前或最后;对 余下的数重复上述步骤,最终获得所 需的顺序
一维数组的定义和初始化
一维数组的定义和初始化
一维数组的定义和初始化
int a[5],i; for(i=0;i<5;i++)
printf("%d\n",a[i]);
一维数组的定义、初始化和引用
C语言程序设计第四版1_谭浩强7章PPT课件
第7章 函数
精选PPT课件
1
引例
求阶乘n!
int i,n; float fac=1; printf("n="); scanf("%d",&n); for(i=1;i<=n;i++)
fac=fac*i; printf ("%d!=%.0f\n",n,fac);
精选PPT课件
2
引例
求任意3个正整数的阶乘的和 a!+b!+c!
fa=1; for(i=1;i<=a;i++)
fa=fa*i; fb=1;
for(i=1;i<=b;i++) fb=fb*i;
fc=1; for(i=1;i<=c;i++)
fc=fc*i;
printf("%d!+%d!+%d!=%.0f",a,b,c,fa+fb+fc);
精选PPT课件
3
引例
求任意3个正整数的阶乘的和 a!+b!+c!
精选PPT课件
int max(int x,int y) { int z;
if (x>y) z=x; else z=y; return z; }
有返回值的函数
7
函数的概念
上述问题也可只用一个main函数实现
int main ( )
{ int a, b, c;
scanf ("%d,%d",&a,&b);
return 0;
}
精选PPT课件
4
引例
求任意3个正整数的阶乘的和 a!+b!+c! ➢使用函数可减少程序的重复段落 ➢使用函数可使程序功能相对独立,便 于维护——模块化的程序设计
精选PPT课件
1
引例
求阶乘n!
int i,n; float fac=1; printf("n="); scanf("%d",&n); for(i=1;i<=n;i++)
fac=fac*i; printf ("%d!=%.0f\n",n,fac);
精选PPT课件
2
引例
求任意3个正整数的阶乘的和 a!+b!+c!
fa=1; for(i=1;i<=a;i++)
fa=fa*i; fb=1;
for(i=1;i<=b;i++) fb=fb*i;
fc=1; for(i=1;i<=c;i++)
fc=fc*i;
printf("%d!+%d!+%d!=%.0f",a,b,c,fa+fb+fc);
精选PPT课件
3
引例
求任意3个正整数的阶乘的和 a!+b!+c!
精选PPT课件
int max(int x,int y) { int z;
if (x>y) z=x; else z=y; return z; }
有返回值的函数
7
函数的概念
上述问题也可只用一个main函数实现
int main ( )
{ int a, b, c;
scanf ("%d,%d",&a,&b);
return 0;
}
精选PPT课件
4
引例
求任意3个正整数的阶乘的和 a!+b!+c! ➢使用函数可减少程序的重复段落 ➢使用函数可使程序功能相对独立,便 于维护——模块化的程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不占内存单元
不可赋值
不指定类型
名称通常大写 使用符号常量的好处
P.41
变量(Variable)
用于存放数据的一个存储单元
存放的数据即变量值 变量名是存储单元地址的一个名称 先定义,后使用
int a,b;
定义时指定变量类型——编译时分配
存储空间
命名规则——标识符的命名规则
标识符(identifier)
整型数据(Integer) 整型变量
根据占用内存字节数分类(P.45表3.2)
基本整型 短整型 长整型 无符号整型
int(长整型或短整型) short [int] long [int] unsigned …
signed
int在不同编译系统中分配存储字节数各不 相同,可用sizeof函数测试
阅读顺序结构实例
P.37-38例3.1
为什么要写
5.0/9 而不是 5/9?
f 的值可否由用户输入? 数据的类型及运算
输入与输出
本章要点:
3.2 C语言的数据及运算
数据有类型(type),有具体的值(value)。 不同类型的数据存储格式不同,能够进行 的运算也不同。 数据的形式有常量,变量,表达式。
常变量
C99新增 存储方式和用法都是变量,但只能在 定义时赋值一次
C语言的数据类型
1.基本类型 整型、浮点型、字符型 2.派生类型 数组,结构体,共用体 3.指针类型 4.空类型 5.枚举型
整型数据(Integer) 整型常量
三种数制的表示形式
十进制(Decimal):例如 八进制(Octal):例如
的字符,如'\101'和'\x41' (P.40)
以
\ 开头的控制字符(P.40表3.1)
字符型数据(character) 字符变量
使用char定义 保存一个字符
占用1个字节的内存空间
字符数据的存储与使用
在存储单元中保存字符的ASCII码 因此字符数据可以参加算术运算
例如
字符数据的存储与使用
例: printf("%d",sizeof(int));
浮点型数据(Floating point,即实型) 浮点型常量
两种表示形式 十进制小数:例如 3.14159 指数形式:例如 1.72e3
main( ) { float x; x=23456.789; printf("x=%e",x); }
标识一个对象(变量、符号常量、 函数、数组、类型等)的名称
关键字不可作为标识符(附录C) 系 统 预 定 义 的 标 识 符 如 库 函 数 名
(附录F) 建议不要再定义,以免混 淆
标识符命名规则
只包括字母、数字、下划线,以字
母或下划线开头
区分大小写 —— 习惯上变量名小写,
常量名大写
长度规定各编译系统不同 命名的良好习惯——“见名知义”
long double)、字符型(char)数据可混合运算
运算前先自动转换成同一类型
必定转换
float→double,char→int
运算对象类型不同时由较低精度向较高
精度转换成相同类型
精度:int < unsighed < long < double
数值型数据的混合运算
2.345679e+004 对照一下%f的格式
浮点型数据 浮点型变量
单精度
float
双精度
double
long double
长双精度
同一类型在不同的编译系统中分配存 储字节数各不相同,可用sizeof函数 测试
浮点型常量的类型确定
浮点型常量默认为double类型 浮点型常量后加f或F视为float
一对双引号(")括起的字符序列 字符串长度:字符串中字符的个数 空串:长度为0的字符串(即一个
字符都没有的字符串)表示为 ""
字符串(string)——存储方式
"CHINA" 字符串结束符,占一个字节, 由系统自动加上,源代码中 不写 I N A \0
C
H
由5个字符组成的字符串在内存中占用 6个字节存储空间
常量(Constant)
运行过程中值不改变的量(类型也不变)
直接常量
整型常量:1246
实型常量:45.96
字符常量:’A’ 字符串常量
-2.78e8
\n(转义字符)
"Hello World"
常量(Constant)
运行过程中值不改变的量(类型也不变)
符号常量
#define PI 3.14159
字符常量与字符串常量的区别
字符常量 定界符 长度 ' 1 字符串常量 " 非负整数
存储要求 单个字符的 有效字符和结束标 ASCII码 志’\0’的ASCII码
注意: C语言只有字符变量,没有字符串 变量
使用字符数组保存字符串
数值型数据的混合运算
整型 (int, short, long) 、浮点型 (float, double,
int main( ) { char x, z; int y; x=65; printf("x=%c\n",x+32); y='D'; printf("y=%c\n",y); printf("y=%d\n",y); z='a'-32; printf("z=%c\n",z); }
字符串(string)——概念
上周实验题讲解
P.6例1.1 P15习题5 教材例1.3
——增加输入提示,便于用户操作
——也可以不用函数
——多次运行,测Biblioteka 各种顺序的组合P15习题6
——三个数比较:用max函数比较两次
第3章
顺序程序设计
3.1 最简单的程序结构——顺序结构
数据输入 运算处理
结果输出
顺序结构流程
步骤1 步骤2 步骤3
61
075 0x3D
十六进制(Hexadecimal):例如
整型数据(Integer) 整型常量的类型确定
根据其值的范围自动确定类型(P51)
可赋值给能够容纳其值的各种整型变量
整常量后加l或L视为long
int int
VC++中int就是long int
整常量后加u或U视为unsigned
浮点型数据的有效范围(P.50-51)
练习:判断下面程序的运行结果
int main() { float a; a=12; }
格式符与数据 类型不相符
printf("%d",a);
字符型数据(character)
字符常量
一对单引号(即撇号'
)括起的一个字符
用八进制或十六进制数 (ASCII 码 ) 表示
不可赋值
不指定类型
名称通常大写 使用符号常量的好处
P.41
变量(Variable)
用于存放数据的一个存储单元
存放的数据即变量值 变量名是存储单元地址的一个名称 先定义,后使用
int a,b;
定义时指定变量类型——编译时分配
存储空间
命名规则——标识符的命名规则
标识符(identifier)
整型数据(Integer) 整型变量
根据占用内存字节数分类(P.45表3.2)
基本整型 短整型 长整型 无符号整型
int(长整型或短整型) short [int] long [int] unsigned …
signed
int在不同编译系统中分配存储字节数各不 相同,可用sizeof函数测试
阅读顺序结构实例
P.37-38例3.1
为什么要写
5.0/9 而不是 5/9?
f 的值可否由用户输入? 数据的类型及运算
输入与输出
本章要点:
3.2 C语言的数据及运算
数据有类型(type),有具体的值(value)。 不同类型的数据存储格式不同,能够进行 的运算也不同。 数据的形式有常量,变量,表达式。
常变量
C99新增 存储方式和用法都是变量,但只能在 定义时赋值一次
C语言的数据类型
1.基本类型 整型、浮点型、字符型 2.派生类型 数组,结构体,共用体 3.指针类型 4.空类型 5.枚举型
整型数据(Integer) 整型常量
三种数制的表示形式
十进制(Decimal):例如 八进制(Octal):例如
的字符,如'\101'和'\x41' (P.40)
以
\ 开头的控制字符(P.40表3.1)
字符型数据(character) 字符变量
使用char定义 保存一个字符
占用1个字节的内存空间
字符数据的存储与使用
在存储单元中保存字符的ASCII码 因此字符数据可以参加算术运算
例如
字符数据的存储与使用
例: printf("%d",sizeof(int));
浮点型数据(Floating point,即实型) 浮点型常量
两种表示形式 十进制小数:例如 3.14159 指数形式:例如 1.72e3
main( ) { float x; x=23456.789; printf("x=%e",x); }
标识一个对象(变量、符号常量、 函数、数组、类型等)的名称
关键字不可作为标识符(附录C) 系 统 预 定 义 的 标 识 符 如 库 函 数 名
(附录F) 建议不要再定义,以免混 淆
标识符命名规则
只包括字母、数字、下划线,以字
母或下划线开头
区分大小写 —— 习惯上变量名小写,
常量名大写
长度规定各编译系统不同 命名的良好习惯——“见名知义”
long double)、字符型(char)数据可混合运算
运算前先自动转换成同一类型
必定转换
float→double,char→int
运算对象类型不同时由较低精度向较高
精度转换成相同类型
精度:int < unsighed < long < double
数值型数据的混合运算
2.345679e+004 对照一下%f的格式
浮点型数据 浮点型变量
单精度
float
双精度
double
long double
长双精度
同一类型在不同的编译系统中分配存 储字节数各不相同,可用sizeof函数 测试
浮点型常量的类型确定
浮点型常量默认为double类型 浮点型常量后加f或F视为float
一对双引号(")括起的字符序列 字符串长度:字符串中字符的个数 空串:长度为0的字符串(即一个
字符都没有的字符串)表示为 ""
字符串(string)——存储方式
"CHINA" 字符串结束符,占一个字节, 由系统自动加上,源代码中 不写 I N A \0
C
H
由5个字符组成的字符串在内存中占用 6个字节存储空间
常量(Constant)
运行过程中值不改变的量(类型也不变)
直接常量
整型常量:1246
实型常量:45.96
字符常量:’A’ 字符串常量
-2.78e8
\n(转义字符)
"Hello World"
常量(Constant)
运行过程中值不改变的量(类型也不变)
符号常量
#define PI 3.14159
字符常量与字符串常量的区别
字符常量 定界符 长度 ' 1 字符串常量 " 非负整数
存储要求 单个字符的 有效字符和结束标 ASCII码 志’\0’的ASCII码
注意: C语言只有字符变量,没有字符串 变量
使用字符数组保存字符串
数值型数据的混合运算
整型 (int, short, long) 、浮点型 (float, double,
int main( ) { char x, z; int y; x=65; printf("x=%c\n",x+32); y='D'; printf("y=%c\n",y); printf("y=%d\n",y); z='a'-32; printf("z=%c\n",z); }
字符串(string)——概念
上周实验题讲解
P.6例1.1 P15习题5 教材例1.3
——增加输入提示,便于用户操作
——也可以不用函数
——多次运行,测Biblioteka 各种顺序的组合P15习题6
——三个数比较:用max函数比较两次
第3章
顺序程序设计
3.1 最简单的程序结构——顺序结构
数据输入 运算处理
结果输出
顺序结构流程
步骤1 步骤2 步骤3
61
075 0x3D
十六进制(Hexadecimal):例如
整型数据(Integer) 整型常量的类型确定
根据其值的范围自动确定类型(P51)
可赋值给能够容纳其值的各种整型变量
整常量后加l或L视为long
int int
VC++中int就是long int
整常量后加u或U视为unsigned
浮点型数据的有效范围(P.50-51)
练习:判断下面程序的运行结果
int main() { float a; a=12; }
格式符与数据 类型不相符
printf("%d",a);
字符型数据(character)
字符常量
一对单引号(即撇号'
)括起的一个字符
用八进制或十六进制数 (ASCII 码 ) 表示