C程序设计谭浩强习题与答案_第1页
C程序设计谭浩强习题与答案_第2页
C程序设计谭浩强习题与答案_第3页
C程序设计谭浩强习题与答案_第4页
C程序设计谭浩强习题与答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

与答案精编2.1什么是算法是从日常生活中找三个例子,描述他们的算法答:对操作的描述,即操作步骤,就是算法。广义的说;为解决一个问题而采取的方法和步骤,就称为例:(略)2.2什么叫结构化的算法为什么要提倡结构化的算法答:由基本节构所构成的算法属于“结构化”的算法。结构化的算法便于编写、阅读、便于修改和维护。这就减少了程序出错的机会、提高了程序的可靠性,保证了程序2.3试述三种基本结构的特点,你能否自己另外设计两种基本结构(要符合基本结构的特点)。答:基本结构有以下共断框有两个出口,但一个选择结构只有一个出口。不能混3:结构内的每一部分都有被执行到的机会。也就是说,对每一个框来说,都应当有一条到出口的路径通过它。图4:结构内不存在死循环(无终止的循环)。图2-21就是需要说明的是基本结构并不一定只限于以上3中,只要有点就可以。人们可以自己定义之。例:如下两图2.4用传统流程图表示求解一下问题的算法。#include<>voidmain(){inta;intb;intc;a=10;b=5;printf("%d,%d\n",a,b);c=a;a=b;b=c;printf("%d,%d\n",a,b);}#include<>voidmain(){inta[10];inti;intmax;printf("input10numbers.\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");max=a[0];for(i=1;i<10;i++)if(max<a[i])max=a[i];printf("themaxis:%d\n",max);}#include<>voidmain(){inta;intb;intc;intt;scanf("%d%d%d",&a,&b,&c);printf("\n");printf("thefirstnumbers:");printf("%d,%d,%d\n",a,b,c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;}printf("thechangednumbers:");printf("%d,%d,%d\n",a,b,c);}#include<>voidmain(){inti;intsum=0;for(i=1;i<=100;i++)sum=sum+i;printf("thesumis:%d\n",sum);}#include<>voidmain(){inti;printf("inputi\n");scanf("%d",&i);if(i%3==0&&i%5==0)printf("%disok!\n",i);elseprintf("%dcannot!\n",i);}#include<>voidmain(){inti,j;for(i=100;i<=200;i++)for(j=2;j<i;j++){if(i%j==0)break;if(i==j+1)printf("%d\n",i);}}#include<>voidmain(){intm,n;intt;inti;intz=1;scanf("%d%d",&m,&n);if(m>n){t=m;m=n;n=t;}for(i=2;i<=m;i++){if(m%i==0&&n%i==0)z=i;}printf("theansweris:%d\n",z);}(8)求方程式ax2+bx+c=0的根。分别考虑:①有两个不等的实根;②有两个相等的实根。#include<>#include<>voidmain()oatatoatoata,b,c;m,n;x1,x2;printf("inputa,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(dt<=1e-6){x1=m;x2=m;printf("theequationhastwoequalroots:x1=%f,x2=%f\n",x1,x2);}if(dt>1e-6){x1=m+n;x2=m-n;printf("theequationhasdistinctrealroots:x1=%f,x2=%f\n",x1,x2);}}再次说明一下由于我们考虑了实数在内,而实数在计算 (1)输出年中是闰年的年份,符合下面俩个条件之一的年份是闰年。(一)能被4整除但不能被100整除(二)能#include<>voidmain(){inti;for(i=1900;i<=2000;i++){if(i%4==0&&i%100)printf("%d\n",i);elseif(i%400==0)printf("%d\n",i);}}2.7什么叫结构化程序设计他的主要内容是什么答:结构化程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。它用基本结构(一般认为是3种:顺序、选择和循环)为基本思想设计的程序。这种程序便于编写、便于阅读、便于修改和维护。这就减少了程序出错的机会,提高了程序的可靠性,保证了程序的质它的主要内容为:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的具体说:采用以下方法来保证得到结构化的程序: (1)自顶向下(2)逐步细化(3)模块化设计(4)结构化结构化程序的概念首先是从以往编程过程语句而提出的。转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图的流程线来描述转移功能。如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受2.8用自顶向下、逐步细化的方法进行以下算法的设计:#include<>voidmain(){inti;for(i=1900;i<=2000;i++){if(i%4==0&&i%100)printf("%d\n",i);elseif(i%400==0)printf("%d\n",i);}}#include<>#include<>voidmain(){floata,b,c;floatdt;floatm,n;floatx1,x2;printf("inputa,b,c!\n");scanf("a=%f,b=%f,c=%f",&a,&b,&c);dt=b*b-4*a*c;if(fabs(dt)<=1e-6){x1=-b/(2*a);x2=-b/(2*a);printf("theequationhastwoequalroots:x1=x2=%f\n",x1);}elseif(dt>1e-6){x1=(-b+sqrt(dt))/(2*a);x2=(-b-sqrt(dt))/(2*a);printf("theequationhasdistinctrealroots:x1=%f,x2=%f\n",x1,x2);}else{m=(-b)/(2*a);n=sqrt(-dt)/(2*a);printf("theequationhascomplexrealroots:\nx1=%f+%fi\n",m,n);printf("x2=%f-%fi\n",m,n);#include<>voidmain(){int

温馨提示

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

评论

0/150

提交评论