您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第1章 C语言程序设计概述
主讲教师:郭永宁E-MAIL:guoyn@163.com高级语言程序设计返回2预修课程:计算机一级课程性质:专业必修基础课周学时:5(理论授课)+2(上机实践)教材:黄翠兰等.高级语言程序设计(修订版).福建:厦门大学出版社,2009.参考书:谭浩强.C程序设计(第四版).北京:清华大学出版社,2010.返回4课程目标掌握C语言的基本概念、语法、句法。熟悉TurboC上机操作环境。会阅读、会编写、会调试C程序。学会进行常用算法的分析和设计。初步的程序设计能力。返回5第1章C语言程序设计概述返回19人与计算机的对话两个说不同母语的人的对话方式:一方学另一方的语言双方都学习一种第三方语言人与计算机的对话方式:计算机学习人的语言(自然语言)人学习计算机的语言学习第三方语言返回20常见的流行语言应用编程语言:机器语言汇编语言BasicPascalCC++JavaC#专项编程语言:LotusNotesPowerBuilderWeb编程语言:HTMLXMLPHPASPJSPJavaScriptVBScript其他:perlpythonVBA返回21一起来复习计算机硬件系统的组成:冯.诺依曼结构:硬件运算器控制器内存储器主机:I/O设备:键盘、显示器等中央处理器CPU外存储器返回22计算机基本工作过程输入/输出设备存储器运算器控制器源程序和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU大脑记忆装置眼睛和耳朵返回23第一代语言:机器语言计算1+1:101110000000000100000000000001010000000100000000返回24第二代语言:汇编语言(符号语言)MOVAX,1101110000000000100000000ADDAX,1000001010000000100000000数据传送相加汇编语言源程序目标程序汇编程序返回25第三代语言:高级语言PRINT1+1#includestdio.hmain(){printf(%d\n,1+1);}返回26C语言的发展历程CPL→BCPL→B→CCPL(CombinedProgrammingLanguage),1963,英国剑桥BCPL(BasicCombinedProgrammingLanguage),1967,英国剑桥B语言,1970,美国贝尔C语言,1972,美国贝尔(D.Ritchie)1973,K.Thompson与D.Ritchie合作,用C语言重写了UNIX,从而奠定了操作系统的地位。1978年后,C先后被移植到大、中、小、微型机上。1983年美国国家标准化协会(ANSI)根据C语言自问世以来的各种版本,对C语言的发展和扩充制定了新的标准,称为ANSIC。返回27由此看出,C语言最初是为描述和实现UNIX操作系统而设计的,现在已成为一种成熟的通用编程语言,并被广泛应用于多种机型(如个人计算机、工作站和大型机)和操作系统(如DOS、Windows、Linux和UNIX)上。C语言既可以处理数据库、网络、图形、图像等,又适合在工业控制、自动检测等方面的应用。就目前来说,最主要的应用是在嵌入式软件的开发方面。返回28C语言的设计者DennisM.Ritchie返回29Ritchie漫画像Cisquirky,flawed,andanenormoussuccess.返回30Ritchie和Thompson在开发UNIX返回31和Unix的设计者KenThompson接受美国国家技术勋章返回32C语言的特点(1)语言简洁、紧凑,使用方便、灵活。32个关键字(保留字)、9种控制语句,程序形式自由。(2)运算符丰富(34种表达式)。(3)数据类型丰富,具有现代语言的各种数据结构。(整型、实型、字符型、枚举型、指针类型、文件等,以及由上述类型构造的类型,如数组、结构体、共用体等)(4)具有结构化的控制语句,是完全模块化和结构化的语言。(5)语法限制不太严格,程序设计自由度大。(6)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可直接对硬件进行操作。兼有高级和低级语言的特点。(7)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10%~20%。(8)程序可移植性好(与汇编语言相比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。返回3332个关键字:(由系统定义,不能重作其它定义)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile返回349种控制语句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn返回351:C语言本身特点及应用。2:C++是由于开发大型应用软件的需要而产生的,并不是所有的人都要去编写大型软件。3:面向对象的基础是面向过程。C++是面向对象的语言,C是面向过程的,C++学起来比C语言困难得多;要完成底层的、占用资源少的程序,Java无能为力。4、入门语言:为学习数据结构、C++/VC、JAVA等打基础。问题:既然有了面向对象的C++、Java等语言,为什么还要学习C语言?返回36简单的C语言程序介绍例1:#includestdio.hvoidmain(){printf(ThisisaCprogram.\n);}/*预处理,文件包含*//*主函数*//*函数体开始*//*输出语句*//*函数体结束*/说明:main-主函数名,void-函数类型每个C程序必须有一个主函数main。{}是函数开始和结束的标志,不可省。每个C语句以分号结束。使用标准库函数时应在程序开头一行写:#includestdio.h说明:本程序的作用是输出一行信息:ThisisaCprogram.返回37例2:求两数之和#includestdio.hvoidmain()/*求两数之和*/{inta,b,sum;/*声明,定义变量为整型*//*以下3行为C语句*/a=123;b=456;sum=a+b;printf(″sumis%d\n″,sum);}说明:/*……*/表示注释。注释只是给人看的,对编译和运行不起作用。所以可以用汉字或英文字符表示,可以出现在一行中的最右侧,也可以单独成为一行,但不能嵌套,如/*Thisisthemain/*ofexample1.1*/*/说明:输出一行信息:sumis579返回38例3(1):由键盘输入任意两个整数,输出其中较大的数。#includestdio.hvoidmain()/*主函数*/{inta,b,c;/*声明部分,定义变量*/printf(″Pleaseinputtwonumbers:\n″);/*输出提示信息*/scanf(″%d,%d″,&a,&b);/*输入变量a和b的值*/if(ab)c=b;elsec=a;/*把a与b中的大数存入c中*/printf(″max=%d\n″,c);/*输出c的值*/}程序运行情况如下:Pleaseinputtwonumbers:(输出提示信息)8,5↙(输入8和5赋给a和b)max=8(输出c的值)返回39例3(2):#includestdio.hvoidmain()/*主函数*/{inta,b,c;/*定义变量a、b、c*/scanf(″%d,%d″,&a,&b);/*输入变量a和b的值*/c=max(a,b);/*调用max函数,将得到的值赋给c*/printf(″max=%d\n″,c);/*输出c的值*/}程序运行情况如下:8,5↙(输入8和5赋给a和b)max=8(输出c的值)intmax(intx,inty){intz;if(xy)z=x;elsez=y;returnz;}说明:本程序包括main和被调用函数max两个函数。max函数的作用是将x和y中较大者的值赋给变量z。return语句将z的值返回给主调函数main。返回40(1)C程序是由函数构成的。这使得程序容易实现模块化。(2)一个函数由两部分组成:函数的首部:如max函数首部intmax(intx,inty)函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。函数体包括两部分:声明部分:inta,b,c;(可缺省)执行部分:由若干个语句组成。(可缺省)例:voiddump(){}这是一个空函数,什么也不做,但却是合法的函数。返回41(3)C程序总是从main函数开始执行的,与main函数的位置无关。(4)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上,C程序没有行号,可使用空行和空格,常用锯齿形书写格式。习惯用小写字母,对大小写敏感。(5)每个语句和数据声明的最后必须有一个分号。(6)C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。返回42从键盘上输入三个数,求出这三个数的最大数。思路:输入三个数num1、num2、num3之后,先求出三个数中两个数num1和num2的较大数max2,再把这个较大数max2与第三个数num3比较,求出最大数max3。思考返回43#includestdio.h/*******************Cprog1.CByZhaoShaoka*******************//*Thisprogramisdesignedtoseekthemaximumfromthreenumbers*//********************2011-2-21********************************/voidmain(){intnum1,num2,num3,max2,max3;/*定义存放三个数及较大值的变量*/printf(Pleaseinputthreenumbers:);/*输入变量值的提示信息*/scanf(%d%d%d,&num1,&num2,&num3);/*输入三个整数*/max2=seek_max(num1,num2);/*求前两个数的较大数*/max3=seek_max(max2,num3);/*再求前两个数的较大数与第三个数的较大数*/printf(\nTheMaximumamong%d,%dand%dis%d.,num1,num2,num3,max3);/*输出三个数及其最大值*/}intseek_max(intx,inty)/*求两个数的较大数的函数定义*/{intz;/*定义中间变量z*/if(xy)z=x;/*如果xy,那么把x赋给z*/elsez=y;/*否则,把y赋给z*/returnz;/*函数返回x,y的较大值*/}运行情况:Pleaseinputthreenumbers:234533TheMaximumamong23,45and33is45.返回44编辑链接编译执行C程序开发步骤开始编辑编译连接执行有错?结果正确?结束有源程序file.c目标程序file.obj库函数和其它目标程序可执行目标程序无正确不正确file.exe程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe源程序目标程序可执行程序内容程序设计语言机器语言机器语言可执行不可以不可以可以文件名后缀.c.obj.exe返回45常用的有MicorsoftC、QuickC和TurboC等多种版本。这些不同的C语言版本,基本部分是相同的,但在有关规定上又略有差异。本课程以TurboC2.0的环境对C语言进行介
本文标题:第1章 C语言程序设计概述
链接地址:https://www.777doc.com/doc-3165476 .html