大学cc++语言程序设计课后习题答案18(电子工业出版社阳小华马淑萍_第1页
大学cc++语言程序设计课后习题答案18(电子工业出版社阳小华马淑萍_第2页
免费预览已结束,剩余9页可下载查看

下载本文档

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

文档简介

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

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

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

4、4)用 C 语言可直接访问物理地址,能进行二进制位运算等操作,即可直接同机器硬 件打交道。它具有“高级语言”和“低级语言”的双重特征,既能用于系统软件程序设计, 又能用于通用软件程序设计。(5)C 语言生成的目标代码质量高、 程序执行速度快。 一般只比用汇编语言生成的目标 代码的效率低 20 左右。(6)可移植性好。5源程序执行过程中,有哪些步骤?2 / 17C 语言源程序的执行要经过:编辑、编译、链接、运行等步骤。6.简述 MATLAB 的主要应用领域有哪些?MATLAB 软件是矩阵实验室 (Matrix Laboratory )的简称,是美国 MathWorks 公司开发 的商业数学软件,

5、主要包括MATLAB 和 Simulink 两大部分。它和 Mathematica、Maple 并称为三大数学软件。 MATLAB 软件可以进行矩阵运算、绘制函数和数据、实现算法、创建 用户界面、连接其他编程语言的程序,主要应用于工程计算、控制设计、信号处理与通信、 图像处理、信号检测、金融建模设计与分析等领域,代表了当今国际科学计算软件的先进水 平。习题 2 (参考答案)一、选择题勘误:46 题与 17 题重了47 题 A 项选择:a=1 后面加分号就合法了,所以只有“ B”项合法12345678910CADCBBCBAD111213141516171819203. 以下定义语句中正确的是(

6、)。A . int a=b=0 ;C. float a=1 , b=&a , c=&b ;B . char A=65+1 ;D . double a=0.0,b=b; b=1.1;4. 已知 int x = 10 , y = 3,表达式 x/y 的值是( )。15.在 C 语言中提供的合法的关键字是()。A . switchB . cherC . CaseD . default26.下列不可作为 C 语言赋值语句的是()。40.A. x=3, y=5;B. a=b=6;下列变量定义中合法的是()。C . i ;D . y=i nt(x);A. float _a = 1 .1e

7、1;B . double b =1 + 5e2.5;C. long do = OxfdaL;D . float 2_and = 1 e 344.以下选项中不属于字符常量的是() 。A. CB . CC . xCC0D.0723 / 17CCDADBCADC212223242526272829304 / 17B,cDADBDCCAD31323334353637383940CDBCADBCDA41424344454647484950BDBBACBADD、填空题1.2552.a/(b*c)3.204.1.05.x=0 或(x=0)?1:06.x57.97 或字符 a8.09.2.510.3.511.

8、312.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;014.815.2105 / 17习 题 3( 参考答案 )1编程实现:用字符输入/输出函数输入 3 个字符,将它们反向输出。参考代码(尽量运用本章所学知识)#include main( ) char c1,c2,c3;c1=getchar(); c2=getchar(); c3=getchar(); putchar(c3); putchar(c2);putchar(c1);2编程实现:用格式输入 /输出函数输入 3 个字符,将它们

9、反向输出并输出它们的 ASCII 值。参考代码(尽量运用本章所学知识)#include main( ) char c1,c2,c3;scanf (cc c, &c1, &c2, &c3) ;printf( c d,c d,c d , c3,c3,c2,c2,c1,c1) ;3变量 k 为 float 类型,调用函数:scanf(d, &k);不能使变量 k 得到正确数值的原因是 : seanf(”d, &k);中的格式控制类型与变量k 的定义类型不匹配,应将d 改为 f.习题 4 答案勘误:6若有以下定义:中B答案的switeh(int)x)选择题1 B

10、 2 A 3 B4 B 5 C 6B阅读程序,写结果7 12 8 139 *0*2*if(s=90) m=4;6 / 17else if(s=80)m=3;else if(s=70)m=2;else if(s=60)m=1;elsem=0;11 有 4 个整数 a,b,c,d ,编写程序按大小输出#includemain() int a,b,c,d,t;scanf(%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

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

12、mp;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(不能组成三角形);13 输入一个整数,如果能被3, 4, 5 同时整除,则输出“ YES,否则输出“ NO。7 / 17#in cludemai n() int t,flag;sca nf(%d, &t);if(t%3=0&t%4=0&t%5=0) prin tf(YES

13、);elseprin tf(NO);14 年号,判断是否为闰年。判别闰年的条件是:能被 4 整除但不能被 100 整除的年是闰年, 能被 400整除的年也是闰年。#in cludemai n() int year;prin tf(i nput the year:);sca nf(%d,&year);if(year%4=0&year%100!=0|year%400=0)prin tf( %d is leap year n,year);elseprin tf( %d ist leap year n,year);15 下面程序根据以下函数关系,对输入的每个x 值,计算出 y 值。请分

14、析程序填空。xyx103x+101x10 x(x+2)xwi2 x#in cludemain () double x,y;sca nf(%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);8 / 17习题 5 答案选择题1. A2 . A3 .D4 . C5 . D6. A7 . D8.D9 . B10 . C阅读程序,写结果11 . 1 -212 .2 013 . *14 .2,4,6,8,10,15 . 46.00000016 . 852#in clude#in cl

15、udemain ()double pi=0,i=1,j=1,k; dok=i/j;pi=pi+k;i=-i;j=j+2;while (fabs(k)1.0e-6); prin tf(pi is %lf,4*pi); 18.求两个数的最大公约数和最小公倍数。最大公约数:用大数整除小数,得到余数1;再用小数整除余数 1,得到余数 2 ;再用余数 1 整除余数 2,直到余数为 0。最小公 倍数:两数相乘再除以最大公约数。#in clude#in clude main () in t m,n ,r,x,y;scan f(%d%d,&m,&n);x=m;y=n;if (mn) r=m;m

16、=n;n=r; while( (r=m% n)!=0) m=n;n=r;prin tf( the max com mon19. 从三个红球、五个白球、六个黑球中任意取出六个球,且其中必须有白球,编程输出所 有可能的组合。#includemain()17.利用公式1 1 1357.公式求n。divisor is %d,the min com mon multiple is %d, n,x*y/n);9 / 17int 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);20.

17、如果一个数等于其所有真因子(不包括该数本身)之和,则该数为完数。例如: 因子有 1、2、3,且 6=1+2+3,故 6 为完数。求 2 ,1000 内的:( 1 )最大的完数;( 2)完数数目。#includemain()int a,i,m,number=0,max=0;for(a=1;a=1000;a+) m=0;for(i=1;i 0),当 x = 5.6 , n = 7 时,求 y 的值。解: -0.0745216编写程序,求三个数的最小公倍数。#in cludeint fun (i nt x,i nt y,i nt z) int j,t,m ,n;j=1;t=j%x;m=j%y;n =

18、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;prin tf(I nput x1x2 x3:);scan f(%d%d%d, &x1, &x2,&x3);prin tf(x1=%d,x2=%d,x3=%dn,x1,x2,x3);10. 645411. 30012. 613. 2239 就11 / 17j=fu n(x1,x2,x3);prin tf(The mi nimal com mon multiple is: %dn,j);例如,当 k 为 10 时,S 的值应为:1.533852。#in clude #in clude double fun (i nt 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 ()pri

温馨提示

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

评论

0/150

提交评论