武汉大学C语言程序设计第4讲级_第1页
武汉大学C语言程序设计第4讲级_第2页
武汉大学C语言程序设计第4讲级_第3页
武汉大学C语言程序设计第4讲级_第4页
武汉大学C语言程序设计第4讲级_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、2021-11-51 program design in c languagepage基本运算符及其表达式c语言程序的基本语句 数据的输入输出 第四讲第四讲第三章第三章 2021-11-52 program design in c languagepagec c语言没有逻辑型数据。因此,语言没有逻辑型数据。因此, 在返回逻辑值时:在返回逻辑值时:用用1 1表示表示“真真”,用,用0 0表示表示“假假”; 在判断逻辑值时:在判断逻辑值时:用非用非0 0代表代表“真真”,用,用0 0代表代表“假假”。24 基本运算符及其表达式基本运算符及其表达式例:例:#includevoid main()int

2、 a=15,b=18,c=10; printf(%d,%d,%dn,ab,abc);0,1,02021-11-53 program design in c languagepage for instance: 已知已知a=3,b=2,c=1则则 1)c = = a + b 结果为结果为 0 2 2)a = = b b 结果为结果为 124 基本运算符及其表达式基本运算符及其表达式2021-11-54 program design in c languagepage例例写出下列各题的关系表达式:写出下列各题的关系表达式:1)x为不小于为不小于 -5 的整数的整数 x=52)x 为非零的数为非零的

3、数 3)5mk2021-11-55 program design in c languagepage例例#include void main()() int a ,b ,c ;a = b = c = 10 ; a = b = c ; printf ( “%d , %d , %d n”, a , b, c ) ; a = ( b= c+ * 2 ) ; printf ( “%d , %d , %d n”, a , b, c ) ; a = b c = 100 ; printf ( “%d , %d , %d n”, a , b, c ) ; 2021-11-56 program design i

4、n c languagepage2.4.3 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式logical operators and precedence关系表达式只能表达一些简单的关系,如:关系表达式只能表达一些简单的关系,如:sum=1500y!=z即只能对一个条件进行测试。即只能对一个条件进行测试。而以下关系:而以下关系: 20 x100则不能用关系表达式表达。则不能用关系表达式表达。a!a真(1) 假(0)假(0) 真(1)逻辑非!逻辑非! 真值表真值表1.1.逻辑运算符逻辑运算符 c c逻辑运算符:逻辑运算符:含义运算符优先级结合性逻辑非!2右结合逻辑与&11左结合逻辑或|12

5、左结合24 基本运算符及其表达式基本运算符及其表达式2021-11-57 program design in c languagepagea ab ba|ba|b真(1 )真(1 )真(1 )真(1 )真(1 )真(1 )真(1 )真(1 )假(0 )假(0 )真(1 )真(1 )假(0 )假(0 )真(1 )真(1 )真(1 )真(1 )假(0 )假(0 )假(0 )假(0 )假(0 )假(0 )逻辑或逻辑或 真值表真值表aba&b真(真(1)真(真(1)真(真(1)真(真(1)假(假(0)假(假(0)假(假(0)真(真(1)假(假(0)假(假(0)假(假(0)假(假(0)逻辑与逻辑

6、与& 真值表真值表24 基本运算符及其表达式基本运算符及其表达式2021-11-58 program design in c languagepage2.2.逻辑表达式逻辑表达式logical expression 用逻辑运算符将表达式连接起来的式子。用逻辑运算符将表达式连接起来的式子。如:如: 1) 0 x10 x=0&x5或或x5x15 3)a、b不能同时为零不能同时为零 a=0&b!=0|a!=0&b=0一般形式为:一般形式为:表达式表达式1逻辑运算符表达式逻辑运算符表达式224 基本运算符及其表达式基本运算符及其表达式2021-11-59 program

7、 design in c languagepage 逻辑表达式是构成选择结构条件的基本式子。逻辑表达式是构成选择结构条件的基本式子。与关系运算相同,逻辑表达式结果的类型为整型。逻辑运算与关系运算相同,逻辑表达式结果的类型为整型。逻辑运算的结果以整数的结果以整数1 1表示真,以整数表示真,以整数0 0表示假。表示假。 注意注意 在计算逻辑表达式时,并非所有的逻辑运算符都参与运算。在计算逻辑表达式时,并非所有的逻辑运算符都参与运算。如:如:x=y=-1; +x&+y; /* x=? y=? */0-124 基本运算符及其表达式基本运算符及其表达式“短路能力短路能力”算术运算算术运算关系运算

8、关系运算逻辑与、逻辑与、或或逻辑非逻辑非运算符运算优先级小结:运算符运算优先级小结:2021-11-510 program design in c languagepage 例:例:1)7 3 & 8 ( age = 10 ),由于),由于 7 3为零为零 ,则,则 8 4 |( mum = 0 )由于)由于 5 4 故短故短路路 ,则,则 mum = 0 不执行不执行 .24 基本运算符及其表达式基本运算符及其表达式2021-11-511 program design in c languagepage#include void main( ) int a=-1, b=-1, d=-

9、1; d=(a=1)|(b=1); printf(1) %d, %d, %dn, a, b, d); d=(a=0)|(b=0); printf(2) %d, %d, %dn, a, b, d); d=(a=1)&(b=1); printf(3) %d, %d, %dn, a, b, d); d=(a=0)&(b=0); printf(4) %d, %d, %dn, a, b, d); 例例程序运行结果程序运行结果: :(1) 1, -1, 1(2) 0, 0, 0(3) 1, 1, 1(4) 0, 1, 02021-11-512 program design in c lan

10、guagepage#include void main( ) /*注意短路注意短路*/ int a , b , c , d ; a = b = c = 1 ;d = + a | + b & + c ;printf( “ ( 1 ) %d%d%d%d n “, a , b , c , d ) ;a = b = c = 1 ; d = + a & + b | + c ;printf( “( 2 ) %d%d%d%d n “, a , b , c , d ) ;a = b = c = 1 ; d = + a & + b & + c ;printf( “( 3 ) %d

11、 , %d , %d n “, a , b , c ) ; run例例程序运行结果程序运行结果: :(1) 2111(2) 2211(3) 2,2,22021-11-513 program design in c languagepage24 基本运算符及其表达式基本运算符及其表达式2.4.4 条件运算符与条件表达式条件运算符与条件表达式条件运算符:条件运算符: ? :? : 三目运算符三目运算符 右结合右结合例:例:ab?max=a:max=b例:例:(grade=60)?printf(“passed”):printf(“failed”);一般形式:一般形式:?:2021-11-514 pr

12、ogram design in c languagepage2.4.5 赋值运算符与赋值表达式赋值运算符与赋值表达式简单赋值运算符为简单赋值运算符为“=”;由;由“=”连接的式子称为(简单)赋值表达式连接的式子称为(简单)赋值表达式(assignment statement) 。一般形式:一般形式: =1 1简单赋值运算符和简单赋值表达式简单赋值运算符和简单赋值表达式d=25c=a+bz=sqrt(x)+sqrt(y)k=i+-jx=(a=5)+(b=8)例:例:24 基本运算符及其表达式基本运算符及其表达式2021-11-515 program design in c languagepag

13、e赋值运算符优先级为赋值运算符优先级为14,仅高于逗号运算符,而低于其他所有运算符。,仅高于逗号运算符,而低于其他所有运算符。2.4.5 赋值运算符与赋值表达式赋值运算符与赋值表达式1 1简单赋值运算符和简单赋值表达式简单赋值运算符和简单赋值表达式赋值运算符为右结合性赋值运算符为右结合性 a=b=c=d=10 a=(b=(c=(d=10)24 基本运算符及其表达式基本运算符及其表达式2021-11-516 program design in c languagepage赋值运算的类型转换,规则为:赋值运算的类型转换,规则为: 整型数据赋给字符型时,只把低整型数据赋给字符型时,只把低8 8位赋给

14、字符变量。位赋给字符变量。字符型数据赋给整型变量时,整型变量的高八位补字符型数据赋给整型变量时,整型变量的高八位补0 0,低八位取,低八位取字符的字符的asciiascii码值。码值。 整型数据赋给实型变量时,以浮点形式取值。整型数据赋给实型变量时,以浮点形式取值。 实型数据赋给整型变量时,只取整数部分。实型数据赋给整型变量时,只取整数部分。如如: k=8.88 (k值为值为8)如如: : f=15 (f值为值为15.000000)如如: : k=a (k值为值为65)如如: : c=578 (c值为字母值为字母b)24 基本运算符及其表达式基本运算符及其表达式2021-11-517 prog

15、ram design in c languagepage2 2复合赋值运算符和复合赋值表达式复合赋值运算符和复合赋值表达式复合赋值运算符是在简单赋值运算符前加双目运算符构成。复合赋值运算符是在简单赋值运算符前加双目运算符构成。共以下共以下1010种:种: +=,-=,*=,/=,%=,=,&=,=,|=24 基本运算符及其表达式基本运算符及其表达式例:例:a+=5x*=y+7x+=x-=x*=xa=a+5x=x*(y+7)x=x+(x=x-(x=x*x)复合复合赋值运算符赋值运算符优先级优先级1414,右结合性。右结合性。2021-11-518 program design in c

16、languagepage2.4.6 逗号运算符和逗号表达式逗号运算符和逗号表达式逗号运算符逗号运算符“ , ”用逗号运算符将各表达式连接起来的式子称为用逗号运算符将各表达式连接起来的式子称为逗号表达式逗号表达式。 逗号运算符逗号运算符优先级优先级1515,是所有,是所有运算符中运算符中最低最低的。的。24 基本运算符及其表达式基本运算符及其表达式一般形式:一般形式:, #includevoid main()int a=2,b=4,c,y; y=(c=a*b),(b+c); printf(y=%dn,y);例:例:y=12 程序中程序中并非所有出现逗号的地并非所有出现逗号的地方都组成逗号表达式。

17、方都组成逗号表达式。如:如:int a=2,b=4,c=6,x,y;printf(y=%d, x=%d, y, x); /* 分隔符分隔符 */2021-11-519 program design in c languagepage31 c语言程序的基本语句语言程序的基本语句3.1 c语言程序的基本语句语言程序的基本语句 c语言语句分为五类:表达式语句、函数调用语句、控制语言语句分为五类:表达式语句、函数调用语句、控制语句、复合语句、空语句。语句、复合语句、空语句。1表达式语句表达式语句由一个表达式组成一个语句。由一个表达式组成一个语句。 如:如: +p; /*自增运算表达式加分号构成语句自增

18、运算表达式加分号构成语句*/ n+=10; /*复合赋值表达式加分号构成语句复合赋值表达式加分号构成语句*/ a+b; /* a+b表达式加分号构成语句表达式加分号构成语句*/2函数调用语句函数调用语句由一次函数调用加上分号由一次函数调用加上分号“;”组成组成 。形式:形式:函数名函数名( (实参列表实参列表) ) ;如:如: printf(“very good!n”); /*输出输出very good!*/ max(x,y,z); /*调用自定义函数调用自定义函数max,求,求x,y,z中的最大数中的最大数*/2021-11-520 program design in c languagep

19、age4.复合语句复合语句: 用用 括起来组成的一个语句括起来组成的一个语句 如如:if (ab) x=0;b=b+1;x=a;5.空语句:仅由一个分号构成的语句空语句:仅由一个分号构成的语句3.控制语句:控制程序的流程控制语句:控制程序的流程 如如:ifelse语句,while语句,return语句等。 如:如:while (getchar( ) != n ) ; /*空语句空语句*/3.1 c3.1 c语言程序的基本语句语言程序的基本语句 2021-11-521 program design in c languagepage3.3 数据输入输出数据输入输出输入和输出功能是一个完整的程序必

20、不可少的。输入和输出功能是一个完整的程序必不可少的。c语言本身没有提供输入输出语句,而是通过调用语言本身没有提供输入输出语句,而是通过调用c系系统的标准函数来实现输入输出功能的。其中最基本的统的标准函数来实现输入输出功能的。其中最基本的输入输出函数有输入输出函数有printf()(格式输出格式输出),scanf()(格式输格式输入入),putchar()(字符输出字符输出),getchar()(字符输入字符输入)等等。c语言对数据的输入、数据的输出是通过函数实现。语言对数据的输入、数据的输出是通过函数实现。each source file that refers to an input/out

21、put library function must contain the line #include 2021-11-522 program design in c languagepage功能:功能:按格式控制字符串规定的格式,向指定的按格式控制字符串规定的格式,向指定的输出设备输出在输出表列中列出的各输出项。输出设备输出在输出表列中列出的各输出项。(it converts,formats,and prints its arguments on the standard output under control of the format. )输出形式由输出形式由“格式控制格式控制”字符串

22、规定。字符串规定。3.3.1 formatted output :printf( )函数和函数和scanf( )函函数数一般形式:一般形式: printf(“(“格式控制字符串格式控制字符串”,输出表列,输出表列) );3.3 3.3 数据输入输出数据输入输出1. printf( )函数函数2021-11-523 program design in c languagepage格式控制格式控制format control :由由双引号双引号(double quote)括起来的字符串,用于指定要输出的数据括起来的字符串,用于指定要输出的数据的格式。的格式。它包括:它包括: 1)普通字符)普通字符

23、ordinary characters作用:作用:which are copied to the output stream3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数一般起提示作用。如一般起提示作用。如 printf(“a+b=%d”,c);其中其中“a+b=”是普通字符。普通字符可以根据需要是普通字符。普通字符可以根据需要来使用,不是必须项。来使用,不是必须项。2021-11-524 program design in c languagepage2)格式说明)格式说明 (conversion spec

24、ifications):用来指定需输出数据的输出格式的,其形式用来指定需输出数据的输出格式的,其形式为:为: % 格式字符格式字符 格式字符用以说明输出数据的类型,形式,格式字符用以说明输出数据的类型,形式,长度,小数位数等。长度,小数位数等。输出表列输出表列:需要输出的数据列表,彼此间用需要输出的数据列表,彼此间用逗逗号号分隔。它可是任意合法的表达式。分隔。它可是任意合法的表达式。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-11-525 program design in c languagep

25、age用于输出的格式字符用于输出的格式字符格式符功 能形 式d输出十进制整数%d 、%md 、%ld 、%mldo以八进制形式输出整数%o 、%mo 、%lox x以十六进制形式输出整数%x 、%mx 、%lxu以十进制形式输出一个无符号的数%uc输出一个字符% cs输出一个字符串%s 、 %ms 、 % m.nsf以小数的形式输出实数%f、%m.nf、%lfe e以标准指数的形式输出实数%e 、 %m.neg g根据实数的大小自动按f或e的形式选择输出格式% g3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数

26、 % 输出一个百分号输出一个百分号2021-11-526 program design in c languagepage修饰符功 能l用于长整型、双精度型数据可加在格式符d 、o 、x 、u、f 前m数据的最小宽度n对实数,表示输出 n 位小数对字符串,表示从左端截取的n 个字符输出的数字或字符左对齐,右边填补空格用于输出的修饰符用于输出的修饰符3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-11-527 program design in c languagepage3.3.1 3.3.1 格式输

27、出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数修饰符修饰符意义意义-结果左对齐,右边填空格。结果左对齐,右边填空格。+输出符号(正号或负号)。输出符号(正号或负号)。空格空格若输出值为正时就输入空格,为负时输出负号。若输出值为正时就输入空格,为负时输出负号。#对格式字符对格式字符c,s,d,u无影响。对无影响。对o格式字符,在输出时加前缀格式字符,在输出时加前缀0;对;对x或或x格式字符,在输出时加前缀格式字符,在输出时加前缀0 x或或0x;对;对f,e,g 格式格式字符,当结果有小数时才输出小数点。字符,当结果有小数时才输出小数点。0输

28、出时空位填输出时空位填0(如省略表示指定空位不填如省略表示指定空位不填)。h长度修饰符,表示按短整型输出。长度修饰符,表示按短整型输出。l长度修饰符,表示对整型按长度修饰符,表示对整型按long(长整型长整型)输出,对浮点型指输出,对浮点型指double型。型。m(一个整数一个整数)指域宽,数据最小宽度。指域宽,数据最小宽度。n(一个整数一个整数)表示输出精度。对实数,表示输出表示输出精度。对实数,表示输出n位小数;对字符串位小数;对字符串,表示表示截取的字符个数。截取的字符个数。2021-11-528 program design in c languagepage例:格式输出:例:格式输出

29、:printf()函数()函数 printf( a+b = %5.2 f , c );附加附加格式符格式符格式符格式符输出表列输出表列普通字符普通字符格式说明符格式说明符格式控制格式控制3.3.1 格式输出:格式输出:printf( )函数和函数和scanf( )函数函数2021-11-529 program design in c languagepage(1) d格式字符格式字符d:按整型数据的实际长度输出:按整型数据的实际长度输出md:m为指定的输出长度。如果数据位小于为指定的输出长度。如果数据位小于m,则左端补以空格则左端补以空格;大于大于m,则按实际位输出。,则按实际位输出。例:例:

30、printf(“%4d,%4d”,a,b); 若若a=12, b=12345,则输出,则输出 12,12345ld:输出长整型数据。:输出长整型数据。d d的输出范围为的输出范围为32768327673276832767,输出超过该,输出超过该范围的整型数就会出错,此时用范围的整型数就会出错,此时用%ld%ld输出。输出。其输出格式和功能与其输出格式和功能与%d%d相同,如:相同,如:8ld8ld3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-11-530 program design in c la

31、nguagepage(2) o格式字符格式字符以八进制数形式输出整数,且不带符号。以八进制数形式输出整数,且不带符号。对于长整数可用对于长整数可用“lo”输出。功能同十进制输出。输出。功能同十进制输出。(3) x格式字符格式字符以十六进制数形式输出整数,且不带符号。以十六进制数形式输出整数,且不带符号。对于长整数可用对于长整数可用“lx”输出。功能同十进制输出。输出。功能同十进制输出。(4) u格式字符格式字符用来输出用来输出unsigned型数据,即无符号数,输出十型数据,即无符号数,输出十进制数。进制数。用用o o,%x%x输出负数时会发生错误。输出负数时会发生错误。3.3.1 3.3.1

32、 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-11-531 program design in c languagepage(5) c格式字符格式字符 一个整数,如果在一个整数,如果在02550255之间,也可用字符形式输出,之间,也可用字符形式输出,系统会将该整数转换成相对应的系统会将该整数转换成相对应的asciiascii码字符;同时,一码字符;同时,一字符也可以用整数形式输出。字符也可以用整数形式输出。例:例:char c=a; printf(“%c”,c);用来输出一个字符。用来输出一个字符。int a=65;p

33、rintf (“%c”,a); int c=a;printf (“%d”,c); 输出输出a输出输出65如如: :printf(“%3c”,c),则输出则输出c格式字符也可以指定输出字数宽度格式字符也可以指定输出字数宽度 a3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-11-532 program design in c languagepage(6) s格式字符格式字符s:用来输出一个字符串:用来输出一个字符串例:例:printf(“%s”,“hello!”); 输出输出hello!,!,不包括不

34、包括“ ”ms:输出的字符串占:输出的字符串占m列。如果字符串长度小于列。如果字符串长度小于m,则左端补以空格;长度大于则左端补以空格;长度大于m,则输出整个字符串。,则输出整个字符串。-ms:如果串长小于:如果串长小于m,则字符串向左靠,右补空格,则字符串向左靠,右补空格,其余同上。其余同上。m.ns:输出的字符串占:输出的字符串占m列列,但只取字符串中左端但只取字符串中左端n个个字符,这字符,这n个字符输出在个字符输出在m列的右侧,左端补空格。列的右侧,左端补空格。-m.ns:其他意义同:其他意义同m.ns,右补空格。,右补空格。3.3.1 3.3.1 格式输出:格式输出:printf(

35、)printf( )函数和函数和scanf( )scanf( )函数函数例:例:printf(“%3s”,“hello!”); 输出输出hello! printf(“%7s”,“hello!”); 输出输出 hello!2021-11-533 program design in c languagepage(7) f格式字符格式字符f:不指定字段宽度,整数部分全部输出,小数:不指定字段宽度,整数部分全部输出,小数部分输出部分输出6位。位。m.nf:指定输出数据占:指定输出数据占m列,其中有列,其中有n位小数。位小数。若数值长度小于若数值长度小于m,则左端补以空格。,则左端补以空格。-m.nf:

36、功能同上,右端补以空格。:功能同上,右端补以空格。(8) e格式字符格式字符e:不指定字段宽度,系统自动给出:不指定字段宽度,系统自动给出6位小数,指位小数,指数部分占数部分占4位。其中位。其中“e”占占1位,指数符号占位,指数符号占1位,位,指数占指数占2位。位。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-11-534 program design in c languagepage例:例:printf(“%e”,123.456);输出:1.234560e+026 6位小数部分位小数部分4 4位

37、指数部分位指数部分(tc)(tc)为指数部分为指数部分m.ne, -m.ne, me :中:中m,-的意义和前相同,的意义和前相同,n是指数据的小数部分输出的位数。是指数据的小数部分输出的位数。(9) g格式字符格式字符 用来输出实数,根据数值大小,自动选用来输出实数,根据数值大小,自动选f或或e格式,且不输出无意义的零。格式,且不输出无意义的零。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数5 5位为指数部位为指数部分分(vc+)(vc+)e+0022021-11-535 program design in

38、 c languagepage#include void main() int a=1234; float f1=12.34567,f2=678.9; printf(1)%d,%6d,%-6d,%2d;n,a,a,a,a); printf(2)%f,%10.4f,%3.2f;n,f1,f1,f1); printf(3)%e,%e;n,f1,f2); printf(4)%8e,%14e;n,f1,f1); printf(5)%10.7e,%10.3e;n,f1,f1); 实例:实例:程序运行结果:程序运行结果:1)1234, 1234,1234 ,1234;2)12.345670, 12.345

39、7,12.35;3)1.23457e+001,6.789000e+002;4)1.23457e+001, 1.234567e+001;5)1.2345670e+001, 1.235e+001;2021-11-536 program design in c languagepage例:例:printf(“%e”,123.456);输出:1.234560e+026 6位小数部分位小数部分4 4位指数部分位指数部分(tc)(tc)为指数部分为指数部分m.ne, -m.ne, me :中:中m,-的意义和前相同,的意义和前相同,n是指数据的小数部分输出的位数。是指数据的小数部分输出的位数。(9) g格

40、式字符格式字符 用来输出实数,根据数值大小,自动选用来输出实数,根据数值大小,自动选f或或e格式,且不输出无意义的零。格式,且不输出无意义的零。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数5 5位为指数部位为指数部分分(vc+)(vc+)e+0022021-11-537 program design in c languagepage#include void main() int a=1234; float f1=12.34567,f2=678.9; printf(1)%d,%6d,%-6d,%2d;n,

41、a,a,a,a); printf(2)%f,%10.4f,%3.2f;n,f1,f1,f1); printf(3)%e,%e;n,f1,f2); printf(4)%8e,%14e;n,f1,f1); printf(5)%10.7e,%10.3e;n,f1,f1); 实例:实例:程序运行结果:程序运行结果:1)1234, 1234,1234 ,1234;2)12.345670, 12.3457,12.35;3)1.23457e+001,6.789000e+002;4)1.23457e+001, 1.234567e+001;5)1.2345670e+001, 1.235e+001;2021-11

42、-538 program design in c languagepage2、格式输入:格式输入:scanf( )函数函数功能:从终端输入任何类型的多个数据功能:从终端输入任何类型的多个数据 格式:格式:scanf( (格式控制格式控制 ,地址表列,地址表列) );格式控制格式控制:由双引号括起来的字符串,用于指定要输入由双引号括起来的字符串,用于指定要输入的数据的格式。的数据的格式。1)普通字符:按原样输入的字符;)普通字符:按原样输入的字符; 2)格式说明:用来指定需输入数据的输入格式的,)格式说明:用来指定需输入数据的输入格式的,其形式为:其形式为: % 格式字符格式字符3.3.1 3.

43、3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数地址表列地址表列:由若干个变量地址组成的表列。由若干个变量地址组成的表列。 地址是由地址是由”运算得到的。运算得到的。“”是取址运算符,单目运算符,右结合性。是取址运算符,单目运算符,右结合性。2021-11-539 program design in c languagepage例:例:&a, &chr, &i,&a, &chr, &i,分别表示变量分别表示变量a, chr, ia, chr, i的地址,该地的地址,该地址是在编译

44、连接时系统分配给变量址是在编译连接时系统分配给变量a, chr, ia, chr, i的地址。的地址。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数用于输入的修饰符修饰符功 能l用于长整型、双精度型数据可加在格式符 d、o、x、f、e 前h用于短整型数据可加在格式符 d、o、x 前m(域宽) 指定输入数据所占的宽度(列数)*表示本输入项在读入后不赋给相应的变量2021-11-540 program design in c languagepage用于输入的格式字符格式符功 能形式d输入十进制整数%d、%ld、

45、%hd% md、%mldo输入八进制整数%o、%mo、%lox输入十六进制整数%x、%mx、%lxc输入一个字符%cs输入一个字符串%s、%msf%f、%mf、%lfe%e、%me、%le以小数或指数的形式输入实数两者功能相同,可互换3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-11-541 program design in c languagepage格式输入的使用与注意:格式输入的使用与注意:输入数据时采用的分隔符应与格式控制中的分隔符一致。输入数据时采用的分隔符应与格式控制中的分隔符一致。例

46、例1: 1: scanf(%d%f%d, &a, &b, &c); 格式符中无普通字符时,可用空格、格式符中无普通字符时,可用空格、tabtab键、回车键作分隔符。键、回车键作分隔符。如:如:12 3.45 678 或或 12(tab)3.45(tab)678例例2:2: scanf(%d,%f,%d, &a, &b, &c); 必须采用格式:必须采用格式:1212,3.,3.4545,678,678例例3:3: scanf(a=%d, b=%d, &a, &b); 必须采用格式:必须采用格式: a=12a=12, , b=345

47、b=3453.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-11-542 program design in c languagepage无符号数可用无符号数可用 %d、%o、%x 格式输入。格式输入。输入格式符带有输入格式符带有 * :表示该数据不赋值。:表示该数据不赋值。 例:例:scanf(%d%*d%d, &a, &c); 键入: 12 34 567 则 a=12, c=567, 34未赋值。数据输入时不可规定精度,但可确定宽度。数据输入时不可规定精度,但可确定宽度。 例:例:s

48、canf(”%3f%3c”, &a, &b); 合法。 例:例:scanf(”%3.2f%3c”, &a, &b); 非法。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-11-543 program design in c languagepage用用c格式符输入字符时,空格、转义字符均为有效格式符输入字符时,空格、转义字符均为有效字符字符。 例例 scanf(%c%c%c, &a, &b, &c); 若键入 abc 则 a=a,b=b,c=c

49、 若键入 a b c 则 a=a,b= ,c=b 若键入 a b 则 c 未送,结果已出为: a=a,b= ,c=b3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和函数和scanf( )scanf( )函数函数2021-11-544 program design in c languagepage 在下列情况下可认为数据输入结束:在下列情况下可认为数据输入结束:遇空格、回车、跳格键(遇空格、回车、跳格键(tabtab)时;)时;遇宽度结束;遇宽度结束;非法输入。非法输入。3.3.1 3.3.1 格式输出:格式输出:printf( )printf( )函数和

50、函数和scanf( )scanf( )函数函数在格式控制字符串中可包含转义字符。在格式控制字符串中可包含转义字符。 例例: 1) printf(“1) %sn”,“ very good!”); 2) printf(“2) “%s”n”,“very good!”); 输出结果:输出结果:1)very good!2)“very good!”2021-11-545 program design in c languagepage例例:自增、自减运算符程序实例:自增、自减运算符程序实例5main ( ) int i ; i=1; printf(“1)i=%d; 2)i=%d; 3)i=%d; 4)i=

51、%d; 5)i=%d; 6)i=%d; 7)i=%d;n, i, i+, i , i-,+i, i, -i); 程序运行结果:程序运行结果:1)i=1; 2)i=0; 3)i=0; 4)i=1; 5)i=1; 6)i=0; 7)i=0;不同的编译系统对输出表列中的求值顺序不一定相同。不同的编译系统对输出表列中的求值顺序不一定相同。可以从左到右,也可从右到左。可以从左到右,也可从右到左。 tc和和bc是按从右到左进行的。是按从右到左进行的。 2021-11-546 program design in c languagepagemain( ) int a; float b ; char c ;

52、printf(按格式按格式%d%f%c送数送数:); scanf(%d%f%c, &a, &b, &c); printf(a=%d, b=%f, c=%c,n,a, b, c); printf(按格式按格式%d,%f,%c送数送数:); scanf(%d,%f,%c, &a, &b, &c); printf(a=%d, b=%f, c=%c,n,a, b, c); printf(按格式按格式%6d%6f%6c送数送数:); scanf(%6d%6f%6c, &a, &b, &c); printf(a=%d, b=%f, c

53、=%c,n,a, b, c); 程序运行结果:程序运行结果:按格式按格式%d%f%c送数送数:234.5pa=23, b=4.500000, c=p,按格式按格式%d,%f,%c送数送数:23,4.5,pa=23, b=4.500000, c=p,按格式按格式%6d%6f%6c送数送数: 234.5pa=23, b=4.500000, c=p,程序实例程序实例1 1:2021-11-547 program design in c languagepagemain( ) char a, b, c, d, e ; scanf(%c%c%c, &a, &b, &c); sca

54、nf(%3c%3c, &d, &e); printf(%c, %c, %cn, a, b, c); printf(%c, %cn, d, e); 程序实例程序实例2:程序运行结果程序运行结果:12345 1, 2, 34, 5程序运行结果程序运行结果(错误错误):123451, 2, 3 ,2021-11-548 program design in c languagepage例:执行以下程序时,若从第一列开始输入数据,例:执行以下程序时,若从第一列开始输入数据,为使变量为使变量a=3,b=7,x=8.57,y=71.82,c1=a,c2=a ,正确的数据输入格式是什么?正确的

55、数据输入格式是什么?#include void main( ) int a, b; float x,y; char c1,c2; scanf(a=%d b=%d, &a, &b); scanf(x=%f y=%f, &x, &y); scanf(c1=%c c2=%c, &c1, &c2); printf(a=%d, b=%d,x=%f,y=%f,c1=%c,c2= %cn, a, b, x,y,c1,c2); 2021-11-549 program design in c languagepage1、字符输出:字符输出:putchar( )函数

56、函数格式:格式: putchar ( );功能:向终端输出一个字符。功能:向终端输出一个字符。c为形式参数,它可以是字符型变量、整型变为形式参数,它可以是字符型变量、整型变量,字符型常量或转义字符。量,字符型常量或转义字符。3.3.23.3.2字符输入输出函数字符输入输出函数:putchar:putchar函数和函数和getchargetchar函数函数2021-11-550 program design in c languagepagevoid main( ) char a ; int b ; a=b; b = 111; putchar( a ); putchar( b ); putcha

57、r(y); putchar(n); 例:例:运用运用putchar( )函数函数程序运行结果:程序运行结果:boy“o”的的ascii码为码为1113.3.23.3.2字符输入输出函数字符输入输出函数:putchar:putchar函数和函数和getchargetchar函数函数2021-11-551 program design in c languagepage1 1、字符输入:、字符输入:getchar( )函数函数格式:格式: getchar ( );功能:从终端输入一个字符。功能:从终端输入一个字符。getchar()只能接收一个字符,该字符可赋给字只能接收一个字符,该字符可赋给字符

58、变量、整型变量或作为表达式的一部分。符变量、整型变量或作为表达式的一部分。例:例: main( ) char c ; c=gethar( ); putchar( c ); 输入一个字符,输入一个字符,再将该字符输出再将该字符输出3.3.23.3.2字符输入输出函数字符输入输出函数:putchar:putchar函数和函数和getchargetchar函数函数2021-11-552 program design in c languagepage例:例:将十进制数将十进制数 407 407 转换为八进制数。转换为八进制数。main()() int m, n1, n2, n3; m=407; n1

59、=m%8; / * n1n1为个位为个位 * / n2=m/8%8; / * n2n2为十位为十位 * / n3=m/8/8%8; / * n3n3为百位为百位 * / printf(407=0%dn,n3*100+n2*10+n1); 3.3.23.3.2字符输入输出函数字符输入输出函数:putchar:putchar函数和函数和getchargetchar函数函数2021-11-553 program design in c languagepage程序举例程序举例1 输入三角形的三边长,求输入三角形的三边长,求area分析:area=sqrt(s(s-a)(s-b)(s-c), s=(a

60、+b+c)/2(1) define variables: area,s, a,b,c(2) input data: use scanf(),a,b,c(3) algorithm:s=(a+b+c)/2 area=sqrt(s(s-a)(s-b)(s-c)(4) output data:use printf(),area declare variables area,s,a,b,cinput a,b,cs=(a+b+c)/2area=sqrt(s(s-a)(s-b)(s-c)output area2021-11-554 program design in c languagepage程序:程序:#include #include void main() float a,b,c,s,area; scanf(“”%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c); area= sqrt(s*(s-a)*(s-b)*(s-c); printf(“area=%7.2fn”,area);2021-11-555 program design in c languagepage程序举例程序举例2 鸡兔同笼

温馨提示

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

最新文档

评论

0/150

提交评论