《大学C_C++语言程序设计课后习题答案1-8(_阳小华_马淑萍主编).doc》由会员分享,可在线阅读,更多相关《大学C_C++语言程序设计课后习题答案1-8(_阳小华_马淑萍主编).doc(16页珍藏版)》请在金锄头文库上搜索。
1、习题答案习 题 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、据、实现算法、创建用户界面、连接其他编程语言的程序,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域,代表了当今国际科学计算软件的先进水平。习 题 2(参考答案)一、选择题勘误:3以下定义语句中正确的是( )。 Aint a=b=0 ; Bchar A=65+1 ; 逗号改分号b=b; Cfloat a=1,*b=&a,*c=&b ; Ddouble a=0.0,b=1.1;4已知int插入int x = 10,y = 3,表达式x/y的值是( )。15在C语言中提供的合法的关键字是( )。Aswit去掉字母“t”tch Bcher CCase Dde
6、fault26下列不插入“不”可作为C语言赋值语句的是( )。 Ax=3,y=5; Ba=b=6; Ci- -; Dy=int(x);40下列变量定义中合法的是( )。 Afloat 插入空格 _a = 1-.1e-1; Bdouble b = 1 + 5e2.5; Clong do = 0xfdaL; Dfloat 2_and = 1 - e - 3;44以下选项中不属于字符常量的是( )。AC BC CxCC0改为0xCC D07246题与17题重了47题A项选择:a=1 后面加分号就合法了,所以只有“B”项合法12345678910CADCBBCBAD111213141516171819
7、20CCDADBCADC21222324252627282930B,cDADBDCCAD31323334353637383940CDBCADBCDA41424344454647484950BDBBACBADD二、填空题1. 2552.a/(b*c)3.204.1.05.x=0或(x=0)?1:06.x57.97或字符 a8.09.2.510.3.511.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;0 14.815.2习 题 3 (参考答案)1编程实现:用字符输入/输出函数输入
8、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 (ccc, &c1, &c2, &c3); printf(c d,c d,c d , c3,c3,c2,c2,c1,c1);3变量
9、k为float 类型,调用函数:scanf(d, &k);不能使变量k得到正确数值的原因是:scanf(d, &k);中的格式控制类型与变量k的定义类型不匹配,应将d改为f.习题4答案勘误:6若有以下定义:中B答案的switch((int)int(x) 改为(int)x x)选择题1 B 2 A 3 B 4B 5 C 6B阅读程序,写结果7 12 813 9 *0*2*10 if(s=90) m=4; else if(s=80) m=3; else if(s=70) m=2; else if(s=60) m=1; else m=0;11有4个整数a,b,c,d,编写程序按大小输出#includ
10、emain() 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(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;s
11、canf(%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&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”。#inclu
12、demain() int t,flag; scanf(%d,&t); if(t%3=0&t%4=0&t%5=0) printf(YES); else printf(NO);14 年号,判断是否为闰年。判别闰年的条件是:能被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);15 下面程序根据以下函数关系,对输入的每个x值,计算出y值。请分析程序填空。xyx103x+101x10x(x+2)x1x2#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