c语言课件第三章.ppt

上传人:本田雅阁 文档编号:2143449 上传时间:2019-02-21 格式:PPT 页数:27 大小:571.01KB
返回 下载 相关 举报
c语言课件第三章.ppt_第1页
第1页 / 共27页
c语言课件第三章.ppt_第2页
第2页 / 共27页
c语言课件第三章.ppt_第3页
第3页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《c语言课件第三章.ppt》由会员分享,可在线阅读,更多相关《c语言课件第三章.ppt(27页珍藏版)》请在三一文库上搜索。

1、第3章 顺序程序设计,教学目与要求: 了解C语句的分类,理解输入输出的概念及在C中的实现,掌握赋值语句,字符数据及格式输入输出。 教学内容: C语句概述;赋值语句;数据输入输出的概念及在C语言中的实现;字符数据的输入输出;格式输入与输出;顺序结构程序设计举例 教学难点与重点: 赋值语句的格式及作用,字符数据的输入输出,printf和scanf函数的功能,格式及使用方法。, 3.1 C语句概述,C程序,源程序文件1,源程序文件2,源程序文件N,。,预处理命令,全局变量声明,函数1,。,函数N,函数首部,函数体,局部变量声明,执行语句,C语句:以分号作分隔符,编译后产生机器指令,完成一定操作任务。

2、,for( ) (循环) while( ) (循环) dowhile( ) (循环),选择 (分支),循环 (重复),if( )else (条件) switch (多分支),continue (结束本次循环) break (终止switch或循环语句) goto (转向) return (从函数返回),辅助控制,(1) 程序控制语句,控制语句:用于完成一定的控制功能. 顺序:按语句顺序执行 例如: 顺序结构,语句A,语句B,float a,b,c,s,area; scanf(“%f,%f,%f”,各语句依次顺序执行,选择结构:if(表达式)else,int a,b; if(ab) printf

3、(“%d”,a); else printf(“%d”,b);,例如:,循环结构:dowhile或while或for,P,A,真,假,当型循环,例: main( ) int t=1,i=2; while (i=5) t=t*i; i+; printf(“t=%d”,t);,循环结构:dowhile或while或for,A,P,直到型循环,假,真,例: main( ) int t=1,i=2; do t=t*i; i+; while (i=5); printf(“t=%d”,t);,3.简单表达式语句 赋值语句: 如:i=1;x=sin(y); 4.空语句: 如: ; 问题:既然空语句什么都不作,

4、为什么还要它?,(空语句可用来作被转向点,或 循环语句中的循环体),2.函数调用语句: 如:printf(“This is a c programe”);,(5) 复合语句 将几个表达式组合在一起,形成一个复合表达式语句。 例如:+i,+j; i=1,j=2; 用 把一些语句括起来成为复合语句。 如: z=x+y; t=z/100; printf(“%f”,t); 注意: 后无分号,其余各行均有分号。 例4.1 main( ) int a; int b; b=3; /复合语句(分程序) printf(“%dn”,a+b); b=1; ,b的作用域只在内层大括号这样一个局部,由于 b是复合语句中

5、定义的,在它之外使用是错误的,说明:花括号配对规则,从后向前配对,一个后花括号和它最近的前花括号配对。, 3.2 赋值语句,赋值语句是由赋值表达式加上一个分号构成 1.C语言中的赋值号“=”是一个运算符,而其它大多数语言中赋值号不是运算符。 2.注意在变量说明中给变量赋初值和赋值语句的区别。 在变量说明中,不允许连续给多个变量赋初值。 如说明是错误的: int a=b=c=5 必须写为 int a=5,b=5,c=5; 而赋值语句允许连续赋值。,下述语句是合法的: if(x=y+5)0) z=x; 语句的功能是,若表达式x=y+5大于0则z=x。 下述语句是非法的: if(x=y+5;)0)

6、z=x; 因为x=y+5;是语句,不能出现在表达式中。, 3.3数据输入输出的概念与C语言中的实现,输出:向外部输出设备(显示器,打印机,磁盘等)输出数据。 输入:从输入设备(键盘,磁盘,光盘,扫描仪等)输入数据 实现: C语言中没有输入或输出语句。输入和输出操作都是由函数来实现的。 在使用语言库函数时,要用预编译命令 #include 将有关“头文件”包括到源文件中。,使用标准输入输出库函数时要用到 “stdio.h”文件 #include 或 #include ”stdio.h”, 3.4字符数据的输入输出,4.4.1 字符输出函数putchar 向终端输出一个字符,一般形式为 putch

7、ar( 变量名); 4.4.2 字符输入函数 getchar 从终端(或系统隐含指定的输入设备)输入一个字符,它 没有参数,一般形式为 getchar() 函数的值就是从输入设备得到的字符。,#include main() int c; printf(“Enter a character:“); c=getchar(); printf(“%c-hex%xn“,c,c); ,注意:1. 当输入多个字符时,多余字符作废; 2. 用getchar()得到的字符可以赋给字符变量 、整型变量或作为表达式的一部分。,/*ch4_1.c*/ #include main() int c; char a; c=

8、65; a=B; putchar(c); putchar(n); putchar(a); ,1.printf函数 格式:printf(“格式控制”,输出表) 功能:按自右向左的顺序,依次计算“输出列表”中各表达式 的值,再按“格式串”规定的格式将表达式的值输出到显示器。,3.5 格式输出函数,格式控制串:包含两种信息 格式说明: %修饰符格式字符 ,用于指定输出格式 普通字符或转义序列:原样输出 输出表:要输出的数据(可以没有,多个时以“,”分隔),int a=567;printf ( “%d”,a);,int a=255;printf(“%x”,a);,int a=65;printf(“%o

9、”,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,%,说明 : 格式字符要用小写。格式字符与输出项个数应相同,按先后顺序一一对应。输出转换:格式字符与输出项类型不一致,自

10、动按指定格式输出.,例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);,例 main() unsigned int u=65535; printf(”u=%dn“,u); ,2. 格式字符,附加格式说明符(修饰符) %修饰符格式字符,例 int a=1234; float f=123.456; char ch=a; printf(“%-8d,%8d%2dn”,a,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f); printf(“%3cn”,ch);,运行 1234

11、,1234,1234 结果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a,例 char a=“Hello,world!” printf(“%sn%15sn%10.5sn%2.5sn%.3sn”,a,a,a,a,a);,运行结果:Hello,world! Hello,world! Hello Hello Hel,3.5.2 输入函数,1.一般形式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束,地址表:变量的地址,常用取地址运算符& 格式字符:d,i,o,x,u,c,s,f,e

12、,例 scanf(“%d”, 输入:10 ,例 scanf(“%x”, 输入:11 ,a=10,a=17,附加格式说明符(修饰符),例 scanf(“%4d%2d%2d”, 输入 19991015 ,例 scanf(“%3d%*4d%f”, 输入 12345678765.43,例 scanf(“%2d%*3d%2d”, 输入 1234567,例 scanf(“%3c%2c”, 输入 abcde ,输入分隔符的指定 一般以空格、TAB或回车键作为分隔符,例 scanf(“%d%o%x”, 输入 123 123 123,例 scanf(“%d:%d:%d”, 输入 12:30:45,例 scanf

13、(“%d,%d”,&a,&b) 输入 3,4 ,输出 a=123,b=83,c=291,h=12 ,m=30, s=45,a=3 ,b=4,注意:用“%c”格式符时,空格和转义字符作为有效字符输入,如 scanf(“%c%c%c”, 若输入abc,输入数据时,遇以下情况认为该数据结束: 遇空格、TAB、或回车 遇宽度结束 遇非法输入 输入数据时,不能规定数据的精度。,如 scanf(“%d%c%f”, 若输入1234a123o.26 ,例 int x; char ch; scanf(“%d”, 执行:123,例 int x; char ch; scanf(“%d”, 执行:123,则ac1,

14、c2, b c3,输出:x=123,ch=10,输出:x=123,ch=10,输出:x=1234,b=a,c=123,3.6 程序举例与练习,#include main() float 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,1:已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据是,正确的数据输入方式是_。 int a1,a2;char c1,c2; scanf(“%d%d”,

15、A) 1020AB B)10 20 AB C)10 20 AB D)10 20AB ,练习,2:根据定义和数据的输入方式,输入语句的正确形式为_。 已有定义:float f1,f2; 数据的输入方式:4.52 3.5 A)scanf(“%f,%f”,3:以下合法的C语言赋值语句是( ) A)a=b=58 B)k=(int) (a+b); C)a=58,b=58 D)-i; 4: 若有以下程序段,c3中的值是( ) A)0 B)1/2 C)0.5 D)1 int c1=1,c2=2,c3; c3=c1/c2;,5:若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是( ) A)a=a+b;b=a-b;a=a-b; B)t=a,a=b,b=t; C)a=t;t=b;b=a; D)t=b;b=a;a=t; 6: 若x为int型变量,则执行以下语句后x的值是_。 x=7; x+=x-=x+x;,程序改错1: #include void main( ) float a,b,c,disc,x1,x2,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(“nx1=%5.2fn%5.2fn”, ,作业,P88 T4.4 T4.5,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1