第4章_简单程序.ppt_第1页
第4章_简单程序.ppt_第2页
第4章_简单程序.ppt_第3页
第4章_简单程序.ppt_第4页
第4章_简单程序.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章,最简单的c程序设计,顺序程序设计,主要内容,4.1 C语句概述 4.2 赋值语句 4.3 数据输入输出的概念及在c语言中的实现 4.4 字符数据的输入输出 4.5 格式输入与输出 4.6 顺序结构程序设计举例,4.1 C语句概述,C程序结构如下图所示:,C语句分为以下5类: 控制语句 函数调用语句 表达式语句 空语句 复合语句,4.1 C语句概述,(1)控制语句 完成一定的控制功能,C只有9种控制语句 if()else 条件语句 for() 循环语句 while() 循环语句 dowhile() 循环语句 continue 结束本次循环语句 break 中止执行switch或循环语句

2、switch() 多分支选择语句 goto 转向语句 return 返回语句,4.1 C语句概述,“( )”:表示括号中是一个“判别条件” “”表示内嵌语句 如:if(xy) z=x;else z=y;,4.1 C语句概述,(3)表达式语句 由一个表达式加一个分号构成一个语句,例:,分号,赋值表达式,表达式语句,+,=,4.1 C语句概述,a = 3,;,任何表达式都可以加上分号而成为语句,如i+; x+y;,(4)空语句 只有一个分号的语句,它什么也不做 可以用来作为循环语句中的循环体 例如:while(getchar()!=n) ; 本语句的功能是只要从键盘输入的字符不是回车则重新输入。这

3、里的循环体为空语句。,4.1 C语句概述,(5)复合语句 用 把多个语句括起来组成的一个语句,4.1 C语句概述,例如: z=x+y; t=z/100; printf(“%f”,t); ,注意: 应把复合语句看成是单条语句,而不是多条语句; 复合语句内的各条语句都必须以分号“;”结尾,最后一个语句的分号也不能忽略。 在括号“”外不能加分号。,赋值语句是由赋值表达式加上一个分号构成 例如: a=100 赋值表达式 a=100; 赋值语句 赋值表达式可以包含于其它表达式(如条件表达式)中,而赋值语句则不能。 例如: if(a=b;)0)t=a; if(a=b)0) t=a;,4.2 赋值语句,4.

4、3 数据输入输出的概念及在C语言中的实现,(1)所谓输入输出是以计算机主机为主体而言的 输出:从计算机向外部输出设备(显示器,打印机)输出数据。 输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据。,(2)C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的。 例如: 字符输入函数:getchar 字符输出函数:putchar 格式输入函数:scanf 格式输出函数:printf 字符串输入函数:gets 字符串输出函数:puts,4.3 数据输入输出的概念及在C语言中的实现,(3)在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件

5、中。 例如:在调用标准输入输出库函数时,文件开头应该有以下预编译命令: #include “stdio.h” 或: #include ,头文件,4.3 数据输入输出的概念及在C语言中的实现,4.4 字符数据的输入输出,4.4.1 字符输出函数 一般形式:putchar(c) 函数作用:向终端输出字符变量c的值,c可以是字符型变量或整型变量。,例4.1 输出单个字符#includevoid main() char a,b,c; a=B;b=O;c=Y; putchar(a);putchar(b);putchar(c);putchar(n);,运行结果:BOY,putchar(a);putchar

6、(n);putchar(b);putchar(n);putchar(c);putchar(n);,运行结果:B O Y,4.4.2 字符输入函数 一般形式:getchar() 函数作用: 从终端(或系统隐含指定的输入设备)输入一个字符。 函数值:从输入设备得到的字符。,4.4 字符数据的输入输出,例4.2 输入单个字符#includevoid main() char c; c=getchar(); putchar(c); putchar(n);,注意:getchar函数只能接收一个字符。该字符可以赋给一个字符变量或整型变量,也可以作为表达式的一部分。,putchar(getchar();,pr

7、intf(“%c”,getchar();,4.5 格式输入与输出,4.5.1 格式输出函数(printf函数) 函数作用:向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。 一般格式:printf(格式控制,输出表列),例如:printf(“i=%d,c=%cn”,i,c);,假设i=3,c=A,则输出i=3,c=A,(1) “格式控制”:用“”括起来的字符串,包含2方面 格式说明:由“%”和格式字符组成,将输出的数据转换为指定格式输出,总是由“%”字符开始的。 普通字符:按照原样输出的字符。 (2)“输出表列”需要输出的数据,可以是变量或表达式,由于printf是函数,因此“格式控

8、制”字符串和“输出表列”实际上都是函数的参数。 一般形式可以表示为: printf(参数1,参数2,参数3,参数n) printf函数的功能: 将参数2参数n按参数1给定的格式输出。,putchar与printf的区别: putchar只能输出字符,而且只能是一个字符 printf可以输出多个数据,且为任意类型,4.5 格式输入与输出,格式字符 (1)格式符,用来输出十进制整数。 %d: 按十进制整型数据的实际长度输出。 %md: m为指定的输出字段的宽度。若数据位数小于m,则左端补以空格;若大于m,则按实际位数输出 例: printf(“%4d,%4d”,a,b); 若a=123,b=123

9、45,则输出结果为 _123,12345 %ld: 输出长整型数据。 例: long a=135790; /* 定义a为长整型变量*/ printf(“%ld”,a);,4.5 格式输入与输出,printf(“%8ld”,a);,_135790,注意:输出类型与变量声明类型不一致时,虽然编译能够通过,但将出现不可预料的结果。(改P76),(2)格式符,以八进制整数形式输出。 将内存单元中的各位(连同符号位)的值按八进制形式输出,因此,输出的数值不带符号。 例: int a=-1; printf(“%d,%o”,a,a);,4.5 格式输入与输出,-1在内存单元中以补码形式存放:11111111

10、 11111111 输出为:-1,177777,输出为: 177777,长整型数可以用“%lo”格式输出 还可以指定字段宽度 例: printf(“%8o”,a);,不输出带负号的八进制整数,(3)x格式符,以十六进制数形式输出整数。 同样不会出现负的十六进制数。 例:int a=-1; printf(“%x,%o,%d”,a,a,a); 输出结果为: ffff,177777,-1 可以用“%lx”输出长整型数 也可以指定输出字段的宽度 例: “%12x”,4.5 格式输入与输出,(4)格式符,以十进制输出unsigned型整数 一个有符号整数(int型)也可以用u格式输出; 一个unsign

11、ed型数据也可以用d格式输出; unsigned型数据也可用%o或%x格式输出。,4.5 格式输入与输出,例4.3 无符号数据的输出#includevoid main() unsigned int a=65535;int b=-2; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“b=%d,%o,%x,%un”,b,b,b,b);,运行结果:a=-1,177777,ffff,65535b=-2,177776,fffe,65534,a:11111111 11111111b:11111111 11111110,(5)格式符,用来输出一个字符。 例:char d=

12、a; printf(“%c”,d);/输出字符a 一个整数只要它的值在0255范围内,可以用“%c”使之按字符形式输出。在输出前,系统会将该整数作为ASCII码转换成相应的字符; 一个字符数据也可以用整数形式输出。,4.5 格式输入与输出,例4.4 字符数据的输出#includevoid main() char c=a; int i=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i);,运行结果:a,97a,97,printf(“%3c”,c); /*指定输出字段的宽度*/,运行结果: a,(6)s格式符,输出字符串. %s,例:printf(“%s”

13、,”CHINA”); 输出字符串“CHINA”(不包括双引号)。 %ms,输出的字符串占m列,若串长大于m,则全部输出,若串长小于m,则左补空格。 %-ms,若串长小于m,字符串向左靠,右补空格。 %m.ns,输出占m列,只取字符串中左端n个字符,输出在m列的右侧,左补空格。 %-m.ns,n个字符输出在m列的左侧,右补空格,若nm,m自动取n值。,4.5 格式输入与输出,例4.5 字符串的输出#includevoid main() printf(“%3s,%7.2s,%.4s,%-5.3sn”, “CHINA”, “CHINA”, “CHINA”, “CHINA”);,4.5 格式输入与输出

14、,(7)格式符,以小数形式输出实数(单双精度) %f,不指定字段宽度,由系统自动指定字段宽度,使整数部分全部输出,并输出位小数。应当注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为位。 %m.nf,指定输出的数据共占列,其中有位小数。如果数值长度小于,则左端补空格。 %-m.nf,与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。,4.5 格式输入与输出,例4.6 输出实数时的有效位数#include void main() float x,y;x=111111.111; y=222222.222;printf(“%f”,x+y);,运行结果:333333.3

15、28125,4.5 格式输入与输出,说明:只有前7位数字是有效数字,并非计算机输出的数字都是准确的。,例4.7 输出双精度数时的有效位数#include void main() double x,y; x=1111111111111.111111111; y=2222222222222.222222222; printf(“%f”,x+y);,4.5 格式输入与输出,运行结果: 3333333333333.333010,说明:双精度数也可用%f格式输出,它的有效位数一般为16位,给出小数6位,例 4.8 输出实数时指定小数位数#include void main float f=123.456

16、; printf(“%f_%10f_%10.2fn%.2f_%-10.2fn”,f,f,f,f,f);,运行结果:123.456001_123.456001_123.46 123.46_123.46_,4.5 格式输入与输出,说明:指定输出数据宽度时,小数点也算1位,负号也算一位, %e ,不指定输出数据所占宽度和数字部分小数位数 例:printf(“%e”,123.456); 输出:1.23456e+02 Turbo C 2.0 输出的实数默认有5位小数位,2位以上指数位,至少占11列宽度(小数点也算一位)。 注:不同系统规定略有不同 m.ne和-m.ne,m和“”字符的含义与前相同。 此处

17、n指输出数据尾数的有效位数,而不是小数位数,4.5 格式输入与输出,(8)e格式符,以指数形式输出实数,例:若f=123.456,则: printf(“%e_%10e_%10.2en%.2e_%-10.2e”,f,f,f,f,f); 输出如下:,4.5 格式输入与输出,1.23456e+02_1.23456e+02_1.2e+02 1.2e+02_1.2e+02_,说明1: 第1个数据未指定n,自动使n=6; (注:有的C系统的输出格式与此略有不同),说明2: 第2个数据超过给定的10列,按实际长度输出。 (注:有的C系统的输出格式与此略有不同),说明3: 第3个数据保留2位有效数据(四舍五入

18、),共需占7列,所以左补3个空格。 (注:有的C系统的输出格式与此略有不同),说明4: 第4个数据只指定n=2,未指定,自动使等于数据应占的长度。 (注:有的C系统的输出格式与此略有不同),说明5: 第5个数据应占10列,数值只有7列,由于是“%-10.2e”,数值向左靠,右补3个空格。 (注:有的C系统的输出格式与此略有不同),(8)e格式符,以指数形式输出实数,(9)格式符,用来输出实数 它根据数值的大小,自动选格式或格式(选择输出时占宽度较小的一种),且不输出无意义的零 例:若f=123.468,则printf(“%f_%e_%g”,f,f,f); 输出如下:123.468000_1.2

19、3468e+02_123.468_,说明: 用%f格式输出占10列,用%e格式输出占13列,用%g格式时自动从上面两种格式中选择短者(今以%f格式为短)故占10列,并按%f格式用小数形式输出,最后3个小数位为无意义的0,不输出,因此输出123.468,然后右补3个空格。%g格式用得较少。,4.5 格式输入与输出,(注:有的C系统的输出格式与此略有不同),说明: 除了X,E,G外,其它格式字符必须用小写。 可在printf函数的格式控制字符串中包含转义字符 一个格式说明必须以“%”开头,以9个格式字符之一结束,中间可以插入附加格式字符。 格式字符:课本P37表3-1; 附加格式字符:m,n,l,

20、-等 想输出%,则应该在格式控制字符串中用连续两个%表示。例:printf(“%f%”,1.0/3);输出0.333333,4.5 格式输入与输出,4.5.2 格式输入函数(scanf函数) 函数作用:按照变量在内存的地址将变量值存进去。 一般格式:scanf(格式控制,地址表列) 格式控制:含义与printf函数相同; 地址表列:由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。,4.5 格式输入与输出,例4.9 用scanf函数输入数据#includevoid main() int a,b,c; scanf(“%d%d%d”,4.5 格式输入与输出,a,b,c是内存中的地址 错误 (2)如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。 例如:scanf(“%d_%d”,4.5 格式输入与输出,输入: 10_34 10:34 a=10,b=34,4.5 格式

温馨提示

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

评论

0/150

提交评论