c+基础练习题及解答细节全解_第1页
c+基础练习题及解答细节全解_第2页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

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

2、cute按钮(快捷键 Ctrl+F5),查看程序运行结果。#in cludevoid mai n()coutvvHello :-) n /; 省略号处是想要输出到屏幕上的内容。2、将两个数交换后输出。分析交换两个数,一般方法是用一个中间变量,经过几次赋值实现。#i nclude void mai n()double a, b, temp;coutvv请输入任意两个数(以空格间隔输入):;/此语句是显示输入提示cinab;/此语句是将用户输入的两个数依次保存到a、b 两个变量中coutva=vavv vvb=vbvvendl;/ 此语句是输岀 a、b 两个变量的值temp = a; /此语句是将

3、变量 a 的值赋给变量 temp, = /称为赋值号;/完成省略号处的语句,将变量b 的值赋给变量 a;/完成省略号处的语句,将变量temp 的值赋给变量 b;/完成省略号处的语句,再次输出变量的值,观察其值是否交换了#i ncludevoid main()double a, b, temp;coutab;/此语句是将用户输入的两个数依次保存到 a、b 两个变量中coutva=vavv b=bendl; / 此语句是输出 a、b 两个变量的值 temp = a; /此语句是将变量 a 的值赋给变量 temp,= ”称为赋值号 a=b; /完成省略号处的语句,将变量 b 的值赋给变量 ab=te

4、mp ;/完成省略号处的语句,将变量 temp 的值赋给变量 bcouta=ab=b “n”;/ 完成省略号处的语句, 再次输出变量的值,观察其值是否交换了3. 使用 cout 对象,在输出窗口上显示如下的图形:提示:在 C+的字符常量中,一个反斜线字符是#include void main()coutt/*endl;cout /*endl;cout /*tt Xt Xendl;cout |*tt Xt Xendl;cout |*t XXXXXXX XXXXXXXendl;cout |*tt Xt Xendl;cout *tt Xt Xendl;cout *endl;coutt*/endl;4

5、. 根据注释补充下面的程序中省略号处的语句,运行程序,并理解其语句及输出 的含义:#includevoid main();/定义一个整型变量 a;/定义一个字符型变量 bb = a; / 给变量 b 赋值为字符 a ; / 将变量 b 的值赋给变量 acout a=”vavendl; 输出变量 a 的值;输出变量 b 的值#includevoid main() int a; / 定义一个整型变量 achar b; / 定义一个字符型变量 bb = a;/ 给变量 b 赋值a=b; / 将变量 b 的值赋给变量 acout a=aendl; / 输出变量 a 的值cout b=bx_int ),

6、输出并观察(x_int/y_double )、 (y_double-m_char)以及 n_bool 的值,理解这些输出的含义。例如:输入 1 1 1#i ncludevoid main()int x_int;double y_double;char m_char;bool n _bool;coutvv请输入一个整数、一个实数和一个字符:;cinx_in ty_doublem_char;n _bool=m_charx_i nt;coutx_intv7vvy_doublev=x_int/y_doubleendl;coutvvy_doublevv-vm_charvv=vvy_double-m_ch

7、arvve ndl;cout n _bool=n _boole ndl; 一 一2输出一个字符(这个字符可以是在程序开始赋值,或由用户输入)的前驱字符 (ASCII 编码表上该字符前面的字符)、后继字符(ASCII 编码表上该字符后面的字符) 及其 ASCII 码值。#in cludevoid mai n()char qia nqu, zifu, houji;coutvv请输入一个字符:;cin zifu;qia nqu=zifu-1;houji=zifu+1;coutvvqia nqu vzifuv vvhoujivve ndl; coutvvi nt(qia nqu) in t(zifu)

8、 in t(houji)e ndl;3编写程序:根据用户输入的球的半径值,分别计算球的表面积、体积和质量, 并输出计算结果。提示假设用户输入的球的半径的单位是米,球的密度为 7.8kg/m3,球的表面积的计算公式为s 4 r2,球的体积的计算公式为v4r3。其中n的值使用 3.14 即可。3#includevoid main()const double pi=3.14, midu=7.8; double banjing, bmianji, tiji, zhiliang; coutbanjing;bmianji=4*pi*banjing*banjing; tiji=bmianji*banjing

9、/3;zhiliang=tiji*midu;cout 该球的表面积为 bmianji 平方米,体积为 tiji 立方米,质量为 zhiliang 千克。 n;4让用户输入一个秒数,编程实现将它转换成小时、分钟、秒来表示。例如输入 7278 秒,则输出: 2 小时 1 分 18秒。#includevoid main()int zongm, shi, fen, miao; coutzongm;if(zongm0)shi=zongm/3600; fen=zongm%3600/60; miao=zongm%60; coutshi 小时, fen 分, vvmiaovv秒n;实验三 分支选择语句的应用提

10、示:每题建立一个 C+ 源文件。当完成一个题目后,使用菜单“文件”“关闭工作空间”,再新 建 C+ 源文件做下一个题目。1 .用户输入两个整数 x 和 y,问:y 是否是 x 的倍数? 编程输出回答“是”或“不是”。#include void main()int x, y; coutxy;if(y%x=O)coutvvyvv是x的倍数。n;elsecoutvvyvv不是x的倍数。n;2 编写程序求解如下分段函数。厂X2-162,x12#i:Clu半Vi0+30a毗妥x70 double x, y;cout x;if(x12) y=x*x-162;else if(x=70) y=x+30;els

11、e y=100;00山=6 ndl;3单位编排活动小组,30 岁及以下的分在第一组,40 岁的分在第二组,50 岁以 上的分在第三组,其余年龄的分在第四组。假设王五输入了自己的年龄,保存在变量 age 中,那么他应该分在第几组?编程求解并输出答案。#i nclude void main()int age;coutvv请输入年龄:;cin age;if(age=2 0&age70)if(age50)coutvv应分至第三组。n; elsecoutvv应分至第四组。n; else coutvv输入年龄不合理! n;4根据用户输入的整数(17 代表星期一 星期日),编程输出星期这一天对应的

12、英文或中文名称。例如,用户输入 3,则输出应显示为“ Wednsday ”或“星期三”。#in clude viostream.h void mai n()int a;cout请输入星期(17):;cin a;switch(a)case 1: cout Mon day n; break;case 2: coutTuesdayn; break;case 3: coutWed nesdayn; break;case 4: coutThursdayn; break;case 5: coutFridayn; break;case 6: coutSaturdayn; break;case 7: cout

13、S un dayn; break;default: coutvoid mai n()char xin gbie;int she ngao, tizh ong;coutvv请输入性别(m代表男性,f 代表女性):;cinxin gbie;if(xi ngbie=m)|(xi ngbie=f)coutvv请输入身高(厘米):;cin she ngao;if(xin gbie=m) tizh on g=she ngao-105;else tizh on g=she ngao-100;coutvv标准体重为vvtizhongvoid main()double a,b;char c;coutabc;sw

14、itch(c)case +: couta+b=a+bendl; break;case -: couta-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 亿元,如果该县预计平均年工业总产值增

15、长 率为 4.5% ,那么多少年后该县年工业总产值将超 500 亿元?(参考答案: 21 年) #include void main()double chanzhi=200;int nianshu=0;while(chanzhi=500)nianshu+; chanzhi*=1.045;cout经过nianshu年后该县年工业总产值将超过 500 亿元。n;2 请在屏幕上显示 N 行如图所示的数值(即第 i 行为“i: i2i3”),其中 N 是个常量,其值在程序运行之初确定。(要求:用 for 语句实现)#includevoid main()const int N=10;for(int i=

16、1;i=N;i+)couti:ti*iti*i*iendl;3编写循环程序,判断用户输入的一个数是正数还是负数,当输入的数大于 0 时, 输出“正数”;输入的数小于 0时,输出“负数”;输入的数为 0 时结束程序。最后 输出这些数相加的总和。(要求:用 do-while 语句实现) #include void main()double x;docoutx;if(x0) cout 正数 n;else if(x0) cout 负数 n;while(x!=0);4 .编程求解使不等式 12+32+52+ . +n2 limit 成立的最大 n 值。其中 limit 可以定义为常量或定义为变量。(实验

17、数据: limit=10 时 n=1 ;limit=100 时 n=7 ;limit=65535 时 n=71 ) #include void main()int limit;coutlimit;int n=1, s=0;while(slimit)s+=n*n;n+=2;coutvv使该不等式成立的最大 n 值为:(n-4)vendl;5(选做).请用户输入 20 个字符,编程实现将其中的小写字母转换为大写字母后 输出。例如,若用户输入“ VkQK0MsQ,mb/;lGa;q ”,则应输出 “VKQK0MSQ,MB/;lGA;Q ”。提示: 每一个英文字母的大写和小写的 ASCII 码相差 3

18、2。 即, 若字符型变量 ch 中 是一个小写英文字母, 则 char(ch-32)即其对应的大写英文字母。#include void main()char ch;int i;coutvv请输入 20 个字符:;i=0;while(i ch;if(ch=a&ch=z) coutchar(ch-32);else coutch;i+;coute ndl;6 (选做)有 20 只猴子吃掉 50 个桃子,已知每只公猴能吃 5 个桃子、每只母猴 能吃 4 个桃子、每只小猴能吃 2 个桃子,编程求出这 20 只猴子中可以有公猴、母猴、 小猴各多少只。(答案:0 5 15 或 2 2 16)#i n

19、cludevoid main()int gong, mu, xiao;for(gon g=0; gon g=10; gon g+)for(mu=0; mu=12; mu+)xiao=20-go ng-mu;if(5*go ng+4*mu+2*xiao=50)cout公侯gong只,母猴mu只,小猴xiao只n;实验五函数的概念及应用1 .编写一个函数 double f(double x),求解如下分段函数。-62 (x0)x5-62 (0=x2)x-32(2=x=38)提示:求幕的数学函数是 pow(x, y),求平方根的数学函数是 sqrt(x)。要使用这些 数学函数,需要在文件开始添加预编

20、译指令#include。#i nclude#in cludedouble f(double);void mai n()double x;x=-28;coutx=x, y=vvf(x)ve ndl;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;double f(double x)double y;if(x0) y=-62;else if(x2) y=pow(x, 5)-62;else if(x38) y=x-32;else y=sqrt(x-2);

21、return y;2.对任意给定的两个正整数 m、n,求 s=m ! +n !。要求先自定义一个 C+函数,实现求一个正整数的阶乘,即 double jiecheng(int x), 再在主函数中调用该自定义函数,根据用户输入的整数m 和 n,求出 s 的值。#include double jiecheng(int);void main()int m, n;coutmn;if(m0&n0)coutm!+n!=(jiecheng(m)+jiecheng(n)endl;elsecout 您输入的不是两个正整数! n;double jiecheng(int n)double s=1;for(

22、int i=1; i=n; i+)s*=i;return s;3. 编写一个函数 bool sxh( int n ),判断一个 3 位正整数是否是水仙花数,若是返 回 true,否则返回 false。并在主函数中使用该函数找出所有的水仙花数打印在屏幕上。说明:若一个 3 位正整数的各位数字的立方和等于这个整数, 则称之为“水仙花数”。 例如: 153 是水仙花数,因为 153=1*1*1+5*5*5+3*3*3 。#includebool sxh(i nt);void main()cout 水仙花数:n;for(int i=100; i1000; i+)if(sxh(i) coutvvivv;

23、coute ndl;bool sxh(i nt n)int ge=n%10;int shi=n/10%10;int bai=n/100;if(ge*ge*ge+shi*shi*shi+bai*bai*bai=n) return true;elsereturn false;(选做)编程实现,在屏幕上输出如下所示由组成的 X 形图案。#in cludevoid mai n()const int LINE=9;for(int i=1; i=LINE; i+)for(i nt j=1; j void first();void sec on d();void main()cout基本九九表:nn;fir

24、st();coute ndl;cout改进后的九九表:nn; sec on d();coute ndl;/基本(图 1)void first()int i, j;for(i=1; i10; i+)for(j=1; j=i; j+) 8山$6上可(4)门;coute ndl;/改进(图 2)void sec on d()int i, j; 8山$61可(5)|;for(i=1; i10; i+)coute ndl;for(i=1; i43; i+)coutvv-;coutendl;for(i=1; i10; i+)coutsetw(3)i |; for(j=1; j=i; j+) coutset

25、w(4)i*j; coutendl;图 1#include实验六 流程控制语句、函数的综合应用1编写一个函数 bool sushu ( int n ),判断用户输入的一个正整数是否是素数,若 是返回 true,否则返回 false。提示:素数即质数,判断 n 是否素数的方法是:分别用 2、3、4、n-1 去除 n ,如果 n 能被 整除,则表明 n 不是素数,反之是素数。说明: 1 不是素数, 2、 3、 5、 7、 11 、 1 3 、 。等是素数。#includebool sushu ( int n );void main()int x;coutx;if(x0)if(sushu(x) coutx 是素数 n; else coutx 不是素数 n;else cout 您输入的不是正数 ! n;bool sushu ( int n )if(n2) return false;int i=2;while(in)if(n%i=0) re

温馨提示

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

评论

0/150

提交评论