ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:99.08KB ,
资源ID:7878319      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7878319.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C程序设计谭浩强习题与答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C程序设计谭浩强习题与答案.docx

1、C程序设计谭浩强习题与答案 Document number:WTT-LKK-GBB-08921-EIGG-22986C程序设计谭浩强习题与答案精编习题2.1什么是算法是从日常生活中找三个例子,描述他们的算法答:对操作的描述,即操作步骤,就是算法。广义的说;为解决一个问题而采取的方法和步骤,就称为“算法”。例:(略)2.2什么叫结构化的算法为什么要提倡结构化的算法答:由基本节构所构成的算法属于“结构化”的算法。 结构化的算法便于编写、阅读、便于修改和维护。这就减少了程序出错的机会、提高了程序的可靠性,保证了程序的质量。2.3试述三种基本结构的特点,你能否自己另外设计两种基本结构(要符合基本结构的

2、特点)。答:基本结构有以下共同点: 1:只有一个入口。图2-中的a点为入口。 2:只有一个出口。图2-中的b点为出口。注意,一个判断框有两个出口,但一个选择结构只有一个出口。不能混淆。 3:结构内的每一部分都有被执行到的机会。也就是说,对每一个框来说,都应当有一条到出口的路径通过它。图2-20中就没有一条从入口到出口的路径通过A框。 4:结构内不存在死循环(无终止的循环)。图2-21就是一个死循环。 需要说明的是基本结构并不一定只限于以上3中,只要有以上四种特点就可以。人们可以自己定义之。例 : 如下两图2.4用传统流程图表示求解一下问题的算法。(1)有两个瓶子A和B,分别放醋和酱油,要求将他

3、们互换。#includevoid main()int a;int b;int c;a=10;b=5;printf(%d,%dn,a,b);c=a;a=b;b=c;printf(%d,%dn,a,b);(2)一次将10个数输入,要求将将其中最大的数输出。#includevoid main()int a10;int i;int max;printf(input 10 numbers.n);for(i=0;i10;i+) scanf(%d,&ai); printf(n);max=a0;for(i=1;i10;i+) if(maxai) max=ai;printf(the max is: %dn,ma

4、x) ; (3)有3个数a b c,要求安大小顺序把他们输出。#includevoid main()int a;int b;int c;int t;scanf(%d%d%d,&a,&b,&c);printf(n);printf(the first numbers:);printf(%d,%d,%dn,a,b,c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(the changed numbers:);printf(%d,%d,%dn,a,b,c);(4)求1+2+3+100。#includevoid main()in

5、t i;int sum=0;for(i=1;i=100;i+)sum=sum+i;printf(the sum is:%dn,sum);(5)判断一个数n能否同时被3和5整除。#includevoid main()int i;printf(input in);scanf(%d,&i);if(i%3=0 & i%5=0)printf(%d is ok!n,i);elseprintf(%d can not!n,i);(6)将100200之间的素数输出。#includevoid main()int i,j;for(i=100;i=200;i+)for(j=2;ji;j+)if(i%j=0) brea

6、k;if(i=j+1) printf(%dn,i);(7)求两个数m和n的最大公约数。#includevoid main()int m,n;int t;int i;int z=1;scanf(%d%d,&m,&n);if(mn) t=m;m=n;n=t;for(i=2;i=m;i+)if(m%i=0 & n%i=0) z=i;printf(the answer is:%dn,z);(8)求方程式的根。分别考虑:有两个不等的实根;有两个相等的实根。#include#includevoid main()float a,b,c;float dt;float m,n;float x1,x2;print

7、f(input a,b,c!n);scanf(a=%f,b=%f,c=%f,&a,&b,&c);dt=sqrt(b*b-4*a*c);m=-b/(2*a);n=dt/(2*a);if(dt1e-6)x1=m+n;x2=m-n;printf(the equation has distinct real roots:x1=%f, x2=%fn,x1,x2);再次说明一下由于我们考虑了实数在内,而实数在计算和存储时有细小误差,所以dt=0用 dt=1e-6表示。即10的-6次方。 2.5用N-S图表示题中各题的算法。2.6用伪代码表示题中各题的算法。(1)输出年中是闰年的年份,符合下面俩个条件之一的

8、年份是闰年。(一)能被4整除但不能被100整除 (二)能被100整除且能被400整除。#includevoid main()int i;for(i=1900;i=2000;i+) if(i%4=0 & i%100) printf(%dn,i);else if(i%400=0) printf(%dn,i);2.7什么叫结构化程序设计他的主要内容是什么答:结构化程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。它用基本结构(一般认为是3种:顺序、选择和循环)为基本思想设计的程序。这种程序便于编写、便于阅读、便于修改和维护。这就减少了程序出错的机会,提高了程序的可靠性,保证了程序的质量

9、。 它的主要内容为:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。 具体说:采用以下方法来保证得到结构化的程序:(1)自顶向下(2)逐步细化(3)模块化设计 (4)结构化编码。 拓展:结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,用很随意的流程线来描述转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。2.8用自顶向下、逐步细化的方法进行以下算法的设计:(1)输出1900-2

10、000年中是闰年的年份,符合下面两个条件之一的年份是闰年。能被4整除但不能被100整除;能被100整除切能被400整除。#includevoid main()int i;for(i=1900;i=2000;i+) if(i%4=0 & i%100) printf(%dn,i);else if(i%400=0) printf(%dn,i);(2)求的根。分别考虑D=大于0、等于0、小于0这3种情况。#include#includevoid main()float a,b,c;float dt;float m,n;float x1,x2;printf(input a,b,c!n);scanf(a=

11、%f,b=%f,c=%f,&a,&b,&c);dt=b*b-4*a*c;if(fabs(dt)1e-6)x1=(-b+sqrt(dt)/(2*a);x2=(-b-sqrt(dt)/(2*a);printf(the equation has distinct real roots:x1=%f, x2=%fn,x1,x2);else m=(-b)/(2*a);n=sqrt(-dt)/(2*a);printf(the equation has complex real roots:nx1=%f+%fin,m,n);printf(x2=%f-%fin,m,n);(3)输入10个数,输出其中最大的一个数。#includevoid main()int a10;int i;int max;printf(input the 10 numbers:n);for(i=0;i=9;i+) scanf(%d,&ai);max=a0;for(i=1;imax) max=ai;printf(the largest number is:%dn,max);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1