资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/4/3 Sunday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,首页,C,语言教学,幻灯片版,第三章 数据输入与输出,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,4/3/2022,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/4/3 Sunday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/4/3 Sunday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,4/3/2022,#,你现在所处的位置在:,首页,C,语言教学,幻灯片版,第二章 数据描述,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/4/3 Sunday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/4/3 Sunday,#,5-2 单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北京理工大学 www.bit9.dhs.org/,共 110,页 第,#,页,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/4/3 Sunday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/4/3 Sunday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,C,语言程序设计,第,6,章 数 组,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,C,程序设计,第,6,章 数 组,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,C,语言程序设计,第,6,章 数 组,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,高级语言程序设计,#,单击此处编辑母版标题样式,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,高级语言程序设计,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,高级语言程序设计,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,C,语言程序设计,第一部分 计算机和系统,一、计算机硬件设备,光驱,硬盘,二、计算机结构,冯,.,诺依曼结构,:,计算机,运算器,控制器,存储器,主机:,I/O,设备:键盘、显示器等,中央处理器,CPU,存储器,三、计算机软件系统结构,一、应用领域,1,、嵌入式,2,、计算机应用,3,、网络应用,第二部分,C,语言的应用,二、,C,语言是有前途的,三、学习方法:学习计算机的逻辑思维,最流行的计算机语言:,面向过程的语言:,BASIC、C、,面向对象的语言:,JAVA,、,C+、PASCAL、FORTRAN、,智能化语言(,LISP、Prolog、OpenCyc、Fazzy)、,制作网页的动态语言,(ASP,、,Python、PHP、Ruby、Lua),最潮的语言,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.Ritchie,C,标准,标准,C:K&R,合著,The C Programming Language,ANSI C:1983,年,87 ANSI C:1987,年,1990,年国际标准的,ANSI C,C,语言发展过程,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,的值*/,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,语言的主体就是,函数,宋春晖,2025年4月30日,初识,C,语言,目标,了解,C,程序的一些基本概念,了解,C,程序的构成,了解,C,程序的特点,了解,C,程序的三大基本结构,掌握,C,程序的编译和运行过程,使用,Visual C+6.0,创建,C,程序,一、基本概念,1,、程序(,program,):为解决某一问题而设计的一系列指令,能被计算机识别和执行。,2,、程序设计语言:人与计算机打交道时交流信息的一类媒介和工具,由语句组成。,-C,语言,3,、语句,:,组成程序的基本单位,日常生活中的程序,程序:为解决某一问题而设计的一系列指令,能被计算机识别和执行。,1.,带上存折去银行,2.,填写取款单并到相应窗口排队,4.,银行职员办理取款事宜,5.,拿到钱并离开银行,3.,将存折和取款单递给银行职员,银行,什么是语句,二、,C,程序的构成,1,、,C,语言是结构化的程序设计语言。,2,、,C,程序是由函数构成的。一个,C,源程序至少包含一个,main,函数,也可以包含一个,main,函数和若干个其他函数。因此,,函数,是,C,程序的基本单位。,3,、一个函数由两部分组成,:,函数的首部,函数的第一行。包括函数名、函数类型、函数属性、函数参数,(,形参,),名、参数类型。,函数体,即函数首部下面的大括弧,.,内的部分。如果一个函数内有多个括弧,则最外层的一对,为函数的范围。,二、,C,程序的结构,4,、,一个,C,程序总是从,main,函数开始的,而不论,main,函数在整个程序中的位置如何(,main,函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前,在另一些函数之后,),。,5,、,C,程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。,6,、每个语句和数据定义的最后必须有一个分号。分号是,C,语句的必要组成部分。分号不可少。,7,、,C,语言本身没有输入输出语句。输入输出的操作是由库函数,scanf,和,printf,等函数来完成的。,8,、可以用,/*/,对,C,程序中的任何部分作注释。,三、,C,程序的三大结构,1,、顺序结构,三、,C,程序的三大结构,2,、选择结构,三、,C,程序的三大结构,3,、循环结构,满足,判断表达式,循环体,不满足,跳出循环,四、,C,程序的编译和运行过程,/*example1.1 The first C Program*/,#include,main(),printf(“,您好,欢迎进入,C,语言世界,!”),;,注释,编译预处理,函数,语句,输出:,您好,欢迎进入,C,语言世界,!,五、简单,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,语言的主体就是函数,第一个,C,语言程序,格式特点,1,、,习惯用小写字母,,大小写,敏感,不使用行号,无程序行概念,可使用空行和空格,常用,锯齿,形书写格式,main(),.,.,.,.,.,.,.,#include,main(),int i,j,sum;,sum=0;,for(i=1;i10;i+),for(j=1;jy)z=x;,return(z);,/*,将,z,的值返回,通过,max,带回调用处*/,函数,是组成,C,程序的基本构件,,C,程序由一个或多个函数组成。,一个函数由两部分组成:,函数说明部分 函数体,函数体:,说明部分,执行部分;,一个,C,程序总是从,main,函数开始执行。必须有且只能有一个主函数,main,(),用“,;,”,作为语句终止符,总结,1,、计算机语言是人与计算机交流的工具。所以要学好,c,语言,就是要做到让,人与计算机,相互理解对方。,2,、善于使用代入的方法,,从计算机角度思考问题,3,、,C,语言是国际上流行的、很有发展前途的计算机高级语言。它既可以用来编写系统软件,也可以用来编写应用程序,4,、,C,语言的主体就是,函数,在屏幕上显示“你好!我是,XXX”welcom.c,2.,按如下格式在屏幕上显示一首诗:,poetry,.c,人生就像一场戏 因为有缘才相聚,相扶到老不容易 是否更该去珍惜,为了小事发脾气 回头想想又何必,别人生气我不气 气出病来无人替,我若气死谁如意 况且伤神又费力,邻居亲朋不要比 儿孙琐事由他去,吃苦享乐在一起 神仙羡慕好伴侣,3.,在屏幕上显示一个心形图形,heart.c,4.,设计一个图形在屏幕上显示,上机操作,复习:,1,、掌握,c,语言程序的,基本结构,2,、初步学会使用,printf,(),函数,3,、熟悉,VC6.0,集成开发环境,4,、能够正确保存,c,程序源文件,让计算机开口说话,常量、变量、数据类型,C,语言的学习阶段,-1,拜师学艺(复习),C,语言的学习阶段,-2,小试牛刀,C,语言的学习阶段,-3,笑傲江湖,C,语言的学习阶段,-4,东方不败,本节学习目标:,认识 关键字 和 标识符,了解 数据类型,能够定义变量并使用变量,使用,printf(),打印变量的值,;,让计算机想什么说什么,必备(背)英语单词,复习:,include,main,stdio.h printf,新词:,int,float,double,计算机软件工作的过程,一、关键字,32,个由系统定义,不能,重作其它定义,的单词,,根据关键字的作用,可分其为,数据类型,关键字、,控制语句,关键字、,存储类型,关键字和,其它,关键字四类。,auto break case char const,continue default do double else,enum extern float for goto,if int long register return,short signed sizeof static struct,switch typedef unsigned union void,volatile while,55,定义:用来标识变量、常量、函数等的字符序列,组成:,只能由,字母、数字、下划线,组成,且第一个字母必须是字母或下划线,大小写敏感,不能使用关键字,长度:最长,32,个字符,命名原则:,见名知意,不宜混淆 如,l,与,I,o,与,0,例,:,判断下列标识符号合法性,sum Sum M.D.John day Date 3days,student_name#33 lotus_1_2_3,char ab _above$123,M.D.John,3days,#33,char,$123,ab,二、标识符,56,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,int,16,-3276832767,short,16,-3276832767,long,32,-21474836482147483647,16,unsigned,int,065535,32,04294967295,unsigned,long,unsigned,short,16,065535,有,float,32,1.0e-371.0e+38,有,double,64,1.0e-3071.0e+308,有,char,8,-128127,无,unsigned char,8,0255,说明,:,数据类型所占字节数随机器硬件不同而不同,上表以,IBM PC,机为例,:,请看,int,和,unsigned int,基本数据类型,57,概念:其值可以改变的量,变量名与,变量值,变量定义的一般格式:,数据类型,变量,1,,变量,2,,,,变量,n;,三、变量,编译程序根据变量定义为其,分配指定字节的内存单元,.,地址,int a=1,b=-3,c;,a,b,c,2,字节,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.c,main(),int num,total;,num=10;,total=num*30;,58,例子,变量定义,输出结果,格式:,printf(“,格式控制串”,输出表,),功能:按指定格式向显示器输出数据,输出表:要输出的数据(可以没有,多个时以“,”,分隔),格式控制串:包含两种信息,1,、格式说明:,%,修饰符,格式字符,,用于指定输出格式,2,、普通字符或转义序列:原样输出,四、格式输出函数,d,i,x,X,o,u,c,s,e,E,f,%,十六进制无符号整数,不带符号十进制整数,十进制整数,指数形式浮点小数,单一字符,字符串,八进制无符号整数,小数形式浮点小数,百分号本身,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(“%”);,567,ff,101,567,A,ABC,5.677890e+02,567.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),打印输出,总结,认识标识符,了解数据类型,int,float,能够定义变量并使用变量,使用,printf(),打印变量的值,;,%d,,,%f,让计算机想什么说什么,拓展训练,1,、已经获取当前发动机转速,2.5k,转,获取当前车速,35km/h,请在仪表盘显示,步骤:,(,1,)定义,float,数据类型变量,zs,cs,(,2,)给变量,zs,cs,赋值;,(,3,)格式化输出,zs,cs,变量的值,复习,认识 关键字 和 标识符,了解 数据类型,能够定义变量并使用变量,使用,printf(),打印变量的值,;,让计算机想什么说什么,一、关键字,32,个由系统定义,不能,重作其它定义,的单词,,根据关键字的作用,可分其为,数据类型,关键字、,控制语句,关键字、,存储类型,关键字和,其它,关键字四类。,auto break case char const,continue default do double else,enum extern float for goto,if int long register return,short signed sizeof static struct,switch typedef unsigned union void,volatile while,67,定义:用来标识变量、常量、函数等的字符序列,组成:,只能由,字母、数字、下划线,组成,且第一个字母必须是字母或下划线,大小写敏感,不能使用关键字,长度:最长,32,个字符,命名原则:,见名知意,不宜混淆 如,l,与,I,o,与,0,例,:,判断下列标识符号合法性,sum Sum M.D.John day Date 3days,student_name#33 lotus_1_2_3,char ab _above$123,M.D.John,3days,#33,char,$123,ab,二、标识符,68,概念:其值可以改变的量,变量名与,变量值,变量定义的一般格式:,数据类型,变量,1,,变量,2,,,,变量,n;,三、变量,变量初始化,:,定义时赋初值,例,:,int a,b,c;,float data;,决定分配字节数,和数的表示范围,合法标识符,变量的使用:,先定义,后使用,变量定义位置:,一般,放在函数开头,格式:,printf(“,格式控制串”,输出表,),功能:按指定格式向显示器输出数据,输出表:要输出的数据(可以没有,多个时以“,”,分隔),格式控制串:包含两种信息,1,、格式说明:,%,修饰符,格式字符,,用于指定输出格式,%d,,,%f,2,、普通字符或转义序列:原样输出,四、格式输出函数,例 举例,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(,“,格式控制串,”,,,地址表,),功能:按指定格式从键盘读入数据,存入地址表指定的,存储单元中,并按回车键结束,地址表:变量的地址,,常用,取地址运算符,&,格式字符,:,d,i,o,x,u,c,s,f,e,(与,printf,函数一样),例,scanf(“%d”,输入:,10,则,a=10,一、格式输入函数,输入分隔符的指定,一般以空格、,TAB,或回车键作为分隔符,其它字符做分隔符:格式串中两个格式符间字符,例,scanf(“%d%o%x”,printf(“a=%d,b=%d,c=%dn”,a,b,c);,输入,123 123 123,输出,a=123,b=83,c=291,例,scanf(“%d:%d:%d”,输入,12:30:45,则,12,h,30,m,45,s,例,scanf(“%d,%d”,&a,&b),输入,3,4,则,3,a,4,b,例,scanf(“a=%d,b=%d,c=%d”,输入,a=12,b=24,c=36,基本练习,1,、进行整数 加法运算,sum.c,思路:和,=,操作数,1+,操作数,2,(1),定义,3,个变量,num1,、,num2,、,sum,(2),变量的数据类型是,int,(3),给操作数,num1,num2,输入数值,(4),计算,(5),输出求和结果,提高练习:求矩形面积,分析:面积,=c,*,k,1,、定义,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.c,81,1,、定义常量:,#define,符号常量 常量,2,、使用常量,3,、,scanf,(“格式控制符”,地址列表);,总结,复习,1,、学会输入函数,scanf,(),2,、正确定义并使用常量,告诉计算机应该干什么,运算符与表达式,本节课学习目标,1,、学会使用算术运算符、赋值运算符,2,、能够将数学公式转换为计算机识别的表达式,使用计算机进行科学计算,必备(背)英语单词,复习:,include,stdio.h,main,printf,int,float,double,define,scanf,一、数据类型,86,C,数,据,类,型,基本类型,构造类型,指针类型,空类型,void,定义类型,typedef,字符类型,char,枚举类型,enum,整 型,实型,单精度型,float,双精度型,double,数组,结构体,struct,共用体,union,短整型,short,长整型,long,整型,int,数据类型决定:,1.,数据占内存字节数,2.,数据取值范围,3.,其上可进行的操作,87,二、运算符和表达式,C,运,算,符,算术运算符:(,+-*/%+-,),关系运算符:(,=!=,),逻辑运算符:(!,&|,),位运算符 :(,|&,),赋值运算符:(,=,及其扩展),条件运算符:(,?:,),逗号运算符:(,),指针运算符:(*,&,),求字节数 :(,sizeof,),强制类型转换:(类型),分量运算符:(,.-,),下标运算符:(,),其它 :(,()-,),88,基本算术运算符:,+,-,*/%,结合方向:从左向右,优先级:,-,-,*,/,%,-,+-,(1)(2)(3),说明:,“,-,”,可为,单目,运算符时,右结合性,两整数相除,结果为整数,%,要求两侧均为整型数据,1,、算术运算符和表达式,例,5/2 =,-5/2.0 =,例,5%2 =,-5%2 =,1%10 =,5%1 =,5.5%2,2,-2.5,1,-1,1,0,(,),练习:,1,、编写程序,把,500min,换算成用小时、分钟联合表示。,2,、编写程序,输入一个三位数,输出百位、十位、个位。,89,90,作用:使变量值加,1,或减,1,种类:,前置,+i,-i (,先执行,i+1,或,i-1,,再使用,i,值),后置,i+,i-(,先使用,i,值,再执行,i+1,或,i-1,),2,、自增、自减运算符,+-,例,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,、赋值运算符,=,92,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=ax,2,+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=|-x,5,|,转化为,y,=fabs(-pow(x,5),5,、,sin(n)+3(a-5)b,转化为,sin(n)+(3*(a-5)*b,93,94,#include(,或者同时包含,math.h),main,(),1,、定义变量;,2,、输入变量值;,3,、科学计算;,4,、打印计算结果;,三、科学计算程序编程顺序,用算术运算符和括号将运算对象,(,也称操作数)连接起来的、符合语法规则的式子,,称为算术表达式。,练习,1,、输入整数,x,,输出其绝对值,#include,#include,main(),1,、定义变量;,2,、输入变量值;,3,、科学计算;,4,、打印计算结果;,95,int x,y;,scanf(%d,y=fabs(x);,printf(%d,的绝对值是,%d,x,y);,/*sanjiao.c*/,#include,#include,main(),float a,b,c,s,area;,scanf(%f,%f,%f,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,2,方程的根。,a,,,b,,,c,由键盘输入,设 。众所周知,一元二次方程式的根为,x1=x2=,拓展练习,:,待解决问题,#include#include void main()/,定义浮点型变量,/,输入系数,/,根据公式 计算,x1,/,根据公式 计算,x2,printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);,求,x,2,方程的根。,#include#include void main()float a,b,c,x1,x2;scanf(a=%f,b=%f,c=%f,x2=-b/(2*a)-sqrt(b*b-4*a*c)/(2*a);,printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);,求,x,2,方程的根。,科学计算,常用数学函数,包含头文件,(,输入输出,数学,),(,#include,),主函数,main(),1,定义变量,;,2,变量赋初值,(,或输入数据,);(scanf),3,科学计算,;,4,输出计算结果 格式化输出,;(printf),顺序结构程序,:,从上到下执行,#include,#include,main(),float a,b,c,s,area;,scanf(%f,%f,%f,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,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,字符型处理,char,字符常量的定义和存储(重点),输入字符,getchar,()与输出字符,putchar,(),Ascii,码(难点),本节学习目标,数据类型,基本类型,构造类型,指针类型,(,),空类型,(void),字符型,(,char,),数值类型,枚举类型,(enum),数组类型,(),结构体类型,(struct),共用体类型,(union),整型,(,short,int,long,unsigbed),实型,单精度型,(,float,),双精度型,(double),C,语言的数据类型,一、字符型数据,1.,字符型常量,(1),用单引号包含的一个字符是字符型常量,(2),只能包含一个字符,例,a,A,1,abc,、,“,a,”,2,、字符型变量,注意,:,语言还允许使用一种特殊形式的字符常量,就是以反斜杠,“,”,开头的,转义字符。,字符变量,的类型关键字为,char,,一般占用,1,字节内存单元。,char,ch,ch1;,/,定义字符型变量,ch=a;,/,给字符型变量赋值,ch1=3;,其它如下表,:,字符形式,n,t,v,b,r,f,功能,换行,横向跳格(即跳到下一个输出区),竖向跳格,退格,回车,走纸换页,反斜杠字符“”,单引号,(,撇号,),字符,练习,1:zifu1.c,#include void main()char c1,c2,c3;c1=a;c2=b;c3=n;printf(“%c%c%c”,c1,c2,c3);,运行结果:,二、,ASCII,码,在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示,1,和,0,),例如,像,a、b、c、d,这样的,52,个字母(包括大写)、以及,0,、,1,等数字还有一些常用的符号(例如*、,#,、,等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用,相同的
展开阅读全文