下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验 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.输入直角三角形的两条直角边长, 调用平方根
2、库函数 sqrt 来求斜边的 长度#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从键盘输入一个字符,如果输入的是英文大写字母,则将它转换成 小写字母后输出,否则输出原来输入的字符。
3、#include<iostream>using namespace std;int main()char c;1cout<<" 请输入一个字符: "cin>>c;if(c>='A'&& c<='Z')c+='a'-'A'cout<<c<<endl;return 0;3输入一个学生的成绩,如高于60 分,则输出 “pass” ;否则,输出 “failed ”。 #include<iostream>using nam
4、espace std;int main()float grade;cout<<" 请输入成绩: "cin>>grade;if(grade>=60)cout<<"pass"<<endl;elsecout<<"failed"return 0;4. 计算分段函数#include <iostream>#include <cmath>using namespace std;int main()double x,y; cout<<" 请
5、输入一个数 x:" 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;25. 从键盘上输入17之间的一个数字,输出其对应星期几的英文表示。#include <iostream>using namespace std;int main()char c;cout<<"Enter a character of numbers between
6、1 and 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&quo
7、t;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 '*':3 result=left
9、Operand*rightOperand;break;case '/': if(rightOperand!=0) result=leftOperand/rightOperand;elsecout<<" 除数为 0 ,除法不能进行 "<<endl;return 0;break;default:return 0;cout<<Operator<<" 是本程序不支持的操作。 "<<endl; cout<<leftOperand<<Operator<<r
10、ightOperand<<'='<<result <<endl; return 0;实验3三、思考题参考程序1n2"n1 .编程计算表达式k=1的值。#in elude <iostream>using n amespace 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;elsemean=0;cout<<
11、;"1 n个整数平方和的均值="<<mean<<endl;return 0;42输入两个正整数,判别它们是否互为互质数。所谓互质数,就是最 大公约数是 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
13、%4=0 && year%100 !=0)|(year%400=0) cout<<year<<'t'cout<<endl;return 0;4编写程序模拟猴子吃桃子问题:猴子第 1 天摘下若干桃子,当即吃 了一半,还不过瘾,又多吃了一个。第 2 天将剩下的桃子又吃了一半, 又多吃一个。以后每天都吃了前一天剩下的5一半零 1 个。到了第 10 天,只剩下了一个桃子。请问猴子第一天共摘 了多少个桃子?方法 1:#include <iostream> using namespace std; int main()int
14、day,qian,hou=1; for(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 <ios
15、tream> using namespace std;int peach(int);int main()个"<<e ndl;cout<<" 第 1 天共摘了 "<<peach(1)<<" return 0;int peach(int day)int number;6 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
16、)的值。方法1 :#include <iostream>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 names
17、pace std;int main()int i,n;long int sum(0),total(0);cout<<"input n:"cin>>n;for(i=1;i<=n;i+)sum+=i;total+=sum;7cout<<"s="<<total<<endl;return 0;6马克思曾经做过这样一道趣味数学题: 有 30 个人在一家小饭馆用餐, 其中有男人、女人和小孩。每个男人花了 3 先令,每个女人花了 2 先令, 每个小孩花了 1 先令,一共花了 50 先令。请问男人、女人以
18、及小孩各 有几个人 ?#include <iostream>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;
19、return 0;实验 4 常用程序设计算法三、实验思考1 .读入一个整数N,若N为非负数,则计算N到2 X N之间的整数和; 若N为负数,则求2 X 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;
20、return 0;std;#include<iostream> using namespace 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-; coutvvsumvve ndl;retu rn 0;n值。292 .设s =111,求与8最接近的s的值及与之对应的3n#in clude<iostream>using n amespacestd;int main()float s=
21、1.0;int n=1;do+n;s+=1.0/n;while(s<=8);if(s-8)>(8-(s-1.0/n)cout<v"s二"vvs-1.0/n<<''<<"n二"vvn-1<<e ndl;elsecout<<"s="<<s<<''<<" n二"vvnvven dl;return 0;3 .已知A >B>C,且A+B+C<100 ,求满足1T1的共有多少组
22、。A2B2C2 #in clude <iostream>using n amespace 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 + BB)* C * C) cout<< A << '' << B << '' <<C <<
23、endl;+count;cout<< "countis:" << count<<endl;10return 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/1
24、00%10) cout<<n<<endl;return 0;115编程验证 “四方定理 ”:所有自然数至多只要用 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<
25、;=k;l+) if(number=i*i+j*j+k*k+l*l)cout<<number<<"="<<i<<"*"<<i<<"+"<<j<<"*"<<j<<"+"<< k<<"*"<<k<<"+"<<l<<"*"<<l<<
26、;endl;exit(0);return 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;elsen=n*3+1;12return 0;
27、if(n=1) flag=0; cout<<"success!"<<endl; 实验 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)
28、 cout<<"min Fibonacci="<<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;13else
29、return num_n(n-1,a)*10+a;void main()int i,n;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. 参考程序如下:#includ
30、e <iostream>using namespace std;int isprime(int n) / 判断 n 是否为素数的函数 int i;for (i=2;i<n-1;i+)if (n%i=0) return 0;/ 非素数,函数值返回 0 return 1;/ 素数,函 数值返回 1void main()int i,min_prime,max_prime;for (i=1000;i<=2000;i+)if(isprime(i)=1)cout<<" 最小素数 ="<<i<<endl; break; for
31、(i=2000;i>=1000;i- -)if(isprime(i)=1)cout<<" 最大素数 ="<<i<<endl; break; 4. 参考程序如下: #include <iostream> using namespace std;int sum(int n)14static 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);co
32、ut<<"1n 之和 ="<<s<<endl; 5. 参考程序如下: #include <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
33、 main()int i;int t; cin>>t;for (i=1;i<=t;i+)if (is_h(i)=1)cout<<" 回文数 :"<<i<<endl;156. 参考程序如下:#include <iostream> using namespace std;#define X (a+b)/2#define AREA X*h void main()float a,b,h,s;cin>>a>>b>>cout«"请分别输入a,b,h的值,用空格分隔!
34、 "<<endl; h;s=AREA;cout<<AREA<<endl;实验六 数组 三、实验思考题 参考源代码 思考题 1. shi_6_3_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&
35、lt;<" 请输入您要找的整数: "<<endl; cin>>yLooked;index=lookup(a,N,yLooked); / 函数调用 if(index!=-1) cout<<" 您要找的数下标为: "<<index<<endl; else cout<<" 没有找到 "<<yLooked<<endl;cout<<"n 谢谢使用本程序,再见 !"<<endl; cin.get();1
36、6 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;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) 个整数: "<<
37、;endl; for(i=0;i<N;i+) cin>>ai;xMax=max(a,N);cout<<" 数组中最大的的整数: "<<xMax<<endl; cout<<"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)
38、r=xi; / 发现了更大 的则 修改 r return r; / r 中 存有最大 元素的值17 思考题 3. shi_6_3_3.cpp#include <iostream.h>#define N 5void invert(int ,int); / 函数说明 void main() int i, aN;cout<<" 请输入 N(=5) 个整数: "<<endl; for(i=0;i<N;i+) cin>>ai;invert(a,N);for(i=0;i<N;i+) ccin.get();cout<<
39、;"n 这些数 逆序输出如下: n"<<endl; out<<ai<<" "cout<<"n 谢谢使用本程序,再见 !"<<endl; cin.get();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
40、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 列 的 二维 数组:" <<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;i
41、t<M;+it)if ( t>numitjt)t二numitjt,itt二it; if (i=itt) exist=1;break; if (exist) coutvv"鞍点为"<<t<<endl;else cout<<"无鞍点"<<en dl;cout«"n谢谢使用本程序,再见!"<<endl;cin.get(); cin.get(); 思考题 5. shi_6_3_5.cpp- i(刖廐“鼻屮、甲 Ei* 人汗 巧丨.V I 1 rl"fe
42、-4'1' fa *'«UkI. -h 齐弘 mHlL l l. L 叽 儿分析:采用3个数组,它们元素值含义如下:19第19/23页bab0 < ab1 w、< abN-1a、b、c数组元素值含义示意图#define N 7#in clude <iostream>#in clude<ioma nip>using n amespacestd; int main( ) int i,j,t,k,ik;int aN,bN,cN; cout<<"pleasein put N numbers:"<
43、<e ndl; for (i=0;i<N;i+)cin>>ai;/从键盘上输入N个元素,a0保存第一个数据cout<<"a 数组各元素的值:"<<'n'for(i=0;i<N;i+)cout<<setw(6)<<ai; cout<<e ndl;for (i=0;i<N;i+)bi=i;for (i=0;i<N-1;i+)/ 排序,使 ab0 < ab1 w、< abN-1 k=i; /每轮选择过程开始时假定abi最小,将下标i保存在k中for (j=i+1;j<N;j+)abk与abi后面的元素逐个比较if (abk>abj) k=j; II 若发现某个 abj小于 abk,则将 k 修改 为 j if (k!=i)20第20/23页 t=bi;bi=bk;bk=t; cout«"b数组各元素的值:"<v'n:for(i=0;i<N;i+)cout<<setw(6)vvbi; cout<<e ndl;ik=1;cb0=ik;for (i=1;i<N;i+) i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光刻技术介绍
- 2025-2026学年统编版七年级语文上册期末检测卷
- 普外科高级考试及答案
- 茂名高中会考试卷及答案
- 锂电池基础考试试题及答案
- 光伏基建安全培训课件
- 2024年广东中考语文试题分类汇编:古诗词阅读
- 侨务外交礼仪培训课件
- 佳木斯食品安全培训课件
- 反复记号题目题目及答案
- 2025全国交管12123学法减分必考题库和答案(完整版)
- 【MOOC】《国际商务》(暨南大学)期末考试慕课答案
- 高中英语语法过去完成时优秀公开课课件
- 安全生产监管知识培训课件
- 高中综合实践活动-调查问卷的设计教学课件设计
- CQI-12特殊过程:涂装系统评估表(中文第三版)
- 云南省地方课程四年级上册《源远流长话云南》期末试卷
- 高分子材料课件
- 任良天集体备课基本不等式
- SB/T 10379-2012速冻调制食品
- GA 1524-2018射钉器公共安全要求
评论
0/150
提交评论