c语言的几个问题

1.以下程序的输出结果为*3.140000,3.142*。main(){printf(“*%f,%4.3f*\n”,3.14,3.1415);}(%4.3f,.3是小数部... 1.以下程序的输出结果为 *3.140000,3.142* 。
main()
{
printf(“*%f,%4.3f*\n”,3.14,3.1415);
}
(%4.3f,.3是小数部分3位,4是总长4位,小数部分加上小数点就4位了,那4位总长是不是就不起作用了,如果是%3.3f是不是也是一样的)
2.已有定义int d=-2;执行以下语句后的输出结果是*d(1)=-2*d(2)=-2*d(3)=-2* *d(4)=177776*d(5)=177776*d(6)=177776*

printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n”,d,d,d);
printf(“*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n”,d,d,d);
(为什么答案不是*d(1)=-2*d(2)= -2*d(3)=-2 *
*d(4)=177776*d(5)= 177776*d(6)=177776 *
是不是*号也算做数据的一部分)
3.已有定义float d1=3.5,d2=-3.5;执行以下语句后的输出结果是 *d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=3.500e+00*
*d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00*

printf(“*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\n”,d1,d1,d1);
printf(“*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n”,d2,d2,d2);
(d(1)3.5后面应该留几位小数,e后面几位,d(3)%10.4e的10和4是什么意思)
4.以下程序的输出结果为x=1 y=2 *sum*=3
10 Squared is: 100 。
main()
{
int x=1,y=2;
printf(“x=%d y=%d *sum*=%d\n”,x,y,x+y);
printf(“10 Squared is:%d\n”,10*10);
}
(题目改成"x=%d x=%d x=%d\n",x,y,x+y 答案是不是一样的)
5.以下程序的输出结果为 5.68100e+02
#include <stdio.h>
main()
{
printf(“%e\n”,568.1);
}
(f型小数保留6到7位,e型的小数保留几位,指数部分保留几位)
6.以下printf语句中*号的作用是【可以使同一输出语句中的输出宽度得以改变】,输出结果是 ##1
## 2
## 3
## 4
## 5

#include <stdio.h>
main()
{
int i;
for(i=1;i<=5;i++) printf(“##%*d\n”,i,i);
}
(这道题解释一下)
7.该程序的输出结果是【 3.141592600##
3.141592600 ##
#include <stdio.h>
main()
{
double a=3.1415926;
printf(“%14.10lf##\n”,a);
printf(“%-14.10lf##\n”,a);
}
(14.10不是小数部分保留10位吗,
为什么答案不是 3.1415926000##
3.1415926000 ## )
8.以下程序的输出结果为 a=+00325(中间3个空格)x=+3.14159e+00 。
#include <stdio.h>
main()
{
int a=325; double x=3.1415926;
printf(“a=%+06d(中间一个空格) x=%+e\n”,a,x);
}
(为什么不是a=+000325,+号也是一位吗,3.14159为什么省略了两位,为什么有3个空格,一个是数字输入结束的,一个是数据之间有个空格,还有一个空格是做什么的)

9.以下程序段的输出结果为 (1) x=7281,x=7281,x=16161,x=1c71,x=7281
(2) x=7281,x=7281,x=$7281,x=$007281,x=%06d
(3) x=+7281,x=+7281,x=+0007281

int x=7281;
printf(“(1) x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n”,x,x,x,x,x);
printf(“(2) x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n”,x,x,x,x,x);
printf(“(3) x=%+3d,x=%+6d,x=%+08d\n”,x,x,x);
(为什么答案不是(1) x=7281,x= 7281,x= 16161,x= 1c71,x= 7281
(2) x=7281,x=7281 ,x=$7281 ,x=$007281,x=%06d
(3) x=+7281,x=+ 7281,x=+00007281)
第2题我想的答案里有空格。
第6题答案是
##1
## 2
## 3
## 4
## 5
展开
 我来答
haifeng33
推荐于2016-04-02 · 超过28用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:0
展开全部
1.其实“4.3”中的“4”是有用处的,“4”代表输出数字的宽度设置,但如果你输出数字的宽度大于你所设置的数字宽度“4”,则数字全

部输出,如果你输出的数字的宽度小于你所设置的数字宽度“4”,则用空格填满。
比如printf(“*%f,%8.3f*\n”,3.14,3.1415);
则输出:*3.140000,---3.142*(-表示空格)[“8”正的是右对齐,负的是左对齐]
2.我后面输出的是*d(4)=37777777776*d(5)=37777777776*d(6)=37777777776*

如果输出的是177776的话,你的答案应该对的,应该输出*d(4)=177776*d(5)= 177776*d(6)=177776 *;

3.我输出的结果是
*d(1)=3.500000e+000*d(2)=3.5000e+000*d(3)=3.5000e+000*
*d(4)=-3.500000e+000*d(5)=-3.500000e+000*d(6)=-3.50000e+000*

d(3)%10.4e的“10”是指数字宽度,“4”指小数点后面四位;

4.你的意思是说把printf("x=%d y=%d *sum*=%d\n",x,y,x+y);改成printf("x=%d x=%d x=%d\n",x,y,x+y);吗?
那结果会输出 x=1 x=2 x=3
10 Squared is: 100

5.我输出的结果是:5.681000e+002
e型的小数保留6位 ,指数部分保留3位

6.#include <stdio.h>
main()
{
int i;
for(i=1;i<=5;i++) printf(“##%*d\n”,i,i);
}
解析:printf(“##%*d\n”,i,i);中的第一个 i是设置输出数字的宽度,第二个i是输出的数字;
号的作用是【可以使同一输出语句中的输出宽度得以改变】
for循环内,每次循环先输出##然后设定要输出的数字宽度,再输出数字,因为你的宽度i是正的,所以输出数字是右对齐。

7.很奇怪,你的输出结果怎么和我的不一样呢,我输出的就是
3.1415926000##
3.1415926000 ##
你自己再试试看~

8.你好,我输出的结果是:a=+00325(中间1个空格)x=+3.141593e+000
a=+00325因为你输出设定的宽度为6,其中“+”也算在其中的;而x=+3.141593e+000在上面第四题已解释

9.我输出的答案基本和你所猜想的一致,是
(1) x=7281,x= 7281,x= 16161,x= 1c71,x= 7281
(2) x=7281,x=7281 ,x=$7281 ,x=$007281,x=%06d
(3) x=+7281,x= +7281,x=+0007281

只有(3)有点不一样,自己再检查检查吧,问题跟上面的都差不多,我想你应该能够解决的!

希望我的答案能让你满意!谢谢~
股海小坚果
2009-10-06 · 超过15用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:47.4万
展开全部
怎么还没人回答,我时间少了些,不染到帮你下,还有你题目有点不 明白
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式