c++基础练习题及解答细节全解_第1页
c++基础练习题及解答细节全解_第2页
c++基础练习题及解答细节全解_第3页
c++基础练习题及解答细节全解_第4页
c++基础练习题及解答细节全解_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、“C+程序设计”实验一简单的C+程序1、编写简单的屏幕输出程序:过程首先在资源管理器中,在用户盘(硬盘)创建自己的文件夹,例如可以以自己的学号为名建立文件夹。进入VisualC+开发环境,新建C+源文件,存放在上一步建立的文件夹中。打开源文件编辑窗口,输入以下源代码:#includevoidmain()|cout;/省略号处是想要输出到屏幕上的内容,可以随意编辑。)保存文件后单击“编译compile”按钮等(快捷键CW+F7),在出现的对话框中单击“是”。若没有错误,继续单击“连接build”按钮(快捷键F7)。若没有错误则继续单击“执行?。仇?”按钮(快捷键Ctrl+F5),查看程序运行结果

2、。#includevoidmain()coutHello:-)n;/省略号处是想要输出到屏幕上的内容。2、将两个数交换后输出。分析交换两个数,一般方法是用一个中间变量,经过几次赋值实现。#includevoidmain()doublea,b,temp;coutab;/此语句是将用户输入的两个数依次保存到a、b两个变量中couta=ab=bendl;/此语句是输出a、b两个变量的值temp=a;/此语句是将变量a的值赋给变量temp,“=”称为赋值号;/完成省略号处的语句,将变量b的值赋给变量a;/完成省略号处的语句,将变量temp的值赋给变量b;/完成省略号处的语句,再次输出变量的值,观察其值

3、是否交换了#includevoidmain()doublea,b,temp;coutab;/此语句是将用户输入的两个数依次保存到a、b两个变量中couta=ab=bendl;/此语句是输出a、b两个变量的值temp=a;/此语句是将变量a的值赋给变量temp,“二”称为赋值号a=b;/完成省略号处的语句,将变量b的值赋给变量ab=temp;完成省略号处的语句,将变量temp的值赋给变量bcouta=ab=b“n”;/完成省略号处的语句,再次输出变量的值,观察其值是否交换了3.使用cout对象,在输出窗口上显示如下的图形:提示:在C+的字符常量中,一个反斜线字符是。#includevoidmai

4、n()coutt/*endl;cout/*endl;cout/*ttXtXendl;cout|*ttXtXendl;cout|*tXXXXXXXXXXXXXXendl;cout|*ttXtXendl;cout*ttXtXendl;cout*endl;coutt*/endl;4根据注释补充下面的程序中省略号处的语句,运行程序,并理解其语句及输出的含义:#includevoidmain();定义一个整型变量a;/定义一个字符型变量bb=a;/给变量b赋值为字符a;将变量b的值赋给变量acouta=aendl;输出变量a的值;输出变量b的值#includevoidmain()inta;/定义一个整型

5、变量acharb;/定义一个字符型变量bb=a;/给变量b赋值a=b;/将变量b的值赋给变量acouta=aendl;输出变量a的值coutb=bx_int),输出并观察(x_int/y_double)、(y_double-m_char)以及n_bool的值,理解这些输出的含义。例如:输入111#includevoidmain()intx_int;doubley_double;charm_char;booln_bool;coutx_inty_doublem_char;n_bool=m_charx_int;coutx_int/y_double=x_int/y_doubleendl;couty_d

6、ouble-m_char=y_double-m_charendl;coutn_bool=n_boolendl;.输出一个字符(这个字符可以是在程序开始赋值,或由用户输入)的前驱字符(ASCII编码表上该字符前面的字符)、后继字符(ASCII编码表上该字符后面的字符)及其ASCII码值。#includevoidmain()charqianqu,zifu,houji;coutzifu;qianqu=zifu-1;houji=zifu+1;coutqianquzifuhoujiendl;coutint(qianqu)int(zifu)int(houji)endl;3编写程序:根据用户输入的球的半径值

7、,分别计算球的表面积、体积和质量,并输出计算结果。提示假设用户输入的球的半径的单位是米,球的密度为7.8kg/m3,球的表面积的计算公式4为s=4冗r2,球的体积的计算公式为v=3兀r3。其中n的值使用3.14即可。#includevoidmain()constdoublepi=3.14,midu=7.8;doublebanjing,bmianji,tiji,zhiliang;coutbanjing;bmianji=4*pi*banjing*banjing;tiji=bmianji*banjing/3;zhiliang=tiji*midu;cout该球的表面积为bmianji平方米,体积为ti

8、ji立方米,质量为zhiliang千克。n”;)4.让用户输入一个秒数,编程实现将它转换成小时、分钟、秒来表示。例如输入7278秒,则输出:2小时1分18秒。#includevoidmain()intzongm,shi,fen,miao;coutzongm;if(zongm0)shi=zongm/3600;fen=zongm%3600/60;miao=zongm%60;coutshi小时,fen分,miao秒n;)实验三分支选择语句的应用提示:每题建立一个C+源文件。当完成一个题目后,使用菜单“文件”一“关闭工作空间”,再新建C+源文件做下一个题目。.用户输入两个整数X和y,问:y是否是x的倍

9、数?编程输出回答“是”或“不是”。#includevoidmain()intx,y;coutxy;if(y%x=0)couty是x的倍数。n;elsecouty不是x的倍数。n;).编写程序求解如下分段函数。#inclu”R162,x12丫=-e”am=x70doublex,y;coutx;if(x12)y=x*x-162;elseif(x=70)y=x+30;elsey=100;couty=yendl;3单位编排活动小组,30岁及以下的分在第一组,40岁的分在第二组,50岁以上的分在第三组,其余年龄的分在第四组。假设王五输入了自己的年龄,保存在变量age中,那么他应该分在第几组?编程求解并输

10、出答案。#includevoidmain()intage;coutage;if(age=20&age70)if(age=30)cout应分至第一组。n;elseif(age=40)cout50)cout应分至第三组。n;elsecout应分至第四组。n;else8出输入年龄不合理!n;4根据用户输入的整数(17代表星期一星期日),编程输出星期这一天对应的英文或中文名称。例如,用户输入3,则输出应显示为“Wednsday”或“星期三”。#includevoidmain()inta;couta;switch(a)coutMondayn;break;coutTuesdayn;break;coutWe

11、dnesdayn;break;coutThursdayn;break;coutFridayn;break;coutSaturdayn;break;coutSundayn;break;default:couterrorn;5.已知标准体重的计算方法如下:男性:标准体重(kg)=身高(cm)-100女性:标准体重(kg)=身高(cm)-105试编写程序,由用户输入其性别(m代表男性,f代表女性)和身高,程序计算并输出其标准体重。#includevoidmain()(charxingbie;intshengao,tizhong;coutxingbie;if(xingbie=m)|(xingbie=f

12、)(coutshengao;if(xingbie=m)tizhong=shengao-105;elsetizhong=shengao-100;cout标准体重为边八。门9千克。n;6(选做).编程实现如下算术功能:用户输入两个数字(可带小数)及一个算术操作符(+、-、*或/),若输入的算术操作符不对,则输出提示信息(例如“无效的算术操作符,无法计算”),否则,即输出相应的算式及结果。注意:计算除法时,除数不能为0。#includevoidmain()(doublea,b;charc;coutabc;switch(c)(case+:couta+b=a+bendl;break;case-:cout

13、a-b=a-bendl;break;case*:couta*b=a*bendl;break;case/:if(b!=0)couta/b=a/bendl;elsecout除数不能为0!n;break;default:cout无效的算数操作符,无法计算!n;实验四循环语句的应用提示:每题建立一个C+源文件。当完成一个题目后,使用菜单“文件”一“关闭工作空间”,再新建C+源文件做下一个题目。1.设某县2000年工业总产值为200亿元,如果该县预计平均年工业总产值增长率为4.5%,那么多少年后该县年工业总产值将超500亿元?(参考答案:21年)#includevoidmain()doublechanz

14、hi=200;intnianshu=0;while(chanzhi=500)nianshu+;chanzhi*=1.045;cout经过nianshu年后该县年工业总产值将超过500亿元。n;2.请在屏幕上显示N行如图所示的数值(即第i行为“i:i2i3”),其中N是个常量,其值在程序运行之初确定。(要求:用for语句实现)#includevoidmain()constintN=10;for(inti=1;i=N;i+)couti:ti*iti*i*iendl;3编写循环程序,判断用户输入的一个数是正数还是负数,当输入的数大于0时,输出“正数”;输入的数小于0时,输出“负数”;输入的数为0时结

15、束程序。最后输出这些数相加的总和。(要求:用do-while语句实现)#includevoidmain()doublex;docoutx;if(x0)馍出正数行;elseif(x0)cout负数n;while(x!=0);4.编程求解使不等式12+32+52+n2limit成立的最大n值。其中limit可以定义为常量或定义为变量。(实验数据:limit=10时n=1;limit=100时n=7;limit=65535时n=71)#includevoidmain()intlimit;coutlimit;intn=1,s=0;while(slimit)s+=n*n;n+=2;cout”使该不等式成

16、立的最大n值为:(n-4)endl;5(选做)请用户输入20个字符,编程实现将其中的小写字母转换为大写字母后输出。例如,若用户输入“VkQK0MsQ,mb/;lGa;q,则应输出“VKQK0MSQ,MB/;lGA;Q。提示:每一个英文字母的大写和小写的ASCII码相差32。即,若字符型变量ch中是一个小写英文字母,则char(ch-32)即其对应的大写英文字母。#includevoidmain()charch;inti;cout请输入20个字符:;i=0;while(ich;if(ch=a&ch=z)coutchar(ch-32);elsecoutch;i+;coutendl;6(选做)有20

17、只猴子吃掉50个桃子,已知每只公猴能吃5个桃子、每只母猴能吃4个桃子、每只小猴能吃2个桃子,编程求出这20只猴子中可以有公猴、母猴、小猴各多少只。(答案:0515或2216)#includevoidmain()intgong,mu,xiao;for(gong=0;gong=10;gong+)for(mu=0;mu=12;mu+)xiao=20-gong-mu;if(5*gong+4*mu+2*xiao=50)cout公侯gong只,母猴mu只,小猴xiao只n;实验五函数的概念及应用.编写一个函数doublef(doublex),求解如下分段函数。产-62(x0)_Jx5-62(0=x2)y=

18、:x-32(2=x=38)提示:求幂的数学函数是pow(x,。,求平方根的数学函数是sqrt(x)。要使用这些数学函数,需要在文件开始添加预编译指令#includevmath.h。#include#includedoublef(double);voidmain()(doublex;x=-28;coutx=x,y=f(x)endl;x=0;coutx=x,y=f(x)endl;x=1;coutx=x,y=f(x)endl;x=15;coutx=x,y=f(x)endl;x=75;coutx=x,y=f(x)endl;)doublef(doublex)(doubley;if(x0)y=-62;el

19、seif(x2)y=pow(x,5)-62;elseif(x38)y=x-32;elsey=sqrt(x-2);returny;).对任意给定的两个正整数m、n,求s=m!+n!。要求先自定义一个C+函数,实现求一个正整数的阶乘,即doublejiecheng(intx),再在主函数中调用该自定义函数,根据用户输入的整数m和n,求出s的值。#includedoublejiecheng(int);voidmain()(intm,n;coutvv”请输入两个正整数:cinmn;if(m0&n0)coutm!+n!=(jiecheng(m)+jiecheng(n)endl;elsecoutvv”您输

20、入的不是两个正整数!n;)doublejiecheng(intn)(doubles=1;for(inti=1;i=n;i+)s*=i;returns;.编写一个函数boolsxh(intn),判断一个3位正整数是否是水仙花数,若是返回true,否则返回false。并在主函数中使用该函数找出所有的水仙花数打印在屏幕上。说明:若一个3位正整数的各位数字的立方和等于这个整数,则称之为“水仙花数”。例如:153是水仙花数,因为153=1*1*1+5*5*5+3*3*3。#includeboolsxh(int);voidmain()cout水仙花数:n;for(inti=100;i1000;i+)if(

21、sxh(i)couti;coutendl;boolsxh(intn)intge=n%10;intshi=n/10%10;intbai=n/100;if(ge*ge*ge+shi*shi*shi+bai*bai*bai=n)returntrue;elsereturnfalse;(选做).编程实现,在屏幕上输出如下所示由X组成的X形图案。#includevoidmain()constintLINE=9;for(inti=1;i=LINE;i+)for(intj=1;j=LINE;j+)if(i=j|i=LINE+1-j)coutX;elsecout;coutendl;5(选做)编写一个函数,实现在

22、屏幕上打印出九九乘法表。基本效果如下图1,同学们可自己作进一步的美化,如下图2。提示:两层循环嵌套使用。4TOC o 1-5 h z69812165161520256121824303G7142128354249816243240485664号1827364554637281#include#includevoidfirst();voidsecond();voidmain()cout基本九九表:nn;first();coutendl;cout改进后的九九表:nn;second();coutendl;/基本(图1)voidfirst()inti,j;for(i=1;i10;i+)for(j=1;

23、j=i;j+)coutsetw(4)i*j;coutendl;/改进(图2)voidsecond()inti,j;coutsetw(5)T;for(i=1;i10;i+)coutsetw(4)i;coutendl;for(i=1;i43;i+)cout-;coutendl;for(i=1;i10;i+)coutsetw(3)i|;for(j=1;j=i;j+)coutsetw(4)i*j;coutendl;实验六流程控制语句、函数的综合应用1.编写一个函数boolsushu(intn),判断用户输入的一个正整数是否是素数,若是返回true,否则返回false。提示:素数即质数,判断n是否素数的

24、方法是:分别用2、3、4、n-1去除n,如果n能被整除,则表明n不是素数,反之是素数。说明:1不是素数,2、3、5、7、11、13、。等是素数。#includeboolsushu(intn);voidmain()intx;coutx;if(x0)if(sushu(x)coutx是素数n;elsecoutx不是素数n;elsecout您输入的不是正数!n;boolsushu(intn)if(n2)returnfalse;inti=2;while(in)if(n%i=0)returnfalse;i+;returntrue;2编写一个函数求下式的和:s=a+aa+aaa+aaa其中a是19中的一个数

25、字(aaa的含义为100*a+10*a+a),项数为n,a和n皆为函数的参数。编写主函数,调用上述函数分别求出a为1时12项的和、a为5时8项的和,以及a为9时13项的和。提示:假设和式中的各项为b0b1b2bn,则可知b0=a,bl=b0 x10+a,b2=b1x10+a,。即每一项由前一项乘以10加a递推得到。#includedoublef(inta,intn);voidmain()inta=1,n=12;couta=a,n=n时,s=f(a,n)endl;a=5,n=8;couta=a,n=n时,s=f(a,n)endl;a=9,n=13;couta=a,n=n时,s=f(a,n)end

26、l;)doublef(inta,intn)(if(a9|n=0)return0;int0;doubleb=0,s=0;while(in)(b=b*10+a;s=s+b;i+;)returns;)3.编写函数一,判断一个年份是否是闰年,若是返回true,否则返回false。编写函数二,求一个月有多少天,输入参数:年、月;输出数据:该月的天数。提示:第二个函数需要调用第一个函数判断是否是闰年,从而确定二月是28天还是29天。编写主函数,调用上述函数,打印用户指定的日期(年、月、日)是该年的第几天。#includeboolrunnian(int);inttianshu(int,int);voidma

27、in()(intnian,yue,ri;coutnianyueri;if(nian0&yue=1&yue=1&ri0)(s+=tianshu(nian,i);i-;)cout这是该年第s天。n;)elsecout输入日期有误!n;)else馍出输入年月不合理!n;boolrunnian(intn)if(n%4=0&n%100!=0|n%400=0)returntrue;elsereturnfalse;inttianshu(intnian,intyue)switch(yue)case1:case3:case5:case10:case12:return31;case2:if(runnian(nia

28、n)return29;elsereturn28;case4:case6:case9:case11:return30;4.(选做)编写一个函数voidshapeV(intn=5),实现在屏幕上输出如下所示由组成的V形图,其中图案的层数根据参数n确定,形参n的默认值为5。并编写如下主函数测试上述函数的功能:voidmain()shapeV();shapeV(1);shapeV(11);#includevoidshapeV(intn=5);voidmain()shapeV();shapeV(1);shapeV(11);voidshapeV(intn)for(inti=1;i=n;i+)for(int

29、j=1;j=2*(n-i)+1;j+)cout;coutendl;/*从键盘上输入一个三角形中三条边a、b、c的长度,请利用求面积公式(其中s=(a+b+c)/2)求出三角形的面积。*/#include#includevoidmain()doublea,b,c,s,area;coutabc;if(a0&b0&c0&a+bc&b+ca&c+ab)s=(a+b+c)/2;area:sqrt(s*(s-a)*(s-b)*(s-c);coutarea=areaendl;elsecout输入有误:三角形两边之和不大于第三边!endl;/*将1-100之间奇数顺序累加存入n中,直到其和等于或大于200为止

30、*/#includevoidmain()intm,n=0;for(m=1;m=100&n200;m+=2)n+=m;coutn=nendl;/*编程求使不等式1+9+25+49+81+1000成立的最大n值。*/#includevoidmain()intn;for(inti=1,s=0;s1000;i+=2)s+=i*i;n=i-4;cout使该不等式成立的最大n值为:nendl;)/*已知一个正整数m,求其各位数字之和,保存到变量s中。*/#includevoidmain()intm,s=0,n;while(m!=0)n=m%10;s+=n;m=m/10;)coutsendl;)/*有一个数

31、列,它的第一项为0,第二项为1,以后每一项都是它的前两项之和,编程计算出此数列的第23项*/#includevoidmain()intjieguo;inta1=0,a2=1,a3;for(inti=3;i=23;i+)a3=a1+a2;a1=a2;a2=a3;)jieguo=a3;cout”该数列第23项为:jieguoendl;)/*求多项式1!+2!+3!+15!的值并存入变量out中.*/#includevoidmain()intn=1,s=0;doubleout=0;for(inti=1;i=15;i+)n=n*i;s+=n;coutsendl;out=s;)/*打印水仙花数及个数n(水仙花数是三位数,每位数字的立方和等于这个数本身)*/#includevoidmain()intm,n=0,a,b,c;for(m=100;m=999;m+)a=m/100;b=m%100/10;c=m%100%10;if(m=a*a*a+b*b*b+c*c*c)coutmn;n+;)/*定义一个C+函数:分段函数d

温馨提示

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

评论

0/150

提交评论