C语言程序设计的概念.ppt_第1页
C语言程序设计的概念.ppt_第2页
C语言程序设计的概念.ppt_第3页
C语言程序设计的概念.ppt_第4页
C语言程序设计的概念.ppt_第5页
免费预览已结束,剩余46页可下载查看

下载本文档

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

文档简介

C语言程序设计,李金莲,课程内容,C语言程序设计的概念基本数据类型C语言程序的流程控制模块化程序设计数组指针用户定制数据类型文件,第一章C语言程序设计的概念,程序与程序设计语言C语言及其标准C语言程序概要VS2005集成开发环境,1.1程序与程序设计语言,计算机与程序算盘与现代计算机程序:按一定顺序安排的工作步骤记忆功能控制部件操作英国数学家CharlesBabbage研制差分机,1.1程序与程序设计语言,计算机程序设计语言机器语言CPU指令系统是该CPU能识别的一组由0和1序列所构成的指令码例:10000000(进行一次加法运算)10010000(进行一次减法运算)优点:能被机器直接理解和执行缺点:不直观,难理解,只能被少数专业人员掌握编写效率低,质量难保证,1.1程序与程序设计语言,计算机程序设计语言汇编语言20世纪50年代中期用“助记符号”代替0,1,这种用助记符号描述的指令系统称为符号语言或汇编语言例:A+B=A或ADDA,BA-B=A或SUBA,B优点:程序生产效率和质量有所提高缺点:机器不能直接识别、理解和执行劳动强度依然很大,1.1程序与程序设计语言,计算机程序设计语言高级语言使用接近人类自然语言、但又消除了自然语言中的歧义性的语言来描述程序,如1954年出现的Fortran优点:不需要熟悉机器内部结构,精力集中于解题思路和方法缺点:机器不能直接识别、理解和执行发展迅速,种类繁多,52,FORTRAN,1.1程序与程序设计语言,高级语言程序的开发过程,1.1程序与程序设计语言,编译与链接,1.1程序与程序设计语言,程序的测试与调试以程序有错为前提编写程序文档程序功能所需输入数据的类型、格式和取值范围所需使用的文件数量、名称、内容以及存放位置程序运行所需的软/硬件环境程序的装载、启动方法以及交互方式等,1.1程序与程序设计语言,程序的维护主要原因在于:程序未能完全满足用户需求用户需求的变更程序中存在Bug,1.2C语言及其标准,C语言的发展历程,1.2C语言及其标准,C语言的标准,1.3C语言程序概要,函数语句名字与声明变量及其赋值算术运算,1.3C语言程序概要,函数,例1.1输出字符串/*文件名:ex1_01.c*/#includeintmain(void)printf(“Programmingisfun.”);return0;,函数,编译预处理命令,函数体,1.3C语言程序概要,问题1:请编写一个程序,显示以下两行文字Iamastudent.IloveChina.,1.3C语言程序概要,例1.2计算两个整数2、3相加的结果/*文件名:ex1_02.c*/#includeintadd(int,int);/*声明将要使用的函数add()*/intmain(void)ints;/*声明将要使用的变量s是整型的*/s=add(2,3);/*调用add()进行计算,并用s接收结果*/printf(“Thesumis:%d”,s);/*输出s的值*/return0;intadd(inta,intb)/*函数add()的定义*/intsum;/*定义一个整数sum,用于存放和*/sum=a+b;/*将a和b求和,并把结果赋给sum*/returnsum;/*返回sum的值到调用程序*/,1.3C语言程序概要,1.3C语言程序概要,变量及其类型ints;intsum;函数的声明intadd(int,int);让编译器知道该函数的原型头文件printf()函数的参数控制串:直接输出字符+格式字符赋值运算符,1.3C语言程序概要,问题2:编写一个程序,求三个数之和。,1.3C语言程序概要,例1.3编写C语言程序,计算一个数的正弦值。/*ex1_03.c*/#include#includeintmain(void)floatx;/*定义x为浮点型变量*/x=sin(0.19199);/*调用sin函数*/printf(“%fn”,x);/*调用printf函数,输出x的值*/return0;,1.3C语言程序概要,函数学习小结:C语言程序由函数组成;函数由声明和语句组成主函数必须设计,C语言程序的执行是从系统调用主函数开始的主函数的部分功能可通过其他子函数补充实现库函数的使用(#include),1.3C语言程序概要,语句表达式语句表达式由运算符、变量和常量组成如:s=add(2,3)、sum=a+b、x=sin(0.19199)表达式加上语句结束符(;)就构成了表达式语句运算符如:+、=变量如:s、sum、a、b、x常量如:2、3、0.19199正确使用运算符的注意点:含义,如:=优先级结合性,如:2*3/5,1.3C语言程序概要,语句流程控制语句,例1.4由键盘输入两个数,输出其中的较大数#includefloatmax2(floatx,floaty)floatmax;if(x=y)max=x;elsemax=y;printf(“Themaxis:%f”,max);returnmax;intmain(void)floata,b;printf(“Inputtworealnumbers:n”);scanf(“%f%f”,1.3C语言程序概要,问题3:编写一个程序,输入5个整数,找出最小值,并输出,#includeintmain(void)inta,b,c,d,e;scanf(%d%d%d%d%d,例1.5求累加和的值#includeintsigma(intn)inti=0,sum=0;while(i=n)i+;sum=sum+i;returnsum;intmain(void)intm,total;scanf(“%d”,块语句,1.3C语言程序概要,语句块语句:用一对花括号括起来的语句,1.3C语言程序概要,名字与声明标识符标识符,如:变量名、文件名、函数名标识符应遵循的词法规则:由大小写字母、数字和下划线组成的序列,但不能以数字开头,如:aAAb_Ax_aXa_xabcd,而5AA-3都是不符合要求的区分同一字母的大小写,如abc与abC是不同的标识符C89规定C编译器能识别的标识符长度不超过31个有效字符,C99规定为不超过63个有效字符普通标识符不能使用对于系统有特殊意义的名字,1.3C语言程序概要,名字与声明关键字,1.3C语言程序概要,问题4:下列哪个选项可以全部用作变量名?A)a3Bb5_e_2MainB)+adayOK?MAXNUMBERC)i*jnext_day*xD)if$a3c-b,1.3C语言程序概要,名字与声明程序中使用“好”名字的原则:尽量做到“见名知义”尽量避免使用容易混淆的字符,如:0(数字)-O(大写字母)-o(小写字母)1(数字)-I(大写字母)-i(小写字母)2(数字)-Z(大写字母)-z(小写字母)名字不要过短,函数名一般采用动宾结构,如PrintCalendar、IsPrime等匈牙利命名法(P.17),1.3C语言程序概要,名字与声明声明的作用:告诉编译器,一个名字与哪个实体相关联告诉编译器及程序员该实体的类型告诉编译器,该实体何时建立,在什么范围内可用在使用一个程序实体之前,一定要让编译器知道该程序实体的属性声明在程序中的位置,声明可以出现在程序中的任意一行声明属于非执行语句,表达式和流程控制语句属于执行语句,1.3C语言程序概要,变量及其赋值变量是一种程序实体,它具有一个值,这个值可以通过程序操作来改变变量的赋值运算赋值运算符=右操作数可以是一个表达式,左操作数只能是变量“自右至左”的结合性赋值运算的过程inta;a=2.6;printf(“%d”,a);运行结果为:2,1.3C语言程序概要,变量的赋值运算如:,inta=2,b=3;a=a+b;,1.3C语言程序概要,赋值运算符的结合性如:,inta=0,b=0,c=0;a=b=c=5+3;,inta=0,b=0,c=0;a=(b=(c=(5+3);,1.3C语言程序概要,1.3C语言程序概要,算术运算符C语言中算术运算符与数学中算术运算符的区别:运算符符号有所不同,如:=运算符种类有所不同,如:%结合性可能会破坏交换律,1.3C语言程序概要,例1.6分析下面程序的运算结果#includeintmain(void)printf(“300*2/3=%dn”,300*2/3);printf(“2/3*300=%dn”,2/3*300);return0;,1.3C语言程序概要,问题5:下列程序的运行结果,#includeintmain(void)intx;x=-3+4*5-6;printf(%dn,x);x=3+4%5-6;printf(%dn,x);x=-3*4%-6/5;printf(%dn,x);x=(7+6)%5/2;printf(%dn,x);return0;,A)11101,B)11-201,C)11101.5,1.3C语言程序概要,自反算术赋值运算符结合方向:自右向左优先级较低,a=a+b,a+=b,-=(自反减赋值)*=(自反乘赋值)/=(自反除赋值)%=(自反模赋值),c=b*=a+2;,b=b*(a+2);c=b;,1.3C语言程序概要,自加和自减运算,i=i+1i=i-1,i+=1i-=1,i+i-,或,+i-i,执行结果相同,1.3C语言程序概要,自加和自减运算符的结合方向是“自右至左”,它的运算对象只能是整型变量,不能是表达式或常数正负号运算符一元运算符:+、-优先级高于*、/结合方向:自右至左,1.3C语言程序概要,赋值运算符的副作用及限制效率与易读性软件危机副作用:对人的副作用对机器的副作用,基本规范:可靠性第一,效率第二,费解、易于误解,不定解,1.3C语言程序概要,c=b*=a+2;,x=i+j;,b*=a;c=b+2;,?,?,x=(i+)+j;,x=i+(+j);,?,采取的措施:将费解处分解加一些“冗余”括号添加注释,x=i+j;i+;,c=b*=a+2;/*c=a+2;c=b*c;*/,1.3C语言程序概要,对机器的副作用当C语言表达式中含有一个以上的赋值类运算符时,交换律不再适用,1.3C语言程序概要,问题6:下列程序的运行结果,#includeintma

温馨提示

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

最新文档

评论

0/150

提交评论