第4章 习题解答Word格式.docx
- 文档编号:22437923
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:21
- 大小:17.93KB
第4章 习题解答Word格式.docx
《第4章 习题解答Word格式.docx》由会员分享,可在线阅读,更多相关《第4章 习题解答Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
%f%f%f"
a,&
b,&
if(a!
{
d=b*b-4*a*c;
if(d>
0)
{
x1=(sqrt(d)-b)/(2*a);
x2=-(sqrt(d)+b)/(2*a);
printf("
Tworealresults:
\n%.6f\n%.6f\n"
x1,x2);
}
elseif(d==0)
x1=-b/(2*a);
Onerealresult:
\n%.6f\n"
x1);
else
x2=sqrt(-d)/(2*a);
Twovirsualresults:
\n%.3f+%.3fi\n%.3f-%.3fi\n"
x1,x2,x1,x2);
}
elseif(b!
x1=-c/b;
printf("
elseif(c!
=0)
Error!
Noresult.\n"
else
printf("
Anyoneisresult.\n"
4.3输入一个日期(年、月、日),计算并输出该日期是这一年的第几天。
switch方法:
inty,m,d,days;
Enteryear:
%d"
y);
Entermonth:
m);
Enterday:
d);
if(m<
1||m>
12)
Inputerror!
days=d;
switch(m)
case12:
days+=30;
case11:
days+=31;
case10:
case9:
case8:
case7:
case6:
case5:
case4:
case3:
days+=(y%4==0&
&
y%100!
=0||y%400==0?
29:
28);
case2:
%d\n"
days);
函数方法:
intmdays(inty,intm)
if(m==2)
returny%4==0&
28;
elseif(m==4||m==6||m==9||m==11)
return30;
return31;
inty,m,d,days;
12||d>
mdays(y,m))
while(m>
1)
days+=mdays(y,m-1);
m--;
4.4假设工资税金按以下方法计算:
x<
1000元,不收取税金;
1000≤x<
2000,收取5%的税金;
2000≤x<
3000,收取10%的税金;
3000≤x<
4000,收取15%的税金;
4000≤x<
5000,收取20%的税金;
x>
5000,收取25%的税金。
输入工资金额,输出应收取税金额度,要求分别用if语句和switch语句来实现。
if方法:
floatx=0;
inputthesalary:
&
x);
if(x<
0)
elseif(x<
1000)
0.00\n"
2000)
%.2f\n"
x*0.05);
3000)
x*0.1);
4000)
x*0.15);
5000)
x*0.2);
x*0.25);
floatx;
intxCase=0;
xCase=(int)(x/1000.0);
switch(xCase)
case0:
break;
case1:
default:
4.5输入两个实数和一个四则运算符(+、-、*、/),根据运算符执行相应的运算并输出运算结果,分别用if语句和switch语句来实现。
floata,b,result;
charc;
Pleasekeyin2numbers:
%f%f"
getchar();
Pleasekeyin1operator:
%c"
if(c=='
+'
)
result=a+b;
%f+%f=%.6f\n"
a,b,result);
elseif(c=='
-'
result=a-b;
%f-%f=%.6f\n"
*'
result=a*b;
%f*%f=%.6f\n"
/'
if(b!
result=a/b;
%f/%f=%.6f\n"
switch(c)
case'
:
break;
4.6统计输入正文中空格字符、制表符和换行符的个数。
inta=0,b=0,c=0;
intch;
while((ch=getchar())!
=EOF)
if(ch=='
'
a++;
elseif(ch=='
\t'
b++;
\n'
c++;
Thenumberofspace,tab,enteris:
%d,%d,%d\n"
a,b,c);
4.7编写一个程序,将输入的一行字符复制到输出,复制过程中将一个以上的空格字符用一个空格代替。
intflag=0;
do
c=getchar();
if(c!
='
putchar(c);
flag=0;
if(!
flag)
flag=1;
}while(c!
='
4.8将输入的正文复制到输出,复制过程中删去每个输入行的前导空格。
intch,flag,i=0;
chars[800];
=EOF&
i<
799)
s[i++]=(char)ch;
s[i]=0;
\n\n"
for(i=0;
s[i]!
=0;
i++)
if(!
(flag&
s[i]=='
))
putchar(s[i]);
if(s[i]=='
flag=1;
else
flag=0;
4.9输出斐波拉契数列的前n项。
例如:
11235813……
n由终端输入,n>
=20,每行输出8个数。
计算公式为:
a1=1,a2=1,an=an-1+an-2(n>
3)。
intn,i,fib[100];
Pleasekeyinanumber:
n);
fib[0]=1;
%6d"
fib[0]);
fib[1]=1;
fib[1]);
for(i=2;
i<
n;
fib[i]=fib[i-1]+fib[i-2];
fib[i]);
if((i+1)%8==0)
putchar('
4.11编写一个程序,输入两个整数,求它们的最大公约数和最小公倍数。
inta,b,num1,num2,temp;
Inputa&
b:
%d%d"
num1,&
num2);
a=num1;
b=num2;
if(a>
b)
temp=a;
a=b;
b=temp;
while(b!
=0)
temp=a%b;
TheGCDof%dand%dis:
%d\n"
num1,num2,a);
TheLCMofthemis:
num1*num2/a);
4.12输入两个整数,判断它们是否为互质数并输出判断结果。
/*公因数只有1的两个非零自然数,叫做互质数。
举例:
2和3,公因数只有1,为互质数*/
intm,n,i,min;
Pleasekeyintwonumber:
m,&
min=m>
n?
n:
m;
=min;
(m%i))
if(!
(n%i))
break;
if(i>
min)
Yes\n"
False\n"
4.13编写一个程序,验证哥德巴赫猜想:
任何充分大(>
=4)的偶数都可以用两个素数之和表示,将4~100中所有偶数分别用两个素数之和的形式输出。
(例如:
4=2+2,100=3+97)
intPrimes(intx);
//判断素数函数
inti;
intnum;
for(num=4;
num<
=100;
num+=2)
for(i=1;
i<
=num/2;
i++)
if(Primes(i)&
Primes(num-i))
%d=%d+%d\n"
num,i,num-i);
}
intPrimes(intx)
inti,j;
j=sqrt(x);
for(i=2;
=j;
if(x%i==0)
if(i>
j)
return1;
else
4.15输出10000以内所有这样的完全平方数:
a2=b2*10+c2。
例如,361=192=62*10+12。
#defineN10000
inta,b,c,l,m,n;
for(a=1;
(l=a*a)<
=N;
a++)
for(b=1;
(m=b*b*10)<
=l;
b++)
for(c=1;
(n=c*c)<
=l-m;
c++)
{
if(n==l-m)
{
printf("
%d=%d^2=%d^2*10+%d^2\n"
l,a,b,c);
break;
}
}
n=l-m;
c=(int)sqrt(n);
if(c*c==n)
printf("
4.16输入一个英文字母,输出相应的二维字符图形。
charcm,cn,c;
inti,n;
Pleasekeyinaletter:
if(c>
A'
&
c<
Z'
cm='
n=c-'
;
elseif(c>
a'
z'
return0;
for(;
cm<
=c;
cm++)
for(i=0,cn=cm;
=n;
i++,cn++)
if(cn>
c)
cn=c-n;
putchar(cn);
"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 习题解答 习题 解答
![提示](https://static.bdocx.com/images/bang_tan.gif)