




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+4程序设计”实验一简单的C+程序1、编写简单的屏幕输出程序:过程 首先在资源管理器中,在用户盘(硬盘)创建自己的文件夹,例如可以以自己的学 号为名建立文件夹。 进入Visual C+开发环境,新建C+源文件,存放在上一步建立的文件夹中。打开 源文件编辑窗口,输入以下源代码:#i ncludevoid mai n()coutvv “”/;省略号处是想要输出到屏幕上的内容,可以随意编辑。 保存文件后单击“编译 compile/按钮惑僉(快捷键Ctrl+F7),在出现的对话框中 单击“是/。若没有错误,继续单击“连接build /按钮(快捷键F7)。若没有错误则继续单击“执行execute按钮!
2、(快捷键Ctrl+F5),查看程序运行结果。#i ncludevoid mai n()cout Hello :-) n / ; 省略号处是想要输出到屏幕上的内容。2、将两个数交换后输出。分析交换两个数,一般方法是用一个中间变量,经过几次赋值实现#in clude void mai n()double a, b, temp;coutab;/此语句是将用户输入的两个数依次保存到a、b两个变量中couta=ab=b endl; / 此语句是输出 a、b两个变量的值temp = a; /此语句是将变量a的值赋给变量temp, = /称为赋值号 ;/完成省略号处的语句,将变量b的值赋给变量a;/完成省略
3、号处的语句,将变量temp的值赋给变量b ;/完成省略号处的语句,再次输出变量的值,观察其值是否交换了#in cludevoid mai n()double a, b, temp;coutab;/此语句是将用户输入的两个数依次保存到 a、b两个变量中coutva=vavv b=bendl; / 此语句是输出 a、b两个变量的值 temp = a; /此语句是将变量a的值赋给变量temp,= ”称为赋值号 a=b;/完成省略号处的语句,将变量b的值赋给变量ab=temp ;完成省略号处的语句,将变量temp的值赋给变量bcouta=ab=b “n”;/ 完成省略号处的语句,再次输出变量的值,观察
4、其值是否交换了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. 根据注释补充下面的程序中省略号处的语句,运行程序, 并理解其语句及输出的含 义:#includevoid main();/定义一个整型变量a;/
5、定义一个字符型变量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 ),输出并观察(x_int/y_double )、(y_double-m_char) 以及n_bool的值,理解这些输出的含义。一一例如:输入1 1 1#in
6、 cludevoid mai n()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_i ntv7vvy_doublev= x_in t/y_doublee ndl; coutvvy_doublevv-vm_charvv=vvy_double-m_charvve ndl;cout n _bool=n _boole ndl;2输出一个字符(这个字符可以是在程序开始赋值,或由用户输入)的前驱字符(
7、ASCII 编码表上该字符前面的字符)、后继字符(ASCII编码表上该字符后面的字符)及其 ASCII 码值。#i ncludevoid 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) in t(houji)e ndl;3编写程序:根据用户输入的球的半径值,分别计算球的表面积、体积和质量,并 输出计算结果。提示假设用户输入的球的半径的单位是
8、米,球的密度为7.8kg/m3,球的表面积的计算公式为s=4:r2,球的体积的计算公式为v=4:r3。其中n的值使用3.14即可。3#i nclude void mai n()const double pi=3.14, midu=7.8; double banjing, bmianji, tiji, zhiliang; coutbanjing; bmianji=4*pi*banjing*banjing; tiji=bmianji*banjing/3; zhiliang=tiji*midu;cout 该球的表面积为 bmianji 平方米,体积为 tiji 立方米,质量为 zhiliang 千克
9、。 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; 实验三 分支选择语句的应用提示:每题建立一个 C+源文件。当完成一个题目后,使用菜单“文件”一“关闭工作空间”,再新建 C+ 源文件做下一个题目。1用户输入两个整数
10、x 和 y ,问: y 是否是 x 的倍数? 编程输出回答“是”或“不是”。#include void main()int x, y; coutxy;if(y%x=0)coutvvyvv是vvxvv的倍数。n;elsecoutvvyvv不是vvxvv的倍数。n;2 编写程序求解如下分段函数x2-162, x y= -x+30, 12= x70double x, y;cout请输入自变量x的值: cin x;if(x12) y=x*x-162;else if(x=70) y=x+30;else y=100; coutvy=vvyve ndl;3单位编排活动小组,30岁及以下的分在第一组,40岁的
11、分在第二组,50岁以上的 分在第三组,其余年龄的分在第四组。假设王五输入了自己的年龄,保存在变量age中,那么他应该分在第几组?编程求解并输出答案。#in clude void mai n()int age;coutvv请输入年龄:;cin age;if(age=20&age70)if(age50)cout应分至第三组。n;elsecout应分至第四组。n;elsecout输入年龄不合理! n;4.根据用户输入的整数(17代表星期一 星期日),编程输出星期这一天对应的英文 或中文名称。例如,用户输入 3,则输出应显示为“ Wednsday ”或“星期三”。#in clude void mai
12、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: coutS un dayn; break;default: coutvoid mai n()char xin gbie;int she ngao, tizh
13、o ng;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 mai n()double a,b;char c;coutvv请输入两个数字(可带小数)和一个操作符(+、-、*或7):;cin abc;switch(c)case +: coutvvavv+vvbvv=vva+bvv
14、e ndl; break;case -: coutvvavv-vvbvv=vva-bvve ndl; break;case *: couta*b=a*bendl; break;case /: if(b!=0) couta/b=a/bendl;else cout 除数不能为 0!n;break;default: cout 无效的算数操作符,无法计算! n; 实验四 循环语句的应用提示:每题建立一个 C+源文件。当完成一个题目后,使用菜单“文件”一“关闭工作空间”,再新建 C+ 源文件做下一个题目。1设某县 2000 年工业总产值为 200 亿元,如果该县预计平均年工业总产值增长率为 4.5% ,
15、那么多少年后该县年工业总产值将超 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: i2 i3”),其中N是个 常量,其值在程序运行之初确定。(要求:用 for 语句实现)#includevoid main()const int N=10;for(int i=1;i=N;i+) couti
16、:ti*iti*i*iendl;3编写循环程序,判断用户输入的一个数是正数还是负数,当输入的数大于0 时,输出“正数”;输入的数小于 0 时,输出“负数”;输入的数为 0 时结束程序。最后输出这 些数相加的总和。(要求:用 do-while 语句实现)#includevoid main()double x;do coutx; if(x0) cout 正数 n; else if(x0) cout 负数 n;while(x!=0); 2 2 2 24 .编程求解使不等式12+32+52+ +n2 limit成立的最大n值。其中limit可以定义为常量或定义为变量。(实验数据: limit=10 时
17、 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 个字符,编程实现将其中的小写字母转换为大写字母后输出。例如,若用户输入 “VkQKOMsQ,mb/;lGa;q ”,则应输出 “VKQKOMSQ,MB/;lGA;Q ”。 提示:每一个英文字母的大写和小写的 ASCII 码相差 32。即,若字符型变量 ch
18、中是 一个小写英文字母,则 char(ch-32) 即其对应的大写英文字母。#includevoid main()char ch;int i;coutvv请输入20个字符:; i=O;while(iv20)cinch; if(ch=a&chv=z) coutvvchar(ch-32); else coutvvch;i+;coutvvendl;6(选做).有 20 只猴子吃掉 50 个桃子,已知每只公猴能吃 5 个桃子、每只母猴能吃4个桃子、每只小猴能吃2个桃子,编程求出这20只猴子中可以有公猴、母猴、小猴各多 少只。(答案:0 515或2 216)#in cludevoid mai n()in
19、t gong, mu, xiao;for(go ng=0; gon g=10; gon g+)for(mu=0; mu=12; mu+)xiao=20-g on g-mu;if(5*g on g+4*mu+2*xiao=50)cout公侯gong只,母猴mu只,小猴xiao只n;实验五函数的概念及应用1 .编写一个函数double f(double x),求解如下分段函数。-62 (x0)5x -62 (0=x2)y= Vx-32(2=x=38)提示:求幕的数学函数是pow(x, y),求平方根的数学函数是sqrt(x)。要使用这些数学函数,需要在文件开始添加预编译指令#include 。#i
20、n clude#in cludedouble f(double);void mai n()double x;x=-28;coutx=x, y=f(x)e ndl;x=0;coutx=x, y=f(x)e ndl;x=1;coutx=x, y=f(x)e ndl;x=15;coutx=x, y=f(x)e ndl;x=75;coutx=x, y=f(x)e ndl;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);return y;2. 对
21、任意给定的两个正整数 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(int i=1; i=n; i+)s*=i;
22、return s;3. 编写一个函数 bool sxh( int n ),判断一个 3位正整数是否是水仙花数, 若是返回 true, 否则返回false。并在主函数中使用该函数找出所有的水仙花数打印在屏幕上。说明:若一个 3 位正整数的各位数字的立方和等于这个整数,则称之为“水仙花数” 。 例如: 153 是水仙花数,因为 153=1*1*1+5*5*5+3*3*3 。#includebool sxh(int);void main()cout 水仙花数:n;for(int i=100; i1000; i+)if(sxh(i) couti ;coutendl;bool sxh(int n)int
23、 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;4 (选做)编程实现,在屏幕上输出如下所示由组成的X形图案。#in clude void mai n()const int LINE=9;for(int i=1; i=LINE; i+)for(i nt j=1; j=LINE; j+)if(i=j|i=LINE+1-j) coutvvX; else cout;coute ndl; 5 (选做).编写一个函数,实现在屏幕上打印出九九乘法
24、表。基本效果如下图1,同学们可自己作进一步的美化,如下图 2提示:两层循环嵌套使用。4a12165101528256121824303671421283542498162432404B5E64918273645546372181il783642 4948 56 6454 63 72 81#in clude#i ncludevioma nip.h void first();void sec on d();void main()cout基本九九表:nn; first();coute ndl;cout改进后的九九表:nn; sec on d();coute ndl;/基本(图1)void first
25、() int i, j;for(i=1; i10; i+)for(j=1; j=i; j+) coutsetw(4)i*j; coutendl;/ 改进(图 2)void second()int i, j;coutsetw(5)|;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 编写一个函数 bool s
26、ushu ( int n ),判断用户输入的一个正整数是否是素数,若是返 回true,否则返回false。提示:素数即质数,判断n是否素数的方法是:分别用2、3、4、n-1去除n ,如果n能被整除,则表明 n 不是素数,反之是素数。说明: 1 不是素数, 2、 3、 5、 7、 11、 13、。等是素数。 #include bool 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 )i
27、f(n2) return false;int i=2;while(in)if(n%i=0) return false;i+;return true;2编写一个函数求下式的和:s=a+aa+aaa+ +aaa其中a是19中的一个数字(aaa的含义为100*a+10*a+a),项数为n, a和n皆为函 数的参数。编写主函数,调用上述函数分别求出a为1时12项的和、a为5时8项的和,以及a为 9时 13项的和。提示:假设和式中的各项为 b0,b1,b2,b,则可知b0 = a, bl = b0采0+a, b2 = bl采0+ a,。即每一项由前一项乘以10加a递推得到。#includedouble
28、f(int a, int n);void main()int a=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)endl;double f(int a, int n)if(a9 | n=0) return 0;int i=0;double b=0, s=0;while(in)b=b*10+a;s=s+b;i+;return s;3 编写函数一,判断一个年份是否是闰年,若是返回true,否则返回false。编写函数提示:
29、第二个函数29 天。是该年的第几天。二,求一个月有多少天,输入参数:年、月;输出数据:该月的天数。 需要调用第一个函数判断是否是闰年,从而确定二月是28 天还是编写主函数,调用上述函数,打印用户指定的日期(年、月、日) #include bool runnian(int);int tianshu(int, int);void main()int nian, yue, ri; coutnianyueri;if(nian0&yue=1&yue=1&ri0) s+=tianshu(nian, i);i-;cout 这是该年第 s 天。 n;elsecout 输入日期有误! n;else cout 输
30、入年月不合理! n;bool runnian(int n) if(n%4=0&n%100!=0|n%400=0) return true;elsereturn false;int tianshu(int nian, int yue)switch(yue)case 1:case 3:case 5:case 7:case 8:case 10:case 12: return 31;case 2:if(runnian(nian) retur n 29;else retur n 28;case 4:case 6:case 9:case 11:return 30;4 (选做)编写一个函数void shap
31、eV(int n=5),实现在屏幕上输出如下所示由 组成的V形图,其中图案的层数根据参数n确定,形参n的默认值为5。并编写如下主函数测试上述函数的功能:void mai n()shapeV();shapeV( 1);shapeV( 11);#i ncludevoid shapeV(i nt n=5);void mai n()shapeV();shapeV(1);shapeV(11);void shapeV(i nt n)for(i nt i=1; i=n; i+)for(int j=1; j=2*(n-i)+1; j+) cout; coute ndl;/*从键盘上输入一个三角形中三条边a、b
32、、c的长度,请利用求面积公式(其中s=(a+b+c)/2)求出三角形的面积。*/ #in clude #include void main()double a,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 为止*/#include void main()in
33、t m,n=0;for(m=1;m=100&n200;m+=2)n+=m;coutn=nendl;/* 编程求使不等式 1+9+25+49+81+1000成立的最大 n值。*/#includevoid main()int n;for(int i=1, s=0; s1000; i+=2)s+=i*i;n=i-4;cout 使该不等式成立的最大 n 值为: nendl;/*已知一个正整数 m,求其各位数字之和,保存到变量s中。*/#include void main()int m,s=0,n;while( m!=0)n=m%10;s+=n; m=m/10; coutsendl;/* 有一个数列,它
34、的第一项为 0,第二项为 1,以后每一项都是它的前两项之和,编程 计算出此数列的第 23 项 */#includevoid main()int jieguo;int a1=0, a2=1, a3;for(int i=3; i=23; i+)a3=a1+a2;a1=a2;a2=a3;jieguo=a3;cout 该数列第 23 项为: jieguoendl;/* 求多项式1 ! +2! +3! +15!的值并 存入变量 out 中 .*/#include void main()int n=1,s=0;double out=0;for (int i=1; i=15; i+)n = n*i;s += n;cout sendl;out = s ;/* 打印水仙花数及个数 n (水仙花数是三位数,每 位数字的立方和等于这个数本身)*/#include void main()int m,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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肾脏内科护理专业培养体系
- 2025年事业单位工勤技能-湖南-湖南客房服务员三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖南-湖南农机驾驶维修工三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖北-湖北放射技术员二级(技师)历年参考题库含答案解析
- 高速公路智能交通系统2025年智能交通法规与标准研究
- 2025年数字人民币跨境支付技术挑战与金融创新解决方案全解
- 建筑信息模型(BIM)在2025年建筑工程项目施工质量保证体系构建应用研究报告
- 2025年事业单位工勤技能-浙江-浙江水工监测工四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-河南-河南堤灌维护工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-河北-河北农机驾驶维修工五级(初级工)历年参考题库含答案解析(5套)
- 船舶代理公司管理制度
- 医学影像检查技术题库含答案
- 护理十八项核心制度考试题与答案
- 数据标注项目管理制度
- 云南劳动合同续签协议书
- 如何写好作文开头结尾 课件
- 2025安徽农业大学辅导员考试试题及答案
- 井工煤矿风险监测预警处置方案之安全监控系统监测预警处置方案
- 入股买船合同协议书
- 反洗钱知识竞赛题库反洗钱法知识测试题题库(题目+答案+解析)
- 机场考试试题大全及答案
评论
0/150
提交评论