西南交通大学C++上机实验答案(2024版).docx

上传人:李司机 文档编号:7134443 上传时间:2024-06-15 格式:DOCX 页数:49 大小:73.31KB
返回 下载 相关 举报
西南交通大学C++上机实验答案(2024版).docx_第1页
第1页 / 共49页
西南交通大学C++上机实验答案(2024版).docx_第2页
第2页 / 共49页
西南交通大学C++上机实验答案(2024版).docx_第3页
第3页 / 共49页
西南交通大学C++上机实验答案(2024版).docx_第4页
第4页 / 共49页
西南交通大学C++上机实验答案(2024版).docx_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《西南交通大学C++上机实验答案(2024版).docx》由会员分享,可在线阅读,更多相关《西南交通大学C++上机实验答案(2024版).docx(49页珍藏版)》请在三一办公上搜索。

1、试验1教学班级:学生学号:学生姓名:试验日期:2024年3月1日试验地点:(机房)指导老师签名:试验成果:一、试验目的1 .熟识C+程序的集成开发环境;2 .学习新建和打开限制台应用程序的方法;3 .驾驭简洁数据运算,以及输入及输出方法。二、试验任务1 .输入一摄氏温度,输出显示所转换的华氏温度。(提示:摄氏温度二(华氏温度-32)X5/9)2 .画出一头威猛雄壮的雄狮。,%,%,%cJ%.%/OO%.%_|%(_)%/;%,(/%.IW/IIW/)II/_I1_()三、试验结果(源程序+注释)源程序ttincludeusingnamespacestd;voidmain()(doublea,b

2、;COUt请输入一摄氏温度:a;b=a*95+32;CoUt转换的华氏温度为:bendl;2.源程序ttincludeusingnamespacestd;voidmain()(cout,%,zendl;cout,z,%,zendl;cout,z,%cJ%,endl;cout,z%.%/OO%endl;cout,z%.%,zendl;cout,z%(_)%,zendl;coutendl;cout,z(/%,zendl;coutzzIzzendl;coutz,/IIzzendl;coutzz)IIzzendl;coutz,/_II_z,endl;coutzz()z,endl;试验2教学班级:学生学

3、号:学生姓名:试验日期:2024年3月1日试验地点:(机房)指导老师签名:试验成果:一、试验目的1 .驾驭对一般数据的输入和输出格式限制方法;2 .驾驭对实型数据输出形式的设置和小数位数的限制方法;3 .了解数据输入的相关留意事项。二、试验任务1 .键盘输入某台计算机的编号和该计算机的价格,并输出这些信息。要求:编号为11位数字构成,如;价格含有小数部分,如998.0元;输出的编号只是由数字组成,不应当出现小数点等非数字符号。2 .有一种加密方法是用原来字母的第n个字母代替原来的宁母。例如把A用其后第4个字母E来替代。现在有一密文内容为WigViX,编程求出它的原文是什么?(提示:可依据上述加

4、密原理,运用若干字符型变量来实现)。3 .编程实现:在计算机的提示下输入某学生的学号、英语成果、高等数学成果、线性代数成果,计算得出三门课程平均成果,并按如下格式输出显示。成果单学号20240002科目成绩55O.8988英语高等数学线性代数平均成果87.8三、试验结果(源程序+注释)1.源程序ttincludeusingnamespacestd;voidmain()doublea,b;COUtG请输入某台计算机的编号和该计算机的价格:ab;cout.precision(ll);CoUt该计算机的编号和价格分别为,endl;couta,z,zbendl;2.源程序ttincludeusingn

5、amespacestd;voidmain()charcl,c2,c3,c4,c5,c6;COUtX请输入密码内容:“endl;cinclc2c3c4c5c6;cl=cl-4;c2=c2-4;c3=c3-4;c4=c4-4;c5=c5-4;c6=c6-4;COUt“原文是,endl;coutclc2c3c4c5c6endl;)3.源程序ttincludettincludeusingnamespacestd;voidmain()floatscore1,score2,score3,average;COUt请输入三门课程的成果scorelscore2score3;average=(scorel+sco

6、re2+score3)/3;COUt成果单endl;CoUt”学号20240002endl;cout*”endl;COUt科目,zsetw(16)成果endl;coutz,endl;CoUt英语setw(15)scorelendl;CoUt高等数学“setw(l1)score2endl;COUt线性代数setw(12)score3endl;cout*”endl;coutfixed;cout.precision(l);CoUt“平均成果setw(12)averageendl;试验3教学班级:学生学号:学生姓名:试验日期:2024年3月2日试验地点:(机房)指导老师签名:试验成果:一、试验目的1

7、.驾驭“处理某一或某些操作只有在特定条件成立的状况下才会被执行”的编程思路和方法;2 .驾驭简洁分支程序设计,以及if和if-else语句的运用方法。二、试验任务x(x1)1 .已知一函数y=2x-l(l=x=10)值。2 .求一元二次方程ax2+bx+c=0的根,其中a、b、C为实数,由键盘输入。三、试验结果(源程序+注释)1.源程序ttincludeusingnamespacestd;voidmain()doublex,y;COUt请输入X的值:x;if(x=l&x=10)y=3*-ll;COUt输出相应的y值为:,zyendl;)2.源程序ttincludettincludeusingn

8、amespacestd;voidmain()doublea,b,c,delta,x,xl,x2;CoUt“求一元二次方程ax2+bx+c=O的根“endl;COUt请输入a,b,c的值:abc;delta=b*b-4*a*c;if(deltaO)COUt一元二次方程无实根“endl;elseif(deIta=-O)x=b(2*a);coutzz一元二次方程ax2+bx+c=0的根为a:,zl=x2=z,xO)xl=(-b-sqrt(delta)(2*a);x2=(b+sqrt(delta)/(2*a);coutzz一元二次方程ax2+bx+c=O的根为:xl=xlX,zz,2=,x2endl;

9、)试验4教学班级:学生学号:学生姓名:试验日期:2024年3月3日试验地点:(机房)指导老师签名:试验成果:一、试验目的1 .驾驭多路分支结构的程序设计,以及SwitCh语句的运用方法;2 .学习通过程序调试来跟踪程序运行过程,查看程序运行过程中各个变量的取值改变状况。二、试验任务1 .某公司进行产品销售,既零售也批发,零售的价格及批发的价格不同,购买产品数量的多及少其价格也不同。详细标准见下表:升t发商零售商数量(个)单位价格(元/个)数量(个)单位价格(元/个)502001012018200以上8204015405012要求编写一程序,输入客户购买产品的数量,输出客户类型(批发或零售客户)

10、、产品单价及应付的总额。2 .给学生写评语,需将学生的考试成果由百分制转换为5级制,标准为:等级分数段A95.-100分B85.-94.分C75.-84.分D60.一74.分E60.分以下3 .输入年号y和月份m,输出y年的In月有多少天。三、试验结果(源程序+注释)1.源程序ttincludeusingnamespacestd;voidmain()intx,y;CoUt请输入客户购买产品的数量:x;y=x10;switch(y)caseO:case 1:COUt客户类型为零售商,产品单价为18元/个,应付的总额为:z,18*xendl;break;case 2:case 3:COUt客户类型

11、为零售商,产品单价为15元/个,应付的总额为:z,15*xendl;break;case 4:COUt客户类型为零售商,产品单价为12元/个,应付的总额为:z12*xendl;break;)if(50=x&x200)CoUtG客户类型为批发商,产品单价为10元/个,应付的总额为:z,10*x=200)COUt客户类型为批发商,产品单价为8元/个,应付的总额为:X8*xendl;)2.源程序ttincludeusingnamespacestd;voidmain()inta,b;CoUt请输入一学生的考试成果:a;b=a5;switch(b)case20:case19:CoUt该学生的考试成果等级

12、为A:Gendl;break;case18:case17:CoUt该学生的考试成果等级为B:endl;break;case16:COUt该学生的考试成果等级为C:endl;break;case14:case13:case12:CoUt该学生的考试成果等级为D:Gendl;break;default:CoUt该学生的考试成果等级为E:endl;)3.源程序ttincludeusingnamespacestd;voidmain()inty,m;CoUt请输入输入年号y和月份m:“ym;switch(m)case1:case3:case5:case8:case10:case12:COUty“年的mX

13、月有31天:“Xendl;break;case4:case6:case9:case11:COUty“年的m月有30天:endl;break;)if(m=2)if(y%4=0&y%100!=0)(y%100=0&ay%400=0)CoUty年的m月有29天:,endl;elseCoUty年的m月有28天:,=n),用In除以n,求得余数q。若q为零,n即为所求的最大公约数;若q不为零,则更新除数和被除数(n-m,q-n)再做除法,直至余数q为零止。这时,相应的n即为所求的最大公约数。而最小大公倍数二原始m及n值的乘积/最大公约数。)3 .编程实现十进制整数和二进制整数之间的转换。三、试验结果(源

14、程序+注释)1.源程序#includeusingnamespacestd;voidmain()inti=l;doublen=l,j=l,k=0,pi=0;do(k=k+j;n=n+2;i=-i;j=in;while(j=l.0e-6j=-l.0e-6);pi-4*k;cout,zH4=,zkendl;cout,zH=zzpiendl;)2.源程序ttincludeusingnamespacestd;voidmain()intm,n,q,i,j,k;CoUt请输入两个整数:mn;i=m;j=n;q=i%j;CoUt所求的最大公约数为,jendl;if(q!=0)doi=j;j=q;q=i%j;w

15、hile(q!=0);k=(m*nj);COUtG所求的最大公约数为,jendl;CoUt所求的最小公倍数为:zzkendl;)3源程序ttincludeusingnamespacestd;voidmain()inti=10,j=l,m,n=0;CoUt”请输入一个二进制整数:m;don+=j*(m%i);m=i;j*=2;while(m!=O);cout“转换为十进制整数是:nn)的全部素数,要求:每行输出5个。2 .键盘输入一行字符,统计字符总个数,以及其中的英文字母个数,假如是数字,则统计它们所构成的数据中,奇数个数和偶数个数分别是多少。提示:可运用以下程序段,连续输入若干字符直到输入n

16、时停止。while(l)ch=getchar();if(ch=,n,)break;OOOOOO)3 .两个乒乓球队进行竞赛,各出3人。甲队为A、B、C共3人,乙队为X、Y、Z共3人,并以抽签方式确定竞赛名单。有人向队员打听竞赛的名单,A说他不和X比,C说他不和X、Z比,请给出3对赛手的名单。4 .用循环结构语句编程并输出下图,其行数有键盘给出。例如:键盘输入:5,则运行结果如下12233344445555555554444333221三、试验结果(源程序+注释)1.源程序#includeSincludeusingnamespacestd;voidmain()intm,n,x,y,k=0;COU

17、t请输入两个不等的整数,nm;CoUt。它们之间的全部素数为:endl;for(x=n;x=m;x+)(for(y=2;y=-l;y+)if(x%y=-0)break;if(x=y)coutzz,x;k=k+l;if(k%5=0)CoUtn;)2.源程序#includeusingnamespacestd;#includevoidmain()(charch;inti-0,ch-num=O,odd_num=0,even_num=O;CoUt请输入一行字符:z=a,&ch=A&ch=ftch=9,)if(ch%2=0)even_num+=l;elseodd_num+-l;)COUt输入的字符总个数为

18、:“iendl;CoUt其中英文字符个数为:ch_numendl;COUt”奇数个数为:”odd_numendl;CoUt偶数个数为:even_numendl;)3.源程序ttincludeusingnamespacestd;voidmain()chari,j,k;for(i=X,i=,Z,;i+)for(j=X,;j=Z,;j+)if(i!=j)for(k=,X,;k=,Z,;k+)if(i!=k&j!=k)if(i!=X&k!=X,&k!=Z,)COUt3对选手的名单为:A“iBjV,z,C-z,kendl;4.源程序Sinclude#includeusingnamespacestd;vo

19、idmain()inti,j,a;CoUta;for(i=l;i=a;i+)for(j=l;j=2*a-l;j+)if(i!=a)COUtz,;elsecouti;elsecouti;coutendl;for(i=l;i=al;i+)for(j=l;j=a-l;j+)if(j=a-i)couta-i;elsecoutz,;coutendl;)试验7教学班级:学生学号:学生姓名:(机房)试验日期:2024年4月2日试验地点:指导老师签名:试验成果:一、试验目的1 .驾驭数值型一维数组的运用方法;2 .驾驭对一组同类型的数据进行插入、删除、排序和查找等的常用算法。二、试验任务1 .对两个无序的数组

20、(其中数组a长度为n,数组b长度m),采纳选择法(或起泡法)分别将这两个数组转为有序(元素值从小到大有序)。要求:a和b数组长度及其元素均由键盘获得。2 .将以上任务1构建的两个有序的数组a和b,进行有序合并,即将这两个数组进行合并的过程中其数据始终保持有序。(提示:数据结构:三个一维数组a,b,c将aia和bib比较,谁小就把谁放入cic(C数组用于存放合并后的数据),谁放入了cic中谁的下标就加1,同时ic(C中当前存放数据的下标)加1,如下图所示。)3 .计算以上任务2中c数组元素的平均值,并删除c中全部低于平均值的那些元素。三、试验结果(源程序+注释)1.源程序ttincludeusi

21、ngnamespacestd;voidmain(void)inti,j,t,n,m,a100,b100;CoUt。请输入数组a中数字的个数:;cinn;COUt请输入数组a的n”个数:,endl;for(i=0;iai;for(i=0;in-l;i+)for(j=i+l;jaj)t=ai;ai=aj;aj=t;cout数组从小到大排列为zendl;for(j=0;jn;j+)coutajz,z,;coutendl;COUtm;COUt”请输入数组b的“水个数:endl;for(i=0;ibi;for(i=0;im-l;i+)for(j=i+l;jbj)t=bi;bi=bj;bj=t;COUt“

22、数组b从小到大排列为:endl;for(j=0;jm;j+)coutbjz,z,;coutendl;2.源程序ttincludeusingnamespacestd;voidmain(void)inti,j,t,n,m,a100,b100;COUt请输入数组a中元素的个数:;cinn;COUt”请输入数组a的“nX个元素:endl;for(i=0;iai;for(i=0;in-l;i+)for(j=i+l;jaj)t=ai;ai=aj;aj=t;COUt数组a的元素从小到大排列为,endl;for(j=0;jn;j+)COUtaj;coutendl;CoUtm;CoUt”请输入数组b的水”个元素

23、zendl;for(i=0;ibi;for(i=0;im-l;i+)for(j=i+l;jbj)t=bi;bi=bj;bj=t;CoUt数组b的元素从小到大排列为,endl;for(j=0;jm;j+)coutbjz,coutendl;intc200,ia=0,ib=O,ic=O;for(ia=O;iaaia)cic+=aia;elsecic+=bib;if(aia!=bib)ia一;ib+;if(ibm)for(;ibm;ib+)cic+=bib;COUt合并后的数组C为:“endl;for(inti=O;iic;i+)coutz,z,ci;coutendl;)3.源程序ttincludeu

24、singnamespacestd;voidmain(void)inti,j,t,n,m,a100,b100;COUt。请输入数组a中元素的个数:;cinn;CoUt”请输入数组a的n”个元素zendl;for(i=0;iai;for(i=0;in-l;i+)for(j=i+l;jaj)t=ai;ai=aj;aj=t;CoUt数组a的元素从小到大排列为,endl;for(j=0;jn;j+)COUtaj;coutendl;CoUtm;COUt”请输入数组b的“水个元素:,zendl;for(i=0;ibi;for(i=0;im-l;i+)for(j=i+l;jbj)t=bi;bi=bj;bj=t

25、;COUt数组b的元素从小到大排列为,endl;for(j=0;jm;j+)COUtbj;coutendl;intc200,ia=O,ib=O,ic=O;for(ia=O;iaaia)cic+=aia;elsecic+=bib;if(aia!=bib)ia一;ib+;if(ibm)for(;ibm;ib+)cic+=bib;COUt合并后的数组C为,endl;for(inti二O;iic;i+)coutz,ci;coutendl;floatsum=0.O,ave;for(i=0;inm;i+)sum-sum+ci;ave=sum/(n+m);COUt数组C元素的平均值为:aveendl;COU

26、t数组C中大于平均值的元素为:;for(i=0;iave)coutci,z;)试验8教学班级:学生学号:学生姓名:试验日期:2024年5月1日试验地点:(机房)指导老师签名:试验成果:一、试验目的1.驾驭对一组同类型的数据进行插入、删除、排序和查找等的常用算法。二、试验任务1.运用插入排序法将键盘输入的无序数列按升序排列。思路分析及算法:1)从第一个元素起先,该元素可以认为已经被排序。2)取出下一个元素,在已经排序的元素序列中从后向前扫描。3)假如该元素(已排序)大于新元素,将该元素移到下一位置。4)重复步骤3,直到找到已排序的元素小于或者等于新元素的位置。5)将新元素插入到该位置中。6)重复

27、步骤2。2.选举猴王问题:N只猴子围成一圈,依次编号1至N。从编号为1的猴子起先依次报数,报数m的猴子就退出圈子,接着再报,报数m的猴子再退出圈子,依次接着下去,圈子最终所剩的一只猴子为猴王,它原先的编号是几?思路分析及算法:D运用一维数组存放猴子从1到n的编号,定义参与选举猴王的最多猴子数为40。2)i为每次循环时计数变量,k为按1,2,3,m报数时的计数变量,t表示退出的猴子数。依次将退出的猴子对应的数组元素置0,直到只剩下一只猴子。3)找出数组中不为0的ai,输出该数。三、试验结果(源程序+注释)1.源程序include#includeusingnamespacestd;voidmain

28、()constintN=100;i11taN,t,i,j,n;coutn;CoUt请输入有n个整数的无序数列:endl;for(i=0;iai;if(a0al)t=aja=aljal=t;)for(i=2;iajj=n)j+;if(j=j;k)ak=ak-l;aj=t;)cout原数列按升序排列为:endl;for(i=0;in;i+)coutaiz,z,;coutendl;)源程序ttincludeusingnamespacestd;voidmain()constintN=40;intn,m,aN;inti,j,k;COUtn;COUtm;for(i=0;in;i+)ai=i+l;i=0;尸

29、0;k=0;while(kn-l)if(ai!=O)j+;if(j=m)ai=O;j=O;k+;)i+;if(i=n)i=0;i=0;while(ai=O)i+;CoUt猴王原先的编号是aiendl;试验9教学班级:学生学号:学生姓名:试验日期:2024年5月1日试验地点:(机房)指导老师签名:试验成果:一、试验目的1 .驾驭二维数值型数组的运用方法;2 .驾驭String类字符串的运用方法。二、试验任务1 .自动产生N*N数据(N取值最大不超过100)存入a数组,数据形成规律如下图示(呈S形),并取出a的下三角形区域数据输出,输出形式如下图所示(呈等腰三角形)。2 .从键盘上输入随意两个字符

30、串,比较它们是否相同,将它们连接成一个新的字符串并输出,输出这个新的字符串的有效长度。三、试验结果(源程序+注释)1.源程序ttincludettincludeusingnamespacestd;voidmain()inta1010,i,j,n,k=0;CoUtn;a00=l;for(i=0;in;i+)for(j=0;jn;j+)if(i%2=0)ai+l0=ai0+2*n-l;aij+l=aijl;)if(i%2!=0)ai+l0=ai0+l;aij+l=aij-l;)for(i-0;in;i+)for(j=0;jn;j+)coutsetw(6)aij;k+;if(k%n=0)couten

31、dl;for(i=0;in;i+)coutsetw(3*(11-l-i),z;for(j=0;j=i;j+)coutsetw(6)aij;coutendl;)2.源程序ttincludettincludeusingnamespacestd;voidmain()stringsi,s2,s;CoUt请输入第一个字符串:,endl;getline(cin,si);cout请输入其次个字符串:z,endl;getline(cin,s2);if(sl=s2)CoUt这两个字符串相同“endl;elseCoUt这两个字符串不同endl;s=sl+s2;COUt将它们连接成一个新的字符串为:sendl;Co

32、Ut这个新的字符串的有效长度为:ssize()endl;试验10教学班级:学生学号:学生姓名:试验日期:2024年5月2日试验地点:(机房)指导老师签名:试验成果:一、试验目的1.娴熟指针变量的运用,了解其编程技巧。二、试验任务1 .运用指针法在的一组数据中,找出其中最大值所在的位置并输出。2 .运用指针法对一维数组a中的数据按降序排列。三、试验结果(源程序+注释)1.源程序ttincludeusingnamespacestd;voidmain()inta100,i=0,n,j,max,*p;COUtn;COUtG请输入一组数据的个数为n的数据:endl;for(i=0;iai;max=a0;

33、for(i=0;in-l;i+)for(j=i+l;jmax)p=ai;max=ai;)CoUt其中最大值所在的位置为:“pendl;2.源程序ttincludeusingnamespacestd;voidmain()i11ta100,i,j,n,*p;COUtn;CoUtG请输入数组a:endl;for(i=0;iai;for(i=0;in-l;i+)for(p-aO;p&an-l-i;p+)if(*p*(p+l)*p+=*(p+l);*(p+l)=*p-*(p+l);*p-=*(p+l);COUtG数组a中的数据按降序排列为a:endl;i=0;for(p=ai;in;p+,i+)CoUt*p;试验11教学班级:学生学号:学生姓名:试验日期:2024年6月日试验地点:(机房)指导老师签名:试验成果:一、试验目的1 .了解存放常用的系统函数的头文件;2 .驾驭常用系统函数的功能和运用方法;3 .驾驭返回值的概念和运用。二、试验任务1 .编程实现:考察小学一年级学生20以内的加法题(共10题),并按百分制给出最终分数。说明:程序的已知项为20以内的两个随机整数,输出项为两个整数的加法算式,并依据给出的结果推断正误,正确的得10分。最终输出学生的总分成果。2 .编写两个子函数,分别求两个整数的最大公约数和最小公倍数,并编写主函数调用这两个

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号