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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C++ANSWERTHQ.docx

1、C+ANSWERTHQ高等院校计算机基础教育规划教材C+程序设计课后习题参考答案 武汉大学出版社习题1参考答案一、选择题1C 2C二、填空题1面向过程,面向对象2编辑,编译,链接,运行3机器语言,汇编语言,高级语言。4数据,操作处理方法50三、简答题1简述三代计算机语言各自的特点。解答如下:机器语言是用二进制指令表示的、计算机能够直接识别和执行的语言。由于计算机可以直接执行机器语言,执行速度快是机器语言的主要优点。在计算机发展初期,软件工程师使用机器语言来编写程序。在计算机指令集不断增大的情况下,机器语言不易记忆,不便于学习,软件开发难度大、周期长、易出错,软件维护工作量大等缺点更加突出,机器

2、语言已不能胜任编程工作。汇编语言是用一些易读的助记符表示机器指令操作码,如ADD、CALL等。使用汇编语言编写程序提高了编程速度,也比较容易编写出质量较高的程序,检查、维护也比较容易。但汇编语言抽象层次低,程序员编写程序工作量大。高级语言屏蔽了机器语言的细节,提高了语言抽象层次。程序中采用了具有一定含义的数据命令和容易理解的执行语句。高级语言不受计算机种类的限制,通用性强,易于理解、学习和掌握。使用高级语言减少了大量的编程工作量。目前使用比较广泛的高级语言有Basic、Fortran、Pascal和C语言。C+是一种功能强大、应用更广泛的高级语言。2简述C语言程序实现的过程。解答如下:用C+语

3、言编写好一个完整的程序后,第一步要上机运行编辑程序,输入源程序;第二步是对源程序进行编译生成目标代码文件,目标代码文件名与源程序文件名相同,而扩展名改为obj;第三步运行连接程序,将目标代码文件与C+的库文件相连接,生成可执行文件,可执行文件名与源程序文件名相同,而扩展名为exe;第四步运行可执行文件,实现程序所具有的功能。习题2参考答案一、选择题1C 2B 3B 4D二、填空题1?:24字节,1字节,4字节,8字节3 1546,60526,256256,2273.96E2,3.96E5三、简答题1C+基本数据类型有哪几种?程序设计如下:C+的基本数据类型有bool(布尔型,又称逻辑型)、ch

4、ar(字符型)、int(整型)、float(浮点型,表示实数)和double(双精度浮点型,简称双精度型)等5种。2定义符号变量与定义变量有何异同?程序设计如下:定义符号常量和定义变量都要指定数据类型,系统将为其分配一定的存储空间。其不同之处在于:定义符号常量必须给出常量值,且以后不能修改本常量的值;而变量可以在定义变量的同时赋初值,以后可以修改该变量。3什么叫常量?什么是变量?程序设计如下:常量就是在程序的运行过程中该量是不可修改的量;变量在程序的运行过程中允许对该变量的值进行修改。习题3参考答案一、选择题1A 2C 3D 4 D 5C二、填空题1true 2true 311 4j10和k%

5、3 5k=x三、编程题1编写找出a=18,b=35,c=21,d=96中最大值的程序。程序设计如下:# include void main() int a=18,b=35,c=21,d=96,max;max=ab?a:b;max=maxc?max:c;max=maxd?max:d;coutmax=maxend1;2输入一个整数:为65时,显示“A”;为66时,显示“B”,为67时,显示“C”,其它值显示“END”。程序设计如下:# includevoid main() int x;cinx;switch(x)case65:coutAn;break;case66:coutBn;break;cas

6、e67:coutCn;break;default:coutENDn;3编写输入一个整数并且该数按小于10,1099,100999,1000以上分类并显示的C+程序,例如:输入335时,显示“335 is 100 to999”。程序设计如下:# include void main() int a;cina;if(a=100) if(a=1000)coutais greater than 1000n;elsecoutais 100 to 999n;else if(a10)coutais less than 10n;elsecoutais 10to99n;4一个分数序列为:2/1,3/2,5/3,8

7、/5,13/8,21/23,编写求该数列的前20项之和的程序。程序设计如下:# include void main() float x=1,y=2,p,k,s=0;for(k=1;k=20;k+) s+=yx;p=x+y;x=y;y=p;cout21+32+53+85+=sendl;5编写程序,显示如下图形。* * * * * * * * * * * * * * * * * * *程序设计如下:# includevoid main() int i,j,k;for(i=1;i=i;k-)cout;for(j=1;j=2*i-1;j+)cout*;cout0;i-) for(k=1;k=4-i+1

8、;k+)cout;for(j=1,j=2*i-1;j+)cout*;coutend1;习题4参考答案一、选择题1C 2C 3D 4B 5D二、填空题1递增的顺序连续2可不34.04i7,j=i+75Strlen(str)三、编程题1 将一个数组中的值按逆序存放,例如,原来是1,3,5,7,9,要求改为9,7,5,3,1。程序设计如下:#includevoid main()int a5,t;for(int i=0;i5;i+)cin ai;for(i=0;i52;i+)t=ai;ai=a4-i;a4-i=t;for(i=0;i5;i+)coutait;coutendl;2 有一个33的矩阵,分别

9、求出两条对角线元素之和。程序设计如下:# include void main()int a33,i,j,suml=0,sum2=0;cout输入数组元素:n;for(i=0;i3;i+)for(j=0;j3:j+)cin aij;for(i=0;i3;i+)sum1+=aii;sum2+=ai2-i;coutsum1=sum1sum2=sum2endl;3输入一个字符,统计单词个数,单词之间用空格分离。程序设计如下:# include void main()char str80,c1,c2=;int i=0,num=0;cin.get line(str,78);while(stri(=o)c1

10、=stri;if(i=0)c2=( );else c2=stri-1;if (c1!= &c2=( )num+;i+cout共有num个单词endl;4 用冒泡法对输入的15个整数按由小到大顺序排列。程序设计如下:#include#include void main()int i,j,m,a15;for(i=0;i15;i+)cinai;for(j=1;j14;j+)for(i=0;iai+1)m=ai;ai=ai+1;ai+1=m;for(i=0;i15;i+)coutsetw(4)ai;coutend1;5 从键盘为1个NN的整型数组a输入数据,并显示每一行的最大值。程序设计如下:#inc

11、lude #include void main()const N=5;int aNN,bN,i,j;cout请为数组a:输入数据:endl;for(i=0;iN;i+)for(j=0;jN;j+)cinaij;用双重循环为数组a顺序输入数据for(i=0;iN;i+)bi=ai0;for(j=1;jN:j+)if(biaij)bi=aij;经比较将a数组第i行的最大值分别存入bi中cout输出每一行的最大值:;for(i=0;iN;i+)coutsetw(4)b i;coutend1;经bi输出数组a每一行的最大值程序运行结果:请为数组a:输入数据:5015341729182542773525

12、2417231159983228625419 97848输出每一行的最大值:5077259878习题5参考答案一、选择题1B 2D 3B 4A 5D二、填空题1地址2NULL或03整形变量地址,一维数组元素的地址4 (1)int*p=&k;(2)*p=6;(3)int *p;(4)pp=&p;(5)*pp*=2 or Z5t=p;p=q,q=t;三、编程题1输入3个字符串,要求输出其中最大,最小字符串。程序设计如下:输入3# include iostream.h# include string.hvoid main()const int N=3;char sN20,max20,min20;fo

13、r(int i=0;iN;i+)cin.getline(si,20);strcpy(max,s0);strcpy(min,s0);for(i=0;i0)strcpy(max,si);if(strcmp(min,si)0)strcpy(min,si);cout最大字符串是:maxendl;cout最小字符串是:minendl;2用指针的方法将一个字符串“china”的单个字符依次输出。程序设计如下:# include iostreamhvoid main()char*p=china;for(int i=0;pi!=0;i+)coutpiendl;3使用指针数组编写一个程序,要求当用户输入112的

14、月份数字时,程序能够输出该月的英文名。输入不是112时,则退出程序。程序设计如下:# include iostream.hvoid main() /C+语言中续行符用表示char*monthname=january,february,march,april,may,june,july,august,september,october,november,december;int i;while(1)cout请输入月份号:cini;if(i12)cont错误的月份号end1;break;contmonth namei-1end1;4编写程序将n个数按逆序输出,要求使用指针。思考:可以假设两个指针变

15、量p和q,分别指向最后一个和第一个数组元素,而后互换*p和*q即可。程序设计如下:#include iostreamhvoid main()const int N=5;int aN,*p=a,*q,t;for(int i=0;iN;i+)cin*p+;输入数组元素p-;将p指向最后一个数组元素for(q=a;qp;p-,q+)t=*p;*p=*q;*q=t;p=a;for(i=0;iN;i+)cout*(p+i)t;coutendl;5有n个人围成一个圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号。程序设计如下:#includeiostrea

16、mhvoid main()int i,k,m,n,num50,*p;coutinput number of person:n=;cinn;p=num;for(i=0;in;i+)*(p+i)=i+l;从1到n对每个人进行编号i=0;i为每次循环时的计数变量k=0;k为按1,2,3报数时的计数变量m=0;m为退出人数while(mn-1)当退出人数比n-1少时(即未退出人数大于1时)执行if(*(p+i)!=0)k+;if(k=3)对退出的人的编号置为0*(p+i)=0;k=0;m+;i+;if(i=n)i=0;报数到尾后,i恢复为0while(*p0)p+;coutendlthe last o

17、ne is NO:*p;运行结果为:input number of person:n=8the last one is NO:7习题6参考答案一、选择题1A 2C 3A二、填空题1局部,全部2允许,不允许3main4in line5可以在同名部变量的作用域中访问全局变量三、编程题1编写程序,计算1+2+3+n的值。其中n是自然数。分析:n1为1,n2为100即可程序设计如下: #includeint Get Sum(int n);void main()int num;int sum=0;cout Please enter a number:;cinnum;sum=GetSum(num);cou

18、tsumend1;while(1)return 0;int GetSum(int n)int s=0;for(int a=0;a=n;a+)s+=a;return s;2编写一个函数,该函数返回给定字符串中大写字母字符的个数。例如,字符串“Chinese Computer World”中,大写字母字符的个数为3个。程序设计如下:#includeiostream.h#includemathhint root(float,float,float);float xl,x2;void main()float a,b,c;cout请输入a,b,c的值:;cinabc;if(root(a,b,c)cout

19、x1=x1tx2=x2=0&a)t=sqrt(t);x1=(-b+t)(2*a);x2=(-b-t)(2*a);return 1;return0;3编写一个函数,分别求出一维整型数组an中所有值为奇数的元素个数和所有值为偶数的元素个数。程序设计如下:#includeint Getcount(char *p)int count=0;记录大写字母字符个数的变量,设初值为0while(*p!=NULL)如为大写字母,则总数加1if(*p=A&*p=z)count+;p+;return count;void Func(int a ,int n,int &ox,int &ex)int i=0;ox=0;

20、参数引用,返回数组中值为奇数的元素个数ex=0;参数引用,返回数组中值为偶数的元素个数while(in)if(ai2=0)ex+;elseox+;i+;4编写一个函数,求输入的两个自然数的最大公约数。程序设计如下:int Func(int Max,int Min)int Temp,Num;if(MaxMin)Temp=Max;Max=Min;Min=Temp;do Num=MaxMin;Max=Min;Min=Num;while(Num!=0);return Max;注释:本题采用“辗转相除法”。具体如下:(1)Max变量存放较大的数作为被除数,Min变量存放较小的数作为除数。(2)用Max除

21、以Min后的余数存放在Num中。(3)若Num!=0,则MaxMin,MinNum,继续相除得到的新的Num。(4)重复步骤(3),最后的Max就是最大公约数。5有4个人,其中第4个人比第3个人大2岁,第3个人比第2个人大2岁,第2个人又比第1个人大2岁,如果第1个人30岁,那么第4个人多少岁?用递归调用实现。程序设计如下:#includeiostreamhint year(int);void main()int n;cout请输入:第一个人的年龄(30):;cinn;cout第四个人的年龄是:year(n)endl;int year(int n)static int y=n,m=0;if(m

22、=3)return y;elsem+;y=year(y)+2;6求一元二次方程的实根程序。程序设计如下:#includeiostream.hint fun(int,int);void main()int n1,n2;cout输入两个正整数且前者要小于后者:; cinn1n2;cout从n1到n2的累加和为:fun(n1,n2)y?x:y;void main()int x,y,z,absmax;cinxyz;absmax=max(abs(x),abs(y);absmax=max(abs(absmax),abs(z);coutThe absolute value of maximal number

23、 is:;coutabsmaxend1;2 编写一个程序,利用宏定义一个常量N,然后生成、输出一个4*4(0 1 2 3,1 2 3 4,2 3 4 5,3 4 5 6)的数据阵列。程序设计如下:#include#define N4int main()intNN;for(int i=0;iN;i+)for(int j=0;jN;j+)*(*(a+i)+j)=i+j;for(i=0;iN;i+)for(int j=0;jN;j+)cout*(*(a+i)+j) ;coutend1;return 0;程序运行的结果:0 1 2 31 2 3 42 3 4 53 4 5 63 定义一个带参数的宏MIN,用于计算在两个参数中找出较小的一个。程序设计如下:#includestdioh#define MIN(m,n) mn?m:n定义宏名MIN替换运算mn? m:nvoid main()float t=36712,u=18645;定义实型变量t,ufloat min;min=MIN(t,u);调用带参数的宏MIN,求t和u的最小值coutminend1;运算结果是:18.645习题参考答案一、选择题1C 2C 3D 4D 5D 二、填空题1可以2不允许3为0,加14结构体变量名。成员名,(*结构体指针变量名),成员名,结构体指针变量名成员名5一

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

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