版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、23实验1 C+基础6编写程序,输入某大写字母的ASCII码值,输出该字母的对应小写字母。#include<iostream>using namespace std;int main()int i;cin>>i;if(i>=65 && 1<=90 )cout<<char(i-'A'+'a')<<endl;elsecout<<"输入有误"<<endl;return 0; 实验2三、实验思考1.输入直角三角形的两条直角边长,调用平方根库函数sqrt
2、来求斜边的长度#include<iostream>#include<cmath>using namespace std;int main() float a,b,c; cout<<"请输入直角三角形的两条边长:" cin>>a>>b; c=sqrt(a*a+b*b); cout<<"直角三角形的斜边="<<c<<endl; return 0;2从键盘输入一个字符,如果输入的是英文大写字母,则将它转换成小写字母后输出,否则输出原来输入的字符。#include&l
3、t;iostream>using namespace std;int main() char c; cout<<"请输入一个字符:" cin>>c; if(c>='A'&& c<='Z')c+='a'-'A' cout<<c<<endl; return 0;3输入一个学生的成绩,如高于60分,则输出“pass”;否则,输出“failed”。#include<iostream>using namespace std;in
4、t main() float grade; cout<<"请输入成绩:" cin>>grade; if(grade>=60) cout<<"pass"<<endl; else cout<<"failed" return 0;4. 计算分段函数#include <iostream>#include <cmath>using namespace std;int main() double x,y; cout<<"请输入一个数x:
5、" cin>>x; if(!x) y=cos(x)-pow(x,2)+3*x; else y=sin(x)+sqrt(pow(x,2)+1)+3*x; cout<<"y="<<y<<endl; return 0;5. 从键盘上输入17之间的一个数字,输出其对应星期几的英文表示。#include <iostream>using namespace std;int main() char c; cout<<"Enter a character of numbers between 1 a
6、nd 7 :" cin>>c; switch(c) case '1':cout<<"Monday"break; case '2':cout<<"Tuesdag"break; case '3':cout<<"Wenesday"break; case '4':cout<<"Thursday"break; case '5':cout<<"Friday&
7、quot;break; case '6':cout<<"Saturday"break; case '7':cout<<"Sunday"break; default: cout<<" wrong number" cout<<endl; return 0;6. 设计一个简单的计算器程序,能够进行加、减、乘、除简单运算并显示结果。#include <iostream>using namespace std;int main() cout<<
8、;"输入简单的算术表达式:(数 操作符 数)" int leftOperand,rightOperand; char Operator; cin>>leftOperand>>Operator>>rightOperand; int result; switch(Operator) case '+': result=leftOperand+rightOperand;break; case '-': result=leftOperand-rightOperand;break; case '*':
9、result=leftOperand*rightOperand;break; case '/': if(rightOperand!=0) result=leftOperand/rightOperand; else cout<<"除数为0,除法不能进行"<<endl;return 0; break; default: cout<<Operator<<"是本程序不支持的操作。"<<endl; return 0; cout<<leftOperand<<Opera
10、tor<<rightOperand<<'='<<result<<endl; return 0; 实验3三、思考题参考程序1编程计算表达式的值。#include <iostream>using namespace std;int main() int n,k=1,sum=0,mean; cout<<"请输入n的值: " cin>>n; while(k<=n) sum+= k*k; k+; if (n>0) mean=sum/n; else mean=0; cout&
11、lt;<"1n个整数平方和的均值="<<mean<<endl; return 0;2输入两个正整数,判别它们是否互为互质数。所谓互质数,就是最大公约数是1。#include <iostream>using namespace std;int main() int m,n,r; cout<<"请输入两个正整数:" cin>>m>>n; cout<<m<<”和”<<n; if(m<n) r=m;m=n;n=r; while(r=m%n) m
12、=n; n=r; if(n=1) cout<<"是互质数 " <<endl;else cout<<”不是互质数”<<endl; return 0;3编写程序,输出从公元2000年至3000年间所有闰年的年号。#include <iostream>using namespace std;int main() int year; cout<<"公元2000年至3000年间闰年的年号:n" for(year=2000;year<=3000;year+) if(year%4=0 &am
13、p;& year%100 !=0)|(year%400=0) cout<<year<<'t' cout<<endl; return 0;4编写程序模拟猴子吃桃子问题:猴子第1天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天将剩下的桃子又吃了一半,又多吃一个。以后每天都吃了前一天剩下的一半零1个。到了第10天,只剩下了一个桃子。请问猴子第一天共摘了多少个桃子?方法1:#include <iostream>using namespace std;int main() int day,qian,hou=1; for(
14、day=9;day>=1;day-) qian=(hou+1)*2; hou=qian; cout<<qian<<endl; return 0;运行结果:1534方法2:#include <iostream>using namespace std;int main() int day,number=1; for(day=9;day>=1;day-) number=(number+1)*2; cout<<number<<endl; return 0;方法3:#include <iostream>using nam
15、espace std;int peach(int);int main() cout<<"第1天共摘了"<<peach(1)<<"个"<<endl; return 0;int peach(int day) int number; if(day=10) number=1; else number=2*(peach(day+1)+1); return number;5计算s=1+(1+2)+(1+2+3)+(1+2+3+4)+ +(1+2+3+ +n)的值。方法1:#include <iostream>
16、;using namespace std;int main() int i,j,n; long int sum,total(0); cout<<"input n:" cin>>n; for(i=1;i<=n;i+) sum=0; for(j=1;j<=i;j+) sum+=j; total+=sum; cout<<"s="<<total<<endl; return 0;#include <iostream>using namespace std;int main() in
17、t i,n; long int sum(0),total(0); cout<<"input n:" cin>>n; for(i=1;i<=n;i+) sum+=i; total+=sum; cout<<"s="<<total<<endl; return 0;6马克思曾经做过这样一道趣味数学题:有30个人在一家小饭馆用餐,其中有男人、女人和小孩。每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,一共花了50先令。请问男人、女人以及小孩各有几个人?#include <iostr
18、eam>using namespace std;int main() int x,y,z; for(x=1;x<=16;x+)for(y=1;y<=24;y+) z=30-x-y; if(3*x+2*y+z=50) cout<<"Men are "<<x<<",women are "<<y <<",children are "<<z<<"."<<endl; return 0;实验4 常用程序设计算法三、
19、实验思考1读入一个整数N,若N为非负数,则计算N到2×N之间的整数和;若N为负数,则求2×N到N之间的整数和。分别利用for和while写出两个程序。#include<iostream>using namespace std;int main()int N;cin>>N;int i=N;long sum=0;if(N>=0)for(;i<=2*N;i+)sum+=i;elsefor(;i>=2*N;i-)sum+=i;cout<<sum<<endl;return 0; #include<iostream
20、>using namespace std;int main()int N;cin>>N;int i=N;long sum=0;if(N>=0)while(i<=2*N)sum+=i; i+;elsewhile(i>=2*N)sum+=i;i-;cout<<sum<<endl;return 0;2设,求与8最接近的s的值及与之对应的n值。#include<iostream>using namespace std;int main()float s=1.0;int n=1;do +n;s+=1.0/n;while(s<=
21、8);if(s-8)>(8-(s-1.0/n)cout<<"s="<<s-1.0/n<<' '<<"n="<<n-1<<endl; elsecout<<"s="<<s<<' '<<"n="<<n<<endl;return 0;3已知>B>C,且A+B+C<100,求满足的共有多少组。#include <iostr
22、eam>using namespace std;int main()int A,B,C; int count=0; for(C=0;C!=33;+C )for(B=100; B>C;-B )for(A=100; A>B; -A)if(A + B + C < 100) && (A * A * B * B) = (A * A + B * B) * C * C) cout << A << ' ' << B << ' ' << C << endl; + cou
23、nt;cout << "count is:" << count << endl;return 0;4一司机出车祸后驾车逃离现场,第一位目击者记得车牌号前两位数字相同,且后两位数字也相同;第二位目击者是一位数学家,他看出车牌号是四位完全平方数。试推算肇事车的车牌号。#include<iostream>using namespace std;int main()int n,i;for(i=32;i<100;i+)n=i*i;if(n%10 = n%100/10 && n/1000 = n/100%10)cou
24、t<<n<<endl;return 0;5编程验证“四方定理”:所有自然数至多只要用4个数的平方和就可以表示。#include<iostream>using namespace std;int main()int number,i,j,k,l;cout<<"Please enter a number:"cin>>number;for(i=1;i<number/2;i+) for(j=0;j<=i;j+)for(k=0;k<=j;k+)for(l=0;l<=k;l+)if(number=i*i
25、+j*j+k*k+l*l) cout<<number<<"="<<i<<"*"<<i<<"+"<<j<<"*"<<j<<"+"<<k<<"*"<<k<<"+"<<l<<"*"<<l<<endl;exit(0);return
26、0;6编程验证“角谷猜想”:任给一个自然数,若为偶数则除以2,若为奇数则乘3加1,得到一个新的自然数,然后按同样的方法继续运算,若干次运算后得到的结果必然为1。#include<iostream>using namespace std;int main()int n,flag;flag=1;cout<<"please input n:"<<endl; cin>>n; while(flag)if(n%2=0)n=n/2;else n=n*3+1;if(n=1)flag=0; cout<<"success!&
27、quot;<<endl;return 0;实验5 函数和编译预处理三、实验思考1. 参考程序如下:#include <iostream>using namespace std;long int Fibonacci(int n); void main()int i; long int t,t1;cout<<"please input t:"<<endl;cin>>t;for (i=2;i+)t1=Fibonacci(i);if (t1>t) cout<<"min Fibonacci=&qu
28、ot;<<t1<<endl;break;long int Fibonacci(int n)if (n=0) return 1;else if (n=1) return 1;else return Fibonacci(n-1)+Fibonacci(n-2);2. 参考程序如下:#include <iostream>using namespace std;int num_n(int n,int a) /由n个a组成的多位数的计算if (n=1) return a;else return num_n(n-1,a)*10+a;void main()int i,n;
29、long int sum=0;cout<<"please input n:"<<endl;cin>>n;for (i=1;i<=n;i+)cout<<num_n(i,2)<<endl; sum+=num_n(i,2);cout<<"n="<<n<<":sum="<<sum<<endl;3. 参考程序如下:#include <iostream>using namespace std;int ispri
30、me(int n) /判断n是否为素数的函数int i;for (i=2;i<n-1;i+) if (n%i=0) return 0;/非素数,函数值返回0return 1;/素数,函数值返回1void main()int i,min_prime,max_prime;for (i=1000;i<=2000;i+)if(isprime(i)=1) cout<<"最小素数="<<i<<endl; break;for (i=2000;i>=1000;i-)if(isprime(i)=1) cout<<"最
31、大素数="<<i<<endl; break;4. 参考程序如下:#include <iostream>using namespace std;int sum(int n) static s=0;s=s+n;return s; void main()int i, n,s;cout<<"情指定n:"cin>>n;for (i=1;i<=n;i+)s=sum(i);cout<<"1n之和="<<s<<endl; 5. 参考程序如下:#include
32、<iostream>using namespace std;int is_h(int n) /判断参数n是否为回文int i,m,fn;/i用来记录n的某一位数字,m初值为n,fn用于记录n的倒序数m=n;fn=0;while(m!=0)i=(m%10);fn=(fn*10+i);m=m/10;if(fn=n) return 1; /是回文数返回1else return 0; /不是回文数返回0void main()int i;int t; cin>>t; for (i=1;i<=t;i+)if (is_h(i)=1)cout<<"回文数:&
33、quot;<<i<<endl; 6. 参考程序如下:#include <iostream>using namespace std;#define X (a+b)/2#define AREA X*hvoid main()float a,b,h,s;cout<<"请分别输入a,b,h的值,用空格分隔!"<<endl;cin>>a>>b>>h; s=AREA;cout<<AREA<<endl; 实验六 数组 三、实验思考题 参考源代码思考题1. shi_6_3_
34、1.cpp#include <iostream.h> #define N 5int lookup(int ,int ,int ); /函数说明void main() int i, aN,index,yLooked; cout<<"请输入N(=5)个整数:"<<endl; for(i=0;i<N;i+) cin>>ai; cout<<"请输入您要找的整数:"<<endl; cin>>yLooked;index=lookup(a,N,yLooked); /函数调用if(
35、index!=-1) cout<<"您要找的数下标为:"<<index<<endl;else cout<<"没有找到"<<yLooked<<endl; cout<<"n谢谢使用本程序,再见!"<<endl; cin.get(); cin.get();int lookup(int x,int n,int y) /函数定义int flag=-1; /首先假设找不到int i; for(i=0;i<n;i+)if(xi=y)flag=i;
36、break; /找到了则不必再往后找return flag;-思考题2. shi_6_3_2.cpp#include <iostream.h> #define N 5int max(int ,int ); /函数说明void main() int i, aN,xMax; cout<<"请输入N(=5)个整数:"<<endl; for(i=0;i<N;i+) cin>>ai;xMax=max(a,N);cout<<"数组中最大的的整数:"<<xMax<<endl;co
37、ut<<"n谢谢使用本程序,再见!"<<endl;cin.get();cin.get();int max(int x,int n)int i,r=x0; /首先假设 x0 最大, 且存于 r 中for(i=1;i<n;i+) / 也可写成 for(i=0;i<n;i+)if(xi>r) r=xi; / 发现了更大 的则 修改 rreturn r; / r 中 存有最大 元素的值-思考题3. shi_6_3_3.cpp#include <iostream.h> #define N 5void invert(int ,int
38、); /函数说明void main() int i, aN; cout<<"请输入N(=5)个整数:"<<endl; for(i=0;i<N;i+) cin>>ai; invert(a,N);cout<<"n 这些数 逆序输出如下:n"<<endl; for(i=0;i<N;i+) cout<<ai<<" "cout<<"n谢谢使用本程序,再见!"<<endl;cin.get();cin.get(
39、);void invert(int x,int n)int i=0, j=n-1,t; /while(i<j)t=xi; xi=xj; xj=t; i+;j-;return; -思考题4. shi_6_3_4.cpp#include <iostream.h> #define M 3 /M 行#define N 4 /N 列 void main() int numMN; /=1,6,9, 3,5,4, 2,7,8; int i,j,it,itt, t,jt,exist=0; cout<<"请输入 3 行 4 列 的 二维 数组:" <<
40、;endl; for (i=0;i<M;+i) for (j=0;j<N;+j) cin>>numij; for (i=0;i<M;+i) t=numi0; jt=0; for (j=0;j<N;+j) if ( t<numij) t=numij, jt=j; itt=i; for(it=0;it<M;+it) if ( t>numitjt) t=numitjt, itt=it; if (i=itt) exist=1;break; if (exist) cout<<"鞍点为 "<<t<<
41、;endl;else cout<<"无鞍点" <<endl;cout<<"n谢谢使用本程序,再见!"<<endl;cin.get();cin.get(); -思考题5. shi_6_3_5.cpp改正: 题目中添加 3 字5对数组A中的N个整数从小到大进行连续编号,要求不能改变这N个数在数组A中的存放顺序,且相同的数编号也相同。例如,若数组A中数为(5,3,4,7,3,5,6),则输出为(3,1,2,5,1,3,4)。分析:采用3个数组,它们元素值含义如下:#define N 7#include <i
42、ostream>#include <iomanip>using namespace std;int main( )int i,j,t,k,ik;int aN,bN,cN;cout<<"please input N numbers:"<<endl;for (i=0;i<N;i+) cin>>ai; /从键盘上输入N个元素,a0保存第一个数据cout<<"a数组各元素的值:"<<'n'for(i=0;i<N;i+) cout<<setw(6)
43、<<ai;cout<<endl;for (i=0;i<N;i+) bi=i;for (i=0;i<N-1;i+) /排序,使 ab0ab1 、.、abN-1 k=i; /每轮选择过程开始时假定 abi 最小,将下标i保存在k中 for (j=i+1;j<N;j+) /abk与abi 后面的元素逐个比较 if (abk>abj) k=j; /若发现某个abj小于abk,则将k修改为j if (k!=i) t=bi; bi=bk; bk=t; cout<<"b数组各元素的值:"<<'n'for(i=0;i<N;i+) cout<<setw(6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理核心制度的持续改进
- 护理安全管理中的患者安全倡导
- 护理中的评估与计划
- 护理职称评审材料准备指南
- 部编版二年级语文下册《蜘蛛开店 第1课时》
- 护理服务流程优化与成本控制
- 护理安全中的用药安全
- 护理管理中的医疗健康管理
- 矿业企业资产勘探与管理工作面试技巧
- 基于脑机协同的智能车辆安全性能提升策略研究报告
- 桥牌协会内部管理制度
- 2026重庆市南岸区消防救援支队消防文员招录2人笔试备考试题及答案解析
- 2026年山东省立第三医院初级岗位公开招聘人员(27人)笔试备考试题及答案解析
- 2026年滁州天长市大通镇预任制村干及村级后备干部储备库选拔28名笔试备考试题及答案解析
- 肠道菌群移植培训课件
- 医学影像学总论试题
- DB32-T 3310-2017船闸维护规程
- 新苏教版科学六年级下册全册教案(含反思)
- 世界现代化理论
- 内燃机车柴油机冷却水系统-交流传动内燃机车柴油机冷却水系统
- 化学入门-给小学生讲化学
评论
0/150
提交评论