西南交通大学C++上机实验答案_第1页
西南交通大学C++上机实验答案_第2页
西南交通大学C++上机实验答案_第3页
西南交通大学C++上机实验答案_第4页
西南交通大学C++上机实验答案_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、.实验 1教学班级:学生学号:学生姓名:实验日期: 2014 年 3 月 1 日实验地点:(机房 )指导教师签名: _实验成绩: _一、实验目的1熟悉 C+程序的集成开发环境;2学习新建和打开控制台应用程序的方法;3掌握简单数据运算,以及输入与输出方法。二、实验任务1输入一摄氏温度,输出显示所转换的华氏温度。(提示:摄氏温度 =(华氏温度 -32)5/9)2画出一头威武雄壮的雄狮。,%,%/%/%,%c J/%.%/ oo %.%_|%(_Y_)%/;%-/%(/%.|/| |/) | |/_ | |_(_)三、实验结果 (源程序 + 注释)1.源程序#include usingnamespa

2、cestd;void main()double a,b;cout 请输入一摄氏温度: a;b=a*9/5+32;cout 转换的华氏温度为 : bendl;.2源程序#include usingnamespacestd;void main()cout ,% endl;cout,%/%/% endl;cout,%c J/% endl;cout%.%/ o o % endl;cout%.% _ |% endl;cout %(_Y_)% endl;cout /;%-/% endl;cout(/ % endl;cout .| endl;cout / | | endl;cout/) | | endl;c

3、out/_ | |_ endl;cout(_) endl;实验 2教学班级:学生学号:学生姓名:实验日期: 2014 年 3 月 1 日 实验地点:(机房 )指导教师签名: _实验成绩: _一、实验目的1掌握对一般数据的输入和输出格式控制方法;2掌握对实型数据输出形式的设置和小数位数的控制方法;3了解数据输入的相关注意事项。二、实验任务1. 键盘输入某台计算机的编号和该计算机的价格,并输出这些信息。要求:编号为 11 位数字构成,如 10987654321;价格含有小数部分,如 998.0 元;输出的编号只是由数字组成, 不应该出现小数点等非数字符号。2. 有一种加密方法是用原来字母的第 n

4、个字母代替原来的宁母。例如把 A用其后第 4 个字母 E 来替代。现在有一密文内容为wigvix ,编程求出它的原文是什么 ?(提示:可根据上述加密原理,使用若干字符型变量来实.现)。3. 编程实现:在计算机的提示下输入某学生的学号、 英语成绩、高等数学成绩、线性代数成绩,计算得出三门课程平均成绩, 并按如下格式输出显示。成绩单学 号20100002*科 目成 绩-英 语85高等数学90线性代数88.5*平均成绩87.8三、实验结果 (源程序 + 注释)1.源程序#include usingnamespacestd;void main()double a,b;cout 请输入某台计算机的编号和

5、该计算机的价格 : ab;cout.precision(11);cout 该计算机的编号和价格分别为: endl;couta bendl;2.源程序#include usingnamespacestd;void main()char c1,c2,c3,c4,c5,c6;cout 请输入密码内容 : c1c2c3c4c5c6;c1=c1-4;c2=c2-4;c3=c3-4;c4=c4-4;c5=c5-4;c6=c6-4;cout 原文是 : endl;coutc1c2c3c4c5c6endl;.3.源程序#include #include usingnamespacestd;void main(

6、)float score1,score2,score3,average;cout 请输入三门课程的成绩 score1score2score3;average=(score1+score2+score3)/3;cout 成绩单 endl;cout 学号 20100002 endl;cout *endl;cout 科目 setw(16) 成绩 endl;cout -endl;cout 英语 setw(15)score1endl;cout 高等数学 setw(11)score2endl;cout 线性代数 setw(12)score3endl;cout *endl;coutfixed;cout.pr

7、ecision(1);cout 平均成绩 setw(12)averageendl;实验 3教学班级:学生学号:学生姓名:实验日期: 2014 年 3 月 2 日实验地点:(机房 )指导教师签名: _实验成绩: _一、实验目的1. 掌握“处理某一或某些操作只有在特定条件成立的情况下才会被执行”的编程思路和方法;2. 掌握简单分支程序设计,以及if 和 if-else 语句的使用方法。二、实验任务x(x1)x 10) ,输入 已知一函数 y 2x1(1x的值,求解并输出相应的y值。13x11(x10)2 求一元二次方程 ax2+bx+c=0 的根,其中 a、b、c 为实数,由键盘输入。.三、实验结

8、果 (源程序 + 注释)1.源程序#include usingnamespacestd;void main()double x,y;cout 请输入 x的值 : x;if (x=1&x=10)y=3*x-11;cout 输出相应的 y值为 : yendl;2.源程序#include #include usingnamespacestd;void main()double a,b,c,delta,x,x1,x2;cout 求一元二次方程 ax2+bx+c=0的根 endl; cout 请输入 a,b,c 的值 : abc;delta=b*b-4*a*c;if (delta0)cout 一元二次方

9、程无实根 endl;elseif (delta=0) x=-b/(2*a);cout 一元二次方程 ax2+bx+c=0的根为 a: x1=x2= x0) x1=(-b-sqrt(delta)/(2*a); x2=(-b+sqrt(delta)/(2*a);cout 一元二次方程 ax2+bx+c=0的根为 : x1= x1 x2= x2endl;实验 4.教学班级:学生学号:学生姓名:实验日期: 2014 年 3 月 3 日实验地点:(机房 )指导教师签名: _实验成绩: _一、实验目的1掌握多路分支结构的程序设计,以及switch 语句的使用方法;2学习通过程序调试来跟踪程序运行过程, 查

10、看程序运行过程中各个变量的取值变化情况。二、实验任务1某公司进行产品销售,既零售也批发,零售的价格与批发的价格不同,购买产品数量的多与少其价格也不同。具体标准见下表:批 发 商零 售 商数量(个)单位价格(元 / 个)数量(个)单位价格(元 / 个)50 200101 2018200 以上8204015405012要求编写一程序,输入客户购买产品的数量,输出客户类型(批发或零售客户)、产品单价及应付的总额。2. 给学生写评语,需将学生的考试成绩由百分制转换为5 级制,标准为:等级分数段A95. 100 分B85. 94. 分C75. 84. 分D60. 74. 分E60.分以下3. 输入年号

11、y 和月份 m, 输出 y 年的 m月有多少天。三、实验结果 (源程序 + 注释)1.源程序#include usingnamespacestd;void main()int x,y;cout 请输入客户购买产品的数量: x;y=x/10;switch (y)case 0: case 1:.cout 客户类型为零售商,产品单价为18元 / 个,应付的总额为 : 18*xendl; break ; case 2:case 3:cout 客户类型为零售商,产品单价为 15元 / 个,应付的总额为 : 15*xendl; break ;case 4:cout 客户类型为零售商,产品单价为12元 /

12、个,应付的总额为 : 12*xendl; break ;if (50=x&x200)cout 客户类型为批发商,产品单价为 10元/ 个,应付的总额为 : 10*x=200)cout 客户类型为批发商,产品单价为8元/ 个,应付的总额为 : 8*xendl;2.源程序#include usingnamespacestd;void main()int a,b;cout 请输入一学生的考试成绩: a;b=a/5;switch (b)case 20: case 19:cout 该学生的考试成绩等级为 A: endl; break ;case 18:case 17:cout 该学生的考试成绩等级为 B

13、: endl; break ; case 16:case 15:cout 该学生的考试成绩等级为 C: endl; break ; case 14:case 13:case 12:cout 该学生的考试成绩等级为 D: endl; break ; default :cout 该学生的考试成绩等级为E: endl;.3.源程序#include usingnamespacestd;void main()int y,m;cout 请输入输入年号 y和月份 m: ym;switch (m)case 1:case 3:case 5:case 7:case 8:case 10:case 12:couty

14、年的 m 月有 31天: endl; break ;case 4:case 6:case 9:case 11:couty 年的 m 月有 30天: endl; break ;if (m=2)if (y%4=0&y%100!=0)|(y%100=0&y%400=0) couty 年的 m 月有 29天: endl;elsecouty 年的 m 月有 28天: =n),用 m除以 n,求得余数 q。若 q 为零, n 即为所求的最大公约数;若 q 不为零,则更新除数和被除数( n m,q n)再做除法,直至余数 q 为零止。这时,相应的n 即为所求的最大公约数。而最小大公倍数 =原始 m与 n 值

15、的乘积 / 最大公约数。)3. 编程实现十进制整数和二进制整数之间的转换。三、实验结果 (源程序 + 注释)1.源程序#includeusingnamespacestd;void main()int i=1;double n=1,j=1,k=0,pi=0;dok=k+j;n=n+2;i=-i;j=i/n; while (j=1.0e-6|j=-1.0e-6); pi=4*k;cout /4= kendl;cout = piendl;2.源程序#include usingnamespacestd;void main()int m,n,q,i,j,k;cout 请输入两个整数: mn;i=m;j=

16、n;q=i%j;if (q=0)cout 所求的最大公约数为 : jendl;if (q!=0)do i=j;.j=q;q=i%j; while (q!=0); k=(m*n/j);cout 所求的最大公约数为 : jendl;cout 所求的最小公倍数为 : kendl;3源程序#include usingnamespacestd;void main()int i=10,j=1,m,n=0;cout 请输入一个二进制整数 : m;don+=j*(m%i);m/=i;j*=2;while (m!=0);cout 转换为十进制整数是 : nn)的所有素数,要求 : 每行输出 5 个。2. 键盘输

17、入一行字符,统计字符总个数,以及其中的英文字母个数,如果是数字,则统计它们所构成的数据中,奇数个数和偶数个数分别是多少。提示:可使用以下程序段,连续输入若干字符直到输入n时停止。while(1) ch=getchar(); if(ch=n)break;。3. 两个乒乓球队进行比赛,各出 3人。甲队为 A、B、C共3人,乙队为 X、Y、Z共3人,并以抽签方式决定比赛名单。有人向队员打听比赛的名单,A说.他不和 X比, C说他不和 X、Z比,请给出 3对赛手的名单。4. 用循环结构语句编程并输出下图 , 其行数有键盘给出。例如:键盘输入: 5,则运行结果如下12233344445555555554

18、444333221三、实验结果 (源程序 + 注释)1.源程序#include#includeusingnamespacestd;void main()int m,n,x,y,k=0;cout 请输入两个不等的整数 : nm;cout 它们之间的所有素数为 : endl;for (x=n;x=m;x+) for (y=2;y=x-1;y+) if (x%y=0)break ;if (x=y)cout x;k=k+1;if (k%5=0)coutn ;2.源程序#includeusingnamespacestd;#includevoid main()char ch;inti=0,ch_num=0

19、,odd_num=0,even_num=0;.cout 请输入一行字符 : =a &ch= A &ch=1 &ch=9 )if (ch%2=0) even_num+=1;else odd_num+=1;cout 输入的字符总个数为: iendl;cout 其中英文字符个数为: ch_numendl;cout 奇数个数为: odd_numendl;cout 偶数个数为: even_numendl;3.源程序#include usingnamespacestd;void main()char i,j,k;for (i= X ;i= Z ;i+) for (j= X ;j= Z ;j+)if (i!

20、=j)for (k= X ;k= Z ;k+) if (i!=k&j!=k)if (i!= X &k!=X &k!=Z )cout 3 对选手的名单为 : A- i B- j C- kendl;4.源程序#include#includeusingnamespacestd;void main()int i,j,a;couta;for (i=1;i=a;i+) for (j=1;j=2*a-1;j+) if (j=2*a-1-i)if (i!=a) cout ;elsecouti;elsecouti;coutendl;for (i=1;i=a-1;i+) for (j=1;j=a-1;j+) if

21、 (j=a-i)couta-i;elsecout ;coutendl;实验 7教学班级:学生学号:学生姓名:实验日期: 2014 年 4 月 2 日 实验地点:(机房 )指导教师签名: _实验成绩: _一、实验目的1掌握数值型一维数组的使用方法;2掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法。二、实验任务1. 对两个无序的数组(其中数组 a 长度为 n,数组 b 长度 m),采用选择法(或起泡法)分别将这两个数组转为有序(元素值从小到大有序)。要求: a 和 b数组长度及其元素均由键盘获取。2. 将以上任务 1 构建的两个有序的数组 a 和 b,进行有序合并, 即将这两个数组进

22、行合并的过程中其数据始终保持有序。(提示:数据结构:三个一维数组a, b, c将 aia 和 bib 比较,谁小就把谁放入cic(c 数组用于存放合并后的数据),谁放入了 cic 中谁的下标就加 1,同时 ic(c 中当前存放数据的下标)加 1,如下图所示。 ).3. 计算以上任务 2 中 c 数组元素的平均值,并删除 c 中所有低于平均值的那些元素。三、实验结果 (源程序 + 注释)1.源程序#include usingnamespacestd;void main( void )int i,j,t,n,m,a100,b100;coutn;cout 请输入数组 a的 n 个数 : endl;f

23、or (i=0;iai;for (i=0;in-1;i+)for (j=i+1;jaj)t=ai;ai=aj;aj=t;cout 数组从小到大排列为 : endl;for (j=0;jn;j+)coutaj ;coutendl;coutm;cout 请输入数组 b的 m 个数 : endl;for (i=0;ibi;for (i=0;im-1;i+)for (j=i+1;jbj)t=bi;bi=bj;bj=t;cout 数组 b从小到大排列为 : endl;for (j=0;jm;j+)coutbj ;coutendl;.2.源程序#include usingnamespacestd;void

24、 main( void )int i,j,t,n,m,a100,b100;coutn;cout 请输入数组 a的 n 个元素 : endl;for (i=0;iai;for (i=0;in-1;i+)for (j=i+1;jaj)t=ai;ai=aj;aj=t;cout 数组 a的元素从小到大排列为 : endl;for (j=0;jn;j+)coutaj ;coutendl;coutm;cout 请输入数组 b的 m 个元素 : endl;for (i=0;ibi;for (i=0;im-1;i+)for (j=i+1;jbj)t=bi;bi=bj;bj=t;cout 数组 b的元素从小到大

25、排列为 : endl;for (j=0;jm;j+)coutbj ;coutendl; int c200,ia=0,ib=0,ic=0; for (ia=0;iaaia) cic+=aia;else cic+=bib;if (aia!=bib) ia-;ib+;if (ibm)for (;ibm;ib+).cic+=bib;cout 合并后的数组 c为 : endl;for ( inti=0;iic;i+)cout ci;coutendl;3.源程序#include usingnamespacestd;void main( void )int i,j,t,n,m,a100,b100;coutn

26、;cout 请输入数组 a的 n 个元素 : endl;for (i=0;iai;for (i=0;in-1;i+)for (j=i+1;jaj)t=ai;ai=aj;aj=t;cout 数组 a的元素从小到大排列为 : endl;for (j=0;jn;j+)coutaj ;coutendl;coutm;cout 请输入数组 b的 m 个元素 : endl;for (i=0;ibi;for (i=0;im-1;i+)for (j=i+1;jbj)t=bi;bi=bj;bj=t;cout 数组 b的元素从小到大排列为 : endl;for (j=0;jm;j+)coutbj ;coutendl

27、;intc200,ia=0,ib=0,ic=0; for (ia=0;iaaia)cic+=aia; elsecic+=bib;.if (aia!=bib)ia-;ib+;if (ibm)for (;ibm;ib+)cic+=bib;cout 合并后的数组 c为 : endl;for ( inti=0;iic;i+)cout ci;coutendl;floatsum=0.0,ave;for (i=0;in+m;i+)sum=sum+ci;ave=sum/(n+m);cout 数组 c元素的平均值为 : aveendl;cout 数组 c中大于平均值的元素为 : ;for (i=0;iave)c

28、outci ;实验 8教学班级:学生学号:学生姓名:实验日期: 2014 年 5 月 1 日 实验地点:(机房 )指导教师签名: _实验成绩: _一、实验目的1掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法。二、实验任务1. 使用插入排序法将键盘输入的无序数列按升序排列。思路分析与算法:1) 从第一个元素开始,该元素可以认为已经被排序。2) 取出下一个元素,在已经排序的元素序列中从后向前扫描。3) 如果该元素(已排序)大于新元素,将该元素移到下一位置。4) 重复步骤 3,直到找到已排序的元素小于或者等于新元素的位置。5) 将新元素插入到该位置中。6) 重复步骤 2。2. 选举猴王

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

30、usingnamespacestd;void main()const int N=100; int aN,t,i,j,n;coutn;cout 请输入有 n 个整数的无序数列 : endl; for (i=0;iai;if (a0a1) t=a0;a0=a1;a1=t; for (i=2;iaj&j=n)j+;if (j=j;k-)ak=ak-1;aj=t;cout 原数列按升序排列为 : endl;for (i=0;in;i+)coutai ;coutendl;2源程序#include usingnamespacestd;.void main()const int N=40; int n,

31、m, aN; int i,j,k;coutn;coutm;for (i=0;in;i+)ai=i+1;i=0;j=0;k=0;while (kn-1)if (ai!=0) j+;if (j=m)ai=0;j=0;k+;i+;if (i=n) i=0;i=0;while (ai=0) i+;cout 猴王原先的编号是 aiendl;实验 9教学班级:学生学号:学生姓名:实验日期: 2013 年 5 月 1 日 实验地点:(机房 )指导教师签名: _实验成绩: _一、实验目的1掌握二维数值型数组的使用方法;2. 掌握 string 类字符串的使用方法。二、实验任务1. 自动产生 N*N 数据( N

32、 取值最大不超过 100)存入 a 数组,数据形成规律如下图示(呈 S 形),并取出 a 的下三角形区域数据输出,输出形式如下图所示(呈等腰三角形)。.2. 从键盘上输入任意两个字符串, 比较它们是否相同, 将它们连接成一个新的字符串并输出,输出这个新的字符串的有效长度。三、实验结果 (源程序 + 注释)1.源程序#include #include usingnamespacestd;void main()int a1010,i,j,n,k=0; coutn;a00=1;for (i=0;in;i+)for (j=0;jn;j+) if (i%2=0) ai+10=ai0+2*n-1; aij

33、+1=aij+1;if (i%2!=0)ai+10=ai0+1;aij+1=aij-1;for (i=0;in;i+)for (j=0;jn;j+)coutsetw(6)aij;k+;if (k%n=0)coutendl;for (i=0;in;i+)coutsetw(3*(n-1-i) ;.for (j=0;j=i;j+)coutsetw(6)aij;coutendl;2.源程序#include #include usingnamespacestd;void main() string s1,s2,s;cout 请输入第一个字符串 : endl; getline(cin,s1);cout 请输入第二个字符串 : endl; getline(cin,s2);if (s1=s2)cout 这两个字符串相同 endl;elsecout 这两个字符串不同 endl;s=s1+s2;cout 将它们连接成一个新的字符串为 : sendl; cout 这个新的字符串的有效长度为 : s.size()endl;实验 10教学班级:学生学号:学生姓名:实验日期: 2014 年 5 月 2 日 实验地点:(机房 )指导教师签名: _实验成绩: _一、实验目的1熟练指针变量的使用,了解其编程技巧。二、实验任务1. 使用指针法在的一组数据中,找出其中最大值所在的位置并输出。2. 使用指针法对

温馨提示

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

评论

0/150

提交评论