[工学]C语言课堂讲稿通信.doc

上传人:音乐台 文档编号:1976607 上传时间:2019-01-27 格式:DOC 页数:41 大小:220KB
返回 下载 相关 举报
[工学]C语言课堂讲稿通信.doc_第1页
第1页 / 共41页
[工学]C语言课堂讲稿通信.doc_第2页
第2页 / 共41页
[工学]C语言课堂讲稿通信.doc_第3页
第3页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[工学]C语言课堂讲稿通信.doc》由会员分享,可在线阅读,更多相关《[工学]C语言课堂讲稿通信.doc(41页珍藏版)》请在三一文库上搜索。

1、黄朝辉 2012-02-13讲稿一、编程? 1、计算机基本组成 想像一个正规加工厂 运算器、控制器、存储器、输入/出 运算器(ALU):专门对二进制数据进行运算(算术/逻辑)的场所 存储器:存放原始数据/结果/程序的场所 存储器分成很多个存储单元 存储单元里存放的数据以二进制形式表示 存储单元又分成若干二进制位(Bit) 8位二进制位=1个字节(Byte) 字节是存储容量的基本单位 1KB、1MB、1GB 控制器:分析每条指令的功能,并按指令的要求发出 各种控制信号,控制计算机各部件协调工作 2、计算机基本工作原理 由人编写出程序 存储程序 程序控制 想像一个正规加工厂生产新产品的过程: 请技

2、术人员设计新产品 请技术人员写出生产该新产品的生产步骤 (书面材料) 6+7运算 (1)将6从存-运算器 (2)将7从存-运算器 (3)进行“加”运算 (4)将结果-存每条指令程序软件CPU:二、计算机语言 (1)将6从存-运算器 (2)将7从存-运算器 (3)进行“加”运算 (4)将结果-存1、机器语言程序 1100 0110 1100 0111 1101 1110 #0101操作码、操作数2、汇编语言程序 LD 06H LD 07H ADD SAVE #05HLoad3、高级语言程序例:let a=6let b=7let c=a+bprint cend例:main( )int a,b,c;

3、 a=6; b=7; c=a+b; printf(“%d”,c);编译软件(解释、编译)2012-02-15讲稿一、简单C源程序介绍例:main( )int a,b,c; a=6; b=7; c=a+b; printf(“%d”,c);由main( )主函数函数体、语句、语句结束符y=3x2+6x-5 y=f(x)y=9x2-2x+8 y=k(x)integer(整型)how are you例:main( )int a,b,c; c=a+b; a=6; b=7; printf(“%dn”,c);二、TC运行环境及如何录入、编辑和运行一个C源程序如何进行窗口的变化 ALT+Enter如何调用菜单

4、、运行、调试插入与改写状态作业:1、求13+452、求98-623、求12*1254、求65/135、求67+120*182012-02-17讲稿一、数码1、机器数:约定对于有符号的数,若是+,最高位用0表示;若是-,最高位用1表示。2、真值3、有符号数的编码表示: (1)原码:即机器数表示的编码 (2)反码:正数的反码与原码一样; 负数,则在其原码基础上,符号位 不变,数值位逐位求反; (3)补码:正数的补码与原码一样; 负数,则在其反码基础上,符号位 不变,数值位+1; 补码的应用(57)10=(00111001)2 (+57)10=(+00111001)2 =(00111001)机器数

5、=(00111001)原 =(00111001)反 =(00111001)补(-57)10=(-00111001)2 =(10111001)机器数 =(10111001)原 =(11000110)反=(11000111)补补码求原码(11000111)补(原) =(10111000)补(反)=(10111001)原(补)二、数值范围对8位二进制位的数值范围三、数据类型 整型:6 28 -65 实型:定点:3.26 浮点:0.000000000625 0.62510-96.2510-10 单精度 双精度6.25E-10 字符型:以单撇号为定界的一个字符 a K 错误:ab “K”四、常量与变量1

6、、常量:如整型常量 6 28 M W2、变量:(略) 变量名:以字母或下划线开头,后继字母、下划线 或数字如:a、b、ab、_a13、p2错误:26b、a.5 变量在使用之前,应先定义 标识符例:例:main( )int a,b,c;a=6; b=7; c=a+b; printf(“%dn”,c); a=9; printf(“%dn”,a);例:main( )int a,b,c; /* ? */a=32763; b=98; c=a+b; printf(“%dn”,c);例:main( )float a,b,c; a=32763; b=98; c=a+b; printf(“%fn”,c);201

7、2-02-20讲稿一、变量 1、变量应先定义后使用 2、如何给变量赋初值方法一:在定义的同时赋具体值(初始化)如:main( )int a,b,c; a=5; b=6; c=a+b; printf(“%dn”,c);如:main( )int a,b,c; a=5; b=6; c=a+b; printf(“%dn”,c);如:main( )int a=5,b,c; b=6; c=a+b; printf(“%dn”,c);如:main( )int a=5,b=6,c=a+b; /* error */ printf(“%dn”,c);如:main( )int a=b=c=6; /* error */

8、 printf(“%dn”,c);方法二、利用“=”进行赋值如: a=6; b=7;格式: 变量名=常量或表达式;执行功能:(略)注意:1、=左侧只能是唯一的变量名如: a+b=13; 2、=右侧可以是常量或表达式 若是常量,则直接赋值; 若是表达式,先计算表达式的结果,再赋值; 若表达式中有变量,该变量应在此之前赋具体值。如: c=13+9;例:main( )int a; a=8; a=a+1; printf(“%dn”,a); 3、变量值以后入为主例:main( )int a,b,c; a=6; b=7; c=a+b; a=c+15; b=a-2; c=a+b; printf(“%dn”,

9、c);二、初学者如何编写程序直奔主题例:main( )int a,b,c; a=29; b=6; c=a-b; printf(“%dn”,c);例:若用户当月用水量为26吨,单价为1.2元/吨,求应缴水费。main( )float t,d,s; t=26; d=1.2; s=t*d; printf(“t=%.2f s=%.2fn”,s);例:若当天气温为110华氏度,求对应的摄氏度。转换公式告知。main( )float f,c; f=110; c=5.0/9*(f-32); printf(“%fn”,c);例:若一个圆的半径为2.3,求其周长、面积及对应的球体体积。方法一:值直接体现在程序中

10、。main( )float r,l,s,v; r=2.3; l=2*3.141592*r; s=3.141592*r*r; v=4/3*3.141592*r*r*r; printf(“%fn”,l); printf(“%fn”,s);printf(“%fn”,v);方法二:值用变量p表示,p这一变量允许赋新值。main( )float r,l,s,v,p; p=3.1415926; r=2.3; l=2*p*r; s=p*r*r; v=4/3*p*r*r*r; p=6.3; printf(“%fn”,l); printf(“%fn”,s);printf(“%fn”,v);方法三:值用符号常量表

11、示,但不允许赋新值。#define P 3.141592main( )float r,l,s,v; r=2.3; l=2*P*r; s=P*r*r; v=4/3*P*r*r*r; printf(“%fn”,l); printf(“%fn”,s);printf(“%fn”,v);三、输出函数printf( )格式:printf(“格式控制符”,输出项表)如:printf(“%d”,c);%d%f%c如:printf(“%d%d%dn”,a,b,c);%d:以实际宽度输出如: a=23; printf(“%dn”,a);%5d:宽度为5,前补空格如:a=6; b=23;printf(“%d%dn”

12、,a,b);printf(“%5d%5dn”,a,b);%-5d:宽度为5,后补空格如:a=6; b=23;printf(“%d%dn”,a,b);printf(“%5d%5dn”,a,b);%f:以实际宽度输出,但小数位为6位;%7.2f:总宽为7,小数位为2位,前补空格;%-7.2f: 总宽为7,小数位为2位,后补空格;%.2f: 小数位为2位printf(“格式控制符”,输出项表)中,非格式控制符原样输出例:main( )int a,b,c; a=13; b=25; c=a+b; printf(“%d%dn”,a,c);printf(“%d,%dn”,a,c);printf(“%d %d

13、n”,a,c);printf(“a=%d,c=%dn”,a,c);作业:1、若用户当月用水量为26吨,单价为1.2元/吨,求应缴水费。2、若当天气温为110华氏度,求对应的摄氏度。3、若一发子弹初速度为150,加速度为1100,求经过20之后的射程。4、若一个圆的半径为2.3,求其周长、面积及对应的球体体积。(利用符号常量表示)(输出时应有友好提示)2012-02-22讲稿一、TC中如何保存源程序二、如何打开已有的源程序三、运算中的数据类型转换准则例:main( )int x,y; char h,k; h=A; k=B; x=h+32; /* ? */ y=k+32; printf(“x=%d

14、,y=%dn”,x,y);printf(“x=%c,y=%cn”,x,y);其它语言:a+b “ab”知识点:ASCII码A K m ? = 如这些符号,计算机内部如何表示?约定:采用8位二进制中的7位依次进行编码表示对应的符号如:00000000 对应 1个符号00000001 1个符号01000001 对应 A 这个符号01000010 对应 B01111111 对应 1个符号这些编码是采用美国标准信息交换代码A 对应的ASCII值 65B 对应的ASCII值 66a 对应 97b 对应 980 对应 48转换准则:1、类型一致,结果保持一致2、类型不同,则自动从低级向高级转换(隐含)3、

15、强制转换 格式:(类型符)待转换表达式如: float a; int k; a=13.23; (int)a k=a%3; /* error */ k=(int)a%3;2012-02-27讲稿一、输入函数格式:scanf(“格式控制符”,&输入项)作用:(略) 很好地实现人机交互例:输入用户当月的用水量,若单价为1.2元/吨,求应缴水费。main( )float t,d,s; scanf(“%f”,&t); d=1.2; s=t*d; printf(“%fn”,s);输入时如何解决友好提示,如何解决(略)二、if语句格式: if( 条件判断) 紧跟语句; 后续语句;执行功能:(略)例:输入x值

16、,求y=x+10的结果main( )int x,y; clrscr( ); printf(“x=”); scanf(“%d”,&x); y=x+10; printf(“x=%d y=%dn”,x,y);改进:(x值为0以上,才计算)main( )int x,y; printf(“x=”); scanf(“%d”,&x); if(x=0)y=x+10; /* 有问题 */ printf(“x=%d y=%dn”,x,y);知识点:利用一对花括号将一些语句括起来,构成复合语句空语句 格式: ;改进:(x值为0以上,才计算)main( )int x,y; printf(“x=”); scanf(“%

17、d”,&x); if(x=0)y=x+10; printf(“x=%d y=%dn”,x,y); main( )int x,y; printf(“x=”); scanf(“%d”,&x); if(x=0)y=x+10; /* 有问题 */ printf(“x=%d y=%dn”,x,y);例:main( )int x,y; printf(“x=”); scanf(“%d”,&x); if(x=0) ; /* 有问题 */y=x+10; printf(“x=%d y=%dn”,x,y); if拓展格式:if(条件判断) 紧跟语句1;else 紧跟语句2;后续语句;执行功能:(略)例:求y=x+1

18、0(x=0) y=x+100(x=0) y=x+10; printf(“x=%d y=%dn”,x,y); else y=x+100; printf(“x=%d y=%dn”,x,y); 简化版:main( )int x,y; printf(“x=”); scanf(“%d”,&x); if(x=0) y=x+10; else y=x+100; printf(“x=%d y=%dn”,x,y); 知识点:顺序结构、分支(选择)结构例:输入用户当月的用水量,若单价为1.2元/吨,求应缴水费。main( )float t,d,s; scanf(“%f”,&t); if(t=0) d=1.2; s=

19、t*d;printf(“%fn”,s); else printf(“Data is error!n”);例:输入一个圆的半径为2.3,求其周长、面积及对应的球体体积。#define P 3.141592main( )float r,l,s,v; printf(“r=”); scanf(“%f”,&r); if(r=0) l=2*P*r; s=P*r*r;v=4.0/3*P*r*r*r;printf(“r=%f,l=%f,s=%f,v=%fn”,r,l,s,v); elseprintf(“Data is error!n”);作业:1、利用输入函数改进求水费问题2、利用输入函数改进求温度转换问题3

20、、利用输入函数改进求圆及球体的有关计算问题4、上机验证:main( )int x,y; printf(“x=”); scanf(“%d”,&x); if(x=0)y=x+10; /* 有问题 */ printf(“x=%d y=%dn”,x,y);5、上机验证:main( )int x,y; printf(“x=”); scanf(“%d”,&x); if(x=0) ; /* 有问题 */y=x+10; printf(“x=%d y=%dn”,x,y); 6、利用if改进求水费问题7、利用if改进求圆及球体有关计算问题2012-03-02讲稿一、利用if的嵌套结构实现多分支程序设计例:求y=1

21、 (x0)y=0 (x=0)y=-1 (x0) y=1; printf(“x=%d y=%dn”,x,y); else if(x=0) /* 有问题,更正 x=0 */ y=0; printf(“x=%d y=%dn”,x,y); else y=-1; printf(“x=%d y=%dn”,x,y); 简化版:main( )int x,y; printf(“x=”); scanf(“%d”,&x); if(x0) y=1; else if(x=0) y=0;else y=-1; printf(“x=%d y=%dn”,x,y);二、运算符与表达式1、算术运算符: + - * / %算术表达式

22、: 6+7 (a+b)/(b+16)结果:就是运算的具体值2、关系运算符: = =0 85 920 8!=7 结果:逻辑结果,“真” 用 1 “假”用0 但是在判断时,非0代表“真”,0代表“假”3、逻辑运算符: &(与) |(或) !(非) 逻辑表达式: x=0 & xb) & (n=cd);m=? 0n=? 1例:main( )int x; scanf(“%d”,&x); if(x=5) printf(“Yes!n”); else printf(“No!n”);例:main( )int x; scanf(“%d”,&x); if(x=0) printf(“Yes!n”); else pri

23、ntf(“No!n”);例:输入一用户用水量,按以下条件计算水费。 d=1.2 t=10 d=1.5 10t=20 d=2 20t30main( )float t,d,s; printf(“t=”); scanf(“%f”,&t); if(t=0 & t=10 也有问题 */ d=1.2; s=t*d; printf(“t=%.2f,d=%.2f,s=%.2fn”,t,d,s); else if(t=20) d=1.5; s=t*d; printf(“t=%.2f,d=%.2f,s=%.2fn”,t,d,s); else if(t=0) if(t=10) d=1.2; s=t*d; print

24、f(“t=%.2f,d=%.2f,s=%.2fn”,t,d,s); else if(t=20) d=1.5; s=t*d; printf(“t=%.2f,d=%.2f,s=%.2fn”,t,d,s); else if(t=0) if(t=10) d=1.2;else if(t=20) d=1.5; else if(t=30) d=2; else d=5;s=t*d;printf(“t=%.2f,d=%.2f,s=%.2fn”,t,d,s); else printf(“Data is error!n”); 例:一元二次方程求解问题#include main( )float a,b,c,d,x1,

25、x2; printf(“a,b,c=”); scanf(“%f%f%f”,&a,&b,&c); if(a!=0) d=b*b-4*a*c;if(d=0) if(d0) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(“x1=%f x2=%fn”,x1,x2); else x1=-b/(2*a); printf(“x1=x2=%fn”,x1); else printf(“delta0,Dont Cal!n”); else printf(“a=0,Dont Cal!n”);作业:1、输入用华氏度表示的当天气温,将其转换成摄氏度,若摄氏度大于等于

26、25, 显示“Hot”,否则显示“Cold”。2、输入一用户用水量,按以下条件计算水费。 d=1.2 t=10 d=1.5 10t=20 d=2 20t303、求一元二次方程的解2012-03-05讲稿一、利用if嵌套结构实现多分支程序设计例:输入一同学成绩值,按以下规则输出相应等级。90-100 A Grade80-90 B 70-80 C60-70 D60以下 Emain( )int s; printf(“s=”); scanf(“%d”,&s); if(s=0 & s=90) printf(“A Graden”);else if(s=80) printf(“B Graden”); els

27、e if(s=70) printf(“C Graden”); else if(s=60) printf(“D Graden”); else printf(“E Graden”); else printf(“Data is error!n”); 二、并列的ifelse if( )elseif( )语句格式:if( ) else if( ) else if( ) else 执行功能:(略)例:输入一用户用水量,按以下条件计算水费。 d=1.2 t=10 d=1.5 10t=20 d=2 20t30main( )float t,d,s; printf(“t=”); scanf(“%f”,&t); i

28、f(t=0) if(t=10) d=1.2;else if(t=20) d=1.5;else if(t=0 & s=90) printf(“A Graden”);else if(s=80) printf(“B Graden”);else if(s=70) printf(“C Graden”);else if(s=60) printf(“D Graden”);else printf(“E Graden”); else printf(“Data is error!n”); 三、利用switch语句实现多分支格式: switch( 表达式 ) case 常量: case 常量: case 常量: d

29、efault: 执行功能:(略)例:输入一同学成绩值,按以下规则输出相应等级。90-100 A Grade80-90 B 70-80 C60-70 D60以下 Emain( )int s; printf(“s=”); scanf(“%d”,&s); if(s=0 & sb) printf(“%d”,a); else printf(“%d”,b);例:输入任意5个数,求最大数main( )int a,b,c,d,e,max; scanf(“%d,%d,%d,%d,%d”,&a,&b,&c,&d,&e); max=a; if(maxb) max=b; if(maxc) max=c; printf(

30、“max=%dn”,max);例:输入任意5个数,求最大数main( )int a,b,c,d,e,max; scanf(“%d,%d,%d,%d,%d”,&a,&b,&c,&d,&e); max=a; if(maxb) max=b; if(maxb) printf(“%d,%dn”,a,b); else printf(“%d,%dn”,b,a);知识点:两变量值的交换a=16;b=61;a=b;b=a;printf(“a=%d b=%dn”,a,b);?a=16;b=61;b=a;a=b;printf(“a=%d b=%dn”,a,b);?a=16;b=61;t=a;a=b;b=t;prin

31、tf(“a=%d b=%dn”,a,b);?a=16;b=61;t=b;b=a;a=t;printf(“a=%d b=%dn”,a,b);?a=16;b=61;t=b;a=b;a=t;printf(“a=%d b=%dn”,a,b);?或:t=a+b;a=t-a;例:main( )int a,b,c,d,t; scanf(“%d,%d,%d,%d”,&a,&b,&c,&d); if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(ad) t=a; a=d; d=t; if(bc) printf(“%d,%d,%d,%dn”,a,b,c,d);五、利用while实现循环程序设计格式: while( )循环体执行功能:(略)例:main( )int x; x=0; x=x+1; pr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1