欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    作者田丽华岳俊华孙颖馨.ppt

    • 资源ID:5776537       资源大小:4.04MB        全文页数:390页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    作者田丽华岳俊华孙颖馨.ppt

    C语言程序出版社,清华大学出版社,作者:田丽华 岳俊华 孙颖馨,第1章,C语言概述,本章重点,1 C语言的特点 2 C程序的结构3 在计算机上运行C程序的方法,主要内容,1.1 程序设计语言的发展及其特点1.2 程序的发展过程及其特点1.3 认识简单的C语言程序1.4 Visual C+6.0集成开发环境的使用1.5 运行程序的步骤和方法,1.1 程序设计语言的发展及其特点,计算机程序设计语言的发展,经历了从机器语言、汇编语言、到高级语言的历程。1969年,提出了结构化程序设计方法,1970年,第一个结构化程序设计语言Pascal语言出现,标志着结构化程序设计时期的开始。20世纪80年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象程序设计语言的出现。,1.2 语言的发展过程及其特点,1.2.1 C语言的发展过程语言是在20世纪70年代初问世的。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了语言。后来由美国国家标准协会(American NationalStandards Institute)在此基础上制定了一个C 语言标准,于1983年发表。通常称之为ANSI C。,1.2 语言的发展过程及其特点,1.2.2 当代最优秀的程序设计语言早期的C 语言主要是用于UNIX系统。到了80年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一。,1.2.3 语言的版本,Microsoft Visual C+Borland Turbo C 或称 Turbo CBorland C+Builder,1.2 语言的发展过程及其特点,1.2.4 语言的特点,(1)语言简洁、紧凑,使用方便、灵活。32个 关键字、9种控制语句,程序形式自由。(2)运算符丰富。34种运算符。(3)数据类型丰富,具有现代语言的各种数据结构。(4)具有结构化的控制语句,是完全模块化和结构化的语言。(5)语法限制不太严格,程序设计自由度大。,1.2 语言的发展过程及其特点,(6)允许直接访问物理地址,能进行位操作,能 实现汇编语言的大部分功能,可直接对硬 件进行操作。(7)目标代码质量高,程序执行效率高。只比 汇编程序生成的目标代码效率低10-20%。(8)程序可移植性好(与汇编语言比)。基本上 不做修改就能用于各种型号的计算机和各 种操作系统。,1.2 语言的发展过程及其特点,1.2.4 语言的特点,1.2.5 C语言的应用,C语言应用领域广泛,下面列举了一些C语言的应用。许多系统软件和大型应用软件都是用C语言编写的如UNIX和Linux等操作系统。(2)在软件需要对硬件进行操作的场合,用C语言明显高于其他语言。例如电脑的显卡驱动程序、打印机驱动程序等一般都是用C语言编写的。(3)在图形、图像及动画处理方面,C语言具有绝对优势,游戏软件的开发主要就是用C语言。(4)在Internet中,通信程序的编制首选就是C语言。(5)C语言适用于多种操作系统,像Windows、UNIX、Linux等绝大多数操作系统都支持C语言,其他高级语言未必能得到支持,所以在某个特定操作系统下运行的软件用C语言编写是最佳选择。,1.2 语言的发展过程及其特点,1.3 认识简单的语言程序,【例1-1】最简单的一个C程序#include stdio.h/编译预处理命令,文件包含。void main()/主函数main()。每一个C源程序必须有且/只能有一个主函数。/main()函数开始。printf(I Love C Programming!n);/*函数调用语句,printf函数的功能是把输5出的内容送到显示器去显示。*/main()函数结束。,说明:本程序的作用是输出一行信息:I Love C Programming!,1.#include/编译预处理命令,文件包含。2.void main()/main()是主函数。没有参数,没有返回值3./main()函数开始4.int a;/定义一个整型变量,供后面程序使用。说明部分5.printf(“input a not zero number:n”);/显示提示信息。执行部分开始6.scanf(“%d”,12./main()函数结束,【例1-2】带有判断条件if的C程序。,【例1-3】发生函数调用的程序。1.#include/*预处理命令,文件包含*/2.void main()/*主函数*/3.4.int x,y,z;/*变量说明,定义三个整型变量x,y,z*/5.int max(int a,int b);/*自定义函数说明:有两个参数,并且返回值为整型int*/6.printf(input two numbers:n);7.scanf(%d%d,/*输出*/10.,程序运行情况如下:8,5(输入8和5赋给x和y)maxmum=8(输出z的值),int max(int a,int b)if(ab)return a;/*把结果返 回主调函数*/else return b;,max(int x,int y),max(x,y),1.输入和输出函数scanf和 printf这两个函数分别称为格式输入函数和格式输出函数,这两个函数在括号中的参数表都由以下两部分组成:“格式控制字符串”,参数表,1.3 认识简单的语言程序,2.源程序的结构特点1.一个语言源程序(工程)可以由一个或多个源文件组成。2.每个源文件可由一个或多个函数组成。3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“”之后不能加分号。6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。7.C语言程序中可加任意多的注释。通常情况下,“/”注释一行,“/*/”注释中间的所有内容。注释不参加编译,因此不进行错误查找处理。8.用户定义的变量或函数等其他的标识符必须先定义后使用。,3.书写程序时应遵循的规则,1.一个说明或一个语句占一行。2.用 括起来的部分,通常表示了程序的某一层次结构。一般与该结构语句的第一个字母对齐,并单独占一行。3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。,4.语言的字符集,1).字母:小写字母az共26个 大写字母AZ共26个2).数字:09共10个3).空白符:空格符、制表符、换行符等统称为空白符。4).标点和特殊字符,5.语言专用词汇,1).标识符 2).关键字 3).运算符 4).分隔符 5).常量 6).注释符,1.4Visual C+6.0集成开发环境的使用,1.4.1 Visual C+6.0简介和启动,Visual C+6.0集成开发环境,1.4Visual C+6.0集成开发环境的使用,1.4.2 利用Visual C+6.0集成开发环境建立工程,1创建工程创建基于win32Console Application,2.向已有工程中添加新文件添加C/C+Header File和C+Source File,1.5 C程序开发过程,第2章,数据类型、运算符与表达式,本章重点,1 理解计算机的工作原理;2 掌握c语言数据类型的分类;3 掌握各种基本数据类型的常量说明,变量的定义、存储和引用;4 掌握简单运算符与变量或常量所构成的表达式。,主要内容,2.1 计算机的工作原理2.2 C语言的数据类型2.3 常量、变量和标识符2.4 整型数据2.5 实型数据2.6 字符型数据2.7 C语言的运算符与表达式,2.1 计算机的工作原理,2.2 C语言的数据类型,C语言提供了以下一些数据类型。,数据类型,构造类型,指针类型,空类型(无值类型)void,基本类型,2.3常量、变量和标识符,2.3.1 标识符1.标识符定义:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列 2.标识符命名规则有效字符只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线。C语言的关键字不能用作变量名。(关键字见附录A)C语言严格区分英文字母大小写。例如:total、Total、TOTAL是三个不同的变量名。,3.标识符的命名习惯,习惯上,变量名和函数名中的英文字母一般用小写,常量名一般用大写字母,以区分不同意义的标识符。尽量做到“见名知义”。通常应选择能表示数据含义的英文单词或缩写作变量名,或汉语拼音字头作变量名。例如:name/xm(姓名)、sex/xb(性别)、salary/gz(工资)等。不要混淆数字和相似的英文字母。如0与O、1与l。例:判断下列标识符的合法性。sum Sum day Date above student_name#33 M.D.John 3days char ab$123,2.3.2 常量和符号常量,在C语言中,常量分为直接常量和符号常量两种。直接常量(字面常量):整型常量:例如:12、0、-3;实型常量:例如:4.6、-1.23;字符常量:例如:a、b。符号常量:在语言中,可以用一个标识符来表示 一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:,#define 标识符 变量,【例2-1】符号常量的使用。1#include 2#define PRICE 303 void main()4 5 int num,total;6 num=10;7 total=num*PRICE;8 printf(“total=%dn”,total);9,2.3.3 变量,在程序运行期间,其值可以改变的量,称为变量。一个变量应该有一个名字;在内存中占据一定的存储单元,在存储单元里存放变量的数值。变量必须先定义后使用。定义变量的一般格式:,存储类型 数据类型 变量名1,变量名2,变量名3,变量名n;,存储类型 数据类型 变量名1=初值1,变量名2=初值2;,变量初始化的一般格式:,区分变量名和变量值是两个不同的概念,2.4 整型数据,2.4.1 整型常量的表示方法(前缀)整型常量即整常数。在语言中,整常数可用以下三种形式表示:(1)十进制整数。无前缀。如:123,-456,4。(2)八进制整数。以0开头的数是八进制数(0前缀),由07数字组成。如:0123表示八进制数123,等于十进制数83,-011表示八进制数-11,即十进制数-9。(3)十六进制整数。以0 x开头的数是16进制数(0X前缀)由09和AZ的数字组成。如:0X2A(十进制为42)、0XA0(十进制为160)、0XFFFF(十进制为65535);以下各数不是合法的十六进制整常数:5A(无前缀0X)、0X3H(含有非十六进制数码H)。,1.整型数据在内存中的存放形式(基于Visual C+6.0编译器)整型数据在内存中是以二进制补码形式存放的。int i;i=10;,2.4.2 整型变量,2.整型变量的分类:,共六种,有符号基本整型有符号短整型有符号长整型无符号基本整型无符号短整型无符号长整型,(signed)int(signed)short(int)(signed)long(int)unsigned intunsigned short(int)unsigned long(int),表2-1 Visual C+6.0下各类整型数的表示范围,3.整型变量的定义:变量定义的一般形式为:,类型说明符 变量名标识符1,变量名标识符2,.;,例如:int a,b,c;/a,b,c为整型变量 long x,y;/x,y为长整型变量 unsigned p,q;/p,q为无符号整型变量,【例2-2】整型变量的定义与使用#include void main()int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn”,c,d);,4.整型数据的溢出【例2-3】数据的溢出1#include 2 void main()3 4 short a,b;5 a=32767;6 b=a+1;7 printf(%d,%dn,a,b);8,【例2-4】不同类型数据间相互赋值。#include void main()short x,y;int a,b,c,d;x=5;y=6;a=7;b=8;c=x+a;d=y+b;printf(c=x+a=%d,d=y+b=%dn,c,d);,2.5 实型数据,2.5.1 实型常量的表示方法,两种表示形式,十进制小数形式e指数形式,0.1233e-3,注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数。,1e3、1.8e-3、-123e-6、-.1e-3e3、2.1e3.5、.e3、e,a E n(a为十进制数,n为十进制整数),“规范化的指数形式”,即在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。一个实数在用指数形式输出时,是按规范化的指数形式输出的。例如:指定将实数123.4567按指数形式输出,必然输出1.234567e+002。,1.实型数据在内存中的存放形式 按指数形式存储。分为小数部分(尾数)、指数部分(阶码)和符号三部分。,2.5.2 实型变量,2.实型变量的分类和定义,【例2-5】浮点型数据的舍入误差#include void main()double a,c;/改为float型判断结果 a=123456.789e5;c=a+20;printf(%fn,c);,3.实型数据的舍入误差,float,【例2-6】浮点数的有效数字。#include void main()float a;double b;a=33333.33333;b=33333.33333333333333;printf(%fn%fn,a,b);,2.6 字符型数据,2.6.1 字符常量字符常量是用单引号括起来的一个字符。有两种表示形式:1.用单引号括起来一个直接输入的字符2.使用转义字符,例,a,A,1abc、“a”,有些以“”开头的特殊字符称为转义字符,【例2-7】转义字符的使用。#include void main()printf(101x36Cn);printf(abctderfn);printf(hijktLbMn);,2.6.2 字符变量,char ch1,ch2;/定义两个字符型变量ch1、ch2,2.6.3 字符数据在内存中的存储形式及使用方法,每个字符变量被分配一个字节的内存空间。字符值是以其ASCII码的形式再转换为补码形式存放在变量的内存单元之中的。ch1=x;ch2=y;实际上是在ch1,ch2两个单元内存放120和121的二进制代码:,【例2-8】向字符变量赋以整数。#include void main()char ch1,ch2;ch1=120;/给字符变量赋以整数 ch2=121;/给字符变量赋以整数 printf(%c,%cn,ch1,ch2);/以字符形式输出 printf(%d,%dn,ch1,ch2);/以十进制整数形式输出,【例2-9】字符变量与整数进行算术运算。#include void main()char ch1,ch2;ch1=a;ch2=b;ch1=ch1-32;ch2=ch2-32;printf(%c,%cn%d,%dn,ch1,ch2,ch1,ch2);,【例2-10】字符变量的符号,#include void main()char ch;int x;ch=80+50;x=80+50;printf(ch=%dn,ch);printf(x=%dn,x);,2.6.4 字符串常量,字符串常量是一对双引号括起来的字符序列.合法的字符串常量:“How do you do.”,“CHINA”,“C program”,“$123.45”可以输出一个字符串,如printf(“How do you do.”);,是字符常量,”是字符串常量,二者不同。如:假设被指定为字符变量:char c,c=a;”a”;c”CHINA”;,字符串常量和字符常量是不同的量,区别:,1)字符常量由单引号括起来,字符串常量由双引号括起来。2)字符常量只能是单个字符,字符串常量则可以含一个或多个字符。3)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在语言中没有字符串变量。但是可以用一个字符数组来存放一个字符串常量。4)字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符串结束的标志字符0(ASCII码为0)。,例如:字符串 C program 在内存中所占的字节数为10,存储如图2-8所示:,2.7 语言的运算符与表达式,C语言运算符有三种类别。单目运算符:只带一个操作数的运算符。如:、等。双目运算符:带两个操作数的运算符。如:、*、/等。三目运算符:带三个操作数的运算符。如:?:条件运算符。,2.7.1 赋值运算符、赋值表达式,1.赋值运算符“”是赋值运算符,是双目运算符,作用是将一个值(常量、变量、表达式等)赋给一个变量,实际上是将特定的值写到变量所对应的内存单元中。在变量定义中赋初值的一般形式为:应注意,在定义中不允许连续赋值,如int a=b=c=5是不合法的。,类型说明符 变量1=值1,变量2=值2,;,2.赋值表达式一般格式:3.赋值语句一般形式为:例如,x=8;a=b=c=5;注意:变量可以连续赋值但不可以连续初始化,变量(复合)赋值运算符 表达式,变量=表达式;,【例2-11】变量赋值#include void main()int a=3,b,c=5;/a和c进行了初始化 b=a+c;/表达式的值赋给变量b printf(a=%d,b=%d,c=%dn,a,b,c);,2.7.2 不同数据类型间的赋值规则,转换的方法有两种:一种是自动转换,一种是强制转换。1、自动转换(1)短长度的数据类型 长长度的数据类型,无符号短长度的数据类型 无符号或有符号长长度的数据类型(低位原样,高位补0),有符号短长度的数据类型 无符号或有符号长长度的数据类型(低位原样,高位符号扩展),(2)长长度的数据类型 短长度的数据类型,直接截取长长度的数据类型的低位部分(长度为短长度的数据类型的长度)作为短长度数据类型的数据,损失精度。,2、显式强制转换,其一般形式为:其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。例如:(float)a 把a转换为实型(int)(x+y)把x+y的结果转换为整型在使用强制转换时应注意以下问题:类型说明符和表达式都必须加括号(单个变量可以不加括号)。如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。,(类型说明符)(表达式),【例2-12】强制类型转换应用#include void main()float f=5.75;printf(int)f=%d,f=%fn,(int)f,f);,2.7.3 算术运算符和算术表达式,1、算术运算符算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算%)、自增(+)、自减(-)共七种。加法运算符“+”:加法运算符为双目运算符,即应有两个量参与加法运算。如a+b,4+8等。具有左结合性。减法运算符“-”:减法运算符为双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x,-5等具有右结合性。乘法运算符“*”:双目运算,具有左结合性。除法运算符“/”:双目运算具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。模运算符“”:双目运算,操作数只能是整数,结果为两数相除所得余数。,2.算术表达式,用算术运算符将操作对象连接起来的表达式称为算术表达式。【例2-13】算术运算符“%”和“/”的使用。#include void main()printf(nn%d,%d,%d n,20/7,20%7,-20/7);printf(%f,%fn,20.0/7,-20.0/7);,【例2-14】“%”的操作数必为整型。#include void main()printf(%dn,100%3);3、运算符的优先级和结合性,4.自增、自减运算符,自增1,自减1运算符均为单目运算符,都具有右结合性。可有以下几种形式:+i i自增1后再参与其它运算。-i i自减1后再参与其它运算。i+i参与运算后,i的值再自增1。i-i参与运算后,i的值再自减1。,【例2-15】自增自减运算符应用。#include void main()int i=8;printf(%dn,+i);/先加后执行输出 printf(%dn,-i);/先减后执行输出 printf(%dn,i+);/先输出后加 printf(%dn,i-);/先输出后减 printf(%dn,-i+);/取负输出再加1 printf(%dn,-i-);/取负输出再减1,5、算术运算中各类型数据之间的转换规则,【例2-16】不同数据类型进行混和运算。#include void main()float a,b,c;a=7/2;/7/2取整为int型值3,因此a的值/为float型3.0 b=7/2*1.0;/7/2取整为int型值3,再与1.0相/乘,因此b的值为float型3.0 c=1.0*7/2;/先计算1.0*7得double型的结果/7.0,然后将2自动转换为2.0,/再计算7.0/2.0得3.5 printf(a=%f,b=%f,c=%fn,a,b,c);,2.7.4 逗号运算符和逗号表达式,功能:是把两个或多个表达式连接起来组成一个表达式,称为逗号表达式。其一般形式为:其值是以表达式n的值作为整个逗号表达式的值。,表达式1,表达式2,表达式n,【例2-17】逗号表达式应用。1#include 2 void main()3 4 int a=2,b=4,c=6,x,y;5 y=(x=a+b),(b+c);6 printf(y=%d,x=%d,y,x);7,逗号表达式说明:,下面通过几个例子说明逗号表达式的应用a=4,b=a+5,b+则该逗号表达式的值为a=4,b=a+5,+b 则该逗号表达式的值为,9,10,2.7.5 sizeof运算符和复合赋值运算符,1、sizeof运算符:sizeof是运算符不是函数名 功能:获取变量和数据类型所占内存大小(字节数)。使用一般格式为:例如:printf(”long=%dn”,sizeof(int));,sizeof 表达式sizeof(数据类型名或表达式),【例2-18】sizeof运算符的应用#include void main()char c1=A,c2=;printf(length1 is%d n,sizeof(c1+c2);printf(length2 is%d,length3 is%d n,sizeof(2.5+1),sizeof(2.5f+1);,2.复合赋值运算符,构成复合赋值表达式的一般形式为:它等价于例如:a+=5 等价于a=a+5 x*=y+7 等价于x=x*(y+7)r%=p 等价于r=r%p,变量 运算符 表达式,变量=变量 运算符 表达式,第3章,C程序设计 顺序程序设计,本章重点,1理解三种程序控制结构的流程图;2掌握数值型数据(整型和实型)的格式化输入/输出方法;3掌握字符型数据(char)的格式化输入/输出方法;4 能够编写简单顺序控制的程序。,主要内容,3.1 程序的控制结构3.2 语句概述3.3 数据输入输出的概念及在C语言中的实现3.4 字符数据的输入与输出3.5 格式化输出函数printf3.6 格式化输入函数scanf,3.1 程序的控制结构,3.1.1算法的基本概念 程序=算法+数据结构+程序设计方法+语言工具和环境3.1.2 算法的特性有穷性:一个算法应包含有限的操作步骤而不能是无限的。确定性:算法中每一个步骤应当是确定的,而不能是含糊的、模棱两可的。有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。有零个或多个输入。有一个或多个输出。,3.1.3 算法的表示,1 用自然语言表示算法2 用流程图表示算法 图3-1 流程图符号,【例3-1】求5!的算法流程图表示。,图3-2 没有打印功能 图3-3 带有打印功能,【例3-2】判定闰年的算法用流程图表示。,图 3-4 判断闰年流程图,三种基本结构和改进的流程图,顺序结构:,选择结构:,循环结构,三种基本结构的共同特点:,只有一个入口;只有一个出口;结构内的每一部分都有机会被执行到;结构内不存在“死循环”。,3.1.4 用N-S流程图表示算法,1.顺序结构:2.选择结构:,3.循环结构:,3.1.5 用计算机语言表示算法,【例3-3】用C语言求5!。#include void main()int i,t;t=1;i=2;while(i=5)/循环结构,判断下循环条件是否为真 t=t*i;i=i+1;printf(%d,t);,3.1.6 结构化程序设计方法,结构化程序设计所遵循的原则:自顶向下;逐步细化;模块化设计;结构化编码。,3.2 语句概述,图3-5 程序的结构图,C语句可分为以下五类:,表达式语句函数调用语句控制语句复合语句空语句,3.3 数据输入输出的概念及在C语言中的实现,在使用语言库函数时,要用预编译命令#include将有关“头文件”包括到源文件中。使用标准输入输出库函数时要用到“stdio.h”文件,stdio是standard input and outupt的意思。因此源文件开头应有以下预编译命令:#include或#include“stdio.h”,3.4 字符数据的输入与输出,3.4.1 putchar 函数(字符输出函数)putchar 函数是字符输出函数,其功能是在显示器上输出单个字符。其一般形式为:,putchar(字符型量),例如:putchar(A);(输出大写字母A)putchar(x);(输出字符变量x的值)putchar(101);(也是输出字符A)putchar(n);(换行),【例3-4】输出单个字符。#includevoid main()char a=G,b=o,c=o,d=d;putchar(a);putchar(b);putchar(c);putchar(d);putchar(t);,3.4.2 getchar函数(键盘输入函数),getchar函数的功能是从键盘上输入一个字符。其一般形式为:,getchar();,【例3-5】输入单个字符。#includevoid main()char c;printf(input a charactern);c=getchar();putchar(c);,putchar(getchar();或printf(“%c”,getchar();,3.5 printf函数(格式输出函数),3.5.1 printf函数调用的一般形式 printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。,printf(“格式控制字符串”,输出表列),格式控制字符串,%标志输出最小宽度.精度长度类型,printf函数调用的一般形式为:,输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,保证不因为输出而使数据发生截断误差。若实际位数少于定义的宽度则按表3-2补以空格或0。精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数值,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则四舍五入截去超过的部分。长度:长度格式符为h,l两种,h表示按短整型(short)量输出,l表示按长整型(long)量输出。,【例3-6】输出整数#include void main()int a=88,b=89;printf(%4d%4on,a,b);printf(%+4ld,%-4dn,a,b);printf(%+04d,%-04dn,a,b);printf(a=%d,b=%dn,a,b);,【例3-7】按格式控制字符串要求输出浮点型小数和字符型数据#includevoid main()int a=15;float b=123.1234567f;double c=12345678.1234567;char d=p;printf(a=%d,%5d,%o,%Xn,a,a,a,a);printf(b=%f,%lf,%5.4lf,%en,b,b,b,b);printf(c=%lf,%f,%8.4lfn,c,c,c);printf(d=%c,%8cn,d,d);,3.5 使用printf函数注意事项,(1)如果想输出,则应该在“格式控制”字符串中用连续两个表示。(2)输出最小宽度.精度仅用于输出浮点型小数和字符串时的格式控制。输出浮点型小数:形如,%-m.nf,f是一个浮点型变量,当按此格式输出时,包括小数点共m列宽(按照对齐方式补齐)、取n位小数;当f的实际宽度大于m时,则按实际宽度输出。输出字符串:形如,%-m.ns,s是一个字符串,当按此格式输出时,按照对齐方式用空格补齐m列、取n个字符;当s的实际宽度大于m时,则按实际宽度输出。(3)printf()函数格式控制字符串可以包含转移字符。,float f=-3.14587f;printf(%-10.2f,f);/输出数据占10列宽,取2位小数,左对齐 printf(%5.2f,f);/输出数据占5列宽,取2位小数 printf(%8.2f,f);/输出数据占8列宽,取2位小数,右对齐 printf(%3.2fn,f);/输出数据占3列宽,取2位小数f的实际/宽度大于3时,按实际宽度输出,printf(%3s,%7.2s,%.4s,%-5.3sn,CHINA,CHINA,CHINA,CHINA);输出为:CHINA,CH,CHIN,CHI,3.6 scanf函数(格式输入函数),scanf函数的一般形式,scanf(“格式控制字符串”,地址表列);,【例3-8】scanf函数的使用#include void main()int a,b,c;printf(input a,b,cn);scanf(%d%d%d,在scanf语句的格式串中由于没有非格式字符在“%d%d%d”之间作输入时的间隔,因此在输入时要用一个或一个以上的空格、回车键、Tab键作为每两个输入数之间的间隔。,格式字符串,%*输入数据宽度长度类型,(1)格式字符:表示输入数据的类型,其格式符和意义如下表,(2)“*”:抑制符,用以表示输入的数据不赋值给相应的变量,即跳过该输入值。如:scanf(%d%*d%d,当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b。(3)宽度:用十进制整数指定输入的宽度(即字符数),遇空格或不可转换字符则结束。(4)长度:长度格式符为l和h,l表示输入长整型数据(如%ld)和双精度浮点数(如%lf)。h表示输入短整型数据。,使用scanf函数还必须注意以下几点:,(1)scanf函数中没有精度控制,如:scanf(“%5.2f”,才是合法的。(3)在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格、TAB或回车符作间隔。C编译在碰到空格、TAB、回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。(4)在输入字符数据时,特别需要注意空格符、回车符均作为有效字符使用。若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。,【例3.6】数据的格式化输入输出。输入一学生的学号(8位数字)、生日(年-月-日)、性别(M:男,F:女)及三门功课(语文、数学、英语)的成绩,现要求计算该学生的总分和平均分,并将该学生的全部信息输出(包括总分、平均分)。,#includevoid main()unsigned long no;/学号 unsigned int year,month,day;/生日 unsigned char sex;/性别 float chinese,math,english;float total,average;printf(input the students NO:);scanf(%8ld,3.7顺序结构程序设计举例,【例3-10】输入三角形的三边长,求三角形面积。,#include#includevoid main()float a,b,c,s,area;scanf(“%f,%f,%f”,#include#includevoid main()float a,b,c,disc,x1,x2,p,q;scanf(“a=%f,b=%f,c=%f”,【例3-11】求 方程的根,a,b,c由键盘输入,设。,【3-12】从键盘输入一个大写字母,要求改用小写字母输出。,#includevoid main()char c1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%dn,c2,c2);,第4章,选择结构程序设计,本章重点,1.关系表达式和逻辑表达式的灵活使用;2.掌握if语句:单分支结构、双分支结构、多分支结构和if的嵌套;3.switch语句的使用;4.break语句在switch语句中的作用。,主要内容,4.1 关系运算符和表达式4.2 逻辑运算符和逻辑表达式4.3 if语句4.4 switch语句4.5 程序举例,4.1 关系运算符和关系表达式,4.1.1.关系运算符及其优先级(大于)=(大于或等于)=(等于)!=(不等于),说明:关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符,4.1.2 关系表达式,用关系运算符将两个表达式连接起来的式子称关系 表达式 表达式 关系运算符 表达式 例:a+bc-d,x3/2,a+1b”的值为“真”,表达式的值为1。,C语言中没有专用的逻辑值,1代表真,0代表假,如果有:a=1;b=2;c=3;计算:d=a!=c=a b c;,【例4-1】关系运算符应用#includevoid main()char c=k;int i=1,j=2,k=3;float x=3e+5,y=0.85f;printf(%d,%dn,a+5=k+1);/a+5=4为0 printf(%d,%dn,1j5,x-5.25=x+y);/1j为1,15为1;x-5.25=x+y为1 printf(%d,%dn,i+j+k=-2*j,k=j=i+5);/6=-4为0;k=j为0,0=i+5为0,4.2 逻辑运算符和逻辑表达式,4.2.1.逻辑运算符及其优先级&(逻辑与)相当于其他语言中的AND|(逻辑或)相当于其他语言中的OR!(逻辑非)相当于其他语言中的NOT例:a&b 若a,b为真,则a&b为真。a|b 若a,b之一为真,则a|b为真。!a 若a为真,则!a为假。,优先次序:!(非)&(与)|(或)逻辑运算符中的“&”和“|”低于关系运算符,“!”高于算 术运算符,ab&cd 等价于(ab)&(cd)!b=c|dc&x+yc)&(x+y)b),4.2.2 逻辑表达式,用逻辑运算符将关系表达式或逻辑量连接起来的式子 就是逻辑表达式 逻辑表达式的值应该是一个逻辑量“真”或“假”。,非零即为“真”,表达式 逻辑运算符 表达式,【例4-2】逻辑运算符的应用#includevoid main()char c=k;int i=1,j=2,k=3;float x=3e+5,y=0.85f;printf(%d,%dn,!x*!y,!x);printf(%d,%dn,x|i,在逻辑表达式求值的过程中,并不是所有的逻辑运算符都被执行,即有的表达式被短路掉,也称为“逻辑短路”,只有在必

    注意事项

    本文(作者田丽华岳俊华孙颖馨.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开