没有合适的资源?快使用搜索试试~ 我知道了~
c++程序设计_谭浩强_答案_修改版.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 60 浏览量
2021-11-26
14:56:04
上传
评论
收藏 143KB PDF 举报
温馨提示
试读
48页
c++程序设计_谭浩强_答案_修改版.pdf
资源推荐
资源详情
资源评论
第一章
1.5 题
#include <iostream>
using namespace std;
int main()
{
cout<<"This"<<"is";
cout<<"a"<<"C++";
cout<<"program.";
return 0;
1.6 题
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
a=10;
b=23;
c=a+b;
cout<<"a+b=";
cout<<c;
cout<<endl;
return 0;
}
1.7 七题
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
int f(int x,int y,int z);
cin>>a>>b>>c;
c=f(a,b,c);
cout<<c<<endl;
return 0;
}
int f(int x,int y,int z)
{
int m;
if (x<y) m=x;
else m=y;
if (z<m) m=z;
return(m);
}
1.8 题
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b;
c=a+b;
cout<<"a+b="<<a+b<<endl;
return 0;
}
1.9 题
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
int add(int x,int y);
cin>>a>>b;
c=add(a,b);
cout<<"a+b="<<c<<endl;
return 0;
}
int add(int x,int y)
{int z;
z=x+y;
return(z);
}
2.3 题
#include <iostream>
using namespace std;
int main()
{char
c1='a',c2='b',c3='c',c4='A',c5='N';
cout<<c1<<c2<<c3<<'';
cout<<" "<<c4<<' '<<c5<<'';
return 0;
}
2.4 题
#include <iostream>
using namespace std;
int main()
{char c1='C',c2='+',c3='+';
cout<<"I say: \""<<c1<<c2<<c3<<'\"';
cout<<" "<<"He says: \"C++ is very
interesting!\""<< '';
return 0;
}
2.7 题
#include <iostream>
using namespace std;
int main()
{int i,j,m,n;
i=8;
j=10;
m=++i+j++;
n=(++i)+(++j)+m;
cout<<i<<' '<<j<<' '<<m<<' '<<n<<en
dl;
return 0;
}
2.8 题
#include <iostream>
using namespace std;
int main()
{char c1='C', c2='h', c3='i', c4='n', c5='a';
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
cout<<"password
is:"<<c1<<c2<<c3<<c4<<c5<<endl;
return 0;
}
3.2 题
#include <iostream>
#include <iomanip>
using namespace std;
int main ( )
{float h,r,l,s,sq,vq,vz;
const float pi=3.1415926;
cout<<"please enter r,h:";
cin>>r>>h;
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=3.0/4.0*pi*r*r*r;
vz=pi*r*r*h;
cout<<setiosflags(ios::fixed)<<setiosflag
s(ios::right)
<<setprecision(2);
cout<<"l= "<<setw(10)<<l<<endl;
cout<<"s= "<<setw(10)<<s<<endl;
cout<<"sq="<<setw(10)<<sq<<endl;
cout<<"vq="<<setw(10)<<vq<<endl;
cout<<"vz="<<setw(10)<<vz<<endl;
return 0;
}
3.3 题
#include <iostream>
using namespace std;
int main ()
{float c,f;
cout<<"请输入一个华氏温度 :";
cin>>f;
c=(5.0/9.0)*(f-32); // 注意 5
和 9 要用实型表示 ,否则 5/9 值为 0
cout<<"摄氏温度为 :"<<c<<endl;
return 0;
};
3.4 题
#include <iostream>
using namespace std;
int main ( )
{char c1,c2;
cout<<"请输入两个字符 c1,c2:";
c1=getchar(); // 将输入的第
一个字符赋给 c1
c2=getchar(); // 将输入的第
二个字符赋给 c2
cout<<"用 putchar 函数输出结果为 :";
putchar(c1);
putchar(c2);
cout<<endl;
cout<<"用 cout 语句输出结果为 :";
cout<<c1<<c2<<endl;
return 0;
}
3.4 题另一解
#include <iostream>
using namespace std;
int main ( )
{char c1,c2;
cout<<"请输入两个字符 c1,c2:";
c1=getchar(); // 将输入的第
一个字符赋给 c1
c2=getchar(); // 将输入的第
二个字符赋给 c2
cout<<"用 putchar 函数输出结果为 :";
putchar(c1);
putchar(44);
putchar(c2);
cout<<endl;
cout<<"用 cout 语句输出结果为 :";
cout<<c1<<","<<c2<<endl;
return 0;
}
3.5 题
#include <iostream>
using namespace std;
int main ( )
{char c1,c2;
int i1,i2; // 定义
cout<<"请输入两个整数 i1,i2:";
cin>>i1>>i2;
c1=i1;
c2=i2;
cout<<"按字符输出结果为 :"<<c1<<" ,
"<<c2<<endl;
return 0;
}
3.8 题
#include <iostream>
using namespace std;
int main ( )
{ int a=3,b=4,c=5,x,y;
cout<<(a+b>c && b==c)<<endl;
cout<<(a||b+c && b-c)<<endl;
cout<<(!(a>b) && !c||1)<<endl;
cout<<(!(x=a) && (y=b) && 0)<<endl;
cout<<(!(a+b)+c-1 && b+c/2)<<endl;
return 0;
}
3.9 题
include <iostream>
using namespace std;
int main ( )
{int a,b,c;
cout<<"please enter three integer
numbers:";
cin>>a>>b>>c;
if(a<b)
if(b<c)
cout<<"max="<<c;
else
cout<<"max="<<b;
else if (a<c)
cout<<"max="<<c;
else
cout<<"max="<<a;
cout<<endl;
return 0;
}
3.9 题另一解
#include <iostream>
using namespace std;
int main ( )
{int a,b,c,temp,max ;
cout<<"please enter three integer
numbers:";
cin>>a>>b>>c;
temp=(a>b)?a:b;
/* 将 a和 b中的大者存入 temp 中 */
max=(temp>c)?temp:c;
/* 将 a 和 b 中的大者与 c 比较,最
大者存入 max
*/
cout<<"max="<<max<<endl;
return 0;
}
3.10 题
#include <iostream>
using namespace std;
int main ( )
{int x,y;
cout<<"enter x:";
cin>>x;
if (x<1)
{y=x;
cout<<"x="<<x<<", y=x="<<y;
}
else if (x<10)
// 1 ≤x<10
{y=2*x-1;
cout<<"x="<<x<<",
y=2*x-1="<<y;
}
else
// x ≥10
{y=3*x-11;
cout<<"x="<<x<<",
y=3*x-11="<<y;
}
cout<<endl;
return 0;
}
3.11 题
#include <iostream>
using namespace std;
int main ()
{float score;
char grade;
cout<<"please enter score of
student:";
cin>>score;
while (score>100||score<0)
{cout<<"data error,enter data
again.";
cin>>score;
}
switch(int(score/10))
{case 10:
case 9: grade='A';break;
case 8: grade='B';break;
case 7: grade='C';break;
case 6: grade='D';break;
default:grade='E';
}
cout<<"score is "<<score<<", grade
is "<<grade<<endl;
return 0;
}
3.12 题
#include <iostream>
using namespace std;
int main ()
{long int num;
int
indiv,ten,hundred,thousand,ten_thousa
nd,place;
/* 分别代表个位 ,十位 ,百位 ,千位 ,万位
和位数
*/
cout<<"enter an integer(0~99999):";
cin>>num;
if (num>9999)
place=5;
else if (num>999)
place=4;
else if (num>99)
place=3;
else if (num>9)
place=2;
else place=1;
cout<<"place="<<place<<endl;
// 计算各位数字
ten_thousand=num/10000;
thousand=(int)(num-ten_thousand*100
00)/1000;
hundred=(int)(num-ten_thousand*100
00-thousand*1000)/100;
ten=(int)(num-ten_thousand*10000-th
ousand*1000-hundred*100)/10;
indiv=(int)(num-ten_thousand*10000-t
housand*1000-hundred*100-ten*10);
cout<<"original order:";
switch(place)
{case
5:cout<<ten_thousand<<","<<thousand
<<","<<hundred<<","<<ten<<","<<indiv
<<en
dl;
cout<<"reverse order:";
cout<<indiv<<ten<<hundred<<thousan
d<<ten_thousand<<endl;
break;
case
4:cout<<thousand<<","<<hundred<<","
<<ten<<","<<indiv<<endl;
cout<<"reverse order:";
cout<<indiv<<ten<<hundred<<thousan
d<<endl;
break;
case
3:cout<<hundred<<","<<ten<<","<<indi
v<<endl;
cout<<"reverse order:";
cout<<indiv<<ten<<hundred<<endl;
break;
case
2:cout<<ten<<","<<indiv<<endl;
cout<<"reverse order:";
cout<<indiv<<ten<<endl;
break;
case 1:cout<<indiv<<endl;
cout<<"reverse order:";
cout<<indiv<<endl;
break;
}
return 0;
}
3.13 题
#include <iostream>
using namespace std;
int main ()
{ long i; //i
为利润
float
bonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1; //
利润为 10 万元时的奖金
bon2=bon1+100000*0.075; //
利润为 20 万元时的奖金
bon4=bon2+100000*0.05; //
利润为 40 万元时的奖金
bon6=bon4+100000*0.03; //
利润为 60 万元时的奖金
bon10=bon6+400000*0.015; //
利润为 100 万元时的奖金
cout<<"enter i:";
cin>>i;
if (i<=100000)
bonus=i*0.1;
// 利润在 10 万元以内按 10%提成奖金
else if (i<=200000)
bonus=bon1+(i-100000)*0.075;
// 利润在 10 万元至 20 万时的奖金
else if (i<=400000)
bonus=bon2+(i-200000)*0.05;
// 利润在 20 万元至 40 万时的奖金
else if (i<=600000)
bonus=bon4+(i-400000)*0.03;
// 利润在 40 万元至 60 万时的奖金
else if (i<=1000000)
bonus=bon6+(i-600000)*0.015;
// 利润在 60 万元至 100 万时的奖金
else
bonus=bon10+(i-1000000)*0.01;
// 利润在 100 万元以上时的奖金
cout<<"bonus="<<bonus<<endl;
return 0;
}
3.13 题另一解
#include <iostream>
using namespace std;
int main ()
{long i;
float
bonus,bon1,bon2,bon4,bon6,bon10;
int c;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
cout<<"enter i:";
cin>>i;
c=i/100000;
if (c>10) c=10;
switch(c)
{case 0: bonus=i*0.1; break;
case 1:
bonus=bon1+(i-100000)*0.075; break;
case 2:
case 3:
bonus=bon2+(i-200000)*0.05;break;
case 4:
case 5:
bonus=bon4+(i-400000)*0.03;break;
case 6:
case 7:
case 8:
case 9:
bonus=bon6+(i-600000)*0.015; break;
case 10:
bonus=bon10+(i-1000000)*0.01;
}
cout<<"bonus="<<bonus<<endl;
return 0;
}
3.14 题
#include <iostream>
using namespace std;
int main ()
{int t,a,b,c,d;
cout<<"enter four numbers:";
cin>>a>>b>>c>>d;
cout<<"a="<<a<<", b="<<b<<",
c="<<c<<",d="<<d<<endl;
if (a>b)
{t=a;a=b;b=t;}
if (a>c)
{t=a; a=c; c=t;}
if (a>d)
{t=a; a=d; d=t;}
if (b>c)
{t=b; b=c; c=t;}
if (b>d)
{t=b; b=d; d=t;}
if (c>d)
{t=c; c=d; d=t;}
cout<<"the sorted sequence:"<<endl;
cout<<a<<", "<<b<<", "<<c<<",
"<<d<<endl;
return 0;
}
3.15 题
#include <iostream>
using namespace std;
int main ()
{int p,r,n,m,temp;
cout<<"please enter two positive
integer numbers n,m:";
cin>>n>>m;
if (n<m)
{temp=n;
n=m;
m=temp; //
把大数放在 n 中, 小数放在 m 中
}
p=n*m; // 先
将 n 和 m 的乘积保存在 p 中, 以便求
最小公倍数时用
while (m!=0) // 求 n
和 m 的最大公约数
{r=n%m;
n=m;
m=r;
}
cout<<"HCF="<<n<<endl;
cout<<"LCD="<<p/n<<endl;
// p 是原来两个整数的乘积
return 0;
}
3.16 题
#include <iostream>
using namespace std;
int main ()
{char c;
int letters=0,space=0,digit=0,other=0;
cout<<"enter one line::"<<endl;
while((c=getchar())!='\n')
{if (c>='a' && c<='z'||c>='A' && c<='Z')
letters++;
else if (c==' ')
space++;
else if (c>='0' && c<='9')
digit++;
else
other++;
}
cout<<"letter:"<<letters<<",
space:"<<space<<", digit:"<<digit<<",
other:"<<other<<endl;
return 0;
}
3.17 题
#include <iostream>
using namespace std;
int main ()
{int a,n,i=1,sn=0,tn=0;
cout<<"a,n=:";
cin>>a>>n;
while (i<=n)
{tn=tn+a; // 赋值后的 tn 为 i
个 a 组成数的值
sn=sn+tn; // 赋值后的 sn 为
多项式前 i 项之和
a=a*10;
++i;
}
cout<<"a+aa+aaa+...="<<sn<<endl;
return 0;
}
3.18 题
#include <iostream>
using namespace std;
int main ()
{float s=0,t=1;
int n;
for (n=1;n<=20;n++)
{
t=t*n; // 求 n!
s=s+t; // 将各项累加
}
cout<<"1!+2!+...+20!="<<s<<endl;
return 0;
}
3.19 题
#include <iostream>
using namespace std;
int main ()
{int i,j,k,n;
cout<<"narcissus numbers
are:"<<endl;
for (n=100;n<1000;n++)
{i=n/100;
j=n/10-i*10;
k=n%10;
if (n == i*i*i + j*j*j + k*k*k)
cout<<n<<" ";
}
cout<<endl;
return 0;
}
3.20 题
#include <iostream>
using namespace std;
int main()
{const int m=1000; // 定义寻
找范围
int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;
int i,a,n,s;
for (a=2;a<=m;a++) // a 是
2~1000 之间的整数,检查它是否为完
数
{n=0; // n 用来
累计 a 的因子的个数
s=a; // s 用来
存放尚未求出的因子之和,开始时等
于 a
for (i=1;i<a;i++) // 检查 i 是
否为 a 的因子
if (a%i==0) // 如果 i
是 a 的因子
{n++; // n 加
1,表示新找到一个因子
s=s-i; // s 减去
已找到的因子, s 的新值是尚未求出的
因子
之和
switch(n) // 将找
到的因子赋给 k1,...,k10
{case 1:
k1=i; break; // 找出
的笫 1 个因子赋给 k1
case 2:
k2=i; break; // 找出
的笫 2 个因子赋给 k2
case 3:
k3=i; break; // 找出
的笫 3 个因子赋给 k3
case 4:
k4=i; break; // 找出
的笫 4 个因子赋给 k4
case 5:
k5=i; break; // 找出
的笫 5 个因子赋给 k5
case 6:
k6=i; break; // 找出
的笫 6 个因子赋给 k6
case 7:
k7=i; break; // 找出
的笫 7 个因子赋给 k7
case 8:
k8=i; break; // 找出
的笫 8 个因子赋给 k8
case 9:
k9=i; break; // 找出
的笫 9 个因子赋给 k9
case 10:
k10=i; break; // 找出
的笫 10 个因子赋给 k10
}
}
if (s==0) // s=0 表
示全部因子都已找到了
{cout<<a<<" is a 完数 "<<endl;
cout<<"its factors are:";
if (n>1) cout<<k1<<","<<k2;
// n>1 表示 a 至少有 2 个因子
if (n>2) cout<<","<<k3; // n>2
表示至少有 3 个因子,故应再输出一
个因子
if (n>3) cout<<","<<k4; // n>3
表示至少有 4 个因子,故应再输出一
个因子
if (n>4) cout<<","<<k5;
// 以下类似
if (n>5) cout<<","<<k6;
if (n>6) cout<<","<<k7;
if (n>7) cout<<","<<k8;
if (n>8) cout<<","<<k9;
if (n>9) cout<<","<<k10;
cout<<endl<<endl;
}
}
return 0;
}
3.20 题另一解
#include <iostream>
using namespace std;
int main()
{int m,s,i;
for (m=2;m<1000;m++)
剩余47页未读,继续阅读
资源评论
筱筱笎琞
- 粉丝: 8
- 资源: 15万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功