重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第3讲 多函数程序设计

上次作业中的问题 数据类型声明(定义)不正确 float a,b,h, s sum? scant语句格式不正确 scanf(%f%f%f", &a, &b, &h: ■输入数据时一定要按照上面的格式输入数据 scanf(%f, %f, %f", &a, &b, &h): 缺少符号或多了符号或者符号写得有错 误
1 上次作业中的问题 ▪ 数据类型声明(定义)不正确 ▪ float a,b,h,s; ▪ sum? ▪ scanf()语句格式不正确 ▪ scanf(“%f%f%f” ,&a,&b,&h); ▪ 输入数据时一定要按照上面的格式输入数据 ▪ scanf(“%f,%f,%f” ,&a,&b,&h); ▪ 缺少符号或多了符号或者符号写得有错 误

第3讲 简单C程序设计之二 多函数程序设计
第3讲 ▪简单C程序设计之二 ▪多函数程序设计

编写求梯形7·若abh分别是12,3,结 # include<stdo.h》 若全部数据类型都是f|oat s=1/2*(a+b)h的结果又会 void maino 怎样? ·s=0.000000 int a.b. h: 因为1/2中的两个常数都是 整数,结果仍是整数,为0, float s, 再继续进行运算,结果仍为 printf( please inp 0。 scanf(od %d 要想得到正确结果,要 s=(a+b)2: s=(fo)1/2(a+b)h(强行 将1转换成 float类型)或 printf"s=%f\n s=1.0/2*(a+b)h因为第 个数据是实数类型,其他 的运算结果一律自动转换成 double类型)
3 编写求梯形面积的程序 #include void main() { int a,b,h; float s; printf(" please input a,b,h: "); scanf("%d%d%d", &a, &b, &h); s= (a+b)*h/2; printf(" s=%f\n", s); } • 若a,b,h分别是1,2,3,结 果会怎样? • s=4.000000 • 为什么? • 因为右边的数据都是整型数, 所以计算结果也是整型了。 • 要想得到正确结果就需要将 所有数据改为float类型。 • 若全部数据类型都是float, s=1/2*(a+b)*h的结果又会 怎样? • s=0.000000 • 因为1/2中的两个常数都是 整数,结果仍是整数,为0, 再继续进行运算,结果仍为 0。 • 要想得到正确结果,要 s=(float)1/2*(a+b)*h(强行 将1转换成float类型)或 s=1.0/2*(a+b)*h(因为第 一个数据是实数类型,其他 的运算结果一律自动转换成 double类型)

涉及到的语法知识 数据类型的自动转换和强制转换 当表达式中的数据类型不一致时 数据类型的自动转换 方向:char+int7t 数据类型 值得注意的是: 不要让这种转换导致计算上的错误 s 呢? 娅值叮1A∠转的问题 to ]: upper=lower -32: int a=4.5
4 涉及到的语法知识 -数据类型的自动转换和强制转换 ▪ 当表达式中的数据类型不一致时 ▪ 数据类型的自动转换 ▪ 方向:char→int→float→double ▪ 数据类型的强制转换 ▪ 在表达式前加(数据类型) ▪ 例:s=(float)1/2*(a+b)*h ▪ s=(float)(1/2)*(a+b)*h的结果呢? ▪ 赋值时也存在类型转换的问题 ▪ 例:upper=lower-32; int a=4.5; 值得注意的是: 不要让这种转换导致计算上的错误!

再例:把从键盘上输入的小 之丹掀成+之社输 源代码如下: include void maino char lower, upper; printf(" please input an lowercase: " scanf(“‰%c”,& klower) uper= :lower-32:/char与int数据间可进行算术 运算 printf(“lwer:%d→ upper:%d\n", lower, upper)
5 再例:把从键盘上输入的小 写字母换成大写字母并输出。 ▪ 如何转换? ▪ 将小写字母的ASCII码减32即得大写字母 的ASCII码。 ▪ 算法: ▪ 输入小写字母lower ▪ 计算其对应的大写字母upper ▪ 输出upper. 源代码如下: #include void main() { char lower,upper; printf(“please input an lowercase:”); scanf(“%c”, &lower); upper=lower-32; /* char与int数据间可进行算术 运算*/ printf(“lower:%c→upper:%c\n", lower,upper); } printf(“lower:%d→upper:%d\n", lower,upper);

三例:求两个整数的商与余数 include void maino inta,b;/定义两个整型变量*/ int quotient, remains:/定义两个变量存放结果*/ printf("please input two integer:") scanf(“%d%d”,&a,&b) quotient=a/b: remains=a‰b:求模运算符*/ printf("%d/%d=%d.yd\n, a, b quotient, remains):/显示运算结果*/
6 三例:求两个整数的商与余数 ▪ 算法: ▪ 输入两个整数a,b ▪ 计算整数的quotient,remains ▪ 输出结果quotient,remains #include void main() { int a,b; /* 定义两个整型变量 */ int quotient,remains; /* 定义两个变量存放结果*/ printf(“please input two integer:”); scanf(“%d%d”, &a,&b); quotient=a/b;remains=a%b; /*求模运算符*/ printf(“%d/%d=%d…%d\n",a,b, quotient,remains); /* 显示运算结果 */ }

数据类型与内存空间 不同的编译器可能有 sIze(3)和sef(30)的结 用 sizeof0求 果又是什么呢? 分别是int和doub|e类型的所 #include maino 占内存的字节数,在Vc上是 4和8, printf( Data type Number of bytes \n") printf( printf("char %d\n", sizeof(char)) printf("int %d\n", sizeof (int)) printf("short int %d\n", sizeof(short)) printf("long int %d\n" sizeof(long ) printf( float %dn", sizeof( float↑) printf( do ouble %d\n",sizeof(double):
7 数据类型与内存空间 ▪ 不同的编译器可能有不同的结果 ▪ 用sizeof()求得,不要靠经验。 #include main() { printf("Data type Number of bytes\n"); printf("------------ ---------------------\n"); printf("char %d\n", sizeof(char)); printf("int %d\n", sizeof(int)); printf("short int %d\n", sizeof(short)); printf("long int %d\n", sizeof(long)); printf("float %d\n", sizeof(float)); printf("double %d\n", sizeof(double)); } • sizeof(3)和sizeof(3.0)的结 果又是什么呢? • 分别是int和double类型的所 占内存的字节数,在VC上是 4和8

涉及到的语法知识 运算符的优先级和结合性 我们学过的运算符有: 0& sizeof*/%+-= 单目运算符双目运算符 优先级:出现多种运算符时谁先运算 0高于& sizeof(,然后是*/%,+-次之,最后是 结合性:出现多个同级运算符时从哪边开始运算 ·一般从左向左【例加。管术坛篁)。也有一些从右向应 还有一些运算符,用到时再讲
8 涉及到的语法知识 -运算符的优先级和结合性 ▪ 我们学过的运算符有: ▪ () & sizeof() * / % + - = 单目运算符 双目运算符 ▪优先级:出现多种运算符时谁先运算 ▪()高于& sizeof(),然后是* / %,+ -次之,最后是= ▪结合性:出现多个同级运算符时从哪边开始运算 ▪一般从左向右(例如:算术运算符),也有一些从右向左 (例如:赋值运算符 a=b=3;)。 还有一些运算符,用到时再讲

复杂的数学计算如何实现? 直接调用C语言的库函数即可。 别忘了加# nclude 请记住几个常用的函数 「函数名 功能 函数名 功能 sqrt(x)计算x的平方根,x应大于等于0exp(x)计算ex的值 fabs(x)|计算x的绝对值 pow(x,Y)计算xY的值 1g(x)计算nx的值 sin(x)|计算snx的值,x为弧度值 10q10(x)计算lox的值 cos(x)计算cosx的值,x为弧度值
9 复杂的数学计算如何实现? ▪ 直接调用C语言的库函数即可。 ▪ 别忘了加#include ▪ 请记住几个常用的函数: 函数名 功 能 函数名 功 能 sqrt(x) 计算x的平方根,x应大于等于0 exp(x) 计算e x的值 fabs(x) 计算x的绝对值 pow(x,y) 计算xy的值 log(x) 计算lnx的值 sin(x) 计算sinx的值,x为弧度值 log10(x) 计算lgx的值 cos(x) 计算cosx的值,x为弧度值

改装以前的程序 问题仍是:计算梯形的面积 将该问题放在一个函数里解决,即编写 个函数s(a,bh) 有几个参数,数据类型是什么? (float a, float b, float h 结果又是什么类型? float s(float a, float b, float h 10
10 改装以前的程序 ▪ 问题仍是:计算梯形的面积 ▪ 将该问题放在一个函数里解决,即编写 一个函数s(a,b,h). ▪ 有几个参数,数据类型是什么? ▪ (float a,float b, float h) ▪ 结果又是什么类型? ▪ float s(float a,float b, float h)
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第2讲 简单C程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第20讲 位运算讲、位段、枚举变量、大型程序开发.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第1讲 简介与hello world.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第18讲 文件.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第17讲 共用体&链表.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第16讲 动态内存分配&结构体.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第15讲 二维数组与指针.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第14讲 二维数组、二维数组做函数参数.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第13讲 指针与一维数组.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)习题7.ppt
- 重庆邮电大学:《C语言程序设计》课程作业讲评-goldbahe猜想.doc
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第11讲 数组与指针.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第10讲 一维数组与字符数组.ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第七章 符号计算.ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第六章 数值计算_matlab8.ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第五章 M文件(主讲:卢丹).ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第四章 数据和函数的可视化.ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第三章 字符串数组、元胞数组和构架数组.ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第二章 数值数组及其运算(2/2).ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第二章 数值数组及其运算(1/2).ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第4讲 作用域和选择结构程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第5讲 多分支和循环.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第6讲 循环和综合程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第7讲 综合程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第8讲 模块化程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第9讲 存储类型 宏定义 数组.ppt
- 重庆邮电大学:《C语言程序设计》课程授课计划一.doc
- 重庆邮电大学:《C语言程序设计》课程授课计划二.doc
- 湖南农业大学:《计算机组成原理教案》第二章 数据格式(蒋邵平).ppt
- 湖南农业大学:《计算机组成原理教案》第六章 总线的基本概念(蒋邵平).ppt
- 湖南农业大学:《计算机组成原理教案》第七章 显示器(蒋邵平).ppt
- 湖南农业大学:《计算机组成原理教案》第三章 存储系统(蒋邵平).ppt
- 湖南农业大学:《计算机组成原理教案》第五章 中央处理器(蒋邵平).ppt
- 湖南农业大学:《计算机组成原理教案》第一章 计算机系统概论(蒋邵平).ppt
- 北京理工大学:《Java导论与Java开发环境》课程教学资源(学生作业)面向对象文档.doc
- 北京理工大学:《Java导论与Java开发环境》课程教学资源(PPT课件讲稿)第一讲 Java导论与Java开发环境(主讲:金旭亮).ppt
- 北京理工大学:《Java导论与Java开发环境》课程教学资源(PPT课件讲稿)第三讲 Java语法基础.ppt
- 北京理工大学:《Java导论与Java开发环境》课程教学资源(PPT课件讲稿)第二讲 Java应用程序与Applet.ppt
- 北京理工大学:《Java导论与Java开发环境》课程教学资源(PPT课件讲稿)Java开发Application.ppt
- 北京理工大学:《Java导论与Java开发环境》课程教学资源(PPT课件讲稿)第七讲 接口与数据结构.ppt