第二讲基本数据计算与输入输出_第1页
第二讲基本数据计算与输入输出_第2页
第二讲基本数据计算与输入输出_第3页
第二讲基本数据计算与输入输出_第4页
第二讲基本数据计算与输入输出_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、主讲主讲刘少兵刘少兵共 72 页 第 2 2 页本本 章章 要要 点点共 72 页 第 3 3 页共 72 页 第 4 4 页 程序加工处理的对象及其结果程序加工处理的对象及其结果 数据在计算机内部的存储形式(占用的数据在计算机内部的存储形式(占用的内内存单元数量存单元数量、编码方式编码方式、取值范围取值范围等)等) 在程序运行过程中在程序运行过程中不允许不允许改变的量改变的量 在程序运行过程中在程序运行过程中允许允许改变的量改变的量共 72 页 第 5 5 页基本类型基本类型字符型字符型 charchar整型整型 intint浮点型浮点型单精度单精度 floatfloat双精度双精度 dou

2、bledouble指针类型指针类型构造类型构造类型数组数组结构结构 structstruct联合联合 unionunion枚举枚举 enumenum无值类型无值类型第二章第二章第五章第五章第六章第六章指针类型指针类型第四章第四章共 72 页 第 6 6 页charcharintintfloatfloatdoubledouble类型说明符类型说明符shortshortlonglongsignedsignedunsignedunsigned类型修饰符类型修饰符注意:注意:类型修饰符类型修饰符不能不能单独使用,必须与单独使用,必须与类型类型说明符说明符配合在一起使用配合在一起使用C语言采用语言采用类

3、型类型说明符说明符说明不同说明不同的数据类型的数据类型共 72 页 第 7 7 页 类型类型 占用内存单元占用内存单元 取值范围取值范围 数据存储格式数据存储格式 char 1( 8char 1( 8位位) 0 ) 0 255 255 ASCIIASCII码码 s short int 2hort int 2(16(16位位) ) -32768 -32768 32767 32767 二进制补码二进制补码 float 4(32float 4(32位位) ) 3.43.4* *1010-38-383.43.4* *10103838 7 7位有效位有效数字数字 double 8(64double 8(

4、64位位) ) 1010-308 -308 1010308308 15 15位位有效数字有效数字无法表示无法表示全体实数全体实数保存字符对应保存字符对应的的ASCII码码-2-215151000,0000,0000,00002 21515-1-10111,1111,1111,1111float:float:尾数尾数2424位位+ +阶数阶数8 8位位 double:double:尾数尾数5252位位+ +阶数阶数1212位位 共 72 页 第 8 8 页共 72 页 第 9 9 页i=2i=2i=6i=6i=24i=24i=120i=120i=720i=720i=5040i=5040i=i=-

5、25216-25216i=i=-30336-30336i=i=2432024320共 72 页 第 1010 页尾数的符号位尾数的符号位阶码的符号位阶码的符号位共 72 页 第 1111 页 short int short int int short= int shortsigned int short int shortsigned int short int short 类型类型 占用内存单元占用内存单元 取值范围取值范围 unsigned int 2unsigned int 2字节字节 0 0 65535 65535long int long int 4 4字节字节 -214748364

6、8 -2147483648 2147483647 2147483647unsigned long 4unsigned long 4字节字节 0 0 4294967295 4294967295-2-231312 23131-1-12 21616-1-12 23232-1-1共 72 页 第 1212 页l 整型常量整型常量(3种形式种形式)10进制进制 8进制进制16进制进制l实型常量实型常量(2种形式种形式)十进制十进制 指数指数 l字符常量字符常量l字符串常量字符串常量9 9, 、或或共 72 页 第 1313 页共 72 页 第 1414 页共 72 页 第 1515 页共 72 页 第

7、1616 页共 72 页 第 1717 页字符串常量:用字符串常量:用双引号双引号括起来的字符括起来的字符序列序列 实例:实例:”This is C string.This is C string.” ”a a” ” ” (1 1个个空格)空格) ” (不含空格)不含空格) 串定界符:串定界符:双引号双引号 ”字符串长度字符串长度:字符串中包含的:字符串中包含的字符数量字符数量。tNameAddressntNameAddressnC is very easy.C is very easy. a a 与与 字符字符a a 的区别的区别 He saidHe said ok.ok. nn共 72 页

8、 第 1818 页l常量定义形式常量定义形式# #definedefine 标识符标识符 常量常量 用定义的一个用定义的一个标识符标识符来代表一个来代表一个常量常量,称为称为符号常量符号常量# # 宏命令专用定义符号宏命令专用定义符号definedefine 命令命令 标识符标识符宏替换名(一般采用大写字符)宏替换名(一般采用大写字符)共 72 页 第 1919 页共 72 页 第 2020 页l变量:变量:在程序运行过程中在程序运行过程中允许允许改变的量改变的量l变量的说明格式:变量的说明格式: 类型修饰符类型修饰符 类型说明符类型说明符 变量列表变量列表;l例如:例如:intint i;

9、i; charchar ch, str; ch, str; longlong k=1, m=0 x12345678; k=1, m=0 x12345678; double x, y=1; double x, y=1;l变量说明意味着确定了:该变量变量说明意味着确定了:该变量 占用占用内存内存单元的数量,单元的数量, 数据在内存的数据在内存的表示方式表示方式, 数据的数据的取值范围取值范围。共 72 页 第 2121 页l变量的三个属性:变量的三个属性: 变量变量名称名称:编程编程时使用(进行时使用(进行编程编程) 变量的变量的值值:程序:程序运行运行时使用(进行时使用(进行运算运算) 变量变量

10、地址地址:程序运行时,要将变量的:程序运行时,要将变量的值值保保存在计算机的存储单元中,每个存储单元都存在计算机的存储单元中,每个存储单元都有唯一的有唯一的内存地址内存地址。变量。变量在内存中占据的存在内存中占据的存储单元的地址储单元的地址就是就是变量的地址变量的地址。l指针指针:变量的:变量的地址地址l一般一般变量:变量:存储变量的存储变量的值值l指针变量指针变量:保存变量地址的变量:保存变量地址的变量共 72 页 第 2222 页l指针变量说明:指针变量说明:数据类型数据类型 * * 变量名变量名;例例:有变量说明语句:有变量说明语句:char c=A; 若变量若变量c在在内存中对应的地址

11、为内存中对应的地址为1000; * 变量变量名称名称:c,类型为类型为char,占用占用1个字节个字节 * 变量变量c的的值值: 字母字母A * 变量变量c的的地址地址:1000若有:若有:char * * pc;则称指针变量则称指针变量pc是是char型指针型指针pc=&c; / /* * & &取取c c的地址的地址 * */ /则称则称指针变量指针变量pc指向指向变量变量c1000 A 变 量c1001 2000 1000 变 量pc共 72 页 第 2323 页 变量在说明之后,没有固定的初始值,要变量在说明之后,没有固定的初始值,要先先赋值(给定一个初始值),赋值(给定一个初始值),

12、后后使用。使用。l变量赋初值变量赋初值 将将变量说明变量说明与与赋初值赋初值合一,在说明变量时合一,在说明变量时同时完成。同时完成。l实例实例char cc = a, dd = n ;int x = 10, y = - -10, z; double try = 28.5, w = 1e10;共 72 页 第 2424 页条件运算条件运算 指针指针运算运算 目目:进行运算时需:进行运算时需要的要的操作数的数量操作数的数量共 72 页 第 2525 页l运算符(运算符(双双目运算符目运算符/ /单单目运算符)目运算符) + + 加法运算加法运算 1212 正正值运算值运算 1414 - - 减法运

13、算减法运算 1212 负负值运算值运算 1414 * * 乘法运算乘法运算 1313 / / 除法运算除法运算 1313 % % 求余运算求余运算 1313l优先级优先级:* * / % / % 同级(高),同级(高),+ + - - 同级(低)同级(低)l结合性结合性:相同优先级运算符进行运算时的次序:相同优先级运算符进行运算时的次序 自自左左向向右右共 72 页 第 2626 页1.1.参加运算的对象都是参加运算的对象都是intint型,结果截取为型,结果截取为intint型型 9%3 9%31%31%310%310%310%-310%-3-10%3-10%3-10%-3-10%-3=3=

14、3=3.3333=3.66667=0=0.5=6=0=0=1 1=1= =1 1= =-1-1= =-1-1共 72 页 第 2727 页l运算符(运算符(双双目运算符目运算符 )l优先级优先级: = = bab)=cab=ca-b=c成立成立, 结果为结果为 1不成立不成立,结果为结果为 成立成立, 结果为结果为 1不成立不成立,结果为,结果为 结果为结果为 1与上面与上面等价等价,结果为结果为 1等价等价于于( (a-b)a-b)=1 1,结果为结果为 如何判断数学中的逻辑关系:如何判断数学中的逻辑关系:00a a99? 0 0=a a=9 9共 72 页 第 2929 页l运算符运算符&

15、 & 逻辑与逻辑与( (双双目目) ) 逻辑或逻辑或( (双双目目) ) ! ! 逻辑非逻辑非( (单目单目) ) 共 72 页 第 3030 页共 72 页 第 3131 页l运算符运算符( (双双目目) ) ( (双双目目) ) ( (双双目目) )( (双双目目) ) ( (双双目目) )( (单单目目) )共 72 页 第 3232 页l实例:已知:实例:已知:intint x=7,y=10,z=1; x=7,y=10,z=1; 设字长为设字长为8位位 x&y = x&z = x y = y z = x y = x = x = x2 = x2 = 2 ( (0000 0111 & 00

16、00 1010 = 0010) ) 1 ( (0000 0111 & 0000 0001 = 0001) ) 15 ( (0000 0111 0000 1010 = 1111) ) 11 ( (0000 1010 0000 0001 = 1011) ) 13 ( (0000 0111 0000 1010 = 1101) ) 8 ( ( 0000 0111 ) ) = 1111 1000 7 28 ( (0000 0111 2 = 0000 0010) ) 1 ( (0000 0111 2 = 0000 0001) )共 72 页 第 3333 页l说明说明 关于关于:右移一位:右移一位 = =

17、 缩小缩小 1/2 1/2 关于关于:左移一位:左移一位 = = 扩大扩大 2 2 倍倍 关于关于: 因为:因为: x = x = 按位求反按位求反 = = 求反运算求反运算 求负求负 = = 求补求补 = = 求反求反 + 1 + 1 所以:所以: 求反求反 = = 求负求负 1 1 x = x = -x-x -1 -1 7 = 7 = 8 8 ( (8) = 78) = 7共 72 页 第 3434 页l运算符运算符+ l+和和 为单目运算,只能作用于变量为单目运算,只能作用于变量l只能对只能对intint、charchar、longlong和和指针变量指针变量进行运算进行运算l功能:功能

18、: +x x=x+1 x x=x1 ( (前缀前缀) ) x+ x=x+1 x x=x1 ( (后缀后缀) )共 72 页 第 3535 页l前缀与后缀的区别:前缀与后缀的区别: y=+x; x=x+1; y=x; x先先加加1再再赋值赋值 y=x+; y=x; x=x+1; x先先赋值赋值再再加加1共 72 页 第 3636 页共 72 页 第 3737 页l 注意,以下操作是错误的:注意,以下操作是错误的: x = +(i+j)+1; j = + (5+x); y = +x * * +x; 逻辑逻辑虽然正确虽然正确,但实际编程,但实际编程中容易产生误中容易产生误解,应当避免解,应当避免共

19、72 页 第 3838 页共 72 页 第 3939 页l运算符运算符赋值运算:赋值运算: = 2赋值组合运算:赋值组合运算:e1 op= e2 2 等于于:等于于:e1 = e1 op (e2)其中:其中:op为下列为下列10个运算符之一个运算符之一+ + * * / % / % | & | & e1为可以进行赋制操作的变量为可以进行赋制操作的变量e2为合法的表达式为合法的表达式l例:例:x += 2; x = x + 2; x * *= y+1; x = x * * ( y+1); 不等价不等价 x = x * * y+1; x = 2; x = x 2;共 72 页 第 4040 页l运

20、算符运算符e1 ? e2 : e3例:例:max = (ab) ? a : b; 求变量求变量a与与b的的最大值最大值 min = (ab) ? a : b; 求变量求变量a与与b的的最小值最小值判断判断e1 ?执行执行e2执行执行e3成立成立不成立不成立共 72 页 第 4141 页l运算符运算符& 取变量的地址取变量的地址 14* * 取指针变量(所指向)的内容取指针变量(所指向)的内容 14l注意注意: 运算符运算符 & 和和“位与位与”运算是同一符号;运算是同一符号; 运算符运算符 * * 和和“乘乘”运算是同一符号。运算是同一符号。 只能从程序的上下文来区分运算符只能从程序的上下文来

21、区分运算符 & 和和运运算符算符 * * 的实际意义。的实际意义。共 72 页 第 4242 页l实例:实例:已知:已知:int x=2, y, * *px; x为一般变量,为一般变量,px为指针型变量为指针型变量 y=x * * 100; * *px=y* *10; +x; x+; px px = &x; 取变量取变量x的地址赋值给指针的地址赋值给指针px 又称为让又称为让px指向指向变量变量x x=10;若若px已经已经指向指向x,则可以用则可以用 * *px 代替变量代替变量 xx210 * *px = 10; 也称为也称为间接访问间接访问 y = * *px; 取指针取指针px的的内容

22、内容 y = * *px * * 100; x = y * * 10; + * * px (* * px)+; 括号括号不能不能省略省略 y=x; 共 72 页 第 4343 页l运算符运算符 . . 取结构取结构/联合的成员联合的成员15 通过指针通过指针取结构取结构/联合的成员联合的成员 15 ( ) 改变表达式中的优先级关系改变表达式中的优先级关系 15 数组下标数组下标 15 , 逗号,表达式从左向右顺序计算逗号,表达式从左向右顺序计算 1 (type) e 将将e的数据类型强制转换为的数据类型强制转换为type 14 sizeof (opr) 求求opr所占用的内存的字节数所占用的内

23、存的字节数 14第六章第六章第五章第五章共 72 页 第 4444 页l实例实例: 已知:已知:int x,y,z;int x,y,z; y = ( x=10, x+1); 答案答案:先执行先执行x=10,然后再执行,然后再执行y = x+1 y=11, x=10 z = sizeof( (int) ); 答案答案:z=2 求求int型数据占用的内存字节数量型数据占用的内存字节数量 z = sizeof( (x) ); 答案答案:z=2 求变量求变量x占用的内存字节数量占用的内存字节数量共 72 页 第 4545 页l按运算符的按运算符的优先级优先级分为分为15级级l按运算符的按运算符的结合性

24、结合性分为分为2种种自左向右自左向右结合结合 自右向左自右向左结合结合l优先级优先级不同不同时:运算符优先级的时:运算符优先级的高低高低决定了决定了进行运算的进行运算的先后次序先后次序。l优先级优先级相同相同时:同优先级运算符的运算次序时:同优先级运算符的运算次序由结合性决定。由结合性决定。l例如:例如:四则运算中的四则运算中的“先乘除,后加减先乘除,后加减”反反映了运算符的优先级;映了运算符的优先级;“同级运算从左至右同级运算从左至右”反映了乘反映了乘/除运算(加除运算(加/减运算)的结合性。减运算)的结合性。共 72 页 第 4646 页优先级 运算符 结合性 优先级 运算符 结合性 (

25、) 9 = = != 15 . - 8 & ! + - 7 - * & 6 ! 14 (type) sizeof 5 & 13 * / % 4 | 12 + - 3 ? : 11 = = 1 , l运算符运算符优先级优先级表表共 72 页 第 4747 页l已知:已知:int a=8, b=5, c=2; 计算计算下列表达式结果下列表达式结果 a / b * * b a %b * * c a * * c 2 a & c & b a | b & c ( a 3) b a ? a * c : a % c5先先 / 后后 * *6先先 % 后后 * *4先先 * * 后后 0先先 & 后后 &8先先

26、 & 后后 | 后后 00001000=111101113=1111 1110=0000 000116先先 再再 再再 ? ? : :共 72 页 第 4848 页# #define PRINT(x) printf(%dn, x)define PRINT(x) printf(%dn, x)main ( )main ( ) int x=3, y=2, z=1; int x=3, y=2, z=1; x = y+ = x & x = y+ = x & x - y = +zx - y = +z; ; PRINT(x); PRINT(y); PRINT(z); PRINT(x); PRINT(y);

27、PRINT(z); y y * *= z = x+(z+2); = z = x+(z+2); PRINT(x); PRINT(y); PRINT(z); PRINT(x); PRINT(y); PRINT(z); x = y = z = 1; x = y = z = 1; PRINT (-x & PRINT (-x & +y +y | z+); | z+); PRINT(x); PRINT(y); PRINT(z); PRINT(x); PRINT(y); PRINT(z); x=9; y=6; z=5; x=9; y=6; z=5; x = ( x + y ) % z = x % z + y

28、 % z ) ? 1: 0; x = ( x + y ) % z = x % z + y % z ) ? 1: 0; PRINT(x); PRINT(x); / /* * 先算先算y=xy=x结果为结果为0 0,则,则不不再再 算算&之后的表达式之后的表达式x-y=+zx-y=+z。将结果赋给将结果赋给x x,最后执行最后执行y+1y+1 * */ / / /* * x= x=0 0, y=, y=3 3, z=, z=1 1 * */ / / /* * 先先算算x+(z+2)x+(z+2),3 3赋给赋给z z,再再执行执行y y* *=z =z * */ / / /* * x= x=0 0

29、, y=, y=9 9, z=, z=3 3 * */ / / /* * x x先减先减1 1结果为结果为0 0,则跳过,则跳过&+&+y y不执行,与不执行,与z z进行逻辑或运算,再执行进行逻辑或运算,再执行z+z+,输出结果:输出结果:1 1 * */ / / /* * x=x=0 0, y=, y=1 1, z=, z=2 2 * */ / /* * * */ / /* * * */ / /* * * */ / /* * * */ / /* * * */ / / /* * x= x=0 0 * */ /共 72 页 第 4949 页# #include include main ( )

30、main ( )int x, y, z;int x, y, z; x=1; y=1; z=0; x=1; y=1; z=0; x = x x = x &y y|z;z; printf(x=%dn,x); printf(x=%dn,x); printf (%dn, x printf (%dn, x | ! !y+ & +z);y+ & +z); printf (y=%d, z=%dn, y, z); printf (y=%d, z=%dn, y, z); x = y = 1; x = y = 1; z = x z = x+ -1; -1; printf (x=%d, z=%dn, x, z);

31、printf (x=%d, z=%dn, x, z); z += -x z += -x+ + + +y;y; printf (x=%d, y=%d, z=%dn, x, y, z); printf (x=%d, y=%d, z=%dn, x, y, z); & &优先级高,先计算优先级高,先计算x&yx&y,结果为结果为1 1由于是由于是|运算,故不再计算运算,故不再计算1 1|z z。x=1x=1|优先级最低优先级最低, ,x=1,x=1,不再计算不再计算|右边的算式右边的算式, ,y y和和z z不变不变 y=1, z=0y=1, z=0 +为后缀为后缀, ,先先将将x-1x-1的值赋给的

32、值赋给z,z,再再计算计算x+ x+ x=2, z=0 x=2, z=0等价于等价于z+=(-(x+)+(z+=(-(x+)+(+y)y)x=3, z=0, y=2x=3, z=0, y=2实例实例共 72 页 第 5050 页l不同数据类型的数据不同数据类型的数据/ /变量进行混合运算时,需变量进行混合运算时,需要进行数据类型转换要进行数据类型转换l转换方式有两种:转换方式有两种:“显式的显式的”类型转换类型转换“隐式的隐式的”类型转换类型转换l“显式的显式的”类型转换采用强制类型转换运算符类型转换采用强制类型转换运算符( (type)type)l“隐式的隐式的”类型转换是语言按照一定的类型

33、类型转换是语言按照一定的类型转换规则自动进行的转换转换规则自动进行的转换共 72 页 第 5151 页l“隐式的隐式的”类型转换规则类型转换规则 1 1、运算中将所有、运算中将所有charchar型数据都转换成型数据都转换成intint型,型,floatfloat型转换成型转换成doubledouble型。型。 2 2、低级类型服从高级类型,并进行相应的转、低级类型服从高级类型,并进行相应的转换换doubledouble floatfloatlonglongunsignedunsignedintint char char 3 3、赋值赋值运算以赋值运算符运算以赋值运算符左边左边变量的类型为变量

34、的类型为准,即赋值运算符右端值的类型向左边变量准,即赋值运算符右端值的类型向左边变量的类型看齐,并进行相应的转换。的类型看齐,并进行相应的转换。共 72 页 第 5252 页例:例:intint a,j,y; a,j,y; floatfloat b; b; longlong d; d; doubledouble c; c;则:则: y = j + y = j + a a + a + a * * b - c / d; b - c / d;其运算次序和隐含的类型转换为:其运算次序和隐含的类型转换为:计算计算a a* *b b,运算结果为运算结果为doubledouble型。型。再计算再计算c/dc

35、/d,结果为结果为doubledouble型。型。计算计算j+j+a a,结果为整型。结果为整型。将第将第1 1步和第步和第3 3步的结果相加,结果为步的结果相加,结果为doubledouble型型用第用第4 4步结果减第步结果减第2 2步结果,结果为步结果,结果为doubledouble型型给给y y赋值,先将第步的结果赋值,先将第步的结果doubledouble型转换为型转换为整型(因为赋值运算左边变量整型(因为赋值运算左边变量y y为整型),为整型),截掉截掉doubledouble型数据的小数部分,压缩成型数据的小数部分,压缩成intint型。型。共 72 页 第 5353 页共 72

36、 页 第 5454 页l调用形式:调用形式: c = c = getchar( )getchar( )l功能:功能:从标准输入设备从标准输入设备( (键盘键盘) )上取上取一个一个字符作字符作为函数值返回。为函数值返回。l例例: # #include stdio.hinclude stdio.h main ( ) main ( ) char c; char c; c = c = getchargetchar( );( ); putcharputchar(c); /(c); /* * 输出字符变量输出字符变量c c的值的值 * */ / l运行程序,如果从键盘输入:运行程序,如果从键盘输入:a

37、aENTERENTER则输出为:则输出为: a a如果从键盘输入:如果从键盘输入: abcabcENTERENTER则输出也为:则输出也为: a a共 72 页 第 5555 页l调用形式:调用形式:scanf( (”控制字符串控制字符串”, ,参数参数1 1, ,参数参数2 2, , , ,参数参数n n) )其中:控制字符串也称为其中:控制字符串也称为格式说明串格式说明串,它用于描述变,它用于描述变量的输入方式,格式说明的形式是:量的输入方式,格式说明的形式是:附加格式说明符附加格式说明符 格式转换字符格式转换字符附加格式说明符附加格式说明符部分可以缺省。部分可以缺省。l功能:功能:从标准

38、输入设备上读取输入数据,按格式说明从标准输入设备上读取输入数据,按格式说明的描述将读入的数据赋于相应的参数。的描述将读入的数据赋于相应的参数。 参数部分的每个参数,若为一般变量,要在变量名参数部分的每个参数,若为一般变量,要在变量名前加前加“& &”(取地址运算符),表示将输入的数据存(取地址运算符),表示将输入的数据存入变量对应的内存单元(地址)中。入变量对应的内存单元(地址)中。scanfscanf ( ( ”%d%d”, , & &x x ) ); ;共 72 页 第 5656 页格式转换字符格式转换字符 说说 明明 d d 输入输入十十进制整数进制整数 o o 输入输入八八进制整数进制

39、整数 x x 输入输入十六十六进制整数进制整数 c c 输入输入单个单个字符字符 s s 输入字符输入字符串串 f f 输入输入实数实数,可为小数形式或指数形式,可为小数形式或指数形式附加格式说明符附加格式说明符 说说 明明 l l 用于输入用于输入长整型长整型数据及数据及doubledouble型数据型数据 h h 用于用于短短整型数据整型数据正整数正整数 用于指定输入数据占据的宽度用于指定输入数据占据的宽度 * * 表示本输入项在读入后舍弃表示本输入项在读入后舍弃共 72 页 第 5757 页:scanf (scanf (%3d%3d%2d%2d, , &x&x, , &y&y););输入

40、序列:输入序列:123456123456 ENTERENTER结果:结果:x=1x=12323,y=y=4545:scanf (scanf (%d%d, ,%d%d: :%f%f, , &x&x, , &y&y, , &z&z););输入序列:输入序列:1 1, ,2 2: :3.53.5 ENTERENTER结果:结果:x=x=1 1,y=y=2 2,z=z=3.53.5:scanf (scanf (%d%d%d%d%d%d, , &x&x, , &y&y, , &z&z););输入序列一:输入序列一:1 12 23 3 ENTERENTER结果:结果:x=x=1 1,y=y=2 2,z=z

41、=3 3输入序列二:输入序列二:11TAB2 3TAB2 3ENTERENTER输入序列三:输入序列三:1 1 ENTERENTER 2 32 3ENTERENTER结果与输入序列一的结果一样。结果与输入序列一的结果一样。共 72 页 第 5858 页:scanf (scanf (%2d%2d % %* *2d2d,%2d, ,%2d, &x&x, &y);, &y);输入序列:输入序列:12 12 34,34,5656 ENTERENTER结果:结果:x=x=1212,y=56y=56。注意注意: 在在scanfscanf中,可以使用中,可以使用 ENTERENTER 、空格空格或或 TAB

42、TAB作为数据之间的作为数据之间的分隔符分隔符。5 5:scanf (scanf (”x=x=%d%d, , &x&x);); 要使要使x x的的值等于值等于1212,从键盘应怎样输入?,从键盘应怎样输入? 正确正确的输入序列:的输入序列:x=x=1212ENTERENTER 注意注意:字符:字符 x= x= 被过滤掉了被过滤掉了 若输入序列为:若输入序列为:1212 ENTERENTER错误!错误!共 72 页 第 5959 页l调用形式:调用形式: putcharputchar( c )( c )l功能:功能:通过标准输出设备通过标准输出设备( (显示器显示器) )输出变量输出变量c c。

43、l例例C2_7301.CC2_7301.C:将从键盘输入的一行字符复制到将从键盘输入的一行字符复制到标准输出。标准输出。 # #include stdio.hinclude stdio.hmain ( )main ( ) char c; char c; c= getchar( ); c= getchar( ); whilewhile ( c != ( c != nn ) ) putcharputchar(c); (c); / /* * 输出该字符输出该字符 * */ / c=getchar( ); c=getchar( ); / /* * 再取下一输入字符再取下一输入字符 * */ / 共 7

44、2 页 第 6060 页l调用形式:调用形式:printf (”控制字符串控制字符串”,参数参数1,参数参数2,参数参数n)其中:控制字符串也称为格式说明串,它用于其中:控制字符串也称为格式说明串,它用于描述变量的输出方式,格式说明的形式是:描述变量的输出方式,格式说明的形式是:附加格式说明符附加格式说明符 格式转换字符格式转换字符附加格式说明符附加格式说明符部分可以缺省。部分可以缺省。l功能:功能:按照控制字符串中的格式说明依次将后按照控制字符串中的格式说明依次将后面的各参数进行转换,排放成格式说明中规定面的各参数进行转换,排放成格式说明中规定的格式,输出到输出设备上。对的格式,输出到输出设

45、备上。对非格式说明符非格式说明符,则按则按原样输出原样输出。共 72 页 第 6161 页格式转换字符格式转换字符 说说 明明 d d 以十进制形式输出整数以十进制形式输出整数( (正数不输出符号正数不输出符号) ) o o 以八进制无符号形式输出整数以八进制无符号形式输出整数( (不输出前缀符不输出前缀符) ) x x 以十六进制无符号形式输出整数以十六进制无符号形式输出整数( (不输出前缀符不输出前缀符) ) u u 以无符号十进制形式输出整数以无符号十进制形式输出整数 c c 以字符形式输出,仅输出一个字符以字符形式输出,仅输出一个字符 s s 输出字符串输出字符串 f f 以小数形式输

46、出单、双精度数以小数形式输出单、双精度数 e e 以标准指数形式输出单、双精度数以标准指数形式输出单、双精度数 g g 选用选用% %f f或或% %e e格式中输出宽度较短的一种格式,格式中输出宽度较短的一种格式, 不输出无意义的不输出无意义的共 72 页 第 6262 页共 72 页 第 6363 页l实例:实例: # #include include main( ) main( ) printf (This is a C program.n); printf (This is a C program.n); l实例:实例: # #include include main( )main(

47、) int a=1, b=2, c=100; int a=1, b=2, c=100; printf( printf( a=a=%d%d, b=, b=%3d%3d, d=, d=%3d%3d%nn , ,a a, , b b, ,a a* *c/bc/b);); printf(printf( % %d d, %, %o o, %, %x xnn , -a, -a, -a);, -a, -a, -a); 答案:答案:a=1, b= 2, d= 50% -1, 177777, ffff共 72 页 第 6464 页l实例:实例: # #include include main ( )main (

48、 ) char c= char c=a a; ; char ch =Good-bye.; char ch =Good-bye.; printf(% printf(%c c,%,%3c3c,%,%3d3dn, n, c c, , c c, , c c);); printf(printf(%s%s, ,%10s%10s, ,%-8s%-8s, ,%-12s%-12s, ,%6.4s%6.4sn,n,ch,ch,ch,ch,ch);ch,ch,ch,ch,ch); printf(123456789012345678901234567890n); printf(12345678901234567890

49、1234567890n); 答案:答案: a a, , a a, , 9797Good-bye.Good-bye., , Good-bye.,Good-bye.,Good-bye.Good-bye., ,Good-bye.Good-bye. , , Good Good1234567891234567890 0123456789012345678901 12345678902345678901 12345678901232345678901234 4567890567890共 72 页 第 6565 页l实例实例4 4: #include main( ) int a; int a; float

50、b,c; float b,c; scanf ( scanf (”%2d%2d%3f%3f%4f%4f”, , &a&a, , &b&b, , &c&c);); printf( printf(”a=%d,b=%f,c=%fna=%d,b=%f,c=%fn”,a,b,c);,a,b,c); 输入:输入:12345678987654321输出:输出:a=12, b=345.000000, c=6789.000000共 72 页 第 6666 页l1 1、运算符有优先级,在运算符有优先级,在C C语言中关于运算符语言中关于运算符优先级的正确叙述是优先级的正确叙述是 。 A) A) 逻辑逻辑运算符高于运

51、算符高于算术算术运算符,运算符,算术算术运算运算符高于符高于关系关系运算符运算符 B) B) 算术算术运算符高于运算符高于关系关系运算符,运算符,关系关系运算运算符高于符高于逻辑逻辑运算符运算符 C) C) 算术算术运算符高于运算符高于逻辑逻辑运算符,运算符,逻辑逻辑运算运算符高于符高于关系关系运算符运算符 D) D) 关系关系运算符高于运算符高于逻辑逻辑运算符,运算符,逻辑逻辑运算运算符高于符高于算术算术运算符运算符l答案:答案:B B共 72 页 第 6767 页l2 2、在以下关于在以下关于C C语言的不严格的叙述中,语言的不严格的叙述中,错误错误的是的是 A)A)大大写字母和写字母和小小写字母的意义相同写字母的意义相同 B)B)有些有些不同不同类型的变量可以在一个表达式中运算类型的变量可以在一个表达式中运算 C)C)在赋值表达式中等号在赋值表

温馨提示

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

评论

0/150

提交评论