西南交通大学C++上机实验答案.docx
- 文档编号:8826324
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:36
- 大小:47.46KB
西南交通大学C++上机实验答案.docx
《西南交通大学C++上机实验答案.docx》由会员分享,可在线阅读,更多相关《西南交通大学C++上机实验答案.docx(36页珍藏版)》请在冰豆网上搜索。
西南交通大学C++上机实验答案
实验1
教学班级:
学生学号:
学生姓名:
实验日期:
2014年3月1日实验地点:
(机房)
指导教师签名:
__________实验成绩:
___________
一、实验目的
1.熟悉C++程序的集成开发环境;
2.学习新建和打开控制台应用程序的方法;
3.掌握简单数据运算,以及输入与输出方法。
二、实验任务
1.输入一摄氏温度,输出显示所转换的华氏温度。
(提示:
摄氏温度=(华氏温度-32)×5/9)
2.画出一头威武雄壮的雄狮。
%%%%%%
%%/\%%%%/\%
%%%\c""J/%%%
%.%%%%/oo\%%%
`%%.%%%%_|%%
`%%`%%%%(__Y__)%
|
\\/\||
\\/)||
\/_||__
(___________)))))))
三、实验结果(源程序+注释)
1.
源程序
#include
usingnamespacestd;
voidmain()
{
doublea,b;
cout<<"请输入一摄氏温度:
"< cin>>a; b=a*9/5+32; cout<<"转换的华氏温度为: "< } 2. 源程序 #include usingnamespacestd; voidmain() { cout<<",%%%%%%"< cout<<",%%/\%%%%/\%"< cout<<",%%%\c""J/%%%"< cout<<"%.%%%%/oo\%%%"< cout<<"`%%.%%%%_|%%"< cout<<"`%%`%%%%(__Y__)%"< cout<<"|"< cout<<"\\/\||"< cout<<"\\/)||"< cout<<"\/_||__"< cout<<"(___________)))))))"< } 实验2 教学班级: 学生学号: 学生姓名: 实验日期: 2014年3月1日实验地点: (机房) 指导教师签名: __________实验成绩: ___________ 一、实验目的 1.掌握对一般数据的输入和输出格式控制方法; 2.掌握对实型数据输出形式的设置和小数位数的控制方法; 3.了解数据输入的相关注意事项。 二、实验任务 1.键盘输入某台计算机的编号和该计算机的价格,并输出这些信息。 要求: 编号为11位数字构成,如;价格含有小数部分,如元;输出的编号只是由数字组成,不应该出现小数点等非数字符号。 2.有一种加密方法是用原来字母的第n个字母代替原来的宁母。 例如把A用其后第4个字母E来替代。 现在有一密文内容为wigvix,编程求出它的原文是什么(提示: 可根据上述加密原理,使用若干字符型变量来实现)。 3.编程实现: 在计算机的提示下输入某学生的学号、英语成绩、高等数学成绩、线性代数成绩,计算得出三门课程平均成绩,并按如下格式输出显示。 成绩单 学号 **************************************** 科目成绩 ----------------------------------------------------------------- 英语85 高等数学90 线性代数 **************************************** 平均成绩 三、实验结果(源程序+注释) 1. 源程序 #include usingnamespacestd; voidmain() {doublea,b; cout<<"请输入某台计算机的编号和该计算机的价格: "< cin>>a>>b; (11); cout<<"该计算机的编号和价格分别为: "< cout< } 2. 源程序 #include usingnamespacestd; voidmain() {charc1,c2,c3,c4,c5,c6; cout<<"请输入密码内容: "< cin>>c1>>c2>>c3>>c4>>c5>>c6; c1=c1-4; c2=c2-4; c3=c3-4; c4=c4-4; c5=c5-4; c6=c6-4; cout<<"原文是: "< cout< } 3. 源程序 #include #include usingnamespacestd; voidmain() {floatscore1,score2,score3,average; cout<<"请输入三门课程的成绩"< cin>>score1>>score2>>score3; average=(score1+score2+score3)/3; cout<<"成绩单"< cout<<"学号"< cout<<"****************************************"< cout<<"科目"< cout<<"----------------------------------------"< cout<<"英语"< cout<<"高等数学"< cout<<"线性代数"< cout<<"****************************************"< cout< (1); cout<<"平均成绩"< } 实验3 教学班级: 学生学号: 学生姓名: 实验日期: 2014年3月2日实验地点: (机房) 指导教师签名: __________实验成绩: ___________ 一、实验目的 1.掌握“处理某一或某些操作只有在特定条件成立的情况下才会被执行”的编程思路和方法; 2.掌握简单分支程序设计,以及if和if-else语句的使用方法。 二、实验任务 1.已知一函数 ,输入x的值,求解并输出相应的y值。 2.求一元二次方程ax2+bx+c=0的根,其中a、b、c为实数,由键盘输入。 三、实验结果(源程序+注释) 1. 源程序 #include usingnamespacestd; voidmain() {doublex,y; cout<<"请输入x的值: "< cin>>x; if(x<1) y=x; if(x>=1&&x<10) y=2*x-1; if(x>=10) y=3*x-11; cout<<"输出相应的y值为: "< } 2. 源程序 #include #include usingnamespacestd; voidmain() {doublea,b,c,delta,x,x1,x2; cout<<"求一元二次方程ax2+bx+c=0的根"< cout<<"请输入a,b,c的值: "< cin>>a>>b>>c; delta=b*b-4*a*c; if(delta<0) cout<<"一元二次方程无实根"< else if(delta==0) {x=-b/(2*a); cout<<"一元二次方程ax2+bx+c=0的根为a: "<<"x1=x2="< if(delta>0) {x1=(-b-sqrt(delta))/(2*a); x2=(-b+sqrt(delta))/(2*a); cout<<"一元二次方程ax2+bx+c=0的根为: "<<"x1="< } 实验4 教学班级: 学生学号: 学生姓名: 实验日期: 2014年3月3日实验地点: (机房) 指导教师签名: __________实验成绩: ___________ 一、实验目的 1.掌握多路分支结构的程序设计,以及switch语句的使用方法; 2.学习通过程序调试来跟踪程序运行过程,查看程序运行过程中各个变量的取值变化 情况。 二、实验任务 1.某公司进行产品销售,既零售也批发,零售的价格与批发的价格不同,购买产品数量的多与少其价格也不同。 具体标准见下表: 批发商 零售商 数量(个) 单位价格(元/个) 数量(个) 单位价格(元/个) 50~200 10 1~20 18 200以上 8 20~40 15 40~50 12 要求编写一程序,输入客户购买产品的数量,输出客户类型(批发或零售客户)、产品单价及应付的总额。 2.给学生写评语,需将学生的考试成绩由百分制转换为5级制,标准为: 等级分数段 A95.-100分 B85.-94.分 C75.-84.分 D60.-74.分 E60.分以下 3.输入年号y和月份m,输出y年的m月有多少天。 三、实验结果(源程序+注释) 1. 源程序 #include usingnamespacestd; voidmain() {intx,y; cout<<"请输入客户购买产品的数量: "< cin>>x; y=x/10; switch(y) {case0: case1: cout<<"客户类型为零售商,产品单价为18元/个,应付的总额为: "<<18*x< case2: case3: cout<<"客户类型为零售商,产品单价为15元/个,应付的总额为: "<<15*x< case4: cout<<"客户类型为零售商,产品单价为12元/个,应付的总额为: "<<12*x< } if(50<=x&&x<200) cout<<"客户类型为批发商,产品单价为10元/个,应付的总额为: "<<10*x< if(x>=200) cout<<"客户类型为批发商,产品单价为8元/个,应付的总额为: "<<8*x< } 2. 源程序 #include usingnamespacestd; voidmain() {inta,b; cout<<"请输入一学生的考试成绩: "< cin>>a; b=a/5; switch(b) {case20: case19: cout<<"该学生的考试成绩等级为A: "< case18: case17: cout<<"该学生的考试成绩等级为B: "< case16: case15: cout<<"该学生的考试成绩等级为C: "< case14: case13: case12: cout<<"该学生的考试成绩等级为D: "< default: cout<<"该学生的考试成绩等级为E: "< } } 3. 源程序 #include usingnamespacestd; voidmain() {inty,m; cout<<"请输入输入年号y和月份m: "< cin>>y>>m; switch(m) {case1: case3: case5: case7: case8: case10: case12: cout< "< case4: case6: case9: case11: cout< "< } if(m==2) {if((y%4==0&&y%100! =0)||(y%100==0&&y%400==0)) cout< "< else cout< "< } } 实验5 教学班级: 学生学号: 学生姓名: 实验日期: 2014年4月日实验地点: (机房) 指导教师签名: __________实验成绩: ___________ 一、实验目的 1.理解“处理某一或某些操作需要被有条件地重复执行”的编程思路和方法; 2.掌握循环结构的程序设计,以及while、do-while和for循环语句的使用方法。 二、实验任务 1.计算 =1- + - +…直到最后一项小于10-6。 2.编程实现阿基里德算法求解两个整数的最大公约数和最小公倍数。 (提示: 设两个整数m、n(m>=n),用m除以n,求得余数q。 若q为零,n即为所求的最大公约数; 若q不为零,则更新除数和被除数(n→m,q→n)再做除法,直 至余数q为零止。 这时,相应的n即为所求的最大公约数。 而最小大公倍数=原始m与n值的乘积/最大公约数。 ) 3.编程实现十进制整数和二进制整数之间的转换。 三、实验结果(源程序+注释) 1. 源程序 #include usingnamespacestd; voidmain() {inti=1; doublen=1,j=1,k=0,pi=0; do{k=k+j; n=n+2; i=-i; j=i/n; }while(j>=||j<=; pi=4*k; cout<<"π/4="< cout<<"π="< } 2. 源程序 #include usingnamespacestd; voidmain() {intm,n,q,i,j,k; cout<<"请输入两个整数: "< cin>>m>>n; i=m; j=n; q=i%j; if(q==0) cout<<"所求的最大公约数为: "< if(q! =0) do{i=j; j=q; q=i%j; }while(q! =0); k=(m*n/j); cout<<"所求的最大公约数为: "< cout<<"所求的最小公倍数为: "< } 3 源程序 #include usingnamespacestd; voidmain() {inti=10,j=1,m,n=0; cout<<"请输入一个二进制整数: "< cin>>m; do{n+=j*(m%i); m/=i; j*=2; }while(m! =0); cout<<"转换为十进制整数是: "< } 实验6 教学班级: 学生学号: 学生姓名: 实验日期: 2014年4月2日实验地点: (机房) 指导教师签名: __________实验成绩: ___________ 一、实验目的 1.掌握循环与选择结构的嵌套的使用方法; 2.掌握嵌套循环的使用方法; 二、实验任务 1.设计一个程序,求出n-m之间(m>n)的所有素数,要求: 每行输出5个。 2.键盘输入一行字符,统计字符总个数,以及其中的英文字母个数,如果是数字,则统计它们所构成的数据中,奇数个数和偶数个数分别是多少。 提示: 可使用以下程序段,连续输入若干字符直到输入'\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,则运行结果如下 1 22 333 4444 5 4444 333 22 1 三、实验结果(源程序+注释) 1. 源程序 #include #include usingnamespacestd; voidmain() {intm,n,x,y,k=0; cout<<"请输入两个不等的整数: "< cin>>n>>m; cout<<"它们之间的所有素数为: "< for(x=n;x<=m;x++) {for(y=2;y<=x-1;y++) if(x%y==0)break; if(x==y) {cout<<""< k=k+1; if(k%5==0) cout<<"\n";} } } 2. 源程序 #include usingnamespacestd; #include<> voidmain() { charch; inti=0,ch_num=0,odd_num=0,even_num=0; cout<<"请输入一行字符: "< while (1) { ch=getchar(); if(ch=='\n')break; else { i=i+1; if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z') ch_num+=1; else if(ch>='1'&&ch<='9') if(ch%2==0)even_num+=1; elseodd_num+=1; } } cout<<"输入的字符总个数为: "< cout<<"其中英文字符个数为: "< cout<<"奇数个数为: "< cout<<"偶数个数为: "< } 3. 源程序 #include usingnamespacestd; 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') cout<<"3对选手的名单为: "<<"A--"< } 4. 源程序 #include #include usingnamespacestd; voidmain() {inti,j,a; cout<<"请任意输入一个整数: "; cin>>a; for(i=1;i<=a;i++) {for(j=1;j<=2*a-1;j++) if(j<=2*a-1-i) if(i! =a) cout<<""; else cout< else cout< cout< for(i=1;i<=a-1;i++) {for(j=1;j<=a-1;j++) if(j<=a-i) cout< else cout<<""; cout< } 实验7 教学班级: 学生学号: 学生姓名: 实验日期: 2014年4月2日实验地点: (机房) 指导教师签名: __________实验成绩: ___________ 一、实验目的 1.掌握数值型一维数组的使用方法; 2.掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法。 二、实验任务 1.对两个无序的数组(其中数组a长度为n,数组b长度m),采用选择法(或起泡法)分别将这两个数组转为有序(元素值从小到大有序)。 要求: a和b数组长度及其元素均由键盘获取。 2.将以上任务1构建的两个有序的数组a和b,进行有序合并,即将这两个数组进行合并的过程中其数据始终保持有序。 (提示: 数据结构: 三个一维数组a,b,c 将a[ia]和b[ib]比较,谁小就把谁放入c[ic](c数组用于存放合并后的数据), 谁放入了c[ic]中谁的下标就加1,同时ic(c中当前存放数据的下标)加1,如下图所示。 ) 3.计算以上任务2中c数组元素的平均值,并删除c中所有低于平均值的那些元素。 三、实验结果(源程序+注释) 1. 源程序 #include usingnamespacestd; voidmain(void) {inti,j,t,n,m,a[100],b[100]; cout<<"请输入数组a中数字的个数: "; cin>>n; cout<<"请输入数组a的"< "< for(i=0;i cin>>a[i]; for(i=0;i for(j=i+1;j if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;} cout<<"数组从小到大排列为: "< for(j=0;j cout< cout<<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南交通大学 C+ 上机 实验 答案