null第3章 顺序结构程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
第3章 顺序结构程序设计 北京科技大学 计算机系C 语言程序设计程序的三种基本结构 程序的三种基本结构 顺序结构N-S结构图流程图选择结构程序的三种基本结构程序的三种基本结构循环结构直到型循环当型循环N-S结构图流程图本章主要内容:本章主要内容:C语言的语句类型
数据输出
数据输入
顺序结构程序设计3.1 C语言的语句类型3.1 C语言的语句类型主要内容:
说明性语句
表达式语句
控制语句
复合语句
3.1.1 说明性语句3.1.1 说明性语句对程序中使用的变量、数组、函数等操作对象进行定义、声明的描述语句
只起说明作用,不产生可执行的机器指令代码。
例如:int a,b;
float function( int, int);C程序由函数组成。函数的格式:
函数名(参数表)
{ 说明部分;
执行部分;
}数据类型说明语句可执行语句3.1.2 表达式语句 3.1.2 表达式语句 表达式后面加一个分号,构成表达式语句
x=3; y=y+5;
x=a-b && c || d ;
printf("x=%d, y=%d\n",x,y);
sort(a,10); 注意:
① 分号是语句必不可少的一部分
② 单独的一个分号“;” 构成一个空语句
例如: ; (空语句,是最简单的C语句)3.1.3 控制语句3.1.3 控制语句1.选择分支控制语句
if ( ) …else …
switch ( ) { … }
2.循环控制语句
for ( ) …
while ( ) …
do … while ( )
3.其他控制语句
break、continue、goto
return3.1.4 复合语句 3.1.4 复合语句 用一对花括号“{}”括起来的若干条语句
花括号中可以是说明语句、表达式语句、控制语句,也可以是复合语句
例如:
⑴ if (a>b) { max=a; min=b; }
⑵ for(n=1; n<10 ;n++)
{ p = n + p;
if( p >= 100 )
{ printf(“%d\n”, p);
break;
}
} 3.1.4 复合语句(续)3.1.4 复合语句(续)复合语句中如果有说明性语句,应该写在可执行语句的前面例如:
main( )
{ int a,b;
a=b=100;
{ float c=10.23;
printf("%f\n",c);
}
printf("%d %d\n",a,b);
}要特别注意:
花括号的配对
花括号的位置C语言学习的难点之一3.2 数据输出3.2 数据输出主要内容:
字符输出函数
格式输出函数3.2.1 字符输出函数 3.2.1 字符输出函数 函数调用的一般形式
putchar(ch)
功能:
在
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
输出设备(即显示器屏幕)上输出一个字符。
例如:
putchar('b');
putchar('\n');
putchar('\101');
putchar(st); 说明 说明 putchar是C语言的标准库函数,使用时必须加编译预处理命令:
#include "stdio.h" 或 #include
【例3.1】利用putchar函数输出字符。#include "stdio.h"
main( )
{ char c1,c2;
c1='a' ; c2='b' ;
putchar(c1);putchar(c2); putchar('\n');
putchar(c1-32);putchar(c2-32);
putchar('\n');
}输出结果:ab
AB例jc3_13.3.2 格式输出函数 3.3.2 格式输出函数 函数调用的一般形式
printf(格式控制, 参数2,…,参数n)
功能:按格式控制所指定的格式,在标准输出设备上输出参数2、…、参数n的值。
例如有程序段 :
int a=123,b=100;
printf("%d %d %d\n",a,b,a+b);
printf ("c = %d + %d = %d\n",a,b,a+b ); 格式控制 格式控制 用双引号括起的字符串,用于指定输出数据的类型、格式、个数
包括:普通字符和格式说明符照原样输出 printf ("c=%d+%d=%d\n", a, b, a+b );格式说明符:指定输出3个十进制整型数,分别为变量 a、b、a+b的值输出格式说明符输出格式说明符在%和格式符之间可以使用附加说明符附加格式说明符 附加格式说明符 例如:
%ld —— 输出十进制长整型数
%m.nf —— 右对齐,m位域宽,n位小数或n个字符
%-m.nf —— 左对齐 例3.2 整型数据的输出例3.2 整型数据的输出main( )
{ int a=11,b=22;
int m=-1; long n=123456789;
printf("%d %d\n",a,b);
printf("a=%d, b=%d\n",a,b);
printf("m: %d, %o, %x, %u\n",m,m,m,m);
printf("n=%d\n",n);
printf("n=%ld\n",n);
}程序输出:
1122
a=11, b=22
m: -1, 177777, ffff, 65535
n=-13035
n=123456789例jc3_a例3.3 实型数据的输出例3.3 实型数据的输出main( )
{ float x=1234.56,y=1.23456789;
double z=1234567.123456789;
printf("x=%f, y=%f \n",x,y);
printf("z=%f\n",z);
printf("z=%e\n",z);
printf("z=%g\n",z);
printf("z=%18.8f\n",z);
printf("x=%10.3f\n",x);
printf("x=%-10.3f\n",x);
printf("x=%4.3f\n\n",x);
}程序输出:
x=1234.560059, y=1.234568
z=1234567.123457
z=1.23457e+06
z=1234570
z= 1234567.12345679
x= 1234.560
x=1234.560
x=1234.560例jc3_b例3.4 字符型数据的输出例3.4 字符型数据的输出main( )
{ int m=97;
char ch='B';
printf("m: %d %c\n",m,m);
printf("ch: %d %c\n",ch,ch);
printf("%s\n","student");
printf("%10s\n","student");
printf("%-10s\n","student");
printf("%10.3s\n","student");
printf("%.3s\n\n","student");
}程序输出:
m: 97 a
ch: 66 B
student
student
student
stu
stu例jc3_c注意:注意:printf函数格式控制中的格式说明符与输出参数的个数和类型必须一一对应。
格式说明符的 % 和后面的描述符之间不能有空格。除 %X、%E、%G外类型描述符必须是小写字母。
长整型数应该用%ld(或%lo、%lx、%lu)格式输出,否则会出现输出错误。
printf函数的参数可以是常量、变量或表达式。在计算各参数值时,Turbo C采用从右至左的顺序求值。 3.3 数据输入3.3 数据输入主要内容:
字符输入函数
格式输入函数
3.3.1 字符输入函数 3.3.1 字符输入函数 函数调用的一般形式
getchar( )
功能:
从标准输入设备(即键盘)上交互输入一个字符。
例如:
getchar( ) ;
c = getchar( );
printf("%c \n",getchar( ));
例如:例如:【例3.8】getchar函数的应用。
#include "stdio.h"
main( )
{ char ch;
ch=getchar( );
printf("%c %d\n",ch,ch);
printf("%c %d\n\n",ch-32,ch-32);
}程序运行时输入:m 并按回车键后
输出结果是:
m 109
M 77例jc3_8说明:说明:getchar是C语言的标准库函数,使用时必须加编译预处理命令:
#include "stdio.h" 或 #include
getchar函数需要交互输入,接收到输入字符之后才继续执行程序。
连续使用getchar函数时,要注意字符的输入形式 ,例如执行如下程序段:char ch1,ch2;
ch1=getchar( );
ch2=getchar( );必须连续输入两个字符,中间不能有其他字符3.3.2 格式输入函数 3.3.2 格式输入函数 函数调用的一般形式
scanf(格式控制, 地址参数2…,地址参数n);
功能:按格式控制指定的格式,从标准输入设备(即键盘)交互输入数据,并依次存放到对应地址参数指定的变量中(即将输入值赋给变量)。
例如:
scanf ("%d%f",&a, &f);
scanf ("%o, %f ", &b,&x);
scanf ("a=%d, b=%d",&a,&b); 格式控制 格式控制 用双引号括起的字符串,用于指定输入数据的类型、格式、个数以及输入的形式
包括:普通字符和格式说明符照原样输入 scanf ("a=%d, b=%d", &a, &b);格式说明符:指定输入2个十进制整型数赋给变量 a 和 b输入格式说明符输入格式说明符在%和格式符之间可以使用附加说明符附加格式说明符 附加格式说明符 例如:
%ld、%lo——输入十进制、八进制长整型数
%lf、%le——输入双精度实型数
%mf——输入m位数(域宽)
%*d——忽略输入的一个整型数对float和double型指整数位数+小数点 +小数位数例如:例如:scanf ("%d%d%d", &a, &b, &c);
输入3个整型十进制数,以空白符
(空格、tab键或回车键)分隔
scanf ("%d, %o, %f ", &a, &b, &x);
输入3个数,以“,”分隔
scanf ("a=%d, b=%d", &a, &b);
输入的形式是:a=32, b=28
(普通字符要照原样输入)程序:程序:main( )
{ int a,b,c; long m;
float x; double y;
char ch, string[20];
printf("input a,b,c,m: ");
scanf("%d %o %x %ld",&a,&b,&c,&m);
printf("a=%d,b=%d,c=%d,m=%ld\n",a,b,c,m);
printf("input x,y: ");
scanf("%f %lf",&x,&y); getchar();
printf("x=%f, y=%f\n",x,y);
printf("input ch,string: ");
scanf("%c %s",&ch, string);
printf("ch=%c, string=%s\n\n",ch,string);
}运行jc3_d使用scanf函数应注意: 使用scanf函数应注意: 要求在程序运行中输入数据,输入的数据个数和类型必须与格式说明符一一对应。
地址参数形式:&变量名(除数组或指针变量)
格式控制中有普通字符时,必须照原样输入。
格式控制中无普通字符时,输入的数值型数据和字符串用空白符分隔,字符型数据不必分隔。
double型数据输入时,必须用%lf或%le格式
实型数输入时域宽不能用m.n形式的附加说明
为了减少不必要的输入量,除了逗号、分号、空格符以外,格式控制中尽量不要出现普通字符,也不要使用 '\n' 、'\t' 等转义字符注意(续) :注意(续) :格式符之间若无普通字符,则:
输入的数值型数据用空白符分隔
输入的 char型数据不必分隔
scanf ("%c%c%c", &ch1, &ch2, &ch3);
要输入:abc
不能输入:abc
注意数值型数据与char型数据的混合输入例如:
scanf ("%d%d", &m, &n);
scanf ("%c", &ch); 错误输入:3228
a 正确输入:3228a
3.4 顺序结构程序设计3.4 顺序结构程序设计3.4.1 顺序结构程序的一般算法描述可用:
变量初始化
赋值语句
输入函数调用语句注意各个语句的顺序3.4.2 顺序结构程序设计举例 3.4.2 顺序结构程序设计举例 【例3.15】数据交换。从键盘输入a、b的值,输出交换以后的值。
思路:在计算机中交换变量a和b的值,不能只写下面两个赋值语句
a=b ; b=a ; 正确的交换方法:
c=a ; a=b ; b=c;
程序:程序:main( )
{ int a,b,c;
printf("\ninput a, b: ");
scanf("%d,%d",&a,&b);
printf("\nbefore exchange:a=%d b=%d\n",a,b);
c=a; a=b; b=c;
printf("after exchange: a=%d b=%d\n",a,b);
}
程序运行情况如下:
input a, b: 32, 57
before exchange: a=32 b=57
after exchange: a=57 b=32 运行jc3_15举例: 举例: 【例3.16】已知三条边a、b、c,求三角形面积。计算三角形面积的海伦
公式
小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载
: 设定义:
整型变量 a、b、c
实型变量 s 、 area程序如下: 程序如下: #include "math.h"
main( )
{ int a,b,c;
float s,area ;
scanf("%d, %d, %d",&a,&b,&c);
s =1.0/2*(a+b+c) ;
area = sqrt(s*(s-a)*(s-b)*(s-c)) ;
printf("area = %8.3f \n",area) ;
}程序运行情况如下:
3,4,5
area = 6.000 实际上还需要判断a、b、c是否能构成三角形,即应该进行选择判断处理 运行jc3_16