[理学]04-Statements_ Terminate IO_ Relation and Logic Operators.ppt_第1页
[理学]04-Statements_ Terminate IO_ Relation and Logic Operators.ppt_第2页
[理学]04-Statements_ Terminate IO_ Relation and Logic Operators.ppt_第3页
[理学]04-Statements_ Terminate IO_ Relation and Logic Operators.ppt_第4页
[理学]04-Statements_ Terminate IO_ Relation and Logic Operators.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

语句概述、终端I/O、关系与逻辑运算,提纲,语句概述 C语言程序的构成 C语言语句 终端I/O I/O概述 格式化输出 格式化输入 字符数据的输入输出 两个例子 关系运算符和关系表达式 逻辑运算符和逻辑表达式 运算符小结,结束,C语言程序的构成,返回,C语言语句(1),控制语句,完成一定的控制功能。 if ()else:条件语句 switch:多分支选择语句 for ():循环语句 while ():循环语句 dowhile ():循环语句 continue:结束本次循环 break:终止执行switch或循环语句 goto:转向语句 return:从函数返回语句,C语言语句(2),函数调用语句 由一次函数调用加上一个分号构成的一个语句。 函数调用的形式是:函数名(实参表) 表达式语句 由一个表达式的最后加上一个分号就成了一个语句。 分号是语句中不可以缺少的一部分。 空语句只有一个分号的语句。 复合语句(块语句) 用“”和“”括起的若干声明和语句。 块语句最后没有分号。 块语句在语法上等价于单个语句。,返回,i=i+1是一个表达式 i=i+1;是一个语句,i=i+1; printf(“%d”, i); 是单个语句 i=i+1; printf(“%d”, i); 是两个语句 i=i+1; printf(“%d”, i); 是错误的,I/O概述,I/O是输入输出的简写。 从计算机向外部输出设备发送数据称为“输出”,计算机从外部输入设备接收数据称为“输入”。 终端I/O中的输入设备为键盘,输出设备为屏幕。 C语言本身不提供输入输出语句,而用库函数来实现相应操作。是为了使C语言编译系统简单,可移植性强。 为实现I/O,必须使用C语言库函数。在使用C库函数时,必须用预处理指令“#include”将有关的“头文件”(.h文件)包含进来。 两个特别的终端I/O函数printf和scanf十分常用,包含在头文件stdio.h中。,返回,格式化输出(1),printf的形式 说明:#include int printf(const char *format, ); 返回值:成功时返回输出的字节数,否则返回EOF。 printf的参数 格式控制字符串 格式说明,由“%”和格式字符组成(作用是将输出的数据转换为指定的格式输出) 普通字符,需要原样输出的字符。 输出列表,需要输出的一些数据。,int a=3; printf(“a=%dn“, a);,这种形式表示参数个数可变。,格式化输出(2),%d, %-md, %-mld 按十进制整数形式输出。 m指定输出的最小宽度(若实际长度超过,则按实际位数输出),符号位占一列; 出现-则指定当实际位数小于m时数据左对齐,否则数据右对齐; l指定按长整型形式输出,格式化输出(3),%o, %-mo, %-mlo 按八进制整数形式输出。 只以正数形式输出。 %x, %X, %-mx, %-mX, %-mlx, %-mlX 按十六进制整数形式输出。 若为X,则需输出的字母采用大写形式。 只以正数形式输出。 %u, %-mu, %-mlu: 按十进制整数形式输出。 按无符号整数形式输出。 上述三种形式中-、m及l的含义同前述各形式,格式化输出(4),%c, %-mc -和m含义同前述各形式 将对应数据按其值转换为相应的ASCII字符,输出。 %s, %-ms, %-m.ns 输出一个字符串。 -和m含义同前述几种形式 n代表取相应字符串中最左的n个字符进行输出 当mn时,取m=n。 当m缺省时,也取m=n。(因为.n=0.n)。 %:输出%,格式化输出(5),%f, %-mf, %-m.nf 以小数形式输出单精度或双精度类型。 -和m含义同前述各形式,符号和小数点各占一列。 n代表小数点后位数。未指定n时,小数点后输出6位小数,并非输出的都是有效数字。 %e,%E,%-me,%-mE,%-m.ne,%-m.nE 以指数形式输出单精度或双精度类型。 -和m含义同前述各形式,符号和小数点各占一列。 n指定数据小数(尾数)部分的小数位数。未指定时,小数点后输出6位小数(指数部分缺省5位) %g, %G: 输出实数,自动选f或e形式中输出占宽度较小者 无意义的0以空格形式输出。 示例见课本p69,返回,格式化输入(1),scanf的形式 说明:#include scanf (控制格式,地址表列); scanf的参数 格式控制字符串,这部分除了格式说明符外,也可以有其它字符。 地址列表,指定用于承载输入数据的地址。若用变量承载时,必须用取地址符“&”取得其地址。,格式化输入(2),scanf的格式字符具体可见p71表 几点说明 如果格式控制字符串中包含了其他字符,则在输入数据时这些字符必须原样输入。 使用%c时,空白字符(空格,回车,Tab)也被认为是有效字符。 使用%ld输入长整型数据,使用%lf输入double类型 使用%hd输入短整型数据。 %md等中附加格式说明符m指定输入所占列数,系统自动按它截取所需数据。 %*md等中附加格式说明符*表示跳过它指定的列数。,格式化输入(3),输入数据时,scanf在遇到如下情况时将认为一个数据域已输入完毕 遇到空字符(特别值得注意的是:如果数据域的目标是%s,根据这条规则,包含空白字符的字符串将只有第一个空白字符之前的部分被接受) 指定的宽度被满足 遇到非法输入(例如,数据域的目标是%d,输入中遇见字母) 关于scanf的示例,返回,字符数据的输入输出(1),putchar函数 说明:#include int putchar (int ch); 返回值:成功时返回ch,否则返回EOF。 注意:可以提供整型参数,这样当成ASCII码值处理。 例子: #include main() putchar(a); putchar(98); putchar(289); 输出结果为:ab!,EOF是一个符号常量,在stdio.h中定义,值一般为-1,字符数据的输入输出(2),getchar函数 说明:#include int getchar (); 返回值:成功时返回所读入的字符的ASCII码值,否则(失败或读到文件尾)返回EOF。 注意:必须从键盘上输入回车键,所敲入的字符才能被接收(行缓冲);然而,此函数的一次调用只接收一个字符,多余的字符被忽略。,返回,字符数据的输入输出(3),getch函数 说明:#include int getch (); 返回值:返回所读入的字符。 注意:这个函数是没有行缓冲的,接收到一个字符后立即返回之。不带有回显。 getche函数 说明:#include int getche (); 返回值:返回所读入的字符。 注意:这个函数是没有行缓冲的,接收到一个字符后立即返回之。带有回显。,返回,两个例子(1),给定边长(用户输入),求三角形面积 思路:用海伦公式 程序: #include #include void main () double a, b, c, s, area; scanf (“%lf,%lf,%lf“, ,程序中使用了库函数sqrt,用于求平方根。,输入中必须包含逗号!,能写成s=1/2*(a+b+c)吗?,两个例子(2),求特定二次方程(用户指定系数)的根 思路:用求根公式 程序: #include #include void main () float a, b, c, disc, x1, x2, p, q; scanf (“a=%f,b=%f,c=%f“, ,返回,注意: scanf中包含太多非格式字符,这个习惯不好! 引进p和q,大大简化了运算。 这个程序不安全,没有判别实根是否存在。,关系运算符和关系表达式,C语言有6种关系运算符:、=、=、!= 6种关系运算符之间的优先关系是 、= =、!= 关系运算符的优先级低于基本算术运算符,但高于赋值运算符 关系运算符的结合性是“自左向右” 特别值得强调的是:不要将赋值运算符(=)和关系运算符(=)混淆起来! 关系表达式:用关系运算符将两个表达式连接起来的式子 关系表达式的值是一个逻辑值(真或假),C语言中以1代表真,以0代表假。所以如果关系表达式的比较结果是真的话则其值为1;否则其值为0。 示例,返回,逻辑运算符和逻辑表达式(1),C语言有3种逻辑运算符:!(非)、&(与)、|(或) 3种逻辑运算符之间的优先关系是: ! & | !的优先级与负号运算符相同,并且也是“右结合性” &的优先级低于关系运算符 |的优先级高于赋值运算符 逻辑运算符&和|的结合性是“自左向右” 用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。 C语言在对逻辑表达式进行求值时,以数值0代表“假”,以非0代表“真”。,53&2|83)&2)|(8(4-(!0),逻辑运算符和逻辑表达式(2),C语言支持“短路”逻辑表达式: 当计算a&b时,只要a为假就不判断b; 当计算a|b时,只要a为真就不判断b。 对这一点利用的一个典型例子:if (y!=0&x/y=2) 逻辑表达式的例子: 判别年份year为闰年的逻辑表达式是: !(year%4)&(year%100)|!(year%400) 判别年份year不是闰年的逻辑表达式是:year%4|!(year%100)&year%400,返回,注意:当year能被4整除时,year%4的结果是0,即逻辑假,从而!(year%4)的值为逻辑真,即1。,运算

温馨提示

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

评论

0/150

提交评论