算法-程序的灵魂
- 格式:ppt
- 大小:1.15 MB
- 文档页数:105
c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)max=c;printf(the largest number is %d\n,max);return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c语句573.3.1c语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。
复习一1、程序设计(Program Design)就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程。
()2、算法的有穷性特征是指“执行有限步之后结束,但每一步的执行时间是没有限制的”。
()3、算法是程序设计的“灵魂”。
()4、计算机被称为“电脑”,所以它和人脑解决问题是没有本质区别的。
()5、控件是应用程序的基本元素,与窗体共同构成应用程序的界面。
()6、VB中的“数据”和数学课中的“数据”实际上是一样的。
()7、程序必须做到原则上能精确运行,用纸和笔做有限次运算后即可完成。
()8、创建新工程的方法为:在“新建工程”对话框中选择“ACTIVEX.EXE”,然后单击“打开”按钮。
()9、用“Do......Loop”语句来实现循环结构,循环结构中的“循环体语句块”至少运行一次。
()10、在程序执行的过程中,变量的值可以随时改变,常量的值也可以改变。
()第二题(判断题对的打“√”,错的打“X”):得分:复习二一章一节:了解计算机解决问题的过程1.计算机是人制造的,所以,它和人脑解决问题没有什么区别。
( )答案:错误2.分析问题是用计算机解决问题必需经历的首要步骤。
()答案:正确3.写解题步骤的过程就是分析算法的过程。
()答案:正确4.设计算法就是寻求解决问题的方法,并进行精确描述。
()答案:正确5.编写程序就是把算法用计算机语言描述出来。
()答案:正确6.所有编好的程序经过仔细检查没有发现问题,就是正确的程序。
()答案:错误7.软件测试与维护是软件开发过程的一部分()。
答案:正确8.算法是解决问题的方法和步骤,也就是计算机程序。
()答案:错误一章二节:算法和算法描述9.算法描述可以有多种表达方法,常用的方法有自然语言、流程图和伪代码。
()答案:正确10. 流程图中用菱形框表示判断()。
答案:正确11. 算法的描述只能采用流程图的方式。
答案:错误12.算法应该具有有穷性、确定性、输入与输出、可行性等重要的特征。
学习算法的心得体会学习算法的心得体会在我学习算法的过程中,我深刻体会到了算法对于计算机科学和编程的重要性。
算法是解决问题的有效方法和步骤,是计算机程序的灵魂。
掌握算法不仅可以提高代码的运行效率,还能帮助我更好地解决实际问题。
首先,学习算法让我明白了计算机程序的本质是通过一系列的指令来解决问题。
这些指令的执行过程都需要依赖于算法。
通过学习不同的算法,我了解到不同算法之间的效率和性能是有差异的。
在选择算法时,我会根据具体问题的规模和特点来衡量算法的复杂度和优劣,选择最合适的算法来实现。
其次,学习算法让我对问题的分析和抽象能力得到了提升。
在学习算法的过程中,我需要将实际问题进行抽象,找出问题的核心和关键点。
然后,通过算法的知识和技巧来解决这些问题。
这就要求我具备较强的问题分析和抽象能力,能够将复杂的问题简化成一系列的步骤。
另外,学习算法也让我意识到了编程的思维方式和技巧的重要性。
在学习算法的过程中,我会遇到一些复杂的问题或者需要实现一些复杂的算法。
这就要求我具备较强的逻辑思维和分析能力,能够将问题进行拆解,找出解决问题的关键步骤和思路。
通过不断的练习和实践,我发现自己的编程思维方式和解决问题的技巧得到了很大的提高。
此外,学习算法也让我体会到了团队合作的重要性。
在解决一些复杂的问题或者实现一些复杂的算法时,单凭个人的力量往往是不够的。
需要与团队成员进行协作和合作,共同探讨和解决问题。
通过与团队成员的交流和合作,我发现自己的思维方式得到了拓宽,解决问题的角度也更加全面和深入。
最后,学习算法也培养了我对问题的持续学习和追求的精神。
算法是一个广阔而深入的领域,不断变化和发展。
学习算法不仅仅是为了应付考试或者学习课程,更是培养了我对知识的渴望和追求。
在学习算法的过程中,我发现自己对知识的温饱已经不能满足,需要不断地从书籍和网络上学习新的算法和解决问题的技巧。
总之,学习算法是一件充满挑战但也非常有趣的事情。
通过学习算法,我不仅提高了计算机编程的能力,更提高了自己的问题分析和解决能力。
算法与程序设计知识点汇总第一章计算机解决问题的基本过程一、开始分析问题设计算法编写程序调试、运行程序问题解决二、算法-----程序设计的“灵魂”1、定义:就是解决问题的方法和步骤2、特征:1、确定性:每一步都有确切的含义2、有穷性:执行的步骤和每一步执行的时间都是有限的3、输入:有零个或多个输入4、输出:至少产生一个输出5、可行性:原则上可精确运行3、算法的描述:1、自然语言 2、流程图(P11) 3、伪代码(p12)4、计算机语言三:程序设计语言的发展:机器语言:是能直接被计算机识别的语言,是一串由“0”“1”构成的二进制数汇编语言:符号化语言,比机器语言容易识别和记忆,用汇编语言编制的程序不能被计算机直接执行,必须经过转换处理。
高级语言:更接近于自然语言(英语)和数学语言的编程语言,容易掌握和使用,也不能直接识别,必须经过转换才能被计算机执行。
第二章一、visiual basic 可视化程序开发工具,主要是让程序设计人员利用软件本身所提供的各种控件,像搭积木一样构造应用程序的各种界面,然后再编写少量的代码就可以构建应用程序,提供了程序设计,编辑,调试,运行于一体的集成开发环境。
二、VB6.0的集成开发环境三个工作栏:标题栏菜单栏工具栏六个基本窗口:主窗口(main) 窗体窗口(form) 工具箱窗口(toolbox)工程窗口(project) 属性窗口(properties) 窗体布局窗口(formlayout) 三、属性---用来描述对象的外部特征四、常用控件熟悉常用控件(标签、文本框、命令按钮)的作用,图标及其属性五、数据的表示与处理1、Vb数据类型Double 双精度实型8 Byte -1.797693134E308~4.940656458E3244.940656458E-324~1.797693134E308String 字符串型10 Byte+串长度0~约20亿个字符Boolean 布尔型 2 Byte True或FalseDate 日期型8 Byte 100/1/1~9999/12/312、常量与变量的说明:常量说明:Const a=3.14 const a as single=3.14变量说明: Dim a As integerDim b As integerDim a,b As integer3、运算符(1) 算术运算符(2)字符串运算符&、+ 字符串连接" 123 " + " 456 " 结果 " 123456 "" 123 " & " 456 " 结果 " 123456 "区别: + 两边必须是字符串, & 不一定例如:"abcdef" & 12345 ' 结果为 "abcdef12345 ""abcdef " + 12345 ' 出错"123" & 456 ' 结果为" 123456 "“123” + 456 ' 结果为 579注意:"123 " + True '结果为 122True转换为数值-1,False转换为数值0(3)关系运算符a、将两个操作数进行大小比较,结果为逻辑量。
江苏省高中信息技术《算法与程序设计VB (选修)》知识要点相关知识点(一)算法1. 定义相关题解:1算法:就是解决问题的方法和步骤。
算法是程序设计的“灵魂”,算法+数据结构=程序。
单选题1、 下列关于算法说法不正确的是()A 、 算法独立于任何具体的语言,BASIC 算法只能用BASIC 语言来实现B 、 解决问题的过程就是实现算法的过程C 、 算法是程序设计的“灵魂”2. 算法的描述方法:1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。
2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的 习惯,且容易理解。
3流程图描述:也称程序框图,它是算法的一种图形化表示方法。
且描述算法形象、直观,更 易理解。
4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。
是专业软件开发人 员常用方法。
/ ”在算法流程图描述中表示().' 能 B 输入输出操作C 用来判断条件是否满足需求D 算法的开始或结束 2、图形符号"|"在算法流程图描述中表示().A 处理或运算的功能B 输入输出操作C 用来判断条件是否满足需求D 算法的开始或结束3、 以下哪个是算法的描述方法?( )A 流程图描述法B 枚举法C 顺序法D 列表法4、 以下哪个是算法的描述方法?()A 顺序法B 列表法C 集合法D 自然语言描述法 (二)程序设计基础(1)常用高级编程语言:BASIC 、VB 、Pascal 、C 、C++、Java1面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等 相关题解: 单选题1、图形符号”A 处理或运算的功2控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮对象属性=属性值对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置,方法如下例:给文本框"Txt123”的“Text”属性赋值为字符串“20”,代码如下Txt123.text =”20”变量=对象•属性如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下例:读取文本框“ txt123 ”的“ Text ”属性的代码如下a = txt123.text2方法[对象]•方法[参数名表]例:form.print ”欢迎使用”该语句使用print方法在forml窗体中显示字符串“欢迎使用”3事件及事件驱动事件是对象对外部操作的响应,如在程序执行时,单击命令按钮会产生一个Click事件。
C程序设计(第四版)(谭浩强)第2章课后习题答案算法——程序的灵魂P017 2.1 计算机1-5相乘的积.#include<stdio.h>int main(){int i,s=1; //在执行数值操作前一定要先有个初值.for(i=1;i<6;i++) //这里是到6.{s=s*i; //相乘}printf("The sum is %d .\n",s);return 0;}#include<stdio.h> //作出要求:换成1到11间奇数相乘.int main(){int i,s=1; //在执行数值操作前一定要先有个初值.for(i=1;i<12;i++) //这里是到,但题目要求的是取单数.也可以是i=i+2{if(i%2!=0) //i对取模,值为非为奇数;为则为偶数.s=s*i;elsecontinue; //跳过这个for循环的这一次,执行下一次.}printf("The sum is %d .\n",s);return 0;}暂时没法做.P019 2.3 判断2000-2500年中的闰年,并输出.年的概念是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是365.2423天(目前)。
所以,如果每年定义为365天的话,1年就会多出0.2423天,4年就会多出0.9692天,非常接近1天,这样闰年就出现了,也就是每4年要有1年设置为366天,来抵消这多出的1天。
规则为:·1)如果年份能被4整除,则该年计为闰年;可是,假如不做调整的话,当400年的时候,累计才多出96.92天,接近于多出97天,闰年的设置却多出来100天,所以要在400年内,再撤销3个闰年。
怎么撤销呢?就有了下面这个规则:·2)如果年份能被100整除,则不计为闰年;问题又来了,400年里有4个100年吧,去掉后四个100年后,又少了一个,所以再加一个规则就是:·3)如果年份能被400整除,则计为闰年。