版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 最简单程序设计(顺序) 程序 1 程序 2 函数 1 函数 2 数据定义 程序 n 函数 n 执行语句 C程序 C语言程序是由若干语句组成的。4.1 C语句概述C语句共有5类第4章 最简单程序设计(顺序) 控制(条件、循环、转向等) 函数调用 表达式 空语句 复合语句 C语句共有5类 if ( ) else 条件语句 for( ) 循环语句 while( ) 循环语句 do while 循环语句 break 终止switch或循环语句 continue 结束本次循环 switch 多分支选择语句 goto 转向语句 return 从函数返回语句1、控制语句 2、函数调用语句 如:pri
2、ntf(“this porgram!”); 3、表达式语句 如:a=12; a+=8;(而a=3 称赋值表达式) 4、空语句(无任何语句, 只有;号) 如: ; (int a=6,b=8; if (ab);a+=b;) 5、复合语句(或称分程序) 如: z=x+y; t=z/100; printf(“%f”,t); 复合语句作为整体执行4.2 赋值语句: 赋值语句格式: 变量=表达式; 功能:计算表达式的值,将结果送给变量。 注意:不要把“=”读做“等于”,C中的等于是“=”; 应读做“赋值” 。在定义变量时可以赋值。 main()int a=6, b=8 ,t;printf(%d,%dn,a
3、, b);if(a0 main()int a=-10, b=10,t; if(a=b)=0) t=a; printf(%d,t);结果 ?赋值表达式4.3 数据输入输出语句: C语言不提供输入输出语句,是由函数库提供 “标准输入输出函数”实现输入输出功能的。 如:scanf (输入) printf (输出) getchar(输入字符) putchar(输出字符) gets(输入字符串) puts(输出字符串) 一般使用库函数要用预编译命令“#include”将有关的“文件头”调到源文件中。如: #inclulde或 #inclulde “stdio.h” 处 理输入数据输出数据程 序 4.4
4、字符数据输入输出4.4.1输出字符函数putchar( ):功能:向输出设备输出一个字符,使用 stdio.h进行预编译处理。例如:调用预编译赋值字符输出字符控制换行#include main()char a=O,b=K,c=!;putchar(a);putchar(b);putchar(c);printf(n);/*ch3_1.c*/#include main() int c; char a; c=65; a=B; putchar(c); putchar(n); putchar(a);运行结果:A B例#include stdio.h/*编译预处理命令:文件包含*/main() char c
5、h1=N, ch2=E, ch3=W; putchar(ch1); putchar(ch2); putchar(ch3);/*输出*/ putchar(n); putchar(ch1); putchar(n); /*输出ch1的值,并换行*/ putchar(E); putchar(n); /*输出字符E,并换行*/ putchar(ch3); putchar(n); 程序运行结果如下: NEW N E W说明1putchar()函数的格式: putchar(ch); 其中ch可以是一个字符变量或常量,也可以是一个转义字符。 2putchar()函数的作用:向终端输出一个字符。 (1)putc
6、har()函数只能用于单个字符的输出,且一次只能输出一个字符。另外,从功能角度来看,printf()函数可以完全代替putchar()函数。 (2)在程序中使用putchar()函数,务必牢记:在程序(或文件)的开头加上编译预处理命令(也称包含命令),即: #include stdio.h 表示要使用的函数,包含在标准输入输出(stdio)头文件(.h)中。4.4.2 输入字符函数getchar():功能:从输入设备输入一个字符。使 用stdio.h进行预编译处理。#include main()char c;c=getchar();putchar(c); 输入字符输出字符用Printf(“%c
7、”,c)也可以格式:getchar( )功能:从键盘读一字符返值:正常,返回读取的代码值;出错,返回EOF(-1)例 /*ch3_4.c*/#include main() int c; printf(Enter a character:); c=getchar(); printf(%c-hex%xn,c,c);运行结果:Enter a character:AA-hex414.5 格式输入输出4.5.1 printf() 函数Printf()可以输出任意类型、多个数据、通用。1. Printf()一般格式:printf(格式控制,输出表列)(1)格式控制:由“ ”括起来,包括格式说明:% 加格式
8、字符 和普通字符,即按原样输出的字符。(2)输出列表:需要输出的数据或表达式。 如: printf(“x=%d,y=%d”, x, y)格式控制输出表列 2、格式字符 说明:不同类型数据用不同的格式,m 为输 出数据宽度。(1)d 格式:输出十进制整数 %d :按整数实际长度输出 %md :按m指定的宽度输出如果实际宽度m,前边补空格。(右对齐)%-md : 如果实际宽度m,后边补空格。(左对齐) %ld 、%mld、%-mld: 输出长整型数(同上)例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);输出结果: 3
9、4 a=3, b=4例 main()int a=123,b=12345;printf(“%4d,%4d”,a,b); 输出结果: 123,12345(空格)例 long a=135790; printf(“%8ldn”,a); 输出结果: 1357908列 例如: main( )int a=123;long b=23456778;printf(a=%dn,a);printf(a=%10dn,a);printf(a=%-10dn,a);printf(b=%ldn,b);printf(b=%10ldn,b);printf(b=%-10ldn,b);结果 ?(2)o 格式符功能:按八进制形式输出内存
10、单元中的值 (不会出现负数)格式: %o , %lo , %mo, %mlo ,%-mo.例如: -1的二进制存放形式:int a= - 1; ( 1 7 7 7 7 7 )printf(%d,%on,a,a);printf(%d,%8on,a,a);输出结果: -1,177777 -1, 1777771111111111111111按8位输出(3) x 格式符 功能:以16进制形式输出内存单元中的值 (同样也不会出现负的16进制数) 格式:%x,%mx,%-mx,%lx,例如:main( )int a= -1;printf(“%x,%o,%d,a,a,a);结果 ?结果:ffff,17777
11、7,-1(4) u 格式 功能:用来输出无符号型十进制数 格式:%u,%mu,%lu,main( )unsigned int a=65535;int b=-2;printf(a=%d,%o,%x,%un,a,a,a,a);printf(b=%d,%o,%x,%un,b,b,b,b);按十、八、十六、无符号四种方式输出2个字节结果:a1,177777,ffff,65535 b2,177776,fffe,655345、c 格式符 功能:输出一个字符,也可以是特殊字符。 格式:%c, %mc, %-mc例1 main( ) char c=a; printf(%c,c);例2 main() char
12、c=a;int i=97; printf(%c,%dn,c ,c); printf(%c,%dn,i ,i);0255内整数=ASCII结果:a,97 a,97(6)s 格式符 功能:输出一个字符串 格式: %s :按字符串长度输出字符串 printf(“%s”,”CHINA”); %ms :按m列右对齐输出字符串 printf(“%3s”,” CHINA”); %-ms :按m列左对齐输出字符串 printf(“%-6s”,” CHINA”); %m.ns:按m列右对齐输出前n个字符 printf(“%7.2s”,” CHINA“); %-m.ns:按m列左对齐输出前n个字符 printf(
13、“%-5.3s”,” CHINA”);(7) f 格式符 %f 输出实数(单精度,双精度) 单精度数:有效位数 7,小数位数6 双精度数:有效位数 16,小数位数6 特点:不指出小数位数,由系统自动指定例如: 结果:333333.328125 有效数字7位:333333.3main( )float x,y;x=111111.111;y=222222.222;printf(%f,x+y); %m.nf 输出m列, n位小数, m列, 右空格main( )float f=123.456;printf(n%f,f); printf(n%10f,f); printf(n%10.2f,f); print
14、f(n%.2f,f); printf(n%-10.2f,f); 123.456001123.456001 123.46 123.46 123.46(8) e 格式,以指数形式输出实数%e由系统指定宽度, 5位小数, 4位指数(系统有别) main( )float f=123.456;printf(“%e”,f); 输出: 1.23456e+02 %m.ne,%-m.ne, n指尾数的小数部分main( )float f=123.456;printf(n%e,f);printf(n%10e,f);printf(n%10.2e,f);printf(n%.2e,f);printf(n%-10.2e
15、,f);规范化小数1.23456e+021.23456e+02 1.2e+021.2e+021.2e+02TC的结果尾数2位 (9) g 格式:根据数值大小,自动选f 或 e格式。不输出无意义的0。例:main( )float f=123.468;printf(n%f,f);printf(n%e,f);printf(n%g,f); 123.4680021.23468e+02123.468d,ix,Xoucse,Efg%格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身int a=567;printf
16、( “%d”,a);int a=255;printf(“%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%附加格式说明符(修饰符).n对实数,指定小数
17、点后位数(四舍五入)对字符串,指定实际输出位数修饰符功 能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(“%3
18、cn”,ch);运行 1234,1234结果: 123.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
19、,%-10.1fn”,f,f); printf(“%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); 例
20、l00 00 00 00 00 00 00 0100 00 00 00 00 00 00 00/00001234/0000123.46/000+1234/000+123.56/173,0173,7B,0X7B/0, 65536 3.5.2 scanf 函数(格式化输入函数) 一般形式:scanf(格式控制,地址列表)例如: main() int a,b,c; scanf(%d%d%d,&a,&b,&c); printf(%d,%d,%d,a,b,c);输入:3 4 5 输出:3,4,5&是取地址运算符数据间用空格间隔格式输入函数格式: scanf(“格式控制串”,地址表)功能:按指定格式从键盘
21、读入数据,存入地址表指定的 存储单元中,并按回车键结束返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符&格式字符:d,i,o,x,u,c,s,f,e例 scanf(“%d”,&a); 输入:10 则 a=10例 scanf(“%x”,&a); 输入:11 则 a=17 scanf格式字符d 用来输入十进制整数。o 用来输入八进制整数。x 用来输入十六进制整数。c 用来输入单个字符。s 用来向字符数组输入字符串,以空格结束, 0为最后一个字符,是结束标志。f 用来(以小数或指数形式)输入实数。e, g 与f作用相同。l 用于输入long int /double型数据%ld,%lf
22、。h 用于输入短整型数据:%hd,%ho,%hx。* 输入项读入后不赋给变量%*, 跳过该数据。说 明(1)unsigned型数据可用%d,%o,%x格式输入。(2)可指定输入数据位数, 系统自动截取所需数据:如scanf(“%3d%3d”,&a,&b);输入123456,系统将 123赋给a,456赋给b。 如scanf(“%3c”,&ch);输入abc,系统只将a赋给ch。因为char类型只接收1个字符。(3)%*用来跳过相应的数据: scanf(%2d %*3d %2d,&a,&b); 输入: 12 345 67 输出12 67。(4)输入时不能规定精度, 如scanf(“%7.2f”,
23、&a)。scanf函数执行中注意的问题(1) 格式后面应该是地址变量, &取地址符号。 如:scanf(“%d%d”,&a,&b)(2)如果格式控制中包括其它字符,输入时应该输入相同的字符。 如:scanf(“%d,%d”,&a,&b)(3)使用%c时格式字符和“转义字符”都作为有效字符输入: 如:scanf(“%c%c%c”,&a,&b,&c);输入a b c,输出为a b,即a赋给a,空格赋给b。(4)在输入数据时,以下情况认为输入结束(1)遇空格、回车、Tab(2)遇宽度结束“%3d” (3) 遇非法字符,如 scanf(“%d%c%f” ,&a,&b,&c); 输入: 1234a123
24、.056abc0误输入o4.6 顺序程序举例输入三边长,求三角形面积#includemain()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.2f,a,b,c,s);printf(area=%7.2fn,area);用到库函数从键盘输入一大写字母,要求用小写字母输出: 字符ASC对照048 149,: ; ? A65 Z90 , - a97 z122 printf(“%c”,A+32); 输出 : a例:输入大写字母,用小写字母输出。#includemain()char c1,c2;c1=getchar();printf(%c,%d,c1,c1);c2=c1+32;pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赣南医学院《安装工程施工技术》2023-2024学年第一学期期末试卷
- 赣南师范大学科技学院《逻辑推理证明》2023-2024学年第一学期期末试卷
- 电气培训课件题目
- 赣东学院《控制系统建模与仿真B》2023-2024学年第一学期期末试卷
- 甘孜职业学院《公司战略与风险管理》2023-2024学年第一学期期末试卷
- 甘肃政法大学《水污染控制工程(一)设计》2023-2024学年第一学期期末试卷
- 铁塔安全培训课件
- 七年级道德与法治上册第三单元师长情谊第六课师生之间第二框师生交往教案新人教版
- 三年级数学上册教材梳理数与代数新人教版
- 三年级科学上册第三单元人与动物5动物世界教案首师大版1
- 教材编写工作总结
- 企业员工上下班交通安全培训(简详共2份)
- 城市高密度建成区合流制溢流污染系统研究-黄孝河机场河水环境综合治理项目实践
- word 公章 模板
- T∕ZSQX 008-2020 建设工程全过程质量行为导则
- ISO-IEC17025-2017实验室管理体系全套程序文件
- 深圳智能水表项目商业计划书_参考模板
- 辊压成型在汽车轻量化中应用的关键技术及发展-北方工业大学
- 地理信息系统原理全册配套完整课件
- 满堂支架计算书(调整)
- 输出轴的机械加工工艺规程及夹具设计
评论
0/150
提交评论