版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章C语言概述1教学目标1.了解C语言的发展历史和特点2.熟悉C语言程序的基本结构3.掌握C语言常见算法及其用程序流程图和N/S图表示算法4.熟悉C语言字符集、标识符号与关键字的相关知识5.掌握在TurboC环境下调试C程序的上机步骤2教学要点C语言程序的基本结构算法的描述3C语言的发展过程
C语言是国际上流行的、很有发展前途的计算机高级语言。它既可以用来编写系统软件,也可以用来编写应用程序。以前操作系统等系统软件主要采用汇编语言编写。汇编语言依赖于计算机硬件,程序的可读性、可移植性都比较差。为了提高可读性和可移植性,人们希望采用高级语言编写这些软件,但是一般的高级语言难以实现汇编语言的某些操作,特别是针对硬件的一些操作(如:内存地址的读写-直接硬件、二进制位的操作)。人们设法寻找一种既具有一般高级语言特性,又具有低级语言特性的语言,C语言就在这种情况下应运而生。4C语言的发展过程20世纪70年代初问世1978美国电话电报公司(A&T)贝尔实验室发表C语言1983美国国家标准协会制定C语言标准(ANSIC)1987美国国家标准协会公布新C语言标准(87ANSIC)1990ISO接收87ANSIC为ISOC注:现在使用的各种C语言编译系统(TurboC、VisualC、BorlandC等)虽然基本部分是相同的,但也有些不同5C语言的发展过程ALGOL60CPLBCPLBC标准CANSICISOC6C语言的发展过程
汇编语言
机器语言
低级语言:具有面向硬件系统便于直接访问硬件的特点功能,但没有数据类型,不易阅读、记忆、推广。
C语言
吸取了高级语言和低级语言优点,兼而有之。……
FORTRAN语言
pascal语言
BASIC语言
高级语言:具有丰富的数据类型和运算符,便于描述数据结构,既具有强有力的表达力,可加快开发速度,提高工作效率,面向用户、便于记忆、书写和阅读等。
系统
软件
硬件
用户
7C语言的特点
1、语言简洁、紧凑、结构清晰、使用方便、灵活;2、C语言的运算符非常丰富、功能更强大
;3、提供了丰富的数据类型;4、具有结构化的控制语句,用函数作为程序的模块单位,便于实现程序的模块化;5、C语言对语法限制不严格,程序设计自由度大;6、C语言允许直接访问物理地址,能进行位(bit)操作;7、生成的目标代码质量高,程序执行速度快;8、C语言编写的程序具有良好的可移植性;8C语言程序的基本结构-例子(1)
main(){printf(“HelloWorld!\n”);}说明:本程序功能:本程序的功能是输出一行信息:HelloWorld!
1、main表示“主函数”。每个C语言程序都必须有一个main函数,它是每一个C语言程序的执行起始点(入口点)。main()表示“主函数”main的函数头。2、用{}括起来的是“主函数”main的函数体。main函数中的所有操作(或:语句)都在这一对{}之间。也就是说main函数的所有操作都在main函数体中。3、“主函数”main中只有一条语句,它是C语言的库函数,功能是用于程序的输出(显示在屏幕上),本例用于将一个字符串“HelloWorld!\n”的内容输出。即在屏幕上显示:HelloWorld!(回车/换行)4、注意:每条语句用“;”号结束语句。9C语言程序的基本结构-例子(2)
main()/*计算两数之和*/{inta,b,sum;/*这是定义变量,声明部分*/a=100;b=99;/*以下3行为C执行语句部分*/sum=a+b;printf(“sum=%d\n”,sum);}说明:1、同样此程序也必须包含一个main函数作为程序执行的起点。{}之间为main函数的函数体,main函数所有操作均在main函数体中。2、/**/括起来的部分是一段注释,注释只是为了改善程序的可读性,在编译、运行时不起作用(事实上编译时会跳过注释,目标代码中不会包含注释)。注释可以放在程序任何位置,并允许占用多行,只是需要注意“/*”、“*/”匹配,一般不要嵌套注释。3、inta,b,sum;是变量声明。声明了三个具有整数类型的变量a,b,sum。C语言的变量必须先声明再使用。4、a=100;b=99;是两条赋值语句。将整数100赋给整型变量a,将整数99赋给整型变量b。a,b两个变量分别为123,456。注意这是两条赋值语句,每条语句均用“;”结束。5、sum=a+b;是将a,b两变量内容相加,然后将结果赋值给整型变量sum。6、printf(“sum=%d\n”,sum);是调用库函数输出sum的结果。%d为格式控制表示sum的值以十进制整数形式输出。程序运行后,输出(显示):sum=199_(回车/换行)
10C语言程序的基本结构-例子(3)
main()
/*主函数*/{inta,b,c;/*声明部分定义变量*/scanf(“%d,%d”,&a,&b);/*从键盘输入变量a,b*/c=max(a,b);/*调用max,将调用结果赋给c*/printf(“max=%d”,c);}/*main函数体结束*/intmax(intx,inty)/*计算两数中较大的数*/{intz;/*声明部分,定义变量*/if(x>y)z=x;elsez=y;return(z);/*将z值返回,通过max带回调用处*/}/*max函数体结束*/11C语言程序的基本结构-例子(3)介绍
说明:输入两个整数,计算两者较大的数,并输出。1、本程序包括两个函数。其中主函数main仍然是整个程序执行的起点。函数max计算两数中较大的数。2、主函数main调用scanf函数获得两个整数,存入a,b两个变量,然后调用函数max获得两个数字中较大的值,并赋给变量c。最后输出变量c的值(结果)。3、intmax(intx,inty)是函数max的函数头,函数max的函数头表明此函数获得两个整数,返回一个整数。4、函数max同样也用{}将函数体括起来。max的函数体是函数max的具体实现。从参数表获得数据,处理后得到结果z,然后将z返回调用函数main。5、本例还表明函数除了调用库函数外,还可以调用用户自己定义,编制的函数。12C语言程序的基本结构——总结
1、C程序由函数构成(C是函数式的语言,函数是C程序的基本单位)(以例1.3说明)一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其它函数。函数是C程序的基本单位。被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编写设计的函数。C是函数式的语言,程序的全部工作都是由各个函数完成。编写C程序就是编写一个个函数。C函数库非常丰富,ANSIC提供100多个库函数,TurboC提供300多个库函数。13C语言程序的基本结构——总结2、一个函数由函数首部和函数体两部分组成(以例1.3的max函数说明)函数首部:一个函数的第一行。
返回值类型函数名([函数参数类型1函数参数名1][,…,函数参数类型n,函数参数名n])注意:函数可以没有参数,但是后面的一对()不能省略,这是格式的规定。函数体:函数首部下用一对{}括起来的部分。如果函数体内有多个{},最外层是函数体的范围。函数体一般包括声明部分、执行部分两部分。
{[声明部分]:在这部分定义本函数所使用的变量;[执行部分]:由若干条语句组成命令序列(可以在其中调用其它函数);}。14C语言程序的基本结构——总结3、C程序书写格式自由一行可以写几个语句,一个语句也可以写在多行上。C程序没有行号,也没有FORTRAN,COBOL那样严格规定书写格式(语句必须从某一列开始)。4、每条语句的最后必须有一个分号“;”表示语句的结束。函数首部后面不跟分号15C语言奴程序蔽的基纷本结染构——总结5、可榆以使下用/*供*注/对C程序渠中的远任何警部分胸作注纽奉释注释某可以粉提高椅程序执可读泛性,维使用亭注释酸是编衔程人武员的扒良好扰习惯坛。编写祥好的黎程序四往往啦需要碍修改量、完林善,些事实嚷上没芳有一鼻个应笔用系快统是论不需输要修逆改、痰完善宽的。踪蝶很多塑人会练发现看自己裁编写谅的程孕序在剪经历显了一责些时塘间以意后,孔由于升缺乏比必要姿的文估档、扛必要宴的注剥释,摧最后介连自碗己都被很难延再读植懂。差需要勇花费猛大量肆时间廊重新丧思考阁、理轮解原坝来的弃程序喝。这刘浪费宇了大衬量的套时间扬。如抱果一马开始秋编程闪就对爷程序愈进行株注释提,刚遮开始惊麻烦酬一些把,但深日后境可以车节省绳大量苗的时糠间。一个损实际循的系随统往茶往是打多人土合作遍开发僚,程浴序文软档、突注释枝是其供中重健要的生交流益工具。16C语言图程序注的基麻本结痕构——总结6、ma举in函数腰(主和函数茂)是肌每个匀程序清执行概的起搭始点(以例1.攻3说明)一个C程序余总是粗从ma抱in函数符开始盖执行茧,而霜不论ma恨in函数杠在程滥序中丹的位村置。训可以起将ma随in函数万放在妹整个姿程序移的最促前面持,也连可以丛放在腿整个芒程序吴的最筋后,勒或者坟放在蛾其它层函数蓬之间仇。17一个姥程序佛应包兄括两妨个方颤面的肝内容:对数抱据的翅描述盖:数据渠结构(d酱at鼻a黎st疏ru希ct描ur拨e)对操释作的辩描述牙:算法(a办lg溜or截it热hm热)著名碑计算丽机科叶学家番沃思医提出赶一个涉公式:数据俱结构+算法=程序数据栗结构慨+算业法+搜程序睛设计肾方法云+语孔言工旁具完整索的程争序设斤计应川该是:算法优及其服描述18算法搭及其抽描述算法亦:为匠解决他一个武问题本而采久取的捕方法户和步纷骤。计算呢机算滔法分瓣为两忘大类柳别:数值卡运算地算法袭(解堵一元贤二次荐方程闻的算生法)非数似值运统算算悄法(胆图书驴检索烟、信宽息查抖询)算法念的特敢征:有穷洗性:包含门有限乒的操奋作步论骤确定讲性:算法括中的蓄每一临个步揪骤都镜应当殃是确氏定的有零驰个或兰多个箱输入任:输入怒是指钟在执久行算档法时置需要船从外眼界取恭得必妨要的江信息有一羽个或乘多个滚输出德:算法满的目慕的是叹为了片求解略,“衣解”泥就隔是输额出可行能性:算法贩中的宿每一管个步余骤都那应当殖能有暗效地逃执行材,并心得到阅确定落的结林果音。19例1.瘦4:求1×殊2×崇3×泳4×农5步骤1:先攻求1×夸2,得碌到结肉果2步骤2:将蛋步骤1得到耽的乘托积2再乘耍以3,得士到结精果6步骤3:将6再乘宾以4,得24形步骤4:将24再乘承以5,得12价0如果篇要求1×划2×启…×显10股00,则腹要写99恩9个步昨骤算法涉及其对描述——简单马算法奋举例20S1:使t=戏1S2:使i=绳2S3:使t×化i,乘获积仍锹放在板变量t中,浮可表谦示为纪:t×碌i→tS4:使i的值余加1,即i+短1→i。S5:如朽果i不大粥于5,返忌回重品新执方行步僻骤S3以及崇其后词的步雄骤S4和S5;否乳则,虏算法刷结束蛾。最停后得卫到t的值狂就是5!的值以。可以帽设两浸个变们量:一个叮变量捆代表歌被乘滥数,残一个钉变量环代表睡乘数氧。不芹另设躲变量扁存放费乘积宪结果既,而悔直接吩将每呈一步屠骤的青乘积库放在订被乘海数变乓量中向。设t为被桐乘数总,i为乘坝数。秤用循某环算堆法来吴求结方果,算法翅可改掘写:21S1:1→tS2:3→iS3:t×跨i→tS4:i+歇2→iS5:若i≤驴10议00,返勤回S3。否肺则,蔑结束椅。如果瞧题目拿改为蜘:求1×东3×劫5×惩……丹×1稳00农0算法祸只需鹿作很蚊少的洋改动滚:22用这慎种方吴法表棵示的饼算法法具有失通用锈性、否灵活物性。S3到S5组成凳一个托循环妈,在慎实现沉算法礼时镰要反正复多惰次执论行S3,S4,S5等步绝骤,浊直到艰某一郊时刻台,执注行S5步骤允时经指过判雹断,盲乘数i已超糕过规掩定的孟数值叼而不恋返回S3步骤滩为止若。此绍时算倚法结瞒束,勤变量t的值堵就是停所求仪结果锻。算法斯及其已描述——简单疤算法淘举例23算法惕的描商述用自评然语蛮言表土示算浓法含义澡不严涛格、尘有歧炸异性用流横程图介表示徐算法起止框判断框处理框输入/输出框注释框流向线连接点24算法僵的描青述——流程怕图顺序柄结构选择饮结构25算法轮的描暴述——流程脏图当型(W恭hi本le型)循环隶结构直到体型(U恋nt帐il型)循环26三种嘴基本朋结构层的共查同特教点:(1桶)只有季一个镰入口照;(2肌)只有羞一个字出口狂;(请注篇意:一个责菱形紧判断垄框有茶两个领出口粉,而鞭一个倍选择惯结构愧只有跳一个键出口卸。不汁要将魄菱形揉框的轮出口接和选代择结泳构的抄出口惯混淆率。)需(3承)结构么内的窗每一柱部分纸都有梦机会见被执前行到竹;(4谦)结构妙内不访存在腊“死兽循环疮”(无终做止的陈循环)。27图中内没有先一条猫从入士口到涨出口壁的路歇径通晒过A框。不正划确的括流程堡表示韵:流程羽内的助死循来环28小结碰:流程盘图是爹表示牢算法症的较锈好的背工具士。一坝个流取程图但包括呆以下逮几部除分购:(1首)表示舰相应淋操作遭的框婶;(2促)带箭稳头的算流程赶线;(3见)框内麻外必蛇要的躲文字迅说明余。29算法感及其灯描述——流程件图举阀例开始输入Ni=茫1S=S+富ii=剖i+棒1输出S结束是求1+豪2+坐3+伤…+零10的流露程图S=延0i<茎=1州0否30将求5!的算雅法用锣流程器图表追示如果名需要扛将最震后结东果打母印出叠来,县可在步菱形猎框的葡下面初加一带个输债出框勇。31算法术的描互述——乖N/转S图19供73年美划国学雷者I.劲Na途ss困i和B.猴Sh著ne商id糟er右ma河n提出桶了一主种新梅的流晶程图齐形式陆。在乘这种铜流程雪图中呜,完宫全去捧掉了例带箭畏头的围流程蒙线。搏全部嫩算法叼写在尺一个似矩形症框内滤,在宴该框抹内还数可以世包含惧其它寻的从豆属于泊它的系框,刺或者穿说,膝由一美些基割本的傲框组烘成一朋个大芝的框状。这侍种流传程图弦又称N-希-S结构放化流介程图弹。32算法盛的描管述——猪N/绪S图三种亮基本掠结构ABP
T
F
A
B
A当P成立A直到P成立顺序拼结构选择睁结构Wh翠il万e型循腹环结酱构Un尸ti供le型循粒环结狼构33用三容种N-代-S流程坝图中鄙的基硬本框山,可成以组抚成复健杂的N-筛-S流程各图。序图中俩的A框或B框,钟可以述是一蚕个简雅单的差操作该,也对可以毁是三午个基卖本结壳构之秘一。A框可疾以是箭一个得选择切结构B框可片以是添一个猛循环挪结构34算法秋的描鉴述——磨N/改S图(拌举例驼)求1+倡2+羊3+拜….肃.+激10的和S=只0i=仆1S=S+只ii=色i+娃1当i<列=1撕0打印S35求5!算法姜用N-臭-S图表价示也可桂以改阵成当酒型循准环36N-薄-S图表藏示算俩法的澡优点比文涂字描瓶述直纱观、疗形象狂、已易于存理解队;比糕传统远流程雨图紧返凑易猴画。杜尤其堂是它姿废除员了流午程线听,整柿个算逃法结阿构是派由各秋个基卧本结捎构按润顺序供组成锦的,N-搂-S流程桐图中邪的上朱下顺槐序就贼是执古行时际的顺也序。茄用N-米-S图表楚示的圾算法筑都是绍结构削化的顷算法痰,因供为它在不可默能出勿现流印程无咬规律君的跳浸转,胡而只奥能自轰上而勾下地单顺序喝执行吐。37算法洞的描债述——用伪桐代码航表示乐算法概念肝:伪代杨码是裳用介控于自间然语具言和悲计算坛机语嘱言之算间的俭文字衫和符念号来列描述览算法脸。特点烘:它如弊同一易篇文宫章一码样向,自啦上而轧下地避写下捎来。踪蝶每一嫂行(或几松行)表示垃一个狗基本腹操作粥。它斑不用漂图形伙符号娘,因桐此书竖写方欲便限、格辛式紧瞧凑,刷也比迹较好休懂,否也便斯于向炭计算烤机语亦言算贱法(即程群序)过渡谜。用处励:适用毯于设窗计过摆程中兄需要躬反复扯修改麦时的座流程慈描述备。38算法龟的描陡述——用伪谅代码容表示搏算法“打扮印x的绝抹对值裙”的浙算法轨可以横用伪肌代码逐表示择如下六:IF映x尤i垦s很po泄si墨ti袄ve唱T牲HE跑Npr倚in矛t镜xEL选SEpr俊in钟t康–x也可占以用急汉字沫伪代呈码表翻示:若x为正打印x否则板打印-x疯也可际以中伸英文爪混用惧,如西:IF砌x为正摇pr俱in臭t骡xEL盖SE讽pr砍in疮t普-x土求1+傻2+阔3+溉……傍+1皂0。开始置s的初但值为0置i的初饿值为1当i<注=1备0,执得行下誉面操拌作:使s=s×国i使i=村i+含1(循环隐体到叫此结脚束)打印s的值结束39算法殿的描倚述——用计劈燕算机疑语言拾表示雾算法概念漆:用计村算机赠实现化算法唇。计辜算机调是无科法识北别流众程图糖和伪或代码藏的。县只有讲用计估算机蓬语言页编写线的程闪序才忽能被投计算双机执咐行。鸽因此烂在用集流程贝图或刊伪代致码描剑述出顷一个锯算法飘后,逝还要疾将它罢转换康成计碧算机梅语言疏程序公。特点该:用计代算机猜语言惩表示预算法止必须尤严格赛遵循剧所用舌的语猛言的围语法扭规则挑,这糕是和握伪代贫码不缸同的关。用处雀:要完蚕成一罗件工倘作,境包括各设计丢算法瘦和实鞋现算败法两医个部即分。朱设计黄算法亮的目永的是兔为了奏实现僵算法炮。40算法蠢的描待述——用计题算机蜓语言幸表示馋算法求1+翅2+摸3+句……颜+1恐0。ma带in轻(健){in五ti,皂s;s=蒸0;i=堤1;wh造il绵e枯(i夜<=变10吼){s=s+嘴i;i=匀i+免1;}pr银in飞tf秘(”婚%d”,寺s吧);}41算法志的描仁述——用计培算机胀语言司表示袄算法求ma杜in肠(还){in车t禽si报gn扰=1付;fl斜oa时tde危no=2鹅.0索,塔su舰m=扩1.谅0,锣t择er陡m;wh梳il困e(绵de某no<=咐10掏0){si申gn惑=-蚁si脸gn目;te派rm裤=s铲ig歪n/de体no;su皱m=su垂m+招te例rm;de戚no=d损en颤o+尊1;}pr息in巷tf鸡(”肠%f摇”,浩su苦m);}42C语言淹字符楚集、执标识撕符与森关键督字C语言崇字符扫集1.字母a~z,烦A~Z鼓5区2个2.数字0~9孕1储0个3.空白孝符号召包婆括空爱格符努、制兔表符覆和换退行符4.标点们和特燃殊字捷符沫如逗辱号、怨分号按等标识终符变量浆、符租号常灯量、涂函数愿的名灾字命名辞规则摔是:吧以字砍母或逗下划冻线开供头,从后面巨可以旬跟字洁母、打数字横或下途划线倒。相关子特性围(1)C语言陕区分财大小铃写,窜因此风大写照字母酸和小次写字湾母是两两个测不同复的字浮符;(2)标目识符纪中所征能包际含的脖字符敬个数闻不同搏版本悄的C语言据集成冰环境长要求萄也不谣一样平。(3)在修定义西标识相符时全应遵哈守“宵见名追知意竞”的陈原则健,即创用有甘含意缴的英蜡文单柄词或姜短语投的缩航写作蜜为标艰识符递,以圾增强宵程序垫的可电读性茂。(4)在C语言租中,桥要求提对所盟用到泉的标妥识符滩“先张定义腹后使戏用”芒。字符刃是组客成语掀言的掀最基胆本的就元素末。C语言疮字符窃集由罪字母觉,数棋字,眉空格抹,标逐点和湾特殊不字符必组成奏。C语言舟字符僻可分撑为以差下几笔类:43C语言戒字符救集、伴标识陆符与应关键胡字指C语言蛾中有驼特定暗含义什的标螺识符舍(32个)它们翅是由C语言星集成昆环境听定义忙的,职用户聚不能多更改昂。因缴此程胶序中犁变量视名、硬符号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《文献管理解决方案》课件
- 《线路运行和维护》课件
- 定龙水库2024年度垂钓经营权合同3篇
- 区块链技术研发与应用合同(04版)
- 运输挂靠协议合同范本 2篇
- 文化艺术品展览居间合同
- 小学语文教师个人工作计划
- 幼儿园司机合同(2篇)
- 2024年度学校教学楼钢管架搭建合同
- 南京市2024年度标准房屋租赁合同(示范文本)
- 人美版小学美术六年级上册第三课《添画人像》单元作业设计
- 过程审核程序
- 高中劳动教育-主题班会课件
- 小学主题班会教学设计 《学会说声对不起》通用版
- 苏科版初中初一数学上册《有理数》评课稿
- 连铸设备操作维护规程检修规程
- 元素周期表英文版含音标
- 危急值报告制度有效性评估(PDCA)记录单
- 纪检监察组织监督招标管理工作实施办法
- 2023春国开现代教育管理专题形考任务1-4试题及答案
- 五年级科学期中考试质量分析
评论
0/150
提交评论