250 likes | 375 Views
第 四 章 顺 序 程 序 设 计. 主要内容. 一、 C 语句分类 二、赋值语句 三、数据输入与输出 四、顺序结构程序设计. 一、 C 语句分类. 第四章 顺序结构程序设计. if () ~ else ~ switch for () ~ while () ~ do ~ while() continue break goto return. if (x>y) z=x; else z=y;. 控制语句. C 语句. printf("Hello!");. 函数调用语句. 由一次函数调用加一个分号构成一个语句。.
E N D
主要内容 一、C语句分类 二、赋值语句 三、数据输入与输出 四、顺序结构程序设计
一、C语句分类 第四章 顺序结构程序设计 if () ~ else ~ switch for () ~ while () ~ do ~ while() continue break goto return if (x>y) z=x; else z=y; 控制语句 C语句 printf("Hello!"); 函数调用语句 由一次函数调用加一个分号构成一个语句。 ? a=3; 表达式语句 由表达式加一个分号构成一个语句。 ? 1、出现在函数体的执行 部分。 2、作用是向计算机系统 发出操作指令。 空语句 { t=a; a=b; b=t; } ; 复合语句 由{ }将一些语句括起来。
二、赋值语句 第四章 顺序结构程序设计 构成方式 由赋值表达式加分号构成。 例1 a=3; b=a*3+5; 1、C语言中赋值号"="是一个运算符。 2、C语言中既有赋值表达式又有赋值语句的概念。 3、C语言把赋值语句和赋值表达式区分开来,赋 值表达式可以包括在其他表达式中,增加了表 达式的种类,使表达式的应用几乎无孔不入, 能实现其他语言难以实现的功能。 赋值表达式与赋值语句的区别 例2 if ((a=b)>0) t=a; if ((a=b;)>0) t=a;
第四章 顺序结构程序设计 三、数据输入与输出 (一)、C的输入与输出 (二)、单个字符的输出 (三)、单个字符的输入 (四)、格式输出 (五)、格式输入
(一)、C的输入与输出 第四章 顺序结构程序设计 1、所谓输入输出是以计算机为主体而言的。 2、输入输出操作是由函数实现的。 说明 标准输入输出函数 putchar( ) getchar( ) puts( ) gets( ) printf( ) scanf( ) 预编译命令 在使用C语言库函数时,要用预编译命令"#include"将有关的"头文件"包括到用户源文件中。 举例 #include <stdio.h> main() { printf("Hello!" ); } #include "stdio.h" 注:在TC环境中,若使用printf()或scanf()函数,则前面的预编译命令可以省略!在VC++环境中不能省略!
(二)、单个字符的输出——putchar函数 第四章 顺序结构程序设计 输出 显示器 作用 向终端(或系统默认的输出设备)输出一个字符。 八进制数101-〉65-〉A 格式 putchar(ch); ? 注:ch可以是一个字符型(整型)变量、常量或表达式; 也可以是一个转义字符,如 putchar('\n')、putchar('\101')。 举例 #include <stdio.h> void main() { char ch1='B',ch2='O',ch3='Y'; putchar('\"'); /*输出双引号*/ putchar(ch1); putchar(ch2); putchar(ch3); /*输出BOY*/ putchar('\"'); /*输出双引号*/ } "BOY" putchar('B');
(三)、单个字符的输入——getchar函数 第四章 顺序结构程序设计 输出 输出 键盘 作用 从终端(或系统默认的输入设备)输入一个字符。 格式 getchar(); 注:getchar函数没有参数,所接受的字符可以赋给字符型或整型变量,也可以作为表达式的一部分。输入完毕,必须按回车键。 ? a _ 举例 #include<stdio.h> void main() { char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); } 输入: a ab_ 输入: a b
(四)、格式输出——printf函数 第四章 顺序结构程序设计 作用 向终端(或系统默认的输出设备)输出若干个任意类型的数据。 格式 printf("格式控制字符串"[,输出列表]); 将输出的数据转换为指定的格式输出。 说明 1、 "格式控制字符串"是用双撇号引起来的字符串,包括三种信息: (1)格式说明:由%和格式字符组成。 (如%d、%f) (2)普通字符:需要按原样输出的字符。 (3)转义字符: (如\t、\n、\b、\r等) 2、"输出列表"是需要输出的一些数据,可以是表达式。
输出 输出 例1 如果x=100,ch= ' A ',那么下面的输出语句将输出什么结果? printf("sum=%d \n%c", x, ch); sum=100 A_ 普通字符 转义字符 格式说明 输出列表 例2 #include <stdio.h> void main() {int a,b; a=3; b=4; printf("输出结果为:"); printf("%d %d\n",a,b); printf("a=%d, b=%d\n",a,b); printf("a+b=%d",a+b); } 输出结果为:3 4 a=3, b=4 a+b=7 _
格式说明的一般形式 格式说明必须以%开始,以格式字符结束。 一般形式如下: % [标志] [宽度] [.精度] [l] [格式字符] 长整型整数 输出数据向左靠拢 d/f/c/u/s等 - - m n 对实数:输出小数点位数; 对字符串:截取字符的个数 输出数据最小宽度
格式字符 第四章 顺序结构程序设计 字符 说明 l 用于长整型数据输出,可加在d o x u 前面 m 数据最小宽度 n 对实数,表示输出n位小数;对字符串,表示 截取的字符个数 - 输出数据向左靠拢 格式字符 格式说明 d, i 以带符号的十进制数输出整数(正数不输出符号) c 以字符形式输出,只输出一个字符 f 以小数形式输出单、双精度数,隐含6位小数 e,E 以指数形式输出实数 o 以八进制无符号形式输出整数(不输出前导符0) x,X 以十六进制无符号形式输出整数(不输出前导符0x) …… …… 格式字符 P81 附加格式说明字符
格式输出举例——d格式符 #include <stdio.h> main() { int num1=123; long num2=123456; /*用3种不同格式,输出int型数据num1的值*/ printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n", num1,num1,num1,num1); /*用3种不同格式,输出long型数据num2的值*/ printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2); printf("num1=%ld\n",num1); }
格式输出举例——f格式符 第四章 顺序结构程序设计 整数部分全部输出, 小数部分输出6位 因有效位数为7位,因此 后面数字不准确。 综合举例 float x,y; x=111111.111; y=222222.222; printf("%f",x+y); 333333.328125 float x=123.456; printf("%f",x); printf("%10f",x); printf("%10.2f",x); printf("%.2f",x); printf("%-10.2f",x); 123.456001 123.456001 123.46 123.46 123.46 实数最常用的 两种输出格式
格式输出举例——e格式符 第四章 顺序结构程序设计 综合举例 float x=123.456; printf("%e",x); printf("%10e",x); printf("%10.2e",x); printf("%.2e",x); printf("%-10.2e",x); 1.234560e+002 1.234560e+0021.23e+002 1.23e+002 1.23e+002 输出: 1.234560e+002 尾数部分 指数部分 2 6 5 总宽度为 13
格式输出举例——c格式符 输出 #include <stdio.h> void main() { char c='A'; int i=65; printf("c=%c,%5c,%d\n",c,c,c); printf("i=%d,%c",i,i); } c=A,A,65 i=65,A 注意 在C语言中,整数可以用字符形式输出,字符数据也可以用整数形式输出。将整数用字符形式输出时,系统首先求该数与256的余数,然后将余数作为ASCII码,转换成相应的字符输出。
格式输出举例——s格式符 #include <stdio.h> void main() { printf("%s,%5s,%-10s,","Internet","Internet","Internet"); printf("%10.5s,%-10.5s,%4.5s\n","Internet","Internet","Internet"); } 输出: Internet,Internet,Internet, Inter,Inter,Inter 注意 系统输出字符和字符串时,不输出单引号和双引号。
(五)、格式输入——scanf函数 第四章 顺序结构程序设计 作用 从终端(或系统默认的输入设备)输入若干个任意类型的数据。 格式 scanf("格式控制字符串"[,地址列表]); • 1、 "格式控制字符串"与printf函数类似。可以包含以下三种类型 的信息: • 格式说明:与printf类似,以%开始,以一个格式字符结束; • 空白字符(空格、\t、\n):输入多个数据时的缺省分隔符,可以省略,在输入数据时可以以任一种空白字符分隔; • 普通字符(照原样输入)。 • 2、 "地址表列"是由若干个地址组成的列表,各地址之间用逗号分隔。如变量的地址表示为:&变量名。 说明
格式输入举例——d格式符 第四章 顺序结构程序设计 34 3,4 int a,b; scanf("%d%d",&a,&b); printf("%d,%d",a,b); 举例 3 4 3,4 int a,b; scanf("%d,%d",&a,&b); printf("%d,%d",a,b); 3 , 4 3,4 当输入多个数据时,若各个格式说明之间没有其他字符,则系统默认使用空格键、回车键和Tab键进行间隔;若格式说明之间有其他字符,则必须照原样输入。 注意
格式输入举例——f格式符 第四章 顺序结构程序设计 float a; scanf("%f",&a); printf("%f",a); 输入: 3.2 举例 输出: 3.200000 输入: 3.218 float a; scanf("%3.2f",&a); printf("%f",a); 输出: -107374176.000000 当输入浮点型数据时,不能规定精度。如果指定了精度,编译时不会报错,但输入的数据将不可预知。 注意
格式输入举例——c格式符 第四章 顺序结构程序设计 char ch1,ch2,ch3; scanf("%c%c%c",&ch1,&ch2,&ch3); printf("ch1=%c,ch2=%c,ch3=%c\n",ch1,ch2,ch3); 举例 输入: abc 输出: ch1=a,ch2= ,ch3=b 其中:ch2的值为空格。 使用格式说明符"%c"输入单个字符时,空格和转 义字符均作为有效字符被输入。 注意
四、顺序结构程序设计 第四章 顺序结构程序设计 在顺序结构程序中,各语句(或命令)是按照位置的先后次序,顺序执行的,且每条语句都会被执行到。 例1 从键盘输入一个大写字母,转换成相应的小写字母输出。 运行情况: #include <stdio.h> void main() { char c1,c2; //增强人机交互性。 printf("请输入一个大写字母:"); c1=getchar(); printf("%c,%d\n",c1,c1); c2=c1+32; printf("%c,%d\n",c2,c2); } 请输入一个大写字母:A A,65 a,97
第四章 顺序结构程序设计 输入a,b,c p (a+b+c)/2 ssqrt(p*(p-a)*(p-b)*(p-c)) 输出s 例2 输入三角形的三边,求三角形的面积。 分析 a,b,c:表示三角形的三边。 p:中间变量。 p=(a+b+c)/2 s:三角形面积。 以上变量均为实型。 #include <stdio.h> #include <math.h> void main() { float a,b,c,p,s; printf("请输入三角形的三边:"); scanf("%f%f%f",&a,&b,&c); p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("s=%7.2f\n",s); } 运行情况: 请输入三角形的三边:3 4 5 s=6.00 若输入 3 4 8 -2 -3 9 ?
例3 输入任意三个整数,求它们的和及平均值。 ?数据类型 分析 num1,num2,num3:表示三个整数。 sum:求和结果 aver:平均值 #include <stdio.h> void main(){ int num1,num2,num3,sum; float aver; printf("请输入三个整数:"); scanf("%d,%d,%d",&num1,&num2,&num3);/*输入三个整数*/ sum=num1+num2+num3; /*求累计和*/ aver=sum/3.0; /*求平均值*/ printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3); printf("sum=%d,aver=%7.2f\n",sum,aver);} 请输入三个整数:3,6,10 num1=3,num2=6,num3=10 sum=19,aver= 6.33 3.0改为3可以么?
作 业 第四章 顺序结构程序设计 P88: 4.4, 4.6, 4.8, 4.9, 4.10