《C语言程序设计》第3讲程序设计基础.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《C语言程序设计》第3讲程序设计基础潍坊学院计算机与通信工程学院第3讲程序设计基础本讲主要内容:一、程序的三种控制结构二、基本的输入输出函数三、顺序结构程序设计学习目的与要求:——了解程序的三种控制结构及其特点,能对任何一种结构绘制流程图;——掌握基本输出输入函数的基本格式及其主要用法;——能够设计顺序结构程序。学习重点:printf()和scanf()函数的基本格式及其用法;三种结构的框图表示。学习难点:printf()和scanf()函数的基本格式及其用法;一、程序的三种控制结构(一)概述假若某班有n名学生,开设课程有4门,要求解决如下三个问题:问题1:输入一个学生的4门课的成绩,计算出平均成绩。问题2:输入一个学生的4门课的成绩,若平均成绩不低于90分,则显示“优等示“优等生”,否则显示“要加油啊!”。问题3:按照问题2的标准,统计全班的优等生人数。顺序结构、分支结构、循环结构是C语言程序的三种基本结构。这三种结构互相结合,可以实现程序的任何逻辑控制。应用举例下面给出问题处理的算法描述及对应的流程图。假设a1、a2、a3、a4为4门课的成绩变量,ave为平均成绩变量。问题1:输入一个学生的4门课的成绩,计算出平均成绩的算法描述及流程图表示:步骤①开始步骤②输入一个学生4门课的成绩a1、a2、a3、a4;继续下一步骤;步骤③计算平均成绩(a1+a2+a3+a4)/4.0→ave;继续下一步骤;步骤④输出平均成绩ave;继续下一步骤;步骤⑤结束开始输入成绩计算平均成绩输出平均成绩结束顺序结构表示方法ABAB顺序结构传统流程图顺序结构N—S图问题2:输入一个学生的4门课的成绩,若平均成绩不低于90分,则显示“优等示“优等生”,否则显示“要加油啊!”。步骤①开始步骤②输入一个学生4门课的成绩a1、a2、a3、a4;继续下一步骤;步骤③计算:(a1+a2+a3+a4)/4.0→ave;继续下一步骤;步骤④若ave≥90,则执行步骤⑤;否则执行步骤⑥步骤⑤输出“优等生”,转步骤⑦步骤⑥输出“要加油啊!”;继续下一步骤;步骤⑦结束算法描述流程图分支结构表示方法结束输出:优等生开始输入数据计算平均成绩ave输出:要加油ave≥90YesNoYes条件AB分支结构传统流程图分支结构N—S图AB真条件假真假问题3:按照问题2的标准,统计全班的优等生人数。算法描述流程图Noave≥90?NoYes输如成绩Yes计算平均成绩avecount+1→countresual+1→resualt开始输入学生数n1→count0→resultcount≤n?结束输出result循环结构循环结构表示形式步骤①开始;步骤②设置变量count对输入的学生数计数,count初值为1;设置变量result对优等生计数,初值为0;继续下一步骤;步骤③输入班级学生数n;步骤④若count≤n,则执行步骤⑤;否则转步骤⑩;步骤⑤输入一个学生4门课的成绩a1、a2、a3、a4;继续下一步骤;步骤⑥计算:(a1+a2+a3+a4)/4.0→ave;继续下一步骤;步骤⑦若ave≥90,则继续下一步骤;否则转步骤⑨;步骤⑧result+1→result;继续下一步骤;步骤⑨count+1→count;转步骤④;步骤⑩输出统计结果,结束。条件AB分支结构传统流程图分支结构N—S图AB真条件假真假ABAB顺序结构传统流程图顺序结构N—S图假真A条件当条件为真A先判断条件的循环结构流程图N—S图后判断条件的循环结构流程图N—S图假真A条件当条件为真A3.循环结构1.顺序结构2.分支结构(二)C语言三大结构二、基本的输出输入函数1.格式化输出函数printf2.格式化输入函数scanf3.字符输出函数putchar4.字符输入函数getcharC语言系统没有专门的输出、输入语句,数据的输出、输入功能是通过一些基本的输出、输入函数实现的,这些函数由系统预先定义,并放在一个与标准的输入输出有关的文件中,这个文件的名字是“stdio.h”,称为头文件。C语言的基本输出输入函数有下面四个。使用这些函数时,通常需要在程序的开头用#includestdio.h打开头文件。1.格式化输出函数printf(1)函数格式-0lm.nprintf(“格式控制字符串”,表达式表);要输出的一系列表达式,用“,”分隔。(2)说明用于说明要输出表达式的形式,包括两部分内容:一部分是以“%”开始的格式控制参数,它规定对应表达式的输出格式;另一部分是普通字符或转义字符,对普通字符按原样输出,对转义字符,输出的是其转义后的形式。(3)格式控制参数%dfcsoxu格式字符表3-1%ld%d%f%x%o%u%c%s%5d%-5d%05d%10ld%-15ld%-10.3f%6.4f举例%8s格式控制符功能%d输出一个十进制有符号整数%u输出一个十进制无符号整数%f输出一个浮点数(实数)%s输出一个字符串%c输出一个字符%e输出一个指数形式的浮点数%x或%X输出一个以十六进制表示的无符号整数%O输出一个以八进制表示的无符号整数%g自动选择%f或%e格式中输出宽度较短的一种形式表3-1格式化字符串中的格式符号及其功能-:指定左对齐输出(默认右对齐输出)。0:指定空位填0。a=56,%03d。l:输出长度修正。m.n:域宽及精度描述符m:指域宽n:指精度,用于说明输出的实型数的小数位数。隐含的精度为6。域宽小于实际宽度时,按实际宽度输出。精度说明(小数部分)小于实际位数,四舍五入处理。%df-0lm.n例3-1printf()函数的格式控制举例程序。main(){charc='A';inta=1234;floatf=3.141592653589;doublex=0.12345678987654321;printf(a=%d\n,a);printf(a=%6d\n,a);printf(a=%-6d\n,a);printf(a=%-6dqq\n,a);printf(a=%06d\n,a);printf(a=%2d\n,a);printf(f=%f\n,f);printf(f=%6.4f\n,f);printf(x=%lf\n,x);printf(x=%19.17f\n,x);printf(c=%c\n,c);printf(c=%d\n,c);}TurboC2.0运行结果①“格式化字符串”中的控制参数与“表达式表”的表达式按照位置序号一一对应,即第一个控制参数使用第一个表达式,第二个控制参数使用第二个表达式,依此类推。②输出表达式的个数必须与格式化字符串所说明的输出参数个数相同,且顺序要与格式串中要求输出的内容一一对应,否则会产生意想不到的错误。③当存在格式参数但无参数表与其对应时,则会产生随机数。④当不存在格式参数但有参数表时,不会显示参数表内容。printf函数使用注意事项:返回2.格式化输入函数scanf(1)函数格式scanf(“格式化字符串”,变量地址表);(2)说明⑴“格式化字符串”用于说明输入数据的类型和数据格式,使用的格式控制符与printf()函数相同。⑵“变量地址表”是接受输入数据的变量的内存地址,它们之间以逗号“,”分隔。当接受数据的变量是简单变量时,变量地址的表示形式如下:&简单变量名其中的“&”是取变量地址运算符,当需要通过键盘为一个简单变量输入数据时,必须使用它的地址形式。例如:inti;floatj;scanf(%d,%f,&i,&j);当计算机执行到scanf()语句时,便停下来,等待从键盘输入数据,直到要求的数据得到满足后,才继续执行下面的语句。(3)注意事项(1)“格式字符串”中控制参数的个数必须与变量地址的个数一致。(2)可以在格式化字符串中的%和格式控制符之间加入一个整数,表示任何读操作中的最大位数。例3-2从输入数据流中自动获取数值。⑶在%与控制符之间插入*号可以实现数据虚读。例3-3从数据流中有选择地读取数据。⑷scanf()能够按照格式字串的说明顺序从输入流中取得数据,当输入流中数据类型与格式字符要求不匹配时,自动结束数据的读入过程。例3-4自动按照数据类型读取数据。(3)scanf函数注意事项/*程序e302.c*/main(){intm,n;scanf(%3d%2d,&m,&n);printf(m=%d,m=%d\n,m,n);}例3-2从输入数据流中自动获取数值。输入数据流:123456789程序执行结果:m=123,n=45/*程序e303.c*/main(){inti;floatr;scanf(%3d%*4d%f,&i,&r);printf(i=%d,r=%f\n,i,r);}例3-3从数据流中有选择地读取数据。输入数据流:12345678267.92程序运行结果如下:i=123,r=8627.919922/*程序e304.c*/main(){inta;charb;floatc;scanf(%d%c%f,&a,&b,&c);printf(a=%d,b=%c,c=%f\n,a,b,c);}例3-4自动按照数据类型读取数据。执行后输入数据流:1234K2638.638输出结果:a=1234,b=K,c=2638.637939向标准输出设备输出一个字符3.字符输出函数putchar例3-6putchar()函数应用举例。main(){charc;/*定义字符变量*/c='B';/*给字符变量赋值*/putchar(c);/*输出该字符*/putchar('\x42');/*输出字母B*/putchar(0x42);/*直接用ASCII码值输出字母B*/}(1)函数格式putchar(ch);其中ch为一个字符变量名或常量。(2)功能:例3-7从键盘输入一个字符,然后再显示出来。#includestdio.hmain(){charc;c=getchar();/*从键盘读入字符*/putchar(c);/*显示输入字符*/}4.字符输入函数getchar从键盘上读入一个字符(1)函数格式getchar()(2)功能:三、顺序结构程序设计例3-8计算任意三角形的面积例3-9从键盘输入一个大写英文字母,要求在屏幕上输出它的小写形式。#includemath.hmain(){floata,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));printf(a=%7.2f,b=%7.2f,c=%7.2f\n,a,b,c);printf(Area=%7.2f\n,area);}例3-8、计算任意三角形的面积)cs)(bs)(as(sarea2cbas设三角形边长为a、b、c,面积area的算法是:其中例3-9从键盘输入一个大写英文字母,要求在屏幕上输出它的小写形式。基本算法:#includestdio.hmain(){charch;printf(Inputachar:);ch=getchar();putchar(ch+32);}小写字母ASCII码值=大写字母ASCII码值+32程序执行结果如下:Inputachar:Tt十进制字符十进制字符十进制字符十进制字符0nul32sp64@96'1soh33!65A97a2stx3466B98b3etx35#67C99c4eot36$68D100d5enq37%69E101e6ack38&70F102f7bel39`71G103g8bs40(72H104h9ht41)73I105i10nl42*74J106j11vt43+75K107k12ff44,76L108l13er45-77M109m14so46.78N110n15si47/79O111o16dle48080P112p17dc149181Q113q18dc250282R114r19dc351383S115s20dc452484T116t21nak53585U117u22syn54686V118v23etb55787W119w24can56888X120x25e

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功