华中科技大学C++上机实验答案全Word文档下载推荐.docx
《华中科技大学C++上机实验答案全Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《华中科技大学C++上机实验答案全Word文档下载推荐.docx(51页珍藏版)》请在冰点文库上搜索。
b;
a="
a<
b="
b<
temp=a;
a=b;
b=temp;
//求一个三角形的面积(例题程序)
cmath>
floata,b,c,s,area;
a,b,c="
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
area="
area<
//求一个三角形的面积(修改后的程序)
inta,b,c,s,area;
if(a<
b+c&
&
a+c&
a+b){
不能够成三角形"
/*用sizeof运算符计算C++中char,short,int,long,float,double等基本数据类型所占的字节数,并按以下格式输出:
sizeof(char)=1byte
sizeof(short)=2bytes
sizeof(int)=4bytes
……..*/
sizeof(char)="
sizeof(char)<
byte"
sizeof(short)="
sizeof(short)<
sizeof(int)="
sizeof(int)<
sizeof(long)="
sizeof(long)<
sizeof(float)="
sizeof(float)<
sizeof(double)="
sizeof(double)<
//修改后的程序
char"
short"
int"
long"
float"
double"
//用数组列表输出
chardatatype[]="
char\tshort\tint\tlong\tfloat\tdouble"
datatype<
/*编写满足下列要求的程序:
根据输入的球半径,分别计算球的表面积、体积和质量(假设球的密度为7.8kg/dm3),并输出计算结果。
constdoublePI=3.14;
doubler,s,v,m;
输入球的半径r(单位dm):
r;
r="
r<
s=4*PI*r*r;
v=(4/3)*PI*r*r*r;
m=7.8*(4/3)*PI*r*r*r;
面积s(单位dm^2)="
s<
体积v(单位dm^3)="
v<
质量m(单位kg)="
m<
//演示C++程序中输入、输出易出错的几个地方。
intmain()
{
chara[20];
inti;
cout<
请输入以下包含空格的字符串:
It'
sabook."
cin>
a[0]>
a[1]>
a[2]>
a[3]>
a[4]>
a[5]>
a[6]>
a[7]>
a[8]>
a[9];
a[10]='
\0'
保存的数组a是:
请重新输入一遍:
cin.get(a[0]);
cin.get(a[1]);
cin.get(a[2]);
cin.get(a[3]);
cin.get(a[4]);
cin.get(a[5]);
cin.get(a[6]);
cin.get(a[7]);
cin.get(a[8]);
cin.get(a[9]);
cin.get(a[10]);
cin.get(a[11]);
cin.get(a[12]);
a[13]='
注意:
a[0]存放上次输入结束的回车符,a[13]存放本次输入结束的回车符,各自产生一个换行。
请输入字符串:
Thisisacat。
<
cin.getline(a,18);
没有机会输入字符串:
Thisisacat.。
程序读了上次输入数字时的回车,输出一个空串。
现在可以重新输入一遍字符串:
Thisisacat."
成功!
return0;
实验三
//输入一个数,判断它的奇偶性后输出结果。
intinput;
Whichnumberdoyouwanttotext:
\n"
input;
if(input%2==0)
Thenumber"
input<
isodd."
iseven."
/*编程求一元二次方程ax2+bx+c=0的根。
包括以下判断和结果,若输入a=0,给出提示;
△=b2-4ac,若△>
0,输出两个不等的实根;
若△=0,输出两个相等实根;
若△<
0,输出两个复数根。
floata,b,c,x1,x2,delta;
请输入一元二次方程的三个系数:
c="
delta=b*b-4*a*c;
if(a==0)cout<
该方程不是一元二次方程!
elseif(delta==0){
方程有两个相等的实根:
x1=x2="
-b/(2*a)<
elseif(delta>
0){
cout<
方程有两个不同的实根:
delta=sqrt(delta);
x1=(-b+delta)/(2*a);
x2=(-b-delta)/(2*a);
x1="
x1<
x2="
x2<
}
else{
cout<
方程无实根,但有两个虚根:
delta=sqrt(fabs(delta));
x1=-b/(2*a);
x2=delta/(2*a);
+"
i"
-"
}
/*编写程序:
输入一门课程的成绩,若高于90分,输出“Agrade”;
若高于80分而低于90分,输出“Bgrade”;
若高于70分而低于80分,输出“Cgrade”;
若高于60分而低于70分,输出“Dgrade”;
否则输出“Notpassed”。
(用if语句编写)*/
floatscore;
输入分数(0--100):
score;
if(score>
=90)cout<
Agrade"
elseif(score>
=80)cout<
Bgrade"
=70)cout<
Cgrade"
elseif(score>
=60)cout<
Dgrade"
elsecout<
notpassed"
//用switch语句实现
intscore,n;
n=score/10;
switch(n){
case10:
case9:
break;
case8:
case7:
case6:
default:
//编写程序:
输入一个数,判断其是否是3或7的倍数,可分为4种情况输出。
inta;
输入要测试的整数:
a;
if(a%3==0&
a%7!
=0)cout<
是3的倍数,但不是7的倍数。
elseif(a%3!
=0&
a%7==0)cout<
不是3的倍数,是7的倍数。
elseif(a%3==0&
是3的倍数,也是7的倍数。
elsecout<
不是3的倍数,也不是7的倍数。
/*编程计算个人所得税。
个人所得税率表如下:
月收入1200元起征,超过起征点500元以内部分税率5%,超过500元到2,000元部分税率10%,超过2,000元到5,000元部分税率15%,超过5,000元到20,000元部分税率20%,超过20,000元到40,000元部分税率25%,超过40,000元到60,000元部分税率30%,超过60,000元到80,000元部分税率35%,超过80,000元到100,000元部分税率40%,超过100,000元部分税率45%。
#include<
inti;
floatf;
请输入月收入i:
i;
if(i<
1200)
不用征收个人所得税"
elseif(i<
1700){
f=(i-1200)*0.05;
个人所得税为:
f;
3200){
f=25+(i-1700)*0.1;
6200){
f=175+(i-3200)*0.15;
21200){
f=625+(i-6200)*0.2;
41200){
f=3625+(i-21200)*0.25;
61200){
f=8625+(i-61200)*0.3;
81200){
f=14625+(i-81200)*0.35;
101200){
f=21625+(i-101200)*0.4;
else{
f=29625+(i-101200)*0.45;
实验四
//输入正整数n,计算n的阶乘。
intn,i,result;
请输入n:
n;
if(n<
1){
输入错误!
return1;
elseresult=1;
for(i=1;
i<
=n;
i++){
result=result*i;
n!
="
result<
//编程计算求π的近似值。
voidmain(){
longinti=0;
doublesum,tem,pi;
sum=0,tem=0;
do{
i+=1;
tem=1.0/(i*i);
sum+=tem;
while(tem>
=1e-12);
pi=sqrt(sum*6);
pi="
pi<
//将输入的小写字母转换成大写字母。
inti=0;
charx[10000];
请输入一串英文小写字母:
cin.getline(x,10000);
if(x[i]<
a'
||x[i]>
z'
)cout<
elsedo{
x[i]=x[i]-32;
i++;
}while(x[i]!
='
);
大写字母为:
x<
//编程:
设计一个程序,输入一个日期,要求算出这一天是本年的第几天。
intm[12]={31,28,31,30,31,30,31,31,30,31,30,31};
intyear,mouth,day,ip=0,all,i;
请输入年、月、日:
year>
mouth>
day;
if(year%4==0&
year%100!
=0||year%400==0)
m[1]=29;
for(i=0;
mouth-1;
i++)
ip=ip+m[i];
all=ip+day;
year<
-'
mouth<
day<
是本年的第"
all<
天"
实验五
//由0到4五个数字,组成5位数,每个数字用一次,但十位和百位不能为3(当然万位不能为0),输出所有可能的五位数。
inti,j,k,m,n,count=0;
=4;
for(j=0;
j<
j++){
if(j==i)continue;
for(k=0;
k<
k++){
if(k==j||k==3||k==i)continue;
for(m=0;
m++){
if(m==k||m==3||m==i||m==j)continue;
for(n=0;
n<
n++){
if(n==m||n==k||n==j||n==i)continue;
cout<
count++;
if(count%5==0)cout<
}
}
//编程求和:
s=a+aa+aaa+aaaa+……+aaaa…aaa(n个),其中a为1~9中的一个数字。
inta,n,i,sum=0,sum1=0;
请输入a和n的值:
9||n<
0)cout<
sum=sum*10+a;
sum1=sum1+sum;
其值为:
sum1<
//编程求出所有的“水仙花数”。
所谓“水仙花数”是指一个3位数,其中各位数字的立方和等于该数本身,例如153就是一个“水仙花数”,
因为153=13+53+33。
要求采用枚举法。
intx=100,m,n,k;
intcount=0;
do{
m=x%10;
n=x/100;
k=(x-n*100-m)/10;
if(m*m*m+n*n*n+k*k*k==x){
count++;
if(count%5==0){cout<
x++;
}while(x<
=999);
//有两队选手每队5人进行一对一的比赛,甲队为A、B、C、D、E,乙队为J、K、L、M、N,经过抽签决定比赛对手名单。
规定A不和J比赛,
M不和D及E比赛。
列出所有可能的比赛名单。
charx[]={'
A'
'
B'
C'
D'
E'
};
chary[]={'
J'
K'
L'
M'
N'
intj,k,l,m,n;
for(j=0;
if(j==0)continue;
for(k=0;
if(k==j)continue;
for(l=0;
l<
l++){
if(l==k||l==j)continue;
if(m==3||m==k||m==j||m==l)continue;