版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语句语句:以以“;”作分隔符作分隔符,编译后产生机器指令编译后产生机器指令.C语句分类语句分类v说明语句说明语句v简单语句简单语句表达式语句:表达式加分号构成表达式语句:表达式加分号构成。空语句:空语句: ;函数调用语句函数调用语句v复合语句复合语句v程序控制语句程序控制语句(9种种):if( )else switchfor( )while( )dowhile( )continuebreakgotoreturn分支循环辅助控制如 total=total+limit; a=3; func( ); printf(“Hello,world!n”);3.1 C3.1 C语句概述语句概述3.2 3.2
2、 数据输入数据输入/ /输出的概念在输出的概念在C C语言中的实现语言中的实现3.3 3.3 字符数据的输入和输出字符数据的输入和输出3.4 3.4 格式化输入与输出格式化输入与输出第第3章章 顺序结构的程序设计顺序结构的程序设计3.1 C语句概述语句概述顺序结构程序顺序结构程序就是按书写顺序执行的语句构成的程序段。语句语句1语句语句21.1.表达式语句表达式语句 C C 语言中的表达式语句是由一个表达式加上一个分号语言中的表达式语句是由一个表达式加上一个分号组成。其格式为组成。其格式为: : 表达式表达式; ;例如:例如: x=5 x=5 是一个赋值表达式是一个赋值表达式, ,而其后加一个分
3、号而其后加一个分号, ,它就是赋值语句了它就是赋值语句了: : x=5; x=5; 任何表达式加上分号都是一个语句任何表达式加上分号都是一个语句, , 例如例如: : printf(“ABCD”); /printf(“ABCD”); /* *函数调用语句函数调用语句, ,输出字串输出字串ABCDABCD* */ /i+; /i+; /* *语句使变量语句使变量i i增加增加1 1* */ / x+y; /x+y; /* *语句的操作无实际意义语句的操作无实际意义* */ / 以上都是合法的语句。但是以上都是合法的语句。但是x+yx+y操作的和并没有保存起操作的和并没有保存起来来, ,所以这个语
4、句无实际意义。所以这个语句无实际意义。 2.2.空语句空语句在在C C语言中语言中, ,只有一个分号就构成一个语句,称为空语句只有一个分号就构成一个语句,称为空语句: : ; 空语句在语法上占据一个语句的位置空语句在语法上占据一个语句的位置, ,但是它不执行任但是它不执行任何功能。何功能。3.3.赋值语句赋值语句 C C 语言中的赋值语句是由赋值表达式加上一个分号构语言中的赋值语句是由赋值表达式加上一个分号构成,其格式为成,其格式为: : 变量变量= =表达式表达式; ; 赋值语句的功能是先求赋值运算符右部表达式的值赋值语句的功能是先求赋值运算符右部表达式的值, ,然后把这个值赋给左部的变量。
5、然后把这个值赋给左部的变量。 (1)(1)赋值语句中的赋值语句中的“=”=”叫做赋值号叫做赋值号, ,是一种带有方向性的是一种带有方向性的操作命令操作命令, ,与数学中的等号与数学中的等号“=”=”具有不同的意义。具有不同的意义。如等式如等式X=X+1X=X+1在数学中是不成立的在数学中是不成立的, ,但在赋值语句中但在赋值语句中X=X+1X=X+1是有意义是有意义的的, ,它表示把变量它表示把变量X X中原来的值与中原来的值与1 1相加后相加后( (新值新值) )送到变量送到变量X X中去中去, ,同时同时X X中原有的值就被新值替换了中原有的值就被新值替换了 。 (2)(2)赋值号左端必须
6、是一个变量赋值号左端必须是一个变量, ,不能是常量或表达式。不能是常量或表达式。一行内可写多个赋值语句一行内可写多个赋值语句, ,各语句末尾必须用分号结束。各语句末尾必须用分号结束。 如如: : a=20a=20; b=30b=30; c=40c=40; (3)(3)赋值语句可以改变变量的值。赋值语句可以改变变量的值。在在一个程序中一个程序中, ,如果多如果多次给一个变量赋值次给一个变量赋值, ,变量的值取的是最后一次赋的值。变量的值取的是最后一次赋的值。 例如例如: : x=2x=2; x=4x=4; 执行第一语句后执行第一语句后,x,x值为值为2,2,执行第二语句后执行第二语句后x x为为
7、4,4,因此因此, ,最最后后x x的值为的值为4 4。赋值语句说明:赋值语句说明: 【 例例3.1 3.1 】 设设a a单元的值为单元的值为5,b5,b单元的值为单元的值为10,10,试编写一个程试编写一个程序序, ,把两单元的内容互换。程序如下把两单元的内容互换。程序如下: :main() int a=5,b=10,s; s=a; /* 变量变量a的值送给变量的值送给变量s,暂时存储暂时存储 */ a=b; /* 变量变量b的值送给变量的值送给变量a, 此时此时a与与b的值相同的值相同 */ b=s; /* 变量变量s的值送给变量的值送给变量b,a与与b的值交换的值交换 */ print
8、f(a=%d,b=%dn,a,b); 运行结果运行结果: : a=10 b=5 a=10 b=5 3.1.2 复合语句复合语句v复合语句:用复合语句:用 括起来的一组语句括起来的一组语句一般形式:一般形式: 数据说明部分;数据说明部分; 执行语句部分;执行语句部分; 说明:说明:v“”后不加分号后不加分号v语法上和单一语句相同语法上和单一语句相同v复合语句可嵌套复合语句可嵌套例例:z=x+y;t=z/100;pritnf(“%f”,t);例例3.2 复合语句举例复合语句举例。main() int a=10; printf(a=%dn,a); int a=20; printf(a=%dn,a);
9、 printf(a=%dn,a);a=10a=20a=103.2数据输入数据输入/输出的概念输出的概念在在C语言中的实现语言中的实现v C 语言本身并不提供输入输出操作的语句,语言本身并不提供输入输出操作的语句,C程序中的输入和输出是用一组程序中的输入和输出是用一组库函数库函数来完成的。来完成的。v系统提供的若干函数存储在一个系统提供的若干函数存储在一个头文件头文件中,需中,需要使用预编译命令要使用预编译命令“#include”将有关头文件包将有关头文件包含到源文件中。含到源文件中。3.3 字符数据的输入和输出 本节介绍最常用的本节介绍最常用的2 2个标准输入输出函数个标准输入输出函数putc
10、harputchar函数和函数和getchargetchar函数。函数。3.3.1 3.3.1 字符输出函数字符输出函数putchar()putchar() putchar()putchar()函数的作用是把一个字符输出到标准输出设函数的作用是把一个字符输出到标准输出设备备( (通常指显示器或打印机通常指显示器或打印机) )上,上,putcharputchar函数的一般调函数的一般调用形式为用形式为: : putchar(ch);putchar(ch); 功能功能: : 向显示器或打印机输出一个字符。向显示器或打印机输出一个字符。 说明说明: putchar: putchar是函数名,是函数名
11、,chch是函数的参数,该参数可是函数的参数,该参数可以是一个整型变量或一个字符型变量。以是一个整型变量或一个字符型变量。chch也可以是整型也可以是整型常量或字符常量。常量或字符常量。注意,注意,chch也可以是转义字符常量,并且经常用也可以是转义字符常量,并且经常用putcharputchar函数来输出一些特殊的控制符,例如,用函数来输出一些特殊的控制符,例如,用putchar(putchar(nn) ) 输出换行,用输出换行,用putchar(putchar(rr) )输出回车、跳格输出用输出回车、跳格输出用putchar(putchar(tt) )、退格输出用、退格输出用putchar
12、(putchar(bb) )等等。等等。 【 例例3.3 】 输出字符输出字符B(变量为字符型变量为字符型),用转义字符输出换行。,用转义字符输出换行。 #include stdio.h main() char c; c=B; putchar(c); /* 输出字符型变量输出字符型变量c的值的值 */ putchar(n); /* 转义字符常量转义字符常量n输出一个换行输出一个换行 */ putchar(B); /* 输出字符型常量输出字符型常量B的值的值 */ 运行结果运行结果: B B 【 例例3.4 3.4 】 输出字符输出字符B(B(变量为整型变量为整型) ) 。#include st
13、dio.h#include stdio.hmain() main() int c; int c; c=66; c=66; putchar(c); /putchar(c); /* *输出字符型变量输出字符型变量c c的值的值* */ / putchar( putchar(tt); /); /* *转义字符常量转义字符常量tt* */ / putchar(66); / putchar(66); /* * 输出输出66 ASCII66 ASCII字符字符 B B * */ / 运行结果运行结果: : B B B B 3.3.2 3.3.2 字符输入函数字符输入函数getchar() getchar(
14、) getchar() getchar() 函数的作用是从键盘上读入一个字符,函数的作用是从键盘上读入一个字符,getchar()getchar()函数的一般调用形式函数的一般调用形式: : getchar(); getchar(); 功能功能: :从键盘接收一个字符。从键盘接收一个字符。 说明说明: : (1)getchar(1)getchar是函数名,函数本身没有参数,其函数值就是是函数名,函数本身没有参数,其函数值就是从输入设备得到的字符。从输入设备得到的字符。 (2)(2)等待输入字符的应答是键入一个需要的字符,按回车等待输入字符的应答是键入一个需要的字符,按回车键,则程序执行下一个语
15、句。键,则程序执行下一个语句。 【 例3.5 】 输入一字符B,变量是字符型。 #include stdio.h #include stdio.h main() main() char c; char c; c=getchar(); c=getchar(); putchar (c);putchar (c); 运行输入: B /* 输入字符B后,按回车键 */ 运行结果: B /* 输出值 */ 【 例例3.6 3.6 】 输入一字符输入一字符B B,变量是整型。,变量是整型。 #include stdio.h #include stdio.h main() main() int c; int
16、c; c=getchar(); c=getchar(); / /* *从键盘接收一个字符送给整型变量从键盘接收一个字符送给整型变量c c * */ / putchar(c); / putchar(c); /* * 输出整型变量输出整型变量c c的值的值 * */ / 运行输入运行输入: : B B 运行结果运行结果: : B B 【 例例3.7 3.7 】 输入一字符输入一字符B B。 #include stdio.h#include stdio.hmain() main() putchar(getchar(); putchar(getchar(); / /* * 输出从键盘接收一个字符输出从
17、键盘接收一个字符 * */ / 运行输入运行输入: : B B 运行结果运行结果: : B B 例 从键盘输入大写字母,用小写字母输出/*ch3_13.c*/#include stdio.hmain() char c1,c2; c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2);输入:A 输出:A,65 a,973.4.1格式输出函数printf()3.4格式化输入与输出格式化输入与输出格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出具有一定格式的任意数据返回值:正常,返回输出字节数;出错
18、,返回EOF(-1)v输出表:要输出的数据(可以没有,多个时以“,”分隔)v格式控制串:包含两种信息格式说明:%修饰符格式字符,用于指定输出格式普通字符或转义序列:原样输出 普通字符(原样输出) 格式说明 % +/- 0 m.n l 格式字符输出有符号数的正号左对齐最小宽度左补0小数位数长整型d符十整o无八整x无16整c字符s字串f小六e指六d,ix,Xoucse,Efg%格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身int a=567;printf ( “%d”,a);int a=255;pri
19、ntf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%说明v格式字符要用小写v格式字符与输出项个数应相同,按先后顺序一一对应v输出转换:格式字符
20、与输出项类型不一致,自动按指定格式输出例 main() unsigned int u=65535; printf(”u=%dn,u); 输出结果:u=-1例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b); 例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);输出结果: 3 4 a=3, b=411 11 11 11 11 11 11 1165535v附加格式说明符(修饰符).n对实数,指定小数点后位数(四舍五入)对字符串,指定实际输出位数修饰
21、符功 能m输出数据域宽,数据长度m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0 x#在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型l例 int a=1234; float f=123.456; char ch=a; printf(“%8d,%2dn”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f); printf(“%3cn”,ch);运行 1234,1234结果: 1
22、23.456000,123.456000, 123.5,123.46,1.23e+02 a例 static char a=“Hello,world!” printf(“%sn%15sn%10.5sn%2.5sn%.3sn”,a,a,a,a,a);运行结果:Hello,world! Hello,world! Hello Hello Hel 例 m.n例 int a=1234; float f=123.456; static char c=“Hello,world!”; printf(“%8d,%-8dn”,a,a); printf(“%10.2f,%-10.1fn”,f,f); printf(“
23、%10.5s,%-10.3sn”,c,c);运行结果: 1234,1234 123.46,123.5 Hello,Hel 例 -例 int a=1234; float f=123.456; printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“%0+10.2fn”,f); 例 0 、+例 int a=123; printf(“%o,%#o,%X,%#Xn”,a,a,a,a); 例 #例 long a=65536; printf(“%d,%8ldn”,a, a); 例 l00 00 00 00 00 00 00
24、01 00 00 00 00 00 00 00 00/00001234/0000123.46/000+1234/000+123.56/173,0173,7B,0X7B/0, 65536 例3.9输出格式举例。输出格式举例。 main() char c=a; char str=“see you”; int i=1234; float x=123.456789; float y=1.2; printf (“1: %c,%s,%d,%f,%e,%fn”,c,str,i,x,x,y); printf (“2: %4c,%10s,%6d,%12f,%15e,%10fn”,c,str,i,x,x,y);
25、printf(“3:%-4c,%-10s,%-6d,%-12f,%-15e,%10fn”,c,str,i,x,x,y); printf (“4: %0c,%6s,%3d,%9f,%10e,%2fn”,c,str,i,x,x,y); printf (“5: %12.2fn”,x); printf (“6: %.2fn”,x); printf (“7: %10.4fn”,y); printf (“8: %8.3s,%8.0sn”,str,str); printf (“9: %dn”,i); 运行结果: 1: a,see you,1234,123.456787,1.23457e+02,1.20000
26、0 1: a,see you,1234,123.456787,1.23457e+02,1.200000 2: a, see you, 1234, 123.456787, 1.23457e+02, 1.200000 2: a, see you, 1234, 123.456787, 1.23457e+02, 1.200000 3: a ,see you ,1234 ,123.456787 ,1.23457e+02 ,1.200000 3: a ,see you ,1234 ,123.456787 ,1.23457e+02 ,1.200000 4: a,see you,1234,123.456787
27、,1.23457e+02,1.200000 4: a,see you,1234,123.456787,1.23457e+02,1.200000 5: 123.46 5: 123.46 6: 123.46 6: 123.46 7: 1.2000 7: 1.2000 8: see, 8: see, 9: %d: 1234 9: %d: 1234 3.4.2 输入函数scanf()格式输入函数格式: scanf(“格式控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束返值:正常,返回输入数据个数v地址表:变量的地址,常用取地址运算符&v格式字符:d
28、,i,o,x,c,s,f,e例 scanf(“%d”,&a); 输入:10 则 a=10例 scanf(“%x”,&a); 输入:11 则 a=17scanf(格式控制,输入项地址表格式控制,输入项地址表); 普通字符(原样输入) 格式说明 % m h l * 格式字符最小宽度短整形不赋值长整形d符十整o无八整x无16整c字符s字串f小六e指六v附加格式说明符(修饰符)l修饰符功 能hm*用于d,o,x前,指定输入为short型整数用于d,o,x前,指定输入为long型整数用于e,f前,指定输入为double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读
29、入后不赋给变量例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015 则1999yy, 10 mm, 15 dd例 scanf(“%3d%*4d%f”,&k,&f); 输入 12345678765.43 则123k, 8765.43f例 scanf(“%2d%*3d%2d”,&a,&b); 输入 1234567 则12a, 67b例 scanf(“%3c%2c”,&c1,&c2); 输入 abcde 则ac1, d c2v输入分隔符的指定一般以空格、TAB或回车键作为分隔符其它字符做分隔
30、符:格式串中两个格式符间字符例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c); 输入 123 123 123 输出 a=123,b=83,c=291例 scanf(“%d:%d:%d”,&h,&m,&s); 输入 12:30:45 则12 h, 30 m, 45 s例 scanf(“%d,%d”,&a,&b) 输入 3,4 则3a, 4 b例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入 a=12,b=24,c
31、=36 v说明:用“%c”格式符时,空格和转义字符作为有效字符输入如 scanf(“%c%c%c”,&c1,&c2,&c3); 若输入abc 则ac1, c2, b c3输入数据时,遇以下情况认为该数据结束:v遇空格、TAB、或回车v遇宽度结束v遇非法输入如 scanf(“%d%c%f”,&a,&b,&c); 若输入1234a123o.26 则 1234 a, a b, 123 c输入函数留下的“垃圾”:例 int x; char ch; scanf(“%d”,&x); ch=getchar(); printf(“x=%d,ch=%dn”
32、,x,ch);执行:123输出:x=123,ch=10例 int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%dn”,x,ch);执行:123输出:x=123,ch=10解决方法:(1)用getchar()清除(2)用函数fflush(stdin)清除全部剩余内容 (3) 用格式串中空格或“%*c”来“吃掉”例 int x; char ch; scanf(“%d”,&x); scanf(“ %c”,&ch);或 scanf(“%*c%c”,&ch); v 程序举例/*ch3_
33、12.c*/#include #include 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(a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn,a,b,c,s); printf(area=%7.2fn,area);例 输入三角形边长,求面积输入:3,4,6 输出:a= 3.00, b= 4.00, c= 6.00 s= 6.50 area= 5.33)()()()(21csbsas
34、sareacbas文件包含预处理命令变量定义输入数据输出数据04022acbcbxax方程的根,设例求/*ch3_14.c*/#include #include main() float a,b,c,disc,x1,x2,p,q; scanf(a=%f,b=%f,c=%f,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf(nnx1=%5.2fnx2=%5.2fn,x1,x2);输入:a=1,b=3,c=2 输出:x1=-1.00 x2=-2.00aacbbx242小结小结1.1.在在scanf()scanf()函数调用中,要求输入项必须是地址值,即在每个函数调用中,要求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城市垃圾处理塔吊施工协议
- 航空航天安全承诺书
- 网络管理员聘用合同样本
- 煤矿开采回填土施工合同
- 政务服务设施无障碍
- 学生入学协议书
- 教育培训机构教师聘用合同书
- 建筑施工合同:体育馆建设协议
- 2022年大学环境生态专业大学物理二期中考试试卷C卷-含答案
- 矿山通信室外施工合同
- 体育场馆建筑行业未来发展趋势预测
- 大学生国家安全教育智慧树知到期末考试答案章节答案2024年
- 医疗器械相关性压力性损伤
- 医疗保险参与者自费项目知情同意签字管理制度
- 外圆内方外方内圆公开课获奖课件
- 历年全国高中数学联赛试题及答案
- 已使用牙膏原料目录
- 直线与平面、平面与平面相对位置课件
- 2024年《突发事件应对法》知识考试题库(含答案)
- 音乐鉴赏(西安交通大学)智慧树知到期末考试答案2024年
- MOOC 数据挖掘与python实践-中央财经大学 中国大学慕课答案
评论
0/150
提交评论