

免费预览已结束,剩余22页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-2- 第3章 简单的c程序设计 本 章 内 容 1. c语句概述 2. 赋值语句和表达式语句 3. 格式化输入/输出 4. 字符数据的输入/输出 5. 顺序结构程序举例 -3- 第3章 简单的c程序设计 3.1 c语句概述 l语言设置的基本语句 c语言语句 控制语句 空语句 复合语句 表达式语句 声明语句 无条件转移语句: goto 条件转移语句 for语句 while语句 dowhere语句 switch语句 ifelse语句 return语句 continue语句 break语句 -4- 第3章 简单的c程序设计 3.2 赋值语句和表达式语句 l 赋值语句 变量=表达式; 例如:student_number = 35; 在赋值语句的使用中需要注意以下几点: 由于在赋值符“=”右边的表达式可以是一个赋值表达式。 例如:a=b=c=5;等效于: c=5;b=c;a=b; 注意赋值表达式和赋值语句的区别。 例如:if(a=b) l printf()函数 1. 一般格式: printf(“格式字符串“,输出项1,输出项2,); 【例3-1】格式输出示例。 main() int a=88,b=89; printf(“%d %dn“,a,b); printf(“%d,%dn“,a,b); printf(“%c,%cn“,a,b); printf(“a=%d,b=%d“,a,b); 程序运行结果: 88,89 88,89 x,y a=88,b=89 -7- 第3章 简单的c程序设计 3.3 格式化输入/输出 2. printf()函数中的格式说明 格式字符 意 义 d,i 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀0) x,x 以十六进制形式输出无符号整数(不输出前缀ox) u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数 e,e 以指数形式输出单、双精度实数 g,g 以%f或%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串 -8- 第3章 简单的c程序设计 3.3 格式化输入/输出 标 志 意 义 - 左对齐,右边填空格。缺省时为右对齐,左端补空格 + 输出数值的正号或负号 空格 输出值为正时冠以空格,为负时冠以负号 # 对csdu类无影响;对o类(八进制数),加前缀0 对x类(十六进制数),加前缀0x 对egf 类当结果有小数时才给出小数点 m(正整数) 数据最小宽度。若超长,则按实际宽度输出;若不足,则补空格 .n 对于浮点数,表示输出n位小数;对于字符串,表示截取的字符个 数;对于整数,指定必须输出数字个数,若输出的数字少于指 定的个数,则前面补0,否则按原样输出 表3-2 printf()函数的常用标志字符 -9- 第3章 简单的c程序设计 3.3 格式化输入/输出 【例3-2】输出函数printf()示例。 main() int x,y; x=21; y=10; printf(“%dt“,123); printf(“x=%d,y=%d“,x,y); printf(“n“); printf(“x%y=%d“,x%y); 运行结果: 123 “x=21,y=10“ x%y=1 -10- 第3章 简单的c程序设计 3.3 格式化输入/输出 【例3-3】各种数制及无符号整数的输出。 main() unsigned int num=65535; printf(“num=%d,%o,%x,%un“,num,num,num,num); 【例3-4】格式字符f的使用(注意数据的有效位)。 main() float a=123.456; double d1,d2; d1=1111111111111.111111111; d2=2222222222222.222222222; printf(“%f,%12f,%12.2f,%-12.2f,%.2fn“,a,a,a,a,a); printf(“d1+d2=%fn“,d1+d2); 运行结果: num=-1,177777,ffff,65535 运行结果: 123.456001, 123.456001, 123.46,123.46 ,123.46 d1+d2=3333333333333.333000 -11- 第3章 简单的c程序设计 3.3 格式化输入/输出 【例3-5】c格式符的使用。格式%c用来输出一个字符。 main() char c=a; int i=97; printf(“%c,%d n“,c,c); printf(“%c,%d n“,i,i); printf(“%5c,%-4c“,c,i); 【例3-6】格式字符s的使用。 main() printf(“%s,%5s,%-10s,“,“internet“,“internet“,“internet“); printf(“%10.5s,%-10.5s,%4.5sn“,“internet“,“internet“, “internet“); 运行结果: a,97 a,97 a,a a,a 运行结果: internet,internet,internet,inter,inter,inter -12- 第3章 简单的c程序设计 3.3 格式化输入/输出 l scanf()函数 1scanf()函数的一般格式 scanf()函数的一般形式为: scanf(“格式字符串“,地址1,地址2,); 2scanf()函数的格式说明 格式控制字符和标志字符的含义如表3-3和表3-4所示。 -13- 第3章 简单的c程序设计 3.3 格式化输入/输出 格式字符 意 义 d,i 用来输入有符号的十进制数 u 用来输入无符号的十进制数 o 用来输入无符号的八进制数 x,x 用来输入无符号的十六进制整数(大小写作用相同) c 用来输入单个字符 s 用来输入字符串。将字符串送到一个字符数组中,在输入时以非空 白字符开始,以第一个空白字符结束,系统自动将字符串以串 结束标志0作为其最后一个字符 f 用来输入实数,可以用小数形式或指数形式输入 e,e,g,g 与f作用相同,e与f、g可以互相替换(大小写作用相同) 表3-3 scanf()函数的格式字符 -14- 第3章 简单的c程序设计 3.3 格式化输入/输出 标 志 意 义 l 用于输入长整型数据(可用%ld、%lo、%lx 、%lu)以及double型数据(用%lf或%le ) h用于输入短整型数据(可用%hd,%ho,%hx ) 域宽n 指定输入数据所占宽度(列数),域宽n应 为正整数 * 表示本输入项在读入后不赋给相应的变量 表3-4 scanf() 函数的常用标志字符 “地址n”是变量的地址,表示从键盘输入的数据存放在相应变量的存储 单元中。 例如: int day,year; char month10; 可以用下面的语句表示:scanf(“%d%d“ 数据输入时,应用空格隔开,即 25 1996 -15- 第3章 简单的c程序设计 3.3 格式化输入/输出 输入数据时,遇到以下情况,系统认为该数据结束: a遇到按空格、【tab】键或【enter】键。 b按指定宽度结束,如“%3d”只取3位。 c遇非法输入。例如,输入数值数据时,遇到字母等非数值符号。 输入字符时不加单引号,输入字符串时不加双引号。 当scanf的格式字符串包含有普通字符时,在输入流中相应位置必 须有相同的字符与之匹配。 例如: main() int x,y; printf(“please input x and y:“); scanf(“%d,%d“, 数据的输入形式应为: 23,42 使用“%c”输入单个字符时,空格和转义字符均作为有效字符。 例如: scanf(“%c%c%c“, 输入:a bc,则c1接收a,c2接收空格,而b被赋值给c3。 -16- 第3章 简单的c程序设计 3.3 格式化输入/输出 turbo c环境输入long型整数时,在“%”和“d”之间必须加“l”; 输入double型时,在“%”和“f”,“e”之间必须加“l”。 可在scanf()函数中的格式字符前用整数指定输入数据所占宽度,但不可 对实型数指定小数位的宽度。 例如: int i,j; scanf(“%3d%d“, 若执行时输入:1234 5678 则变量i的值为123,变量j的值为4。 赋值抑制字符“*”。 例如:scanf(“%3d %*2d %3d“, 若执行时输入:123456789 则变量num1的值为123,num2为678, num3仍为原来存储单元中的值。 格式控制时,格式说明的个数应该与输入项的个数相同。 若格式说明的个数少于输入项的个数,多余的数据项不被接收; 若格式说明的个数多于输入项的个数时,scanf()函数等待输入足够输入 。 -17- 第3章 简单的c程序设计 3.3 格式化输入/输出 main() int i,j; float x,y; scanf(“%d%d“, scanf(“%f“, printf(“i=%d,j=%d,x=%f,y=%fn“,i,j,x,y); 执行时输入:12 34 56.7 89 运行结果:i=12,j=34,x=0.000000,y=56.700001,x的值是随机数。 main() int a,b; scanf(“%d%d“, printf(“a=%d,b=%dn“,a,b); 运行时如果只输入一个数,程序不执行,必须再输入一个数才能输出 。 输出的b值是一个随机数。 -18- 第3章 简单的c程序设计 3.4 字符数据的输入/输出 l putchar()函数 putchar()函数是字符输出函数,向终端输出一个字符。 其一般形式为:putchar(ch); 例如:putchar(a); /*输出大写字母a*/ putchar(x); /*输出字符变量x的值*/ putchar(101); /*转义字符,输出字符a*/ putchar(n); /*换行*/ 【例3-7】输出单个字符。 #include main() char a=b,b=o,c=k; putchar(a);putchar(b);putchar(b); putchar(c);putchar(t); putchar(a);putchar(b); putchar(n); putchar(b);putchar(c); 运行结果: book bo ok -19- 第3章 简单的c程序设计 3.4 字符数据的输入/输出 l getchar()函数和getch()函数 getchar()函数的功能是从键盘上输入一个字符。 其一般形式为: getchar(); 【例3-8】输入单个字符。 #include main() char c; printf(“input a character:n“); c=getchar(); putchar(c); -20- 第3章 简单的c程序设计 3.4 字符数据的输入/输出 使用getchar()函数应注意以下几个问题: getchar()函数只能接受单个字符,输入数字也按字符处理。输入 多于一个字符时,只接收第一个字符。 使用本函数前必须包含文件“stdio.h”。 在tc屏幕下运行含本函数程序时,将退出tc 屏幕进入用户屏幕等 待用户输入,输入完毕再返回tc屏幕。 程序最后两行可用下面的任意一行代替: putchar(getchar(); printf(“%c“,getchar(); 当程序执行到 getchar()函数调用语句时,将等待输入,只有当用 户输入字符,并按 【enter】键后,才接收输入的第 1 个字符,并 在屏幕上回显该字符。并且空格符(【space】键)、制表符(【tab 】键)和回车符(【enter】键)都被当做有效字符读入。getch()函 数是立即接收用户来自键盘上的输入,但不把字符回显到屏幕上。 -21- 第3章 简单的c程序设计 3.5 顺序结构程序举例 【例3-9】输入一个大写字母,将它改成小写字母,输出大小写字母及 其对应的ascii码。 #include main() char c1,c2; c1=getchar(); printf(“%c,%dn“,c1,c1); c2=c1+32; /*将大写字母转换成对应的小写字母*/ printf(“%c,%dn“,c2,c2); -22- 第3章 简单的c程序设计 3.5 顺序结构程序举例 【例3-10】输入三角形的三边长,求三角形面积。 已知三角形的三边长a、b、c,则计算三角形的面积公式为: area= 其中s = (a+b+c)/2。 源程序如下: #include main() float a,b,c,s,area; scanf(“%f,%f,%f“, 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); -23- 第3章 简单的c程序设计 3.5 顺序结构程序举例 【例3-11】求ax2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论