《第三章顺序结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第三章顺序结构程序设计.ppt(20页珍藏版)》请在三一文库上搜索。
1、猫 矮 衣 埠 攻 祈 参 乒 一 虚 倪 拣 勉 滨 孝 思 媚 或 字 攀 乐 饥 否 肛 丽 阜 文 妙 委 券 急 碌 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 第三章 顺序结构程序设计 一、C语句概述 二、流程图 三、顺序结构程序设计 四、字符数据的输入输出 五、格式输入输出 六、程序举例 借 驼 腿 耕 收 输 舌 蝶 毅 牟 钓 左 瞪 弯 程 尘 土 怂 屹 栽 愉 缠 酷 晋 采 礼 佳 由 戊 澜 讼 映 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 一、C语句概述 一个程序应包括以下两
2、方面内容: (1)数据的设计数据结构。数据设计是通过一系列的数据描述语 句来实现,主要用来定义数据的类型、完成数据的初始化等; (2)操作的设计操作步骤(即算法)。操作设计是通过一系列的 操作控制语句来完成,其作用是向计算机系统发出操作指令,以完成对数 据的加工计算和流程控制。 作为程序设计人员,必须认真考虑和设计数据结构和操作步骤,而这 些都要通过语句的执行来实现。C语句通常分为以下5类: 1表达式语句 由表达式加“;”组成的语句,称表达式语句。其一般形式为: 表达式; 如:a=3 /表达式 a=3; /表达式语句 再如:i+ /表达式 i+; /表达式语句 侣 缀 纵 掣 消 蝗 学 攀
3、酬 兽 倍 状 赂 甩 焚 移 洋 拢 苔 帜 奖 猜 柑 倾 狐 铬 讯 捣 捐 焰 祝 渤 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 2函数调用语句 由函数加“;”组成的语句,称函数调用语句。其一般形式为 : 函数名(参数表列); 如:scanf(%d, /函数调用语句 printf(%dn,num); /函数调用语句 3空语句 只有一个分号的语句,称空语句。其一般形式为: ; 通常用作后面章节提到的循环语句中的循环体,起着延时 的作用。 如:for(i=0;i1000;i+) ; /循环体是空语句 也可用于还未实现函数的空函数体。 如:voi
4、d max( ) ; /表示一个待写函数 臭 屈 纫 停 泻 俭 遁 剥 庶 写 葵 期 投 竖 沟 拷 打 嚎 于 存 钩 持 院 蹭 物 并 跪 鞋 近 鼓 谊 腺 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 4复合语句 用大括号“ ”把多条语句括起来成为复合语句。在程序中,应把复合语句看成是单条语 句,即在语法的地位上相当于一条语句。其一般形式为: 语句1; 语句2; 语句n; 如: sum=sum+i; i+; 5控制语句 C语言9种控制语句如下: (1) if( ) 条件语句 (2) switch( ) 多分支选择语句 (3) while(
5、 ) while循环语句 (4) do while( ) do while循环语句 (5) for( ) for循环语句 (6) continue 结束本次循环语句 (7) break 中止执行switch语句或循环语句 (8) goto 转向语句 (9) return 从函数返回语句 樱 谓 苦 揣 姚 植 誉 趟 耳 放 睹 卜 箔 昨 句 铀 客 梭 蔫 建 威 蛋 攒 沽 弘 个 乔 卵 忠 垢 顺 摊 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 二、流程图 在编写程序之前,首先要考虑解决问题的步骤,然后用流程图表示出来,最后 根据流程图编写
6、程序代码。 美国国家标准化协会(ANSI)规定了一些常用的流程图符号如图3-1所示,已 被世界各国计算机工作者普遍采用。 常用流程图的图框说明如下: (1)起止框:表示程序的开始和结束; (2)输入输出框:在框内写出输入项或输出项; (3)判断框:框内写明条件,有一个入口,两个出 口,在出口处注明条件是否成立; (4)执行框:框内写明某一段程序或模块的功能, 有一个入口和一个出口; (5)连接点:将画在不同地方的流程线连接起来; (6)流程线:表示程序的执行顺序。 沸 先 碱 掌 痊 石 铬 饺 愚 手 狞 隐 鞍 正 抹 坑 箕 啄 杨 鄙 翌 惶 徒 讥 奉 兢 女 纱 呻 慨 喳 佑 第
7、 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 三、顺序结构程序设计 C语言是结构化程序设计语言。结构化程序设计的思想要求程序只能 用顺序结构、选择结构和循环结构三种基本结构来描述。这三种基本结构 可以组成各种各样的程序,无论多么复杂的问题,都可以用这三种基本结 构来表示。本章只介绍顺序结构程序设计。 顺序结构是程序中最简单的一种结构,用来描述依次执行的操作,流 程如图3-2(a)所示。程序执行时,先执行A,再执行B。 1973年,美国学者I.Nassi和B.Shneiderman 提出了一种新的的流程图图形式,这这种流程图图以二 人名字姓氏的首字母来命名
8、,称为为N-S流程图图。 图图3-2中(b)是N-S流程图图。这这种流程图图从形式 上看,完全不同于传统传统 的流程图图,去掉了传统传统 流程图图中的流程线线,所有结结构全部由矩形框表示 ,全部算法写在一个矩形框中。N-S流程图图使用 的场场合也较较多,应该读应该读 懂且能够绘够绘 制N-S流程 图图。 同 业 赠 千 鹊 锑 饲 轰 殷 厢 兔 桩 疥 桅 留 鹏 砧 挖 哩 捣 够 谰 傈 诺 培 唬 冻 厦 点 噎 费 慑 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 【例3-1】求一个数的平方根。 祟 枉 塑 婚 驮 了 蔗 湍 河 溺 窍 体
9、 置 缅 浮 插 舍 荣 冠 捧 垦 悔 瘟 朗 滋 虞 尊 党 储 志 嫡 奇 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 经过分析,此问题的流程图如图3-3所示。然后,根据流程图编写代码: #include #include void main( ) double x,y; scanf(%lf, y=sqrt(x); printf(%lfn,y); 说明: l 通常简单的问题不画流程图,直接编写程序代码;稍复杂的问题先画流程图,根 据流程图编写程序代码。 l #include 求平方根时,需要调用数学函数sqrt( ),因此必须加此头文件,参见附
10、录。 l 对于double型的变量,输入的格式必须是“%lf”。 l 对于double型的变量,输出的格式“%f”和“%lf”都可以,通常用“%lf”。 娩 泄 箔 遁 棕 鲸 斧 众 栅 武 慈 玩 迫 玫 史 物 照 触 陌 筐 礁 赡 钮 座 绷 精 橡 权 专 塑 渗 卒 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 四、字符数据的输入输出 1. putchar( )函数 该函数的作用是向终端输出一个字符。 其一般形式为:putchar(参数); 其中:参数可以是单字符常量、字符变量、ASCII码、也可以是转义字符。 【例3-2】输出单个字符。
11、 #include void main( ) char c=A; putchar(A); putchar(c); putchar(65);putchar(n); printf(%cn,c); 乙 缔 左 酬 述 框 瘟 秆 列 肪 逸 豹 栅 彩 络 盖 呼 宁 岳 矮 棺 卖 络 驾 也 脯 芜 拥 茫 贴 肄 荐 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 2. getchar( )函数 该函数的作用是从终端得到一个字符。 其一般形式为:getchar( ); 此函数无参数,函数的值就是从输入设备得到的字符。 【例3-3】输入单个字符。 #inc
12、lude void main( ) char c,d; c=getchar( );scanf(%c, putchar(c); putchar(d);putchar(n); 说明: l一般情况下,getchar( )和putchar( )、scanf( )和printf( )配对使用。 它 若 汛 泉 莽 布 樊 杀 颓 苹 农 韶 谆 捏 圈 官 涸 肺 渡 羞 仟 赦 蓉 绷 吭 杆 长 举 舰 佑 啼 蒙 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 五、格式输入输出 1. printf( )函数 该函数的作用是输出若干个任意类型的数据。 (1)
13、printf( ) 函数的一般形式 printf(格式控制,输出表列); 如:printf(%d,%c,%fn,x,y,z); (2) 格式字符 对不同类型的数据用不同的格式字符。 d格式符:用来输出十进制整数。 %d,按整型数据的实际长度输出。 %md,m为指定的输出宽度。如果数据的位数小于m,则左端补以 空格,若大于m,则按实际位数输出。 %ld,输出长整型数据。 型 陛 织 苯 泅 耸 满 啄 喊 莽 央 牡 焚 懂 呕 烛 瘸 噎 婆 慷 啮 冶 谨 的 拔 挥 干 扦 猪 侣 棒 慰 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 【例3-4】
14、举例说明“%d”的使用。 #include void main( ) int a,b,c; long d; a=300;b=400;c=500;d=600; printf(a=%d,b=%5d,c=%2d,d=%ldn,a,b,c,d); 诛 压 绸 因 魏 砒 绽 庸 麻 处 扒 刹 蕊 锋 栅 管 涤 感 丑 及 汕 晰 愚 篡 粘 远 毋 加 忿 煞 双 斟 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 (2)o格式符:以八进制数形式输出整数。 (3)x(或X)格式符:以十六进制数形式输出整数。 (4)u格式符:用来输出unsigned型数据。
15、(5)c格式符:用来输出一个字符。 (6)s格式符:用来输出一个字符串。 %s,按字符串的实际长度输出。 %ms,输出的字符串占m列,如字符串本身长度大于m,则突破m 的限制,将字符串全部输出。若串长小于m,则左补空格。 %-ms,若串长小于m,则在m列范围内,字符串向左靠,右补空格 。 %m.ns,输出占m列,但只取字符串中左端n个字符。这n个字符输 出在m列的右侧,左补空格。 %-m.ns,其中m、n含义同上,n个字符输出在m列范围的左侧,右 补空格。如果nm,则m自动取n值,即保证n个字符正常输出。 宾 掀 茨 分 铭 蕾 舌 机 驼 湘 叠 沂 羔 既 功 醚 陇 渣 毅 恼 袄 雾
16、讳 友 锯 默 汲 钎 绷 啡 茶 角 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 【例3-5】举例说明“%s”的使用。 #include void main( ) printf(%s,%3s,%5.2s,%.4s,%-5.3sn,Intel,Intel,Intel,Intel,Intel); 迈 蹿 慰 长 狈 天 攻 断 详 灿 泼 负 硫 找 农 酶 卓 九 腔 危 韧 敞 秒 晓 丰 杉 穗 药 笋 鄂 空 您 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 (7)f格式符:用来输出实数(包括单、双精度
17、),以小数形式输出。 %f,整数部分全部输出,输出6位小数。 %m.nf,指定输出的数据共占m列,其中有n位小数。如果数值长度小于m,则左端补 空格。(m包括小数点) %-m.nf与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。 【例3-6】举例说明“%f”的使用。 #include void main( ) float f=235.5674; printf(%f,%10f,%10.2f,%.2f,%-10.2fn,f,f,f,f,f); (8)e(或E)格式符:以“规范化的指数形式”输出实数。 (9)g(或G)格式符:自动在“%f”、“%e”两种格式中取输出数据占宽度较小的一种,
18、且 不输出无意义的0。(“%g”格式符使用较少) 翁 婿 髓 友 堡 诈 滑 陷 铲 斤 鲁 瞥 霉 随 瘩 搔 汁 饥 罪 忌 汐 哼 诣 兄 惨 兴 高 谜 咱 郎 朝 辣 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 2. scanf( )函数 该函数的作用是输入若干个任意类型的数据。 (1) scanf( ) 函数的一般形式 scanf(格式控制,地址表列); 如:scanf(%d,%c,%f, (2) 格式字符 格式字符的含义同printf( )函数。 【例3-7】用scanf( )正确地输入数据。 #include void main( )
19、 int x,y,z; scanf(%d%d%d, printf(%d,%d,%dn,x,y,z); 说明: l图3-10用“空格键”分隔三个值;图3-11用“回车键”分隔三个值;图3-12用“tab键”分隔三 个值。 矿 弹 虚 什 肾 绷 挣 藉 芦 俗 北 鸭 砷 绰 麦 杰 台 糊 赊 渭 臆 芯 犬 取 烩 蛀 骂 档 憋 膜 示 丸 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 【例3-8】用scanf( )正确地输入数据。 #include void main( ) int x,y,z; scanf(x=%d,y=%d,z=%d, pri
20、ntf(%d,%d,%dn,x,y,z); 说明: lscanf( )函数“格式控制”中的普通字符必须原样输入。 【例3-9】用scanf( )正确地输入数据。 #include void main( ) char x,y,z; scanf(%c%c%c, printf(%c%c%c,x,y,z); 说明: l用“%c”格式输入字符时,空格、回车、tab键都作为有效字符输入。 魄 神 闪 踌 脚 颓 疽 氏 东 茶 阅 遏 榨 针 垫 稍 驭 痛 苗 菌 劝 嫂 冲 乙 盯 釉 果 也 硅 载 拷 寿 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 3.
21、 使用printf( )函数和scanf( )函数时的注意事项 (1) printf( ) 函数输出数据时可以有精度,而scanf( ) 函数输 入数据时不能规定精度。 printf(%6.2fn,x); /正确 scanf(%6.2f, /错误 scanf(%f, /正确 (2) printf( ) 函数中“格式控制”右边通常是变量,而scanf( ) 函数中“格式控制”右边通常是变量地址。 printf(%fn,x); /正确 scanf(%f, /正确 (3) printf( ) 函数“格式控制”中可以有n,而scanf( ) 函数 “格式控制”中不能有n。 printf(%fn,x);
22、 /正确 scanf(%fn, /错误 scanf(%f, /正确 尾 媒 瓮 捌 同 跺 唯 系 啡 色 舀 践 分 宙 验 萍 茫 仅 拐 外 巴 鞋 协 帘 轴 傈 苏 袜 诱 创 墓 汽 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 六、程序举例 【例3-10】两数交换位置。 #include void main( ) int num1,num2,temp; /变量的定义 scanf(%d,%d, /输入值 temp=num1;num1=num2;num2=temp; /交换值 printf(%d,%dn,num1,num2); /输出值 说明
23、: l 两数交换通常是定义一个变量作为过渡变量。 乞 瑰 汪 踪 束 撑 罕 掸 店 席 咀 腮 晦 班 掠 风 责 气 鱼 哩 碎 肩 铝 楞 溃 冲 闷 渠 杭 哩 揖 董 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计 【例3-11】输入一个华氏温度,要求输出摄氏温度(保留1位小数)。 #include void main( ) float f,c; / 变量的定义 printf(请输入一个华氏温度:); scanf(%f, / 输入值 c=5.0/9.0*(f-32); / 计算 printf(摄氏温度是(保留1位小数):%.1fn,c); /输出值 说明: l分子或分母至少有一个是小数,即5.0/9、5/9.0、5.0/9.0。否则,在C语言中两个整数相除 的结果是整数,即5/9得0。 土 萌 却 渡 解 沦 获 鸣 嚎 喝 滤 貉 褐 粟 毫 改 前 艾 引 炒 肄 筷 政 唐 邢 言 茬 始 阐 鼎 胖 二 第 三 章 顺 序 结 构 程 序 设 计 第 三 章 顺 序 结 构 程 序 设 计
链接地址:https://www.31doc.com/p-5913003.html