Presentation is loading. Please wait.

Presentation is loading. Please wait.

第4章 顺序程序设计.

Similar presentations


Presentation on theme: "第4章 顺序程序设计."— Presentation transcript:

1 第4章 顺序程序设计

2 本 章 内 容 C语句概述 赋值语句 数据的输入输出 字符数据的输入输出 格式输入与输出 顺序结构程序设计举例

3 4.1 C语句概述 C语句 用来完成一定操作任务的。 声明部分的内容不应称为语句。 C程序结构 C程序由若干个源程序文件组成。
一个源程序由若干个函数和预编译命令以及全局变量声明部分组成。 一个函数由数据定义部分和执行语句组成。(见图4.1) 例如: #include <stdio.h> int fact(int n) { int i = 1, f = 1; while(i <= n) f = f*i; i = i + 1; } return f; main() { int n, m; scanf("%d", &n); m = fact(n); printf("%d\n", m); }

4 4.1 C语句概述 C语句分为五大类(见p68) 控制语句:9种 函数调用语句 表达式语句:任何表达式后加上分号即为表达式语句。 例如:
赋值表达式:a = 3 赋值语句: a = 3; 空语句: ; (只有一个分号) 复合语句:用{ }把若干条语句括起来成为复合语句。

5 4.2 赋值语句 赋值语句的构成 由赋值表达式加上分号(;)构成。 赋值语句的特点 C语言中赋值号"="是一个运算符。
赋值表达式可以被包含在其它表达式中,而赋值语句不能。 例如: if((a=b) > 0) t = a;

6 4.3 数据的输入输出 基本概念 输入输出是对计算机的主机而言。 C语言的输入输出是由函数来实现的
例如,printf函数、scanf函数等。 函数以库的形式存放在系统中。 不同的计算机系统提供的库函数的数据、名字和功能不完全相同。 标准输入输出函数---以标准I/O设备为I/O对象。 使用C的库函数时,要用预编译命令#include 将有关的头文件包括到用户源文件中。 例如: #include <stdio.h> 输入设备 主机 输出设备 input output

7 4.4 字符数据的输入输出 字符输出函数 putchar() 向终端输出一个字符 例: putchar(c); c可以是字符变量和整型变量。
输出控制字符(转义字符) putchar('\n'); putchar('\101'); putchar('\''); putchar('\015');

8 4.4 字符数据的输入输出 字符输入函数 getchar() 从终端输入一个字符,没有参数,一般形式为:getchar()。
例如: char c; c = getchar(); printf("%c, %c", c, getchar()); putchar(c); putchar(getchar());

9 4.5 格式输入与输出 格式输出函数 printf 作用:向终端输出任意类型的多个数据。 一般格式: printf(格式控制, 输出表列)
例如: printf("%c, %d", c, a); "%格式字符"或"普通字符" 输出变量、表达式

10 4.5 格式输入与输出 格式字符(9种) d格式符:用来输出十进制整数。 %d:按实际长度输出。
%md:指定输出字段宽度为m,当位数小于m时,左端补空格;当位数大于m时,按实际位数输出。 如:printf("%4d, %4d", a, b); 若a=123, b=12345,则输出结果为: 123, 12345 %ld:输出长整型数据,对应于long型数据。 o格式符:将符号位一起,以8进制数形式输出整数。 x格式符:将符号位一起,以16进制数形式输出整数。 u格式符:以十进制数形式输出unsigned型数据,也可用%o或%x格式输出。

11 4.5 格式输入与输出 c格式符:用来输出一个字符。如: char c = 'a'; printf("%c", c);
也可以指定输出字符宽度,右靠齐。 s格式符:用来输出一个字符串。 %s 例如: char ss[] = "hello"; printf("%s", ss); printf("%s", "hello"); %ms %-ms %m.ns %-m.ns

12 4.5 格式输入与输出 例如:字符串的输出 main() {
printf("%3s, %7.2s, %.4s, %-5.3s\n", "CHINA", "CHINA", "CHINA", "CHINA"); } 输出结果: CHINA, CH, CHIN, CHI f格式符:以小数形式输出实数。 %f:系统自动指定宽度,整数部分全部输出,输出6位小数。 %m.nf %-m.nf

13 4.5 格式输入与输出 e格式符 %e %m.ne %-m.ne g格式符:根据数值的大小,自动选f格式或e格式,且不输出无意义的零。
归纳如表4.1。 使用printf函数输出数据时,注意数据类型和格式的匹配。 除了X、E、G外,其他格式字符必须用小写字母。 格式控制字符串中可包含转义字符。 格式说明以"%"开头,加格式字符。格式说明之间可插入其他字符。 在格式控制字符串中用"%%"输出"%"。

14 4.5 格式输入与输出 格式输入函数 scanf 从终端设备(键盘)输入多个数据。 一般格式: scanf(格式控制, 地址表列)
例4.9: main() { int a, b, c; scanf("%d%d%d", &a, &b, &c); printf("%d, %d, %d", a, b, c); } 说明 变量的地址在编译连接阶段分配。 用"%d%d%d"格式输入数据时,一般不能用逗号作两个数据间的分隔符,用一个或多个空格,或回车键、tab键。

15 4.5 格式输入与输出 格式说明 和printf函数中的格式说明相似,以%开头,以一个格式字符结束,中间可以插入附加的字符。
对unsigned型变量所需的数据,可以用%u,%d或%o,%x格式输入。 可以指定输入数据所占列数,系统自动按它截取所需数据。如: scanf("%3d%3d", &a, &b); 输入: 结果:a = 123 b = 456 scanf("%3c", &ch); 输入:hello 结果:ch = 'h' 如果在%后有一个"*"附加说明符,表示跳过它指定的列数。 输入数据时不能规定精度。 如:scanf("%7.2f", &a); //error

16 4.5 格式输入与输出 使用scanf函数时应注意事项 scanf函数的第二个参数为变量地址,不是变量名。
如果在"格式控制"字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。 例如: scanf("%d, %d", &a, &b); 正确输入:3, 错误输入:3 4 或 3:4 scanf("%d%d", &a, &b); 输入时两个数据之间空2个或更多的空格字符。 scanf("%d : %d : %d", &h, &m, &s); 正确输入:12 : 34 : 56 scanf("a=%d, b=%d, c=%d", &a, &b, &c); 正确输入:a=12, b=24, c=36

17 4.5 格式输入与输出 在用"%c"格式输入字符时,空格字符和"转义字符"都作为有效字符输入。 如:
scanf("%c%c%c", &c1, &c2, &c3); 若输入:abc 则:c1='a' c2='' c3='b' 在输入数据时,遇以下情况时该数据认为结束。 遇空格,或按"回车"或"跳格"键(tab)。 按指定的宽度结束。 遇到非法输入。

18 4.6 顺序结构程序设计例 例4.10:输入三角形的三边长,求三角形的面积。 #include <math.h> main()
{ float a, b, c, s, area; scanf("%f,%f,%f",&a,&b,&c); s = (a+b+c)/2; area = sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n", a, b, c, s); printf("area=%7.2f\n", area); } 输入:3, 4, 6 a=3.00,b=4.00,c=6.00,s=6.50 area=5.33

19 4.6 顺序结构程序设计例 例4.11:从键盘输入一个大写字母,要求改用小写字母输出。 #include <stdio.h>
main() { char c1, c2; c1 = getchar(); printf("%c, %d\n", c1, c1); c2 = c1 + 32; } 输入: A(回车) 输出: A, 65 a, 97

20 4.6 顺序结构程序设计例 求一元二次方程的根。 #include <math.h> main() {
float a, b, c disc, x1, x2, p, q; scanf("a=%f, b=%f, c=%f", &a, &b, &c); disc = b*b – 4*a*c; p = -b/(2*a); q = sqrt(disc)/(2*a); x1 = p+q; x2 = p-q; printf("x1=%5.2f\nx2=%5.2f\n", x1, x2); }

21 作 业 P88-89 4.5 4.6 4.8


Download ppt "第4章 顺序程序设计."

Similar presentations


Ads by Google