好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第3章-顺序结构程序设计...ppt

40页
  • 卖家[上传人]:桔****
  • 文档编号:589964233
  • 上传时间:2024-09-12
  • 文档格式:PPT
  • 文档大小:1.41MB
  • / 40 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 2024/9/121回顾复习回顾复习(运算符和表达式运算符和表达式)算术运算符:算术运算符:算术运算符:算术运算符:+ + - - * / % ( ++ --) * / % ( ++ --)赋值运算符:赋值运算符:赋值运算符:赋值运算符:= += -= /== += -= /=条件运算符:条件运算符:条件运算符:条件运算符:? : ? : <表达式表达式1> ? <表达式表达式2>:<表达式表达式3>逗号运算符逗号运算符逗号运算符逗号运算符 ::::,(,(,(,(表达式表达式1 1,表达式,表达式2 2,,……,表达式,表达式n n ) 2024/9/122本次课内容本次课内容 2.4 数据数据类型型转换 第第3章章 顺序序结构程序构程序设计l3.1 C语言的基本言的基本语句句l3.2 数据数据输入与入与输出出(重点)(重点) 2024/9/123       形式有两种:形式有两种:                    sizeof (sizeof (变变量名量名)   )   返回返回变变量的字量的字节长节长度度                    sizeof (sizeof (类类型名型名)   )   返回返回类类型的字型的字节长节长度度       结结果果为为整型数。

      整型数 int a int a;; float xfloat x;; printf(printf(“%d,%d%d,%d”,sizeof(a),sizeof(x));,sizeof(a),sizeof(x)); printf( printf(“%d,%d%d,%d”,sizeof(int),sizeof(float));,sizeof(int),sizeof(float)); 以上两个以上两个printfprintf语句结果均为语句结果均为 例如例如3 3、、求求字节运算符:字节运算符: sizeof   作用:求得变量或某种数据类型所需的字节数作用:求得变量或某种数据类型所需的字节数2 2,,4 42.3 2.3 运算符与表达式运算符与表达式 2024/9/124思考思考已知:已知: float a=2.0; int b=6,c=3; 求解表达式:求解表达式: a*b/c-1.5+’a’+fabs(-5)结果果的数据的数据类型?型? 2024/9/125 ◆ ◆   C C语语言允言允许许整型、整型、实实型、字符型数据型、字符型数据进进行混合运算。

      行混合运算 ◆ ◆   有有3 3种种转换转换方式:自方式:自动转换动转换、、赋值转换赋值转换和和强强制制转换转换 一、类型自动转换一、类型自动转换 2.4 2.4 数据类型转换数据类型转换 double floatunsigned long long unsigned int int char,short特点:由数值存储位数少特点:由数值存储位数少的向多的转换;整型向实的向多的转换;整型向实型转换!型转换!操作数为相同类型的不转操作数为相同类型的不转换,仍取原类型!换,仍取原类型!2.4 2.4 数据类型转换数据类型转换 2024/9/126   int x=2;float y=1.6;char c=int x=2;float y=1.6;char c=‘ ‘A A’ ’; ; 则则:: c + 1/x * yc + 1/x * y = = = =例如例如char c=68.5;printf(“%c”,c);65(int)+ 0(int) * 1.6(float65(int)+ 0(int) * 1.6(float))65.0(double)65.0(double)二、赋值转换二、赋值转换 ◆◆在赋值时将赋值符右边值的类型转换成与其左边变量类型在赋值时将赋值符右边值的类型转换成与其左边变量类型 一致的类型。

      一致的类型 ◆◆有下列几种情况:有下列几种情况: (1) (1) 实型实型 整型(字符型):去掉小数部分;整型(字符型):去掉小数部分;2.4 2.4 数据类型转换数据类型转换 2024/9/127(2) (2) 整型(字符型)整型(字符型) 实实型:型: 补补足有效位;足有效位;float f=23; 23.00000 f ((7位)位)double f=‘A’; 65.0000000000000 f((15位)位)(3)(3)对对charchar、、intint、、shortshort、、longlong、、unsignedunsigned型数据:型数据: 赋值符右边数据(赋值符右边数据(a a位)位) 赋值符左边的变量(赋值符左边的变量(b b位)位) 若若 a=ba=b a>ba>b a

      符号扩展:符号扩展: 符号位为符号位为0 0,剩余的高位补,剩余的高位补0 0;; 符号位为符号位为1 1,剩余的高位补,剩余的高位补1 12.4 2.4 数据类型转换数据类型转换 2024/9/128数据类型转换数据类型转换赋值转换赋值转换①①整型数据赋值给单、双精度变量,数值不变,整型数据赋值给单、双精度变量,数值不变,但以浮点数形式存储但以浮点数形式存储②②实型数据赋值给整型变量,舍弃实数小数部分实型数据赋值给整型变量,舍弃实数小数部分③③字符型数据赋值给整型变量,字符数据放入到字符型数据赋值给整型变量,字符数据放入到整型变量低整型变量低8 8位中,整型变量高位中,整型变量高8 8位补位补0 0或补或补1 1④④整型数据整型数据(int)(int)赋值给赋值给long intlong int型变量,进行符号型变量,进行符号扩展,扩展,long intlong int型变量高型变量高1616位补位补0 0或补或补1 1⑤⑤无符号整型数据无符号整型数据(unsigned int)(unsigned int)赋值给赋值给long intlong int型变量,型变量,long intlong int型变量高型变量高1616位补位补0 0。

      2024/9/129数据类型转换数据类型转换三、强制类型转换:将一个表达式转换为指定类型三、强制类型转换:将一个表达式转换为指定类型( (类型名类型名) () (表达式表达式) )intint x=6,y=4; x=6,y=4;则则x/y=_____x/y=_____int x=6,y=4;int x=6,y=4;则则( (floatfloat) (x/y)=__________) (x/y)=__________int x=6,y=4;int x=6,y=4;则则( (floatfloat) x/y=__________) x/y=__________注意:注意:注意:注意:强制转换得到所需类型的中间变量,原变强制转换得到所需类型的中间变量,原变强制转换得到所需类型的中间变量,原变强制转换得到所需类型的中间变量,原变 量类型不变量类型不变量类型不变量类型不变11.0000001.500000例 main() { float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); }结果:x=3.600000,i=3较高类型向较低类型转换时可能发生精度损失问题 2024/9/12103.1 C语言的基本语句语言的基本语句3.2 数据输入与输出数据输入与输出3.3 程序举例程序举例第第3章章 顺序结构程序设计顺序结构程序设计 2024/9/1211顺序结构执行流程顺序结构执行流程l l流程图开始开始AB结束结束l lN-S图开始开始AB结束结束l l执行流程1.先执行A语句2.再执行B语句圆角矩形表示圆角矩形表示“开始开始”或或“结束结束”方角矩形表示方角矩形表示“操作语句操作语句” 2024/9/1212 程序设计语言有顺序、选择、循环三种基本的控制结构。

      程序设计语言有顺序、选择、循环三种基本的控制结构 BA图图3.1 顺序结构执行流程顺序结构执行流程 顺序结构是最基本的控制结构,其包含的语句是按照顺序结构是最基本的控制结构,其包含的语句是按照书写的顺序执行的,且每条语句都将被执行程序流程如书写的顺序执行的,且每条语句都将被执行程序流程如图图3.1 所示,语句按书写顺序执行先执行所示,语句按书写顺序执行先执行A,再执行,再执行B例:例: #include main( ) {int a=10,x=5,y=6; a+=a*=6; x=y++; y=++x ; a=x+++y; printf(“%d,%d,%d”,a,x,y); } 输出:输出:14,,8,,7 2024/9/1213基本语句基本语句简单语句简单语句表达式语句表达式语句表达式表达式; ;函数调用语句函数调用语句函数名函数名( (参数名参数名); );空语句空语句; ;数据数据复合语句复合语句{ {多条语句多条语句} }操作操作条件语句条件语句if if, ,switchswitch语句语句结构化语句结构化语句whilewhile流程流程循环语句循环语句do-whiledo-while控制控制forfor语句语句非结构化语句非结构化语句breakbreak, ,continuecontinue, ,returnreturn非限定转向语句非限定转向语句 2024/9/1214简单语句简单语句1.1.表达式表达式语语句句一般形式:一般形式:表达式表达式; ;y++;y++;x=3;x=3;2.2.函数函数调调用用语语句(句(由函数由函数调用表达式加分号构成)用表达式加分号构成)一般形式:一般形式:函数名函数名   ( (参数列表参数列表); );如:如:printf(“%d”,a); scanf(“%f”,&b);abs(x);abs(x); C C 语语言言有有丰丰富富的的标标准准函函数数库库, , 可可提提供供各各类类函函数数供供用用户户调调用用,,完完成成预预先先设设定定好好的的操操作作. .例例如如调调用用标标准准库库函函数数求求数数学学函函数数值值:: sin(x) sin(x) 、、cos(x) cos(x) 、、 exp(x) exp(x) ( (求求e ex x ) ) 、、fabs(x) fabs(x) ( (求求x x的绝对值的绝对值) )、、log(x)log(x)等。

      等3 3. . . .空语句空语句空语句空语句 一般形式:一般形式:; ;数学表达式数学表达式 y=|3sinx+4cosx|+ey=|3sinx+4cosx|+ex x , , 用用C C语言表示为:语言表示为: y=fabs(3*sin(x)+4*cos(x))+exp(x); 2024/9/1215 复合语句复合语句{ { 语句1; …… 语句n; } } 用一对花括号,把若干条语句括起来,用一对花括号,把若干条语句括起来,就形成了一条复合语句形式如下:就形成了一条复合语句形式如下: 花括号中的语句,可以是简单语句、空语句、复合花括号中的语句,可以是简单语句、空语句、复合语句、流程控制语句,所有这些语句括在一起,在语法语句、流程控制语句,所有这些语句括在一起,在语法上看成是一条语句,执行时顺序执行花括号中的每条语上看成是一条语句,执行时顺序执行花括号中的每条语句复合语句多用于流程控制语句中复合语句多用于流程控制语句中 2024/9/12163.2 3.2 数据输入与输出(重点)数据输入与输出(重点)      C语言本身不提供输入输出语句,得由标准I/O库函数提供。

      输入输出库函数很丰富,可以从键盘、显示器、磁盘文件和硬件端口进行输入或输出操作     本节主要介绍用于键盘输入和显示器输出的函数 2024/9/1217字符输出函数字符输出函数1.1.一般形式:putchar(函数参数);2.2.函数功能:向标准输出设备(显示器)输出一个字符3.3.函数的参数可以是字符常量、字符变量或者整型变量include main(){int i=97; char ch=‘a’; putchar(‘a’); putchar(i); putchar(ch);}程序输出结果是:程序输出结果是:_____aaa 2024/9/1218字符输入函数字符输入函数1.1.一般形式:一般形式:字符型字符型变变量量=getchar( );=getchar( );2.2.函数功能:从函数功能:从输输入入设备设备((键盘键盘)上)上输输入入一个一个一个一个字符3.3.字符字符输输入函数每入函数每调调用一次,就从用一次,就从标标准准输输入入设备设备上上取一个字符取一个字符4.4.函数函数值值可以可以赋给赋给一个字符一个字符变变量,也可以量,也可以赋给赋给一个一个整型整型变变量。

      量include main(){char ch; int i; ch=getchar(); i=getchar(); putchar(ch); putchar(i);}已知从键盘上分别输入已知从键盘上分别输入a和和65,,则程序输出结果:则程序输出结果:_____a6 2024/9/1219字符输入函数字符输入函数int getchar(void) 从输入设备从输入设备( (一般为键盘一般为键盘) )上输入一个字符它每被调上输入一个字符它每被调用一次,就从标准输入设备上取一个字符,返回值是该字用一次,就从标准输入设备上取一个字符,返回值是该字符的符的ASCIIASCII编码值,可以赋给字符变量或整型变量编码值,可以赋给字符变量或整型变量例:例:#include main( ) { int i, j; char c; i=getchar( ); putchar(i); j=getchar( ); putchar(j); c=getchar( ); putchar(c); }思考思考:以下三种不同的输入,以下三种不同的输入,输出情况如何?输出情况如何? 1.abcdefg 2.ab 3.a bcdefg 执行执行getchar()getchar()时输入字符以回车结束,回车后,时输入字符以回车结束,回车后,程序才会响应输入,继续执行后续语句;同时回车字程序才会响应输入,继续执行后续语句;同时回车字符也可以做为输入的字符。

      符也可以做为输入的字符 注意注意 2024/9/1220格式输出函数格式输出函数l l一般形式:一般形式:printf(printf(“ “格式控制字符串格式控制字符串” ”, ,输输出出项项列表列表); );函数功能:按规定格式向输出设备(显示器)输函数功能:按规定格式向输出设备(显示器)输出数据1.1. “ “格式控制字符串格式控制字符串” ”必须用英文的双引号括起来,必须用英文的双引号括起来,它的作用是控制输出项的格式和输出一些提示信息它的作用是控制输出项的格式和输出一些提示信息2.2.“ “输出项列表输出项列表” ”列出要输出的表达式,它可以是列出要输出的表达式,它可以是0 0个、个、1 1个或者多个,多个输出项之间用个或者多个,多个输出项之间用, ,作为分隔符作为分隔符3.3.输出的数据可以是整数、实数、字符和字符串输出的数据可以是整数、实数、字符和字符串 2024/9/1221格式输出函数的一般形式格式输出函数的一般形式printf(“格式控制字符串格式控制字符串”,输出参数表输出参数表);用双引号括起来,控制输出项的格式和输出一些提示信息 可以是一个或多个输出项. 可以是常量或变量表达式,用逗号分隔。

      类型可以是整型实型字符型和字符串.具体的讲,具体的讲,printf语句,就是把输出参数表中的表达式的值,语句,就是把输出参数表中的表达式的值,按照格式控制字符串的格式,依次在指定的位置输出,如按照格式控制字符串的格式,依次在指定的位置输出,如果输出位置不够,从左到右依次输出前几个的值果输出位置不够,从左到右依次输出前几个的值 2024/9/1222printf(“格式控制字符串格式控制字符串”,输出项列表输出项列表);l l格式控制字符串的格式控制字符串的组组成成1.1.普通字符:按原样输出,主要用于输出提示信息普通字符:按原样输出,主要用于输出提示信息include #include main()main(){int a=3;{int a=3; printf( printf(“ “%d\n%d\n” ”,a);,a); printf( printf(“ “a=%d\na=%d\n” ”,a);,a);} }2.2.转义字符:指明特定的操作转义字符:指明特定的操作, ,如如” ”\n\n” ”表示换行表示换行3.3.输出项格式说明:由输出项格式说明:由“ “%%” ”和和“ “格式字符串格式字符串” ”组成,它组成,它表示按规定的格式输出数据。

      表示按规定的格式输出数据pp格式说明形式:格式说明形式:%%[flags][width][.prec][F|N|h|l]type[flags][width][.prec][F|N|h|l]type3a=3 2024/9/1223%[flags][width][.prec][F|N|h|l]typel l[type][type]:为可选的格式字符,用来进行格式转换为可选的格式字符,用来进行格式转换字符字符说明说明d d(或(或i i))以带符号的十进制数形式输出整数,正数不输出正号(以带符号的十进制数形式输出整数,正数不输出正号(+ +))o o以八进制无符号形式输出整数,不输出前导符数字以八进制无符号形式输出整数,不输出前导符数字0 0x x(或(或X X))以十六进制无符号形式输出整数,不输出前导符数字以十六进制无符号形式输出整数,不输出前导符数字0x0xu u以无符号十进制形式输出整数以无符号十进制形式输出整数c c输出一个字符输出一个字符s s输出一个字符串输出一个字符串f f以小数形式输出实数,默认输出以小数形式输出实数,默认输出6 6位小数位小数e e(或(或E E))以指数形式输出实数,尾数部分小数数位为以指数形式输出实数,尾数部分小数数位为6 6位位g g(或(或GG))由给定的值和精度自动选用由给定的值和精度自动选用%f%f或或%e%e或%或%E E格式格式%%输出百分号输出百分号l标准输出宽度共占标准输出宽度共占13位位1.尾数尾数①①整数部分为非零数字占整数部分为非零数字占1位位②②小数点小数点1位,小数占位,小数占6位位2.指数指数①①正(负)号占正(负)号占1位位②②指数占指数占3位位 2024/9/1224%[flags][width][.prec][F|N|h|l]type1.1.[ ][ ]:表示:表示该项为该项为可可选项选项。

      2.2.[widths][widths]:可:可选择选择的的宽宽度指示符,用十度指示符,用十进进制正整数制正整数指定数据指定数据输输出出时时的位数①①指定位数指定位数> >实际位数,补空格实际位数,补空格②②指定位数指定位数< <实际位数,按照实际个数原样输出实际位数,按照实际个数原样输出int a=3456;int a=3456;printf(printf(“ “%%d d\n\n” ”,a);,a);printf(printf(“ “%%8d8d\n\n” ”,a);,a);printf(printf(“ “%%3d3d\n\n” ”,a);,a);345634563456 2024/9/1225%[flags][width][.prec][F|N|h|l]type3.3.[flags][flags]:可:可选选的的标标志字符,常用志字符,常用标标志字符如下志字符如下①①- -:左对齐输出,默认为右对齐输出左对齐输出,默认为右对齐输出int a=3456;int a=3456;printf(printf(“ “%%8d8d” ”,a);,a);printf(printf(“ “end\nend\n” ”); );printf(printf(“ “%%-8d-8d” ”,a);,a);printf(printf(“ “end\nend\n” ”); );②②+ +:正数输出加号(:正数输出加号(+ +),负数输出减号(),负数输出减号(- -)。

      int a=12, b=-15;int a=12, b=-15;printf(printf(“ “%%d d,%,%+d+d\n\n” ”,a,a);,a,a);printf(printf(“ “%%d d,%,%+d+d\n\n” ”,b,b);,b,b);345612,+12-15,-153456endend 2024/9/1226%[flags][width][.prec][F|N|h|l]type3.3.[flags][flags]:可:可选选的的标标志字符,常用志字符,常用标标志字符如下志字符如下③③空格:正数输出空格代替加号(空格:正数输出空格代替加号(+ +),负数),负数输出减号(输出减号(- -)int a=12, b=-15;int a=12, b=-15;printf(printf(“ “%%d d,% ,% d d\n\n” ”,a,a);,a,a);printf(printf(“ “%%d d,%,% d d\n\n” ”,b,b);,b,b);12,-15,-15121 1 1 1 1 1 1 1 1 1 1 1 1 1 1 17777ffff7main( ){ int a= -1; printf(“a=%d,%o,%x,%u\n”,a,a,a,a); }%o%o按整型数据的实际长度,以八进制按整型数据的实际长度,以八进制形式输出整数。

      即将内存单元中的各形式输出整数即将内存单元中的各二进制的值按八进制形式输出二进制的值按八进制形式输出 2024/9/1227%[flags][width][.prec][F|N|h|l]type4.4.[.prec][.prec]::为为可可选选的精度指示符,用的精度指示符,用“ “小数点小数点” ”加加“ “十十进进制正整数制正整数” ”表示①①对于对于“ “整数整数” ”,表示至少要输出的数字个数,,表示至少要输出的数字个数,不足补不足补0 0;超过则原样输出;;超过则原样输出;②②对于对于“ “实数实数” ”,表示小数点后至多输出的数字,表示小数点后至多输出的数字个数,不足补个数,不足补0 0,超过则舍入处理超过则舍入处理③③对于对于“ “字符串字符串” ”,表示最多输出的字符个数,,表示最多输出的字符个数,不足补空格,多则丢弃不足补空格,多则丢弃float b=3.1415926;float b=3.1415926;printf(printf(“ “%%f f\n\n” ”,b);,b);printf(printf(“ “%%.2f.2f\n\n” ”,b);,b);printf(printf(“ “%%.11f.11f\n\n” ”,b); ,b); printf(printf(“ “%%8.2f8.2f\n\n” ”,b);,b);3.1415933.143.14 3.14159260000 2024/9/1228%[flags][width][.prec][F|N|h|l]type5.5.[F|N|h|l]:为可选的输出长度修饰符。

      ①①F:输出远指针存放的地址;②②N:输出近指针存放的地址;③③h:输出短整型数据的值;④④l:输出长整型或双精度型数据的值int a=5;    short b=7;    long c=40000;int a=5;    short b=7;    long c=40000;printf(printf(“ “%d\n%d\n” ”,a);,a);printf(printf(“ “%_____\n%_____\n” ”,b);,b);printf(printf(“ “%_____\n%_____\n” ”,c);,c);hdld 2024/9/1229综合综合#include #include main(  )main(  ){int n=-1;{int n=-1; char ch='a'; char ch='a'; float f=-123.456; float f=-123.456; clrscr( ); clrscr( ); printf("% printf("%d d,%,%u u\n",n,n);\n",n,n); printf("% printf("%-5d-5d,%,%5d5d\n",n,n);\n",n,n); printf("% printf("%o o,%,%x x\n",n,n,n,n);\n",n,n,n,n); printf("% printf("%5c5c,%,%c c,%,%d d\n",ch,ch,ch);\n",ch,ch,ch); printf("% printf("%s s,%,%5s5s,%,%10s10s\n",\n","program","program","program""program","program","program"); ); printf("% printf("%f f,%,%.2f.2f,%,%8.2f8.2f\n",f,f,f);\n",f,f,f); printf("% printf("%f f,%,%e e,%,%g g\n",f,f,f);\n",f,f,f);} }-1,65535-1 , -1 17777,ffff a,a,97program, program, programprogram, program, program-123.456001,-123.46, -123.46-123.456001,-123.46, -123.46123.456001,-1.23456e+02,-123.456123.456001,-1.23456e+02,-123.456 2024/9/1230输输 出出 表表 列列main( ){ int i = 8 , j = 10 , m , n ;m = + + i ; n = j + + ;printf( “ \n %d,%d,%d,%d ” , i , j , m , n ) ;}9 , 11 , 9 , 10main( ){ int i = 8 , j = 10 ;printf( “ \n %d,%d,%d,%d ” , i , j , ++ i , j ++) ;}9 , 11 , 9 , 10printf( )printf( )printf( )printf( )在处理输出列表时,是在处理输出列表时,是在处理输出列表时,是在处理输出列表时,是从右到左进行运算从右到左进行运算从右到左进行运算从右到左进行运算的,的,的,的,但但但但输出时输出时输出时输出时,是按,是按,是按,是按从左到右从左到右从左到右从左到右的顺序排列的。

      的顺序排列的的顺序排列的的顺序排列的 2024/9/1231格式输入函数格式输入函数l l一般形式:一般形式:scanf(scanf(“ “格式控制字符串格式控制字符串” ”, ,地址列表地址列表); );pp函数功能:按规定格式从键盘输入若干任何类型的数据函数功能:按规定格式从键盘输入若干任何类型的数据给指定的变量给指定的变量1.1.格式控制字符串的组成:实现格式控制格式控制字符串的组成:实现格式控制①①格式字符格式字符②②普通字符普通字符③③形式:形式:%%[ * ][width][F|N][h|l]type[ * ][width][F|N][h|l]type2.2.地址列表地址列表①①由若干个地址组成的列表,各地址之间以逗号由若干个地址组成的列表,各地址之间以逗号, ,间隔②②形式:形式:& &变量名变量名scanf(scanf(“ “%d,%f%d,%f” ”,&a,&b);,&a,&b); scanfscanf语句在运行时,会停下来,等待从键盘输入值依次语句在运行时,会停下来,等待从键盘输入值依次存入地址列表中的地址空间,即相当于从键盘给变量赋值存入地址列表中的地址空间,即相当于从键盘给变量赋值。

      2024/9/1232格式字符串:格式字符串:格式字符串:格式字符串:%%[ * ][ * ][width][width][F|N][h|l]type[F|N][h|l]type    [width]    [width]::宽宽度指示符,表示度指示符,表示该输该输入入项项最多可最多可输输入的入的                                  字符个数字符个数scanf(scanf(“ “%3d%5d%3d%5d” ”,&a,&b);,&a,&b);printf(printf(“ “a=%d\nb=%d\na=%d\nb=%d\n” ”,a,b);,a,b);1.1.如果执行时从键盘输入:如果执行时从键盘输入:20012000002001200000,则输出结果,则输出结果a=a=b=b=2.2.如果执行时从键盘输入:如果执行时从键盘输入:2001200 =0002001200 =000,则输出结果,则输出结果a=a=b=b={{输入过程中遇到空格或不可转换字符,读入将减少输入过程中遇到空格或不可转换字符,读入将减少200120002001200 2024/9/1233格式字符串:格式字符串:格式字符串:格式字符串:%%[ * ][ * ][width][F|N][h|l]type[width][F|N][h|l]typel l[ * ]:输入赋值抑制字符,表示该格式说明要求输入数据,但不赋值,也即在地址列表中没有对应的地址项。

      scanf(“%3d%*5d%f”,&a,&b);如果执行时从键盘输入:200120004.1则a赋值为_____,b赋值为_____2004.1 2024/9/1234scanf函数注意事项函数注意事项1.1.输入数据分隔处理   ①当需要输入多个数据时,分隔符必须和格式字符串中的分隔符一致scanf(scanf(“ “%d%d, ,%d%d, ,%d%d” ”,&a,&b,&c);,&a,&b,&c);èè正确输入格式:正确输入格式:3 3, ,5 5, ,8 8   ②如果格式字符串中没有指明分隔符,输入时使用默认的分隔符——空格或者回车或者tab键scanf(scanf(“ “%d%d%d%d%d%d” ”,&a,&b,&c);,&a,&b,&c);èè正确输入格式:正确输入格式:3 3 = = 5 5 = = 8       8       或或③③358scanf(“a=%d,b=%d”,&a,&b); 输入:输入:a=1,b=2回车回车 2024/9/1235scanf运行时注意事项运行时注意事项2.2.用用scanfscanf函数函数输输入入实实数,格式数,格式说说明符明符为为%f%f,但不,但不允允许规许规定精度。

      定精度float m;float m;scanf(scanf(“ “%%f f” ”,&m);,&m);scanf(scanf(“ “%%10f10f” ”,&m);,&m);scanf(scanf(“ “%%10.2f10.2f” ”,&m);,&m);3.3.如果如果输输入入时类时类型不匹配,型不匹配,scanfscanf函数将停止函数将停止处处理,理,其返回其返回值为值为零int a;  float m;  char ch;int a;  float m;  char ch;scanf(scanf(“ “%d:%c:%f%d:%c:%f” ”,&a,&ch,&m);,&a,&ch,&m);从键盘输入以下数据:从键盘输入以下数据:5:a:b5:a:b,则,则程序终止程序终止×√√ 2024/9/1236scanf运行时注意事项运行时注意事项4.4.如果连续输入多个字符型数据,空格也将作为字符接收char m,n,t;scanf(“%c%c%c”,&m,&n,&t);printf(“m=%c\nn=%c\nt=%c\n”,m,n,t);scanf运行时从键盘输入a = b = c,则输出结果m=n=t=ab 2024/9/12373.3 3.3 程序举例程序举例 例例3.1 3.1 输输入入圆圆的半径,的半径,输输出出圆圆的周的周长长和面和面积积。

      分析:分析: 1.定义实型变量r、l、s用于存放半径、周长、面积;2.调用输入函数,输入r:3.分别利用周长公式和面积公式求出l、s;4.调用输出函数输出l、sinclude #include  main() main(){ float r{ float r,,l l,,s s;;     scanf(scanf(“ “ %f  %f ” ”,,&r)&r);;        l = 2 * 3.14159 * rl = 2 * 3.14159 * r;;     s = 3.14159 *r * rs = 3.14159 *r * r;;     printf(printf(“ “\n l=%.4f\n l=%.4f” ”,,l) l);;     printf(printf(“ “\n s=%.4f\n s=%.4f” ”,,s)s);;} } 2024/9/1238总结:总结:1 1、数据、数据、数据、数据类类型型型型转换转换(自(自(自(自动转换动转换、、、、赋值转换赋值转换和和和和强强制制制制转换转换)2 2、顺序结构程序设计、顺序结构程序设计、顺序结构程序设计、顺序结构程序设计((((1 1))))C C语言的基本语句:简单语句,复合语句语言的基本语句:简单语句,复合语句语言的基本语句:简单语句,复合语句语言的基本语句:简单语句,复合语句((((2 2))))C C语言的输入输出函数:语言的输入输出函数:语言的输入输出函数:语言的输入输出函数: 字符输入函数:字符输入函数:字符输入函数:字符输入函数:getchar( )getchar( );;;; 字符输入函数:字符输入函数:字符输入函数:字符输入函数: putchar(putchar(函数参数函数参数函数参数函数参数) );;;; 格式输出函数:格式输出函数:格式输出函数:格式输出函数:printf(printf(“ “格式控制符格式控制符格式控制符格式控制符” ”,输出项列表,输出项列表,输出项列表,输出项列表) ) 格式输入函数:格式输入函数:格式输入函数:格式输入函数:scanf(“scanf(“格式控制符格式控制符格式控制符格式控制符” ”,地址列表,地址列表,地址列表,地址列表) ) 2024/9/1239课后练习:课后练习:1、、习题3第第1、、2题((p42)).2、、输入任意一个入任意一个3位数,将其各位数字反序位数,将其各位数字反序输出(例如出(例如输入入123,,输出出321)). 2024/9/12401 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1-1的原码:-1的反码:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0-1的补码:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.