资源预览内容
第1页 / 共63页
第2页 / 共63页
第3页 / 共63页
第4页 / 共63页
第5页 / 共63页
第6页 / 共63页
第7页 / 共63页
第8页 / 共63页
第9页 / 共63页
第10页 / 共63页
亲,该文档总共63页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第 4章 顺序结构程序设计第 4章 顺序结构程序设计4.1 C语言语句 4.2 数据输入 4.3 数据输出 4.4 字符数据的输入输出4.5 程序设计举例 第 4章 顺序结构程序设计C语言程序结构第 4章 顺序结构程序设计4.1 C语言语句 4.1.1 控制语句 if()else 条件语句 switch 多分支选择语句 while() 当循环语句 dowhile() 直到循环语句 for() 计数循环语句 continue 中止本次循环语句 break 中止整个循环或switch语句 return 函数返回语句 goto 无条件转移语句第 4章 顺序结构程序设计4.1.2 表达式语句 在C语言中, 任何表达式都可以以相应表达式语句的形式存在于程序中。 例如: i+; a=b=c=1; x=y=1, x*x+y*y; sin(0.75); 第 4章 顺序结构程序设计相应的赋值语句有基本赋值语句与复合赋值语句。例如: (1) S=1+2+3+4+5; (2) x+=1; (3) x=y=z=a=b=c=1; 函数调用语句由函数调用表达式加分号构成。 例如: exp(x); /*求eX*/ fabs(x); /*求|x|*/ sqrt(x); /*求 */ 第 4章 顺序结构程序设计4.1.3 特殊语句 1. 注释语句格式为: /*注释文本*/注释语句虽然不对程序的运行产生任何影响, 但必要的注释是程序的重要组成部分。 注释分功能性注释和说明性注释。 功能性注释用以注释程序、 函数及语句块的功能, 说明性注释用以注释变量的作用。 第 4章 顺序结构程序设计如何给程序加必要的注释, 以增加程序的可读性, 请遵循以下原则: (1) 一个程序至少有一条注释语句, 关于整个程序功能的说明。(2) 对程序中主要的变量加必要的注释, 说明变量的作用。(3) 对程序中重要的语句块加必要的注释, 说明语句块的功能。 第 4章 顺序结构程序设计例如: main( ) /*求三角形面积*/float a, b, c; /*三角形三边*/float t; /*半周长*/float h, s; /*周长, 面积*/*输入*/scanf(“%f,%f,%f”,h=a+b+c; /*求周长*/t=0.5*h;s=sqrt(t*(t-a)*(t-b)*(t-c); /*求面积*/*输出*/printf(“面积是%f“,%s); 第 4章 顺序结构程序设计2. 复合语句如if语句中的选择体、while语句中的循环体, 当选择体、循环体需多条语句描述时, 就必须采用复合语句。 复合语句只需用大括号“ ”将一系列语句括起即可。 复合语句不是一条具体语句, 是一种逻辑上的考虑, 凡是单一语句可以存在的位置, 均可以使用复合语句。复合语句用在语法上是单一语句, 而相应操作需多条语句描述的情况。 函数体从一般意义上讲就是一条复合语句。 复合语句又称为分程序, 它可以有属于自己的数据说明部分。 第 4章 顺序结构程序设计3. 空语句空语句是一种概念, C语言的空语句仅由分号构成, 在编译时不产生任何指令, 在执行时不产生任何操作。 空语句常用于: (1) 构成标号语句, 标识程序中相关位置。 (2) 循环语句中空循环体。 (3) 模块化程序中未实现的模块及暂不联入的模块。 第 4章 顺序结构程序设计4.2 数据输入 4.2.1 一般格式 数据输入的一般格式为:Scanf (格式控制 ,地址表列) (1)格式控制用以描述输入数据的格式, 由格式说明符组成, 格式说明符由“%”和格式字符组成。不同格式说明对应不同类型的数据输入。 格式控制中格式字串可以包含普通字符, 普通字符在数据输入时必须原样输入。 第 4章 顺序结构程序设计(2) 输入参数只能用地址表, 表示将输入的数据送相应地址代表的存储单元中。 这点要特别注意, 这是与其它高级语言不同的。 地址通过取地址运算 (1) scanf(%d,%d,%d, 格式控制 输入参数表从键盘输入i, j, k的值。 如输入: 1, 2, 3i 将得到值1, j将得到值2, k将得到值3。 如输入: 10, 20, 30i 将得到值10, j将得到值20, k将得到值30。 (2) scanf(i=%d, j=%d, 如i的值为1, j的值为2, 必须作如下输入: i=1, j=2 第 4章 顺序结构程序设计4.2.2 格式字符 对应于不同类型的数据输入, C语言用不同的格式字 符描述: d: 用于输入十进制整数。o: 用于输入八进制整数。x: 用于输入十六进制整数。c: 用于输入字符数据。s: 用于输入字符串数据。f: 用于输入实数, 可以用小数形式或指数形式输入。e: 与f 作用相同, e 与f 可以相互替换。 第 4章 顺序结构程序设计例如: int i; char c; float f; (1) scanf(%d,%f,%c, 如输入: 2 , 3.4, ci、 f、 c分别得到值2、 3.4、 c。 第 4章 顺序结构程序设计() scanf(%x,%f, 如输入: 1A 4.93e1 i 得到值1A(十六进制数), f 得到值49.3。C语言还提供附加格式字符用于输入数据格式的进一步描述: l: 用于输入长整型数据(%ld, %lo, %lx), 以及双精度型 数据(%lf, %le)。h: 用于输入短整型数据(%hd, %ho, %hx)。n: 域宽, 为一正整数, 用于指明截取输入数据的位数。 只能 用于整型数据输入。 *: 表示跳过当前输入项。 第 4章 顺序结构程序设计例如: 假定已有相应变量定义(1) scanf(%2d,%3d, 如输入: 12,345i 得到值12, j 得到值345。(2) scanf(%2d%*3d%2d, 如输入: 1234567a得到值12, b得到值67。 第 4章 顺序结构程序设计4.2.3 说明 (1) 输入函数中格式控制字串中不允许使用转义字符。 (2) 利用格式字串中普通字符在输入时要原样输入, 常引入特定的普通字符如逗号等, 作为输入数据的分隔符, 如: scanf(%f, %f, %d, 输入数据必须用逗号分隔, 如: 3.0, 4.0, 5。 第 4章 顺序结构程序设计(3) 如果数据本身可以将数据分隔时, 输入数据不需用分隔符, 如: scanf(%d%c%d, v1的值30, v2的值a, v3的值18。 可这样输入: 30a18, 字符数据a能起到分隔数据30、18的作用。 (4) 无符号整型数据输入用% d、 % o、 % x描述。 第 4章 顺序结构程序设计(8) 输入函数的返回值为输入数据的个数, 需要时可以加以利用。 (9) 在介绍完输入函数后, 读者这时还应注意到变量得到值有三种方法: 定义时赋给初值, 在编译时得到;在执行时利用赋值语句得到; 在执行时通过输入函数得到。利用输入函数得到值更具一般性、通用性。另外,数据也常来自磁盘文件。 (10) 在分析程序的输入数据时, 要同时考虑输入数据的输入格式。 第 4章 顺序结构程序设计4.3 数据输出 4.3.1 一般格式 数据输出的一般格式为:printf(格式控制, 输出参数表)(1) 格式字串用以描述输出数据的格式, 由格式说明符和普通字符组成。 与scanf( )函数中格式字串一样, 格式说明符由“%”和格式字符组成, 不同的格式说明符对应不同类型数据的输出, 普通字符原样输出。 第 4章 顺序结构程序设计(2) 输出参数可以是表达式。如果是常量, 直接输出; 如是变量, 输出其值; 如是表达式, 先计算表达式的值, 再输出。 (3) 输出函数的调用一般也采用语句调用形式, 间接形成C语言的输出语句。 例如: int i= j=2; char ch=a; printf(i=%2d, j=%2d, i, j); 输出结果: i= 2, j= 2 printf(%2d*%2d=%2d, i, j, i*j); 输出结果: 2* 2= 4 第 4章 顺序结构程序设计4.3.2 格式字符 对应不同类型数据的输出, 类似于输入函数, C语言 用不同的格式字符描述。 d: 以带符号的十进制整数形式输出整数(正数不输 出符号)。o: 以无符号八进制整数形式输出整数(不输出前导 符0)。x: 以无符号十六进制整数形式输出整数(不输出前 导符0x)。u: 以无符号十进制整数形式输出整数。第 4章 顺序结构程序设计c: 以字符形式输出, 输出一个字符。s: 以字符串形式输出, 输出字符串的字符至结尾符为止。f: 以小数形式输出实数, 隐含输出1位整数, 6位小数。 e: 以标准指数形式输出实数, 数字部分隐含1位整数, 6位小数。g: 根据给定的值和精度, 自动选择f与e中较紧凑的一种格式, 不输出无意义的0。 第 4章 顺序结构程序设计一般数据默认的输出宽度等于数据的实际位数。例如: int a=3, b=12; float x=1.23, y=4.785; printf(a=%d, b=%d, a, b); 输出结果: a=3, b=12 printf(%f*%f=%f, x, y, x*y); 输出结果: 1.230000*4.785000=5.885550对输出格式, C语言同样提供附加格式字符, 用以对输出格式作进一步描述。 第 4章 顺序结构程序设计l: 用于长整型数据输出(%ld, %lo, %lx, %lu)。m: 域宽, 十进制整数, 用以描述输出数据所占宽度。 如果m大于数据实际位数, 输出时前面补足空格; 如果m小于数据的实际位数, 按实际位数输出。 n: 附加域宽, 十进制整数, 用于指定实型数据小数部分的输出位数。 如果n大于小数部分的实际位数, 输出时小数部分用0补足; 如果n小于小数部分的实际位数, 输出时将小数部分多余的位四舍五入。如果用于字串数据, 表示从字串中截取的字符数。 第 4章 顺序结构程序设计: 输出数据左对齐, 缺省时为右对齐。 +: 输出正数时, 也加上“+”号。 : 作为o, x的前缀时, 输出结果前面加上前导符0、0x。例如: 前举例中用指定格式输出:(1) printf(a=%5d, b=%5d, a, b); 输出结果: a=3, b=12(2) printf(%5.2f*%5.2f=%5.2f, x, y, x*y); 输出结果: 1.23* 4.79= 5.89 第 4章 顺序结构程序设计4.3.3 说明(1) 可以无输出参数, 而只有格式字串。 (2) 输出对象中使用转义字符, 完成一些特殊的输出操作。 例如: printf(n); /*
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号