北京交通大学C语言课件上半部分复习题_第1页
北京交通大学C语言课件上半部分复习题_第2页
北京交通大学C语言课件上半部分复习题_第3页
北京交通大学C语言课件上半部分复习题_第4页
北京交通大学C语言课件上半部分复习题_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、“编程能力编程能力”不是听会的、不是听会的、也不是看会的、而是动手动脑也不是看会的、而是动手动脑练会的!练会的!高级语言程序设计高级语言程序设计上半部分复习课上半部分复习课主讲教师:丁丁主讲教师:丁丁计算机与信息技术学院计算机与信息技术学院课程内容课程内容第一章第一章 程序设计和程序设计和C C语言语言第二章第二章 数据对象与计算数据对象与计算第三章第三章 变量、函数和控制结构变量、函数和控制结构第四章第四章 基本程序设计技术基本程序设计技术第五章第五章 C C程序结构(函数)程序结构(函数)第六章第六章 数组数组第七章第七章 指针指针第八章第八章 文件和输入输出文件和输入输出第九章第九章 结

2、构和其它数据机制结构和其它数据机制第十章第十章 程序开发技术程序开发技术第十一章第十一章 标准库标准库程序设计语言和程程序设计语言和程序设计的基本概念序设计的基本概念C C语言的语法规则语言的语法规则及程序设计方法及程序设计方法程序设计的扩程序设计的扩展与提高展与提高2022-3-29高级高级语言程序设计语言程序设计3主要内容主要内容:程序设计和程序设计和C语言语言n1.1 程序和程序语言程序和程序语言q程序和程序语言程序和程序语言q算法及其描述工具算法及其描述工具n1.2 程序设计方法程序设计方法n1.3 问题与程序设计问题与程序设计2022-3-29高级高级语言程序设计语言程序设计4202

3、2-3-29高级高级语言程序设计语言程序设计5主要内容:主要内容:数据对象与计算数据对象与计算n2.1 程序的基本结构程序的基本结构 n2.2 基本概念基本概念n2.3 数据与类型数据与类型 n2.4 基本类型与数据表示基本类型与数据表示n2.5 数据的输入与输出数据的输入与输出n2.6 运算符、表达式与计算运算符、表达式与计算 n2.7 数学函数库及其使用数学函数库及其使用2022-3-29高级高级语言程序设计语言程序设计6主要内容:主要内容:程序设计的基本知识程序设计的基本知识n3.1 语句、复合语句语句、复合语句 n3.2 变量变量概念、定义和使用概念、定义和使用n3.3 定义函数(初步

4、,第五章深入)定义函数(初步,第五章深入) n3.4 关系表达式、逻辑表达式、条件表达式关系表达式、逻辑表达式、条件表达式n3.5 语句和控制结构语句和控制结构n3.6 常见结构和问题常见结构和问题2022-3-29高级高级语言程序设计语言程序设计7主要内容:主要内容:基本程序设计技术基本程序设计技术n4.1 循环程序设计循环程序设计 n4.2 循环中的问题循环中的问题n4.3 循环与递归循环与递归 n4.4 基本输入输出基本输入输出n4.5 程序设计实例程序设计实例n4.6 程序测试和排错程序测试和排错重点重点n控制结构控制结构q顺序、选择、循环结构顺序、选择、循环结构n函数函数q定义、声明

5、及调用定义、声明及调用n从问题到程序的编程思想从问题到程序的编程思想q程序的函数分解程序的函数分解q模块化程序设计模块化程序设计n基本的程序调试技能基本的程序调试技能q静态调试、动态调试静态调试、动态调试q黑箱测试、白箱测试黑箱测试、白箱测试2022-3-29高级高级语言程序设计语言程序设计8难点难点n循环循环n递归递归n基本输入、输出语句基本输入、输出语句2022-3-29高级高级语言程序设计语言程序设计9程序数据结构算法程序数据结构算法n程序程序q程序规定了计算机执行的动作和动作的顺序。程序规定了计算机执行的动作和动作的顺序。n算法:算法:q解决问题的方法和步骤解决问题的方法和步骤n算法的

6、几个特性算法的几个特性q有穷性有穷性q确定性确定性无二义无二义q可执行性可执行性q有有0个或多个输入个或多个输入q有有0个或多个输出个或多个输出从问题到程序的程序设计思想从问题到程序的程序设计思想也体现了算法的重要性也体现了算法的重要性2022-3-29高级高级语言程序设计语言程序设计10要点要点1:运算符及表达式?:运算符及表达式?n已经学习哪几种运算符及表达式?优先级关系?已经学习哪几种运算符及表达式?优先级关系?q自增、自减运算符自增、自减运算符q算术运算符算术运算符q关系运算符关系运算符q逻辑运算符逻辑运算符q条件运算符条件运算符q赋值运算符赋值运算符q逗号运算符逗号运算符2022-3

7、-29高级高级语言程序设计语言程序设计11运算符运算符解释解释同级结合方式同级结合方式算术运算算术运算()括号括号由左向右由左向右逻辑运算逻辑运算算术运算算术运算! + - -+ - (类型类型) sizeof逻辑非,增减量逻辑非,增减量一元正负一元正负强制类型转换强制类型转换由右向左由右向左* / %乘,除,取模乘,除,取模由左向右由左向右+ -二元加减二元加减由左向右由左向右关系运算关系运算 = 逻辑与逻辑与由左向右由左向右= !=逻辑或逻辑或由左向右由左向右逻辑运算逻辑运算&由左向右由左向右|由左向右由左向右条件运算条件运算?:?:由左向右由左向右赋值运算赋值运算= += -+*

8、= /= %=各种赋值各种赋值由右向左由右向左逗号运算逗号运算,逗号(顺序)逗号(顺序)由左向右由左向右2022-3-29高级高级语言程序设计语言程序设计12要点要点2:C语言的基本数据类型语言的基本数据类型nC语言的基本数据类型有哪些?语言的基本数据类型有哪些?n什么是常量?如何定义?什么是常量?如何定义?n什么是变量?如何定义?什么是变量?如何定义?n变量的存贮类型有哪几种?变量的存贮类型有哪几种?qauto, register, static, externn变量从作用域的角度分哪几种?变量从作用域的角度分哪几种?q全局变量、局部变量全局变量、局部变量2022-3-29高级高级语言程序设

9、计语言程序设计132022-3-29高级高级语言程序设计语言程序设计14类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int32- 21474836482147483647(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned short0655353204294967295unsigned longunsigned int3204294967295有float3.4e-383.4e38有double1.7e-3081.7e308有char8-128127无unsigned char8

10、0255基本数据类型基本数据类型3264说明:数据类型所占字节数编译器不同而不同说明:数据类型所占字节数编译器不同而不同2022-3-29高级高级语言程序设计语言程序设计15 整型整型int整型整型short int短整型短整型long int长整型长整型 实型(实型(浮点型)浮点型)float 单精度浮点型单精度浮点型double双精度浮点型双精度浮点型 字符型字符型char字符型字符型常用数据类型常用数据类型要点要点3:条件:条件if语句语句n条件条件if语句有几种形式?语句有几种形式?qif语句语句qif-else语句语句qif-else if语句语句nif else的配对原则是什么?的

11、配对原则是什么?nIf else和和switch开关语句的差别?开关语句的差别?2022-3-29高级高级语言程序设计语言程序设计16要点要点4:循环语句:循环语句n循环语句有几种形式?循环语句有几种形式?qwhile语句语句qdo-while语句语句qfor语句语句n循环结构的三要素是什么?循环结构的三要素是什么?n如何从循环中跳出?如何从循环中跳出?2022-3-29高级高级语言程序设计语言程序设计17要点要点5:函数:函数n如何定义函数?如何定义函数?n函数声明的意义及原则?函数声明的意义及原则?n如何调用函数?如何调用函数?n参数传递和函数返回值过程中类型不匹配时的参数传递和函数返回值

12、过程中类型不匹配时的转换原则?转换原则?n如何理解值参数?如何理解值参数?2022-3-29高级高级语言程序设计语言程序设计182022-3-29高级高级语言程序设计语言程序设计19q特点:特点:“单单向向”传递传递void swap(int a, int b) int temp; temp = a; a = b; b = temp;int main() int x,y; scanf(%d,%d, &x, &y); swap(x, y); printf(n%d,%dn, x, y); return 0;例例 两数交换两数交换.20002008200A2002200420065变

13、量x 变量y(main)9 变量temp 变量b 变量a(swap)559 59COPY难点:函数的参数传递方式之难点:函数的参数传递方式之值值传递传递运行结果:运行结果:5, 9值传递要点要点6:基本输入输出语句:基本输入输出语句ngetchar()nputchar()nscanf()nprintf()n数的批量输入输出:基本输入输出循环结构数的批量输入输出:基本输入输出循环结构2022-3-29高级高级语言程序设计语言程序设计20第一章习题讲解第一章习题讲解1.用用N-S结构图描述从十个数中选择最大数的结构图描述从十个数中选择最大数的算法。算法。输入第一个数输入第一个数a1,i=1;MAX

14、=a1 ; iai2. 给出求从给出求从1-100之间能被之间能被6整除的所有整数的整除的所有整数的和的算法。和的算法。 i=1;sum=0; i=100 i%6=0sum=sum+i i=i+1 输出输出sum第二章习题讲解第二章习题讲解1. (课后第课后第1题题)指出下面的哪些字符序列不是指出下面的哪些字符序列不是合法的标识符:合法的标识符:_abc x+- 3x1 Xf_1_4 Eoof_a$#24 x_x_2 bg-1_I am2022-3-29高级高级语言程序设计语言程序设计252022-3-29高级高级语言程序设计语言程序设计26标识符标识符 程序中的名字(描述对象)称为程序中的名

15、字(描述对象)称为标识符标识符如变量名(如变量名(s,a,b,c)、)、 函数名(函数名(add, main)等;)等; 标识符分标识符分用户定义的标识符用户定义的标识符和和系统预定义的标识符系统预定义的标识符用户定义的如用户定义的如s,a,b,c;系统定义的如标准函数名系统定义的如标准函数名printf,用户不得使用;,用户不得使用; 标识符标识符对字母大小写敏感对字母大小写敏感:a和和A是不同字母;是不同字母;ABC、Abc、AbC和和abc是是4个不同标识符个不同标识符 形式形式:字母或数字组成的连续序列,字母(下划线:字母或数字组成的连续序列,字母(下划线“_”看看作字母)开头(即以字

16、母开头,后跟字母或数字)。作字母)开头(即以字母开头,后跟字母或数字)。标识符命名基本原则标识符命名基本原则2022-3-29高级高级语言程序设计语言程序设计271)标识符一般标识符一般需要反映其用途需要反映其用途,如:,如:int sum;2)如果标识符名由多个单词构成,通常采用如果标识符名由多个单词构成,通常采用“大小写大小写”混排混排的方式的方式(Windows应用程序),每个单词的首字符可大写;应用程序),每个单词的首字符可大写; 如:如: TotalFiles,AddChild。3)变量名通常使用变量名通常使用“名词名词”或者或者“形容词名词形容词名词” 函数名通常使用函数名通常使用

17、“动词动词”或者或者“动词名词动词名词” 4)标识符的标识符的长度应当适当长度应当适当。ANSI C规定名字不准超过规定名字不准超过6个字个字符,符,C+/C不再有此限制,但不宜过长。不再有此限制,但不宜过长。 5)通常将通常将以下划线开始的标识符保留给系统用以下划线开始的标识符保留给系统用, 用户不使用。用户不使用。6)Unix(Linux)应用程序的标识符通常采用应用程序的标识符通常采用“小写加下划小写加下划线线”的方式,如的方式,如add_child。2. (课后第课后第2题题)手工计算下列表达式的值。手工计算下列表达式的值。n1) 125 + 0125n2)0XAF 0XFAn3)24

18、 * 3 / 5 + 6n4)36 + -(5 23) / 4n5)35 * 012 + 27 / 4 / 7 * (12 - 4)210-7520403502022-3-29高级高级语言程序设计语言程序设计28八进制八进制十六进制十六进制八进制八进制十六进制十六进制3.(课后第课后第3题题)在下列表达式的计算过程中,在哪些在下列表达式的计算过程中,在哪些地方将发生类型转换,各是从什么类型转换到什么地方将发生类型转换,各是从什么类型转换到什么类型,表达式计算的结果是什么?类型,表达式计算的结果是什么?n1) 3 * (2L + 4.5f) 012 + 44n2) 3* (int)sqrt(34

19、) sin(6) * 5 + 0 x2AFn3) cos(2.5f + 4) 6 * 27L + 1526 2.4L2022-3-29高级高级语言程序设计语言程序设计29long to floatint to floatint to floatint to float53.500000703.3970771362.5765882022-3-29高级高级语言程序设计语言程序设计30自动类型转换的原则自动类型转换的原则int char, short 高高低低longunsigneddouble float转换由编译系统自动完成。转换由编译系统自动完成。转换按数据长度增加的方向转换按数据长度增加的方

20、向进行,即按进行,即按“向高看齐向高看齐”的的原则提升原则提升“较低较低”类型,以类型,以保证不降低精度。保证不降低精度。n把表示范围小的类型的值转换为表示范围大的类把表示范围小的类型的值转换为表示范围大的类型的值,从低到高转型的值,从低到高转4. 输入并调试程序,观察运行结果输入并调试程序,观察运行结果.#include int main() double f1=1.0e+10; double f2=3.14; printf(%f:%fn,f1); printf(%e:%en,f1); printf(%g:%gn,f1); printf(%f:%fn,f2); printf(%e:%en,f

21、2); printf(%g:%gn,f2); return 0;%f:10000000000.000000%e:1.000000e+10%g:1e+10%f:3.140000%e:3.140000e+00%g:3.142022-3-29高级高级语言程序设计语言程序设计31按带小数点形式转换输出按带小数点形式转换输出按科学表示形式转换输出按科学表示形式转换输出按带小数点形式或者科学按带小数点形式或者科学表示形式转换输出表示形式转换输出d,ix,Xoucse,Efg%十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本

22、身int a=567;printf ( “%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%说明:说

23、明:格式字符一般用小写格式字符一般用小写格式字符与输出项个数应相同,按先后顺序一一对应格式字符与输出项个数应相同,按先后顺序一一对应输出转换输出转换:格式字符与输出项类型不一致,自动按指定格式输出格式字符与输出项类型不一致,自动按指定格式输出格式字符表格格式字符表格.n对实数,指定小数点后位数(四舍五入)修饰符功 能m输出数据域宽,长度0)printf(“x1=%f,x2=%fn”,0.5*(sqrt(delta)-b)/a, 0.5*(-sqrt(delta)-b)/a); else if (delta=0)printf(“x1=x2=%fn”,-0.5*b/a); else printf(

24、“x1=%f+%fi,x2=%f-%fin”,-0.5*b/a,0.5*sqrt(-delta)/a,-0.5*b/a,0.5*sqrt(-delta)/a); return 0;6. 输入三角形的三边,用下述公式计算三角输入三角形的三边,用下述公式计算三角形的面积:形的面积: ,其中,其中 s=(a+b+c)/22022-3-29高级高级语言程序设计语言程序设计35#include #include int main( ) double a, b, c, s, area; printf(Please input a,b and c: n); scanf(%lf,%lf,%lf,&a,

25、&b,&c); s = (a + b + c) / 2.0; area = sqrt(s * (s - a) * (s - b) * (s - c); printf(a=%7.2f, b=%7.2f, c=%7.2f , s=%7.2f n, a, b, c, s); printf(area=%7.2fn, area); return 0;s(s-a)(s-b)(s-c)选做题:选做题:计算银行存计算银行存款的本息。输入存款款的本息。输入存款金额金额money、存期、存期year和年利率和年利率rate,根,根据公式计算存款到期据公式计算存款到期时的本息合计时的本息合计sum(

26、税税前),输出时保留小前),输出时保留小数点后两位。数点后两位。2022-3-29高级高级语言程序设计语言程序设计36#include #include int main() int year; double money,rate,sum; printf(“please input the money:n”); scanf(“%lf”,&money); printf(“please input the year:n”); scanf(“%d”,&year); printf(“please input the rate:n”); scanf(“%lf”,&rate); s

27、um=money*pow(1+rate),year); printf(“sum=%.2fn”,sum); return 0;(1)yearsummoneyrate37上机问题汇总上机问题汇总nprintf(“%f”,1065/(24*13);qC语言不做类型检查语言不做类型检查q格式字符与输出项类型不一致格式字符与输出项类型不一致,自动按指定格式输出自动按指定格式输出n第第7题:计算题:计算5x2+2x+6的两个根。的两个根。q输出它的两个虚根输出它的两个虚根n注意注意qC语言中确实会发生自动类型转换,但在写程序时,尽量语言中确实会发生自动类型转换,但在写程序时,尽量使得一个表达式中的数据的类

28、型保持一致。使得一个表达式中的数据的类型保持一致。q节省不必要的空间损失。节省不必要的空间损失。q防止不同类型转换时的信息丢失。防止不同类型转换时的信息丢失。第三章习题讲解第三章习题讲解n2.设设a=1,b=2,c=3,则,则u的值为:的值为:qu=a?b:c; qu=(a=2)?b+a:c+a;n3.设设a=1,b=2,c=0,则下列表达式的值为:,则下列表达式的值为:qa & ! (b | c) & !a)q! (a & b) | c? a | b : a & b & cq! (a+bc) & b max) max = y;if (z max

29、) max = z;return max;2022-3-29高级高级语言程序设计语言程序设计4110.四边形的边长为四边形的边长为a,b,c,d及一对对角之和及一对对角之和angel,求四边形的面积。,求四边形的面积。double QuaArea(double a, double b, double c, double d, double e)double s = (a+b+c+d)/2.;double area;area = sqrt(s-a)*(s-b)*(s-c)*(s-d)- a*b*c*d*cos(e)*cos(e);return area;有问题吗?有问题吗?2022-3-29高级

30、高级语言程序设计语言程序设计4212.写程序求任意二次方程的根写程序求任意二次方程的根。void root(double a, double b, double c) double d = b*b - 4*a*c; if (a=0) if ( b!=0 ) printf(Only one root:x=%fn,-c/b); else if (c=0) printf( Any roots! ); else printf(No root !); else if (d 0.) printf(“Two different real roots:);else if (d = 0.)printf(Two

31、same real roots: x1=x2=%fn, -b/2./a);elseprintf(Two different complex roots:); 2022-3-29高级高级语言程序设计语言程序设计4322.写一个程序打印写一个程序打印1至至100之间的被之间的被6或或7整除整除的数;修改这个程序使得它只打出被的数;修改这个程序使得它只打出被6或或7之之一整除的数一整除的数(不包括同时被两者整除的数不包括同时被两者整除的数)。int main ()int i = 0;while (i = 100)if (i % 6 = 0 & i % 7 != 0) | (i % 6 !=

32、0 & i % 7 = 0)printf(%dn, i);return 0;2022-3-29高级高级语言程序设计语言程序设计44补充题补充题1. 求分段函数求分段函数#include #include #define a 10 double func(double ); int main()double x;printf(Please input a number:n);scanf(%lf,&x);printf(y=%fn,func(x);return 0;0, (), xaxaysqrt a axxaxaxxaxa 或或double func(double x)double

33、 y;if (x=a)|(x=-a) y=0.0;else if (fabs(x)a) y=sqrt(a*a-x*x); else y=x;return y;2022-3-29高级高级语言程序设计语言程序设计452022-3-29高级高级语言程序设计语言程序设计46#includeint GradeIf(int);int GradeSwitch(int);int main()int n; printf(Input the mark from 0 to 99 n);while (scanf(%d, &n)=1)/ GradeIf(n); GradeSwitch(n);return 0;补

34、充题补充题2. 从键从键盘输入学生的盘输入学生的考试成绩,利考试成绩,利用计算机将学用计算机将学生的成绩划分生的成绩划分等级并输。等级并输。9099为为A级,级,8089为为B级,级,7079为为C级,级,6069为为D级,级,059为为E级。级。2022-3-29高级高级语言程序设计语言程序设计47int GradeIf(int n)if(n99 | n=90)printf(The grade is A!n);else if(n=80)printf(The grade is B!n);else if(n=70)printf(The grade is C!n);else if(n=60)pri

35、ntf(The grade is D!n);elseprintf(The grade is E!n);return 0;2022-3-29高级高级语言程序设计语言程序设计48int GradeSwitch(int n)if(n99 | n0)n=-1;elsen=n/10;switch (n)case -1: printf(Input error!n);break; case 9:printf(The grade is A!n);break;case 8:printf(The grade is B!n);break;case 7:printf(The grade is C!n);break;c

36、ase 6:printf(The grade is D!n);break;default:printf(The grade is E!n);return 0;2022-3-29高级高级语言程序设计语言程序设计49补充题补充题3. 求水仙花数求水仙花数void method1(void)int i,j,k;for (i=1;i=9;i+)for (j=0;j=10;j+)for(k=0;k=10;k+)if(i*100+j*10+k=i*i*i+j*j*j+k*k*k)printf(%d是水仙花数是水仙花数n,i*100+j*10+k);void method2(void)int i,m,n,l

37、;for (i=100;i=999;i+)m = i/100;n = i/10%10;l = i%10;if(i=m*m*m+n*n*n+l*l*l)printf(%d是水仙花数是水仙花数n,i);补充题补充题4. 完数游戏。完数游戏。如果一个数恰好等于它的所有如果一个数恰好等于它的所有因子(包括因子(包括1但不包括自身)之和,则称之为但不包括自身)之和,则称之为“完数完数”。算法思想:算法思想:sum=0, m=2当当m=1000时,反复执行时,反复执行(2.1), (2.2), (2.3), (2.4), 否则转否则转(3) (2.1) k=m/2, n=0, j=1 (2.2) 当当j=

38、k时,反复执行时,反复执行(2.2.1), (2.2.2), 否则转否则转(2.3) (2.2.1) if(j是是m的因子的因子) 执行执行n=n+j (2.2.2) j+ (2.3) if (m等于等于n) 则输出则输出 完数完数 m ,计算,计算sum=sum+m (2.4) m+1. 输出输出sum值值2022-3-29高级高级语言程序设计语言程序设计50int main()int i,j,sum,n; sum=0; for(i=2;i=1000;i+) n=0; for(j=1;j=i/2;j+) if(i%j=0) n=n+j; if(n=i) sum+=i; printf(完数完数

39、%dn,i); printf(1000之内完数和值之内完数和值=%dn,sum); return 0;2022-3-29高级高级语言程序设计语言程序设计512022-3-29高级高级语言程序设计语言程序设计52补充题补充题5. 打印如下图案打印如下图案#define n 4int main() int i,j,k; for(i=0;i=n;i+) for(j=0;jn-i;j+)printf( );for(k=0;k=0;i-) for(j=0;j=n-i;j+)printf( );for(k=0;k=6) t=(a/2+1);for(n=2;nt;n+) if(prime(n)=1&

40、prime(a-n)=1) printf(%ld=%ld+%ldn,a,n,a-n);break; return 0;long prime(long m) long i; if(i=1) return 0; for(i=2;i*i=m;i+)if(m%i=0) return 0; return 1;2022-3-29高级高级语言程序设计语言程序设计532022-3-29高级高级语言程序设计语言程序设计54n给一个不多于给一个不多于3位的正整数,要位的正整数,要q求出它是几位数;求出它是几位数;q分别输出每一位数字分别输出每一位数字q按新逆序输出各位数字,例如原数为按新逆序输出各位数字,例如原数

41、为321,应输出,应输出123算法思想:算法思想:n设设a是整数变量;是整数变量;n如果如果a999则输入错误则输入错误n如果如果a=0并且并且a=10并且并且a=100并且并且a1000则输出则输出a是百位数是百位数q个位数是个位数是a%10q十位数是十位数是a/10%10q百位数是百位数是a/100#include /程序分析程序分析int main () int x, a, b, c, d; scanf(%d, &x);if (x/100 = 10 | x 0) a = x / 100; b = x / 10 % 10; c = x - a * 100 - b * 10; d =

42、 c * 100 + b * 10 + a; printf(three,%d,%d,%d,%dn, a, b, c, d);/*百位数,十位数,个位数,逆序百位数,十位数,个位数,逆序*/ else if (x/10 0) a = x / 10; b = x % 10; d = b * 10 + a; printf(two,%d,%d,%dn, a, b, d); /*十位数,个位数,逆序十位数,个位数,逆序*/ else a = x; printf(one,%d,%dn, a, a); /*个位数,逆序个位数,逆序*/return 0;第四章习题讲解第四章习题讲解4.写函数计算写函数计算1!

43、+2!+k!long SumFactor(int n)int i = 1;long f = 1, sum = 0;while (i = n)f = f * i;sum = sum + f;i+;return sum;2022-3-29高级高级语言程序设计语言程序设计572022-3-29高级高级语言程序设计语言程序设计589.用公式编程求圆周率的近似值用公式编程求圆周率的近似值#include #define PI 3.14159165int main()int fi=1;double sum=0.0;double pi,term=1.0;double n;printf(please inpu

44、t the difference:n);scanf(%lf,&n);dosum=sum+term;pi=sqrt(6*sum);fi=fi+1;term=1.0/fi/fi; while(fabs(pi-PI)=n); printf(sum=%f,pi=%f,term=%dn,sum,pi,fi); return 0;12.求利用公式反正弦函数的近似值求利用公式反正弦函数的近似值double asinh (double x) int i, n=10, sign=-1;double term, sum;term=x;sum=x;for(i=1;i=n;i+) term=term*x*x*

45、(2*i-1)/(2*i); sum+=sign*term/(2*i+1)*(2*i-1); sign=-sign;return sum;2022-3-29高级高级语言程序设计语言程序设计592022-3-29高级高级语言程序设计语言程序设计6014.辗转相减求最大公约数辗转相减求最大公约数int gcd(int m,int n)if (mn)return gcd(n,m);else if (m=n)return m;else return gcd(m-n,n);int gcd1(int m, int n) int r,t; if (m n) t=m;m=n;n=t; if (n = 0) r

46、eturn m; for (r = m-n; r != 0; r = m-n) m = n; n = r; if (m n) max1 = m;max2 = n;else max1 = n;max2 = m;while (scanf(%d, &n) = 1)if (max1 n) max2 = max1; max1 = n;else if (max2 n) max2 = n;printf(nmax1=%d,max2=%dn, max1, max2);return 0;21.求折线段的面积求折线段的面积double FigureArea(void)double y1, y2, area

47、= 0.0;printf(Please input a series positive float number.n);if (scanf(%lf, &y2) != 1) return 0;while (scanf(%lf, &y1) = 1) area += (y1+y2)/2.0;y2 = y1; return area;2022-3-29高级高级语言程序设计语言程序设计62补充题补充题1. 有一分数序列有一分数序列 2/1,3/2,5/3,8/5,13/8, 21/13求这个数列前求这个数列前20项之和。(项之和。(32.660261) n第一项的分子为第一项的分子为2,

48、分母为,分母为1n其它项分子分母之间的关系:其它项分子分母之间的关系:n下一项的分母是前一项的分子;下一项的分母是前一项的分子;n下一项的分子是前一项的分子下一项的分子是前一项的分子+分母;分母;2022-3-29高级高级语言程序设计语言程序设计63#include int main() double sum=0.0;int i; int a1=2,a2=1,tmp; for(i=1;i=20;i+) sum=sum+a1/(double)a2; tmp=a1; a1=a1+a2; a2=tmp; printf(sum=%lfn,sum); return 0;2022-3-29高级高级语言程序设计语言程序设计64补充题补充题2. 猴子吃桃问题。猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃前一吃掉一半,又

温馨提示

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

评论

0/150

提交评论