C语言程序设计项目教程(PPT 200页).ppt_第1页
C语言程序设计项目教程(PPT 200页).ppt_第2页
C语言程序设计项目教程(PPT 200页).ppt_第3页
C语言程序设计项目教程(PPT 200页).ppt_第4页
C语言程序设计项目教程(PPT 200页).ppt_第5页
已阅读5页,还剩196页未读 继续免费阅读

下载本文档

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

文档简介

msrongxuan,C语言程序设计项目教程,化学工业出版社,化学工业出版社,C语言概述,C语言的产生和发展C语言和其他计算机语言的比较C语言的特点C语言程序设计举例C语言的结构特点Visual.开发工具练习题,本章主要内容:,引言,C语言的原型ALGOL60语言。(也称为A语言)1963年,剑桥大学将ALGOL60语言发展成为CPL(CombinedProgrammingLanguage)语言。1967年,剑桥大学的MartinRichards对CPL语言进行了简化,于是产生了BCPL语言。1970年,美国贝尔实验室的KenThompson将BCPL进行了修改,起名“B语言”。1972年,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了一种新的语言,这就是C语言。1978年由美国电话电报公司(AT,主函数开始,主函数体开始标志,C语句,主函数体结束标志,程序代码:,分析几个简单的C程序,【例0.2】编写程序求解123+456的和。#includemain()inta,b,sum;a=123;b=456;sum=a+b;printf(“sumis%d:n”,sum);,定义变量,所有的变量的定义都要放在程序的声明部分,“=”赋值语句,念做123赋值给a,预处理命令,为调用printf()函数注意:没有“;”,四、C语言的格式及结构特点,分析几个简单的C程序,运行后输出:sumis579,#include#definePI3.1415926main()floatr,a,c;r=2.5;/*输入圆的半径*/a=PI*r*r;c=2*PI*r;printf(“r=%f,a=%f,c=%fn”,r,a,c);,运行后输出:r=2.500000,a=19.634954,c=15.707963,四、C语言的格式及结构特点,练一练:分析下列程序的功能,【例0.4】从键盘输入两个数,求其中的最大值。,被调用的子函数,主函数,四、C语言的格式及结构特点,分析几个简单的C程序,#includeintmax(intx,inty);main()inta,b,c;scanf(“%d,%d”,intmax(intx,inty)intz;if(xy)z=x;elsez=y;return(z);,五、C语言的结构特点,一个C程序由一个或多个函数组成,其中有且只有一个用“main”命名的主函数,程序都是从main函数开始到main函数结束。每个函数由表示开始和结束在其内部包含的是函数体。每个C语句以“;”(分号)结尾。C程序的书写格式比较自由。函数体中可以有定义和执行部分,定义部分必须放在执行部分的前面可以在程序的任何位置用“/*/”对C程序中的任何部分作注释。,练一练:,选择题0.1一个C程序的执行是从_。(A)本程序的main函数开始,到main函数结束。(B)本程序的第一个函数开始,到本程序文件的最后一个函数结束。(C)本程序的main函数开始,到本程序文件的最后一个函数结束。(D)本程序的第一个函数开始,到本程序main函数结束。0.2以下叙述不正确的是_。(A)一个C源程序可由一个或多个函数组成。(B)一个C源程序必须包含一个main函数。(C)程序的基本组成单位是函数。(D)在C程序中,注释说明只能位于一条语句的后面。0.3C语言规定:在一个源程序中,main函数的位置_。(A)必须在最开始(B)必须在所有函数的后面(C)可以任意(D)必须在最后,填空题0.4函数体是有符号_开始,符号_结束。函数体的前面是_部分,后面是_部分。0.5一个C源程序中至少应包括一个_。0.6在一个C源程序中,注释部分两侧的分界符分别为_和_。,练一练:,观察以下程序,指出C程序的错误所在。,#include;main();floatr,s;/*/*risradius*/*/r=5.0s=3.14*r*r;printf(“%fn”,s),main()后面没有“;”,预处理命令,没有;,练一练:,【实验0.1】一个简单的C语言程序编写用printf语句将3个字符串:goodmorning,floppydisk,harddisk显示在计算机屏幕上的程序。【实验0.2】按照要求输入程序,查看程序运行的结果输入并运行下面程序,分析其运行结果。#includemain()printf(和是%f,16.8+27.5);printf(差是%fn,16.8-27.5);printf(积是%f,16.8*27.5);printf(商是%fn,16.8/27.5);,上机实验,【实验0.3】输入并运行下面程序,分析其运行结果。按照下面的程序,输入到VisualC+6.0集成开发环境中,并分析运行结果#includemain()printf(表达式1的值:%fn,99.7*0.26+4.25);printf(表达式2的值:%dn,1/2+1/3+1/4+1/5);printf(表达式3的值:%fn,3.5/(6.1+2.0*(2.9-1.4*2.7);,系统总体设计,C语言的产生和发展C语言和其他计算机语言的比较C语言的特点C语言程序设计举例C语言的结构特点Visual.开发工具练习题,本章主要内容:,第1章,1、关于程序,知识储备,人机能够对话,是因为计算机可以执行程序,人机进行对话所使用的语言,就是程序设计语言,程序是为了使计算机完成指定的任务而编写的具有特定语法规则的指令序列。,C语言就是一种完成程序设计的高级语言。用C语言编写的程序叫做“源程序”,文件为*.c,1.1程序和程序设计,C语言程序编辑与运行流程,注意,上述过程都在IDE(集成开发环境)中进行!,程序员只需要在IDE中完成*.c的源文件的设计和程序的调试,*.obj,*.c,*.exe,2程序设计,用程序设计语言来描述问题的求解过程,以及对其中参与运算的数据进行合理地组织和安排,就叫做程序设计。,分析问题确定算法画流程图编写程序运行调试总结过程,基本步骤,程序设计=数据结构+算法,知识储备,1.1程序和程序设计,有穷性确定性可行性有一个或者多个输入输出,算法描述常见工具:,流程图NS图,1.2算法的概念及描述方法,算法是针对提出的可行方案确定解决问题、完成任务的每一个细节步骤。,好的算法,开始框,一般处理框,判断框,结束框,流程线,1.2算法的概念及描述方法,流程图,N-S流程图,1.2算法的概念及描述方法,1.3C程序设计中的三种基本结构,顺序结构自顶向下,无分支,无转移选择结构有分支,需条件判断循环结构有转移,某些语句可重复执行当型循环直到型循环,(a)流程图表示法,(b)N-S图表示法,1.3C程序设计中的三种基本结构,顺序结构,(a)流程图表示法,(b)N-S图表示法,1.3C程序设计中的三种基本结构,选择结构,当型循环,直到型循环,1.3C程序设计中的三种基本结构,循环结构,主函数子函数语句,自上而下,逐步细化,模块化结构程序设计,1.4函数的定义和使用,主函数:main(),是必须存在且唯一的,是程序执行的入口。从使用角度分:标准库函数:以程序库的形式直接提供给用户使用。stdio.hgets()、printf()math.hsin()、sqrt()用户自定义函数:由用户自己建立定义。,函数的分类,1.4函数的定义和使用,函数的分类,从函数形式分:无参函数:调用函数时主函数不将数据传送给被调函数。用于完成特定功能的操作。如:c=getchar()有参函数:调用函数时在主调函数和被调函数之间有参数传递。如:putchar(c)、puts(str)、,两种函数分类是独立的,注意,实例演示,库函数的使用,题目:求函数的值,x的值通过键盘输入。,#include#includemain()floatx,y;scanf(%f,数学函数:fabs(x):求x的绝对值。sqrt(n):计算n的平方根。,输入输出函数:scanf(),printf()。,调用标准库函数前要求使用include命令包含库函数所对应的头文件。,实例演示,无参函数的定义及调用,#includevoidprint_star();voidprint_text();main()print_star();print_text();print_star();voidprint_star()printf(*n);voidprint_text()printf(GoodMorning!n);,无参函数的定义形式:【类型标识符】函数名()说明部分;语句部分,无参函数的调用:函数语句:print_star();,函数说明:函数要求必须“先定义后使用”,若函数的定义位置在调用之后,要求在主函数的上面要进行函数的原型说明,即说明函数名、函数返回值类型、形参类型及个数等。,函数调用过程示意,实例演示,有参函数的定义及调用,main()inta,b,c;scanf(%d%d,形式参数,实际参数,有参函数定义形式:类型返回值的类型名函数名(类型名形式参数1,类型名形式参数n)说明部分;语句部分;,函数调用格式:作为表达式出现在任何允许表达式出现的地方,参与运算。,函数调用及return语句执行图示:,main()inta,b,c;scanf(“%d%d”,intmax(intx,inty)intz;if(xy)z=x;elsez=y;return(z);,主调函数,被调函数,实例演示,有参函数的定义及调用,函数调用的三种方式,按照函数在程序中出现的位置来分;作为表达式出现在任何允许表达式出现的地方,参与运算。如:c=max(a,b);作为一条独立的语句完成特定的操作。如:printf(max=%dn,c);作为函数的参数被其他函数调用。如:printf(“%sn”,strcpy(str1,”Redrose”);,知识归纳:,知识归纳:,函数的返回值是通过return语句传递的。return语句的一般形式:return表达式;return(表达式);,函数返回值的注意事项,返回值类型要与函数类型一致函数类型缺省时,系统自动按整型处理。一个函数中可以有若干个return语句,流程执行到哪里,就从哪里返回主调函数。若函数体内没有return语句,则执行函数到末尾,然后返回主调函数。当不需要返回值的时候,可以用void定义函数为空类型,表示无返回值。,知识归纳:,调用函数与被调函数的相对位置关系,如使用库函数,一般应在文件开头用:include函数调用遵循“先定义后调用”的原则。一般被调函数放在调用函数之前定义。若被调函数在调用函数之后定义,就必须在调用函数中对被调函数加以如下说明:类型名被调函数名(参数类型1,参数类型2,参数类型n);,知识归纳:,#includeintisleap(intyear)intflag;f(year%400=0|(year%4=0,练一练:,分析下面程序功能,结构,函数定义及调用过程。,练一练:,分析下面程序功能,结构,函数定义及调用过程。,voidpchar()printf(*n);doublearea(doubler)doubles;s=3.14*r*r;returns;doublevolume(doublear,doublehgt)doublevol;vol=ar*hgt/3;returnvol;,#include#includedoublearea(double);doublevolume(double,double);voidpchar();main()doubler,h,s,v;clrscr();pchar();printf(inputtheradiusandheight:);scanf(%lf%lf,练一练:,#includemain()intr1,r2;doubles1,s2,s;r1=2;r2=5;s1=myarea(r1)s2=myarea(r2)s=s2-s1;printf(%lfn,s);intmyarea(doubler)doubles;s=3.14*r*r;,修改错误:,练一练:,#includefloatmyaverage(float,float);main()floatx,y,z;x=12;y=25;z=myaverage(x,y);printf(%lfn,z);,分析下面的程序,写出程序的预期结果。,floatmyaverage(floata,floatb)floatc;c=(a+b)/2;returnc;,练一练:,#include【】/*myarea()函数的原型说明*/【】/*myvolume()函数的原型说明*/main()doubler,h;doubles,v;r=5;h=10;【】/*调用myarea()函数求圆面积*/【】/*调用myvolume()函数求体积*/printf(volume=%lfn,v);,根据程序功能要求,将程序补充完整。,练一练:,doublemyarea(doubler)doubles;s=3.14*r*r;returns;doublemyvolume(doublear,doublehgt)doublevol;vol=ar*hgt;returnvol;,练一练:,程序设计。,设有一个平行四边形,其顶点坐标依次为A(2,2)、B(4,6)、C(8,6)、D(6,2),编写程序,计算两个对角线AC、BD的长度。已知两点坐标(x1,y1)和(x2,y2),求两点间距离的公式为:,程序要求定义函数mylength()计算两坐标点之间的长度。,任务一:“学生成绩管理系统”整体结构设计,功能需求分析,步骤1:,创建文件存放一批学生的成绩。本系统要求每一位学生至少存有4门课程的成绩和总评成绩及平均成绩。实现“添加”、“修改”、“删除”指定成绩记录的操作。能对一个已存在文件进行“打开”、“保存”等操作。能实现“分类查询课程成绩”、“查询全部课程成绩”等查询功能。能对学生成绩进行排名。能统计学生的“奖学金获得情况”,“未获学位情况”,“某门课程的总分及平均分”,“某门课程的学生成绩等级情况”等。菜单界面要求美观,大方,易于操作。能够安全退出系统。整个系统只有一个出口,程序只能通过该出口结束。,分析设计,步骤2:,实验预习,【实验1.1】上机运行以下程序,熟悉函数的调用方法。,main()intx,y,z;x=4;y=12;z=6;fun(x,y,z);printf(“%x=%d;y=%d;z=%dn”,x,y,z);fun(inti,intj,intk)intt;t=(i+j+k)/3;printf(“t=%dn”,t);,main()inti,j,x,y,n,g;i=4;j=5;g=x=6;y=7;n=8;f(n,6);printf(“g=%d;i=%d;j=%dn”,g,i,j);printf(“x=%d;y=%dn”,x,y);f(n,8);f(inti,intj)intx,y,g;g=8;x=7;y=2;printf(“g=%d;i=%d;j=%dn”,g,i,j);printf(“x=%d;y=%dn”,x,y);,实验预习,【实验1.2】上机运行以下程序,了解程序的执行过程。,#includevoidmyswap(int,int);main()intx,y;x=2;y=4;myswap(x,y);printf(x=%d,y=%dn,x,y);voidmyswap(inta,intb)intc;c=a;a=b;b=c;printf(a=%d,b=%dn,a,b);,写出运行以上程序后的预期结果。观察实际输出结果与预期结果是否相符。将函数myswap()中的a和b改为x和y,再观察运行结果,有什么不同。用单步执行的方法,了解程序执行过程中数据的变化情况。,系统数据结构设计及运算,第2章,知识储备,引导:分析C程序组成,2.1常量与变量,一个C程序是由一个或多个函数组成,函数体由若干条C语句组成,那么,C语句又是由什么组成?,主函数函数n,C语句1C语句2C语句n,常量变量,C程序,标识符,#include#definePI3.1415926main()floatr,s,c;r=5;/*输入圆的半径*/s=PI*r*r;c=2*PI*r;printf(“r=%f,s=%f,c=%fn”,r,s,c);,实例演示,常量与变量使用举例,直接常量,符号常量,整型常量:11、25、-1;实型常量:0.2、3.1415,3.0;字符常量:A,a(大小写代表不同的值)字符串常量:“nice”、“good”;,#include#definePI3.1415926main()floatr,s,c;r=5;s=PI*r*r;c=2*PI*r;printf(“r=%f,s=%f,c=%fn”,r,s,c);,实例演示,常量与变量使用举例,变量:,决定了变量的数据结构及分配存储空间的大小。整型变量:存放整型数据实型变量:存放实型数据字符变量:存放字符型数据,标识符是对变量、函数、数组等命名的符号。由英文字母、数字及下划线构成,并且首字符必须为字母或下划线。标识符的种类:关键字:C语言预先规定的标识符,每个都代表着某一固定含义。预定义标识符:预先定义并有特定含义的标识符用户标识符:用户自己命名的标识符。,定义变量的格式:数据类型变量名1,变量名2,变量名n;,分讲:变量的定义,1.C语言允许在定义变量时对变量进行初始化,即对变量赋初值。如:inta=2;等价于inta;a2;2.对变量进行初始化,允许只对定义的变量的一部分赋初值。如:inta,b,c=25;charch1=x,ch2;3.C语言中若有几个变量初值相同,必须分别赋值。如:inta=2,b=2,c=2;不允许:inta=b=c=2;,分讲:变量定义及初始化,变量在初始化之前,他的值是无意义的(值随机),注意,标识符区分大小写,练一练:,练习:请找出不合法的标识符.,unionabc_1232ab3d+babc8*,stu_bc8abcdefghi-s10*/*以十进制格式输出*/printf(%o,%o,%on,x,y,z);/*以八进制格式输出*/printf(%x,%x,%xn,x,y,z);/*以十六进制格式输出*/,实例演示,整型常量的表示方法,实例演示,整型变量的定义及表示数范围举例,#includemain()inta,b;longc,d;unsignede,f;a=32767;b=1;c=2147483647;d=1;e=65535;f=1;printf(int:%d,%dn,a+b,a);printf(long:%ld,%ldn,c+d,c);printf(unsigned:%u,%un,e+f,e);,运行结果:int:-32768,32767long:-2147483648,2147483647unsigned:0,65535,当各种整型数取最大值时,如果再加1,则超出其所能表示的范围,结果为该类型取值范围的最小值。,整数在内存中的存储方式,正整数:用原码的形式存储,符号位是“0”;负整数:用“补码”的形式存储,符号位为“1”;-1用补码表示为:1111111111111111有符号整型变量的取值范围是-3276832767(TurboC)3.无符号整数:最高位不再是符号位,整个16二进制数都用来存放整数。1111111111111111表示65535,2.2C语言的数据类型,2.实型数据类型,1)实型常量:即实数或称浮点数。以十进制形式表示。实型常量的表示形式小数形式例如:0.15、.15、0.0、123.(注意:必须有小数点!)指数形式小数E(或e)整数说明:“小数”表示实数的数值位,即尾数部分。“E”代表十进制数的基数10。“整数”表示10的乘幂。,注意:字母E之前必须有数字!,2.2C语言的数据类型,2.实型数据类型,2)实型变量,例:floata;a=123456.789;/*a=123456.789063*/doubleb;b=123456.789;/*b=123456.789000*/,实例演示,实型数据表示方法,#includemain()floata,b;doublec,d;a=12345.678;b=1.2345678e4;c=12345.678;d=1.2345678E4;printf(%f,%en,b,a);printf(%f,%en,d,c);,2.2C语言的数据类型,3.字符型数据类型,字符常量概念:把ASCII码字符集里的一个字符用单引号括起来称为字符常量。例如:a(ASCII码97);A(ASCII码65);1(ASCII码49);!(ASCII码33)字符常量的分类一般字符常量转义字符常量,字符常量需要注意的事项区分大小写;例如A和a表示不同的字符常量。单引号内必须要字符:有且只有一个,(空格)也是字符常量a、“a”和a代表不同的意义,注意,2.2C语言的数据类型,3.字符型数据类型,字符变量例:charc1,c2;c1=a;c2=b;,数据在计算机中以二进制形式存放。字符数据在内存单元中存放的是其对应的ASCII码,且一个字符占用一个字节。语言中允许字符常量像整型数据一样参与相关运算。,部分字符ASCII表,实例演示,字符变量举例,main()charc1,c2;c1=a;c2=98;printf(“%c,%dn”,c1,c1);printf(%c,%dn,c2,c2,字符型数据和整型数据是通用的。,实例演示,字符型数据进行算术运算,#includemain()charc1,c2;c1=a;c2=A;c1=c1-32;c2=c2+32;printf(%c,%cn,c1,c2);,1.程序最终运行结果如何?,2.若以整数形式输出变量c1,c2,则格式说明符应改为?,思考问题,实例演示,转义字符的使用,73,例转义字符举例main()printf(101x42Cn);printf(Isay:Howareyou?n);printf(CProgramn);printf(TurboC);,运行结果:(屏幕显示)ABCIsay:”Howareyou?”CProgramTurboC,例main()printf(“Yb=n”);,运行结果:屏幕显示:=,实例演示,利用字符型数据输出键盘上没有的字符,编写程序输出如下图形:,#includemain()charcx=30printf(%cn,cxprintf(%c%cn,cx,cx);printf(%c%c%cn,cx,cx,cx);printf(%c%c%c%cn,cx,cx,cx,cx);,思考:能否用以下语句实现?cx=;Printf(“%cn”,cx);,概念:字符串常量是指用一对双引号括起来的字符序列。如“Hello”、“good”等。字符串常量的存储:系统自动在字符串的末尾加上一个字符串结束标记0,以此判断字符串是否结束。程序中长度为n个字符的字符串常量,在内存中需要用n+1个字节空间来存储它。举例:字符串“string”的存储。,2.2C语言的数据类型,字符串常量,字符常量与字符串常量的区别,二者表示形式不同。字符常量的定界符是,而字符串常量的定界符是“”。如:a是字符常量,而“a”是字符串常量。存储空间不同。一个字符常量只占1个字节,而一个含有单个字符的字符串常量需要占用2个字节。如:a在内存中只占1个字节,“a”则需占用2个字节空间。不允许将一个字符串常量赋给一个字符型变量。如:ch=a;是正确的,而ch=“a”;不是将字符a赋值给变量ch。字符常量中是不允许空白,字符串常量允许空白“”,称为“空串”。,练一练:,一.选择题1.下面四个选项中,均是不合法的用户标识符的选项是:AP_0dofloatla0_Ab-agotoint_123tempINT2.在C语言中,char型数据在内存中的存储形式是:(A)补码(B)反码(C)原码(D)ASCII码3.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围是:(A)0255(B)032767(C)065536(D)021474836474.下面不正确的字符串常量是:(A)abc(B)“1212”(C)“0”(D)“”,5.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为:charintlongint=floatdoublechar=intlongint=floatdoublecharintlongint=float=doublechar=int=longint、intb=3;printf(“%dn”,a/b);分析程序运行结果为?,运行结果为7,而不是7.333333,为什么?,除法运算符的操作数整数实数两个整数相除,结果为整数;两个实数相除,结果为实数。,例5/2=22-5.0/2.0=-2.5,例5/2=-5.0/2.0=,两个整数相除,结果为整数;被除数或除数为实数,则相除结果为实数。,实例演示,除法和求余运算符的运算规则,说明:表达式ab的运算结果为a除以b的余数,条件是a、b必须为整数。,例15%5=5%2=-5%2=5%-2=5.5%223%10=若0赋值运算符。自身运算符中:,=的级别高于=,!=。关系表达式的值:是逻辑值“真”或“假”,用1和0表示。,例:关系运算符的优先级及结合方向。ca+b/c(a+b)ab!=c/(ab)!=ca=bc/a=(bc),例:设inta=3,b=2,c=1,d,f;分析下列关系表达式的值。ab(ab)=cb+cbf=abc,实例演示,关系运算符优先级及运算过程,/表达式值1,/表达式值1,/表达式值0,/d=1,/f=0,4.图表讲解:逻辑运算符及表达式,优先级:结合方向:,!:从右向左b=5;!aak=+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;a=9;b=-a-;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,实例演示,自增、自减运算符优先级及运算过程,/a=8,b=-9,自增、自减运算小结:,自增运算符和自减运算符是单目运算符,且只能用于单个变量,不能对常量或者表达式操作;自增运算符和自减运算符的操作数可以是整数或者实数;当前置运算或者后置运算与其他运算结合在一个表达式中时:前置运算:先增值后引用后置运算:先引用后增值“+”和“-”的运算结合方向是从右到左。,6.图表讲解:逗号运算符、逗号表达式,逗号运算符:“,”,即顺序求值运算符。逗号表达式:用逗号把若干独立的运算表达式结合成一个运算表达式,称为逗号表达式。逗号表达式的一般形式:表达式1,表达式2,表达式n求解过程:先求“表达式1”,再求“表达式2”,最后求“表达式n”。整个表达式的值为“表达式n”的值。,实例演示,逗号运算符的使用,#includemain()inta=10,b=10,c=0,d=0,k=0;c=a+;d=b-;k=(a*b,+a,-b);printf(a=%d,b=%d,c=%d,d=%d,k=%dn,a,b,c,d,k);,解题步骤:求表达式1:计算a*b。求表达式2:再计算+a。求表达式3:最后计算b。写结果:逗号表达式的值赋值给k。,逗号表达式可以作为赋值运算中的表达式。逗号运算符的结合方向是从左到右。逗号运算符是所有运算符中级别最低的。,图表:各运算符的优先级。,C语言中的优先级从高到低分为15级。运算符的一般顺序:先运算优先级别高的,再运算优先级别低的。对于优先级别相同的运算符,按其结合方向执行。,优先级分级一般规律:单目运算符优先级最高,双目次之,三目较低。双目运算符中,算术运算符较高,关系次之,逻辑较低(!除外)。位运算符中,移位运算高于关系运算,位逻辑运算低于关系运算。圆括号运算符优先级最高,逗号运算符最低。,练一练:,1.上机编译下面程序,进行调试。#includemain();/*mainfunction*/floatr;c;r=5.0;c=2r;printf(“%fn”,s),2.写出下列程序的执行结果:#includemain()inta,b,c;c=(a=4,b=a+);printf(“a=%d,b=%d,c=%d”,a,b,c);,练一练:,3.写出下列程序的运行结果:#include#includemain()inta=1,b=2,c=2;floatx=10.5,y=4.0,z;z=(a+b)/c+sqrt(int)y)*1.2/c+x;printf(z=%.2fn,z);,4.写出下列程序的运行结果,运行时,从键盘输入”a,A”:#includemain()charc1,c2;scanf(“%c,%c”,系统菜单界面的设计,第3章,C程序中的输入输出通过函数调用完成。数据输出库函数字符输出函数putchar()格式输出函数printf()数据输入库函数格式输入函数scanf()字符输入函数getchar(),3.1字符输入输出函数,字符输出函数格式:putchar(c);功能:向终端显示器(屏幕)输出一个字符。,字符输入函数格式:getchar();功能:从键盘上接收输入的一个字符,函数的返回值是该字符的ASCII码值,可以赋给字符变量或整型变量。,实例演示,字符输出函数的使用,#includemain()inta=97;charch=a;putchar(a);putchar(n);putchar(ch);,putchar(c)函数说明:c为可以是字符常量、字符变量、字符表达式或者ASCII码。如:putchar(c),putchar(ch),putchar(ch+32),putchar(n),putchar(97),putchar(ch+3)使用时必须在程序开始处注明:#include,/*输出ASCII码值97所对应的字符a*/,/*输出转义字符n,实现换行功能*/,/*输出字符变量ch的值a*/,实例演示,字符输入函数的使用,#includemain()charch;ch=getchar();putchar(ch);,/*从键盘输入字符,返回值赋给变量ch*/,要求用户从终端(键盘)输入单个字符,回车键表示输入结束。返回值:从输入设备上得到的字符。说明:该函数为无参函数。使用该函数,必须在程序开头用预编译命令:#include,/*输出ch对应的字符*/,实例演示,字符输入输出函数举例,#includemain()charch;printf(pleaseinputch:);ch=getchar();putchar(n);if(ch=a,结合流程图分析程序执行过程。,3.2格式输入输出函数,1.格式输出函数printf(),一般形式:printf(格式控制,输出表列);功能:按照指定格式输出指定数据。举例:printf(error!n);printf(%d,%cn,a,a+32);printf(b=%dc=%f,b,c);,“格式控制”是双引号括起来的格式控制转换字符串。,3.2格式输入输出函数,1.格式输出函数printf(),一般形式:printf(格式控制,输出表列);功能:按照指定格式输出指定数据。举例:printf(error!n);printf(%d,%cn,a,a+32);printf(b=%dc=%f,b,c);,“输出表”中的数据,要与“格式控制”中的格式字符一一对应,图表讲解:格式字符及功能,练一练:,1.执行下面程序,注意输出格式:,main()inta=12,b=-3456;longintc=123456;printf(%5dn,a);printf(%2dn,b);printf(%dn,b);printf(%ldn,c);,运行结果:12-3456-3456123456,d:按照整型数据的实际长度输出。md:以m指定的字段宽度输出,默认右对齐。ld:输出长整型数据。mld:输出指定宽度的长整型数据。,练一练:,2.执行下面程序,注意输出格式:,main()inta=1,b=-1;printf(a:%8d,%8o,%8xn,a,a,a);printf(”b:%8d,%8o,%8xn,b,b,b);,运行结果:a:1,1,1b:-1,177777,ffff,“%o,%x”功能:将内存单元中的二进制数补码直接转换成八进制数或十六进制数输出,不带符号位。说明:同“d”类似,可以用“mo”或“mx”指定字段输出宽度。对长整型数可以用“lo”或“lx”格式输出。,inti=-1;printf(“%d,%u”,i,i);,练一练:,3.执行下面程序,注意输出格式:,输出结果:-1,65535,main()charc=M;inti;i=c+32;printf(%c,%dn,c,c);printf(%c,%dn,i,i);,输出结果:M,77m,109,main()printf(%3s,%7.2s,%.4s,%-5.3sn,China,China,China,China);,练一练:,3.执行下面程序,注意输出格式:,运行结果:China,Ch,Chin,Chi,练一练:,4.执行下面程序,注意输出格式:,main()floatx,y;x=111111.111;y=222222.222;printf(%fn,x+y);,运行结果:333333.328125,“%f”功能:以小数点形式输出单、双精度实数。分类:f:数据的整数部分全部输出,默认小数部分输出6位。.nf:不指定总宽度,仅指定小数部分的输出位数%m.f:不输出小数点和小数部分注意:单精度实数的有效位数一般为7位;双精度实数的有效位数为16位。,整数1,默认指数3位,小数点1,指数符号1,默认小数6,e1,printf(“%e”,12.3);,练一练:,5.执行下面程序,注意输出格式:,12.31.231011.230000e+001,功能:以指数形式输出单、双精度实数。“e”输出数据共占13位:,未指定宽度和精度时,由系统指定,右对齐。%,可输出百分号%。在%和格式符之间加“+”,使输出数据带符号。,232323123.450000123.450000123.450000001.23450e+021.23450e+02abcde23%+23,-45,综合练习:,6.分析每条语句的输出结果,3.2格式输入输出函数,2.格式输入函数scanf(),一般形式:scanf(格式控制,地址表);功能:按照指定格式输入任何类型数据。举例:scanf(“%d%d”,格式控制,“地址表列”是若干个地址组成的表列。,注意:如果引号部分变为“d,d”,在输入数据时也必须写成“23,45”的形式输入。若地址表列为“例如:%mdscanf函数不能规定输入数据的精度,没有“.n”的形式。在程序执行过程中输入数据时,以下情况认为数据结束:遇“Space”,或遇“Enter”,或遇“Tab”达到指定的字段宽度有非法输入在按下回车键之前,数据可以改变,按下后,则送入相应数据。用“%c”格式符时,空格和转义字符作为有效字符输入,当格式说明符之间没有任何字符时,在输入数据时,两个数据之间要使用“空铬”、“Tab”或“回车”键做间隔;,如果格式说明符之间包含其他字符、则输入数据时,应输入与这些字符相同的字符做间隔。,实例演示,格式输入函数举例,练一练:,1.分析下列程序的执行结果,以下程序输入123后的执行结果是什么?#includemain()inta,c;charb;scanf(%d%c%d,运行结果:a=1,b=,c=2,练一练:,1.调试程序。#includemain()inta;b;floatc,d;scanf(“%d,%d”,a,b);scanf(“%d,%d”,练一练:,#includemain()charch=a;inta=98;unsignedintb=120;longc=12345678;floatx=3.14;doubley=123.4568;printf(ch=%d,ch=%cn,ch,ch);printf(a=%d,a=%cn,a,a);printf(b=%u,c=%ldn,b,c);printf(x=%f,y=%fn,x,y);printf(x=%e,y=%en,x,y);printf(x=%10.2f,y=%10.2fn,x,y);,2.分析下面程序,分析运行结果:,练一练:,3.分析下面程序,写出程序的运行结果:#includemain()floatx1=7.12,x2=5.38,t;t=x1;x1=x2;x2=t;printf(“x1=%.2f,x2=%.2fn”,x1,x2);,3.3顺序结构程序设计,1.结合实例分析C语言语句类别,#includemain()intx,y,z,t;scanf(%d%d%d,函数调用语句,控制语句,复合语句,表达式语句,空语句,复合语句在功能上相当于一条语句。最后一个分号的位置不在花括号外。复合语句多出现在函数及流程控制语句中。,含义:什么也不做。作用:1)转折点。2)循环语句中的空循环体。,3.3顺序结构程序设计,实例1:由键盘输入两个整数,分别赋给变量a,b。然后交换a,b的值。,#includemain()inta,b,t;printf(pleaseinputa,3.3顺序结构程序设计,实例2:从键盘输入扇形的半径和圆心角度数(要求输入角度),计算扇形的周长和面积。,#include#definePI3.1415main()floatr,a,c,s;printf(pleaseinputr,a:);scanf(%f,%f,指定输出字符的宽度为7个符号位,保留2位小数,左对齐。,3.3顺序结构程序设计,实例3:随机产生一个3位数,计算个位数、十位数和百位数的平方和。,#include#includevoidfunsum(int);main()intn=0,sum=0;randomize();n=random(900)+100;printf(n=%dn,n);sum=funsum(n);printf(thesumofsquares=%dn,sum);getch();,voidfunsum(inti)intib,is,ig;ib=i/100;is=i/10-ib*10;ig=i%10;return(ib*ib+is*is+ig*ig);,randomize()函数的作用是保证每次运行时,random()函数都能产生不同的随机数。randomize()函数应在random()函数前被执行。,random(n)函数的作用是产生0(n-1)的随机数。random(900)产生0899范围的随机整数,所以random(900)+100的取值范围是100900,即随机产生一个3位数。,编写程序,计算如图所示的四边形耕地的面积,已知两个三角形均为直角三角形。,练一练:,系统菜单选择执行程序设计,第4章,C程序中的输入输出通过函数调用完成。数据输出库函数字符输出函数putchar()格式输出函数printf()数据输入库函数格式输入函数scanf()字符输入函数getchar(),4.1if语句使用,一.if语句的三种形式:if(表达式)语句if(表达式)语句1else语句23.if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3else语句n,实例演示,单分支程序设计举例,#includemain()intx,y,z,t;scanf(%d%d%d,题目:输入三个整数x,y,z,请把这三个数由小到大输出。,实例演示,两分支程序设计举例,#include#includemain()intn;floatroot;printf(pleaseenteranumber:);scanf(%d,题目:输入一个数,若为正数,求出它的平方根;若为负数,求出它的复数平方根。,实例演示,多分支程序设计举例,#include#includemain()intx;doubley;printf(pleaseinputx:);scanf(%d,题目:通过键盘输入x,根据下面分段函数,计算y值。,数学函数exp()计算ex,#includemain()charc;printf(Enteracharacter:);c=getchar();if(c=0,练一练:,读一读,分析下列程序功能。,if()if()语句1else语句2elseif()语句3else语句4,4.1if语句使用,二.if语句的嵌套:,使用If语句的嵌套结构时,要注意if与else的就近配对的原则。,含义:在if语句中又包含一个或多个if语句称为if语句。,一般形式:,1、在if子句中嵌套不含else子句的if语句。if(表达式1)if(表达式2)语句1else语句2,练一练:,观察下列if语句嵌套格式,分析if和else的配对关系。,2、在else子句嵌套具有else子句的if语句。if(表达式1)语句1elseif(表达式2)语句2

温馨提示

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

评论

0/150

提交评论