c语言计算机编程第3章.ppt_第1页
c语言计算机编程第3章.ppt_第2页
c语言计算机编程第3章.ppt_第3页
c语言计算机编程第3章.ppt_第4页
c语言计算机编程第3章.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 顺序结构,3.1 赋值语句 3.2 数据输出3.3 数据输入3.4 复合语句与空语句 3.5 程序举例,第3章 顺序结构,教学目的 了解语句的分类 掌握数据输出printf的使用格式 掌握数据输入scanf的使用格式 会写一个简单的C程序 教学时间 4学时,顺序结构的概念 在程序中按语句出现的顺序逐条执行,由这样的语句 构成的程序结构称为顺序结构。 语句 在C语言表达式的后面加上“;”,就构成了语句。 语句的分类 赋值语句、复合语句、空语句 赋值语句 在赋值表达式的尾部加上一个“;”号,就构成了赋值语句。,3.1 语句的概念,3.1 语句的概念,任何一个表达式加上分号都可以构成语句。

2、如:a=3; i=i+1; i+; 都是语句 而 a=3 i=i+1 就不是语句,而是表达式 表达式能构成语句是C语言的一个重要特色。 复合语句 用把若干语句括起来构成复合语句。 如: if(xy) z=x+y; t=z/100; printf(“%f” , t); 注意 复合语句中最后一个语句后面的分号是不可以省略的。 一个复合语句在语法上视为一条语句。 在一对花括号内的语句数量不限。 在复合语句中,可以定义变量,也可有执行语句。,空语句 ; 只有一个分号的语句,它什么也不做。 说明: 空语句执行时不产生任何动作; 设计程序时有时需要增加一个空语句表示存在一条语句,便于以后需要的时候添加功能

3、语句; 不要随意增加“;”,会出现逻辑上的错误。,3.1 语句的概念,3.2 数据输出,所谓输入输出是以计算机主机为主体而言的。 输出:把数据从计算机内部送到计算机的外部设备上的操作, (如显示屏、打印机、磁盘等)。 输入:从计算机的外部设备(如键盘、磁盘、光盘、扫描仪等)将数据送入计算机内部的操作。 C语言本身不提供输入输出语句,在程序中要完成数据的输入/出,可以通过调用标准库函数提供的输入/出函数来实现,也就是printf函数和scanf函数。,在vc 6.0 编译环境下调用输入/出函数之前,要求在源程序中出现包含头文件stdio.h的命令行。 即 #include 或 #include

4、stdio.h 注意:使用printf函数和scanf函数时,千万不要误认为它们是C语言提供的“输入输出语句”。printf和scanf不是C语言的关键字,而只是函数的名字。 C提供的函数以库的形式存放在系统中。,3.2 数据输出,3.2 数据输出,数据输出函数printf()(C提供的标准输出函数) 功能:用来在终端设备按指定的格式进行输出。 printf函数的一般格式为: printf(格式控制,输出列表) “格式控制”是用双引号括起来的字符串,它包括两种信息 1、格式说明,由“%”和格式字符组成,格式说明总是由“%”字符开始。 2、普通字符,即需要原样输出的字符。,“输出列表”是需要输出

5、的一些数据,可以是表达式;各输出项之间用“,”隔开;该输出项可以没有。,3.2 数据输出,格式字符 (d,o,x,u,c,s,f,e,g) 对不同类型的数据用不同的格式字符。有以下几种格式字符d格式符用来输出十进制整数。有以下几种用法%d,按照整数的实际长度输出。 %md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格;如果大于m,则按照实际位数输出。若a=123,b=12345则: printf(“%4d,%4d”,a,b); 输出: 123,12345 ( 代表空格) %ld,输出长整型数据。如:long a=135790; printf(“%ld”,a); 输出:1357

6、90 对长整型数据也可以制定字段宽度,如printf(“%8ld”,a); 输出: 135790 短整型数据用%hd格式输出,int型数据可以用%d或%ld输出,o格式符以八进制形式输出整数。由于是将内存单元中的各位的值按照八进制形式输出,因此输出的数值不带符号。对长整型,用“%lo”格式,同样可以加字段宽度。,如:int a=-1; printf(“%d,%o“,a,a);,输出结果为:-1,177777,3.2 数据输出,x格式符 以十六进制形式输出整数。同样不会出现负的十六进制数。,int a=-1;printf(“%x,%d,%o”,a,a,a);,输出:ffff,-1,177777,

7、3.2 数据输出,u格式符用来输出unsigned型数据,即无符号数,以十进制形式输出。 一个有符号整数也可以用%u格式输出; 反之,一个unsigned也可以用%d、%o、%x格式输出。按相互赋值的规则处理。,main() unsigned int a=65535; int b=-2; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“a=%d,%o,%x,%un”,b,b,b,b);,运行结果:-1,177777,ffff,65535 -2,177776,fffe,65534,c格式符用来输出一个字符。 说明: 一个整数(0255)可以用%c的形式按字符输

8、出。 一个字符数据也可以用整数形式输出。 可以指定输出字符的宽度。%mc,3.2 数据输出,6.f格式符 用来输出实数,以小数形式输出。有以下几种用法 %f,不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出6位小数。注意:并非全部数据都是有效数字,单精度实数的有效位数一般为7位,双 精度有效位数为15位。,3.2 数据输出,%m.nf,指定输出数据共占m列,其中有n位小数。如果数值长度小于m,则左补空格。(小数位,负号各占一位的长度),%-m.nf与%m.nf基本相同,只是输出的数值向左端靠,右端补空格。,main() float f=123.456; printf(“%f %10f

9、 %10.2f%.2f%-10.2fn”,f,f,f,f,f); ,输出如下:123.456000123.456000123.46123.46 123.46,3.2 数据输出,7.e格式符以指数形式输出实数。可用以下形式%e,不指定输出数据占的宽度和数字部分小数位数。 %m.ne和%-m.ne,m、n和“-”字符含义与前相同。(n包括小数点) 若 f=123.456 则printf(“%e%12e%10.2e%.2e%-10.2e”,f,f,f,f,f);输出如下:1.23456e+021.23456e+021.2e+021.2e+021.2e+02,8.g格式符用来输出实数,它根据数值的大小

10、自动选择f格式或e格式,且不输出无意义的0。 若f=123.4 则 printf(“%f%e%g”,f,f,f);输出:123.4000021.23400e+02123.4,3.2 数据输出,3.2 数据输出,注意 printf的输出格式为自由格式,是否在两数之间 留逗号,空格,回车,完全取决于格式控制;如果不注意,很容易造成数字连在一起,使得输出结果没有意义。 格式控制中,必须含有与输出项一一对应的输出格式说明,类型必须匹配。若不匹配,则不能正确输出,而且编译时不会报错。 除X,E,G外,其他格式字符必须用小写字母。如“%d”不能写成“%D”。 可以在printf()函数中的“格式控制”字符

11、串内包含“转义字符”,如:”n”,”t”等。 如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示。 printf(“%f%”,1.0/3); 尽量不要在输出语句中改变输出变量的值,可能会造成输出结果的不确定性。,3.3 数据输入,数据输入scanf()函数 (C提供的标准输入函数) 功能:从终端键盘上按指定的格式读入数据 1、一般调用格式 scanf(格式控制,地址输入列表 ) 作用:从标准输入设备按指定的格式输入数据,存放在地址列表指定的存储单元中。 “格式控制”的含义同printf()函数,“地址输入列表”是由若干地址组成的列表,可以是变量的地址,或字符串的首地址。 mai

12、n() int a,b,c; scanf(“%d%d%d”, 用如下格式输入:345 或345 或 3 45 或3T4 5 ,3.3 数据输入,2、格式说明 和printf()函数中的格式说明相似,以%开始,以一个格式字符结束,中间可以插入附加字符。 说明在格式串中,必须含有与输入项一一对应的格式转换说明符。 Vc 6.0环境下,输入short型整数,格式控制用%hd;输入double型实数,格式控制用%lf/%le。否则,数据不能正确输入。 在%和格式字符之间可以加入一个正整数,指定输入数据所占的宽度,但不可以对实数指定小数位的宽度。 scanf(“%3d%3d”, 是不合法的,3.2 数据

13、输入,通过scanf函数从键盘上输入数据 当用scanf函数从键盘上输入数据时,每行数据在未按下回车键之前,可以任意修改。按下回车键后,scanf函数即接受了这一行数据,不能再回去修改。 输入数值数据,若用格式”%d%d%d”输入数据时,数据之间必须用空格、 enter键、 tab键等间隔符隔开,间隔符个数不限。 如果在格式控制字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。 scanf(“%d:%d:%d”,输入:1234567结果:12=a 67=b,输入:123456 结果:123 =a 456 =b,%后的“*”附加说明符,用来表示跳过它相应的数据。 scanf(“%2d %*3d %2d”,3.2 数据输入,当输入的数据个数输入项个数,多余的数据在输入流中等待下一个输入操作语句,继续从此输入流读取数据。 通常C中的输入是一个字符流,scanf从这个流中按照指定的格式解析出相应数据,送到指定地址的变量中。,顺序程序设计举例,/*ch3_12.c*/ #include #include main() float a,b,c,s,area; s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论