C语言函数基础题求解求帮忙~
1.intf1(){intx=0x02;returnx<<2;求解释下x=0x02,x<<2怎么运行的?我除了知道X左移2位其他看都看不懂}printf("%d\n",f...
1.int f1()
{
int x=0x02;
return x<<2; 求解释下x=0x02,x<<2怎么运行的?我除了知道X左移2位其他看都看不懂
}
printf("%d\n",f1());
2.double f3(int n)
{
if(n==1)return 1.0;
else return 1.0/(1.0+f3(n-1));
}
printf("%.1f\n",f3(3));
答案1. 8
2. 0.7 为什么我怎么算都是1.0
该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:
3+33+333+3333+33333+333333
#include <stdio.h>
void main()
{ int i,a,n; long t=0;
/********* 1 *******/
s=0; //s=0改为long s=0
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++) {
/******* 2 ******/
t=t*10+a; //i改为1
s=s+t;
}
printf("%ld\n",s);
}
这道改错 //i改为1 这一步完全看不懂,不知道是答案给错了还是怎么的,如果是给错了那应该改那里呢?求帮助! 展开
{
int x=0x02;
return x<<2; 求解释下x=0x02,x<<2怎么运行的?我除了知道X左移2位其他看都看不懂
}
printf("%d\n",f1());
2.double f3(int n)
{
if(n==1)return 1.0;
else return 1.0/(1.0+f3(n-1));
}
printf("%.1f\n",f3(3));
答案1. 8
2. 0.7 为什么我怎么算都是1.0
该程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:
3+33+333+3333+33333+333333
#include <stdio.h>
void main()
{ int i,a,n; long t=0;
/********* 1 *******/
s=0; //s=0改为long s=0
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++) {
/******* 2 ******/
t=t*10+a; //i改为1
s=s+t;
}
printf("%ld\n",s);
}
这道改错 //i改为1 这一步完全看不懂,不知道是答案给错了还是怎么的,如果是给错了那应该改那里呢?求帮助! 展开
2个回答
展开全部
0X02 即0000 0010 左移2位 即 0000 1000 即0X08 也是十进制的8
f3(3)=1.0/(1.0+f3(n-1))
=1.0/(1.0+f3(2))
=1.0/(1.0+1.0/(1.0+f3(1)))
=1.0/(1.0+1.0/(1.0+1))
=1.0/(1.0+1.0/2)
=1.0/(1.5)
=0.666666666
保留小数点1位 即0.7
/**********1*****************/ 填上 long s=0; 就可以了
f3(3)=1.0/(1.0+f3(n-1))
=1.0/(1.0+f3(2))
=1.0/(1.0+1.0/(1.0+f3(1)))
=1.0/(1.0+1.0/(1.0+1))
=1.0/(1.0+1.0/2)
=1.0/(1.5)
=0.666666666
保留小数点1位 即0.7
/**********1*****************/ 填上 long s=0; 就可以了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询