第5讲 最简单的C程序设计(二)

  • 格式:doc
  • 大小:43.50 KB
  • 文档页数:3

第五讲 最简单的C程序设计(二)
知识点: 1 掌握C语言顺序结构 重点:1、顺序结构
2 掌握C语言基本的输入输出 2、输入输出函数
3 掌握C语言系统函数库的概念

解决方式:案例分析、实例练习
学时: 2
授课方式:讲授
一、格式输入输出函数

prinft 格式输出函数
1、 函数格式
prinft(“格式控制符”, 输出表列)
2、 格式控制符
(1) d 格式符(输出十进制整数)
%d:十进制整数按照实际长度输出
%md:十进制整数按照指定宽度m输出
%ld:十进制整数按照长整型输出
(2) o格式符(输出八进制整数)
输出数值不带符号位,即符号位也一同作为八进制数的一部分
(3) x格式符(输出十六进制整数)
①输出数值不带符号位,即符号位也一同作为八进制数的一部分
②对于long型,可以用%lo,%lx,也可以指定宽度%mx
(4) u格式符(输出无符号型数据)
以十进制整数形式输出
(5) c格式符(输出一个字符)
①在0 —255之间的整数也可以用%c输出
②可以指定宽度 %mc
(6) s格式符(输出字符串)
%s 字符串原样输出
串长大于m,原样输出全部字符
%ms 输出字符串占m列宽
串长小于m,字符串右靠左补空格
% - ms: 除“串长小于m,字符串左靠右补空格”外,其他同上

%m . ns 输出字符串占m列宽,但只取字符串左端n个字符,且这n个字符
输出在m列右侧左补空格。如果n>m,m自动取n值,保证n个字
符输出

% - m . ns 除“n个字符输出在m列左侧右补空格”外,其他同上
(7) f格式符(输出单、双精度实数)
以实数形式输出
%f 系统指定输出宽度,整数部分全部输出,并输出6位小数
(输出的数中并非全部为有效数字,一般单精度7位双精度16位)
%m.nf 输出m列宽,有n位小数。如数值长度小于m,左补空格
% - m . nf 输出m列宽,有n位小数。如数值长度小于m,右补空格
% . nf 系统指定输出宽度,整数部分全部输出,并输出n位小数
(8) e格式符(输出指数形式)
以规格化指数形式输出
%e: 系统指定输出宽度和小数位数。
printf(“%e”,123.456) 1.234560e+002(共13位)
%m . ne: 输出m列宽,尾数有n位小数。如数值长度小于m,左补空格
% - m . ne :输出m列宽,尾数有n位小数。如数值长度小于m,右补空格

(9) g格式符(输出f和e中占宽度较小的一种)
用于输出实数,他根据数值大小,自动选择f和e格式中占宽度较小的一种,并
且不输出无意义的零

3、 格式控制符注意
(1) 除X,E,G外,所有格式控制符都必须小写
(2) 格式控制符都是以%开头
(3) 要输出%,必须用连续两个“%%”
(4) printf 的格式控制符中可以包含“转义字符”
(5) 在printf的“”中,除格式控制符以外,其他普通字符原样输出
(6) printf 的有多个格式控制符时,“格式控制符”排列与“输出表列”中变
量排列顺序相对应
4、 输出表列
(1) 用于指定要输出的变量,多个变量之间用逗号隔开
(2) 输出表列中可以有表达式
(3) 输出表列”中变量排列顺序相对应于“格式控制符”中格式控制符的排列

scanf格式输入函数
1、函数格式
scanf(“格式控制符”,地址表列)
2、格式控制符
一般格式控制符同 printf函数的格式控制符,除以下几点不同:
(1) 输入数据可以指定宽度,但是不能规定精度
(2) 系统会按照指定的宽度自动截取数据
(3) %后面有一个“*”(* 称为附加说明符),表示跳过她指定的列数,也
就是说读入的数据不抚育任何变量。
(4) 对于unsigned型变量所需的数据用%d,%o,%x,%u格式输入
(5) 除格式控制符以外,其他普通字符原样在对应位置输入
(6) 输入数据时,遇到以下情况认为该数据输入结束
①遇空格,回车,跳格(Tab键)
②按指定宽度结束
③遇非法输入
3、地址表列
(1) “&”为地址运算符,输入变量地址
(2) 地址表列中变量排列顺序只相对应于“格式控制符”中格式控制符的排
列,其他字符必须在相同位置原样输入
(3) 用%c 格式输入时,“空格”“转义字符”都为有效输入
(4) 变量地址之间用逗号隔开
二、顺序结构程序设计
1、输入三角形三边长,求三角形面积
(are= s*(s-a)(s-b)(s-c) ,s=(a+b+c)/2)

#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=aqrt(s*(s-a)*(s-b)*(s-c));
printf(“area=%f”,area);
}
2、求ax2 +bx+c=0 的根,假如a>0 ,b2 —4ac>0。
#include
#include
void main( )
{float a,b,c,disc,x1,x2,p,q;
scanf(“%f,%f,%f”,&a,&b,&c);
disc=b*b-4*a*c;
p=-b/2.0*a;
q=sqrt(disc)/2.0*a;
x1=p+q;
x2=p-q;
printf(“x1=%5.2f,x2=%5.2f\n”,x1,x2);
}
三、小结
1、 内容小结
2、 作业 P89(7,8,9)
3、准备实验(实验五 顺序结构与输入输出)