3.1C语句概述3.3输入与输出语句3.4顺序程序设计举例第三章C语言简单程序设计(补充)第三章目录3.2程序的三种基本结构3.1C语句概述C语言的语句概述:C程序对数据的处理是通过“语句”的执行来实现的。一条语句完成一项操作(或功能)。一个为实现特定目的的程序应包含若干条语句。第三章3.1C语句概述表达式语句(表达式;)简单语句函数调用语句(函数名(参数表);空语句(;)C语言数据操作复合语句({一条或多条语句})语句条件语句(if语句,switch语句)结构化语句while语句循环语句do_while语句for语句流程控制语句break语句限定转向语句continue语句非结构化语句return语句非限定转向语句(goto语句)C语言的语句分类:第三章3.1C语句概述3.1.1简单语句1.表达式语句由表达式组成的语句称为表达式语句语句格式:表达式;分号(;)是语句结束的标志功能:计算表达式或改变变量的值。分类:运算符表达式语句赋值语句第三章3.1C语句概述运算符表达式语句运算符表达式后跟一个分号组成例:5;i++;语句的功能是,变量i的值增1。a=3,b=a+2,c=a+1;/*由三个赋值语句组成的逗号表达式语句。*/(1)a+b;/*算术表达式语句,计算a与b之和。*/第三章3.1C语句概述赋值语句赋值表达式后跟一个分号组成(2)例:x=y+z;/*计算y+z的和并赋值给变量x.。*/x=2;y=3;第三章3.1C语句概述2.函数调用语句由函数调用表达式后跟一个分号组成格式:函数名(参数列表);分类:标准库函数用户定义函数标准库函数调用原则:(1)要在程序中包含相应的头文件(2)调用的一般形式:函数名(参数列表);第三章3.1C语句概述标准函数调用的目的(1)如数学函数,为了得到函数的返回值。这类函数的调用一般出现在表达式中,作为表达式语句的一部分。一般不作为函数调用语句。(2)为了完成某项任务,而不是为了得到返回值。在表达式中调用函数,实际上是转去执行一段预先设计好的程序,求出结果后返回调用点。所以函数的值又叫函数的返回值。调用这类函数时,就直接用函数调用语句。例:scanf(%f,&x);printf(%f,x);第三章3.1C语句概述3.1.2复合语句一对大括号{}包围若干条语句组成。格式:{[数据说明部分;]执行语句部分;}注意:(1)在复合语句中的“内部数据描述语句”中定义的变量,是局部变量,仅在复合语句中有效。(2)复合语句结束的“}”之后,不需要分号。(3)复合语句可以出现在任何数据操作语句可以出现的地方。第三章3.1C语句概述例3-1:#includestdio.hvoidmain(){inta=11,b=21,c=31;printf(a=%d\tb=%d\tc=%d\n,a,b,c);{intb=22;floatc=3.3;printf(a=%d\tb=%d\tc=%f\n,a,b,c);a=b;}printf(a=%d\tb=%d\tc=%d\n,a,b,c);}程序运行结果a=11b=21c=31a=11b=22c=3.300000a=22b=21c=31第三章3.1C语句概述3.1.3空语句空语句就是一个分号。格式:;功能:执行该语句不做任何操作第三章3.1C语句概述C语言提供三种结构化语句来控制程序的执行流程:顺序结构:选择结构:循环结构:一种按书写顺序执行的结构。根据运行时的情况自动选择要执行的语句。根据情况自动重复执行有关语句。3.2程序的三种基本结构第三章3.2程序的三种基本结构顺序结构即按照语句书写顺序执行的程序结构。AB顺序结构第三章3.2程序的三种基本结构3.2.1顺序结构3.2.2选择结构选择结构又称为分支结构,是指有条件地选择要执行的程序段。选择结构示意图第三章3.2程序的三种基本结构…k=k2k≠k1…kkk=kkk=k1kA1A2BAk图3-4多分支选择结构真(非0)假(0)AB条件图3-3双分支选择结构3.2.3循环结构当条件成立(为“真”或非0)时,反复执行程序段A,否则不执行程序段A。第三章3.2程序的三种基本结构1.当型循环结构假(0)真(非0)A条件先执行程序段A,再判断条件是否为“真”(非0);若为“真”(非0),再执行A,如此反复,直到条件为“假”(0)为止。第三章3.2程序的三种基本结构2.直到型循环结构真(0)假(0)A条件3.3输入与输出语句C语言本身不提供输入/输出语句。C语言的输入/输出功能由C语言的标准I/O库函数提供。C语言的输入/输出库函数名称不是保留字(或称关键字)。如printf,scanf。第三章3.3输入与输出语句1、字符输入函数(1)函数原型intgetchar(void);(2)函数功能从标准输入设备(一般为键盘)读入一个字符,返回该字符的ASCII码值,并且将敲入的字符“回显”到屏幕上。第三章3.3输入与输出语句3.3.1字符输入与输出函数例3-3:#includestdio.h/*说明函数getchar的原型包含在哪个文件中*/voidmain(){inta;charb;a=getchar();b=getchar();printf(a=%c\ta=%d\tb=%c\tb=%d\n,a,a,b,b);}从键盘输入字符,该字符的ASCII编码值赋给a第三章3.3输入与输出语句程序运行情况如下:13↙a=1a=49b=3b=51第三章3.3输入与输出语句注意:调用函数getchar时,程序执行被中断,等待用户从键盘输入数据。当用户键入字符并敲回车键以后,程序继续运行。若用户输入字符后未按回车键,则键入的内容一直保留在键盘缓冲区中,只有用户键入回车键后,字符输入函数getchar才进行处理。函数getchar将回车键作为一个字符读入。如果程序中有两个以上函数getchar时,应该一次性输入所需字符,最后再按回车键,如上例所示。无论输入的是英文字母或标点符号还是数字,都是作为字符输入。第三章3.3输入与输出语句(1)函数原型intputchar(int);(2)函数功能向标准输出设备(一般为显示器)输出一个字符,并返回输出字符的ASCII码值。第三章3.3输入与输出语句2、字符输出函数例3-4:#includestdio.h程序运行结果为:ABBCmain(){inta=65;charb='B';putchar(a);putchar(65+1);putchar(b);putchar('B'+1);}包含函数putchar的头文件第三章3.3输入与输出语句3.3.2格式输出函数1.函数原型intprintf(char*format[,argument,...]);2.函数功能函数printf将一组参数,由format给定的格式规定输出格式,把数据格式化并且输出到标准输出设备。若出错,则返回负数。可以有多个参数第三章3.3输入与输出语句函数调用的一般形式:printf(格式控制字符串,输出项列表);◆必须用英文的双引号括起来。◆作用是控制输出项的格式和输出一些提示信息。◆要输出的表达式。◆常量、变量、运算符表达式、函数返回值等,每个输出项之间用逗号(,)分隔。第三章3.3输入与输出语句3.格式控制字符:(1)组成:普通字符、转义字符、格式说明。普通字符:按原样输出,主要用于输出提示信息。转义字符:指明特定的操作。格式说明:由%和格式字符串组成:%格式字符串。它表示按规定的格式输出数据。第三章3.3输入与输出语句例3-5#includestdio.hvoidmain(){inta=97,b=98;printf(1:%d%d\n,a,b);/*普通字符,原样输出*/printf(2:%d,%d\n,a,b);/*a,b以十进制整数形式输出*/printf(3:%c,%c\n,a,b);/*a,b以字符形式输出*/printf(4:a=%d,b=%d,a,b);}第三章3.3输入与输出语句程序运行结果为:1:97982:87,983:a,b4:a=97,b=98(2)格式说明的形式:%[flags][width][.prec][F|N|h|L][type]方括号表示该项可有可无可选的标志字符◆-:左对齐输出,缺省为右对齐输出◆+:正数输出加号(+),负数输出减号(-)◆空格:正数输出空格代替加号(+),负数输出减号(-)如:%+d,%-d,%d。十进制整数,指定输出宽度。▼指定宽度实际宽度,补空格。▼指定宽度≤实际宽度,按实际输出。▼不指定宽度,按实际输出。如:%+10d输出精度指示符。◆对整数,表示至少要输出的数字个数,不足补数字0,多出则原样输出。◆对实数,表示小数点后至多输出的数字个数,不足补数字0,多出则舍入处理。◆对字符串,表示最多输出的字符个数,不足补空格,多出则丢弃。输出长度修饰符:F:输出远指针存放的地址。N:输出近指针存放的地址。H或h:输出短整型数据的值。L或l:输出长整型或双精度值。格式字符,用来进行格式转换。(重点掌握)第三章3.3输入与输出语句(3)格式字符(type)一鉴表:字符说明d(或i)以带符号的十进制形式输出整数,不输出(+)号o以八进制无符号形式输出整数(不输出前导符数字O)x(或X)以十六进制无符号形式输出整数(不输出前导符Ox)u以无符号十进制形式输出整数c输出一个字符s输出字符串f以小数形式输出单、双精度数,隐含输出6位小数e(或E)以指数形式输出单、双精度数,小数位数为6位g(或G)由给定的值和精度自动选用%f或%e或%E格式%输出百分号(%)第三章3.3输入与输出语句例如:printf(%d\n,100);100printf(%5d\n,100);100100printf(%8d\n%8d″,100,100*100);10010010010000第三章3.3输入与输出语句10010010010000例如:printf(%o\n,-1);177777printf(%x,%X\n,-1);177777ffff,FFFFprintf(%u,%d,-1);177777ffff,FFFF65535,-1第三章3.3输入与输出语句printf(%4c,%c\n,'A','A');printf(%-8s,%8.2s,Name,Name);A,A例如:A,AName----,------Na第三章3.3输入与输出语句printf(%f\n%10.3f\n,100.7654321,100.7654321);printf(%e\n%10.9e,100.7654321,100.7654321);例如:100.765432100.765100.765432100.7651.00765e+21.00765432e+2第三章3.3输入与输出语句#includestdio.hvoidmain(){inti=8;printf(%d\t%d\t%d\n,++i,--i,i--);}例3-6:第三章3.3输入与输出语句计算方向输出结果为:768注意:使用函数printf时要注意一个问题,那就是输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右,也可从右到左。TurboC是按从右到左进行的。第三章3.3输入与输出语句#includestdio.hvoidmain(){inta=3,b=4;printf(%d\n,(a=b,b,a+3));/*输出序列是一个逗号表达式*/printf(%d\n,a=b,b,a+3);/*输出第一个参数变量a的值*/}例3-7:第三章3.3输入与输出语句输出结果为:743.3.3格式输入函数1.函数原型intscanf(char*format[,argument,...]);2.函数功能按规定格式从键盘输入若干任何类型的数据给argument所指的单元;返回读入并赋给argument的数据个数;遇文件结束返回EOF;出错返回0。可以有多个参数第三章3.3输入与输出语句3.函数调用的一般形式:scanf(格式控制字符串,地址列表);◆必须用英文的双引号括起来。◆由普通字符和格