第2章用C语言编写程序第6章 数据类型和表达式.ppt

上传人:创****公 文档编号:3899293 上传时间:2020-11-18 格式:PPT 页数:77 大小:808.50KB
返回 下载 相关 举报
第2章用C语言编写程序第6章 数据类型和表达式.ppt_第1页
第1页 / 共77页
第2章用C语言编写程序第6章 数据类型和表达式.ppt_第2页
第2页 / 共77页
点击查看更多>>
资源描述

《第2章用C语言编写程序第6章 数据类型和表达式.ppt》由会员分享,可在线阅读,更多相关《第2章用C语言编写程序第6章 数据类型和表达式.ppt(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第2章 用C语言编写程序第6章 数据类型和表达式,6.1 基本数据类型,C语言中的数据类型: 数据结构数据在计算机中的存储形式,变量和数据类型,三种基本数据类型:整型、实型和字符型,在程序运行的过程中,其值可以改变的量称为变量 变量必须 “先定义、后使用” 变量定义的一般形式是: 类型名 变量名表 例如: (参见教材p19) int a, b, sum; /*定义a,b为整型变量*/ float r, a; /*定义r,a为实型变量*/ char c; /*定义c为字符变量*/,#include /*求面积*/ void main( ) float r,a; printf(“输入圆半径:”);

2、 scanf(“%f”, ,#include /*求两个数之和*/ void main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf( sum is %dn, sum ); ,变量赋初值(P20),变量赋值的方式分为两种:变量初始化 1、先说明,再赋值。如: int a,b; a=10; b=20; 2、说明变量的同时赋值。这称为变量的初始化 int a=10,b=10; float f=3.56; (等价于 float f; f=3.56;) int a=3,b=3,c=3; (对a、b、c都进行初始化) int a,b,c=5;

3、 (只对变量C进行初始化) int a=b=c=3; () char c=a;,格式化输出函数(p21),printf函数(格式输出函数) 是系统提供的库函数,在系统文件stdio.h中声明 printf函数的一般格式如下,,格式:printf(“格式控制字符串”,输出参数1, ,输出参数n) 功能:按指定格式向显示器输出数据,格式控制串 是用双引号括起来的字符串,用于指定输出格式。 格式说明总是由“%”字符开始,如:整型用%d, 实型用%f等。 输出参数 可以是变量或表达式, 要输出的数据多个时以“,”分隔,#include void main( ) int a,b,sum; a = 123

4、; b = 456; sum = a + b; printf( sum is %dn, sum ); ,格式化输出函数(p21),printf函数(格式输出函数) 输出参数必须和格式控制字符串中的格式控制说明的类型、个数以及位置一一对应(输出多个参数时) 普通字符:输出时要原样输出,#include void main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf( “a=%d,b=%d,sum=%dn, a,b,sum ); ,格式化输入函数(p25),scanf函数(格式输入函数) 是系统提供的库函数,在系统文件stdio.h中

5、声明 scanf函数的一般格式如下:,格式:scanf(“格式控制字符串”,输入参数1, ,输入参数n) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束,格式控制串 是用双引号括起来的字符串,用于指定输入格式。 格式说明也是由“%”字符开始,如:整型用%d, 实型用%f等。 输入表列 输入参数是变量地址,变量名前加地址符 printf(“输入圆半径:”); scanf(“%f”, ,格式化输入函数(p25),scanf函数(格式输入函数) 输入参数必须和格式控制字符串中的格式控制说明的类型、个数以及位置一一对应(输入多个参数时) 普通字符:在输入时要原样输入,#i

6、nclude void main( ) int a,b,sum; printf(“输入a,b:”); scanf(“%d,%d”, ,scanf(“%d,%d”,课程回顾,三种基本数据类型:整型、实型和字符型 定义形式: int a, b, sum; /*定义a,b为整型变量*/ float r, a; /*定义r,a为实型变量*/ char c; /*定义c为字符变量*/ printf函数(格式输出函数) printf(“sum=%d”,sum); scanf函数(格式输入函数) scanf(“%f”,#include void main( ) int a,b,sum; printf(“输入

7、a,b:”); scanf(“%d,%d”, ,常用数学库函数(p25),C语言处理系统提供了许多事先编辑好的函数,供用户在编程时调用,这些函数称为库函数。调用库函数一定要用include命令将相应的头文件包含到源程序中,输入/输出函数:#include 数学处理函数: #include,常用的数学库函数: 平方根函数:sqrt(x) 绝对值函数:fabs(x) 幂函数: pow(x,n) 指数函数: exp(x) 对数函数: log(x),#include void main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf( sum

8、 is %dn, sum ); ,6.2 常量和变量 (P96),6.2.1 常量和符号常量 常量 在程序运行的过程中,其值不能改变的量称为常量 常量又分为不同的类型: 如:45,6,-34,-6为整型常量; 5.6,7.9,-7.78,2.0为实型常量; a,b,d为字符型常量;,6.2 常量和变量 (P96),6.2.1 常量和符号常量 符号常量 用一个标识符代表一个常量 如:#define PI 3.1415926 标识符:用来标识变量名、常数名、数组名、函数名、文件名等的有效字符序列。,例6-1:计算球的表面积和体积(符号常量的使用) # include # define PI 3.1

9、416 void main( ) double r,s,v; printf(“input r: ”); scanf(“%lf”, ,使用符号常量的好处: 1、含义清楚。程序中避免多使用常数。如:total=1000*30 2、在需要改变一个常量时能做到“一改全改”。即只改定义,不改程序,符号常量不能改变,即不能被重新赋值。 符号常量名习惯上用大写 ,变量名用小写,以示区别。,在程序中不要太多使用常量,应尽量使用变量和符号常量,5.1.2 基本数据类型,整型 有符号整型 无符号整型 数据长度 int unsigned int 16或32位 short int unsigned short int

10、 16位 long int unsigned long int 32位 实型(浮点型) 单精度浮点型 float 32位 双精度浮点型 double 64位 字符型 char 8位,基本数据类型整型,整型数据类型:int 扩展的整数类型: 有符号整型(正数或负数) 无符号整型 int unsigned int short int unsigned short int long int unsigned long int,类型名 数据长度 取值范围 int 32位 -2147483648 2147483647 -231 231-1 short 16位 -32768 32767 -215 215-

11、1 long 32位 -2147483648 2147483647 -231 231-1 unsigned 32位 0 4294967295 0 232-1 unsigned short 16位 0 65535 0 216-1 unsigned long 32位 0 4294967295 0 232-1,6.3 数据的输入和输出 (P100),6.3.1 整型数据的输入和输出 调用scanf()函数和printf()函数输入和输出时,应根据数据类型使用相应的格式控制说明,并且可以加宽度限定词%md或者%-md,指定整型数据的输出宽度。 %d,按照整数的实际长度输出。前面讲过! %md,m为指定

12、的输出字段的宽度。如果数据的位数小于m,则左端补以空格(右对齐);如果大于m,则按照实际位数输出。(此格式用来对齐输出的数据) 若a=123; d=12345; 则: printf(“%4d,%4d”,a,b); 输出: 123,12345 ( 代表空格) %ld,输出长整型数据。如:long a=135790; printf(“%ld”,a);,xt1-2,基本数据类型实型,实型(浮点型)数据 单精度浮点型 float 双精度浮点型 double 存储 数据精度 取值范围 (有效数字) float 4字节 七/八位 (10-38 1038) double 8字节 十六位 (10308 103

13、08 ),6.3 数据的输入和输出 (P100),6.3.2 实型数据的输入和输出 f格式符: 用来输出实数,以小数形式输出。有以下几种用法 %f,不指定字段宽度,由系统自动指定,使整数部分全部输出,并输出6位小数。注意:并非全部数据都是有效数字,单精度实数的有效位数一般为7位,双 精度有效位数为16位。 %m.nf,指定输出数据共占m列,其中有n位小数。如果数值长度小于m,则左补空格。 %-m.nf与%m.nf基本相同,只是输出的数值向左端靠,右端补空格,输出如下:123.456001*123.456001*123.46*123.46 *123.46,例4.8 输出实数时指定小数位 #inc

14、lucevoid main() float f=123.456; printf(“%f *%10f *%10.2f*%.2f*%-10.2fn”,f,f,f,f,f);,xt1-1,共10位,小数占2位,小数点占1位,实型数据输出示例,# include int main(void) double d = 3.1415926; printf(%f, %en, d, d); printf(%5.3f, %5.2f, %.2fn, d, d, d); ,一共5位,小数3位,小数点一位,lxt23-pingguo,基本数据类型字符型,字符具有数值特征: 字符型数据在内存中占用一个字节,用于存储它的A

15、SCII码。可以用字符常量或相应的ASCII码表示字符 A 65 (ASCII码) 0100 0001(二进制) 字符变量的定义形式如下: char c1,c2; 可以用下面的语句对c1、c2赋值: c1=A; /把字符常量A赋值给字符变量c1 c2=b; 字符型变量的等价关系 char c; c = A; 等价于 c = 65;,字符型常量,字符常量 a A 9 + $ ASCII字符集(附录2) 列出所有可用的字符(256个) 每个字符:惟一的次序值( ASCII 码) 0-9 升序排列 A-Z a-z,字符的数值特征,字符ASCII 码 对字符进行运算 对字符的ASCII 码进行运算 例

16、如: A 的 ASCII 码 65 则:A+1=66,对应字符 B,转义字符,反斜杠后跟一个字符或数字 字符常量,代表一个字符 n 101 x41 A % 所有字符都可以用转义字符表示,6.3.3 字符型数据输入输出,字符型数据的格式控制说明是%c 使用scanf() 和 printf()函数,输入输出一个字符 char ch; scanf(%c, ,例 向字符变量赋以整数. #include void main() char c1,c2; c1=97; c2=98; printf(%c %cn,c1,c2); printf(%d %dn,c1,c2); ,运行结果为: a b 97 98,一

17、个字符型数据既可以以字符形式输出,也可以以整数形式输出,可以改为这两句:c1=a;c2=b;,例 大小写字母的转换 #include void main( ) char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(“%c %cn”,c1,c2); ,运行结果为: A B,小写字母在ASCII码表中排在大写字母的后面,每个小写字母比其相应的大写字母的ASCII码大32,例6-3(2) 输入输出字符示例,# include void main( ) char ch1, ch2, ch3; scanf(%c%c%c, ,AbC A#b#C,A bC A

18、# #b,例6-3(1) 输入输出字符示例,# include void main( ) char ch1, ch2; ch1=getchar(); ch2=getchar(); putchar(ch1); putchar(#); putchar(ch2); ,Ab A#b,例6-4 输出字符型数据,# include void main( ) char ch = b; printf(%c, %dn, b, b); printf(%c, %dn, 98, 98); printf(%c, %dn, 97, b-1); printf(%c, %dn, ch - a + A, ch - a + A

19、); b的ASCII码98,b, 98 b, 98 a, 97 B, 66,6.4.1 自动类型转换(非赋值运算),整型、浮点型(单、双精度)、字符型数据间可以混合运算 在运算时,不同类型的数据要先转换成同一类型(系统自动完成),然后进行运算。转换的规则如下图所示:根据数据类型的优先级别来确定。 高 double float long unsigned 低 int char,short,运算时数据向最高级别转换设 int i; float f; double d; long e; 则式子 10+a+i*f-d/e 的结果为double型,5.4.2 强制类型转换,强制类型转换运算符 类型转换运

20、算符: (类型名) 转换形式:(类型名) 表达式 如: (double)a /* 将a的值转换成double类型 */ (int)(x+y) /* 将x+y的值转换成整型 */ (float)(5%3) /* 将5%3的值转换成float型 */在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。 例如(int)x 而不要写成 int(x),例 float a; int c; a=3.34; c=(int)a+2; 结果是5,总结:类型转换有两种:1、自动类型转换 2、强制类型转换,表达式:由运算符和运算对象(操作数)组成的有意义的运算式子,它的值和类型由参加运算的运算符和

21、运算对象决定。 运算符:具有运算功能的符号 运算对象:常量、变量和函数等表达式 算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式等,6.5 表达式,6.5.1 算术表达式算术运算符,单目 + - + - 双目 + - * / % 注意 / 整数除整数,得整数 1/4 = 0,10/3 = 3 % 模(求余): 针对整型数据 5%6 = 5,9%4 = 1,100%4 = 0 + 和 单目运算符, +10 和 10 双目运算符, x+10 和 y 10 双目运算符两侧操作数的类型要相同,否则,自动类型转换后,再运算。,自增运算符+和自减运算符-,自增、自减运算符+ - (单

22、目运算) 作用:使变量值加1或减1。如:+I 等价于 i=i+1 两种形式: 前置 +i,-i (先使i值+1或-1,再使用i值) 后置 i+,i- (先使用i值, 再使i值+1或-1),例 i=3; k=+i; i=3; k=i+; a=3; b=5; c=(+a)*b; a=3; b=5; c=(a+)*b;,/i=4,k=4,/i=4,k=3,/a=4,c=20,/a=4,c=15,注意:前置和后置的区别,i值有不同吗?,/*使用循环方式求1-100的和(累加)*/ #include void main() int i,sum; sum=0; i=1; while(i=100) sum=

23、sum+i; i+; printf(和为: %dn,sum); ,改成下列形式行不? +i;,自增运算符+和自减运算符-,int n; n+ +n n- -n (只适合变量运算) 使变量的值增1或减1 +n n+ n = n + 1 -n n- n = n - 1 取变量的值作为表达式的值 +n:n = n + 1;取n值作为表达式 +n 的值 n+:取n值作为表达式 n+ 的值;n = n + 1,算术运算符的优先级和结合性,单目 + - + - 双目 * / % 双目 + -,从右向左,-5 + 3%2 = (-5) + (3%2) = -4 3 * 5 % 3 = (3*5) % 3 =

24、 0 -i+,-(i+),6.5.2 赋值表达式,1. 赋值运算符 赋值符号:= 2. 赋值表达式 变量标识符=表达式 x = 3*4; 作用:将一个数据(常量或表达式)赋给一个变量 赋值时将表达式的类型转换成变量的类型再赋值。 优先级较低,结合性从右向左 x = y = 3,例 float a; int c; a=3; c=a+2;,例 3=x-2*y; ( ) a+b=3; ( ),x = (y = 3),6.5.2 赋值表达式,3. 复合赋值运算符 在等号之前加上其它运算符,可以构成复合的运算符 形式:运算符= 种类:+= -= *= /= %= 实例:,例: a=b=c=5 a=5+(

25、c=6) a=(b=4)+(c=6) printf(“%d”,a=b);,/表达式值为5,a,b,c值为5 /表达式值11,c=6,a=11 /表达式值10,a=10,b=4,c=6 /完成赋值和输出双重功能,赋值表达式,例: 赋值表达式的复合运算 若a=12 则a+=a- =a*a a=a-a*a=-132 a=a+(-132)=-264,6.5.6 逗号表达式(P114),逗号运算符和表达式 形式:表达式1,表达式2,表达式n 结合性: 从左向右 优先级: 15 逗号表达式的值:等于“表达式n”的值 用途:常用于循环for语句中,例 a=3*5, a*4 例 x=(a=3, 6*3) x=

26、a=3, 6*a 例 已有a=1;b=2;c=3; printf(“%d,%d,%d”,(a,b,c),b,c);,/表达式值60, a=15 /赋值表达式,表达式值18,x=18 /逗号表达式,表达式值18,x=3 /3,2,3,int a, b, c; a=2, b=3, c=a+b (a=2), (b=3), (c=a+b);,加法:0100累加和 sum = 0; for(i = 0; i = 100; i+) sum = sum + i;,逗号表达式的用途,for(i =0, sum = 0; i = 100; i+) sum = sum + i;,for(i = 0, sum =

27、0; i = 100; i+) sum += i; 复合赋值表达式,x=3, 表达式y值? y= (x+) + (+x) + (x+),实例,y= ( a=3, b=a+, a/2 ) a值,b值,y值?,先计算所有的前置增量操作: x=4 计算表达式值: y=12 再计算所有的后置增量操作: x=5, x=6,x=3, 表达式y值? y= (+x) + (+x) + (+x),先前置: x=4, x=5, x=6 计算表达式值: y=18,a=3; b=3, a=4; a/2 计算表达式值: y=2,C语言程序是结构化的程序,C语言程序由三种基本结构组成 顺序结构:a=3; b=5; c=a

28、+b; 选择结构: if else , switch 循环结构: for , while,顺序结构程序与选择结构程序,顺序结构程序,选择结构程序,/*求两个数的和*/ #include void main( ) int a, b, c; scanf( “%d, %d”, ,/*求两个数的最大值*/ #include void main( ) int a, b, max; scanf( “%d, %d”, ,程序顺序执行,且每条语句都执行一次,根据条件,只执行满足条件的语句。某些语句可能执行不到。,循环结构程序,循环结构程序,#include void main( ) int a, b, sum

29、; scanf( “%d, %d”, ,/*求0100累加和*/ #include void main( ) int i, sum=0; for ( i=0; i=100; i+) sum=sum+i; printf( “sum = %d n”, sum ); ,在给定条件成立时,反复执行某程序段(循环体语句),直到条件不成立时,结束循环,例2-5 程序p26,例2-5: 计算银行存款利息 # include # include void main( ) int money, year; double rate, sum; printf(请输入存款金额: ); scanf(%d, ,scanf

30、(%d,%d,%lf, ,顺序结构程序设计举例,例 说明程序设计的步骤与注意事项,#include #include void main() int a,b,c; a=5;b=7; float x,y,z; c=a*b; z=sqrt(x+y); scanf(%f,%f, ,顺序结构程序设计举例,a=5;b=7;,float x,y,z;,scanf(%f,%f,z=sqrt(x+y);,printf(“%dn,c);,程序中有几处错误?,#include #include void main() float a,b,c,s,area; printf(“请输入三角形的三个边长:”); scan

31、f(%f,%f,%f, ,例输入三角形边长,求面积,输入:3,4,6 输出:a=3.00, b=4.00, c=6.00, s=6.50 area=5.33,分析: a,b,c:表示三角形的三边。 s:中间变量。 s=1/2*(a+b+c) area:三角形面积。 以上变量均为实型。,s=1/2*(a+b+c),s=(a+b+c) /2,设置几个变量?变量类型是什么?,选择结构程序,/*求两个数的最大值*/ #include void main( ) int a, b, max; scanf( “%d, %d”, ,根据条件,只执行满足条件的语句。某些语句可能执行不到。,6.5.3 关系表达式

32、关系运算符,比较两个操作数,比较的结果:真 假 x y x = y x != y 优先级 算术运算符 = = != 赋值运算符 左结合,a b = c d = a b ch a + 1 d = a + b c 3 = x = 5 b - 1 = a != c,(a b)= c d = (a b) ch (a + 1) d = (a + b) c) (3 = x) = 5 (b - 1) = a) != c,关系表达式,用关系运算符将2个表达式连接起来的式子 哪些是关系表达式? a b = c d = a b ch a + 1 d = a + b c b - 1 = a != c 3 = x =

33、 5 关系运算的结果 真 1 假 0,char ch = w; int a = 2, b = 3, c = 1, d, x=10;,0 0 1 1 0 1,C语言中的选择结构常用 if-else 语句来实现 形式:if (关系表达式) 语句1 else 语句2 作用:根据所指定的条件是否满足,决定从给定的两组操作(语句1,语句2)中选择其一 例如:if (ab) max=a ; else max=b ; 其中:“ab”是关系表达式,“”关系运算符 如果a=5,b=3,满足条件ab,则执行语句 max=a; 如果a=2,b=3,不满足条件ab,则执行语句max=b;,2.2.3 if-else,

34、/*求两个数的最大值*/ #include void main( ) int a, b, max; scanf( “%d, %d”, ,2.3.1 程序解析,例2-4 分段计算水费 要解决的问题: 输入x 计算分段函数 输出y,并保留2位小数,2.3.3 if - else语句,if (表达式) 语句1 else 语句2,if (x = 15) y = 4 * x / 3; else y = 2.5 * x - 10.5;,if (x15) else,y = 2.5 * x - 10.5;,y = 4 * x / 3;,2.3.1 程序解析求分段函数,/*例2-4 居民用水*/ #includ

35、e void main ( ) double x, y; printf(Enter x (x=0):n); /* 输入提示 */ scanf(%lf, ,Enter x (x=0): 9.5 f(9.500000)=12.67,Enter x (x=0): 15 f(15.000000)=20.00,Enter x (x=0): 21.3 f(21.300000)=42.75,软件测试的基本思想 p24,软件测试 精心设计一批测试用例 输入数据,预期输出结果 ,然后分别用这些测试用例运行程序,看程序的实际运行结果与预期输出结果是否一致。,input x: 2.5 f(2.50)=0.4,inp

36、ut x: 0 f(0.00)=0.0,if(x != 0) y = 1/x; else y = 0;,if(x = 15) y = 4 * x / 3; else y = 2.5 * x - 10.5;,Enter x (x=0): 9.5 f(9.500000)=12.67,Enter x (x=0): 15 f(15.000000)=20.00,Enter x (x=0): 21.3 f(21.300000)=42.75,6.5.5 条件表达式p113,y = (x0) ? x+2 : x*x;,if ( x0 ) y=x+2; else y=x*x;,z = (ab) ? a : b;

37、,if ( ab ) z = a; else z = b;,循环结构程序,问题:编程序求1+2+100之和 分析: 1、设一个变量sum存放和,并初始化为0; 2、设置变量i, 让其从1100,将这100个数一个一个加到sum中,加100次,而且每次都做同样的操作: sum=sum+i;i+;(i从1增加到100) 3、当i增加到101时,停止计算;最后sum中的值就为所求的值 顺序结构和选择结构程序是每条语句最多执行一次,不能解决这个问题,因此要用到循环结构 循环结构是用于处理大量的有规律的重复操作,sum=1+2+100;,分析:sum=0 i=1 sum=sum+1=1 sum=sum+

38、2=1+2=3 sum=sum+3=3+3=6 sum=sum+4=6+4=10 sum=sum+100=4950+100=5050,一般形式:,for ( 表达式1 ; 表达式2 ; 表达式3 ) 循环体语句,执行流程:,2.4.2 for语句循环语句,1.先求解表达式1,只执行一次 2.判断表达式2,若其值为真(非0),则执行循环体语句,并接着执行表达式3;若为假(0),则结束循环,执行for语句下面一条语句,sum=0; for (i=1;i=100;i+) sum=sum+i;,实现C语句的重复执行,此处无分号;,for语句一般应用形式:,for( 循环变量赋初值; 循环条件; 循环变

39、量增值) 循环体语句 ,#include void main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum); ,for (表达式1;表达式2;表达式3),求 1+2+100 抽取具有共性的算式:sum = sum + i sum初值为0,该算式重复100次,i从1变到100 设i为循环变量,则: 指定循环起点的表达式1:i = 1 给出循环条件的表达式2:i = 100 设置循环步长的表达式3:i+ 循环体语句:sum = sum + i; for(i=1; i=100; i+) sum =sum+i;,2.4.3 指定次数的循

40、环程序设计,/*计算1 + 2 + 3 + + 100 */ #include void main ( ) int i, sum; sum = 0; /* 置累加和sum的初值为0 */ for ( i = 1; i = 100; i+ ) /* 循环重复100次 */ sum = sum + i; /* 反复累加 */ printf( “sum = %dn”, sum); /* 输出累加和 */ ,源程序求 1+2+100,sum=5050,for(i=1,sum=0; i=100; i+) sum=sum+i;,例2-7: 计算1 + 2 + 3 + + n #include void m

41、ain ( ) int i, sum; printf (“Enter n: ”); scanf (“%d”, /* 输出累加和 */ ,扩展程序: 求1+2+n的和,作业题,2-2. 编写程序: 从键盘上输入摄氏温度,输出对应的华氏温度。 2-5. 编写程序: 从键盘输入两个整数,交换这两个变量的值并输出结果。 提示:设置中间变量,用于交换数据。 2-7. 编写程序: 将一个小于256的十进制数正整数转换成3位八进制数。 (选做) 提示:采用“除8取余数”的方法,将十进制数除以8得到商和余数,再将商除以8,又得到商和余数,继续这个过程直到商等于0为止。第一次得到的余数为八进制的最低位,最后一次

42、得到的余数为八进制数的最高位。,关系运算注意:,例若a=0;b=0.5;x=0.3 则a=x=b的值为,0,例5278在C中是允许的, 值为,0,例inti=1, j=7, a ; a=i+(j%4!=0) ; 则a=,2,例a0结果为 A100结果为,1,0,a=0;x=0.3 则 a=x 的值为 1 b=0.5 则 1=b 的值为 0 改表达式为: a=x if(a=b) printf(“aequaltob”); else printf(“anotequaltob”);,例应避免对实数作相等或不等的判断 如1.0/3.0*3.0=1.0结果为 可改写为:fabs(1.0/3.0*3.0-1

43、.0)1e-6 (因为有效位是7位,比10-6还小,表示有效),0,错误,if(a=b),关系运算符 种类: = =!= 结合方向:自左向右 优先级别:p365,关系运算:是将两个值进行比较,判断其比较结果是否符合给定条件 关系表达式:用关系运算符将两个表达式(算术表达式或关系表达式、逻辑表达式、赋值表达式等)连接起来的式子 关系表达式的值:是逻辑值“真”或“假”,用1和0表示,例inta=3, b=2, c=1, d, f ; 求下列表达式的值 ab b+cb f=abc,/表达式值1,/表达式值0,/d=1,/f=0 或 f=1,关系运算符和表达式,例a= =bb!=c /(ab)!=c ca+b/c(a+b) a=bc/a=(bc),逻辑运算符 种类: b=5 ; 求表达式的值? (1)!a (2)a int a = 2, b = 0, c = 0; float x = 3.0;,0 1 0 1 1 0 1,exp1 ,int n; (n0) ? 2.9 : 1 n = 10 n = -10,2.9 1.0,if ( x0 ) y=x+2; else y=x*x;,z = (ab) ? a : b;,if ( ab ) z = a; else z = b;,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁