您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言第三章程序控制.
1第3章程序控制结构2第3章程序控制结构►3.1语句►3.2输入与输出►3.3程序顺序结构►3.4程序选择结构►3.5程序循环结构33.1语句►语句(statement)是C程序的最小单位►程序由一条一条语句组成►语句执行的次序则称为流程►C语言语句分为简单语句、复合语句和控制语句43.1.1简单语句►1.表达式语句x=a+b;//赋值语句t=a,a=b,b=t;//a和b交换a+b+c;//运算但无实际意义表达式;//用分号结束53.1.1简单语句►2.函数调用语句printf(a+b=%d,a+b);//输出函数调用语句函数调用(实参);//用分号结束63.1.1简单语句►3.空语句►4.声明部分printf(“a+b=%d”,a+b);;//第2个即为空语句;//单个分号声明部分......;执行语句......;73.1.2复合语句►复合语句(compoundstatement),又称语句块,简称块(block){[局部声明部分......;]语句序列......;}83.1.2复合语句►复合语句内的每条语句必须以分号(;)结尾,但复合语句右大括号(})已表示结尾,因此其后不需要分号。►如果在后面添加分号,意思变为一个复合语句与一个空语句。{//复合语句doubles,a=5,b=10,h=8;//局部声明s=(a+b)*h/2.0;printf(area=%lf\n,s);}//复合语句不需要分号结尾93.1.2复合语句►复合语句内部可以进行变量定义或类型声明,这些定义或声明仅在复合语句内部可以使用,称为块的局部作用域。{intt,a=10,b=7;//定义局部变量t、a、bt=a,a=b,b=t;//仅在这个复合语句里使用}103.1.2复合语句►复合语句允许嵌套,即在复合语句里还可以包含复合语句。{//复合语句doublev1,r=5;//局部声明v1=4*3.1415926*r*r*r/3;{//嵌套的复合语句doublev2,h=12;//嵌套的局部声明v2=3.1415926*r*r*h;printf(%lf,%lf\n,v1,v2);}//嵌套的复合语句结尾}//复合语句结尾113.1.3注释►可以在程序中编写注释(comments),有两种形式:►①/*......*/块注释语法形式:/*......注释内容*/123.1.3注释►②//行注释语法形式:►说明:►(1)注释仅是对源程序的说明文字,它不是程序代码,对程序运行没有任何影响。►实际上,在编译程序时所有注释内容将被忽略。//......注释内容133.1.3注释►(2)/*......*/块注释允许多行注释,以(/*)开头,以(*/)结尾,这中间的任何内容均是注释内容。注释可以是任何来自于字符集的字符组合,包括换行符,也允许中文等非ASCII字符。►/*......*/不允许嵌套143.1.3注释►(3)//行注释表示从(//)开始直到本行末尾的所有字符均是注释内容。►//注释只能注释一行,如果要注释多行就要写多次。►一般//注释适用于短小精简的注释,/*......*/注释适用于大段注释。►(4)编译器将整个注释理解为一个空白字符,相当于一个空格的作用。153.1.4语句的写法►(1)多数情况下,在一个程序行里只写一个语句,这样的程序写法清晰,便于阅读、理解和调试。►(2)注意使用空格或TAB来作合理的间隔、缩进、对齐,使程序形成逻辑相关的块状结构,养成优美的程序编写风格。►(3)C语言允许在一行里写多个语句。►(4)C语言允许将一个语句拆成多行来写。163.2输入与输出►所谓输入是指从外部输入设备(如键盘、鼠标等)向计算机输入数据,输出是指从计算机向外部输出设备(如显示器、打印机等)输出数据。173.2输入与输出►C语言输入输出操作是通过函数实现的。►不同的函数能够处理形式多样的输入输出操作,支持不同的输入输出设备。►若在程序中调用标准输入输出函数,应该用文件包含命令将头文件stdio.h包含到程序中,命令形式为:#includestdio.h183.2.1字符输入与输出►1.字符输出putchar函数►putchar函数的作用是向显示终端输出一个字符,一般形式为:putchar(c);193.2.1字符输入与输出例3.11#includestdio.h2intmain()3{4chara='C',b=6;5putchar(a);//字符型变量,输出C6putchar(b+'0');//整型表达式,输出67putchar('\110');//转义字符(八进制)输出H8putchar('\n');//转义字符(换行),输出换行9return0;10}203.2.1字符输入与输出例3.11#includestdio.h2intmain()3{4chara='C',b=6;5putchar(a);//字符型变量,输出C6putchar(b+'0');//整型表达式,输出67putchar('\110');//转义字符(八进制)输出H8putchar('\n');//转义字符(换行),输出换行9return0;10}C6H程序运行屏幕213.2.1字符输入与输出►2.字符输入getchar函数►getchar函数的作用是从键盘终端输入一个字符,一般形式为:getchar()223.2.1字符输入与输出例3.21#includestdio.h2intmain()3{4charc1,c2,c3;5c1=getchar();c2=getchar();c3=getchar();6putchar(c1);putchar(c2);putchar(c3);7return0;8}233.2.1字符输入与输出例3.21#includestdio.h2intmain()3{4charc1,c2,c3;5c1=getchar();c2=getchar();c3=getchar();6putchar(c1);putchar(c2);putchar(c3);7return0;8}abc程序运行屏幕abc↙243.2.1字符输入与输出例3.21#includestdio.h2intmain()3{4charc1,c2,c3;5c1=getchar();c2=getchar();c3=getchar();6putchar(c1);putchar(c2);putchar(c3);7return0;8}ab程序运行屏幕a↙bc↙253.2.2格式化输出►1.printf函数►printf函数的作用是向标准输出设备(显示终端)输出格式化的数据,一般形式为:►(1)格式控制►格式控制为字符串形式,称为格式控制串printf(格式控制,输出项列表......);26►它主要有两种内容:►①格式说明。格式说明总是以百分号(%)字符开始,后跟格式控制字符,例如%d、%f等。它的作用是将输出项转换为指定格式输出。►②一般字符。除格式说明之外的其他字符,包含转义字符。一般字符根据从左向右的出现顺序直接输出到显示终端上,ASCII控制字符的输出有特殊的含义。3.2.2格式化输出%[flags][width][.prec][h|l|L|F|N]type273.2.2格式化输出表3-1printf格式说明域含义域域选描述含义type必需类型字符决定输出项转换为字符、字符串还是数值flags可选标志字符控制输出的对齐、符号、空格及八进制和十六进制前缀。可以出现多个标志width可选宽度说明指定输出项的最小显示宽度.prec可选精度说明指定输出项的最大输出字符数或浮点数小数精度h/l/L/F/N可选大小修饰指明输出项类型大小或指针的远近283.2.2格式化输出表3-2printf类型字符含义字符类型输出格式dint带符号的十进制整数uint无符号十进制整数oint无符号八进制整数x或Xint无符号十六进制整数(若输出为字母,x用abcdef,X用ABCDEF)293.2.2格式化输出表3-2printf类型字符含义字符类型输出格式fdouble具有[-]dddd.dddd格式的带符号数值,dddd为一位或多位十进制数字。小数点前数字个数取决于数的量级;小数点后面数字个数取决于所要求的精度e或Edouble具有[-]d.dddde[+/-]ddd格式的带符号数值,其中d为单个十进制数字,dddd为一位或多位十进制数字,ddd为三位十进制数。用e或E表示指数g或Gdouble以f或e格式输出的带符号数值,对给出的值及其精度,f和e哪个简洁就用哪个。只有当值的指数小于-4或大于、等于精度说明时才使用e格式。尾部的0被截断,只有小数点后跟1位或多位数字时才出现小数点。用e或E表示指数303.2.2格式化输出表3-2printf类型字符含义字符类型输出格式cchar单个字符s字符串指针直到第一个非空字符('\0')或满足精度的字符串%输出百分号'%'313.2.2格式化输出表3-3printf标志字符含义标志意义默认-在给定域宽内左对齐输出结果(右边用空格填充)右对齐(左边用空格或0填充)+如果输出值是有符号数,则总是加上符号(+或-)只在负数前加(-)空格如果输出值是有符号数或为正数,则以空格作为前缀加到输出值前;如果空格和+标志同时出现,则忽略空格无323.2.2格式化输出表3-3printf标志字符含义标志意义默认#指明使用如下的“转换样式”转换输出参数若类型字符为对输出参数的影响x或X在任何非0输出值前加上0x或0Xe,E,f强制在所有情况下输出值总是包含小数点只有小数点后面有数字时才显示它g,G同e和E,强制在所有情况下输出值中总是包含小数点并阻止截断尾部的0只有小数点后面有数字时才显示它,截断尾部的0333.2.2格式化输出表3-4printf宽度说明宽度说明对输出域宽度的影响n至少有n个字符宽度输出,如果输出值中的宽度小于n个,则输出用空格填充直到最小宽度规定(如果flags为-,则填充在输出值的右边,否则在左边)0n至少有n个字符宽度输出,如果输出值中的字符宽度小于n个,则输出用0填充在输出值的左边(对于左对齐无效)*间接设置宽度,此时由输出项列表提供宽度值,且它必须在输出项的前面343.2.2格式化输出表3-5printf精度说明精度说明精度影响.n类型含义e,E,f精度值指定小数点后数字的个数。四舍五入g,G精度值指定可输出的有效数字的最大数目s精度值指定可输出字符的最大数目,超出精度值范围的字符不予输出353.2.2格式化输出表3-5printf精度说明精度说明精度影响(无)精度按默认值:类型默认值e,E,f6g,G打印6个有效数字,尾部的0串被截断s输出直到空字符('\0')为止.0或仅有.类型含义363.2.2格式化输出续表3-5printf精度说明精度说明精度影响e,E,f,g,G输出不打印小数点(及其后的小数)s无任何字符输出*间接设置精度,此时由输出项列表提供精度值,且它必须在输出项的前面。如果宽度说明和精度说明同时使用*,则先出现宽度值,接着是精度值,然后才是输出项。373.2.2格式化输出表3-6printf类型大小修饰含义大小修饰type类型字符输出参数被解释为hd,o,x,X短整型(short)u无符号短整型(unsignedshort)ld,o,x,X长整型(long)u无符号长整型(unsignedlong)e,E,f,g,G双精度浮点型(double)Le,E,f,g,G长双精度浮点型(longdouble)383.2.2格式化输出inta=123,b=-1,c=12345;longh=-1;shorti=-1,j=32767;charc1=97;doublex=12.3456,y=12,z=12.123456789123;//①输出整型数据printf(%d,%u,%x,%X,%o\n,a,a,a,a,a);//十进制、无符号、十六进制和八进制//输出结果:123,123,7b,7B,173printf(%d,%u,%x,%X
本文标题:C语言第三章程序控制.
链接地址:https://www.777doc.com/doc-2909074 .html