主题:几个有趣的题。
swardman
[专家分:320] 发布于 2003-09-18 23:40:00
在下从杂志上摘了几个题,有时间的朋友可以看看。
(1)下列程序的输出结果是:A)3 B)3.2 C)0 D)3.07
main()
{
double d=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d \n",d*y);
}
(2)已知x,y为double型,则表达式x=1,y=x+3/2的值是:
A)1 B)2 C)2.0 D)2.5
(3)下列程序的输出结果:
#include<stdlib.h>
main(){
int a=3,b=2,c=1;
c-=++b;
b*=a+c;
{
int b=5,c=12;
c/=b*2;
a-=c;
printf("%d,%d,%d,",a,b,c);
a+=--c;
}
printf("%d,%d,%d,",a,b,c);
}
(4)int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则值为3的表达式是:
A)p+=2,*(p++) B)p+=2,*++p C)p+=3,*p++ D)p+=2,++*p
有感兴趣的朋友,请先把您的想法写出来,在下会在近期公布答案。
回复列表 (共40个回复)
31 楼
supersummit [专家分:0] 发布于 2003-10-05 16:13:00
swordman 能不能帮帮我呢?看看我的帖子好么?
主人为乐么!
32 楼
zzm526 [专家分:0] 发布于 2003-10-16 11:27:00
楼上各位好,第二题怎么在TC上运行是这样的.
main()
{
double x,y;
x=1,y=x+3/2;
printf("%d \n,y);
}
是吧?
结果为 0
这是为什么啊,各位高手都说是 2.0
33 楼
y2k10000 [专家分:0] 发布于 2003-10-29 19:11:00
请问第一题中,前面用int声明x,为什么后面会有x=1.2的?y=x+3.8的结果是什么?可以详细解说一下吗?谢谢~~!!
34 楼
whirlybird [专家分:100] 发布于 2003-10-29 20:43:00
谢谢这样的好题。。。
35 楼
luzhen [专家分:30] 发布于 2003-10-29 20:53:00
32 楼的同志,你应该把 printf 语句中的 "%d" 该为 "%f" .
36 楼
starifly [专家分:0] 发布于 2003-11-01 22:41:00
1.C
2.D
3.
2 5 1
2 3 -2
4.A
我觉得应该是这样子的
37 楼
啥都不会 [专家分:320] 发布于 2003-11-02 10:25:00
(1). C
(2). C
(3). 2,5,1,2,3,-2,
(4). A
39 楼
joncy [专家分:10] 发布于 2004-05-07 15:22:00
好像是在电脑报上看过这几道题...是关于二级的辅导的...
40 楼
horisly [专家分:2180] 发布于 2004-05-17 22:41:00
第二题应该是
2,5,1,2,3,-2
我来回复