第三章简单C程序相关设计_第1页
第三章简单C程序相关设计_第2页
第三章简单C程序相关设计_第3页
第三章简单C程序相关设计_第4页
第三章简单C程序相关设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章简单C程序相关设计第3章 C 第三章简单C程序相关设计本章目标l掌握标准输入输出函数的格式及使用。l会编写简单C程序l会使用常用数学函数第三章简单C程序相关设计3.1语句 语句是程序最基本的执行单位,程序的功能就是通过对一系列语句的执行来实现的(1)控制语句,实现流程控制,如: 分支语句实现分支控制过程 :if (a b) x = a;else x = b;(2)变量声明语句:如 float x,y,z;(3)表达式语句:表达式加分号“;” (4)复合语句:用一对“ ”,将若干语句顺序组合在一起就形成了一个程序段。(5)空语句。只有一个分号构成的语句,表示什么也不做。第三章简单C程序相关

2、设计3.2 标准文件输入输出函数l一个一个C语言的源程序要有输入输出功能。语言的源程序要有输入输出功能。lC语言本身并没有提供专门的数据输入语言本身并没有提供专门的数据输入/输出语句,输出语句,而是用而是用C标准函数库中的函数来实现的,如标准函数库中的函数来实现的,如scanf、printf等。等。l在使用标准的输入在使用标准的输入/输出库函数时,需要使用预编输出库函数时,需要使用预编译命令译命令”#include” lC语言中从标准输入和输出设备中进行读写的四语言中从标准输入和输出设备中进行读写的四个标准函数是:格式输出函数个标准函数是:格式输出函数printf、格式输入、格式输入函数函数s

3、canf、字符输入函数、字符输入函数getchar和字符输出函和字符输出函数数putchar第三章简单C程序相关设计3.2.1 字符输入输出函数l例3.1 猜字母:输入某字母在字母表中的序号(从1开始),输出该字母(大写)#includeint main()char ch;int index;scanf(“%d”, &index);ch=A+index-1; /或ch=64+index; printf(“%c”,ch);putchar( ch );putchar()函数的其功能是向终端输出其括号内参数的内容,参数可以是字符变量、字符常量输出字符a: putchar( a );输出一个回车符 p

4、utchar( n );输出字符变量a的值: putchar( a );猜猜: putchar( 65 );输出什么?到VC中试试第三章简单C程序相关设计3.2.1 字符输入输出函数l例3.2 小写字母变大写#includeint main() char ch1, ch2; ch1=getchar( ); ch2=ch1-32; /小写字母比大写字母的ASCCI码大32; putchar(ch2);getchar()函数没有参数,其功能是从终端读入一个字符,作为函数值返回第三章简单C程序相关设计小练习l计算字母序号,输入一个字母(小写),输出该字母在字母表中的序号(1)读入字符ch;(2)计算

5、序号index=ch-a+1;(3)输出整数indexchar ch;int index;ch=getchar();index=ch-a+1;printf(“%dn”,index);第三章简单C程序相关设计3.2.2格式化输出函数printfprintf( %d , count);printf将一些信息按照指定的格式送到标准输出(显示器)count输出参数表:待输出的数据,可以是常量、变量或表达式格式:printf(“格式控制串格式控制串”,输出输出参数参数表表) %d 格式字符串:指定数据的输出格式第三章简单C程序相关设计#include int main( ) int celsius, f

6、ahr; fahr=100; celsius=5*(fahr-32)/9; printf(“fahr=%d, celsius=%dn, fahr, celsius); return 0; fahr=100, celsius=37例3.3 求华氏温度100F对应的摄氏温度引号内的fahr和引号外的fahr有区别吗?第三章简单C程序相关设计输出格式printf(“fahr=%d , celsius=%dn, fahr, celsius);普通字符,原样输出%开头的是转换说明,对应与后面一个输出参数,对应参数将被转换成指定格式后在该位置输出输出结果:fahr=100, celsius=37输出参数列

7、表n是转意字符,用来输出一个回车第三章简单C程序相关设计转换字符串printf( %d , count);%d 转换字符串转换字符串说说 明明%d将参数按整数形式转换输出,对应参数应是int 类型%ld将参数按长整数形式转换输出,对应参数是long型%c输出一个字符,对应参数应该是一个字符%s输出一个字符串,对应参数应该是一个字符串%f将参数按带小数点数形式输出,对应参数应是double 类型,默认情况下精确到 6 位小数第三章简单C程序相关设计转换字符串%dint visitor_count = 150;printf ( %d , visitor_count);输出结果:150第三章简单C程

8、序相关设计转换字符串%mdint salary = 5500;printf ( %10d , salary);输出结果: 5500输出结果的左边显示了 6 个空格 %10d 第三章简单C程序相关设计转换字符串%ffloat circumference = 78.53;printf ( %f , circumference);输出结果:78.530000默认情况下精确到六位小数9.4786789;第三章简单C程序相关设计转换字符串%m.nfdouble mercury_level = 168.2251074;printf( %7.2f , mercury_level);输出结果: 168.23宽

9、度,表示所有的数字和小数点所占的位数。不够7位右对齐。 %7.2f 精度(精确到小数点后多少位)第三章简单C程序相关设计scanf(%d,&num);3.2.3 scanf 函数scanf 函数从标准输入(键盘)读取信息,按照格式描述把读入的信息转换为指定数据类型的数据,并把这些数据赋给指定的程序变量。 转换字符串&符号(附在读取的每个变量上)用于指明变量在内存中的位置变量的名称转换字符串转换字符串参数变量的类型参数变量的类型要求的实际输入要求的实际输入%dint 十进制数字序列 %f float 十进制数实数%lf double十进制数实数第三章简单C程序相关设计内存scanffloat t

10、ax_rate;scanf (%f , &tax_rate);tax_rate 在内存中分配一块 32 位存储空间 存储空间使用名称“tax_rate”标识 提示用户输入一个值 输入的值存储在变量中(因为 scanf 提供此变量的地址)12.234第三章简单C程序相关设计内存scanfdouble tax_rate;scanf (%lf , &tax_rate);tax_rate 在内存中分配一块 64 位存储空间 存储空间使用名称“tax_rate”标识 提示用户输入一个值 输入的值存储在变量中(因为 scanf 提供此变量的地址)12.234约定:以后凡说要定义实型变量,都使用double

11、第三章简单C程序相关设计#include int main() double radius,high,vol; printf(请输入圆柱体底面积的半径和圆柱体的高: ); scanf(%lf%lf,&radius, &high); vol=3.14*radius*radius*high; printf(radius=%f, high=%f, vol=%fn, radius, high, vol);例3.4计算圆柱体积内存内存radiushighvol510785请输入圆柱体底面积的半径和圆柱体的高高: 5 10第三章简单C程序相关设计小练习l(1)编程,从键盘读入一个数圆的半径radius(实

12、数),输出圆的面积,保留两位小数第三章简单C程序相关设计scanf函数使用注意lscanf(格式字符串,地址列表)在格式字符串中若有普通字符,则输入时在对应位置也必须输入该普通字符,否则会因读入格式错误而终止程序。如果有scanf(“%d,%d”, &a, &b)输入的两个数直接必须有一个逗号3,5 正确3 5 错误如果有scanf(“a=%d,b=%d”, &a, &b)输入应该是:a=3,b=5,否则就会失败scanf的格式字符串中最好不加任何普通字符,只写%开头的格式转换符。如scanf(“%d%d”, &a, &b)不要给自己制造太多格式限制!第三章简单C程序相关设计数学函数的使用要包

13、含头文件: #include1、求绝对值求整数的绝对值,用abs:int i=-3,j;j=abs(i);求实数的绝对值,用fabs:double a=-12.3,b;b=fabs(a);第三章简单C程序相关设计数学函数的使用2、求开方,用sqrtdouble a=2.3,b;b=sqrt(a);3、求幂xy,用powdouble x=2,y=3,z;z=pow(x,y) 4、求ex,用expdouble x=2.3,b;y=exp(x);第三章简单C程序相关设计数学函数的使用5、求自然对数,用logdouble x=13,y;y=log(x);6、求以10为底的对数,用log10double

14、 x=13,y;y=log10(x);第三章简单C程序相关设计数学函数的使用7、三角函数double x=1.5, y;y=sin(x);y=cos(x);y=tan(x);更多数学函数见书本319页表D2第三章简单C程序相关设计例3.5:计算两点间距离l编程: 输入4个实数x1,y1,x2,y2,数据之间用空格隔开。表示两点坐标(x1,y1),(x2,y2),计算并输出两点间的距离。结果保留两位小数。(提示: sqrt(a)可以求a的开方)第三章简单C程序相关设计解题思路(1)用double定义x1,y1,x2,y2,dist(2)读入四个整数x1,y1,x2,y2(3) 计算dist:di

15、st=sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) )也可以写成两个语句:dist=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);dist=sqrt(dist);(4)输出dist,保留2为小数,用%.2f第三章简单C程序相关设计程序l#includel#includelint main()lldouble x1,y1,x2,y2,dist;lscanf(%lf%lf%lf%lf,&x1,&y1,&x2,&y2);ldist=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);ldist=sqrt(dist);lprintf(%.

16、2f,dist);lreturn 0;l第三章简单C程序相关设计例3.6 求整数的位数l输入一个整数,输出该整数的位数。l提示:l(1)求n的对数函数为:log10(n);l(2)考虑一个整数的对数和位数的关系:对数取整加1即该数的位数l(3)可用强制类型转换扔掉小数部分有以上3点可知,整数n的位数是:(int )log10(n)+1; 第三章简单C程序相关设计类型转换(P32)l1、不同级别的操作数运算时,精度低的自动想精度高的转换如: double a=1/2; a的值是0.0 double a=1.0/2; a的值是0.5 2、赋值时类型转换如: double a=1;/会把1.0赋给a

17、 int i=1.5;/会把1.5转换为整型得1,赋给i第三章简单C程序相关设计类型转换l3、 强制类型转换 (类型名)操作数如:double a=2.5; int n; n=(int)a; /将a的值转换为整型2,赋给n又如:求两整数的商,商为实数 int a=2,b=3; double c; c=(double)a/b; /强制类型转换 或 c=1.0*a/b; /不同类型运算时向精度高的转换 先将a转换为实数,再除以b!强制转换优先级最高第三章简单C程序相关设计例3.6的程序#include#includeint main()int n,len;scanf(%d,&n);len=(int

18、)log10(n)+1; /因为len是整型,写成len=log10(n)+1;也行 printf(%d是%d位数n,n,len);return 0;第三章简单C程序相关设计课下作业l熟练默写本章6个例子,并上机调试。第三章简单C程序相关设计上机作业:l1、实数的绝对值:输入一个实数,输出它的绝对值,结果保留两位小数。l2、两点间距离:输入4个实数x1,y1,x2,y2,数据之间用空格隔开。表示两点坐标(x1,y1),(x2,y2),计算并输出两点间的距离。结果保留两位小数。l3、编程,输入三角形的三边长(实数),输出三角形的面积,结果保留两位小数。(提示:用海伦公式)。l4、编程,输入一元二次方程ax2+bx+c=0的系数a,b,c,假定满足b2-4ac0,输出方程的两个根。结果保留两位小数。第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论