您好,欢迎访问三七文档
第三章顺序结构程序设计【教学要求】1.了解C语言程序的特点:C程序是由函数组成的2.C程序的三种基本结构:掌握C程序的顺序结构、选择结构、循环结构。3.掌握赋值语句构成与使用要点。4.熟练掌握格式输入/输出函数的使用方法。5.能编写简单的顺序结构程序。教学要点1、C语句概述•C程序结构•C语句的构成2、结构化程序的三种基本形式•结构化程序的三种形式:顺序、选择、循环。3、数据的输入与输出•C语言输入输出的实现:C语言没有提供输入输出语句,而是由输入输出函数来实现的。标准的库函数的使用。•输出函数putchar()、printf()的使用。•输入函数getchar()、scanf()的使用。...C程序结构C程序源程序文件1源程序文件2源程序文件n预编译命令函数1函数n说明部分执行部分(语句)C语句的构成1、控制语句:用于完成一定的控制功能。•组成:例:2、函数调用语句:用于完成一次函数调用。•组成:由一次函数调用+“;”构成。•例:printf(“ThisisaCstatement!”);3、表达式语句:用于完成一次表达式操作。•组成:由一个表达式+“;”构成。•例:a=3;i++;等4、空语句:用作被转向点或循环语句中的循环体。•组成:只由一个“;”构成。5、复合语句:完成一些特定的操作功能。•组成:将一些语句用{}括起来构成,在程序中当作一个语句看待。•例:main(){…{z=x+y;t=z/100;printf(“%f”,t);}…}控制语句•条件语句:if条件~else~(或?:)•循环语句:for()~•条件循环:while(){~}•条件循环:do{~}while();•结束本次循环语句:continue•终止循环或switch语句:break•多分支选择语句:switch(){case...;~}•转向语句:goto•由函数返回语句:return结构化程序设计方法1、含义:它要求程序设计者按照一定的结构形式来设计和编写程序。2、引入结构化程序设计方法的原因:使程序易读、易理解、易修改,以提高程序设计和维护工作的效率。3、结构化程序的三种基本结构:顺序结构、选择结构、循环结构。4、结构化程序设计的方法:自顶向下、逐步精化。例:求一组正数中的最大者。求一组正数中的最大者找出这些数中的最大的数打印最大数使max=0逐个读入数据,把最大者送到max中结构化程序的三种形式1、顺序结构程序2、选择结构程序•if~else~选择结构•多分支选择结构(switch)3、循环结构程序•while(){~}循环•do{~}while();循环•for(){~}循环顺序结构程序1、基本结构2、执行过程:先执行A操作,再执行B操作ABAB选择结构程序1、基本结构:2、执行过程:当条件P成立时执行A操作,当条件P不成立时执行B操作。TFBBAAPPFT循环结构程序:当型循环当P条件成立时,反复执行A操作,直到P为假时才跳出循环。TFPA当P为真A循环结构程序:直到型循环先执行A操作,再判断条件P是否成立,若为假,再执行A,直到条件为真跳出循环。PAFT直到P为假A赋值语句1、构成:由赋值表达式加上一个分号(;)构成。如:a=12;2、使用要点:(1)在赋值表达式中,“=”作为赋值运算符;•理解n=n+1的含义与“存储覆盖”的原理(2)区别赋值表达式与赋值语句是两个不同的概念。如:if((a=b)0)t=a;(正确)if((a=b;)0)t=a;(错误)(3)例题:例exp3_1:main(){inta,b;scanf(“%d%d”,&a,&b);if(a=b)c=aelsec=b;printf(“c=%d”,c);}如果输入23,输出为c=3;如果输入32,输出为c=3。putchar()函数1、功能:将一个字符输出到标准输出设备。2、格式:putchar(c)3、使用要点:•putchar(c)中的c可以是字符型或整型数据;c=98;putchar(c)输出字符bputchar(‘a’)输出字符aputchar(0x41)输出字符A•使用输出函数需要调用c的标准I/O库函数,故需用预编译命令:#includestdio.h将stdio.h文件包含在用户源程序文件中;•putchar()也可以输出一个控制字符或其它转义字符。如:putchar(‘\n’)输出一个换行符putchar(‘\101’)输出字符Aputchar(‘\’’)输出字符单引号’4、举例:例exp3_2:#includestdio.hmain(){chara,b,c;a=‘B’;b=‘o’;c=‘y’;putchar(a);putchar(b);putchar(c);}输出结果为:Boyprintf()函数1、功能:按指定的格式向终端输出若干任意类型的数据。2、格式:printf(格式控制,输出表列)如:printf(“x=%d”,x)3、使用要点(1)格式控制部分的用法:(2)输出表列:可以是合法的常量、变量和表达式,输出项表中的个输出项之间要用“,”分隔。(3)当格式符个数少于输出项时,多余的输出项不予输出。若格式符多于输出项时,各系统的处理有所不同,TC对于缺少的项将输出不定值。(4)每次调用printf函数之后,将得到一个整型的函数值,该值等于正常输出的字符个数。4、举例:printf()函数的格式控制1、格式控制字符是用双引号括起来的字符串,用来确定确定输出项的格式和需要原样输出的字符串。其组成形式为:“普通字符串%+0m.nl格式控制字符”其中:•输出数据项的顺序一般按从左至右的顺序输出。格式控制中的普通字符串,照原样输出;如:printf(“a=%d,b=%d”,a,b);•%:为C语言规定的标记符;•+:指定输出数据的对齐方式:+为右对齐(可缺省);-为左对齐;•0:指定输出的数据中不使用的位置是否填数字“0”•关于m.n与l的说明:•格式控制字符用于指定数据的输出形式,可以包含转义字符,•用两个连续的“%%”表示输出字符“%”。2、举例:格式控制字符格式字符说明d以带符号的十进制形式输出整数o以无符号的八进制形式输出整数x以无符号的十六进制形式输出整数u以无符号的十进制形式输出整数c以字符形式输出一个字符s输出字符串f以小数形式输出单,双精度数,隐含输出六位小数e以标准指数形式输出单,双精度数,数字部分六位小数g选用%f或%e格式中输出宽度较短的一种格式输出,不输出无意义的0printf()中的m.nl格式说明符字符说明字母l用于长整型整数,可加在格式符d,o,x,u前面一个正整数m数据最小宽度一个正整数n对实数表示输出n位小数;对字符串,表示截取的字符个数负号‘-’输出的数字或字符在域内向左靠齐(1)printf(“%4d,%4d”,a,b);若a=123,b=12345则输出为:□123,12345如果数据位数小于m,则左端补空格,若大于m,则按实际输出。(2)longa=135790;printf(“%ld”,a);长整型数据应采用%ld格式输出,若采用%d格式则出错。(3)inta=-1;printf(“%d,%o”,a,a);输出为:-1,177777对于八进制输出不会输出带符号的数据,长整型数据用%lo格式输出,也可以指定宽度。如:printf(“%lo,%8o”,a,a);(4)inta=-1;printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1同样,也可以用%lx输出长整型数据或指出输出宽度,如:printf(“%lx,%12x”,a,a)例exp3_3:#includestdio.hmain(){unsignedinta=65535;intb=-2;printf(“a=%d,%o,%x,%u\n”,a,a,a,a);printf(“b=%d,%x,%o,%u\n”,b,b,b,b);}输出为a=-1,177777,ffff,65535b=-2,fffe,177776,65534例exp3_4:字符输出main(){charc=‘a’;intk=97;printf(“%c,%d\n”,c,c);printf(“%c,%d\n”,k,k);}输出为:a,97a,97例exp3_5:输出字符串printf(“%s”,”china”);输出字符串chinaprintf(“%7s\n”,”china”);输出字符串□□chinaprintf(“%3s\n”,”china”);输出字符串chinaprintf(“%5.3s\n”,”china”);输出字符串□□chiprintf(“%-5.3s\n”,”china”);输出为chi□□例exp3_6:实型数据#includestdio.hmain(){floatx,y,z;doublea,b;x=11111.111,y=22222.222,z=123.456;a=1111111111111.111111111;b=2222222222222.222222222printf(“%f\n%f\n”,x+y,a+b);printf(“%10f,%10.2f\n”,z,z);printf(“%e\n”,z);printf(“%g\n”,z);}输出为:33333.3339843333333333333.333010123.456001,□□□□123.461.234560e+02123.456□□□getchar()函数1、功能:从标准输入设备上读入一个字符。2、格式:getchar()3、使用要点:•getchar()函数本身没有参数,其函数值就是从输入设备得到的一个字符;•由getchar()获得的字符可以赋值给一个字符或整型变量,也可以作为表达式的一部分;如:c=getchar(a);putchar(getchar());printf(“%c”,getchar());•使用getchar()函数要调用c的标准I/O库函数,应在程序首部加上:#includestdio.h4、举例:例exp3_7:#includestdio.hmain(){charc;c=getchar();putchar(c);printf(“%c\n%d\n”,c,c);}输入a输出a97scanf()函数1、功能:将从终端(键盘)输入的数据传送给对应的变量。2、格式:scanf(格式控制,输入项地址表)说明:•格式控制的含义同printf函数,“%格式控制字符”•输入项地址表由若干个地址组成,代表每一个变量在内存的地址。表示为:&变量(或数组与字符串的首地址)•每次调用scanf()函数后,函数将得到一个整型函数值,此值等于正常输入数据的个数3、使用要点:4、举例:scanf()函数的使用要点1、格式符的个数必须与输入项的个数相等,数据类型必须从左至右一一对应。2、scanf()函数中常用的格式符有:3、用户可以指定输入数据的域宽,系统将自动按此域宽截取所读入的数据,如:scanf(“%3d%3d”,&a,&b);输入123456系统自动将123赋值给a,将456赋值给b.4、输入实型数据时,用户不能规定小数点后的位数。scanf(“%7.2f”,&a);是错误的.5、输入实型数据时,可以不带小数点,即按整型数方式输入。scanf()函数的使用要点6、从终端输入数值数据时,遇下述情况系统将认为该项数据结束:•遇到空格、回车符或制表符(TAB),故可用它们作为数值数据间的分隔符;•遇到宽度结束,如“%4d”表示只取输入数据的前4列。•遇到非法输入,如:假设a为整型变量,ch为字符型变量,对于:scanf(“%d%c”,&a,&ch);若输入246a,则系统将认为:a=246,ch=a7、在使用%c格式符时,输入的数据之间不需要分隔符标志;空格、回车符都将作为有效字符读入。scanf(“%c%c%c”,&a,&b,&c);输入b□o□yb赋值给a,□赋值给b,o赋值给cscanf()函数的使用要点8、如果格式控制字符串中除了格式说明之外,还
本文标题:c3顺序程序设计
链接地址:https://www.777doc.com/doc-4018509 .html