C++上机课程序汇编(学长留).doc_第1页
C++上机课程序汇编(学长留).doc_第2页
C++上机课程序汇编(学长留).doc_第3页
C++上机课程序汇编(学长留).doc_第4页
C++上机课程序汇编(学长留).doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

输配电一班内部资料C+所有上机实验实验二第1题 编写程序计算梯形面积。公式为:s=(a+b)h/2,其中:a、b分别为梯形上底和下底的宽,h为梯形的高。 运行该语句后结果是 ?cout(cout5,2,8)endl; cout5,2; 为什么?#includevoid main()float a,b,h;float s;coutabh;s=(a+b)*h/2;cout梯形的面积为sendl;第2题 已知华氏温度和摄氏温度的转换公式为:C=(F-32)*5/9,其中C为摄氏温度F为华氏温度。假设当前华氏温度为80度,求对应的摄氏温度是多少?要求输出最后结果。#includevoid main()float F;float C;coutF;C=(F-32)*5/9;cout摄氏温度为:Cendl;第3题 假设三角形的三边长为3,4,5,求其面积。 (s=(a+b+c)/2,area=sqrt(s(s-a)(s-b)(s-c)(上述四题变量的值要求从键盘提供。) 提示:使用根号,需在文件前方加上独立的一行#include ,并使用sqrt函数完成。如x = sqrt(2),则x的值即为1.414#include#includevoid main()float a,b,c,d;float s;float area;coutabc;if (a+bc&b+ca&a+cb) s=(a+b+c)/2; d=s*(s-a)*(s-b)*(s-c); area=sqrt(d); cout三角形的面积为:areaendl;elsecout无法构成三角形; 第4题 假设有任意一个x为3位数(如x=123),求出其倒序之后的结果(如x=321)。 思路:按课堂上所讲解,分别拆出123的百位、十位和个位分别用a、b和c来表示,再组合为321。 十位数为:b = x / 10 % 10;#includevoid main()int a,b,c;int x;coutx;a=x/100;b=x/10%10;c=x%10;int y;y=100*c+10*b+a;cout倒序三位数为:ytmax?tmax:(ctmin?tmin:c)#includevoid main( ) int a,b,c;int tmax;int tmin;int zjs;coutabc;if(a=b)tmax=a;tmin=b;elsetmax=b;tmin=a;zjs=ctmax?tmax:(ctmin?tmin:c);cout中间数为:zjsendl;实验三第1题 用cin语句从键盘输入一个整数,要求判断其奇偶性,并输出结果。 例:输入的是3,则输出“3是奇数”,如输入的是4则输出“4是偶数”。 注意这里输出的时候数值部分应该根据输入的值发生变化,而不是固定写在字符串当中。 关于cin和cout的具体用法请参阅课本#includevoid main() int i;couti;if(i%2=0)cout该整数是偶数endl;elsecout该整数是奇数endl;第2题 用cin语句从键盘输入一个整数,要求判断其正负性,并输出结果。 例:输入的是3,则输出“3是正数”,如输入的是4则输出“4是负数”,如果输入的是0则输出“该数是零” 注意这里输出的时候数值部分应该根据输入的值发生变化,而不是固定写在字符串当中。 关于cin和cout的具体用法请参阅课本#includevoid main()int i;couti;if(i*-1=0)cout该整数是0endl;elseif(i*-10)cout该整数是正数endl;elsecout该整数是负数endl;第3题 用cin输入一个整数,判断其是否是3或5的倍数。 分别用15,9,10,8四个例子,来测验本题的四种不同的结果(都可以、只能被3、只能被5、都不能),并输出结果。 如:输入的是9,则输出“9只能被3整除”,输入的是15,则输出“15可以同时被3和5整除”。#includevoid main() int a;couta;if(a%3=0)couta是3的倍数;elsecouta不是3的倍数;if(a%5=0)couta是5的倍数;elsecouta不是5的倍数;第4题 完成算术四则运算:a,b,为实型c为字符型 从键盘输入a+b、a-b、a*b、a/b 用switch 语句来编写 运行程序后要测试输入:12+6010.5-5.52.5*0.53/5#includevoid main() char c;float a,b;cout输入两个整数:acb;cout结果为:endl;switch(c) case+:couta+bendl;break;case-:couta-bendl;break;case*:couta*bendl;break;case/:couta/bendl;break;第5题 用cin输入三角形的三条边,判断能否构成三角形。 注:需要考虑尽可能的情况,如三边是否为负数或者0,以及两边之和是否大于第三边等。 输出最终的结果,如输入的是1 2 3,则输出“1 2 3 不能构成三角形”,如输入的是3 4 5,则输出“3 4 5 可以构成三角形”。#includevoid main() float a,b,c;cinabc;if(a=0|b=0|c=0)couta b c不能构成三角形c&b+ca&a+cb)couta b c能构成三角形endl;elsecouta b c不能构成三角形endl;实验四 第1题:用cin语句从键盘输入一个月份的值,用if语句判断该月的季节并输出结果。(假设1-3为春,4-6为夏,7-9为秋,10-12为冬)#includevoid main()int a;couta;if(1=a&a=3)cout春endl;if(4=a&a=6)cout夏endl;if(7=a&a=9)cout秋endl;if(10=a&a=12)cout冬endl;第2题 用cin语句从键盘输入一个月份的值,用switch语句判断该月的季节并输出结果。(假设1-3为春,4-6为夏,7-9为秋,10-12为冬)#includevoid main( )int season;coutseason;cout季节为:;switch(season) case 12:cout冬;break;case 11:cout冬;break;case 10:cout冬;break;case 9:cout秋;break;case 8:cout秋;break;case 7:cout秋;break;case 6:cout夏;break;case 5:cout夏;break;case 4:cout夏;break;case 3:cout春;break;case 2:cout春;break;case 1:cout春;break;第3题 要求从键盘输入年份,判断该年份,是否为闰年。参教材p90页。#includevoid main() int year;coutyear;if(year%4=0&year%100!=0|year%400=0) /能被4整除但不能被100整除,或者能被400整除coutyear年是闰年n;elsecoutyear年不是闰年n;第4题用cin从键盘输入一个字符,用if语句判断并输出该字符的种类(大写字母、小写字母、阿拉伯数字以及其他字符)。#includevoid main() char c;coutc;if(c=a&c=z)cout=A&c=Z)cout=0&c=9)cout该字符为阿拉伯数字n;else cout该字符为其他字符n; 第5题从键盘输入三个数(a,b,c),要求按从小到大进行排序。#includevoid main()float a,b,c,t;cout请输入a b c三个数:abc;if(ab) /如果a小于b的值,那么就交换a,b变量的值t=a;a=b;b=t;if(bc)t=b;b=c;c=t;if(ab)t=a;a=b;b=t;coutcbaendl;实验五第1题用任意的循环语句求出1-100之间所有奇数的和(1+3+5+99)并输出结果。#includevoid main( ) int i,sum;i=1;sum=0;while(i100)sum+=i;/sum=sum+i的C+写法i=i+2;cout1到100之间所有奇数的和是:;coutsumendl;第2题 编程输出1-100之内所有能被3整除的数,并输出这些数。 本题输出结果应该为:3 6 9 12 .99 提示:对i进行100次循环,在每次循环中判断i能否被3整除,如果可以则输出,否则进行下一次循环。#includevoid main( ) int i,x;x=3;for(i=1;i=100;i+)if(i%3=0)coutiendl;第3题 求一个正整数的所有因子。例如:24的因子是1 2 3 4 8 6 12#includevoid main( ) int i,x;couti;cout这个正整数的所有因子为;for(x=1;x=i;x+) if(i%x=0)coutxendl;第4题写一个程序,计算输入的正整数的位数,如输入2008,该数的位数为4。#includevoid main( )int n,i=0;coutn;cout位数为:;while(n)n=n/10;i+;cout输入正整数的位数为:iendl;第5题 输出所有的顺序三位数。 所谓的顺序三位数是指 百位 = 十位 = 个位,如123,556都是顺序三位数,而987则不是。#includevoid main( ) int a,b,c;cout所有的顺序三位数为:;for(int i=100;i1000;i+) a=i/100;b=i/10%10;c=i%10;if(a=b&b=c)coutiendl;实验六 第1题: 编写函数squaresum,用来求解两个整数的平方和。从键盘里面用cin输入两个整数,调用该函数,并输出结果。 例:cout squaresum(3,4) endl;则输出25#include#includeint squaresum(int a,int b) int squaresum; return squaresum=a*a+b*b;void main() int a,b; coutab; coutsquaresum(a,b)endl;第2题 编写函数mypower,用来求解整数a的n次方。 该函数的声明为int mypower(int a , int n); 提示:进行n次循环,每次累乘a即可。 例:cout mypower(3,4) endl;则输出81#includeint mypower(int a,int n) int b=1; for(int i=1;ian;coutmypower(a,n)endl;第3题 编写函数bool isprime(int n)用来判断整数n是否为素数,如果是则返回true,否则返回false。 利用该函数求出1000以内所有的素数并显示。#include#includebool isprime(int n)bool a=1;for(int i=2;i=sqrt(n);i+)if(n%i=0)a=0;break;return a;void main( )int x;for(x=2;x=1000;x+)if(isprime(x)coutxendl;continue; 第4题:编程从键盘输入一个数,判断是奇偶性; 要求定义一个判断奇偶数的函数int even (int n),当n为偶数时返回1,否则返回0。#includevoid main()int even(int n);int x;cinx;if(even(x) cout偶数!endl;else cout 奇数!r,分别求出c(5,2),c(8,6)的组合数,阶乘及组合数用函数实现。#includeint zhs(int x)if(x=0)|(x=1)return 1;return x*zhs(x-1);void main( )int a,b,c,d,e;coutde;a=zhs(d);b=zhs(e);c=zhs(d-e);if(de)couta/(b*c)endl;2.求400之内的亲密对数,所谓亲密对数,即A的所有因子之和等于B,B的所有因子之和等于A。要求设计函数int fun(int n)该函数完成查找因子的功能#includeint fun(int n);void main()for( i=2;i400;i+)if(fun(fun(i)=i)if(i!=fun(i)couti和fun(i)是亲密对数endl;int fun(int n) int s=0;for( i=1;in;i+)if(n%i=0)s+=i;return s;3.打印输出下面图形。第一行:一个*第二行:3个*第三行:5个*第四行:7个*第五行:9个*#include void main()int j,i;for(i=1; i=5; i+) for(j=1; j=5-i; j+) cout ; for(j=1;j=2*i-1;j+) cout*; coutendl; 实验八 熟悉数组的基本操作过程 1)定义数组int a5; 2)利用循环从键盘依次输入5个数分别赋给数组的5个元素; 3)求出它们的总和; 4)在屏幕上显示数组的5个元素以及总和#includevoid main( ) int a5;int s=0;cout请输入五个正整数:n;for(int i=0;iai;s+=ai;cout五个数的和为:sendl;第2题 假设数组int a5=1,2,3,4,5; 1)定义数组int b5; 2)将数组a中元素的平方依次付给数组b的对应元素,也就是b0=1,b1=4要求必须使用循环完成; 3)在屏幕上显示数组b的5个元素的值#includevoid main( ) int a5=1,2,3,4,5;int b5;for(int i=0;i=4;i+)bi=ai*ai;coutbit;coutendl;第3题 定义数组int x5 = 5 , 2 ,3 , 1 ,4; 复习课本当中求解数组最大值的算法,利用循环求出数组x最大值和最小值之间的差。#includevoid main( ) int x5=5,2,3,1,4;int i,main,max,min;max=x0;for(i=1;imax)max=xi;min=x0;for(i=1;i5;i+)if(ximin) min=xi;main=max-min;coutmax=max main=mainendl;第4题: 复习课本上的冒泡和选择排序算法,任选一种对数组int x5 = 5 , 2 ,3 , 1 ,4进行排序,并输出排序后的结果。#includevoid main( ) int x5=5,2,3,1,4,t;for(int j=1;j5;j+)for(int i=0;ixi+1)t=xi;xi=xi+1;xi+1=t;for(int i=0;i5;i+)coutxiendl;实验九 第1题 定义数组int a23,运行以下步骤: 1)从键盘依次输入6个数存入该数组当中 2)按每行三个的形式打印这6个数的值 如输入的是1 2 3 4 5 6,则输出效果是 1 2 3 4 5 6#includevoid main( ) cout请输入六个数:nendl;int i,j,a23;for(i=0;i2;i+)for(j=0;jaij;coutendl;for(i=0;i2;i+)for(j=0;j3;j+)coutaij;coutendl;第2题 定义数组int a34 1)从键盘输入12个整数,存入该数组中; 2)利用循环求出数组中的最大值、最小值和总和; 3)打印上述结果#includevoid main( )int i,j,k,a34,max,min,sum=0;cout请输入12个整数:n;for(i=0;i3;i+)for(j=0;jaij;max=a00,min=a00;for(k=0;kmax)max=aij;if(aijmin)min=aij;coutmax=maxn;coutmin=minn;coutsum=sumendl;实验十第1题 编写函数,其功能是求出整型数组元素值的平均值。 建议函数原型如下double getaverage(int a , int n);其中a是数组,而n表示数组的长度 在main函数中定义数组,调用该函数验证结果。#includedouble getaverage(int a,int n)double s=0;double p;for(int i=0;in;i+)s+=ai;p=s/n;return p;void main( )int p,m,b50;cout程序将完成计算整型数组平均值n;coutp;cout请输入一个整形数组以求平均值:n;for(m=0;mbm;cout平均值为:getaverage(b,p)endl;第2题: 编写函数,其功能是将数组内容进行倒序排列,如数组int a5的5个元素本来是1,2,3,4,5;则经过倒序之后变成5,4,3,2,1. 函数原型声明建议为void reverse(int a,int n);其中a为数组而n为数组的长度。 算法提示:将数组的头尾元素交换,然后分别递增和递减,直到两者相遇或者尾巴超过头就结束循环。 假设数组元素是:1 2 3 4 5,则循环第一次之后变成:5 2 3 4 1,第二次之后变成5 4 3 2 1,第三次的时候因为头尾已经相等则结束。 在main函数中定义数组,调用该函数验证结果。#includevoid reverse(int a,int n)int t,i,j=n-1;for(i=0;ij;i+)t=ai;ai=aj;aj=t;j-;void main( )int m,p,b50;coutp;cout请输入一个整型数组:n;for(m=0;mbm;reverse(b,p);for(m=0;mp;m+)coutbm;coutn;第3题 将课本上的简单查找算法提炼为函数实现,在main函数中定义数组并调用该函数验证。 函数的建议声明int find(int a,int n,int k);其中a为数组,n为数组的长度,k为要查找的值。 如果k在该数组中,则返回对应的下标,如果不在数组中,则返回-1.#include find(int a, int n, int k)for (int i=0;in;i+)if(ai=k) break; if(in) return i;return -1;int main() int n=5; ;int a5 = 1,2,3,4,5;int k = 3;int iresult = 0;iresult = find(a,n,k);if (-1) = iresult)cout没有查到K值!;elsecout查到了K值!;return 0;实验十一 第1题:定义数组char str20,从键盘输入一个字符串存入该数组中。 要求:将字符串中进行倒序,并输出倒序后的结果。 思路:将字符串头尾字母交换,并逐步推进直至头超过尾。 例:输入的字符串为ABCdef,则输出的结果为fedCBA。#includevoid main()char s120,s220;int i,j;couts1;for(i=0;s1i!=0;i+);for(j=0;s1j!=0;j+);s2i-j-1=s1j;s2i=0;cout处理后的字符串:s2; 第2题: 定义数组char str20,从键盘输入一个包含多种形式的字符串存入该数组中。 要求:统计字符串中大写字母、小写字母、阿拉伯数字和其他字符的数量。 例:输入的字符串是ABC&defg1234,则输出结果为:大写字母3个,小写字母4个,阿拉伯数字4个,其他字符3个。 思路:对串中每个字符判断其范围。#includevoid main()char str20;int i=0,j=0,p=0,n=0,m=0;cin.getline(str,20);while(stri!=0)if(stri=a & stri=A & stri=0 & stri=9)m+;else p+; i+;cout小写字母有:jendl;cout大写字母有:nendl;cout数字有:mendl;cout其它字母有:pendl; 第三题:定义字符数组s130和s220; 从键盘输入 VC+ 6.0 和 language存入s1和s2字符数组中; n从键盘上输入(如输入:6); 要求将字符串s2的前n个字符复制到字符数组s1中去,并在末尾加0#includevoid main() char s130=“VC+6.0”;char s220=“language”;int i=0,j=0,n;while(s1i!=0)i+;cinn;for(j=0;jn;j+)s1i=s2j;i+;s1i=0;couts1endl;实验十二第1题 定义描述平面坐标点的结构体类型point,并定义该类型的两个变量p1和p2。 从键盘输入2个点的坐标数据,求两点间线段的长度,输出最后结果。#include#includestruct pointfloat x,y;p1,p2;void main()cout请输入两个点的坐标数据:p1.xp1.y;cinp2.xp2.y;double d;d=sqrt(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);cout距离为:dendl;第2题: 定义金钱数的类型money,其成员包括元、角和分。 定义两个money的变量m1,m2 从键盘输入m1和m2的数据,判断m1和m2的大小 如m1的输入为3 4 5,m2的输入为6 7 8,则输出m1比m2小。#includestruct moneyint yuan,jiao,fen;m1,m2;void main()cout请输入任意两个金额:m1.yuanm1.jiaom1.fen;cinm2.yuanm2.jiaom2.fen;int x,y;x=m1.yuan*100+m1.jiao*10+m1.fen;y=m2.yuan*100+m2.jiao*10+m2.fen;if(xy)coutm1比m2小endl;elsecoutm2比m1小endl;第3题: 定义金钱数的类型money,其成员包括元、角和分。 定义两个money的变量m1,m2 从键盘输入m1和m2的数据,求出m1和m2的和,要求角和分的值10,并输出结果。 例:m1为1元2角5分,m2为3元4角6分,则m1+m2的值应该是4元7角1分。#includestruct moneyint yuan,jiao,fen;m1,m2;void main()cout请输入任意两个金额:m1.yuanm1.jiaom1.fen;cinm2.yuanm2.jiaom2.fen;int x,y,z,a,b,c;x=m1.yuan*100+m1.jiao*10+m1.fen;y=m2.yuan*100+m2.jiao*10+m2.fen;z=x+y;a=z/100;b=z/10%10;c=z%10;cout总金额为:a元b角c分endl;实验十三 第1题:定义数组int a10,定义整形指针p。 只利用指针p完成10个整数的输入和输出,要求循环当中不允许出现下标运算符。#includevoid main(void)int a10,i;int *p;for(i=0;iai;for(p=a;p=a+9;p+)cout*pt;第2题 定义数组int a10,从键盘当中输入10个数放入其中。 定义指针p和q分别指向数组的开始及末尾,只用指针,不出现下标运算符完成数组元素的倒序。#includevoid main()int a10,x,*p=&a0,*q;q=&a9;while(p*p+;for(p=a;pq;p+,q-)x=*p,*p=*q,*q=x;for(p=a;pa+10;p+)cout*pt;coutendl;第3题 编写函数int find(int *p,int n,int k),用来查找数组当中是否存在整数k,其中p应该赋值为数组的名字,n则是数组的长度。 如果k在数组当中,返回位置,否则返回-1。 在main当中任意定义数组,并用find函数来验证某数是否在该数组当中。#include int find(int *p,int n,int k)for(int i=0;in;i+)if(*(p+i)=k)return i;return -1;void main()int m,l,a50;int *q;coutm;cout请输入数组:n;for(q=a;q*q;coutl;if(find(a,m,l)=-1)cout不存在n;elsecoutl在数组第find(a,m,l)个元素endl;实验十四 第1题 定义数组char str50,*p=str;从键盘输入一个字符串存入该数组中 要求:通过指针p来完成字符串的大小写互换,即将原串的大写字符改成小写,小写字符改成大写,其他字符不变。输出互换后的结果。 例:输入的字符串是ABCabc123,则输出的内容是abcABC123。#includevoid main()char str50,*p=str;cout请输入一个字符串:=A&*(p+i)=a&*(p+i)=z)*(p+i)=*(p+i)-a+A;coutstr=q停止。 例:输入的字符串是ABCabc123,则输出的内容是321cbaCBA。#includevoid main()char str50,*p=str,*q;cout请输入一个字符串:n;cin.getline(str,50);for(int i=0;*(p+i)!=0;i+)q=&stri;for(int j=0;ji;j+)cout*(q-j);coutendl; 第三题:自定义字符串拷贝函数char *mystrcpy(char *s,const char *t); 要求:将字符指针t代表的字符串拷进字符指针s的地址当中,并返回s原来的地址。 要求:在main当中定义变量和数组,验证函数的正确性。#include#includechar *mystrcpy(char *s,const char *t)for(int i=0;*(s+i)!=0;i+)*(s+i)=*(t+i);*(s+i)=0;return s;void main()char a10,b10;cin.getline(a,10);mystrcpy(b,a);coutbendl;实验十五 第一题:从键盘当中输入一个整数n,申请一个长度为n的动态整形数组。 从键盘当中输入n个整数存入该数组当中,求出这n个的平均值并显示。 释放该动态数组。#includevoid main()int i,n,*p,ave,s=0;cout请输入一个整数:n;cout请输入n个整数:n;p=new intn;for(i=0;i*(p+i);for(i=0;in;i+) s=s+pi; ave=s/n; cout平均值为:aveendl;delete p;第二题: 从键盘当中输入一个整数n,申请一个长度为n的动态整形数组。 从键盘当中输入n个整数存入该数组当中,将这n个整数进行升序排序后输出,排序方法不限。 释放该动态数组。#include#includevoid main()char str200,ch;int n;cout请输入一个整数:n;cout请输入n个整数:str200; /p1=new intn; /p2=new intn;char *p1,*p2;/cin.getline(str);p1=str;p2=p1+strlen(p1)-1;while(p1p2)ch=*p1;*p1+=*p2;*p2-=ch;coutstr;/delete p1,p2;实验十六 第一题:定义一个类ctime,用来存放时间,其数据成员包括hour,minute和second,函数成员包括赋值函数void set(int h,int m,int s)和打印函数void show()。 完成该类的定义,在main当中建立ctime类的对象,并验证函数set和show的效果。#includeclass ctimeint hour,minute,second;public:ctime()hour=0,minute=0,second=0;ctime(int h,int m,int s) hour=h;minute=m;second=s;void display();void ctime:display()couthour=hour.;coutminute=minute.;coutsecond=sec

温馨提示

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

评论

0/150

提交评论