资源描述
,第3章 顺序程序设计,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,重庆电力高等专科学校,*,C,C语言是结构化程序设计语言,提供了功能丰富的控制语句,本章开始陆续介绍C语言的控制语句:顺序结构、选择结构和循环结构。本章主要介绍三种结构化设计的基本概念,格式输入输出函数printf()和scanf(),字符输入输出函数putchar()和getchar()等内容,要求重点掌握顺序结构设计的基本思想及程序编写方法,熟练掌握常见输入、输出库函数的调用,。,重庆电力高等专科学校,C语言是结构化程序设计语言,提供了功能丰富的控制语句,本,1,3.1 C语句概述,3.3,赋值语句,3.4,格式输入与输出,3.2 程序的三种基本结构,3.5 字符数据的输入输出函数,3.6 顺序结构程序设计举例,重庆电力高等专科学校,3.1 C语句概述3.3 赋值语句3.4 格式输入与输出3.,2,3.1 C语句概述,C语言的语句分为如下五大类:,(1)表达式语句:,表达式后面加一个分号就构成了一个表达式语句。,例如:,sum=a+b;/*赋值语句*/,i+;/*自加运算表达式语句*/,x=1,y=2;/*逗号表达式语句*/,(2)函数调用语句:,函数调用语句由一个函数加一个分号构成。,例如:,printf(“This is a C statement.”);,重庆电力高等专科学校,3.1 C语句概述C语言的语句分为如下五大类:重庆电力高等,3,3.1 C语句概述,(3)复合语句:,用花括号 将多个语句组合在一起称为复合语句,又称为语句块(block)。,例如:,int x,y;,z=x+y;,printf(“d%”,z);,(4)空语句:,只有一个分号(;)的语句称为空语句。,在程序中空语句经常被用作循环体,比如常见的用于延时的一种循环语句。,例如:,for(i=0;i0)t=a;,此处if语句中,a=b,是赋值表达式而不是赋值语句。,重庆电力高等专科学校,3.3 赋值语句 注意:重庆电力高等专科学校,11,3.4 格式输入与输出,信息从计算机的外部设备流入计算机称为,输入,。,信息从计算机主机流向外部设备称为,输出,。,C语言中没有输入输出语句,而是由输入输出函来实现的输入/输出的。,C标准函数库中包含的常用输入输出函数有:,格式输出函数printf(),格式输入函数scanf(),单个字符输出函数putchar(),单个字符输入函数getchar(),使用标准输入输出库函数时,要用编译命令“#include”将有关头文件“stdio.h”包括到用户的源文件当中。,即:,#include,或,#include“stdio.h”,重庆电力高等专科学校,3.4 格式输入与输出信息从计算机的外部设备流入计算机称,12,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),一般格式:,printf(格式控制”,输出列表);,例如:,printf(“a=%d,b=%cn”,a,b),功能:,向默认输出设备(一般是显示器)输出“输出列表”中各数据项。,1.格式控制,格式控制也称“控制字符串”,是由双引号括起来指定,输出格式的字符串,。他由,格式说明,、,控制字符,和,普通字符,三部分组成。,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,13,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),(1)格式说明,构成:,由“%”字符开始后面跟有各种格式字符。,作用:,以说明输出数据的类型、形式、长度、小数位等格式。,C语言提供的常用printf()函数格式说明:,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,14,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),(2)控制字符,控制字符用于控制设备的动作,如下表中制表符“t”、换行符“n”等。,转义字符,表示含义,n,换行,将当前位置移到下一行开头,t,横向跳格,横向跳到下一个输出区,r,回车,将当前位置移到本行开头,f,走纸换页,将当前位置移到下页开头,b,退格,将当前位置移到前一列,v,竖向跳格,例如:,printf(“x=%d,n,”,x);,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,15,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),(3)普通字符,除格式说明和控制字符之外,其他字符均属,普通字符,,打印时按原样输出。,例如:,printf(“,x=,%d,%c”,12,6*8);,其中“x=”和“,”都是普通字符。,输出结果是:,x=12,48,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,16,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),2.输出列表,输出列表:,就是需要输出的各数据项表达式,表达式之间用逗号分隔。,注意:,(1)表达式可以由变量构成,也可以由常量构成;,(2)表达式之间的逗号不是逗号表达式,而是确定计算顺序的分隔符,自右向左进行的计算。,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,17,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),3.附加说明符,在%与格式字符间插入附加说明符,组成:,“%”,输出格式来达到更高输出格式要求,。,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,18,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),附加说明符,意 义,l,用于长整型,可以加在格式符d、o、x、u的前面,m,(正整数),数据输出的最小宽度,当数据实际宽度超过m时,则按实际宽度输出,如实际宽度短于m,则输出时前面补0或空格。,.n,(正整数),对实数表示输出n位小数,对字符串,表示从左截取的字符个数,-,输出的字符或数字在域内向左对齐,默认右对齐,+,输出的数字前带有正负号,0,在数据前多余空格处补0,#,用在格式字符o或x前,输出八进制或十六进制数时带前缀0或0 x,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,19,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),【例3.1】,输出整型、长整型、无符号整型数据,#include“stdio.h”,void main(),int y=20;long a=1024;unsigned b=54321;,printf(“%d,%ld,%un”,y,a,b);,printf(“%+8d,%+8ld,%+8un”,y,a,b);,printf(“%08d,%08ld,%08un”,y,a,b);,printf(“%-8d,%-8ld,%-8un”,y,a,b);,printf(“%o,%lo,%on”,y,a,b);,printf(“%#x,%#lx,%#xn”,y,a,b);,printf(“%8o,%8lo,%8on”,y,a,b);,printf(“%-8x,%-8lx,%-8xn”,y,a,b);,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,20,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),运行结果如下:(,代表空格,),20,1024,54321,+20,+1024,54321,00000020,00001024,00054321,20,1024,54321,24,2000,152061,0 x14,0 x400,0 xd4321,24,2000,152061,14,400,d4321,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,21,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),【例3.2】,输出字符和字符串,#include“stdio.h”,void main(),char ch=a;,printf(“%cn”,ch);,printf(“%-3cn”,ch);,printf(“%3cn”,ch);,printf(“%sn”,”programing”);,printf(“%15sn”,”programing”);,printf(“%-15sn”,”programing”);,printf(“%10.5sn”,”programing”);,printf(“%-10.5sn”,”programing”);,运行结果如下:,a,a,a,programing,programing,programing,progr,progr,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,22,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),【例3.3】,输出实型数据,#include“stdio.h”,void main(),float x,y;,double a;,x=111111.111;y=123.468;,a=333333333.33333;,clrscr();,printf(“%fn”,x);,printf(“%fn”,a);,printf(“%10f,%10.2f,%.2f,%-10.2fn”,x,x,x,x);,printf(“%en”,x);,printf(“%en”,a);,printf(“%10e,%10.2e,%.2e.%-10.2en”,a,a,a,a);,printf(“%f,%e,%g”,y,y,y);,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,23,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),程序运行结果如下:,111111.109375,333333333.333330,111111.109375,111111.11,111111.11,111111.11,1.11111e+05,3.33333e+08,3.33333e+08,3.3e+08,3.3e+08.3.3e+08,123.468002,1.23468e+02,123.468,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,24,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),4.使用printf()函数时应注意的问题,(1)调用printf()函数时,格式式转换说明符与输出项必须顺序和数据类型上一一对应一致。,(2)VC6.0+规定:当格式说明符明个数少于输出项个数时,多余的输出项不予输出。当格式说符明个数多于输出项个数时,而输出不定值。,(3)当printf()函数中多个输出项为表达式时,VC6.0+规定先从右到左的顺序计算各表达式的值,然后再从左到右的顺序输出结果。,(4)在使用“f”格式符输出实数时,并非全部数字都是有效数字,单精度实数的有效位数一般为7位,双精度数的有效位数一般为16位。,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,25,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),例如:,#include“stdio.h”,void main(),float x=111111.111,y=222222.222;,printf(%f,x+y);,输出结果为:,333333.3,28125,/*前7位是有效数字,后面数字无意义*/,重庆电力高等专科学校,3.4 格式输入与输出3.4.1 printf()函数,26,3.4 格式输入与输出,3.4.1 printf()函数(格式输出函数),#include“stdio.h”,void main(),double x=111111.11111,y=222222.22222;,printf(%lf,x+y
展开阅读全文