C程序设计教程(上)清华ppt.ppt_第1页
C程序设计教程(上)清华ppt.ppt_第2页
C程序设计教程(上)清华ppt.ppt_第3页
C程序设计教程(上)清华ppt.ppt_第4页
C程序设计教程(上)清华ppt.ppt_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计教程(上),朱小菲主编,清华大学出版社,21世纪高等学校计算机教育实用规划教材,第1章概论第2章数据类型、运算符与表达式第3章顺序结构第4章选择结构,3,考核方式及比例,两小时闭卷考试:占考核成绩比例60%上机实践算法:占考核成绩比例20%平时(出勤/作业/课堂表现)占考核成绩比例20%,4,教材参考书,5,本书的重点及难点,第1章:C语言概论第2章数据类型、运算符与表达式第3章顺序结构程序设计第4章选择结构程序设计第5章循环结构第6章数组第7章指针第8章函数第9章预处理命令第10章结构体与共同体第11章位运算第12章文件,6,第1章C语言概论,1.1C语言的产生与发展,一,1.2C语言的特点,二,1.3TurboC介绍,三,1.4C程序举例及上机操作步骤,四,7,C语言出现的历史背景,1.计算机语言:人和计算机交换信息的语言工具2.程序:用计算机语言编写的代码称为程序3.低级语言:面向机器的语言,用这种语言编写的程序执行效率高,但程序代码很长,又都依赖于具体的计算机,因此编码、调试、阅读程序都很困难,通用性也差。例:机器语言:用二进制代码表达的语言汇编语言:与机器语言相对应的助记符表达的语言,8,4.高级语言:与低级语言相比更接近于自然语言的表达语言。高级语言独立于机器,编码相对短,可读性强。5.源程序:用高级语言编写的程序叫源程序例:C语言、FORTRAN、QBASIC、Pascal语言等。,9,1.1C语言的产生与发展p1,1970年,ATprintf(HelloBeijing!n);printf(*n);,21,C程序的特性,C程序是由函数构成的.一个函数由两部分组成函数的首部:即函数的第一行.(函数名、函数类型、函数参数名、参数类型)函数体:即函数首部下面的大括弧内的部分.函数体包括声明部分+执行部分,22,3.一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何.4.C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上.5.每个语句和数据定义的最后必须有一个分号.6.C语言本身没有输入输出语句7.可以用/*/对C程序中的任何部分作注释.,23,1.4C程序举例及上机操作步骤,【例1.2】用函数调用的方法求10与20两数中较大的数。max(intx,inty)/*求x、y中较大的值*/if(xy)returnx;elsereturn(y);main()inta,b,c;/*声明三个整型变量*/a=10;b=20;/*给两整型变量分别赋值*/c=max(a,b);/*调用max函数,将得到的结果赋给变量c*/printf(“maxis%d”,c);/*输入较大值c*/,24,1.4.2上机操作步骤,采用C语言编写的程序称为“源程序”,文件的扩展名为.c。但是,由于计算机只能识别0和1代码,因此源程序必须通过编译和连接后,将C源程序转换成对应的可执行程序才能被计算机识别并执行。由C源程序转换成可执行程序的过程如图所示。,25,1.5C程序的上机步骤,程序的执行:方法1:通过菜单(run菜单run命令)方法2:通过快捷方式:ctrl+F92.查看运行的结果:方法1:通过菜单(run菜单userscreen)方法2:通过快捷方式:alt+F53.用F10激活菜单,26,第2章数据类型、运算符与表达式,2.1C语言的数据类型概述2.2标识符、常量和变量2.3C语言的简单数据类型2.4C运算符和表达式2.5数据的类型转换,27,2.1C语言的数据类型概述,28,2.2标识符、常量和变量,2.2.1标识符标识符是起标识作用的一类符号,一般用来标识用户或系统定义的变量名、符号常量名、函数名、类型名等。C语言标识符命名规则:标识符只能由字母、数字、下划线3种字符组成,且第一个字符必须是字母或下划线。,29,2.2标识符、常量和变量,C语言的标识符可以分为以下三类:(1)关键字(2)预定义标识符(3)用户标识符,【例2.1】下面变量中哪些是是合法的用户标识符,哪些是不合法的。no.1、w1、5h、student_name、float、_buf、xy、notebook、x123、Float,30,2.2.2常量,常量是指在程序设计过程中已知的、在程序中直接写出的数值。直接用数值表示的量为直接常量。如12、12.5、A、“QWE”等。用标识符表示的常量为符号常量。,31,2.2.2常量,【例2.2】在程序中使用符号常量。#definePI3.1416main()intr;floatarea;r=20;area=PI*r*r;printf(面积=%7.2fn,area);,32,2.2.3变量,在程序运行过程中,其值可以被改变的量称为变量。变量在内存中占据一定的存储单元。C语言的变量具有三个要素:变量名、数据类型和变量的值。,33,C语言规定,程序中所要用到的变量必须先定义后使用,定义的格式是:类型名变量名列表;变量名列表可以是相同类型的若干个变量名,变量名与变量名之间用逗号分隔。,例如:inta,b,c;,34,变量在使用前必须定义的目的,(1)未经定义的变量名,在程序中被认为是非法的,这样可以检查出变量名的书写错误。(2)在定义变量的同时说明该变量的类型,系统在编译时就能根据定义及其类型为它分配相应字节数的存储空间。(3)各种类型的数据所定义的运算是不同的,因此通过变量的类型可以检查出在程序中该变量所进行的运算是否合法。,例如,整型变量a和b,可以进行求余运算a%b。,35,变量初始化,一般形式为:类型名变量名=表达式;,inta=3;/*定义a为整型变量,初值为3*/floatf=3.56;/*定义f为单精度实型变量,初值为3.56*/charc=a;/*定义c为字符型变量,初值为a*/也可以使被定义的变量的一部分赋初值,例如:inta,b,c=5;,36,2.3C语言的简单数据类型,2.3.1整型数据2.3.4实型数据2.3.5字符型数据,37,2.3.1整型数据,1整型数据类型,38,2.3.1整型数据,2整型数据在内存中的存放形式,数据在内存中是以二进制形式存放的。计算机中内存储器的最小存储单位称为“位(bit)”,每一个位中或者存放0,或者存放1,因此称为二进制位。,大多数计算机用8个二进制位组成一个“字节(byte)”,字节是存放数据的最小单位。,39,对于整型数据来讲,数值是以补码形式存储的。用补码存储一个有符号整数,最高位(最左边的一位)存放符号,若是正数,最高位置0,若是负数,最高位置1。,一个正整数的补码和其原码的形式相同,例如整数5的补码为:0000000000000101,40,一个负整数的补码是和其原码的形式不同的。求负数的补码的方法是:将该数的绝对值的二进制形式,按位取反再加1,得到的便是该数的补码。例如,求10的补码:将10的二进制形式0000000000001010按位取反得1111111111110101;加1得1111111111110110。即10的补码为1111111111110110。,41,3整型常量,整型常量即整型常数。C语言中可用十进制、八进制、十六进制三种形式表示。(1)十进制数:非0开头的一串十进制数字串。其中十进制数字有效字符为:09。如123、345、0。(2)八进制数:以0开头的一串八进制数字串。其中八进制数字有效字符为:07。如0126表示八进制数126,即(126)8。(3)十六进制数:以数字0和字母x(或大写字母X)开头的数为十六进制数。其中十六进制数字有效字符为:09、AF(或af)。如0 x1237表示十六进制数1237,即(1237)16。,42,4整型变量的定义,整型变量用来存放整型数据,使用之前用整型数据类型标识符加以定义。inta,b;(定义a,b为整型变量)unsignedshortc,d;(定义c,d为无符号短整型变量)longe,f;(定义e,f为长整型变量),43,5使用整型数据应注意的问题,【例2.3】赋值时发生的溢出。main()inta;a=32768;printf(%d,a);运行结果:-32768,44,【例2.4】表达式计算时发生的溢出错误。main()longa;a=32767+1;printf(%ld,a);运行结果:-32768,45,为了不出现上述错误,应将程序改写为:main()longa;a=32767L+1;printf(%ld,a);,46,2.3.4实型数据,1实型数据类型,47,2实型数据在内存中的存储形式,例如,一个单精度实型数据在计算机中占4个字节,格式如图所示:3130220,48,3实型常量,实型常量有两种表示形式:(1)十进制小数形式:由数字、小数点和正负号组成,如0.123、.123、-23.5、0.0等都是十进制小数形式。在十进制形式中,若整数和小数点部分为0,可以缺省0不写,但必须有小数点。(2)指数形式:也称为科学计数法,用e或E表示指数,其一般形式为:十进制数E整数如123103可以表示成123e3或123E3。,49,4实型变量的定义,实型变量用来存放实型数据,使用之前用实型数据类型标识符加以定义。例如:floatx,y;(定义x,y为单精度实型变量)doublez;(定义z为双精度实型变量)longdoublet;(定义t为长双精度实型变量),50,5使用实型数据应注意的问题,【例2.5】将一个很大的数和一个很小的数相加。main()floata,b;a=123456.789e5;b=a+20;printf(%f,%f,a,b);,51,2.3.5字符型数据,1字符常量C语言的字符常量也称为字符型常量,它有两种表示方法:(1)普通字符常量:用单引号括起来的单个字符。如b、A、6、*、+、等运算符。三目运算符:可以连接三个运算对象。如条件运算符。(2)运算符的优先级和结合方向优先级是指在使用不同运算符进行计算时的先后次序。结合方向是指当一个运算对象连接两个同一优先级的运算符时,如果先结合左边的运算符,称为“自左至右”的结合方向,如果先结合右边的运算符,称为“自右至左”的结合方向。,59,2表达式,由运算符和运算对象(或称操作数)构成的式子称为表达式,运算对象可以是常量、变量或函数。作为特例,单个的常量、变量和函数也可以看作是表达式。【例2.8】将代数式改写成C语言算术表达式。解:转换成表达式,应写成(sin(x)+b)/(a*b)+(a+b*b)/(ab)。,60,将代数式转换成C语言中的表达式过程中要注意以下几点:,(1)表达式要求所有字符要写在同一行上。(2)无论在一个表达式中需要多少层括号,一律都使用圆括号,不能使用方括号“”,也不能使用花括号“”。(3)C语言不提供乘方运算符,可以用乘号“*”计算乘方的值。(4)函数的参数可以是任意表达式,但需要写在圆括号内。(5)表达式中不能出现C语言中认为不合法的标识符,例如不能写成,只能写成3.14159*r*r,或者PI*r*r,其中,PI是宏定义,代表314159。,61,3表达式求值,在表达式求值时,遵循以下规则:同一优先级的运算符,运算次序由结合方向决定。不同优先级的运算符出现在同一表达式时,按运算符的优先级的高低次序执行,运算符的优先级与结合方向详见附录3。每一个表达式都有一个确定的值,因而有确定的数据类型。C语言对每一类表达式的值都有明确的定义,学习的时候一定要注意。当多个运算符出现在一个表达式的时候,表达式的名称和数据类型取决于最后执行的运算符。,62,2.4.2算术运算符和表达式,1算术运算符C语言中提供的算术运算符包括:,*,%。(1)(加法运算符:计算两数之和,或正值运算符,如+5);(2)(减法运算符:计算两数之差,或负值运算符,如-5);(3)*(乘法运算符:计算两数之积,如3*5);(4)(除法运算符:计算两数之商,如12/5,12.0/5);(5)%(求余运算符:计算两数相除后得到的余数,如5%2结果是3)。,63,2算术表达式,用算术运算符和括号将运算对象连接起来的,符合C语法规则的式子,称C算术表达式。运算对象包括常量、变量、函数等。例如,下面是一个合法的C算术表达式:a*b/c-1.5+a-sin(x),64,2.4.4赋值运算符和赋值表达式,赋值运算符与赋值表达式说明:赋值运算符的左边必须是一个代表某一存储单元的变量名(或是具备变量性质的、代表某存储单元的表达式)。赋值运算符的右边可以是任意合法的C表达式。赋值运算的功能是先求出右边表达式的值,然后把此值赋给赋值运算符左边的变量。确切地说,是把数据放入以该变量名标识的存储单元中。,赋值表达式的一般形式是:变量名表达式,65,赋值运算符与赋值表达式说明:,(1)赋值运算符的优先级只高于逗号运算符,比其它任何运算符的优先级都低。例如,对于如下的表达式:a=2+7/3;/*是先计算赋值运算符右边表达式的值,再把此值赋给变量a。*/(2)赋值表达式x=y的作用是,将变量y所代表的存储单元中的内容赋给变量名x所代表的存储单元,x中原有的数据被替换掉,而y变量中的内容保持不变。(3)赋值运算符右边的表达式也可以是一个赋值表达式。例如:a=b=5是合法的,它等同于:a=(b=5)(4)赋值表达式的值就是经赋值运算后被赋值的变量的值。表达式的类型就是被赋值的变量的类型。,66,2复合赋值运算符,在赋值运算符前加上其它运算符构成的运算符,叫做复合赋值运算符。C语言规定可以使用10种复合赋值运算符,它们是:+=*=/=3),其值为24。(3)关系运算符的操作对象也可以是关系表达式。如:abc(4)关系运算符的操作对象可以是字符数据。如:表达式af(5)当关系运算符两边的运算对象类型不一致时,系统将自动转换,然后进行比较。(6)若x和y都是实型数,应当避免使用x=y这样的关系表达式,因为通常存放在内存中的实型数是有误差的,因此不可能精确相等,这将导致关系表达式的值总为0。,75,2.4.8逻辑运算符和逻辑表达式,1逻辑运算符C语言提供了3个逻辑运算符,分别是:逻辑非(!)、逻辑与(price=5000;if(price=1000.00)tax=0.02*(price1000)+tax;printf(thetax=%10.3f,tax);,121,【例4.4】从键盘输入一个正整数(小于32768),判断该数是偶数还是奇数。如果是偶数,则输出evennumber,如果是奇数,则输出oddnumber。,#includemain()intnum,leap;scanf(%d,122,【例4.5】从两个数中求大数。,#includemain()inta,b,max;printf(nInputtwonumbers:);scanf(%d%d,123,【例4.6】比较两个数的大小关系。,#includemain()inta,b;printf(PleaseinputA,B:);scanf(%d,%d,124,【例4.7】从键盘输入一个字符,判别它的类别(即根据输入字符的ASCII码来判别字符类型)。由ASCII码表可知ASCII值小于32的为控制字符。在“”和“”之间的为数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论