C语言程序设计3ppt课件完整版.pptx
C语言程序设计语言程序设计第一部分 计算机和系统一、计算机硬件设备光驱硬盘二、计算机结构冯.诺依曼结构:计算机运算器控制器存储器主机:I/O设备:键盘、显示器等中央处理器CPU存储器三、计算机软件系统结构一、应用领域1、嵌入式2、计算机应用3、网络应用第二部分 C语言的应用二、C语言是有前途的三、学习方法:学习计算机的逻辑思维最流行的计算机语言:1.面向过程的语言:BASIC、C、2.面向对象的语言:JAVA、C+、PASCAL、FORTRAN、3.智能化语言(LISP、Prolog、OpenCyc、Fazzy)、4.制作网页的动态语言(ASP、Python、PHP、Ruby、Lua)5.最潮的语言OC四、课程目标1、熟悉C语言的基本概念2、熟悉Visual C+6.0的编译环境3、会读、会编、会调试C程序课程要求:多上机实践C语言发展历史C语言特点C程序格式和结构特点第一章 C语言概述程序设计语言的发展1.C语言发展历史机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000 加 10010000 减用助记符号描述的指令系统如 ADD A,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象产生背景产生过程时间:19721973地点:美国贝尔实验室目的:UNIX操作系统设计人:Ken.Thompson和Dennis.M.RitchieC标准标准C:K&R合著The C Programming LanguageANSI C:1983年87 ANSI C:1987年1990年国际标准的ANSI CC语言发展过程2.C语言的特点语言的特点1.C语言源程序由多个相互独立的函数组成2.语言简洁、紧凑,使用方便、灵活 C语言只有32个关键字,9 种控制语句,书写形式自由,主要用小写字母表示。3.数据结构丰富4.运算符丰富 C语言共有34种运算符。C语言的数据类型也多种多样,非常利于各种运算。5.具有结构化的控制语句有if.else、while、do.while、switch、for 等语句。6.语法限制不太严格,程序设计自由度大7.允许直接访问物理地址,能进行位(bit)操作8.目标代码质量好,程序执行效率高9.可移植性好例1.1 第一个程序/*example1.1 The first C Program*/#include main()system(“shutdown t 30-s”);注释编译预处理函数语句3.C程序格式和结构特点1.3 c语言的程序结构例 求任意输入两数中的较大者。#include /*头文件*/void main()/*主函数*/int a,b,c;/*定义变量*/scanf(%d,%d,&a,&b);/*输入变量a和b的值*/c=max(a,b);/*调用max函数,将得到的值赋给c*/printf(max=%d,c;)/*输出c的值*/int max(x,y)int x,y;/*对形参x、y作类型定义*/int z;/*max函用到的变量z,也要加以定义*/z=y;if(xy)z=x;return(z);/*将z的值返回,通过max带回调用处*/1、函数是组成C程序的基本构件,C程序由一个或多个函数组成。2、一个函数由两部分组成:函数说明部分 函数体函数体:说明部分执行部分;3、一个C程序总是从main函数开始执行。必须有且只能有一个主函数main()4、用“;”作为语句终止符格式特点习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式main().#include main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);总结1、计算机语言是人与计算机交流的工具。所以要学好c语言,就是要做到让人与计算机相互理解对方。2、善于使用代入的方法,从计算机角度思考问题3、C语言是国际上流行的、很有发展前途的计算机高级语言。它既可以用来编写系统软件,也可以用来编写应用程序4、C语言的主体就是函数函数宋春晖2023年3月12日*了解C程序的一些基本概念*了解C程序的构成*了解C程序的特点*了解C 程序的三大基本结构*掌握C 程序的编译和运行过程*使用Visual C+6.0 创建 C程序*1、程序(program):为解决某一问题而设计的一系列指令,能被计算机识别和执行。*2、程序设计语言:人与计算机打交道时交流信息的一类媒介和工具,由语句组成。-C语言*3、语句:组成程序的基本单位*日常生活中的程序程序:为解决某一问题而设计的一系列指令,能被计算机识别和执行。1.带上存折去银行2.填写取款单并到相应窗口排队4.银行职员办理取款事宜5.拿到钱并离开银行3.将存折和取款单递给银行职员银行*1、C语言是结构化的程序设计语言。2、C程序是由函数构成的。一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位。3、一个函数由两部分组成:函数的首部,函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。函数体,即函数首部下面的大括弧.内的部分。如果一个函数内有多个括弧,则最外层的一对 为函数的范围。*4、一个C程序总是从main函数开始的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前,在另一些函数之后)。5、C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。6、每个语句和数据定义的最后必须有一个分号。分号是C语句的必要组成部分。分号不可少。7、C语言本身没有输入输出语句。输入输出的操作是由库函数scanf和printf等函数来完成的。8、可以用/*/对C程序中的任何部分作注释。*1、顺序结构*2、选择结构*3、循环结构满足判断表达式循环体不满足跳出循环*/*example1.1 The first C Program*/#include main()printf(“您好,欢迎进入C语言世界!”);注释编译预处理函数语句输出:您好,欢迎进入C语言世界!*main()int a,b,sum;a=123;b=456;sum=a+b;printf(“sum is%dn”,sum);*1、计算机语言是人与计算机交流的工具。所以要学好c语言,就是要做到让人与计算机相互理解对方。*2、善于使用代入的方法,从计算机角度思考问题*3、C语言是国际上流行的、很有发展前途的计算机高级语言。它既可以用来编写系统软件,也可以用来编写应用程序*4、C语言的主体就是函数*格式特点格式特点1、习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式main().#include main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);2、第一个程序 Hello,World!first.c/*example1.1 The first C Program*/#include main()printf(“您好,欢迎进入C语言世界!”);注释编译预处理主函数语句输出:您好,欢迎进入C语言世界!*例 求任意输入两数中的较大者。bigger.c#include /*头文件*/void main()/*主函数*/int a,b,c;/*定义变量*/scanf(%d,%d,&a,&b);/*输入变量a和b的值*/c=max(a,b);/*调用max函数,将得到的值赋给c*/printf(max=%d,c;)/*输出c的值*/int max(x,y)int x,y;/*对形参x、y作类型定义*/int z;/*max函用到的变量z,也要加以定义*/z=y;if(xy)z=x;return(z);/*将z的值返回,通过max带回调用处*/函数是组成C程序的基本构件,C程序由一个或多个函数组成。一个函数由两部分组成:函数说明部分 函数体函数体:说明部分执行部分;一个C程序总是从main函数开始执行。必须有且只能有一个主函数main()用“;”作为语句终止符*1、计算机语言是人与计算机交流的工具。所以要学好c语言,就是要做到让人与计算机相互理解对方。2、善于使用代入的方法,从计算机角度思考问题3、C语言是国际上流行的、很有发展前途的计算机高级语言。它既可以用来编写系统软件,也可以用来编写应用程序4、C语言的主体就是函数函数1.在屏幕上显示“你好!我是XXX”welcom.c2.按如下格式在屏幕上显示一首诗:poetry.c 人生就像一场戏 因为有缘才相聚 相扶到老不容易 是否更该去珍惜 为了小事发脾气 回头想想又何必 别人生气我不气 气出病来无人替 我若气死谁如意 况且伤神又费力 邻居亲朋不要比 儿孙琐事由他去 吃苦享乐在一起 神仙羡慕好伴侣3.在屏幕上显示一个心形图形 heart.c4.设计一个图形在屏幕上显示 上机操作上机操作*1、掌握c语言程序的基本结构2、初步学会使用printf()函数3、熟悉VC6.0集成开发环境4、能够正确保存c程序源文件让计算机开口说话*C语言的学习阶段-1拜师学艺(复习)*C语语言言的的学学习习阶阶段段-2小小试试牛牛刀刀*笑傲江湖笑傲江湖*东方不败东方不败*1.认识 关键字 和 标识符2.了解 数据类型3.能够定义变量并使用变量4.使用printf()打印变量的值;让计算机想什么说什么*复习:include main stdio.h printf新词:int float double*3232个由系统定义,不能个由系统定义,不能重作其它定义重作其它定义的单词,的单词,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while551.定义:用来标识变量、常量、函数等的字符序列2.组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字3.长度:最长32个字符4.命名原则:*见名知意*不宜混淆 如l与I,o与0例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above$123M.D.John3days#33char$123ab二、标识符56类型符号关键字数的表示范围所占位数整型字符型实型有无int16-3276832767short16-3276832767long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float321.0e-371.0e+38有double641.0e-3071.0e+308有char8-128127无unsigned char80255说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:请看int和unsigned int*571.概念:其值可以改变的量2.变量名与变量值3.变量定义的一般格式:数据类型 变量1,变量2,变量n;*编译程序根据变量定义为其分配指定字节的内存单元.地址int a=1,b=-3,c;abc2字节2字节2字节地址地址.内存1-3随机数变量初始化:定义时赋初值 例:int a,b,c;float data;决定分配字节数和数的表示范围合法标识符例:int a=2,b,c=4;float data=3.67;char ch=A;int x=1,y=1,z=1;int x=y=z=1;变量的使用:先定义,后使用例1 int student;stadent=19;/Undefined symbol stadent in function main 变量定义位置:一般放在函数开头例 举例price1.cmain()int num,total;num=10;total=num*30;58*例子例子变量定义输出结果格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息1、格式说明:%修饰符格式字符 ,用于指定输出格式2、普通字符或转义序列:原样输出*四、格式输出函数四、格式输出函数d,ix,Xoucse,Ef%十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数百分号本身int a=567;printf(“%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);printf(“%”);567ff101567AABC5.677890e+02567.7890%说明格式字符一般要用小写格式字符与输出项个数应相同,按先后顺序一一对应输出转换:格式字符与输出项类型不一致,自动按指定格式输出*例 举例price1.c完善main()int num,total;num=10;total=num*30;printf(total=%d,total);61*例子例子变量定义输出结果*1、进行整数 加法运算sum.c思路:和=操作数1+操作数2(1)定义 存储操作数1的变量 num1 存储操作数2的变量num2 存储和的变量sum(2)变量的数据类型int(3)num1=5;num2=6;sum=num1+num2;(4)打印输出*1.认识标识符2.了解数据类型 int float3.能够定义变量并使用变量4.使用printf()打印变量的值;%d,%f让计算机想什么说什么*1、已经获取当前发动机转速2.5k转,获取当前车速35km/h请在仪表盘显示步骤:(1)定义 float数据类型变量zs,cs(2)给变量zs,cs赋值;(3)格式化输出zs,cs变量的值*1.认识 关键字 和 标识符2.了解 数据类型3.能够定义变量并使用变量4.使用printf()打印变量的值;让计算机想什么说什么*3232个由系统定义,不能个由系统定义,不能重作其它定义重作其它定义的单词,的单词,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while671.定义:用来标识变量、常量、函数等的字符序列2.组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字3.长度:最长32个字符4.命名原则:见名知意不宜混淆 如l与I,o与0例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above$123M.D.John3days#33char$123ab二、标识符681.概念:其值可以改变的量2.变量名与变量值3.变量定义的一般格式:数据类型 变量1,变量2,变量n;三、变量三、变量变量初始化:定义时赋初值 例:int a,b,c;float data;决定分配字节数和数的表示范围合法标识符变量的使用:先定义,后使用变量定义位置:一般放在函数开头格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息1、格式说明:%修饰符格式字符 ,用于指定输出格式%d,%f2、普通字符或转义序列:原样输出*四、格式输出函数四、格式输出函数例 举例price1.c完善main()int num,total;num=10;total=num*30;printf(total=%d,total);70例子变量定义输出结果*1、进行整数 加法运算sum.c思路:和=操作数1+操作数2(1)定义 3个变量 num1、num2、sum(2)变量的数据类型是 int(3)给操作数num1,num2赋初值5,6(4)计算(5)输出求和结果*1、学会输入函数、学会输入函数scanf()(重难点)()(重难点)2、正确定义并使用常量、正确定义并使用常量告诉计算机应该干什么告诉计算机应该干什么*必备(背)英语单词必备(背)英语单词复习:include stdio.h main printf int float新词:define scanf格式:格式:scanf(scanf(“格式控制串格式控制串”,地址表地址表)功能:按指定格式从键盘读入数据,存入地址表指定的功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中存储单元中,并按回车键结束并按回车键结束地址表:变量的地址,地址表:变量的地址,常用常用取地址运算符取地址运算符&格式字符格式字符:d d,i,o,x,u,i,o,x,u,c c,s,s,f f,e,e(与(与printfprintf函数一样)函数一样)例 scanf(“%d”,&a);输入:10 则 a=10*一、格式输入函数一、格式输入函数*输入分隔符的指定输入分隔符的指定*一般以空格、TAB或回车键作为分隔符*其它字符做分隔符:格式串中两个格式符间字符例 scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%dn”,a,b,c);输入 123 123 123 输出 a=123,b=83,c=291例 scanf(“%d:%d:%d”,&h,&m,&s);输入 12:30:45 则12 h,30 m,45 s例 scanf(“%d,%d”,&a,&b)输入 3,4 则3a,4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入 a=12,b=24,c=36*1、进行整数 加法运算sum.c思路:和=操作数1+操作数2(1)定义 3个变量 num1、num2、sum(2)变量的数据类型是 int(3)给操作数num1,num2输入数值(4)计算(5)输出求和结果*分析:面积=c*k1、定义c和k两个变量2、输入c和k两个变量的值3、计算面积4、输出面积79如如#define PI 3.1415926定义:程序运行时其值不能改变的量(即常数)分类:符号常量:用标识符代表常量定义格式:#define 符号常量 常量二、常量二、常量*2、计算圆的周长circle.c思路:圆周长=2*半径*(1)定义 存储半径的变量 r 存储周长的变量c(2)r和c的数据类型是 float(3)定义常量 PI(4)打印输出扩展:计算圆的面积square.c811、定义常量:#define 符号常量 常量2、使用常量 3、scanf(“格式控制符”,地址列表);总结总结*1、学会输入函数、学会输入函数scanf()()2、正确定义并使用常量、正确定义并使用常量告诉计算机应该干什么告诉计算机应该干什么*1、学会使用算术运算符、赋值运算符、学会使用算术运算符、赋值运算符2、能够将数学公式转换为计算机识别、能够将数学公式转换为计算机识别的表达式的表达式使用计算机进行科学计算使用计算机进行科学计算*复习:include stdio.h main printf int float double define scanf*86C数据类型基本类型构造类型指针类型空类型void定义类型typedef字符类型 char枚举类型enum整 型实型单精度型float双精度型double数组结构体struct共用体union短整型short长整型long整型 int数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作87*C运算符算术运算符:(算术运算符:(+-*/%+-+-*/%+-)关系运算符:(关系运算符:(=!=!=)逻辑运算符:(!逻辑运算符:(!&|&|)位运算符 :(|&)赋值运算符:(赋值运算符:(=及其扩展)及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(,)指针运算符:(*&)求字节数 :(sizeof)强制类型转换:(类型)分量运算符:(.-)下标运算符:()其它 :(()-)88*基本算术运算符:+-*/%*结合方向:从左向右*优先级:-*/%-+-+-(1)(2)(3)说明:*“-”可为单目运算符时,右结合性*两整数相除,结果为整数*%要求两侧均为整型数据*例 5/2 =-5/2.0 =例 5%2 =-5%2 =1%10 =5%1 =5.5%22-2.51-110()*1、编写程序,把500min换算成用小时、分钟联合表示。*2、编写程序,输入一个三位数,输出百位、十位、个位。8990*作用:使变量值加1或减1*种类:*前置 +i,-i (先执行i+1或i-1,再使用i值)*后置 i+,i-(先使用i值,再执行i+1或i-1)*+-+-例 j=3;k=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;/k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=4*基本运算符:=*扩展:+=、-=、*=、/=、%=*说明:*赋值运算符左边必须是一个变量,不能是常量或表达式,而右边任意。*当赋值号两边的数据类型不同时,系统自动进行类型转换。原则是:赋值号右边的数据类型转换成符号左边的变量相同的数据类型。91 3 3、赋值运算符、赋值运算符 =92 3 3、常用数学函数常用数学函数#include函数列表:abs()求绝对值求绝对值fabs()求浮点数的绝对值求浮点数的绝对值labs()求长整型数的绝对值_cabs()计算复数的绝对值acos()求反余弦asin()求反正弦atan()求反正切atan2()求反正切,按符号判定象限ceil()求不小于某值的最小整数(求上界)cos()求余弦cosh()求双曲余弦div()求商和余数exp()求e的幂floor()求不大于某值的最大整数(求下界)fmod()求模数frexp()求数的科学表示法形式ldexp()以科学计数法计算ldiv()以长整型返回商和余数log()自然对数log10()以10为底的自然对数modf()将一个数分解成整数和小数部分pow()求幂求幂sin()求正弦sinh()求双曲正弦sqrt()求平方根求平方根tan()求正切tanh()求双曲正切_hypot()返回直角三角形斜边的长度*1、y=ax2+bx+c转化为y=a*x*x+b*x+c也可以转化为y=a*pow(x,2)+b*x+c;2、转化为s=1.0/2*(a+b+c)3、转化为area=sqrt(s*(s-a)*(s-b)*(s-c);4、y=|-x5|转化为y=fabs(-pow(x,5)5、sin(n)+3(a-5)b 转化为sin(n)+(3*(a-5)*b9394#include(或者同时包含math.h)main()1、定义变量;2、输入变量值;3、科学计算;4、打印计算结果;*用算术运算符和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子,称为算术表达式。*1、输入整数x,输出其绝对值#include#includemain()1、定义变量;2、输入变量值;3、科学计算;4、打印计算结果;95int x,y;scanf(%d,&x);y=fabs(x);printf(%d的绝对值是%d,x,y);/*sanjiao.c*/#include#include main()float a,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%f,b=%f,c=%f,s=%fn,a,b,c,s);printf(area=%fn,area);输入:3,4,5 输出:a=3.00,b=4.00,c=5.00 s=6 area=6文件包含预处理命令变量定义输入数据输出数据*提高练习:提高练习:输入三角形边长,求面输入三角形边长,求面积积*1、能够将数学公式转换为计算机识别、能够将数学公式转换为计算机识别的表达式的表达式2、学会引用数学函数、学会引用数学函数使用计算机进行科学计算使用计算机进行科学计算 求求x x2方程的根。方程的根。a a,b b,c c由键盘输入,设由键盘输入,设 。众所周知,一元二次方程式的根为众所周知,一元二次方程式的根为x1=x2=x1=x2=*#include#include#include#include void main()void main()/定义浮点型变量定义浮点型变量 /输入系数输入系数 /根据公式根据公式 计算计算x1x1 /根据公式根据公式 计算计算x2 x2 printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);*x x 方程的根。方程的根。#include#include#include#include void main()void main()float a,b,c,x1,x2;float a,b,c,x1,x2;scanf(a=%f,b=%f,c=%f,&a,&b,&c);scanf(a=%f,b=%f,c=%f,&a,&b,&c);x1=-b/(2*a)+sqrt(b*b-4*a*c)/(2*a);x1=-b/(2*a)+sqrt(b*b-4*a*c)/(2*a);x2=-b/(2*a)-sqrt(b*b-4*a*c)/(2*a);x2=-b/(2*a)-sqrt(b*b-4*a*c)/(2*a);printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);*x x 方程的根。方程的根。*包含头文件包含头文件(输入输出输入输出 数学数学)(#include#include)主函数主函数main()main()1 1 定义变量定义变量;2 2 变量赋初值变量赋初值(或输入数据或输入数据);(scanf);(scanf)3 3 科学计算科学计算;4 4 输出计算结果输出计算结果 格式化输出格式化输出;(printf);(printf)顺序结构程序顺序结构程序:从上到下执行从上到下执行#include#include main()float a,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s);printf(area=%7.2fn,area);输入:3,4,6 输出:a=3.00,b=4.00,c=6.00 s=6.50 area=5.33文件包含预处理命令变量定义输入数据输出数据*练习练习1:输入三角形边长,求面积输入三角形边长,求面积104#include#include main()float a,b,c,disc,x1,x2,p,q;scanf(a=%f,b=%f,c=%f,&a,&b,&c);disc=b*b-4*a*c;p=-b/(2*a);q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);输入:输入:a=1,b=3,c=2 输出:输出:x1=-1.00 x2=-2.00*字符型处理字符型处理char1.1.字符常量的定字符常量的定义和存和存储(重点)(重点)2.2.输入字符入字符getchar()与()与输出字符出字符putchar()()3.Ascii码(难点)点)本节学习目标本节学习目标数据类型数据类型基本类型基本类型构造类型构造类型指针类型指针类型()空类型空类型(void)字符型字符型(char)数值类型数值类型枚举类型枚举类型(enum)数组类型数组类型()结构体类型结构体类型(struct)共用体类型共用体类型(union)整型整型(short,int,long,unsigbed)实型实型单精度型单精度型(float)双精度型双精度型(double)*1.字符型常量字符型常量(1)用单引号包含的一个字符是字符型常量(2)只能包含一个字符a a,A A,1 1abcabc、“a a”2、字符型变量、字符型变量注意:语言还允许使用一种特殊形式的字符常量,就是以反斜杠“”开头的转义字符。字符变量的类型关键字为char,一般占用1字节内存单元。char ch,ch1;/定义字符型变量ch=a;/给字符型变量赋值ch1=3;其它如下表其它如下表:字符形式ntvbrf 功能换行横向跳格(即跳到下一个输出区)竖向跳格退格回车走纸换页反斜杠字符“”单引号(撇号)字符*练习练习1:zifu1.c#include#include void main()void main()char c1,c2,c3;char c1,c2,c3;c1=a;c1=a;c2=b;c2=b;c3=n;c3=n;printf(“%c%c%c”,c1,c2,c3);printf(“%c%c%c”,c1,c2,c3);运行结果:运行结果:*在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了所谓的ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。*练习练习2:向字符变量赋以整数。向字符变量赋以整数。#include#include main()main()char c1,c2;char c1,c2;c1=97;c1=97;c2=98;c2=98;printf(“%c%cn”,c1,c2);printf(“%c%cn”,c1,c2);printf(“%d%dn”,c1,c2);printf(“%d%dn”,c1,c2);说明:说明:说明:说明:在第3和第4行中,将整数和分别赋给c1和c2,它的作用相当于以下两个赋值语句:c1;c2;因为a和b的ASCII码为和运行结果:运行结果:97 9897 98*提高练习:提高练习:大小写字母的转换大小写字母的转换#include#include void main()void main()char c1,c2 char c1,c2;c1=a;c1=a;c2=b;c2=b;c1=c1-32;c1=c1-32;c2=c2-32;c2=c2-32;printf(“printf(“c c cc,c1,c2c1,c2););说明:说明:说明:说明:程序的作用是将两个小写字母a和b转换成大写字母A和B。从ASCII代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码大32。语言允许字符数据与整数直接进行算术运算。运行结果:运行结果:字符输入函数字符输入函数格式:格式:getchar()getchar()功能:从键盘读一字符功能:从键盘读一字符返值:正常,返回输入字符的返值:正常,返回输入字符的ASCIIASCII码值码值;提高练习:输入一个小写字符,然后输出它对应的大写字符字符输出函数字符输出函数格式格式:putchar(ch):putchar(ch)参数参数:ch:ch为字符常量、变量或表达式为字符常量、变量或表达式功能:把字符功能:把字符chch输出到显示器上输出到显示器上返值:正常,显示输出的字符;返值:正常,显示输出的字符;u C语言无语言无I/O语句,语句,I/O操作由函数实现操作由函数实现#include 包含头文件包含头文件(输入输出输入输出 数学数学)(#include#include)主函数主函数main()main()1 1 定义变量定义变量;2 2 变量赋初值变量赋初值(或输入数据或输入数据);(scanf);(scanf)3 3 科学计算科学计算;4 4 输出计算结果输出计算结果 格式化输出格式化输出;(printf);(printf)顺序结构程序顺序结构程序:从上到下执行从上到下执行v字符字符变量的定量的定义和引用和引用vgetchar()与()与putchar()()vAscii码v字符型与整型字符型与整型变量的关系量的关系小小 结结拓展练习 1、编写一段程序,实现加密,加密方法是显示密码字符是加2数据.2、练习:将整数int i与字符char c,求和*常见错误分析常见错误分析(重点重点)程序调试程序调试l 主要内容主要内容一、常见错误分析例1:#includemain()x=3;y=6;printf(%dn,x+y);1、忘记定义变量。2、输入输出的数据的类型与所用格式说明符不一致。例2:#includemain()int a;float b;a=3;b=45;printf(%f%dn,a,b);3、输入变量时忘记使用地址符。例3:#includemain()int a,b,sum;scanf(%d%d,a,b);sum=a+b;printf(“sum=%d”,sum);*4、输入时数据的组织与要求不符、输入时数据的组织与要求不符用scanf函数输入数据,应注意如何组织输入例4:#includemain()int a,b,sum;scanf(“%d%d”,&a,&b);/运行时输入运行时输入4,5sum=a+b;printf(“sum=%d”,sum);例5:想在屏幕上显示一行信息:input a&b:#includemain()int a,b,sum;scanf(“input a&b:%d,%d”,&a,&b);/运行时输入4,5sum=a+b;printf(“sum=%d”,sum);5、输入函数当作输出函数用。6、语句后面漏分号。C语言规定语句末尾必须有分号。例6:#includemain()int a,b,sum;scanf(“%d,%d”,&a,&b)sum=a+b;printf(“sum=%d”,sum)7、对应该成对儿出现的符号,丢失后一半。例7:#includestdio.hmain()char str;scanf(“%s,str”);printf(“%s,