清华大学计算机程序设计基础02课件

上传人:仙*** 文档编号:241589736 上传时间:2024-07-07 格式:PPT 页数:50 大小:718.50KB
返回 下载 相关 举报
清华大学计算机程序设计基础02课件_第1页
第1页 / 共50页
清华大学计算机程序设计基础02课件_第2页
第2页 / 共50页
清华大学计算机程序设计基础02课件_第3页
第3页 / 共50页
点击查看更多>>
资源描述
第第2 2章章 C C语言程序的基本语言程序的基本数据类型及其运算数据类型及其运算 1 1本章主要内容本章主要内容 C C语言的数据类型语言的数据类型 数据类型及变量数据类型及变量 运算符和表达式运算符和表达式 位运算符位运算符 C C语言基本输入语言基本输入/输出函数输出函数2 2清华大学清华大学 黄维通黄维通 设计制作设计制作2.1 C语言的数据类型语言的数据类型 3 3清华大学清华大学 黄维通黄维通 设计制作设计制作2.1.1 数据类型的一般概念数据类型的一般概念 基基本本数数据据类型类型字符型字符型数值型数值型空类型空类型复复合合数数据据类型类型结构结构联合联合数组数组枚举枚举指针指针整型整型长整型长整型无符号长整型无符号长整型有符号长整型有符号长整型整整 型型无符号整型无符号整型有符号整型有符号整型短整形短整形无符号短整型无符号短整型有符号短整型有符号短整型实型实型单精度实型单精度实型双精度实型双精度实型数数据据类类型型4 4清华大学清华大学 黄维通黄维通 设计制作设计制作2.1.2 常量常量【例】求圆柱体体积【例】求圆柱体体积#include stdio.h#include stdio.h#define PI#define PI 3.14159263.1415926main()main()float v,r,h=float v,r,h=2.52.5;scanf(%f,&r);scanf(%f,&r);v=PI*r*r*h;v=PI*r*r*h;printf(Volume=%f,v);printf(Volume=%f,v);整型整型实型实型 字符型字符型 字符串字符串 符号符号 常常量量类类型型5 5清华大学清华大学 黄维通黄维通 设计制作设计制作2.2 数据类型及变量数据类型及变量 6 6清华大学清华大学 黄维通黄维通 设计制作设计制作类型标识符类型标识符名名 字字取值范围取值范围char字符型字符型ASCII字符代码字符代码unsigned char 无符号字符型无符号字符型 0至至255signed char有符号字符型有符号字符型-27 27-1int整型整型-215 215-1unsigned int无符号整型无符号整型0 216-1singned int有符号整型有符号整型同同intfloat浮点浮点10-381038double双精度型双精度型10-308103082.2.1 基本数据类型基本数据类型7 7清华大学清华大学 黄维通黄维通 设计制作设计制作2.2.2 变量及变量的定义变量及变量的定义#include#include void main()void main()floatfloat m m,n n;m m=1.11=1.11;m m=2*=2*m m;n n=m m+2.2+2.2;printf(”%f%f”,printf(”%f%f”,m m,n n););变量名变量名变量名:变量名:以以字母字母或或下划线下划线开开头头,由,由数数字字、字母字母、下划线下划线构构成。最多成。最多8 8个字符个字符使用变量前要定义其存储类型使用变量前要定义其存储类型8 8清华大学清华大学 黄维通黄维通 设计制作设计制作变量准则:变量准则:如如 SUM,A1,A2,_Xn,等均合法等均合法 但但a-b,c-d,$888,#555,3x56,ab 等均为非法变量等均为非法变量 变量变量区分大小写区分大小写,如,如a与与A意义意义是是不一样不一样的,变量超过的,变量超过8位的不识别,位的不识别,如如student_AAA与与student_BBB是一是一样的样的(对对16位系统位系统)9 9清华大学清华大学 黄维通黄维通 设计制作设计制作char c1,c2;/*定义字符型变量定义字符型变量c1和和c2*/int x,y,z;/*定义整型变量定义整型变量x,y和和z*/double volume;/*定义双精度型变量定义双精度型变量volume*/float sum,average;/定义实型变量定义实型变量sum和和average unsigned long distance;/定义无符号长整型变量定义无符号长整型变量distance1010清华大学清华大学 黄维通黄维通 设计制作设计制作2.2.3 变量的初始化变量的初始化 给变量赋初值的过程称为变量给变量赋初值的过程称为变量的初始化的初始化。变量所标识的内存单。变量所标识的内存单元可能保留先前使用该单元时留元可能保留先前使用该单元时留下的内容而产生莫名其妙的下的内容而产生莫名其妙的结果结果未赋初值的变量并不意味着该变未赋初值的变量并不意味着该变量中没有数值,而只表明该变量量中没有数值,而只表明该变量中尚未定义特定的值中尚未定义特定的值1111清华大学清华大学 黄维通黄维通 设计制作设计制作#include“stdio.h”main()double p=15.5,d=0.1;float x,y,z=4.53;short int i=j=k=555;char c=a;x=3.8;变量的变量的初始化初始化1212清华大学清华大学 黄维通黄维通 设计制作设计制作字符型数据的使用方法字符型数据的使用方法 字符型数据字符型数据与与整型数据整型数据可可以互相赋值,可以按以互相赋值,可以按字符字符形式形式输出,也可以按输出,也可以按整型数整型数输出输出Page 13如:如:main()main()char c1,c2;char c1,c2;c1=97;c1=97;c2=98;c2=98;printf(“%c%c”,c1,c2);printf(“%c%c”,c1,c2);或:或:c1=ac1=a;c2=bc2=b;1313清华大学清华大学 黄维通黄维通 设计制作设计制作字符串常量字符串常量例例:CHINA a a所以:所以:char c;c=a;a a 是字符常量是字符常量“a”“a”是字符串常量是字符串常量C C H HA A 00I I N Na a 00a a1414清华大学清华大学 黄维通黄维通 设计制作设计制作转义字符的定义转义字符的定义n 换行换行 b 退格退格 a 响铃响铃r 回车回车(不换行不换行,回本行首列回本行首列)t 横向跳格横向跳格(跳跳8格,当前位置到下一格,当前位置到下一个输出去这个区间的内容在屏幕上被个输出去这个区间的内容在屏幕上被清空清空)v 竖向跳格竖向跳格 f 走纸换页走纸换页 输出输出“”字符字符 单引号字符单引号字符ddd 1到到3位位8进制数所代表的字符。如进制数所代表的字符。如101,即为即为A.xhh 1到到2位位16进制所代表的字符进制所代表的字符以以“”开头的开头的字符字符1515清华大学清华大学 黄维通黄维通 设计制作设计制作转义字符的应用:转义字符的应用:#include“stdio.h”#include“stdio.h”main()main()printf(ab ct derftgan);printf(ab ct derftgan);printf(”ahtibbj k);printf(”ahtibbj k);打印机输出:打印机输出:f-a b-c-g d eh-j i -k显示器输出:显示器输出:f-g d eh-j-k1616清华大学清华大学 黄维通黄维通 设计制作设计制作2.2.4 数据类型转换数据类型转换 通常参与运算的数据类型不一定通常参与运算的数据类型不一定完全一致,操作时应先将其转换完全一致,操作时应先将其转换成相同的数据类型,然后操作。成相同的数据类型,然后操作。1717清华大学清华大学 黄维通黄维通 设计制作设计制作隐式隐式转换转换显式显式转换转换数据数据类型类型转换转换在编译时由编译在编译时由编译程序按照一定规程序按照一定规则自动完成,不则自动完成,不需人为干预需人为干预也称强制类型转也称强制类型转换,直接将某数换,直接将某数据强制转换成指据强制转换成指定的数据类型定的数据类型1818清华大学清华大学 黄维通黄维通 设计制作设计制作 int i int i;i=i+(int)9.801;i=i+(int)9.801;强制类型转换,强制类型转换,变量值本身未变化变量值本身未变化如:如:(double)a(double)a;(int)(x+y)(int)(x+y);(float)(5%3)(float)(5%3)(int)x+y:(int)x+y:先把先把x x的值的值转换成转换成intint型,然后型,然后再加再加y y。注意区别。注意区别1919清华大学清华大学 黄维通黄维通 设计制作设计制作数据参加运算前要进行下列转换:数据参加运算前要进行下列转换:char,shortchar,shortintint,floatdouble,floatdouble混合运算时数据类型由低级混合运算时数据类型由低级高级高级int int unsigned long doubleunsigned long double低低 高高注意:上图并不意味着注意:上图并不意味着intint必须到必须到unsignedunsigned再到再到longlong的依次转换,而的依次转换,而是由算式中的最高级进行转换的。是由算式中的最高级进行转换的。2020清华大学清华大学 黄维通黄维通 设计制作设计制作例:例:int i;float f;double d;long e;int i;float f;double d;long e;38+e +i*f-d/e 38+e +i*f-d/e 的运算次的运算次38+10138+101转换为转换为doubledouble再相乘再相乘 最后结果最后结果为为doubledouble转换为转换为doubledouble再相除再相除2121清华大学清华大学 黄维通黄维通 设计制作设计制作2.3 2.3 运算符和表达式运算符和表达式 2222清华大学清华大学 黄维通黄维通 设计制作设计制作表表达达式式赋值表达式赋值表达式算术表达式算术表达式关系表达式关系表达式逻辑表达式逻辑表达式条件表达式条件表达式逗号表达式逗号表达式2.3.1 2.3.1 运算符和表达式概述运算符和表达式概述 2323清华大学清华大学 黄维通黄维通 设计制作设计制作算术运算符算术运算符(+-*/%+-*/%)逗号表达式逗号表达式(,)关系运算符关系运算符(=!=)逻辑运算符逻辑运算符(!&|!&|)位运算符位运算符 (|&|&)赋值运算符赋值运算符(=)条件运算符条件运算符(?:?:)指针运算符指针运算符(*&*&)求字节数运算符求字节数运算符(sizeofsizeof)强制类型转换运算符强制类型转换运算符(类型类型)运运算算符符2424清华大学清华大学 黄维通黄维通 设计制作设计制作2.3.2 赋值运算符和赋值表达式赋值运算符和赋值表达式 a=5;a=5;表达式值为表达式值为5 5a=b=c=5;a=b=c=5;a,b,ca,b,c均为均为5 5a=5+(c=6);a=5+(c=6);a a为为1111,c c为为6 6a=(b=4)+(c=6);a=(b=4)+(c=6);a a为为1010,b b为为4 4,c c为为6 6a=(b=10)/(c=2);a=(b=10)/(c=2);a a为为5 5,b b为为1010,c c为为2 22525清华大学清华大学 黄维通黄维通 设计制作设计制作int t=5;t+=t-=t*t;t=?C C语言中有语言中有1010种复合运算符:种复合运算符:+=,-=,*=,/=,%=,+=,-=,*=,/=,%=,=,&=,=,|=(=,&=,=,|=(位运算位运算)例:例:a+=3 a+=3 等价于等价于 a=a+3a=a+3 x*=y+8 x*=y+8 等价于等价于 x=x*(y+8)x=x*(y+8)此格式不简洁此格式不简洁尽量少用,理尽量少用,理解不好,易错解不好,易错2626清华大学清华大学 黄维通黄维通 设计制作设计制作1 1 基本算术运算符基本算术运算符 +、-、*、/和求模和求模(%)(%)2 2 自增自减运算符自增自减运算符 i+i+或或+i(+i(相当于相当于i=i+1i=i+1;)i-i-或或-i(-i(相当于相当于i=i-1i=i-1;)2.3.3 算术运算符及算术表达式算术运算符及算术表达式 2727清华大学清华大学 黄维通黄维通 设计制作设计制作自加问题容易出错的地方,要注意自加问题容易出错的地方,要注意n=(m+)+(m+)+(m+)n=(m+)+(m+)+(m+)先对先对m m进行相加,然后进行相加,然后m m三次自加三次自加q=(+p)+(+p)+(+p)q=(+p)+(+p)+(+p)先对先对p p进行三次自加,然后相加进行三次自加,然后相加s=q+p:s=q+p:即即s=(q+)+p,s=(q+)+p,q q运行后加运行后加1 1printf(“s=%ds=%ds=%dn”,s,s+,s-printf(“s=%ds=%ds=%dn”,s,s+,s-););单目运算右结合性单目运算右结合性2828清华大学清华大学 黄维通黄维通 设计制作设计制作=(=(大于或等大于或等于于)=(大于大于)(b)&(xy)(ab)&(xy)3030清华大学清华大学 黄维通黄维通 设计制作设计制作逻辑逻辑表达式表达式是用逻辑运算符把操作是用逻辑运算符把操作对象连起来所构成的运算式子,其对象连起来所构成的运算式子,其操作结果是操作结果是“真真(非零非零)”)”或或“假假(零零)”)”xy&ay)&(a=c+5=(x!=y)&(a=c+5)!x&a=c =(!x)&(a=c)3131清华大学清华大学 黄维通黄维通 设计制作设计制作(1)逗号运算符和逗号表达式)逗号运算符和逗号表达式 格式:格式:表达式表达式1 1,表达式表达式2 2 求解顺序及结果:求解顺序及结果:先求解先求解表达式表达式1 1,再求解,再求解表达式表达式2 2,最终结果为,最终结果为表达式表达式2 2的值的值例:例:a=15,b=a*5,z=y,a+6;2.3.7 其他运算符其他运算符 3232清华大学清华大学 黄维通黄维通 设计制作设计制作(2)(2)求字节数运算符求字节数运算符sizeof(double)=8sizeof(double)=8float b10 float b10;sizeof(b)=40 sizeof(b)=40sizeof(char)=1sizeof(char)=13333清华大学清华大学 黄维通黄维通 设计制作设计制作本节内容自学本节内容自学2.4 位运算符位运算符 3434清华大学清华大学 黄维通黄维通 设计制作设计制作 C C语言中的基本输入输出由标语言中的基本输入输出由标准的输入和输出函数完成的。准的输入和输出函数完成的。这些函数的原型均在特定的这些函数的原型均在特定的stdio.hstdio.h这个头文件中定义这个头文件中定义3535清华大学清华大学 黄维通黄维通 设计制作设计制作2.5.1 字符输入字符输入/输出函数输出函数 putcharputchar(参数参数)字符输出字符输出功能:把功能:把一字节一字节代码写入标准代码写入标准输出文件(显示器)输出文件(显示器)getchargetchar()()字符输入字符输入功能:从标准输入文件(键盘)功能:从标准输入文件(键盘)读入读入一字节一字节代码代码3636清华大学清华大学 黄维通黄维通 设计制作设计制作1 字符输入函数字符输入函数getchar()【例】【例】getchar()getchar()函数的应用函数的应用#include#include void main()void main()int c;int c;printf(input a character:);printf(input a character:);c=c=getchar()getchar();printf(“character printf(“character is is%cn,c);%cn,c);3737清华大学清华大学 黄维通黄维通 设计制作设计制作2 字符输出函数字符输出函数putchar()【例】例】利用利用putchar()函数将字符输函数将字符输出到显示终端上出到显示终端上#include#include void main()void main()int a;int a;a=100;a=100;putchar(a);putchar(a);3838清华大学清华大学 黄维通黄维通 设计制作设计制作1 格式化输出函数格式化输出函数printf(”printf(”格式描述串格式描述串”,输出项表列,输出项表列););“格式描述串格式描述串”由一系列由一系列“格式转换说格式转换说明符明符”组成,组成,格式转换说明符格式转换说明符的描述形的描述形式如下:式如下:%+-0 m.n输出精度输出精度 2.5.2 格式化输入输出函数格式化输入输出函数 3939清华大学清华大学 黄维通黄维通 设计制作设计制作2 格式化输入函数格式化输入函数 scanf(”格式描述串格式描述串”,输入项表列,输入项表列);与与printf()printf()函数类似,函数类似,“格式格式描述串描述串”也是由一系列也是由一系列“格式转格式转换说明符换说明符”所组成所组成 4040清华大学清华大学 黄维通黄维通 设计制作设计制作【例】输入三个任意整型数,求平均值【例】输入三个任意整型数,求平均值#include#include void main()void main()int a,b,c;int a,b,c;/定义整型变量名定义整型变量名 float average;/float average;/定义实型变量名定义实型变量名 printf(n printf(n 请输入请输入a a、b b和和c c的值:的值:););scanf(%d%d%d,&a,&b,&c);scanf(%d%d%d,&a,&b,&c);printf(na=%d b=%d c=%d,a,b,c);printf(na=%d b=%d c=%d,a,b,c);average=(a+b+c)/3;average=(a+b+c)/3;printf(n average=%f,average);printf(n average=%f,average);4141清华大学清华大学 黄维通黄维通 设计制作设计制作【例】本例要求掌握不同输入格【例】本例要求掌握不同输入格式下数据的输入方式式下数据的输入方式#include stdio.h#include stdio.hmain()main()char a,b,c,d;char a,b,c,d;int m,n;int m,n;a=B;b=o;c=y;a=B;b=o;c=y;putchar(a);putchar(b);putchar(a);putchar(b);putchar(c);putchar(c);putchar(n);putchar(n);4242清华大学清华大学 黄维通黄维通 设计制作设计制作putchar(a);putchar(a);putchar(n);putchar(n);putchar(b);putchar(b);putchar(n);putchar(n);putchar(c);putchar(c);putchar(n);putchar(n);printf(printf(输入一个字符输入一个字符););d=getchar();d=getchar();printf(The character is);printf(The character is);putchar(d);putchar(d);putchar(n);putchar(n);printf(printf(输入两个整型数输入两个整型数););printf(printf(两整型数用两整型数用 隔开隔开n);n);scanf(%d%d,&m,&n);scanf(%d%d,&m,&n);printf(printf(两整型数是两整型数是%d%d 和和%dn,m,n);%dn,m,n);4343清华大学清华大学 黄维通黄维通 设计制作设计制作printf(“printf(“输入两整型数输入两整型数,用逗号隔开用逗号隔开););scanf(%d,%d,&m,&n);scanf(%d,%d,&m,&n);printf(printf(两整型数是两整型数是%d%d 和和%d,m,n);%d,m,n);printf(printf(输入两整型数,用空格隔开输入两整型数,用空格隔开n);n);scanf(%d%d,&m,&n);scanf(%d%d,&m,&n);printf(printf(两个整型数是两个整型数是%d%d和和%d,m,n);%d,m,n);printf(printf(输入两整型数,用输入两整型数,用隔开隔开););scanf(%d:%d,&m,&n);scanf(%d:%d,&m,&n);printf(printf(两个整型数是两个整型数是%d%d和和%d,m,n);%d,m,n);4444清华大学清华大学 黄维通黄维通 设计制作设计制作【例】求【例】求ax2+bx+c=0的根,设的根,设b2-4ac0#include math.h#include stdio.h main()float a,b,c,disc,x1,x2,p,q;scanf(%f%f%f,&a,&b,&c);disc=b*b-4*a*c;p=-b/(2*a);q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(x1=%5.2fnx2=%5.2fn,x1,x2);4545清华大学清华大学 黄维通黄维通 设计制作设计制作【例】熟悉数据类型及其用法【例】熟悉数据类型及其用法#include main()float x,y;int i,j,k,m,n,p,q,s,t;x=3.6;i=(int)x;y=(float)i;printf(x=%f i=%d y=%fn,x,i,y);k=i;printf(k=%dn,k);4646清华大学清华大学 黄维通黄维通 设计制作设计制作 j=+i;printf(j=%dn,j);m=k+;printf(m=%d k=%dn,m,k);p=m;printf(5-p=m-p=%dn,p);n=(m+)+(m+)+(m+);printf(m=%d n=%dn,m,n);q=(+p)+(+p)+(+p);printf(p=%d q=%dn,p,q);4747清华大学清华大学 黄维通黄维通 设计制作设计制作 s=q+p;printf(s=%d p=%d q=%dn,s,p,q);printf(s=%d s=%d s=%dn,s,s+,s-);t=s;printf(t=%dn,t);t+=t-=t*t;printf(t=%dn,t);4848清华大学清华大学 黄维通黄维通 设计制作设计制作写在最后写在最后成功的基成功的基础在于好的学在于好的学习习惯The foundation of success lies in good habits49谢谢大家荣幸这一路,与你同行ItS An Honor To Walk With You All The Way讲师:XXXXXX XX年XX月XX日
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!