《第3章简单程序设计.ppt》由会员分享,可在线阅读,更多相关《第3章简单程序设计.ppt(34页珍藏版)》请在三一文库上搜索。
1、2019年4月6日星期六9时18分13秒,1,C语言程序设计,主讲:何希平 Prof. & Ph.D.,Tel:62769115 15923039051 E-mail:,2019年4月6日星期六9时18分13秒,2,第3章 顺序结构程序设计,3.1 C语言的基本语句 3.2 数据输入与输出 3.3 程序举例,2019年4月6日星期六9时18分13秒,3,教学目的和基本要求:,要求学生了解语句,尤其是复合语句的概念和使用场合,教学重点:,复合语句,2019年4月6日星期六9时18分13秒,4,程序设计语言有顺序、选择、循环三种基本的控制结构。,B,A,图3.1 顺序结构执行流程,顺序结构是最基本
2、的控制结构,其包含的语句是按照书写的顺序执行的,且每条语句都将被执行。程序流程如图3.1 所示,语句按书写顺序执行。先执行A,再执行B。,例: main() int a,b,temp; scanf(“%d%d“, ,输入:14 8 输出8,14,2019年4月6日星期六9时18分13秒,5,C语言的语句可分为以下四类: 简单语句(包括输入/输出函数) 空语句 复合语句 流程控制语句。,3.1 C语言的基本语句,本章将介绍前三种语句。,2019年4月6日星期六9时18分13秒,6,3.1.1 简单语句,表达式语句: 由一个表达式加上一个分号构成。,如:A+; x=1; p+=q*4+5; y=4
3、2?6:1;,空语句: 由一个分号表示,一般形式为: ; 空语句在语法上是一条语句,但执行时不做任何操作。,2019年4月6日星期六9时18分13秒,7,C 语言有丰富的标准函数库, 可提供各类函数供用户调用,完成预先设定好的操作. 例如调用标准库函数求数学函数值: sin(x) 、cos(x) 、 exp(x) (求ex ) 、fabs(x) (求x的绝对值)、log(x)等。,3. 函数调用语句: 由函数调用表达式加分号构成. 如:printf(“%d“,a); scanf(“%f“,2019年4月6日星期六9时18分13秒,8,调用标准库函数要注意:,在程序中要包含相应的头文件,例如:#
4、include,#include,调用规则: 函数名(参数表),例如: y=sin(1.7); x=pow(3,18);(指数函数,x的y次幂p358),函数调用的实质:,在调用点转去执行一段预先设计好的程序,求出结果后返回调用点。图例 函数的值又叫函数的返回值。,2019年4月6日星期六9时18分13秒,9,调用函数A,函数A,执行函数A,函数执行结束,继续执行剩余的语句,主函数main(),end,例: int max(int x,int y) int z; z=xy?x:y; return(z); main() int a,b; scanf(“%d%d“, ,函数调用语句,在主函数中,可
5、以如使用简单变量一样使用max,类型为int型,内有值。若输入3 4 ,则max中的值为4。,2019年4月6日星期六9时18分13秒,10,如: 数学表达式 y=|3sinx+4cosx|+ex ,可以用C语言表达式表示为:,其中,fabs,sin,cos,exp都属于头文件math.h,用到这些函数,必须在程序的预处理语句中用#include把数学函数库包含进来。,y=fabs(3*sin(x)+4*cos(x)+exp(x);,2019年4月6日星期六9时18分13秒,11,3.1.2 复合语句, 语句1; 语句n; ,用一对花括号,把若干条语句括起来,就形成了一条复合语句。形式如下:,
6、花括号中的语句,可以是简单语句、空语句、复合语句、流程控制语句,所有这些语句括在一起,在语法上看成是一条语句,执行时顺序执行花括号中的每条语句。复合语句多用于流程控制语句中。,2019年4月6日星期六9时18分13秒,12,3.2 数据输入与输出,格式: putchar( c ) 参数: c为字符常量、变量或表达式 功能:把字符c输出到显示器上 返值:正常,为显示的代码值;出错,为EOF(-1),C语言无I/O语句,I/O操作由函数实现 #include 3.2.1 数据输出 字符输出函数,2019年4月6日星期六9时18分13秒,13,#include void main() int c;
7、char a; c=65; a=B; putchar(c); putchar(n); putchar(a); getch(); ,运行结果: A B,例,2019年4月6日星期六9时18分13秒,14,格式:printf(“格式控制串“,输出表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回EOF(-1),格式输出函数,输出表:要输出的数据(可以没有,多个时以“,“分隔) 格式控制串:包含两种信息 格式说明: %修饰符格式字符 ,用于指定输出格式 普通字符或转义序列:原样输出 格式字符,2019年4月6日星期六9时18分13秒,15,int a=567;printf
8、 ( “%d“,a);,int a=255;printf(“%x“,a);,int a=65;printf(“%o“,a);,int a=567;printf(“%u“,a);,char a=65;printf(“%c“,a);,printf(“%s“,“ABC“);,float a=567.789;printf(“%e“,a);,float a=567.789;printf(“%f“,a);,float a=567.789;printf(“%g“,a);,printf(“%“);,567,ff,101,567,A,ABC,5.677890e+02,567.789000,567.789,%,说
9、明 格式字符要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换:格式字符与输出项类型不一致,自动按指定格式输出,2019年4月6日星期六9时18分13秒,16,例 main() unsigned int u=65535; printf(“u=%dn“,u); 输出结果:u=-1,例 int a=3,b=4; printf(“%d %dn“,a,b); printf(“a=%d , b=%dn“,a,b);,例 int a=3,b=4; printf(“%d %dn“,a,b); printf(“a=%d , b=%dn“,a,b); 输出结果: 3 4 a=3, b=4,201
10、9年4月6日星期六9时18分13秒,17,附加格式说明符(修饰符),2019年4月6日星期六9时18分13秒,18,例 int a=1234; float f=123.456; char ch=a; printf(“%8d,%2dn“,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2en“,f,f,f,f,f); printf(“%3cn“,ch);,运行 1234,1234 结果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a,例 static char a=“Hello,world!“ printf(“%sn%15sn%
11、10.5sn%2.5sn%.3sn“,a,a,a,a,a);,运行结果:Hello,world! Hello,world! Hello Hello Hel,例 m.n,2019年4月6日星期六9时18分13秒,19,例 int a=1234; float f=123.456; static char c=“Hello,world!“; printf(“%8d,%-8dn“,a,a); printf(“%10.2f,%-10.1fn“,f,f); printf(“%10.5s,%-10.3sn“,c,c);,运行结果:1234,1234 123.46,123.5 Hello,Hel,例 -,20
12、19年4月6日星期六9时18分13秒,20,例 int a=1234; float f=123.456; printf(“%08dn“,a); printf(“%010.2fn“,f); printf(“%0+8dn“,a); printf(“0+10.2fn“,f);,例 0 、+,例 int a=123; printf(“%o,%#o,%X,%#Xn“,a,a,a,a);,例 #,例 long a=65536; printf(“%d,%8ldn“,a, a);,例 l,/00001234,/0000123.46,/000+1234,/000+123.56,/173,0173,7B,0X7B
13、,/0, 65536,2019年4月6日星期六9时18分13秒,21,格式:getchar( ) 功能:从键盘读一字符 返值:正常,返回读取的代码值;出错,返回EOF(-1),3.2.2 数据输入 字符输入函数,例,#include main() int c; printf(“Enter a character:“); c=getchar(); printf(“%c-hex%xn“,c,c); ,运行结果: Enter a character:A A-hex41,2019年4月6日星期六9时18分13秒,22,格式输入函数,格式: scanf(“格式控制串“,地址表) 功能:按指定格式从键盘读
14、入数据,存入地址表指定的 存储单元中,并按回车键结束 返值:正常,返回输入数据个数,地址表:变量的地址,常用取地址运算符& 格式字符:d,i,o,x,u,c,s,f,e,例 scanf(“%d“, 输入:10 则 a=10,例 scanf(“%x“, 输入:11 则 a=17,2019年4月6日星期六9时18分13秒,23,附加格式说明符(修饰符),例 scanf(“%4d%2d%2d“, 输入 19991015 则1999yy, 10 mm, 15 dd,2019年4月6日星期六9时18分13秒,24,例 scanf(“%3d%*4d%f“, 输入 12345678765.43 则123k,
15、 8765.43f,例 scanf(“%2d%*3d%2d“, 输入 1234567 则12a, 67b,例 scanf(“%3c%2c“, 输入 abcde 则ac1, d c2,2019年4月6日星期六9时18分13秒,25,输入分隔符的指定 一般以空格、TAB或回车键作为分隔符 其它字符做分隔符:格式串中两个格式符间字符,例 scanf(“%d%o%x“, 输入 123 123 123 输出 a=123,b=83,c=291,例 scanf(“%d:%d:%d“, 输入 12:30:45 则12 h, 30 m, 45 s,例scanf(“%d,%d“, 输入 3,4 则3a, 4 b,
16、例 scanf(“a=%d,b=%d,c=%d“, 输入 a=12,b=24,c=36 ,2019年4月6日星期六9时18分13秒,26,说明: 用“%c“格式符时,空格和转义字符作为有效字符输入,如 scanf(“%c%c%c“, 若输入abc 则ac1, c2, b c3,输入数据时,遇以下情况认为该数据结束: 遇空格、TAB、或回车 遇宽度结束 遇非法输入,如 scanf(“%d%c%f“, 若输入1234a123o.26 则 1234 a, a b, 123 c,输入函数留下的“垃圾“:,2019年4月6日星期六9时18分13秒,27,如 scanf(“%d%c%f“, 若输入1234
17、a123o.26 则 1234 a, a b, 123 c,例 int x; char ch; scanf(“%d“, 执行:123 输出:x=123,ch=10,例 int x; char ch; scanf(“%d“, 执行:123 输出:x=123,ch=10,解决方法: (1)用getchar()清除 (2)用函数fflush(stdin)清除全部剩余内容 (3) 用格式串中空格或“%*c“来“吃掉“,例 int x; char ch; scanf(“%d“,2019年4月6日星期六9时18分13秒,28,例3.1 输入圆的半径,输出圆的周长和面积。,分析: 1.定义实型变量r、l、s
18、用于存放半径、周长、面积; 2.调用输入函数,输入r: 3.分别利用周长公式和面积公式求出l、s; 4.调用输出函数输出l、s。,3.3 程序举例,2019年4月6日星期六9时18分13秒,29,程序:,#include main() float r,l,s; scanf(“ %f “,&r); l = 2 * 3.14159 * r; s = 3.14159 *r * r; printf(“n l=%.4f“,l); printf(“n s=%.4f“,s); ,2019年4月6日星期六9时18分13秒,30,/*ch3_12.c*/ #include #include main() flo
19、at a,b,c,s,area; scanf(“%f,%f,%f“, ,输入:3,4,6 输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50 area= 5.33,例3.2 输入三角形边长,求面积,2019年4月6日星期六9时18分13秒,31,分析: 1.输入小写字母存入变量a; 2.转换成大写a = a-32; 3.输出 a.,例3.3 从键盘输入一个小写字母,用大写形式输出该字母。,2019年4月6日星期六9时18分13秒,32,#include “stdio.h“ void main() char a; ,程序:,思考:如何使程序可以处理任何字符的输入。即判断输入的是小写字母,才转换成大写;如果输入的其他字符,则直接输出。,printf(“Input a lowercase letter:“); a = getchar(); a = a-32; printf(“%c n“,a);,a=a=a,2019年4月6日星期六9时18分13秒,33,#include #include main() float a,b,c,disc,x1,x2,p,q; scanf(“a=%f,b=%f,c=%f“, ,输入:a=1,b=3,c=2 输出:x1=-1.00 x2=-2.00,2019年4月6日星期六9时18分13秒,34,本章结束,再见!,同学们:,
链接地址:https://www.31doc.com/p-2549755.html