您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言详细教程(完整版)
CProgrammingLanguageCProgrammingLanguageC语言程序设计——2010年度春季学期CProgrammingLanguage2教学安排适应专业:非计算机专业学时:48先修课程:计算机文化基础教材:《C语言程序设计》,马德骏等编著任课教师:钟钰CProgrammingLanguage3教学环节课前预习讲授作业(上机)答疑–答疑时间:星期四12:00~13:30–地点:鉴主-12楼-计算机技术研究所–第6周到第18周考试CProgrammingLanguage4上机安排地点:南湖计算中心机房时间:待定上机内容:随教学进度根据配套的实验书(上机调试每次课堂作业)要求:•所有作业必须独立完成•作业必须经上机调试通过•上机考勤3次缺席,按不及格处理•发现上机时间玩游戏等,按缺席一次处理CProgrammingLanguage5实验安排实验一1机时TurboC集成环境的熟悉与使用实验二1机时数据类型、运算符和表达式实验三2机时顺序程序设计实验四2机时选择结构程序设计实验五4机时循环结构程序设计实验六4机时数组实验七4机时函数实验八2机时指针CProgrammingLanguage6课程要求课前请做好预习保持课堂安静,头脑清醒,思维活跃认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间CProgrammingLanguageCProgrammingLanguage计算机技术研究所钟钰caddilester@gmail.comC语言程序设计Lecture1CProgrammingLanguage8教学目的:掌握“文化基础”中的相关概念,明确学习方法,了解C语言基本知识。教学要求:明确本课程的目标及学习方法,复习“文化基础”中与C语言相关的知识:数制、编码、计算机系统组成,了解算法的概念及表示、C语言及标识符、C语言基本结构。学时:2学时CProgrammingLanguage91.1引言1.2算法和程序设计初步1.3C语言简介1.4集成开发环境TurboC2.0简介CProgrammingLanguage10数据非数值数据:编码数值数据:二进制定点法浮点法西文:ASCII汉字:国标码图形:……信息与数据:信息存在于自然界,有多种形式;数据是信息在计算机中的表示,以二进制形式存在。原码、反码、补码数制转换CProgrammingLanguage11有符定点整数dsdndn-1dn-2……..d1↑↑符号位数值部分小数点无符定点整数dndn-1dn-2…………..d1↑数值部分小数点CProgrammingLanguage12数值数据的编码方法:前面讨论的是数值数据在计算机中的存放格式,下面讨论对数值数据进行编码的方法。①原码表示法:(假定用八个二进制位表示)a=+51(a)2=(+00110011)2则[a]原=00110011a=-127(a)2=(-01111111)2则[a]原=11111111原码表示法在八个二进制位中的表示范围:-127≤a≤+127[+0]原=00000000[-0]原=10000000要点:最高位作为符号位,若正数,则最高位是0,若负数,则最高位是1。CProgrammingLanguage13②反码表示法:(假定用八个二进制位表示)通过一个二进制整数的原码得到所谓反码:当a为正数时,[a]原=[a]反,当a为负数时,则保持[a]原的符号位不变,其余各个二进制位逐位取反,即0变1,1变0。如:a=+51[a]原=00110011则[a]反=[a]原=00110011a=-51[a]原=10110011则[a]反=11001100反码表示法在八个二进制位中的表示范围:-127≤a≤+127[+0]反=00000000[-0]反=11111111要点:由原码得到反码。若正数,则反码与原码相同,若负数,则最高位不变,其余逐位取反。CProgrammingLanguage14③补码表示法:(假定用八个二进制位表示)通过一个二进制整数的反码得到所谓补码:当a≥0时,[a]补=[a]反,当a<0时,则[a]补=[a]反+1,如:a=+51[a]原=00110011则[a]补=[a]反=[a]原=00110011a=-51[a]原=10110011[a]反=11001100则[a]补=[a]反+1=11001101补码表示法在八个二进制位中的表示范围:-128≤a≤+127[+0]补=00000000[-128]补=10000000要点:由反码得到补码。若正数,则反码与补码相同,若负数,则补码等于反码加1。在补码表示法中,0的表示是唯一的,而最小值可达-128。CProgrammingLanguage15在上述介绍当中我们是以八位二进制位为例,同样,我们可以将其推广到十六位,三十二位等二进制位中去,需要注意的是数值范围将发生变化。思考:以上介绍的原码、反码、补码都是有符定点整数的编码方式,若以八位二进制位表示无符定点整数,则其范围是0到255。在TurboC中:有符整数是按有符定点整数格式的补码表示的,无符整数是按无符定点整数格式表示的。CProgrammingLanguage16什么是程序设计语言?自然语言,如汉语、英语等,随人类发展进步而自然形成的,人之间交流信息的工具和媒介。程序语言是一类人造语言,“编程语言”、“程序语言”或“语言”。描述计算用的工具。程序语言是人与计算机“交流”的媒介:人能用程序语言描述计算过程,计算机可接受这种描述,完成所需计算。人用程序语言写程序,指挥计算机完成各种工作。一、程序设计语言概述CProgrammingLanguage171、机器语言:计算机可以直接识别和执行的二进制语言。2、汇编语言:用“助记符”来表示机器指令。如:ADDA,BSUBA,B它必须经过一个叫汇编程序的系统软件翻译成机器语言程序(即目标程序)后才能执行。3、算法语言:亦称为面向过程的程序设计语言,不依赖于机器。计算机也不能直接执行算法语言描述的源程序,必须先经过编译程序编译成目标程序后,才能由计算机执行。二、程序设计语言的发展简史CProgrammingLanguage184、面向任务的程序设计语言:是非过程化的语言,不需要知道问题是如何求解的,只需描述需求解的问题是什么。数据库操作语言便是。5、面向对象的程序设计语言:认为系统是由许多对象组成的,对象通过消息相互联系和相互作用,从而完成系统的功能。如C++,设计的程序更易懂,更适合更大规模的程序开发。CProgrammingLanguage19新语言不断提出,老语言被淘汰或改变推动程序语言发展的主要原因:1)编程中取得的新认识;随着程序设计实践,人们对程序该怎样做,怎样描述等不断产生新认识。2)计算机应用发展。应用领域不断提出新要求。新认识和要求促使人们改造已有语言,提出新语言目前使用较广的语言包括FORTRAN、C、C++、PASCAL、Ada、Java等。“常规语言”。非常规语言:LISP、Smalltalk、PROLOG、ML等。程序语言发展现状CProgrammingLanguage20三、翻译方式高级语言源程序目标程序(code)编译方式解释方式“翻译”CProgrammingLanguage21用高级语言书写的源程序机器指令程序函数库编译程序编译用高级语言书写的源程序执行结果解释程序函数库解释并执行CProgrammingLanguage22用计算机解决问题的基本过程:一、程序设计技术分析问题确定解决问题方案确定实现算法编写程序运行程序整理结果程序设计的核心任务:设计算法程序=算法+数据结构CProgrammingLanguage23算法:为解决特定问题所使用的确定的且有限的步骤或方案。特点:有穷性确定性有输入有输出有效性CProgrammingLanguage24常用的算法描述方法:①用自然语言表示②用伪码表示③用传统流程图④用N_S流程图(教材P6)二、算法的表示结构化程序设计的三种基本结构:顺序、选择、循环基本原则:所有结构都可以由这三种基本结构组成、单入口、单出口、限制使用GOTO语句CProgrammingLanguage25[例1.1]求一个班学生的平均成绩。设A等(85分)12人,B等(70分)16人,C等(60分)6人,D等(按50分计算)5人。三、简单算法举例开始A=12B=16C=6D=5SUM=85×A+70×B+C×60+D×50AVER=SUM/(A+B+C+D)输出AVER的值结束AACProgrammingLanguage26[例1.2]输出一个数的绝对值。输入XX=0吗?NY输出-X输出X开始输入XX=0吗?YN结束输出-X输出XCProgrammingLanguage27[例1.3]输入10个数,把其中的正数输出。开始N=0N10吗?X=0吗?N=N+1输入XY结束NYN输出XCProgrammingLanguage28[例1.4]输入10个数,求它们的平均值。N=0,SUM=0当N10输入XSUM=SUM+XN=N+1AVER=SUM/10输出AVER的值CProgrammingLanguage29[例1.5]输入50个学生的成绩,统计出得优秀的人数。N=0,M=0当N50输入一个学生成绩GG90YM=M+1N=N+1N输出M的值CProgrammingLanguage301、对一个班的40个学生逐个检查,将身高1.60米以上的学生挑出来。2、求Y的值,X由用户给出-1(x0)Y=0(x=0)1(x0)3、求1+3+5+..99。4、根据输入的年月,输出此月份对应的天数课堂练习N=0当N40输入一个学生身高HH160Y输出姓名N=N+1N输入XX0?YY=-1NX=0?NYY=0Y=1N=1,SUM=0当N=99SUM=SUM+NN=N+2输出SUM的值CProgrammingLanguage31开始输入年月Y是闰年M=2day=30day=31day=28day=29M=1、3、5…12结束YNYNYNCProgrammingLanguage32产生背景产生过程•时间:1972~1973•地点:美国贝尔实验室•目的:UNIX操作系统•设计人:Ken.Thompson和Dennis.M.RitchieC标准•标准C:K&R合著《TheCProgrammingLanguage》•ANSIC:1983年•87ANSIC:1987年•1990年国际标准的ANSIC一、C语言发展历史CProgrammingLanguage33语言简洁、紧凑、灵活运算符和数据类型丰富程序设计结构化、模块化生成目标代码质量高可移植性好二、C语言的特点C语言有很多种,如:MicrosoftC、TurboC、QuickC、BorlandC++、VisualC等。本课程通过TurboC的环境来学习C语言。CProgrammingLanguage34/*example1.1ThefirstCProgram*/#includestdio.hmain(){printf(“Hello,World!”);}三、C程序格式和结构特点例1.1第一个程序Hello,World!输出:Hello,World!注释编译预处理函数语句CProgrammingLanguage35参照例题,编写一个C程序,在屏幕上输出以下信息:**************Verygood!**************CProgrammingLanguage36例1.2/*example1.2calculatethesumofaandb*/#includestdio.h/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;sum=add(a,b);printf(”sum=%d\n,sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;z=x+y;retur
本文标题:C语言详细教程(完整版)
链接地址:https://www.777doc.com/doc-4598982 .html