C语言程序设计-第4章--顺序结构程序设计全文
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.1 格式输出——printf函数
在前面各章节中已多次用到了printf函数(格式输出函数),它的作用是将指定的数据按指定 的格式输出到显示器上。
1 printf函数的一般格式
格式输出函数printf,其一般格式为: printf("格式控制",输出项列表); 例如: printf("a=%d,b=%f",a,b);
/*调用名为printf的函数*/
—7—
4.1 C语句概述
3
控制语句
控制语句用于控制程序的执行流程,它们由特定的语句定义符组成。C语言有九种控制语句,可分 为以下三类:
(1)条件判断语句:if-else语句、switch-case语句。 (2)循环执行语句:while语句、for语句、do-while语句。 (3)转向语句:break语句、goto语句、continue语句、return语句。 例如,if-else语句具体可写成: if(x>y)
— 15 —
4.2 格式输入输出
各项的意义介绍如下:
4.2.1 格式输出——printf函数
标 志
1
标志字符为“-”或“+”,指定输出数据的对齐方式:指定“+”时,输出右对 齐;指定“-”时,输出左对齐;不指定标志时缺省为“+”,默认右对齐。
小输 宽出
2
度最
用十进制整数m来表示输出的最少位数。若实际位数多于定义的宽度, 则按实际位数输出;若实际位数少于定义的宽度,则补空格或0(如在m前有 数字0,则补0)。
printf("d=%c\n",d);
/*输出字符变量d*/
printf("%s\n","I love C");
/*输出字符串*/
return 0;
/*函数返回值0*/
}
— 19 —
4.2 格式输入输出
4.2.1 格式输出——printf函数
【运行结果】
程序运行结果如图所示。
— 20 —
4.2 格式输入输出
4.1 C语句概述
提示
严格来讲,程序中声明部分的内容不应称为语句。例如,“int a;”不是 一条C语句,因为它不产生机器操作,而只是对变量的定义。但是,为了方 便讲解,我们对两者并未进行严格区分。
总体而言,C语句可以分为以下五类。
—5—
4.1 C语句概述
1
表达式语句
表达式语句是由一个表达式加上分号组成。其一般形式为: 表达式; 执行表达式语句就是计算表达式的值。 例如,以下为赋值语句: x=y+z; a=520; 又如: y+z; 这是一条加法运算语句,但计算结果不能保留,无实际意义。
输出字符串时,“%15s”表示输出字符串宽度为15,如果字符串本身长度不足15,则用空格左补 齐,可以看到“I love C”前存在7个空格。“%-15.5s”表示输出宽度虽为15,但这里指定了精度 “.5”,也就是说指定了输出字符的个数为5,并且用“-”指定了左对齐,所以输出5个字符“I lov”, 后面还有10个空格。
while(getchar()!='\n'); 本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的循环体为空语句。
— 10 —
PART
4.2 格式输入输出
4.2 格式输入输出
C语言本身没有提供输入输出语句,输入和输出操作由C函数库中的函数来实现。在使用系统 库函数时,要使用预编译命令“#include”将有关的“头文件”包含进来。本节将介绍最常用的 标准输入输出函数——格式输入输出函数,这些函数包含在“stdio.h”文件中,故在程序开头应 该添加预编译命令:
把多条语句用大括号{}括起来组成的一个语句称复合语句。在程序中可把复合语句看成是单 条语句,例如:
{ x=y+z; a=b+c; printf("%d%d",x,a);
}
提示
复合语句内的各条语句都必须以分号结尾,在大括号“}”外不能加分号。
—9—
4.1 C语句概述
5
空语句
只有分号组成的语句称为空语句。空语句是什么也不执行的语句。在程序中,空语句可用来 作空循环体。例如:
#include<stdio.h> 或 #include"stdio.h"
名师 点睛
在初学本节内容时,读者不必花许多精力去探究每个细节,重点在掌握 最常用的一些规则。其他部分可在需要时随时查阅。学习这部分内容时最好 边看书边上机练习,通过编写和调试程序逐步深入地掌握输入输出的应用。
— 12 —
4.2 格式输入输出
4.2.1 格式输出——printf函数
【程序说明】
输出变量a时,“%5d”表示输出宽度为5,而a值为15,只有两位,故补三个空格;“%-5d”表示 输出宽度为5并且左对齐,因此后补三个空格;“%05d”表示输出宽度为5并用“0”来补空位。
输出变量b时,“%f”和“%lf”格式的输出相同,说明符号“l”对“f”类型无影响。“%8.3f”表 示输出宽度为8,精度为3,由于实际长度超过8位,故应按实际位数输出,小数位数超过3位部分被截去。
第4章
顺序结构程序设计
从第2章中我们了解到,无论多么复杂的程序,都可分解为顺序、选择、循环这三种基本结构, 而顺序结构是三种结构中最基本、最简单的结构,它按照语句的先后顺序依次执行。此外,很多程 序运行时都需要输入和输出数据,此时就要用到C语言提供的输入语句和输出语句了。
本章首先介绍了C语言中语句的类型,然后介绍了4种常用的输入输出函数,最后给出了三个 例子,让读者学会用简单的C语句进行顺序结构程序设计。
Байду номын сангаас
【例4-1】
使用格式输出函数printf输出不同类型变量。
#include <stdio.h>
int main()
{
int a=15;
/*定义整型变量a并赋值*/
float b=12.3456;
/*定义单精度型变量b并赋值*/
double c=12345678.1234567;
/*定义双精度型变量c并赋值*/
— 25 —
4.2 格式输入输出
4.2.2 格式输入——scanf函数
括号内包括两部分内容:
(1)“格式控制”与printf函数类似,也包含两部分内容:格式声明与普通字符。 格式声明用于规定输入的格式(如%d、%f等),如输入数据的类型、长度等;普通字 符是需按原样输入的字符,如前面的“a=”、“b=”及中间的逗号。
— 14 —
4.2 格式输入输出
4.2.1 格式输出——printf函数
2 printf函数中的格式声明
下面,我们重点介绍一下格式声明这部分内容。格式声明一般形式为: %[标志][0][输出最小宽度][.精度][长度]格式字符 其中方括号[]中的项为可选项。也可以表示为: %[±][0][m][.n][l或h]格式字符
— 16 —
4.2 格式输入输出
4.2.1 格式输出——printf函数
精 度
3
精度格式符以“.”开头,后跟十进制整数n。意义是:如果输出数字, 则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位 数大于所定义的精度数,则截去超过的部分。
长 度
4
长度格式符有h和l两种,h表示按短整型输出,l表示按长整型输出。
— 13 —
4.2 格式输入输出
4.2.1 格式输出——printf函数
括号内包括两部分内容: (1)“格式控制”是用双撇号括起来的一个字符串,称为“转换控制字符串”。它包括两个信息: ① 格式声明。格式声明由“%”和格式字符组成,如%d、%f等。它的作用是以指定的格式输出数据。 ② 普通字符。普通字符即需要原样输出的字符,例如,上面printf函数双撇号内的“a=”、“b=”及中间 的逗号都是普通字符,会原样输出到屏幕上。 (2)“输出项列表”是程序需要输出的一些数据,可以是常量、变量或表达式。输出项列表中给出了各 个输出项,要求格式声明和各输出项在数量和类型上应该一一对应。例如,以下的printf函数中,第一个“%d” 与变量a对应,第二个“%c”与变量b对应,第三个“%d”与表达式a+b对应。
空位补0*/ /*输出b,用m.n控制输出的长度和
小数点位数*/ /*使用m控制输出字符串长度*/ /*使用-m.n进行左对齐、限制字符串
长度和字符位数*/ /*函数返回值0*/
— 22 —
4.2 格式输入输出
4.2.1 格式输出——printf函数
【运行结果】
程序运行结果如图所示。
— 23 —
4.2 格式输入输出
4.2.1 格式输出——printf函数
【程序说明】 在程序中定义的整型变量a,输出时可以用不同的格式字符输出a的十进制数(%d)、八进制 数(%o)和十六进制数(%x)。输出单精度和双精度小数时都可以用“%f”,若想以指数形式 输出单精度型和双精度型数,可以用“%e”。此外,可以用“%c”输出单个字符,用“%s”输 出字符串。需要注意的是,输出字符串时,字符串需要用双撇号括起来。
— 24 —
4.2 格式输入输出
4.2.2 格式输入——scanf函数
格式输入函数scanf的作用是将数据按规定的格式从键盘上读入到指定变量中。
1 scanf函数的一般格式
格式输入函数scanf的一般格式为: scanf("格式控制",输入项地址列表); 例如: scanf("a=%d,b=%f",&a,&b);
以指数形式输出单、双精度实数。用e时,指数以“e”表示(如2.3e+003),用E时指数以“E”表示(如2.3E+003)
以%f或%e中较短的输出宽度输出单、双精度实数,不输出无意义的0。用G时,若以指数形式输出,指数用大写表示
输出单个字符 输出字符串
— 18 —
4.2 格式输入输出
4.2.1 格式输出——printf函数
— 17 —
4.2 格式输入输出
4.2.1 格式输出——printf函数
字格 符式
5
格式字符 d o x,X u f e,E
g,G c s
格式字符用来表示输出数据的类型,各种格式字符及其功能说明如表所示。
功能说明 以十进制形式输出带符号整数(正数不输出符号) 以八进制形式输出无符号整数(不输出前缀0) 以十六进制形式输出无符号整数(不输出前缀0x)。x表示以小写字母输出十六进制数的a~f,X表示以大写字母输出十六进制数 的A~F 以十进制形式输出无符号整数 以小数形式输出单、双精度实数,隐含输出6位小数
—6—
4.1 C语句概述
2
函数调用语句
函数调用语句由一个函数调用加上分号组成。其一般形式为:
函数名(实际参数列表);
执行函数调用语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体
中的语句,求取函数值(详见第8章)。
例如,调用printf函数,输出字符串。
printf("Hello!");
char d='p';
/*定义字符型变量d并赋值*/
printf("十进制a=%d,八进制a=%o,十六进制a=%x\n",a,a,a);/*输出变量a的十进制、八进制和十
六进制形式*/
printf("b=%f\n",b);
/*输出变量b*/
printf("c=%f,c=%e\n",c,c);
/*输出变量c的小数形式和指数形式*/
printf("x\n"); else
printf("y\n"); 其中x>y是一个“判别条件”,printf("x\n");和printf("y\n");是语句,这两条语句内嵌在if-else语句中, 其作用是:先判断“x>y”是否成立,如果成立,输出x,否则输出y。
—8—
4.1 C语句概述
4
复合语句
➢ 了解C语句的概念与类型
学
➢ 掌握格式输入输出函数的使用方法
习
➢ 掌握字符输入输出函数的使用方法
目
➢ 掌握编写简单顺序结构程序的方法
标
4.1
4.2
目录
4.3
CONTENTS
4.4
4.5
C语句概述 格式输入输出 字符输入输出 应用举例 常见错误分析
PART
4.1
C语句概述
C语言中的语句是用来向计算机系统发出操作 指令的,所以说,语句是用来完成一定操作任 务的。一个实际的程序应该包含若干条语句。
— 21 —
4.2 格式输入输出
4.2.1 格式输出——printf函数
【例4-2】
在printf函数中使用附加符号。
#include <stdio.h> int main() {
int a=15; double b=12345678.1234567; printf("a=%5d,a=%-5d,a=%05d\n",a,a,a);
printf("b=%f,b=%lf,b=%8.3f\n",b,b,b);
printf("%15s\n","I love C"); printf("%-15.5s\n","I love C");
return 0; }
/*定义整型变量a并赋值*/ /*定义双精度型变量b并赋值*/ /*使用m控制输出位数,用-左对齐,