欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    大学C语言程序设计第2版电子工业出版社17章参考答案汇编.docx

    • 资源ID:13033351       资源大小:46.04KB        全文页数:31页
    • 资源格式: DOCX        下载积分:6金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    大学C语言程序设计第2版电子工业出版社17章参考答案汇编.docx

    1、大学C语言程序设计第2版电子工业出版社17章参考答案汇编习题答案习 题 1(参考答案)1计算的本质是什么?计算的本质就是基于规则的符号串变换。2三大科学思维是指什么?理论思维、实验思维、计算思维3什么是计算思维?计算思维的基本特征有哪些?计算思维是指运用计算机科学的思想、方法和技术进行问题求解、系统设计,以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。从计算科学的角度分析,计算思维包括 6个方面的特征:抽象性、数字化、构造性、系统化、虚拟化和网络化。4什么是算法?算法的基本特征有哪些?算法(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地讲,就是计算机解

    2、题的步骤。一个算法应该具有以下五个重要特征。(1)有穷性:一个算法必须保证执行有限步之后结束。(2)确定性:算法的每一步骤必须有确定的定义。(3)输入:一个算法有0个或多个输入,以刻画运算对象的初始情况。0个输入是指算法本身给定了初始条件。(4)输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。(5)可行性:算法上描述的操作在计算机上都是可以实现的。5算法的复杂度分为哪两种?算法的复杂性用复杂度来说明,分为时间复杂度和空间复杂度。时间复杂度:执行该算法所需要的计算工作量,一般用所需基本运算的执行次数来度量。空间复杂度:执行该算法所需的内存空间,一般用算法程序本身占的空间+输入的初始

    3、数据占的空间+算法执行过程中所需的额外空间的总和来表示。6什么是程序?程序与算法的区别是什么程序是为了实现特定目标或解决特定问题而用计算机语言编写的指令序列,它由算法和数据结构组成。算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。7简述程序设计语言发展的过程。计算机程序设计语言从最初的机器代码到今天接近自然语言的表达,经过了四代演变。一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面向对象的高级语言为第四代。8程序执行过程中,有哪些基本步骤?习 题 2(参考答案) p35一、选择题12345678910CACCCC ?CB

    4、BD11121314151617181920CCDABBBAD ?B21222324252627282930CDADBCCCAD31323334353637383940CCB ?CADBCDA41424344454647484950BDBBABBACD5152535455CAADB二、填空题1. 2552.a/(b*c)3.204.1.05.x=06.x57.97或字符 a8.09.2.510.3.511.MATLAB12.9, 11, 9, 1013.a+=a;24, a-=2;10, a*=2+3;60, a%=(n%=2);0, a/=a+a;0, a+=a-=a*=a;0 14.815

    5、.2习 题 3 (参考答案)1编程实现:用字符输入/输出函数输入3个字符,将它们反向输出。参考代码(尽量运用本章所学知识)#include main() char c1,c2,c3; c1=getchar(); c2=getchar(); c3=getchar(); putchar(c3); putchar(c2); putchar(c1);2编程实现:用格式输入/输出函数输入3个字符,将它们反向输出并输出它们的ASCII值。参考代码(尽量运用本章所学知识)#include main() char c1,c2,c3;scanf (%c%c%c, &c1, &c2, &c3); printf(%

    6、c %d,%c %d,%c %d , c3,c3,c2,c2,c1,c1);3变量k为float 类型,调用函数:scanf(d, &k);不能使变量k得到正确数值的原因是:scanf(d, &k);中的格式控制类型与变量k的定义类型不匹配,应将d改为f.4. (略) 习题4答案一 选择题 1-20 DBDCA CBDDA ACABC BCBBC二、写出下列程序的运行结果1. z=362. 20 03. 124. 48,485. 136. 02三 编程题(参考答案)1.输入4个整数a,b,c,d,编写程序,将它们按从大到小顺序输出。#includemain() int a,b,c,d,t;sc

    7、anf(%d%d%d%d,&a,&b,&c,&d);if(ab) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;if(ad) t=a;a=d;d=t;if(bc) t=b;b=c;c=t;if(bd) t=b;b=d;d=t;if(cd) t=c;c=d;d=t;printf(%4d%4d%4d%4d,a,b,c,d);2.据所输入的3条边长值,判断它们能否构成三角形,如能构成,再判断是等腰三角形、直角三角形还是一般三角形?源程序:#include#include math.hmain()float a,b,c,s,area;scanf(%f%f%f,&a,&b,&c);if(

    8、a+bc)&(a+cb)&(b+ca)&(fabs(a-b)c)&(fabs(a-c)b)&(fabs(b-c)a) if(a=b&b=c) printf(等边三角形); else if(a=b|b=c|a=c) printf(等腰三角形); else if(a*a+b*b=c*c)|(a*a+c*c=b*b)|(b*b+c*c=a*a) printf(直角三角形); else printf(一般三角形); else printf(不能组成三角形);3.输入一个整数,如果能被3,4,5同时整除,则输出“YES”,否则输出“NO”。#includemain() int t,flag; scanf

    9、(%d,&t); if(t%3=0&t%4=0&t%5=0) printf(YES); else printf(NO);4.输入年号,判断是否为闰年。判别闰年的条件是:能被4整除但不能被100整除,或者能被400整除。#includemain() int year; printf(input the year:); scanf(%d,&year); if(year%4=0&year%100!=0|year%400=0) printf( %d is leap yearn,year); else printf( %d ist leap yearn,year);5.编写程序。根据以下函数关系,对输入

    10、的每个x值进行计算,并输出相应的y值。xyx103x+101x10x(x+2)x1x2-3x+10#includemain() double x,y; scanf(%lf,&x); if(x10) y=3*x+10; else if(x1) y=x*x+2*x; else y=x*x-3*x+10; printf( %lf n,y);习题5答案一、选择题1-10 CDABC DABDC11-20 DDDBD B(AC)CDC 17题有2个答案AC二、写出下列程序的运行结果1. 64202. 2 03. 54. ACEG5. #6. 2,4,6,8,107. 46.08. 8 5 29. asD

    11、hEF10. 12,72三、编程题(参考答案)1.利用近似公式求的值,直到最后一项的绝对值小于10-6为止。#include#includemain() double pi=0,i=1,j=1,k; do k=i/j; pi=pi+k; i=-i; j=j+2; while (fabs(k)1.0e-6); printf(pi is %lf,4*pi);2输入一行字符,分别统计出其中英文字母、数字、空格的个数。#includemain() char t; int n1=0,n2=0,n3=0; do scanf(%c,&t); if(t=n)break; else if(t=A&t=a&t=0

    12、&t=9) n3+; while(1); printf(字符个数为:%d ,空格个数为:%d ,数字个数为:%d,n1,n2,n3); 3.从3个红球、5个白球、6个黑球中任意取出6个球,且其中必须有白球,编程输出所有可能的组合。#includemain()int i,j,k; printf(n hong bai hein); for(i=0;i=3;i+) for(j=1;j=0) printf( %3d %3d %3dn,i,j,k); 4如果一个数等于其所有真因子(不包括该数本身)之和,则该数为完数。例如:6的真因子有1、2、3,且6=1+2+3,故6为完数。求2,1000内的:(1)最

    13、大的完数; (2)完数数目。#includemain() int a,i,m,number=0,max=0; for(a=1;a=1000;a+) m=0; for(i=1;i=a/2;i+) if(a%i=0) m=m+i; if(m=a) number+, max=m; printf(number is %d, max is %dn, number, max);习题6答案一、选择题1D 2A 3A 4C 5B 6B 7C8B 9B 10C 11B 12B 13A 14B15C 16C 17C 18D 19A 20B 21C22B 23C 24B 25C 26D 27C 28D二、写出下列程

    14、序的运行结果17 2t=7531 31 3 6 48,17 55 668,8 73 6 9 12 810 939,18 1064 54 11-20 1215 132 14.y=923三、编程题(以下各题均用函数实现)1超级素数:一个素数依次从低位去掉一位、两位若所得的数依然是素数,如239就是超级素数。试求1009999之内:(1)超级素数的个数;(2)所有超级素数之和;(3)最大的超级素数。解:(1)spn=30 (2)sps=75548 (3)spm=7393#include#includemain() int i,s=0,k=0,m,max=100; for(i=9999;i=100;i

    15、-) m=i; while(m1) if(fun(m)m=m/10; else break; if(m=0) if(maxi) max=i; k+; s=s+i; printf(超级素数的个数为:%5d,所有超级素数之和为:%5d,最大的超级素数为%5dn,k,s,max);int fun(int n) int k,i; k=sqrt(n); for(i=2;i=k+1)return 1; else return 0; 2其平方等于某两个整数平方和的正整数称为弦数,例如因52=32+42,故5是弦数,求(121,130)这间的弦数个数以及最大和最小的弦数。解:n=4 max=130 min=1

    16、22参考程序1(用函数方法实现):#includemain() int k,maxnum,minnum; k=count(121,130); maxnum=max(121,130); minnum=min(121,130); printf(弦数的个数为:%d,最大的弦数为:%d,最小的弦数为:%dn,k,maxnum,minnum);int count(int m,int n) int i,j,k,t=0,flag; for(i=m;i=n;i+) flag=0; for(j=1;ji;j+) for(k=j;ki;k+) if(i*i=j*j+k*k) flag=1; printf(%4d,

    17、%4d,%4dn,j,k,i);/显示出不重复的弦数的组合情况 if(flag=1)t+; return t;int min(int m,int n) int i,j,k,t=0; for(i=m;i=n;i+) for(j=1;ji;j+) for(k=j;k=m;i-) for(j=1;ji;j+) for(k=j;ki;k+) if(i*i=j*j+k*k) printf(最大的弦数为:%4dn,i); return i; 3有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数。解:384#include main( ) int i,t; t=fun(8);

    18、 for(i=1;i8;i+) t=t*2; printf(t=%dn,t);int fun(int m) int i,j,n=1,sum; for(i=1;i=765;i+) sum=i; n=i; for(j=1;jm;j+) n=n*2; sum=sum+n; if(sum=765) break; return i;4编写程序,求的结果。解:4037913参考程序1:#include main( ) int i; long s=0; for(i=1;i=10;i+) s=s+fun(i); printf(s=%ldn,s);long fun(int n) int j; long t=1;

    19、 for(j=1;j=n;j+) t=t*j; return t;参考程序2(递归算法):#include main( ) int i; long s=0; for(i=1;i=10;i+) s=s+fun(i); printf(s=%ldn,s);long fun(int n) long t; if(n=1)t=1; else t=n*fun(n-1); return t;5已知y =,其中,f(x, n) = 1 - x2 / 2! + x4 / 4! - (-1)nx2n / (2n)!(n0),当x = 5.6,n = 7时,求y的值。解:0.007802#includedouble

    20、fun(double x,int n) int i,t=1,m=1; double s=1.0,w=1.0; for(i=1;i=2*n;i+) w=w*x; t=t*i; if(i%2=0) m=-m;s=s+m*w/t; return s;main() double x=5.6; int n=7; double p,q,t,s; p=fun(x,n); q=fun(x+2.3,n); t=fun(x-3.2,n+3); s=p/(q+t); printf(%lfn,s);6编写程序,求三个数的最小公倍数。#includeint fun(int x,int y,int z) int j,t,

    21、m,n; j=1; t=j%x; m=j%y; n=j%z; while(t!=0|m!=0|n!=0) j=j+1; t=j%x; m=j%y; n=j%z; return j;main() int x1,x2,x3,j; printf(Input x1 x2 x3: ); scanf(%d%d%d,&x1,&x2,&x3); printf(x1=%d,x2=%d,x3=%dn,x1,x2,x3); j=fun(x1,x2,x3); printf(The minimal common multiple is: %dn,j);7已知:,编写程序,求S的值。例如,当k为10时,S的值应为:1.5

    22、33852。#includedouble fun(int k) int n; double s,w,p,q; n=1; s=1.0; while(n=k) w=2.0*n; p=w-1.0; q=w+1.0; s=s*w*w/p/q; n+; return s;main() printf(%fn,fun(10);习题7答案一、选择题1C 2A 3C 4B 5D 6C 7D8C 9A 10B 11C 12D 13D 14C15C 16D 17D 18D 19B 20B 21B22C 23A 24A 25A 26D 27D 28D 29C二、写出下列程序的运行结果1 3 6 9 2431,2,3,

    23、8,7,6,5,4,9,10, 47 05572三、程序填空1. (1) k (2) -12. (1) i-13. (1) xi+或yi+ (2)i+ 4. (1) a+h-10 (2)si= 05. (1)si!=0 (2)sj+=si6. (1)sj!=0& tk!=0 (2)tk=0四、编程题(每个程序的数据结构均用数组)1编写程序:从键盘上输入一个字符,用折半查找法找出该字符在已排序的字符串a中的位置。若该字符不在a中则输出*。#includemain() char c,a10=abcdefghi; int top,bot,mid; printf(input c:n); scanf(%

    24、c,&c); printf(c=%cn,c); for(top=0,bot=10;topamid) top=mid+1; else bot=mid-1; if(topbot) printf(*n);2编写程序:输出某数列的前20项,该数列第1、2项分别为0和1,以后每个奇数编号的项是前两项之和,每个偶数编号的项是前两项之差的绝对值。生成的20个数存在一维数组x中,并按每行4项的形式输出。#include#includemain() int x21,i; x1=0,x2=1; i=3; do xi=xi-2+xi-1; xi+1=fabs(double)(xi-1-xi); i=i+2; while(i=20); for(i=1;i=20;i+) printf(%6d,xi); if(i%4=0) printf(n); 3编写程序:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如:若s所指字符串中的内容为:“ABCDEFG12345”,则最后t所指的数组中的内容应是:“135”。#include#includevoid fun(ch


    注意事项

    本文(大学C语言程序设计第2版电子工业出版社17章参考答案汇编.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开