资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,C,语言程序设计,C,语言程序设计,C,语言程序设计,C,语言程序设计,上一页,下一页,C语言程序设计教程,第3章 顺序结构程序设计,3.1,C,语言的基本语句,3.2 数据输入与输出,3.3 程序举例,第一页,编辑于星期日:五点 八分。,教学目的和基本要求:,要求学生了解语句,尤其是复合语句的概念和使用场合,学会基本输入输出语句。,教学重点:,复合语句、,scanf,与,printf,,,表达式在,printf,中的运用。,第二页,编辑于星期日:五点 八分。,程序设计语言有顺序、选择、循环三种基本的控制结构。,B,A,图,3.1,顺序结构执行流程,顺序结构是最基本的控制结构,其包含的语句是按照书写的顺序执行的,且每条语句都将被执行。程序流程如图,3.1,所示,语句按书写顺序执行。先执行,A,,再执行,B,。,例:#,jinclude,main(),int a=10,x=5,y=6;,a+=a*=6;,x=y+;,y=+x;,a=x+y;,printf(“%d,%d,%d”,a,x,y);,输出:14,8,7,第三页,编辑于星期日:五点 八分。,C,语言的语句可分为以下四类:,简单,语句(包括输入,/,输出语句),空语句,复合语句,流程控制语句。,3.1 C,语言的基本语句,本章将介绍前三种语句。,第四页,编辑于星期日:五点 八分。,3.1.1,简单语句,表达式语句:,由一个表达式加上一个分号构成。,如:,A+;x=1;,p+=q*4+5;y=42?6:1;,空语句:,由一个分号表示,一般形式为:,;,空语句在语法上是一条语句,但执行时不做任何操作。,第五页,编辑于星期日:五点 八分。,C,语言有丰富的标准函数库,可提供各类函数供用户调用,完成预先设定好的操作.,例如调用标准库函数求数学函数值:,sin(x)、cos(x)、exp(x)(,求,e,x,)、fabs(x)(,求,x,的绝对值)、,log(x),等。,3.函数调用语句:,由函数调用表达式加分号构成.,如:,printf(“%d”,a);scanf(“%f”,第六页,编辑于星期日:五点 八分。,调用标准库函数要注意:,在程序中要包含相应的头文件,例如:#,include,#,include,调用规则:函数名(参数表),例如:,y=sin(1.7);x=pow(3,18);,函数调用的实质:,在调用点转去执行一段预先设计好的程序,求出结果后返回调用点。,函数的值又叫函数的返回值。,第七页,编辑于星期日:五点 八分。,如:数学表达式,y=|3sinx+4cosx|+e,x,可以用,C,语言表达式表示为:,其中,,fabs,sin,cos,exp,都属于头文件,math.h,,用到这些函数,必须在程序的预处理语句中用#,include,把数学函数库包含进来。,y=fabs(3*sin(x)+4*cos(x)+exp(x);,第八页,编辑于星期日:五点 八分。,3.1.2 复合语句,语句1;,语句,n;,用一对花括号,把若干条语句括起来,就形成了一条复合语句。形式如下:,花括号中的语句,可以是简单语句、空语句、复合语句、流程控制语句,所有这些语句括在一起,在语法上看成是一条语句,执行时顺序执行花括号中的每条语句。复合语句多用于流程控制语句中。,第九页,编辑于星期日:五点 八分。,3.2,数据输入与输出,C,语言本身不提供输入输出语句,得由标准,I/O,库函数提供。输入输出库函数很丰富,可以从键盘、显示器、磁盘文件和硬件端口进行输入或输出操作。,本节主要介绍用于键盘输入和显示器输出的函数。,第十页,编辑于星期日:五点 八分。,int putchar(int),向标准输出设备(一般为显示器)输出一个字符,并返回返回该字母的,ASCII,码值。参数可以是字符常量、变量或整型常量、变量。,如:#,include,main(),int a=65;char c=d;,putchar(a);putchar(97);putchar(n);putchar(c);,3.2.1 字符输入输出函数,1.字符输出函数,输出为:,Aa,d,第十一页,编辑于星期日:五点 八分。,2.字符输入函数,int getchar(void,),从输入设备(一般为键盘)上输入一个字符。它每被调用一次,就从标准输入设备上取一个字符,返回值是该字符的,ASCII,编码值,可以赋给字符变量或整型变量。,例:#,include,main(),int i,j;char c;,i=getchar();putchar(i);,j=getchar();putchar(j);,c=getchar();putchar(c);,思考:以下三种不同的输入,输出情况如何,?,1.,abcdefg,2.ab,3.a,bcdefg,执行,getchar(),时输入字符以回车结束,同时回车字符也可以做为输入的字符。,注意,第十二页,编辑于星期日:五点 八分。,3.2.2 格式输出函数,前面两条语句非常方便,但一次只能处理一个字符,,格式输出函数可以按规定格式向输出设备(一般为显示器)输出数据,并返回输出的字符数。这个函数可以输出多字信息。,第十三页,编辑于星期日:五点 八分。,格式输出函数的一般形式,printf(“,格式控制字符串”,输出参数表);,用双引号括起来,,控制输出项的格式和输出一些提示信息,可以是一个或多个输出项.,可以是常量或变量表达式,,用逗号分隔。类型可以是整型实型字符型和字符串,型.,具体的讲,,printf,语句,就是把输出参数表中的表达式的值,按照格式控制字符串的格式,依次在指定的位置输出,如果输出位置不够,从左到右依次输出前几个的值。,第十四页,编辑于星期日:五点 八分。,格式输出函数运用示例:,1.,printf(“Its fun!”);,输出:,Its fun!,int a=1,b=2;,printf(“%d,%d”,a,b);,输出:1,2,3.int a=1,b=2;,printf(“a=%dnb=%d”,a,b);,输出:,a=1,b=2,int a=1,b=2;,printf(“%d”,a+b);,输出:3,int a=1,b=2;,printf(“a+b”);,输出:,a+b,第十五页,编辑于星期日:五点 八分。,在,printf,语句的格式控制字符串中,有三类字符:,普通字符:按原样输出,主要起提示作用。,转义字符:指明特定的操作,如,n,换行、,t,横向跳格,格式说明部分:由%引导的格式字符串组成,输出参数表中的表达式,就是按照格式说明部分指定的格式,在格式控制字符串中的相应位置输出的。,格式说明部分的一般格式为:,%flagswidth.precF|N|h|Ltype,在这里,我们对常用的几种形式进行介绍!,第十六页,编辑于星期日:五点 八分。,1.%,type,这是最简单的格式输出说明形式,说明以何种形式输出表达式的值。,d,以带符号的十进制形式输出整数(正数不输出符号),o,以8进制无符号形式输出整数(不输出前导符,O),x(X),以16进制无符号形式输出整数(不输出前导符,Ox),u,以无符号10进制形式输出整数,c,以字符形式输出一个字符,s,输出字符串,f,以小数形式输出单、双精度数,隐含输出6位小数,e(E),以标准指数形式输出单、双精度数,小数位数为6位,g(G),选用%,f,或%,e,格式中输出宽度较短的一种格式,%,百分号,type,字符表,第十七页,编辑于星期日:五点 八分。,实型(,float),(double),表达式值的类型,字符型(,char、unsigned char,),整型(,int、unsigned),type,格式,对应,%,c、%d、%u、%o、%x,%,d、%u、%o、%x、%c,(,long、unsgned long),%,ld、%lu、%o、%x、%c,%,f、%e、%g,%,lf、%e、%g,字符串(,字符串常量、字符数组,),%,s,在字符型和整型之间,输出的,type,格式是可以互换的,而与实型及字符串型则不能。,在%与,type,字符之间加一个字符,l,表示输出长整型或双精度型数据的值。,第十八页,编辑于星期日:五点 八分。,2.,prec,%,f,与%,lf,的输出格式都是在小数点后保留六位数字,有余四舍五入,缺少以0补足。,在,C,语言中,输出实数时可以用在%与,type,符之间加入.,prec,的格式来控制输出的小数位数。,例:,printf(“%.3f,%.2f”,3.1415926,3);,输出为:3.142,3.00,.,prec,也可以加在%与整型、字符型,type,符之间,意义各不一样,此处不作介绍。,第十九页,编辑于星期日:五点 八分。,例:#,include,main(),int a=65,i=-2;char c=a;,float b=1.34576;double d=4.65;,unsigned j=65535;,printf(“n%s”,”hello”);,printf(“n%d,%c,%d,%u,%u,%d”,a,a,i,i,j,j);,printf(“n%.3f,%.4lf”,b,d);,printf(“n%d,%d”,a+i,i+);,输出:,hello,65,A,-2,65534,65535,-1,1.346,4.6500,64,-2,printf,语句输出参数表中的表达式,是先从右到左运算,再从左到右输,出。,注意,第二十页,编辑于星期日:五点 八分。,格式输入函数一般形式,scanf(“,格式控制字符串”,地址列表);,3.2.3 格式输入函数,在,scanf,语句的格式控制字符串中,有两类字符:,普通字符:按原样输入,格式说明部分:由%引导的格式字符串组成,scanf,语句地址列表中的地址,用取址符&加变量名的形式表示,指的是该变量所代表的内存空间的地址。,scanf,语句在运行时,会停下来,等待从键盘输入值依次存入地址列表中的地址空间,即相当于从键盘给变量赋值。,第二十一页,编辑于星期日:五点 八分。,输入数据时要严格按照,scanf,语句中格式控制字符串的形式输入。看下面的例子:,1.,scanf(“%d%d”,输入:1 2回车 或者 1回车2回车,2.,scanf(“%d,%d”,输入:1,2回车,3.,scanf(“a=%d,b=%d”,输入:,a=1,b=2,回车,第二十二页,编辑于星期日:五点 八分。,%*widthF|Nh|Ltype,type,是必须的,表示输入后转换的数据类型。,d(D),十进制整数,o(O),八进制整数,x(X),十六进制整数,i(I),自动根据数头分辨十、八、十六进制,u(U),无符号十进制整数,c,单个字符,s,字符串,f(e,g,G),实数,n,不输入数据,将已读入的字符输送到对应的地址中,%,百分号,type,字符表,scanf,语句格式说明部分的一般格式为:,第二十三页,编辑于星期日:五点 八分。,3.使用,scanf,应注意:,执行,scanf(),输入数据时,在两个数据之间允许以一个或多个空格间隔,也可以用回车键、,tab,键分隔。,实数不许规定精度,像%.4,f,是不合法的。,%后面有*号时,该数据会被禁止使用。,%后面有数字,可以自动截取该长度的数据作为输入值。,如果输入时类型不匹配则停止处理,返回0。,第二十四页,编辑于星期日:五点 八分。,3.3 程序举例,例3.1 输入圆的半径,输出圆的周长和面积。,分析:,1.定义实型变量,r、l、s,用于存放半径、周长、面积;,2.调用输入函数,输入,r:,3.,分别利用周长公式和面积公式求出,l、s;,4.,调用输出函数输出,l、s。,第二十五页,编辑于星期
展开阅读全文