高级语言程序设计(全套课件245P).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《高级语言程序设计(全套课件245P).ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 全套 课件 245
- 资源描述:
-
1、华北电力大学信息网络管理华北电力大学信息网络管理中心计算机基础教研室中心计算机基础教研室办公室电话:办公室电话:2474 熟悉语法熟悉语法 掌握程序设计技巧掌握程序设计技巧 做好听课笔记做好听课笔记 程序规则程序规则 运算规则运算规则 语句规则等语句规则等第一章 C语言基础1.1计算机语言计算机语言1.3 C程序的开发及上机步骤程序的开发及上机步骤1.2 C语言概述语言概述1.4基本数据类型基本数据类型1.5 运算符和表达式运算符和表达式.机器语言.汇编语言.高级语言.用0、1组成,执行速度快,难记、不通用.用助记符便于记忆、不通用.类似自然语言和数学语言,通用性强.例如:A=10,B=4 求
2、A+B的值001111010000101011000110000001001111001101110110LD A,0AH LD B,04H ADD A,B HALTA=10B=4C=A+BPRINT*,CEND只能识别机器语言程序1.1 计算机语言计算机语言语言处理程序001111010000101011000110000001001111001101110110LD A,0AH LD B,04H ADD A,B HALTA=10B=4C=A+BPRINT*,CEND汇编语言源程序高级语言源程序汇编程序?解释编译目的程序源程序源程序目的程序目的程序可执行程序可执行程序链接程序编译程序源程序源
3、程序结果结果解释程序不同的语言需不同的编译程序机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A, B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象BASIC VBFORTRAN VFPASCAL DelphiCTurbo C+Visual C+Borland C+C+ Builder常用高级程序设计语言52 54 56 58 60 62 64 66 68 70
4、72 74 76 78 80 82 84 86 88 90 92 94 96AdaALGOL60ALGOL68PascalModula-2CPLBCPL BCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BASICQBASIC VBFORTRAN9032个关键字:(auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort si
5、gned sizeof static structswitch typedef unsigned union voidvolatile while9种控制语句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturn34种运算符:算术运算符:算术运算符: + - + - * * / % + - / % + -关系运算符:关系运算符: = != = !=逻辑运算符:逻辑运算符: ! & |& |位运算符位运算符 : | & | &赋值运算符:赋值运算符: = = 及其扩展及其扩展条件运算符:条件运算符: ?:?:逗号运算符:逗号
6、运算符: , ,指针运算符:指针运算符: * * & &求字节数求字节数 : sizeofsizeof强制类型转换:强制类型转换:( (类型)类型)分量运算符:分量运算符: . -. -下标运算符:下标运算符: 其它其它 : ( ) -( ) -C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整 型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体union/* example1.1 The first C Program*/#include main() printf(
7、“Hello,World!”);注释编译预处理函数语句输出:Hello,World!/* example1.1 calculate the sum of a and b*/#include /* This is the main program */main() int a,b,sum; a=10; b=24; sum=add(a,b); printf(”sum= %dn,sum);/* This function calculates the sum of x and y */int add(int x,int y) int z; z=x+y; return(z);运行结果:sum=34函数
8、语句预处理命令注释main( ) . . . . . . .main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;jb _above $123M.D.John3days#33char$123ab1.4 基本数据类型基本数据类型如 #define PRICE 30例 符号常量举例(ch2_1.c)#define PRICE 30main() int num,total; num=10; total=num*PRICE; printf(total=%d,total);运行结果:total=3001.4 基本数据类型基本数据类型例 12 与
9、 12L例 30000 为int型 65536 为long int 型问题:0123 = ( )100 x123 = ( )100Xff = ( )1083291255问题:0123 = ( )100 x123 = ( )100Xff = ( )101.4 基本数据类型基本数据类型1.4 基本数据类型基本数据类型 b ) & ( x y )( (! ! a )+b) | | ( a b )a b & x y! a+b | | a b1.5 运算符和表达式运算符和表达式 逻辑运算的结果只可能为逻辑运算的结果只可能为1或或0; 逻辑运算的对象可以是任何类型的逻辑运算的对象可以是任何类型的数据数据,
10、 “非非0”为为“真真”, “0”为为“假假”。 a&b&c (与短路运算)(与短路运算) (m=ab) &(n=cd) a|b|c (或短路或短路)main() int m,n=10; m=2&n+; printf(m=%d,n=%dn,m,n); 条件运算条件运算1.5 运算符和表达式运算符和表达式顺序结构顺序结构 、选择结构、选择结构、循环结构、循环结构开开 始始赋赋 值值处处 理理int a , b, c;a=10; b=4; c=a+b;main( )printf(“%d,%d,%d”,a,b,c);输输 出出结束结束赋赋 值值处处 理理输输 出出赋值表达式赋值表达式格式格式 pri
11、ntf(“(“格式控制格式控制”, ,输出项输出项) ) 如如: printf(“%d,%d,%d”,a,b,a+b) 如如: printf(“ t= %f, sint= %f n ”,t,sin(t)格格式式说说明明%d按十进制输出整数按十进制输出整数格式控制格式控制意意 义义%f按小数形式输出实数按小数形式输出实数n换行换行其它字符其它字符原样输出原样输出例例: :当当a=10,b=-5.3a=10,b=-5.3时时, ,写出下面写出下面语句的输出结果语句的输出结果printf(“ 格式控制格式控制”,输出项输出项);printf(“%d , %f”,a,b);10,-5.300000pr
12、intf(“a=%d nb=%f”,a,b);a=10b=-5.300000输出项输出项: :变量、表达式、函数变量、表达式、函数格式控制:格式控制: 为输出项提供格式说明为输出项提供格式说明提供需要原样输出的文字或提供需要原样输出的文字或字符字符; ; ;格式说明的个数格式说明的个数= =输出项个数输出项个数格式说明的类型格式说明的类型= =输出项类型输出项类型格式说明格式说明意意 义义数据宽度数据宽度%d按十进制输出整数按十进制输出整数%f按小数形式输出实数按小数形式输出实数系统决定系统决定%md注:注:m、n为整型常数为整型常数按十进制输出整数按十进制输出整数占占m位位例例1 a=23,
13、b=34,c=-55,写出下面语句写出下面语句的运行结果的运行结果printf(“a=%d,b=%5d,c=%2d”,a,b,c)a=23,b= 34, c=-55%m.nf按小数形式输出实数按小数形式输出实数(小数占(小数占6 6位)位).(实际位数)(实际位数)系统决定系统决定.n位位m位位例例2 t=2.346写出下面语句的运行写出下面语句的运行结果结果printf(“t=%f,%5.2f,%3.2f”,t,t,t)t=2.346000, 2.35,2.35例例1 1 已知三边长,求三角形面积已知三边长,求三角形面积( (四舍五入保留两位小数四舍五入保留两位小数) )。输输 入入处处 理
14、理输输 出出c)(s*b)(s*a)(s*sarea2cbas如何保留小数如何保留小数? ?13.45613.461)移动小数点)移动小数点13.456*1002)加)加0.51345.6+0.53)取整)取整4)小数点还原)小数点还原1346/100area*100.0=1345.6=1346.11346=13.46(int)( )+0.5 /100用同一个程序计算边长为用同一个程序计算边长为任意值的三角形面积任意值的三角形面积设边长为设边长为a、b、c,则:则:问题问题s=(a+b+c)/2;float a,b,c,s,area; a=3.0;b=4.0;c=6.0;area=sqrt(s
15、*(s-a)*(s-b)*(s-c);printf(“area=%fn”,area);area=(int)(area*100+0.5)/100.0;#include “math.h”main( )%f%6.2fprintf(“a,b,c=%f,%f,%fn”,a,b,c);a,b,c=area=3.000000,4.0000005.336.004.00,6.0000005.330000a,b,c= 3.00area=scanf(“格式控制格式控制”,地址表地址表)如:如:scanf(“%d,%f”,&a,&b)地址表列:地址表列:&a:变量变量a的地址的地址&b:变量变量b的地址的地址scan
16、f(“格式控制格式控制”,地址表地址表);;%d按十进制输入整数按十进制输入整数格式格式说明说明格式控制格式控制意意 义义%f按小数形式输入实数按小数形式输入实数其它字符其它字符原样输入原样输入&:地址运算符地址运算符格式控制:格式控制:指定数据输入的格式指定数据输入的格式例如例如:设:设a=2,b=2.5,写出执行下写出执行下面的语句时,数据输入的形式。面的语句时,数据输入的形式。scanf(“%d%f”,&a,&b);scanf(“%d,%f”,&a,&b);scanf(“a=%d,b=%f”,&a,&b);数据间的分隔数据间的分隔符符输输 入入缓冲区缓冲区ab内存内存单元单元P79P82
17、程程序序运运行行时时例例2 2 将将两个变量中的值互换两个变量中的值互换。分分析析ab211a2b方法一:方法一:ab21a=bb=a11方法二:方法二:醋醋2a=bb=cc醋醋酱油酱油酱油酱油=acab2a1bc12输输 入入交交 换换输输 出出main( )int a,b,c;scanf(“%d,%d”,&a,&b);c=a;a=b;b=c;printf(“a=%d,b=%dn”,a,b);printf(“a=%d,b=%dn”,a,b);printf(“Please input a,b:”);中间变量的类型要与原始变量一致中间变量的类型要与原始变量一致Please input a,b:a
18、=2, b=1a=1, b=2实际问题实际问题数学模型数学模型计算方法计算方法 编编 程程编辑程序编辑程序编译查错编译查错 连接连接错错? ?修改程序修改程序修改算法修改算法修改模型修改模型错错? ?运行程序运行程序错错? ?小结小结main()() int x; scanf(“%d”,&x); if(x0) printf(“x=%d,YES”,x); else printf(“x=%d,NO”,x);x0真真YES假假NOP22P26条件条件根据条件是否为根据条件是否为真而选择执行不真而选择执行不同的程序块同的程序块同同 级级同同 级级得整数值:得整数值:0 0或或1 1b (a=4)+1得
19、整数值:得整数值:0 0或或1 1a+bc&b=c!(x=a)&(y=b)if子句或子句或else子句包含多个子句包含多个语句,就要用语句,就要用、括起来括起来表达式为真?表达式为真?真真If子句子句假假else子句子句x%3=0真真计算计算假假计算计算输入输入x输出输出输出输出结束结束表达式表达式为为 真?真?真真If子句子句假假ab?真真a、b交换交换假假输入输入a、b、c输出输出aac?真真a、c交换交换假假结束结束式式0 0为真?为真?A式式1 1为真?为真?式式2 2为真?为真?BCD A B C D式式0 0为真?为真?真真A假假式式1 1为真?为真?真真B假假式式2 2真?真?真
20、真C假假D例例4 读程序写运行结果读程序写运行结果例例5 编写程序计算表达式的值:编写程序计算表达式的值:10)(x1x10)x(01x0)(xxyx0真真y=x假假x=0)if(x0) y=1;else y=0;else y=-1;x 100-9 -1y=-1;if(x!=0)if(x0) y=1;else y=0;x 10 -1-9 0y=-1;if(x!=0)if(x0) y=1;else y=0; x 10 0-9 -1y40y 40y 40例例7 编写程序计算表达式的值:编写程序计算表达式的值:20)x(101x10)x(01x0)x(-5xy x-5&x-5&x20) if(x0)
21、 y=x;elseIf(x10)y=x-1;elsey=x+1; x10真真y=x-1y=x+1假假语语句句体体整型整型类型相同类型相同零个或一个以零个或一个以上的语句上的语句计算表达式的值计算表达式的值该值等于某常该值等于某常量表达式的值?量表达式的值?执行该常执行该常量表达式量表达式后各语句后各语句是是执行执行default后后各语句各语句不是不是退出退出例例8 写出下面程序的运行结果。写出下面程序的运行结果。main( )int g; scanf(“%d”,&g); switch(g/10) case 10:case 9: printf(“An”); case 8: printf(“Bn
22、”); case 7: printf(“Cn”); case 6: printf(“Dn”); default: printf(“En”); main( )int g; scanf(“%d”,&g); printf(“g=%d”,g); switch(g/10) case 10:case 9: printf(“An”);break;case 8: printf(“Bn”);break; case 7: printf(“Cn”);break; default: printf(“En”); g=100BCDEg=45g=100g=78g=45AEA跳出跳出switch语句体语句体CE printf
23、(“g=%d”,g);case 6: printf(“Dn”);break; goto 语句标号语句标号goto key;key: s+=x;语句标号:语句标号:s+=x被被反反复复执执行行标号标号:if(表达式表达式 )goto 标号标号循环体循环体表达式为真?表达式为真?真真假假退出退出当表达式为真当表达式为真循环体循环体例例1 编写程序计算表达式的值:编写程序计算表达式的值:x0真真y=x假假x10真真y=x-1假假y=x+120)x(101x10)x(01x0)x(-5xy 当当x=20输入输入x真真假假当表达式为真时当表达式为真时 循环体循环体i=i+1;循环前:循环前: i=1i第
24、一次第一次循环次数循环次数i511,第二次第二次22,第三次第三次33,第四次第四次44,退出循环:退出循环: i=5关注循环前、循环中、关注循环前、循环中、循环后控制变量的值循环后控制变量的值例例2 编程序,计算编程序,计算 s=1+2+3+100(1) 如何得到加数?如何得到加数?i:(2) 如何实现累加?如何实现累加? s为被加数为被加数初始:初始:s=0i=1: s+i ss=s+i;i=2:i=100:s+=i;1、2、100s=0;i=1,s=0当当 i=100时时s+=ii+输输 出出s+=i;s+i ss+i smain ( ) int i,s; i=1; s=0; while
25、(i=100) s+=i; i+; printf(“s=%d”,s); 1 1+2 1+2+.+100i=3: ss+i 1+2+3真真假假当表达式为真当表达式为真循环体循环体循环前:循环前:i=1i第一次第一次循环次数循环次数11,第二次第二次22,第三次第三次33,第四次第四次44,退出循环:退出循环:i=5例例2 输入任意输入任意n个数个数,计算其中奇数和及偶数和,并统计奇数个数。计算其中奇数和及偶数和,并统计奇数个数。i=n(2) 如何统计个数?如何统计个数?i=1,jh=0,oh=0,tj=0输入输入nx%2=0输入输入x真真oh+=x假假jh+=x,tj+i+当当i=n时时输出输出
展开阅读全文