中南大学C程序设计实践思考题答案.docx
《中南大学C程序设计实践思考题答案.docx》由会员分享,可在线阅读,更多相关《中南大学C程序设计实践思考题答案.docx(27页珍藏版)》请在冰豆网上搜索。
![中南大学C程序设计实践思考题答案.docx](https://file1.bdocx.com/fileroot1/2022-10/26/b7f99619-c2c8-4fa8-82b3-014ef2e22e2b/b7f99619-c2c8-4fa8-82b3-014ef2e22e2b1.gif)
中南大学C程序设计实践思考题答案
实验1C++基础
6.编写程序,输入某大写字母的ASCII码值,输出该字母的对应小写字母。
#include
usingnamespacestd;
intmain()
{
inti;
cin>>i;
if(i>=65&&1<=90)
cout<else
cout<<"输入有误"<return0;
}
实验2
三、实验思考
1.输入直角三角形的两条直角边长,调用平方根库函数sqrt来求斜边的长度
#include
#include
usingnamespacestd;
intmain()
{floata,b,c;
cout<<"请输入直角三角形的两条边长:
";
cin>>a>>b;
c=sqrt(a*a+b*b);
cout<<"直角三角形的斜边="<return0;
}
2.从键盘输入一个字符,如果输入的是英文大写字母,则将它转换成小写字母后输出,否则输出原来输入的字符。
#include
usingnamespacestd;
intmain()
{
charc;
cout<<"请输入一个字符:
";
cin>>c;
if(c>='A'&&c<='Z')
c+='a'-'A';
cout<return0;
}
3.输入一个学生的成绩,如高于60分,则输出“pass”;否则,输出“failed”。
#include
usingnamespacestd;
intmain()
{
floatgrade;
cout<<"请输入成绩:
";
cin>>grade;
if(grade>=60)
cout<<"pass"<else
cout<<"failed";
return0;
}
4.计算分段函数
#include
#include
usingnamespacestd;
intmain()
{
doublex,y;
cout<<"请输入一个数x:
";
cin>>x;
if(!
x)
y=cos(x)-pow(x,2)+3*x;
else
y=sin(x)+sqrt(pow(x,2)+1)+3*x;
cout<<"y="<return0;
}
5.从键盘上输入1~7之间的一个数字,输出其对应星期几的英文表示。
#include
usingnamespacestd;
intmain()
{
charc;
cout<<"Enteracharacterofnumbersbetween1and7:
";
cin>>c;
switch(c)
{
case'1':
cout<<"Monday";break;
case'2':
cout<<"Tuesdag";break;
case'3':
cout<<"Wenesday";break;
case'4':
cout<<"Thursday";break;
case'5':
cout<<"Friday";break;
case'6':
cout<<"Saturday";break;
case'7':
cout<<"Sunday";break;
default:
cout<<"wrongnumber";
}
cout<return0;
}
6.设计一个简单的计算器程序,能够进行加、减、乘、除简单运算并显示结果。
#include
usingnamespacestd;
intmain()
{
cout<<"输入简单的算术表达式:
(数操作符数)";
intleftOperand,rightOperand;
charOperator;
cin>>leftOperand>>Operator>>rightOperand;
intresult;
switch(Operator)
{
case'+':
result=leftOperand+rightOperand;break;
case'-':
result=leftOperand-rightOperand;break;
case'*':
result=leftOperand*rightOperand;break;
case'/':
if(rightOperand!
=0)
result=leftOperand/rightOperand;
else
{
cout<<"除数为0,除法不能进行"<return0;
}
break;
default:
cout<"<return0;
}
cout<return0;
}
实验3
三、思考题参考程序
1.编程计算表达式的值。
#include
usingnamespacestd;
intmain()
{
intn,k=1,sum=0,mean;
cout<<"请输入n的值:
";
cin>>n;
while(k<=n)
{
sum+=k*k;
k++;
}
if(n>0)
mean=sum/n;
else
mean=0;
cout<<"1~n个整数平方和的均值="<return0;
}
2.输入两个正整数,判别它们是否互为互质数。
所谓互质数,就是最大公约数是1。
#include
usingnamespacestd;
intmain()
{
intm,n,r;
cout<<"请输入两个正整数:
";
cin>>m>>n;
cout<if(m{r=m;m=n;n=r;}
while(r=m%n)
{
m=n;
n=r;
}
if(n==1)
cout<<"是互质数"<else
cout<<”不是互质数”<return0;
}
3.编写程序,输出从公元2000年至3000年间所有闰年的年号。
#include
usingnamespacestd;
intmain()
{
intyear;
cout<<"公元2000年至3000年间闰年的年号:
\n";
for(year=2000;year<=3000;year++)
if((year%4==0&&year%100!
=0)||(year%400==0))
cout<cout<return0;
}
4.编写程序模拟猴子吃桃子问题:
猴子第1天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。
第2天将剩下的桃子又吃了一半,又多吃一个。
以后每天都吃了前一天剩下的一半零1个。
到了第10天,只剩下了一个桃子。
请问猴子第一天共摘了多少个桃子?
方法1:
#include
usingnamespacestd;
intmain()
{
intday,qian,hou=1;
for(day=9;day>=1;day--)
{
qian=(hou+1)*2;
hou=qian;
}
cout<return0;
}
运行结果:
1534
方法2:
#include
usingnamespacestd;
intmain()
{
intday,number=1;
for(day=9;day>=1;day--)
number=(number+1)*2;
cout<return0;
}
方法3:
#include
usingnamespacestd;
intpeach(int);
intmain()
{
cout<<"第1天共摘了"<(1)<<"个"<return0;
}
intpeach(intday)
{
intnumber;
if(day==10)
number=1;
else
number=2*(peach(day+1)+1);
returnnumber;
}
5.计算s=1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+…+n)的值。
方法1:
#include
usingnamespacestd;
intmain()
{
inti,j,n;
longintsum,total(0);
cout<<"inputn:
";
cin>>n;
for(i=1;i<=n;i++)
{
sum=0;
for(j=1;j<=i;j++)
sum+=j;
total+=sum;
}
cout<<"s="<return0;
}
#include
usingnamespacestd;
intmain()
{
inti,n;
longintsum(0),total(0);
cout<<"inputn:
";
cin>>n;
for(i=1;i<=n;i++)
{
sum+=i;
total+=sum;
}
cout<<"s="<return0;
}
6.马克思曾经做过这样一道趣味数学题:
有30个人在一家小饭馆用餐,其中有男人、女人和小孩。
每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,一共花了50先令。
请问男人、女人以及小孩各有几个人?
#include
usingnamespacestd;
intmain()
{
intx,y,z;
for(x=1;x<=16;x++)
for(y=1;y<=24;y++)
{
z=30-x-y;
if(3*x+2*y+z==50)
cout<<"Menare"<}
return0;
}实验4常用程序设计算法
三、实验思考
1.读入一个整数N,若N为非负数,则计算N到2×N之间的整数和;若N为负数,则求2×N到N之间的整数和。
分别利用for和while写出两个程序。
#include
usingnamespacestd;
intmain()