您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 第三章 顺序结构程序设计
第3章顺序结构程序设计三种基本结构1966年,Bohra和Jacopini提出了以下三种基本结构:顺序结构、选择结构、循环结构用这三种基本结构作为表示一个良好算法的基本单元。顺序结构ABab选择结构ABabpYN当p为“真”当p为“假”循环结构Aabp1YWhile型循环N当p1为“真”当p1为“假”PA假真Aabp2NUntil型循环Y当p2为“真”当p2为“假”例3.1在屏幕上显示HelloWorld!分析:要有一般程序的框架;能够在屏幕上显示。教学目的:掌握简单的程序框架;认识简单的输出语句;区分有“\n”和无“\n”的区别。程序实现:#includestdio.h//stdio.h标准输入输出头文件voidmain(){}printf(HelloWorld!\n);C程序的标准框架演示有“\n”和无“\n”的不同(演示)作用:把其后面小括号中双引号内的所有字符全部按顺序显示在电脑屏幕上例3.2求计算机35+80的值分析:要有程序框架;定义变量。教学目的:了解变量并能对变量进行定义。程序实现:#includestdio.h//stdio.h标准输入输出头文件main(){}“%d”用变量a的值替换掉inta=35,b=80;a=a+b;printf(“a=%d\n”,a);定义整型变量(演示)下一页变量代表内存中具有特定属性的一个存储单元,它用来存放数据,这就是变量的值,在程序运行期间,这些值是可以改变的。变量名实际上是一个以一个名字对应代表一个地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。变量变量命名的规定:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。例:sum,_total,month,Student_name,lotus_1_2_3,BASIC,li_lingM.D.John,¥123,3D64,ab变量(续)注意:编译系统将大写字母和小写字母认为是两个不同的字符。建议变量名的长度最好不要超过8个字符。在选择变量名和其它标识符时,应注意做到“见名知意”,即选有含意的英文单词(或其缩写)作标识符。要求对所有用到的变量作强制定义,也就是“先定义,后使用”。变量(续)变量的定义:变量定义的一般形式如下:类型变量名表;这里,类型(type)必须是C语言的有效数据类型。变量名表可以是一个或多个标识符名,中间用逗号分隔,最后以分号结束。以下是一些变量定义的例子:inti,j,num;floata,b,sum;unsignedintui;charc,ch,name;doublex,total;变量(续)变量的赋值:inta=35,b=80;inta=35+80;变量(续)返回例3.3计算表达式35.5×68.4的值。分析:要有程序框架;定义变量。教学目的:定义双精度型变量。程序实现:#includestdio.h//stdio.h标准输入输出头文件main(){}“%g”是double型数据的输出格式,用变量x的值替换掉。通过sizeof()比较整型和实型的长度doublex=35.5,y=68.4;x=x*y;printf(“x=%g\n”,x);定义实数变量(演示)下一页Sizeof()#includestdio.h//stdio.h标准输入输出头文件main(){inta,b;doubled=34.5;a=sizeof(a);b=sizeof(d);printf(“a=%d\n,b=%d\n,d=%g\n”,a,b,d);}输出:从计算机向外部输出设备(显示器,打印机)输出数据。(一)C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的。例如:字符输入函数:getchar字符输出函数:putchar格式输入函数:scanf格式输出函数:printf字符串输入函数:gets字数穿输出函数:puts格式输出(二)在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。例如:在调用标准输入输出库函数时,文件开头应该有:#includestdio.h头文件格式输出(续)(三)格式输出函数函数作用:向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。一般格式:printf(格式控制,输出表列)%d:以带符号的十进制形式输出整数%o:以八进制无符号形式输出整数%x:以十六进制无符号形式输出整数Tobecontinued……格式输出(续)%u:以无符号十进制形式输出整数%c:以字符形式输出,只输出一个字符%s:输出字符串%f:以小数形式输出单,双精度数,隐含输出六位小数%e:以指数形式输出实数%g:选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0格式输出(续)几种常见的格式符的修饰符:L:用于长整型整数,可加在格式符d,o,x,u前面M(代表一个正整数):数据最小宽度N(代表一个正整数):对实数,表示输出n位小数;对字符串,表示截取的字符个数—:输出的数字或字符在域内向左靠格式输出(续)(1)d格式符。用来输出十进制整数。几种用法:①%d:按十进制整型数据的实际长度输出。②%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。例:printf(″%4d,%4d″,a,b);若a=123,d=12345,则输出结果为123,12345③%ld:输出长整型数据。例:longa=135790;/*定义a为长整型变量*/printf(″%ld″,a);格式输出(续)(2)o格式符。以八进制整数形式输出。输出的数值不带符号,符号位也一起作为八进制数的一部分输出。例:inta=-1;printf(%d,%o,a,a);-1在内存单元中的存放形式(以补码形式存放)如下:1111111111111111输出为:-1,177777不会输出带负号的八进制整数。对长整数(long型)可以用“%lo”格式输出。还可以指定字段宽度。例:printf(%8o,a);输出为:177777。(数字前有2个空格)格式输出(续)(3)x格式符。以十六进制数形式输出整数。同样不会出现负的十六进制数。例:inta=-1;printf(″%x,%o,%d″,a,a,a);输出结果为:ffff,177777,-1可以用“%lx”输出长整型数,也可以指定输出字段的宽度。例:“%12x”格式输出(续)(4)u格式符,用来输出unsigned型数据。一个unsigned型数据也可以用%d格式输出;unsigned型数据也可用%o或%x格式输出。(5)c格式符,用来输出一个字符。如:chard=′a′;printf(″%c″,d);输出字符′a′.一个整数,只要它的值在0~255范围内,可以用“%c”使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;一个字符数据也可以用整数形式输出。格式输出(续)3.2变量的赋值与输入语句例3.4求一元二次方程2x2+5x+3=0解分析:求根公式;定义变量;给变量赋值;用语言表示公式;教学目标:把数学语言变成计算机语言。程序实现:#includestdio.h#includemath.hmain(){doublea,b,c,x1,x2,delt;a=2;b=5;c=3;delt=b*b-4*a*c;x1=(-b+sqrt(delt))/(2*a);x2=(-b-sqrt(delt))/(2*a);printf(x1=%g\n,x2=%g\n,x1,x2);}(演示)练习(1)X2+10X+9=0(2)2X2+41X+57=0(3)X2+5X+6=0(4)10X2-71X-119=03.3变量的键盘赋值方法--输入语句例3.5从键盘输入方程的系数并求解。分析:需要通过键盘输入系数;教学目标:掌握基本的输入语句及格式。程序实现:#includestdio.h#includemath.hmain(){doublea,b,c,x1,x2,delt;scanf(“%lf%lf%lf”,&a,&b,&c);delt=b*b-4*a*c;x1=(-b+sqrt(delt))/(2*a);x2=(-b-sqrt(delt))/(2*a);printf(x1=%g\n,x2=%g\n,x1,x2);}(演示)下一页输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据。字符输入函数:getchar格式输入函数:scanf字符串输入函数:gets格式输入格式输入函数函数作用:按照变量在内存的地址将变量值存进去。一般格式:scanf(格式控制,地址表列)同printf函数是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址格式输入(续)例用scanf函数输入数据。#includestdio.hvoidmain(){inta,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%d\n”,a,b,c);}运行情况:345(输入a,b,c的值)3,4,5(输出a,b,c的值)a在内存中的地址&是地址运算符格式输入(续)说明:对unsigned型变量所需要的数据,可以用%u,%d或%o,%x格式输入。可以指定输入数据所占的列数,系统自动按它截取所需数据。输入数据时不能规定精度。格式输入(续)使用scanf函数时应注意的问题:(1)scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。(2)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。(3)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。(4)在输入数据时,遇以下情况时认为该数据结束。①遇空格,或按“回车”或“跳格”(Tab)键;②按指定的宽度结束,如“%3d”,只取3列;③遇非法输入。格式输入(续)返回3.4顺序结构程序设计举例例3.10输入三角形的三边长,求三角形面积。假设:三个边长a,b,c能构成三角形。已知面积公式:area=s=(a+b+c)*0.5c)b)(sa)(ss(s开始输入三边长计算s计算面积结束3.4顺序结构程序设计举例3.4顺序结构程序设计举例#includestdio.h#includemath.hvoidmain(){floata,b,c,s,area;scanf(″%f,%f,%f″,&a,&b,&c);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.2f\n″,a,b,c,s);printf(″area=%7.2f\n″,area);}数学函数库因为要用到其中的sqrt函数运行情况:3,4,6a=3.00,b=4.00,c=6.00,s=6.50area=5.333.4顺序结构程序设计举例例3.11从键盘输入一个小写字母,要求改用大写字母输出。#includestdio.hvoidmain(){charcl,c2;cl=getchar();printf(″%c,%d\n″,cl,cl);c2=cl+32;printf(″%c,%d\n″,c2,c2);}运行情况:A↙A,65a,97
本文标题:第三章 顺序结构程序设计
链接地址:https://www.777doc.com/doc-3227324 .html