三章简单程序设计

上传人:m**** 文档编号:488018933 上传时间:2023-07-08 格式:DOC 页数:10 大小:92.50KB
返回 下载 相关 举报
三章简单程序设计_第1页
第1页 / 共10页
三章简单程序设计_第2页
第2页 / 共10页
三章简单程序设计_第3页
第3页 / 共10页
三章简单程序设计_第4页
第4页 / 共10页
三章简单程序设计_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《三章简单程序设计》由会员分享,可在线阅读,更多相关《三章简单程序设计(10页珍藏版)》请在金锄头文库上搜索。

1、第三章 简单程序设计3.1 流程结构和语句1 . 三种流程结构顺序结构,选择结构,循环结构程序在逻辑上执行的流程。顺序结构:按语句在源程序中出现的次序依次执行; 选择结构:根据一定的条件有选择地执行或不执行某些语句。 循环结构:在一定条件下重复执行相同的语句。所有的流程控制都是由语句实现的,且任何一个表达式都可作为一个语句使用, 称之为表达式语句2. 表达式语句任何表达式通过在其末尾加一个“; ”,可使表达式成为一个语句,形式为: 表达式;其中“;”是 C 语句的组成部分,表示一个语句结束。表达式语句能够独立出现 在程序中,而表达式则不能独立出现。例如: x=y+1 是表达式x=y+1 ; 是

2、语句习惯上把赋值表达式语句如: x=y+1 ;称为赋值语句。函数调用也是表达式,因 此:printf (“ hellow ”)是表达式;printf (“ hellow ”);是语句,习惯上称为输出语句。scanf(“%d%d”, &x,&y );函数调用表达式语句(输入语句)3. C 的语句概述C 的一个“说明”也必须以分号结束,也称为语句,因此 C 的语句分说明语句和 执行语句两类。说明语句可以出现在程序中任何块 (函数或复合语句) 的外面称为外部说明 或块内称为局部说明(在执行语句的前面) 。外部说明必须放在一个源程序文件中所有函数定义的外面; 局部说明包括类型定 义、变量和函数说明,其

3、作用是描述程序中被处理数据(变量或函数)的名称和类型 供解释程序使用。执行语句只能出现在函数体内且处于局部说明的后面, 执行语句完成对数据的处 理和对程序流程的控制。常用的程序结构为 :常量说明类型说明变量说明 /* 外部说明 */返回类型 函数名(参数表) 变量说明 /* 局部说明 */ 执行语句 C 的执行语句共有六种: 表达式语句 复合语句 标号语句 选择语句( if 和 switch ) 循环语句( while,for,do-while ) 转移语句( break,continue,goto,return )3.2 标准的文件输入与输出函数一个 C 的源程序要能够从外部设备(文件)输入

4、数据并将执行 (或处理)的结果 输出到外部设备上。C 语言的输入和输出操作是通过调用 C 标准函数库中的函数来实现的, 标准函数 库是由 C 编译程序提供的。 以编译后的目标代码形式存储的函数的集合。 用户程序可 根据需要按规定的格式调用其中的函数来完成相应的功能。 C 语言中从标准输入和输 出文件(设备)中进行读(写)的四个标准函数是:格式输出函数 printf、格式输入函数 scanf、字符输入函数 getchar和字符输出函 数putchar。其他函数以后讲。3.2.1 字符输入和输出函数1. 字符输入函数 getchar 函数原型为: int getchar(void)其中 int 说

5、明函数的返回值的类型, void 说明函数没有参数,该函数的调用格式 为:getchar() 系统将输出设备和输入设备都看成文件,标准输入设备(键盘)和标准输出设备(显示器)是由字符的序列(字符流)组成的文本文件,称为输入流和输出流。getchar每调用一次则从终端(键盘)读取一个字符。这个字符的字符码就是getchar的返回值(即函数值),其类型为由unsigned char转换的int。例如:c=getchar ();执行时键入字符 a赋值后变量c的值为97即字符 a的值。 输入文件的结束标志称为文件尾。DOS系统中键入ctrl+z时产生文件结束标志。getchar遇到文件结束标志时返回值

6、EOF,EOF是在头文件stdio.h 中定义的符号常量,其值通常为-1。程序中如果要测试getchar ()的值是否文件尾应使用EOF而不用 -1 ,这样做可使程序不依赖于某个特定环境。2. 字符输出函数 putchar 函数原型为: int putchar(char ch )putchar 函数将所要输出的字符码转换为 unsigned char 送到标准输出设备中去, 返回值是被输出的字符,如果出错则返回EOF,调用形式为:putchar(ch)其中 ch 为实际参数,可以是char、 short 或 int 类型的表达式,其值是要被输出字符的字符码。每调用一次则将字符 ch 输出到标准

7、输出设备上。例如:int i=7;char ch;说明:(1) 下面四个语句是等价的,同为输出一个响铃字符: putchar(i);putchar(7);putchar(, 07?);putchar(, a?);(2) 下面三个语句分别输出字符a,3 和换行putchar(,a?);putchar(,3?);putchar(,n?);注: putchar(3) 输出是 ? 而不是整数 3。( 3) putchar(c=getchar()= ?a?&c= ?z?)?c-,a?+?A?:c);该语句先输入一个字符存入变量C,如果c是小写字母则将其转换成大写字母后输出,否则直接输出原字符。注意:凡是

8、程序中调用了输入、输出库函数,必须在函数第一次调用之前写上# in clude 或# in elude “ stdio.h ”,预处理控制(对于 DOS 上的 scanf 和 printf 可省略)。3.2.2 格式输出函数 (printf)getchar 和 putchar 函数用于输入和输出单个字符,输入和输出过程中不进行格式 上的任何转换。printf和scanf函数在数据的输入和输出过程中能够将计算机内部形式的数据和输 入输出任务上的数据相互转换,称为格式输出和格式输入。1. printf 函数的原型int printf(char format,args)参数的数目可变,中间用“, ”

9、分隔,是要被转换并写到输出设备的数据。函数 的返回值是实际输出字符的数目。2. 调用形式printf (格式字符串,输出参数1输出参数2,);调用 printf 函数时至少要给出第一个参数, 即格式字符串。 格式字符串式是用 “” 括起来的字符串;输出参数1,输出参数n是n个表达式,可以为任何基本类型,也可以是指针或枚举类型(较少使用) 。输出数据项的数目任意,末尾 加“;” 表示 printf 函数通常作为语句使用。printf 函数将参数的值按格式字符串规定的格式从内部形式转换成外部字符形 式并输出设备,返回值是实际输出字符的数目。例如:printf(%d%8.3f,i,x);参数中的格式

10、为d %8.3f , i和x是要输出的数据,d表示i要用十进制整数3 / 10形式输出,宽度为数据实际宽度。8.3f表示x要用小数形式浮点数格式输出,输出总宽度为8个字符,其中小数部分保留3位,若i=15 , X=-8.2 该语句输出为15-8.2003. 格式字符串格式字符串包含两种字符:普通字符和用于转换说明的字符,普通字符照原样输出,转换说明用于说明数据输出格式。其形式为:%域宽转换字符一个转换说明以开头。域宽部分是可选的,用于指定输出数据的宽度。每个转 换说明对应于一个输出参数,该参数被转换成由转换说明规定的数据格式后输出。普通字符通常用作输出提示信息,它可以与转换说明交替出现,例如p

11、rintf ( i=%d,x=%8.3fn , i,x); 输出为:i=15,x= -8.200ANSI C的转换字符及其规定的输出格式见教材p44。注:如果游面是一个字符,则标准 C无此定义,将它作为普通字符输出。 在和转换字符之间可以加域宽说明,用于指定输出时的对齐方向、输出数据的 域宽度、小数部分的位数等要求。用于域宽说明的字符列于下表中,域宽说明可以是 其中之一或多个字符的组合。表3.1 printf 域宽说明字符域宽说明符号意义-(减号):在指定的区域内以左对齐方式输出(默认右对齐)+输出正值时前面冠以符号 +空格输出的第一个字符不是符号时,要输出一个空格作参照0 (零)在域宽范围内

12、用前导 0填补空位#对于o格式输出前导0,对于x或X格式要输出0x或0X前缀,对 于g或G格式不删除尾部零。m (正整数)指出输出数据的最小宽度。如果实际宽度m,则按实际宽度;如果实际宽度则左边(左对齐时为右边)补上空格或零(当有0域宽说明字符时)。.(小数点)分隔域宽与精度。小数点前面可以没有域宽说明。n (正整数)指出输出数据的精度。对于e、E、f格式为小数部分的位数,对于g或G格式为有效字的个数,对于整数为至少应输出的数字的个数(添加前导0来满足所需宽度)。h指出输出参数是短整型l指出输出参数是长整型L指出输出参数是高精度浮点型在域宽说明中还可以使用字符 *,*代表一个整型值,这个整型值

13、是由包含*的转换说明对应的参数决定的。例如:printf ( %.*s , max, s);该语句执行时从串s中打印至多max个字符。4 / 10域宽说明示例见教材 p45注意(1) : printf 函数根据格式串中的转换说明来决定输出数据的数目和类型, 如果转换说明项数多于参数个数,或参数类型不正确,则会输出错误的数据(不报语 法错);如果输出参数的数目多于转换说明项数则多余的参数不被输出。例.Printf(%d,%”,3,4);结果为:%d,3例:int i=-6;double x=5.7,y=123.4567 ;printf (%-4d,%g,i,y,x);输出形式为:-6 ,123.

14、457(2)printf 中参数右结合,如设int i=1;则 printf(%d,%d %d,+i,+i,+i);输出结果为4, 3,2printf(%d,%d %d,i+,i+,i+);输出结果为3,2,13.2.2 格式输入函数(seanf)1. seanf函数的原型int seanf( char *format , args)scanf 函数是具有int类型返回值(返回读入参数的个数)的函数。第一个参数 format是格式字符串,它指出输入数据的数目、类型和格式,args为指向存放输入数据的变量的指针,输入参数的数目可变。2. scanf 函数的调用格式scanf(格式字符串,输入参数

15、1,,输入参数n);scanf 函数是printf函数的逆过程,它从标准输入设备(键盘)读入字符流,并按照格式字符串中转换字符规定的格式转换成相应类型的值后赋予由输入参数所 指的变量。format串可以包含如下字符:(1)空格或制表符,它们被忽略(2)非滴通字符,它需要输入流中有同样的非空白字符与之匹配(3) 以为开头以转换字符为结尾的转换说明符,常见的转换字符与 printf 类似(4)在与转换字符之间可以有下列选项赋值抑制符*说明最大域宽的整数指出参数所指变量类型的字母h,I或L具体形式为:%*m I或 h格式字符抑制符 域宽长度修正说明符格式字符与printf 中使用方式相同,把输入数据分为整型(int *用d、o、x指定)、字符型(char *,用c指定)、实型(float * ,用f,e指定)。在整型和实型中可再加长度修正说明

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号