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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言课后习题答案新版完整版.docx

1、C语言课后习题答案新版完整版习题答案习 题 1(参考答案)1程序与算法的概念及二者的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地讲,就是计算机解题的步骤。算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。2简述程序设计语言发展的过程程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。3简

2、述高级程序设计语言中面向过程与面向对象的概念。“面向过程”是一种以过程为中心的编程思想。首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。“面向对象”是一种以事物为中心的编程思想。面向对象的方法主要是将事物对象化,对象包括属性与行为。面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。编程关注的是如何把相关

3、的功能(包括函数和数据)有组织地捆绑到一个对象身上。4C语言程序的特点是什么?(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。 (2)C语言运算符丰富,共有45个标准运算符,具有很强的表达式功能,同一功能表达式往往可以采用多种形式来实现。(3)数据类型丰富。C语言的数据类型有整型、实型、字符型、数组类型、结构类型、共用类型和指针类型,而且还可以用它们来组成更复杂的数据结构,加之C语言提供了功能强大的控制结构,因而使用C语言能非常方便地进行结构化和模块化程序设计,适合于大型程序的编写、调试。(4)用C语言可直接访问物理地址,能进行二进制位运算等操作,即可直接同机器

4、硬件打交道。它具有“高级语言”和“低级语言”的双重特征,既能用于系统软件程序设计,又能用于通用软件程序设计。(5)C语言生成的目标代码质量高、程序执行速度快。一般只比用汇编语言生成的目标代码的效率低20左右。(6)可移植性好。5源程序执行过程中,有哪些步骤?C语言源程序的执行要经过:编辑、编译、链接、运行等步骤。6简述MATLAB的主要应用领域有哪些?MATLAB软件是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司开发的商业数学软件,主要包括MATLAB和Simulink两大部分。它和Mathematica、Maple并称为三大数学软件。MATLAB软件可

5、以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域,代表了当今国际科学计算软件的先进水平。1计算的本质是什么?计算的本质就是基于规则的符号串变换。2三大科学思维是指什么? 三大科学思维是:理论思维、实验思维与计算思维3什么是计算思维?计算思维的基本特征有哪些?计算思维是指运用计算机科学的思想、方法和技术进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。它属于三大科学思维(理论思维、实验思维与计算思维)之一,不仅仅属于计算机科学家,应当是每个人的基

6、本技能,等同3R(Reading、wRiting、aRithmetic)。从计算科学的角度来看,计算思维包括 6个方面的特征:抽象性、数字化、构造性、系统化、虚拟化和网络化。4什么是算法?算法的基本特征有哪些?算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地讲,就是计算机解题的步骤。算法的基本特征有:有穷性、确定性、可行性、有0个或多个输入、有一个或多个输出。5算法的复杂度分为哪两种? 算法的复杂度分为时间复杂度和空间复杂度两种。6什么是程序?程序与算法的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成

7、。算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地讲,就是计算机解题的步骤。算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。7简述程序设计语言发展的过程。程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。8程序执行过程中,有哪些基本步骤?C语言源程序的执行要经过:编辑、编译、链接、运行等步骤。习 题 2(参考答案)一、选择题12345678910CACCCCCBBD11121314151

8、617181920CCDABBBADB21222324252627282930CDADBCCCAD31323334353637383940CCBCADBCDA41424344454647484950BDBBABBACD5152535455CAADB二、填空题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.2习 题 3 (参考答案)1编程

9、实现:用字符输入/输出函数输入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(%c %d,%c %d,%c %d

10、, 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;scanf(%d%d%d%d,&a,&

11、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(a+bc)&(a+cb)&(b+c

12、a)&(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(%d,&t); if(t%3=0

13、&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.编写程序。根据以下函数关系,对输入的每个x值进行计算,并输出相应的y

14、值。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. 6420 2. 2 0 3. 5 4. ACEG5. # 6. 2,4,6,8,10 7. 46.08. 8 5 2 9. asDhEF 10. 12,

15、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&t=9) n3+;

16、 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)最大的完数; (2)完

17、数数目。#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 24A 25C 26D 27C 28D二、写出下列程序的运行结果17 2

18、t=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-) m=i; wh

19、ile(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=122参考程序1(用函

20、数方法实现):#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,%4d,%4dn,j

21、,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); for(i=1;i

22、8;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编写程序,求的结果。解:参考程序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; for(j=1;j=n;j+)

23、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.#includedouble fun(double x,int n) int i,t=

24、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,m,n; j=1; t=j%x; m=j%y; n=j%

25、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.。#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,8,7,6,5,4,9,10, 47 05572

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

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