几道C语言题,感觉标准答案不对,来这请教一下

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:32:28
1.C语言中,函数的隐含存储类型是【 】
A)auto B)static C) extern D)无存储类别
2. 下列程序的执行结果是【 】。
#define ADD(x) x+x
main()
{ int m=1, n=2, k=3;
int sum=ADD(m+n)*k;
printf("sum=%d\n",sum);}
A) sum=9 B) sum=10 C) sum=12 D) sum=18
3.下列程序的执行结果是【 】。
#define MOD(x,y) x%y
main( )
{ int c, a=15, b=100;
c=MOD (b,a);
printf ("%d\n",c++);}
A) 11 B) 10 C) 6 D) 宏定义错误

请给出答案,谢谢
为什么第三题不是选c呢?
第一题的标准答案是c,可我自己选是a,为什么选d呢?

第三题,不是100%15吗?等于6.6666啊,怎么得出10的??还是不明白啊

第一个是 D //这个问题我还真不清楚了
好像是这样的(不一定对啊) extern 之后加上 结构体或者是类名,这样 相当于由 typedef 定义的 就默认在结构体里面定义的类型了

第二个 是B 由于define是替换

所以 替换后 得 : 1+2+1+2*3 =12

第三个 是B // MOD(b,a) = b%a -> c=10;
然后输出c 之后才C自加一
这个肯定是答案错了

现在我变成楼下的了 哈哈

100%15
是取余的意思 就是 100除以15之后的那个余数 所以是10

标准答案是正确的,请放心

1.D
2.D
3.B

D B B
第二题要是用const代替define的话就是选D,
像楼上说得difine是替换
同意楼上